Loading net/ipv4/Kconfig +26 −0 Original line number Diff line number Diff line # # IP configuration # choice prompt "Choose IP: FIB lookup"" depends on INET default IP_FIB_HASH config IP_FIB_HASH bool "FIB_HASH" ---help--- Current FIB is very proven and good enough for most users. config IP_FIB_TRIE bool "FIB_TRIE" ---help--- Use new experimental LC-trie as FIB lookup algoritm. This improves lookup performance LC-trie is described in: IP-address lookup using LC-tries. Stefan Nilsson and Gunnar Karlsson IEEE Journal on Selected Areas in Communications, 17(6):1083-1092, June 1999 An experimental study of compression methods for dynamic tries Stefan Nilsson and Matti Tikkanen. Algorithmica, 33(1):19-33, 2002. http://www.nada.kth.se/~snilsson/public/papers/dyntrie2/ endchoice config IP_MULTICAST bool "IP: multicasting" depends on INET Loading net/ipv4/Makefile +3 −1 Original line number Diff line number Diff line Loading @@ -7,8 +7,10 @@ obj-y := utils.o route.o inetpeer.o protocol.o \ ip_output.o ip_sockglue.o \ tcp.o tcp_input.o tcp_output.o tcp_timer.o tcp_ipv4.o tcp_minisocks.o \ datagram.o raw.o udp.o arp.o icmp.o devinet.o af_inet.o igmp.o \ sysctl_net_ipv4.o fib_frontend.o fib_semantics.o fib_hash.o sysctl_net_ipv4.o fib_frontend.o fib_semantics.o obj-$(CONFIG_IP_FIB_HASH) += fib_hash.o obj-$(CONFIG_IP_FIB_TRIE) += fib_trie.o obj-$(CONFIG_PROC_FS) += proc.o obj-$(CONFIG_IP_MULTIPLE_TABLES) += fib_rules.o obj-$(CONFIG_IP_MROUTE) += ipmr.o Loading net/ipv4/af_inet.c +12 −0 Original line number Diff line number Diff line Loading @@ -1119,6 +1119,10 @@ module_init(inet_init); #ifdef CONFIG_PROC_FS extern int fib_proc_init(void); extern void fib_proc_exit(void); #ifdef CONFIG_IP_FIB_TRIE extern int fib_stat_proc_init(void); extern void fib_stat_proc_exit(void); #endif extern int ip_misc_proc_init(void); extern int raw_proc_init(void); extern void raw_proc_exit(void); Loading @@ -1139,11 +1143,19 @@ static int __init ipv4_proc_init(void) goto out_udp; if (fib_proc_init()) goto out_fib; #ifdef CONFIG_IP_FIB_TRIE if (fib_stat_proc_init()) goto out_fib_stat; #endif if (ip_misc_proc_init()) goto out_misc; out: return rc; out_misc: #ifdef CONFIG_IP_FIB_TRIE fib_stat_proc_exit(); out_fib_stat: #endif fib_proc_exit(); out_fib: udp4_proc_exit(); Loading Loading
net/ipv4/Kconfig +26 −0 Original line number Diff line number Diff line # # IP configuration # choice prompt "Choose IP: FIB lookup"" depends on INET default IP_FIB_HASH config IP_FIB_HASH bool "FIB_HASH" ---help--- Current FIB is very proven and good enough for most users. config IP_FIB_TRIE bool "FIB_TRIE" ---help--- Use new experimental LC-trie as FIB lookup algoritm. This improves lookup performance LC-trie is described in: IP-address lookup using LC-tries. Stefan Nilsson and Gunnar Karlsson IEEE Journal on Selected Areas in Communications, 17(6):1083-1092, June 1999 An experimental study of compression methods for dynamic tries Stefan Nilsson and Matti Tikkanen. Algorithmica, 33(1):19-33, 2002. http://www.nada.kth.se/~snilsson/public/papers/dyntrie2/ endchoice config IP_MULTICAST bool "IP: multicasting" depends on INET Loading
net/ipv4/Makefile +3 −1 Original line number Diff line number Diff line Loading @@ -7,8 +7,10 @@ obj-y := utils.o route.o inetpeer.o protocol.o \ ip_output.o ip_sockglue.o \ tcp.o tcp_input.o tcp_output.o tcp_timer.o tcp_ipv4.o tcp_minisocks.o \ datagram.o raw.o udp.o arp.o icmp.o devinet.o af_inet.o igmp.o \ sysctl_net_ipv4.o fib_frontend.o fib_semantics.o fib_hash.o sysctl_net_ipv4.o fib_frontend.o fib_semantics.o obj-$(CONFIG_IP_FIB_HASH) += fib_hash.o obj-$(CONFIG_IP_FIB_TRIE) += fib_trie.o obj-$(CONFIG_PROC_FS) += proc.o obj-$(CONFIG_IP_MULTIPLE_TABLES) += fib_rules.o obj-$(CONFIG_IP_MROUTE) += ipmr.o Loading
net/ipv4/af_inet.c +12 −0 Original line number Diff line number Diff line Loading @@ -1119,6 +1119,10 @@ module_init(inet_init); #ifdef CONFIG_PROC_FS extern int fib_proc_init(void); extern void fib_proc_exit(void); #ifdef CONFIG_IP_FIB_TRIE extern int fib_stat_proc_init(void); extern void fib_stat_proc_exit(void); #endif extern int ip_misc_proc_init(void); extern int raw_proc_init(void); extern void raw_proc_exit(void); Loading @@ -1139,11 +1143,19 @@ static int __init ipv4_proc_init(void) goto out_udp; if (fib_proc_init()) goto out_fib; #ifdef CONFIG_IP_FIB_TRIE if (fib_stat_proc_init()) goto out_fib_stat; #endif if (ip_misc_proc_init()) goto out_misc; out: return rc; out_misc: #ifdef CONFIG_IP_FIB_TRIE fib_stat_proc_exit(); out_fib_stat: #endif fib_proc_exit(); out_fib: udp4_proc_exit(); Loading