rtnetlink.c (e284986385b6420a5f30f2dcd743512bbe1a3202) | rtnetlink.c (340d17fc9d577c93678850e46963e9b19b92db7e) |
---|---|
1/* 2 * INET An implementation of the TCP/IP protocol suite for the LINUX 3 * operating system. INET is implemented using the BSD Socket 4 * interface as the means of communication with the user level. 5 * 6 * Routing netlink socket interface: protocol independent part. 7 * 8 * Authors: Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru> --- 947 unchanged lines hidden (view full) --- 956 mutex_unlock(&rtnl_mutex); 957 958 netdev_run_todo(); 959 } while (qlen); 960} 961 962static struct rtnetlink_link link_rtnetlink_table[RTM_NR_MSGTYPES] = 963{ | 1/* 2 * INET An implementation of the TCP/IP protocol suite for the LINUX 3 * operating system. INET is implemented using the BSD Socket 4 * interface as the means of communication with the user level. 5 * 6 * Routing netlink socket interface: protocol independent part. 7 * 8 * Authors: Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru> --- 947 unchanged lines hidden (view full) --- 956 mutex_unlock(&rtnl_mutex); 957 958 netdev_run_todo(); 959 } while (qlen); 960} 961 962static struct rtnetlink_link link_rtnetlink_table[RTM_NR_MSGTYPES] = 963{ |
964 [RTM_GETLINK - RTM_BASE] = { .doit = rtnl_getlink, 965 .dumpit = rtnl_dump_ifinfo }, 966 [RTM_SETLINK - RTM_BASE] = { .doit = rtnl_setlink }, | |
967 [RTM_GETADDR - RTM_BASE] = { .dumpit = rtnl_dump_all }, 968 [RTM_GETROUTE - RTM_BASE] = { .dumpit = rtnl_dump_all }, 969 [RTM_NEWNEIGH - RTM_BASE] = { .doit = neigh_add }, 970 [RTM_DELNEIGH - RTM_BASE] = { .doit = neigh_delete }, 971 [RTM_GETNEIGH - RTM_BASE] = { .dumpit = neigh_dump_info }, 972#ifdef CONFIG_FIB_RULES 973 [RTM_NEWRULE - RTM_BASE] = { .doit = fib_nl_newrule }, 974 [RTM_DELRULE - RTM_BASE] = { .doit = fib_nl_delrule }, --- 44 unchanged lines hidden (view full) --- 1019 panic("rtnetlink_init: cannot allocate rta_buf\n"); 1020 1021 rtnl = netlink_kernel_create(NETLINK_ROUTE, RTNLGRP_MAX, rtnetlink_rcv, 1022 THIS_MODULE); 1023 if (rtnl == NULL) 1024 panic("rtnetlink_init: cannot initialize rtnetlink\n"); 1025 netlink_set_nonroot(NETLINK_ROUTE, NL_NONROOT_RECV); 1026 register_netdevice_notifier(&rtnetlink_dev_notifier); | 964 [RTM_GETADDR - RTM_BASE] = { .dumpit = rtnl_dump_all }, 965 [RTM_GETROUTE - RTM_BASE] = { .dumpit = rtnl_dump_all }, 966 [RTM_NEWNEIGH - RTM_BASE] = { .doit = neigh_add }, 967 [RTM_DELNEIGH - RTM_BASE] = { .doit = neigh_delete }, 968 [RTM_GETNEIGH - RTM_BASE] = { .dumpit = neigh_dump_info }, 969#ifdef CONFIG_FIB_RULES 970 [RTM_NEWRULE - RTM_BASE] = { .doit = fib_nl_newrule }, 971 [RTM_DELRULE - RTM_BASE] = { .doit = fib_nl_delrule }, --- 44 unchanged lines hidden (view full) --- 1016 panic("rtnetlink_init: cannot allocate rta_buf\n"); 1017 1018 rtnl = netlink_kernel_create(NETLINK_ROUTE, RTNLGRP_MAX, rtnetlink_rcv, 1019 THIS_MODULE); 1020 if (rtnl == NULL) 1021 panic("rtnetlink_init: cannot initialize rtnetlink\n"); 1022 netlink_set_nonroot(NETLINK_ROUTE, NL_NONROOT_RECV); 1023 register_netdevice_notifier(&rtnetlink_dev_notifier); |
1027 rtnetlink_links[PF_UNSPEC] = link_rtnetlink_table; 1028 rtnetlink_links[PF_PACKET] = link_rtnetlink_table; | 1024 1025 rtnl_register(PF_UNSPEC, RTM_GETLINK, rtnl_getlink, rtnl_dump_ifinfo); 1026 rtnl_register(PF_UNSPEC, RTM_SETLINK, rtnl_setlink, NULL); |
1029} 1030 1031EXPORT_SYMBOL(__rta_fill); 1032EXPORT_SYMBOL(rtattr_strlcpy); 1033EXPORT_SYMBOL(rtattr_parse); 1034EXPORT_SYMBOL(rtnetlink_put_metrics); 1035EXPORT_SYMBOL(rtnl_lock); 1036EXPORT_SYMBOL(rtnl_trylock); 1037EXPORT_SYMBOL(rtnl_unlock); 1038EXPORT_SYMBOL(rtnl_unicast); 1039EXPORT_SYMBOL(rtnl_notify); 1040EXPORT_SYMBOL(rtnl_set_sk_err); | 1027} 1028 1029EXPORT_SYMBOL(__rta_fill); 1030EXPORT_SYMBOL(rtattr_strlcpy); 1031EXPORT_SYMBOL(rtattr_parse); 1032EXPORT_SYMBOL(rtnetlink_put_metrics); 1033EXPORT_SYMBOL(rtnl_lock); 1034EXPORT_SYMBOL(rtnl_trylock); 1035EXPORT_SYMBOL(rtnl_unlock); 1036EXPORT_SYMBOL(rtnl_unicast); 1037EXPORT_SYMBOL(rtnl_notify); 1038EXPORT_SYMBOL(rtnl_set_sk_err); |