diff --git a/bridge/link.c b/bridge/link.c index 85570263..09df489b 100644 --- a/bridge/link.c +++ b/bridge/link.c @@ -502,7 +502,7 @@ static int brlink_show(int argc, char **argv) } if (show_details) { - if (rtnl_wilddump_req_filter(&rth, PF_BRIDGE, RTM_GETLINK, + if (rtnl_linkdump_req_filter(&rth, PF_BRIDGE, (compress_vlans ? RTEXT_FILTER_BRVLAN_COMPRESSED : RTEXT_FILTER_BRVLAN)) < 0) { @@ -510,7 +510,7 @@ static int brlink_show(int argc, char **argv) exit(1); } } else { - if (rtnl_wilddump_request(&rth, PF_BRIDGE, RTM_GETLINK) < 0) { + if (rtnl_linkdump_req(&rth, PF_BRIDGE) < 0) { perror("Cannon send dump request"); exit(1); } diff --git a/bridge/mdb.c b/bridge/mdb.c index 841a3612..03fcc91f 100644 --- a/bridge/mdb.c +++ b/bridge/mdb.c @@ -293,7 +293,7 @@ static int mdb_show(int argc, char **argv) new_json_obj(json); /* get mdb entries*/ - if (rtnl_wilddump_request(&rth, PF_BRIDGE, RTM_GETMDB) < 0) { + if (rtnl_mdbdump_req(&rth, PF_BRIDGE) < 0) { perror("Cannot send dump request"); return -1; } diff --git a/bridge/vlan.c b/bridge/vlan.c index bdce55ae..239907bd 100644 --- a/bridge/vlan.c +++ b/bridge/vlan.c @@ -575,7 +575,7 @@ static int vlan_show(int argc, char **argv) new_json_obj(json); if (!show_stats) { - if (rtnl_wilddump_req_filter(&rth, PF_BRIDGE, RTM_GETLINK, + if (rtnl_linkdump_req_filter(&rth, PF_BRIDGE, (compress_vlans ? RTEXT_FILTER_BRVLAN_COMPRESSED : RTEXT_FILTER_BRVLAN)) < 0) { @@ -603,9 +603,7 @@ static int vlan_show(int argc, char **argv) __u32 filt_mask; filt_mask = IFLA_STATS_FILTER_BIT(IFLA_STATS_LINK_XSTATS); - if (rtnl_wilddump_stats_req_filter(&rth, AF_UNSPEC, - RTM_GETSTATS, - filt_mask) < 0) { + if (rtnl_statsdump_req_filter(&rth, AF_UNSPEC, filt_mask) < 0) { perror("Cannont send dump request"); exit(1); } @@ -619,9 +617,7 @@ static int vlan_show(int argc, char **argv) } filt_mask = IFLA_STATS_FILTER_BIT(IFLA_STATS_LINK_XSTATS_SLAVE); - if (rtnl_wilddump_stats_req_filter(&rth, AF_UNSPEC, - RTM_GETSTATS, - filt_mask) < 0) { + if (rtnl_statsdump_req_filter(&rth, AF_UNSPEC, filt_mask) < 0) { perror("Cannont send slave dump request"); exit(1); } diff --git a/include/libnetlink.h b/include/libnetlink.h index 9d9249e6..8e411ebc 100644 --- a/include/libnetlink.h +++ b/include/libnetlink.h @@ -46,19 +46,37 @@ int rtnl_open_byproto(struct rtnl_handle *rth, unsigned int subscriptions, __attribute__((warn_unused_result)); void rtnl_close(struct rtnl_handle *rth); -int rtnl_wilddump_request(struct rtnl_handle *rth, int fam, int type) + +int rtnl_addrdump_req(struct rtnl_handle *rth, int family) __attribute__((warn_unused_result)); -int rtnl_wilddump_req_filter(struct rtnl_handle *rth, int fam, int type, - __u32 filt_mask) +int rtnl_addrlbldump_req(struct rtnl_handle *rth, int family) + __attribute__((warn_unused_result)); +int rtnl_routedump_req(struct rtnl_handle *rth, int family) + __attribute__((warn_unused_result)); +int rtnl_ruledump_req(struct rtnl_handle *rth, int family) + __attribute__((warn_unused_result)); +int rtnl_neighdump_req(struct rtnl_handle *rth, int family) + __attribute__((warn_unused_result)); +int rtnl_neightbldump_req(struct rtnl_handle *rth, int family) + __attribute__((warn_unused_result)); +int rtnl_mdbdump_req(struct rtnl_handle *rth, int family) + __attribute__((warn_unused_result)); +int rtnl_netconfdump_req(struct rtnl_handle *rth, int family) + __attribute__((warn_unused_result)); +int rtnl_nsiddump_req(struct rtnl_handle *rth, int family) + __attribute__((warn_unused_result)); + +int rtnl_linkdump_req(struct rtnl_handle *rth, int fam) + __attribute__((warn_unused_result)); +int rtnl_linkdump_req_filter(struct rtnl_handle *rth, int fam, __u32 filt_mask) __attribute__((warn_unused_result)); typedef int (*req_filter_fn_t)(struct nlmsghdr *nlh, int reqlen); -int rtnl_wilddump_req_filter_fn(struct rtnl_handle *rth, int fam, int type, +int rtnl_linkdump_req_filter_fn(struct rtnl_handle *rth, int fam, req_filter_fn_t fn) __attribute__((warn_unused_result)); -int rtnl_wilddump_stats_req_filter(struct rtnl_handle *rth, int fam, int type, - __u32 filt_mask) +int rtnl_statsdump_req_filter(struct rtnl_handle *rth, int fam, __u32 filt_mask) __attribute__((warn_unused_result)); int rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, int len) diff --git a/ip/ipaddress.c b/ip/ipaddress.c index 8dc6c32f..c0c1fbbe 100644 --- a/ip/ipaddress.c +++ b/ip/ipaddress.c @@ -1698,7 +1698,7 @@ static int ipaddr_flush(void) filter.flushe = sizeof(flushb); while ((max_flush_loops == 0) || (round < max_flush_loops)) { - if (rtnl_wilddump_request(&rth, filter.family, RTM_GETADDR) < 0) { + if (rtnl_addrdump_req(&rth, filter.family) < 0) { perror("Cannot send dump request"); exit(1); } @@ -1778,7 +1778,7 @@ static int iplink_filter_req(struct nlmsghdr *nlh, int reqlen) int ip_linkaddr_list(int family, req_filter_fn_t filter_fn, struct nlmsg_chain *linfo, struct nlmsg_chain *ainfo) { - if (rtnl_wilddump_req_filter_fn(&rth, preferred_family, RTM_GETLINK, + if (rtnl_linkdump_req_filter_fn(&rth, preferred_family, filter_fn) < 0) { perror("Cannot send dump request"); return 1; @@ -1790,7 +1790,7 @@ int ip_linkaddr_list(int family, req_filter_fn_t filter_fn, } if (ainfo) { - if (rtnl_wilddump_request(&rth, family, RTM_GETADDR) < 0) { + if (rtnl_addrdump_req(&rth, family) < 0) { perror("Cannot send dump request"); return 1; } @@ -1915,7 +1915,7 @@ static int ipaddr_list_flush_or_save(int argc, char **argv, int action) if (ipadd_save_prep()) exit(1); - if (rtnl_wilddump_request(&rth, preferred_family, RTM_GETADDR) < 0) { + if (rtnl_addrdump_req(&rth, preferred_family) < 0) { perror("Cannot send dump request"); exit(1); } @@ -2031,7 +2031,7 @@ void ipaddr_get_vf_rate(int vfnum, int *min, int *max, const char *dev) exit(1); } - if (rtnl_wilddump_request(&rth, AF_UNSPEC, RTM_GETLINK) < 0) { + if (rtnl_linkdump_req(&rth, AF_UNSPEC) < 0) { perror("Cannot send dump request"); exit(1); } diff --git a/ip/ipaddrlabel.c b/ip/ipaddrlabel.c index 2f79c56d..845fe4c5 100644 --- a/ip/ipaddrlabel.c +++ b/ip/ipaddrlabel.c @@ -118,7 +118,7 @@ static int ipaddrlabel_list(int argc, char **argv) return -1; } - if (rtnl_wilddump_request(&rth, af, RTM_GETADDRLABEL) < 0) { + if (rtnl_addrlbldump_req(&rth, af) < 0) { perror("Cannot send dump request"); return 1; } @@ -237,7 +237,7 @@ static int ipaddrlabel_flush(int argc, char **argv) return -1; } - if (rtnl_wilddump_request(&rth, af, RTM_GETADDRLABEL) < 0) { + if (rtnl_addrlbldump_req(&rth, af) < 0) { perror("Cannot send dump request"); return -1; } diff --git a/ip/iplink.c b/ip/iplink.c index d99c49ed..50ccb49a 100644 --- a/ip/iplink.c +++ b/ip/iplink.c @@ -1601,9 +1601,7 @@ static int iplink_afstats(int argc, char **argv) } } - if (rtnl_wilddump_stats_req_filter(&rth, AF_UNSPEC, - RTM_GETSTATS, - filt_mask) < 0) { + if (rtnl_statsdump_req_filter(&rth, AF_UNSPEC, filt_mask) < 0) { perror("Cannont send dump request"); return 1; } diff --git a/ip/iplink_xstats.c b/ip/iplink_xstats.c index 10f953bc..908d9228 100644 --- a/ip/iplink_xstats.c +++ b/ip/iplink_xstats.c @@ -65,9 +65,7 @@ int iplink_ifla_xstats(int argc, char **argv) else filt_mask = IFLA_STATS_FILTER_BIT(IFLA_STATS_LINK_XSTATS); - if (rtnl_wilddump_stats_req_filter(&rth, AF_UNSPEC, - RTM_GETSTATS, - filt_mask) < 0) { + if (rtnl_statsdump_req_filter(&rth, AF_UNSPEC, filt_mask) < 0) { perror("Cannont send dump request"); return -1; } diff --git a/ip/ipmroute.c b/ip/ipmroute.c index bc23cfea..c5dfa9cb 100644 --- a/ip/ipmroute.c +++ b/ip/ipmroute.c @@ -283,7 +283,7 @@ static int mroute_list(int argc, char **argv) filter.iif = idx; } - if (rtnl_wilddump_request(&rth, filter.af, RTM_GETROUTE) < 0) { + if (rtnl_routedump_req(&rth, filter.af) < 0) { perror("Cannot send dump request"); return 1; } diff --git a/ip/ipnetconf.c b/ip/ipnetconf.c index 04c4d608..21822e36 100644 --- a/ip/ipnetconf.c +++ b/ip/ipnetconf.c @@ -210,8 +210,7 @@ static int do_show(int argc, char **argv) } else { rth.flags = RTNL_HANDLE_F_SUPPRESS_NLERR; dump: - if (rtnl_wilddump_request(&rth, filter.family, - RTM_GETNETCONF) < 0) { + if (rtnl_netconfdump_req(&rth, filter.family) < 0) { perror("Cannot send dump request"); exit(1); } diff --git a/ip/ipnetns.c b/ip/ipnetns.c index 368be0cb..e8500c77 100644 --- a/ip/ipnetns.c +++ b/ip/ipnetns.c @@ -346,7 +346,7 @@ static int netns_list_id(int argc, char **argv) return -ENOTSUP; } - if (rtnl_wilddump_request(&rth, AF_UNSPEC, RTM_GETNSID) < 0) { + if (rtnl_nsiddump_req(&rth, AF_UNSPEC) < 0) { perror("Cannot send dump request"); exit(1); } diff --git a/ip/ipntable.c b/ip/ipntable.c index dd4f7c2e..ce3f4614 100644 --- a/ip/ipntable.c +++ b/ip/ipntable.c @@ -658,7 +658,7 @@ static int ipntable_show(int argc, char **argv) argc--; argv++; } - if (rtnl_wilddump_request(&rth, preferred_family, RTM_GETNEIGHTBL) < 0) { + if (rtnl_neightbldump_req(&rth, preferred_family) < 0) { perror("Cannot send dump request"); exit(1); } diff --git a/ip/iproute.c b/ip/iproute.c index 398322fd..69963592 100644 --- a/ip/iproute.c +++ b/ip/iproute.c @@ -1645,7 +1645,7 @@ static int iproute_flush(int do_ipv6, rtnl_filter_t filter_fn) filter.flushe = sizeof(flushb); for (;;) { - if (rtnl_wilddump_request(&rth, do_ipv6, RTM_GETROUTE) < 0) { + if (rtnl_routedump_req(&rth, do_ipv6) < 0) { perror("Cannot send dump request"); return -2; } @@ -1891,7 +1891,7 @@ static int iproute_list_flush_or_save(int argc, char **argv, int action) return iproute_flush(do_ipv6, filter_fn); if (!filter.cloned) { - if (rtnl_wilddump_request(&rth, do_ipv6, RTM_GETROUTE) < 0) { + if (rtnl_routedump_req(&rth, do_ipv6) < 0) { perror("Cannot send dump request"); return -2; } diff --git a/ip/iprule.c b/ip/iprule.c index 744d6d88..60fd4c7e 100644 --- a/ip/iprule.c +++ b/ip/iprule.c @@ -615,7 +615,7 @@ static int iprule_list_flush_or_save(int argc, char **argv, int action) argc--; argv++; } - if (rtnl_wilddump_request(&rth, af, RTM_GETRULE) < 0) { + if (rtnl_ruledump_req(&rth, af) < 0) { perror("Cannot send dump request"); return 1; } diff --git a/ip/iptoken.c b/ip/iptoken.c index fb64da4e..8605e75c 100644 --- a/ip/iptoken.c +++ b/ip/iptoken.c @@ -109,7 +109,7 @@ static int iptoken_list(int argc, char **argv) argc--; argv++; } - if (rtnl_wilddump_request(&rth, af, RTM_GETLINK) < 0) { + if (rtnl_linkdump_req(&rth, af) < 0) { perror("Cannot send dump request"); return -1; } diff --git a/ip/iptuntap.c b/ip/iptuntap.c index 58996e6c..8c84e620 100644 --- a/ip/iptuntap.c +++ b/ip/iptuntap.c @@ -459,7 +459,7 @@ static int print_tuntap(const struct sockaddr_nl *who, static int do_show(int argc, char **argv) { - if (rtnl_wilddump_req_filter_fn(&rth, AF_UNSPEC, RTM_GETLINK, + if (rtnl_linkdump_req_filter_fn(&rth, AF_UNSPEC, tuntap_filter_req) < 0) { perror("Cannot send dump request\n"); return -1; diff --git a/ip/rtmon.c b/ip/rtmon.c index 0e795f74..7d2405d7 100644 --- a/ip/rtmon.c +++ b/ip/rtmon.c @@ -163,7 +163,7 @@ main(int argc, char **argv) if (rtnl_open(&rth, groups) < 0) exit(1); - if (rtnl_wilddump_request(&rth, AF_UNSPEC, RTM_GETLINK) < 0) { + if (rtnl_linkdump_req(&rth, AF_UNSPEC) < 0) { perror("Cannot send dump request"); exit(1); } diff --git a/ip/tunnel.c b/ip/tunnel.c index 79de7f24..20fe6d7d 100644 --- a/ip/tunnel.c +++ b/ip/tunnel.c @@ -392,7 +392,7 @@ static int print_nlmsg_tunnel(const struct sockaddr_nl *who, int do_tunnels_list(struct tnl_print_nlmsg_info *info) { - if (rtnl_wilddump_request(&rth, preferred_family, RTM_GETLINK) < 0) { + if (rtnl_linkdump_req(&rth, preferred_family) < 0) { perror("Cannot send dump request\n"); return -1; } diff --git a/lib/libnetlink.c b/lib/libnetlink.c index f18dceac..f8b8fbfd 100644 --- a/lib/libnetlink.c +++ b/lib/libnetlink.c @@ -22,6 +22,9 @@ #include #include #include +#include +#include +#include #include "libnetlink.h" @@ -199,12 +202,156 @@ int rtnl_open(struct rtnl_handle *rth, unsigned int subscriptions) return rtnl_open_byproto(rth, subscriptions, NETLINK_ROUTE); } -int rtnl_wilddump_request(struct rtnl_handle *rth, int family, int type) +int rtnl_addrdump_req(struct rtnl_handle *rth, int family) { - return rtnl_wilddump_req_filter(rth, family, type, RTEXT_FILTER_VF); + struct { + struct nlmsghdr nlh; + struct ifaddrmsg ifm; + } req = { + .nlh.nlmsg_len = sizeof(req), + .nlh.nlmsg_type = RTM_GETADDR, + .nlh.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST, + .nlh.nlmsg_seq = rth->dump = ++rth->seq, + .ifm.ifa_family = family, + }; + + return send(rth->fd, &req, sizeof(req), 0); } -int rtnl_wilddump_req_filter(struct rtnl_handle *rth, int family, int type, +int rtnl_addrlbldump_req(struct rtnl_handle *rth, int family) +{ + struct { + struct nlmsghdr nlh; + struct ifaddrlblmsg ifal; + } req = { + .nlh.nlmsg_len = sizeof(req), + .nlh.nlmsg_type = RTM_GETADDRLABEL, + .nlh.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST, + .nlh.nlmsg_seq = rth->dump = ++rth->seq, + .ifal.ifal_family = family, + }; + + return send(rth->fd, &req, sizeof(req), 0); +} + +int rtnl_routedump_req(struct rtnl_handle *rth, int family) +{ + struct { + struct nlmsghdr nlh; + struct rtmsg rtm; + } req = { + .nlh.nlmsg_len = sizeof(req), + .nlh.nlmsg_type = RTM_GETROUTE, + .nlh.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST, + .nlh.nlmsg_seq = rth->dump = ++rth->seq, + .rtm.rtm_family = family, + }; + + return send(rth->fd, &req, sizeof(req), 0); +} + +int rtnl_ruledump_req(struct rtnl_handle *rth, int family) +{ + struct { + struct nlmsghdr nlh; + struct fib_rule_hdr frh; + } req = { + .nlh.nlmsg_len = sizeof(req), + .nlh.nlmsg_type = RTM_GETRULE, + .nlh.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST, + .nlh.nlmsg_seq = rth->dump = ++rth->seq, + .frh.family = family + }; + + return send(rth->fd, &req, sizeof(req), 0); +} + +int rtnl_neighdump_req(struct rtnl_handle *rth, int family) +{ + struct { + struct nlmsghdr nlh; + struct ndmsg ndm; + } req = { + .nlh.nlmsg_len = sizeof(req), + .nlh.nlmsg_type = RTM_GETNEIGH, + .nlh.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST, + .nlh.nlmsg_seq = rth->dump = ++rth->seq, + .ndm.ndm_family = family, + }; + + return send(rth->fd, &req, sizeof(req), 0); +} + +int rtnl_neightbldump_req(struct rtnl_handle *rth, int family) +{ + struct { + struct nlmsghdr nlh; + struct ndtmsg ndtmsg; + } req = { + .nlh.nlmsg_len = sizeof(req), + .nlh.nlmsg_type = RTM_GETNEIGHTBL, + .nlh.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST, + .nlh.nlmsg_seq = rth->dump = ++rth->seq, + .ndtmsg.ndtm_family = family, + }; + + return send(rth->fd, &req, sizeof(req), 0); +} + +int rtnl_mdbdump_req(struct rtnl_handle *rth, int family) +{ + struct { + struct nlmsghdr nlh; + struct br_port_msg bpm; + } req = { + .nlh.nlmsg_len = sizeof(req), + .nlh.nlmsg_type = RTM_GETMDB, + .nlh.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST, + .nlh.nlmsg_seq = rth->dump = ++rth->seq, + .bpm.family = family, + }; + + return send(rth->fd, &req, sizeof(req), 0); +} + +int rtnl_netconfdump_req(struct rtnl_handle *rth, int family) +{ + struct { + struct nlmsghdr nlh; + struct netconfmsg ncm; + } req = { + .nlh.nlmsg_len = sizeof(req), + .nlh.nlmsg_type = RTM_GETNETCONF, + .nlh.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST, + .nlh.nlmsg_seq = rth->dump = ++rth->seq, + .ncm.ncm_family = family, + }; + + return send(rth->fd, &req, sizeof(req), 0); +} + +int rtnl_nsiddump_req(struct rtnl_handle *rth, int family) +{ + struct { + struct nlmsghdr nlh; + struct rtgenmsg rtm; + } req = { + .nlh.nlmsg_len = sizeof(req), + .nlh.nlmsg_type = RTM_GETNSID, + .nlh.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST, + .nlh.nlmsg_seq = rth->dump = ++rth->seq, + .rtm.rtgen_family = family, + }; + + return send(rth->fd, &req, sizeof(req), 0); +} + +int rtnl_linkdump_req(struct rtnl_handle *rth, int family) +{ + return rtnl_linkdump_req_filter(rth, family, RTEXT_FILTER_VF); +} + +int rtnl_linkdump_req_filter(struct rtnl_handle *rth, int family, __u32 filt_mask) { struct { @@ -215,7 +362,7 @@ int rtnl_wilddump_req_filter(struct rtnl_handle *rth, int family, int type, __u32 ext_filter_mask; } req = { .nlh.nlmsg_len = sizeof(req), - .nlh.nlmsg_type = type, + .nlh.nlmsg_type = RTM_GETLINK, .nlh.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST, .nlh.nlmsg_seq = rth->dump = ++rth->seq, .ifm.ifi_family = family, @@ -227,7 +374,7 @@ int rtnl_wilddump_req_filter(struct rtnl_handle *rth, int family, int type, return send(rth->fd, &req, sizeof(req), 0); } -int rtnl_wilddump_req_filter_fn(struct rtnl_handle *rth, int family, int type, +int rtnl_linkdump_req_filter_fn(struct rtnl_handle *rth, int family, req_filter_fn_t filter_fn) { struct { @@ -236,7 +383,7 @@ int rtnl_wilddump_req_filter_fn(struct rtnl_handle *rth, int family, int type, char buf[1024]; } req = { .nlh.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifinfomsg)), - .nlh.nlmsg_type = type, + .nlh.nlmsg_type = RTM_GETLINK, .nlh.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST, .nlh.nlmsg_seq = rth->dump = ++rth->seq, .ifm.ifi_family = family, @@ -253,8 +400,7 @@ int rtnl_wilddump_req_filter_fn(struct rtnl_handle *rth, int family, int type, return send(rth->fd, &req, req.nlh.nlmsg_len, 0); } -int rtnl_wilddump_stats_req_filter(struct rtnl_handle *rth, int fam, int type, - __u32 filt_mask) +int rtnl_statsdump_req_filter(struct rtnl_handle *rth, int fam, __u32 filt_mask) { struct { struct nlmsghdr nlh; @@ -263,7 +409,7 @@ int rtnl_wilddump_stats_req_filter(struct rtnl_handle *rth, int fam, int type, memset(&req, 0, sizeof(req)); req.nlh.nlmsg_len = NLMSG_LENGTH(sizeof(struct if_stats_msg)); - req.nlh.nlmsg_type = type; + req.nlh.nlmsg_type = RTM_GETSTATS; req.nlh.nlmsg_flags = NLM_F_DUMP|NLM_F_REQUEST; req.nlh.nlmsg_pid = 0; req.nlh.nlmsg_seq = rth->dump = ++rth->seq; diff --git a/lib/ll_map.c b/lib/ll_map.c index 0afe6897..32c8e442 100644 --- a/lib/ll_map.c +++ b/lib/ll_map.c @@ -218,7 +218,7 @@ void ll_init_map(struct rtnl_handle *rth) if (initialized) return; - if (rtnl_wilddump_request(rth, AF_UNSPEC, RTM_GETLINK) < 0) { + if (rtnl_linkdump_req(rth, AF_UNSPEC) < 0) { perror("Cannot send dump request"); exit(1); } diff --git a/misc/arpd.c b/misc/arpd.c index 67d86b67..ce7c0997 100644 --- a/misc/arpd.c +++ b/misc/arpd.c @@ -424,7 +424,7 @@ static int do_one_request(struct nlmsghdr *n) static void load_initial_table(void) { - if (rtnl_wilddump_request(&rth, AF_INET, RTM_GETNEIGH) < 0) { + if (rtnl_neighdump_req(&rth, AF_INET) < 0) { perror("dump request failed"); exit(1); } diff --git a/misc/ifstat.c b/misc/ifstat.c index 50b906e8..3a0e780f 100644 --- a/misc/ifstat.c +++ b/misc/ifstat.c @@ -203,8 +203,8 @@ static void load_info(void) if (is_extended) { ll_init_map(&rth); filter_mask = IFLA_STATS_FILTER_BIT(filter_type); - if (rtnl_wilddump_stats_req_filter(&rth, AF_UNSPEC, RTM_GETSTATS, - filter_mask) < 0) { + if (rtnl_statsdump_req_filter(&rth, AF_UNSPEC, + filter_mask) < 0) { perror("Cannot send dump request"); exit(1); } @@ -214,7 +214,7 @@ static void load_info(void) exit(1); } } else { - if (rtnl_wilddump_request(&rth, AF_INET, RTM_GETLINK) < 0) { + if (rtnl_linkdump_req(&rth, AF_INET) < 0) { perror("Cannot send dump request"); exit(1); }