Loading include/net/neighbour.h +1 −9 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ #include <linux/err.h> #include <linux/sysctl.h> #include <net/rtnetlink.h> #define NUD_IN_TIMER (NUD_INCOMPLETE|NUD_REACHABLE|NUD_DELAY|NUD_PROBE) #define NUD_VALID (NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE|NUD_PROBE|NUD_STALE|NUD_DELAY) Loading Loading @@ -213,16 +214,7 @@ extern void pneigh_enqueue(struct neigh_table *tbl, struct neigh_parms *p, extern struct pneigh_entry *pneigh_lookup(struct neigh_table *tbl, const void *key, struct net_device *dev, int creat); extern int pneigh_delete(struct neigh_table *tbl, const void *key, struct net_device *dev); struct netlink_callback; struct nlmsghdr; extern int neigh_dump_info(struct sk_buff *skb, struct netlink_callback *cb); extern int neigh_add(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg); extern int neigh_delete(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg); extern void neigh_app_ns(struct neighbour *n); extern int neightbl_dump_info(struct sk_buff *skb, struct netlink_callback *cb); extern int neightbl_set(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg); extern void neigh_for_each(struct neigh_table *tbl, void (*cb)(struct neighbour *, void *), void *cookie); extern void __neigh_for_each_release(struct neigh_table *tbl, int (*cb)(struct neighbour *)); extern void pneigh_for_each(struct neigh_table *tbl, void (*cb)(struct pneigh_entry *)); Loading net/core/neighbour.c +19 −7 Original line number Diff line number Diff line Loading @@ -1441,7 +1441,7 @@ int neigh_table_clear(struct neigh_table *tbl) return 0; } int neigh_delete(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) static int neigh_delete(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) { struct ndmsg *ndm; struct nlattr *dst_attr; Loading Loading @@ -1506,7 +1506,7 @@ int neigh_delete(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) return err; } int neigh_add(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) static int neigh_add(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) { struct ndmsg *ndm; struct nlattr *tb[NDA_MAX+1]; Loading Loading @@ -1786,7 +1786,7 @@ static struct nla_policy nl_ntbl_parm_policy[NDTPA_MAX+1] __read_mostly = { [NDTPA_LOCKTIME] = { .type = NLA_U64 }, }; int neightbl_set(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) static int neightbl_set(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) { struct neigh_table *tbl; struct ndtmsg *ndtmsg; Loading Loading @@ -1910,7 +1910,7 @@ int neightbl_set(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) return err; } int neightbl_dump_info(struct sk_buff *skb, struct netlink_callback *cb) static int neightbl_dump_info(struct sk_buff *skb, struct netlink_callback *cb) { int family, tidx, nidx = 0; int tbl_skip = cb->args[0]; Loading Loading @@ -2034,7 +2034,7 @@ static int neigh_dump_table(struct neigh_table *tbl, struct sk_buff *skb, return rc; } int neigh_dump_info(struct sk_buff *skb, struct netlink_callback *cb) static int neigh_dump_info(struct sk_buff *skb, struct netlink_callback *cb) { struct neigh_table *tbl; int t, family, s_t; Loading Loading @@ -2746,14 +2746,26 @@ void neigh_sysctl_unregister(struct neigh_parms *p) #endif /* CONFIG_SYSCTL */ static int __init neigh_init(void) { rtnl_register(PF_UNSPEC, RTM_NEWNEIGH, neigh_add, NULL); rtnl_register(PF_UNSPEC, RTM_DELNEIGH, neigh_delete, NULL); rtnl_register(PF_UNSPEC, RTM_GETNEIGH, NULL, neigh_dump_info); rtnl_register(PF_UNSPEC, RTM_GETNEIGHTBL, NULL, neightbl_dump_info); rtnl_register(PF_UNSPEC, RTM_SETNEIGHTBL, neightbl_set, NULL); return 0; } subsys_initcall(neigh_init); EXPORT_SYMBOL(__neigh_event_send); EXPORT_SYMBOL(neigh_changeaddr); EXPORT_SYMBOL(neigh_compat_output); EXPORT_SYMBOL(neigh_connected_output); EXPORT_SYMBOL(neigh_create); EXPORT_SYMBOL(neigh_delete); EXPORT_SYMBOL(neigh_destroy); EXPORT_SYMBOL(neigh_dump_info); EXPORT_SYMBOL(neigh_event_ns); EXPORT_SYMBOL(neigh_ifdown); EXPORT_SYMBOL(neigh_lookup); Loading net/core/rtnetlink.c +0 −5 Original line number Diff line number Diff line Loading @@ -963,16 +963,11 @@ static struct rtnetlink_link link_rtnetlink_table[RTM_NR_MSGTYPES] = { [RTM_GETADDR - RTM_BASE] = { .dumpit = rtnl_dump_all }, [RTM_GETROUTE - RTM_BASE] = { .dumpit = rtnl_dump_all }, [RTM_NEWNEIGH - RTM_BASE] = { .doit = neigh_add }, [RTM_DELNEIGH - RTM_BASE] = { .doit = neigh_delete }, [RTM_GETNEIGH - RTM_BASE] = { .dumpit = neigh_dump_info }, #ifdef CONFIG_FIB_RULES [RTM_NEWRULE - RTM_BASE] = { .doit = fib_nl_newrule }, [RTM_DELRULE - RTM_BASE] = { .doit = fib_nl_delrule }, #endif [RTM_GETRULE - RTM_BASE] = { .dumpit = rtnl_dump_all }, [RTM_GETNEIGHTBL - RTM_BASE] = { .dumpit = neightbl_dump_info }, [RTM_SETNEIGHTBL - RTM_BASE] = { .doit = neightbl_set }, }; static int rtnetlink_event(struct notifier_block *this, unsigned long event, void *ptr) Loading Loading
include/net/neighbour.h +1 −9 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ #include <linux/err.h> #include <linux/sysctl.h> #include <net/rtnetlink.h> #define NUD_IN_TIMER (NUD_INCOMPLETE|NUD_REACHABLE|NUD_DELAY|NUD_PROBE) #define NUD_VALID (NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE|NUD_PROBE|NUD_STALE|NUD_DELAY) Loading Loading @@ -213,16 +214,7 @@ extern void pneigh_enqueue(struct neigh_table *tbl, struct neigh_parms *p, extern struct pneigh_entry *pneigh_lookup(struct neigh_table *tbl, const void *key, struct net_device *dev, int creat); extern int pneigh_delete(struct neigh_table *tbl, const void *key, struct net_device *dev); struct netlink_callback; struct nlmsghdr; extern int neigh_dump_info(struct sk_buff *skb, struct netlink_callback *cb); extern int neigh_add(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg); extern int neigh_delete(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg); extern void neigh_app_ns(struct neighbour *n); extern int neightbl_dump_info(struct sk_buff *skb, struct netlink_callback *cb); extern int neightbl_set(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg); extern void neigh_for_each(struct neigh_table *tbl, void (*cb)(struct neighbour *, void *), void *cookie); extern void __neigh_for_each_release(struct neigh_table *tbl, int (*cb)(struct neighbour *)); extern void pneigh_for_each(struct neigh_table *tbl, void (*cb)(struct pneigh_entry *)); Loading
net/core/neighbour.c +19 −7 Original line number Diff line number Diff line Loading @@ -1441,7 +1441,7 @@ int neigh_table_clear(struct neigh_table *tbl) return 0; } int neigh_delete(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) static int neigh_delete(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) { struct ndmsg *ndm; struct nlattr *dst_attr; Loading Loading @@ -1506,7 +1506,7 @@ int neigh_delete(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) return err; } int neigh_add(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) static int neigh_add(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) { struct ndmsg *ndm; struct nlattr *tb[NDA_MAX+1]; Loading Loading @@ -1786,7 +1786,7 @@ static struct nla_policy nl_ntbl_parm_policy[NDTPA_MAX+1] __read_mostly = { [NDTPA_LOCKTIME] = { .type = NLA_U64 }, }; int neightbl_set(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) static int neightbl_set(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) { struct neigh_table *tbl; struct ndtmsg *ndtmsg; Loading Loading @@ -1910,7 +1910,7 @@ int neightbl_set(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) return err; } int neightbl_dump_info(struct sk_buff *skb, struct netlink_callback *cb) static int neightbl_dump_info(struct sk_buff *skb, struct netlink_callback *cb) { int family, tidx, nidx = 0; int tbl_skip = cb->args[0]; Loading Loading @@ -2034,7 +2034,7 @@ static int neigh_dump_table(struct neigh_table *tbl, struct sk_buff *skb, return rc; } int neigh_dump_info(struct sk_buff *skb, struct netlink_callback *cb) static int neigh_dump_info(struct sk_buff *skb, struct netlink_callback *cb) { struct neigh_table *tbl; int t, family, s_t; Loading Loading @@ -2746,14 +2746,26 @@ void neigh_sysctl_unregister(struct neigh_parms *p) #endif /* CONFIG_SYSCTL */ static int __init neigh_init(void) { rtnl_register(PF_UNSPEC, RTM_NEWNEIGH, neigh_add, NULL); rtnl_register(PF_UNSPEC, RTM_DELNEIGH, neigh_delete, NULL); rtnl_register(PF_UNSPEC, RTM_GETNEIGH, NULL, neigh_dump_info); rtnl_register(PF_UNSPEC, RTM_GETNEIGHTBL, NULL, neightbl_dump_info); rtnl_register(PF_UNSPEC, RTM_SETNEIGHTBL, neightbl_set, NULL); return 0; } subsys_initcall(neigh_init); EXPORT_SYMBOL(__neigh_event_send); EXPORT_SYMBOL(neigh_changeaddr); EXPORT_SYMBOL(neigh_compat_output); EXPORT_SYMBOL(neigh_connected_output); EXPORT_SYMBOL(neigh_create); EXPORT_SYMBOL(neigh_delete); EXPORT_SYMBOL(neigh_destroy); EXPORT_SYMBOL(neigh_dump_info); EXPORT_SYMBOL(neigh_event_ns); EXPORT_SYMBOL(neigh_ifdown); EXPORT_SYMBOL(neigh_lookup); Loading
net/core/rtnetlink.c +0 −5 Original line number Diff line number Diff line Loading @@ -963,16 +963,11 @@ static struct rtnetlink_link link_rtnetlink_table[RTM_NR_MSGTYPES] = { [RTM_GETADDR - RTM_BASE] = { .dumpit = rtnl_dump_all }, [RTM_GETROUTE - RTM_BASE] = { .dumpit = rtnl_dump_all }, [RTM_NEWNEIGH - RTM_BASE] = { .doit = neigh_add }, [RTM_DELNEIGH - RTM_BASE] = { .doit = neigh_delete }, [RTM_GETNEIGH - RTM_BASE] = { .dumpit = neigh_dump_info }, #ifdef CONFIG_FIB_RULES [RTM_NEWRULE - RTM_BASE] = { .doit = fib_nl_newrule }, [RTM_DELRULE - RTM_BASE] = { .doit = fib_nl_delrule }, #endif [RTM_GETRULE - RTM_BASE] = { .dumpit = rtnl_dump_all }, [RTM_GETNEIGHTBL - RTM_BASE] = { .dumpit = neightbl_dump_info }, [RTM_SETNEIGHTBL - RTM_BASE] = { .doit = neightbl_set }, }; static int rtnetlink_event(struct notifier_block *this, unsigned long event, void *ptr) Loading