The heart of our ongoing network stack work to take the IP forwarding path out of the kernel lock relies on an MP-safe routing table. Our plan is to use a lock-free lookup based on ART and SRPs.
But before turning ART MP-safe I'd like to squash the remaining bugs. The only way to be sure to find them is to enable ART by default. ART currently does not support ARP proxy. That's the first item to fix on my list but I don't think this should prevent us from switching right now. So diff below turns the ART define "on" and adapt the regression tests. I'd be happy to hear from people using non-trivial routing setups. If you encounter a network/routing table related regression please make sure to include as much information as possible, including the dmesg and the outputs of "$ route -n show" with the new and old kernels. ok? Index: sys/conf/GENERIC =================================================================== RCS file: /cvs/src/sys/conf/GENERIC,v retrieving revision 1.225 diff -u -p -r1.225 GENERIC --- sys/conf/GENERIC 25 Feb 2016 20:27:16 -0000 1.225 +++ sys/conf/GENERIC 16 Mar 2016 15:07:41 -0000 @@ -50,6 +50,7 @@ option TCP_ECN # Explicit Congestion N option TCP_SIGNATURE # TCP MD5 Signatures, for BGP routing sessions #option TCP_FACK # Forward Acknowledgements for TCP +option ART # Allotment Routing Table option INET6 # IPv6 option IPSEC # IPsec #option KEY # PF_KEY (implied by IPSEC) Index: regress/sbin/route/rttest1.ok =================================================================== RCS file: /cvs/src/regress/sbin/route/rttest1.ok,v retrieving revision 1.5 diff -u -p -r1.5 rttest1.ok --- regress/sbin/route/rttest1.ok 9 Nov 2015 10:49:36 -0000 1.5 +++ regress/sbin/route/rttest1.ok 16 Mar 2016 16:44:08 -0000 @@ -2,11 +2,11 @@ Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface -10.0/16 192.0.2.4 UGS 0 0 32768 8 lo10004 -10.0/10 192.0.2.4 UGS 0 0 32768 8 lo10004 10/8 192.0.2.1 UGS 0 0 32768 8 lo10001 -10.8.0/24 192.0.2.1 UGS 0 0 32768 8 lo10001 +10.0/10 192.0.2.4 UGS 0 0 32768 8 lo10004 +10.0/16 192.0.2.4 UGS 0 0 32768 8 lo10004 10.8/16 192.0.2.3 UGS 0 0 32768 8 lo10003 +10.8.0/24 192.0.2.1 UGS 0 0 32768 8 lo10001 10.8.1/24 192.0.2.2 UGS 0 0 32768 8 lo10002 10.8.3/24 192.0.2.3 UGS 0 0 32768 8 lo10003 10.8.4/24 192.0.2.4 UGS 0 0 32768 8 lo10004 Index: regress/sbin/route/rttest19.ok =================================================================== RCS file: /cvs/src/regress/sbin/route/rttest19.ok,v retrieving revision 1.4 diff -u -p -r1.4 rttest19.ok --- regress/sbin/route/rttest19.ok 9 Nov 2015 10:49:36 -0000 1.4 +++ regress/sbin/route/rttest19.ok 16 Mar 2016 16:43:33 -0000 @@ -2,9 +2,9 @@ Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface -10.8.1.0/26 192.0.2.2 UGS 0 0 32768 8 lo10002 -10.8.1.0/25 192.0.2.4 UGS 0 0 32768 8 lo10004 10.8.1/24 192.0.2.1 UGS 0 0 32768 8 lo10001 +10.8.1.0/25 192.0.2.4 UGS 0 0 32768 8 lo10004 +10.8.1.0/26 192.0.2.2 UGS 0 0 32768 8 lo10002 192.0.2.1 192.0.2.1 UHl 0 0 32768 1 lo10001 192.0.2.2 192.0.2.2 UHl 0 0 32768 1 lo10002 192.0.2.3 192.0.2.3 UHl 0 0 32768 1 lo10003
