NetBSD/sys/netinet
ozaki-r 09973b35ac Separate nexthop caches from the routing table
By this change, nexthop caches (IP-MAC address pair) are not stored
in the routing table anymore. Instead nexthop caches are stored in
each network interface; we already have lltable/llentry data structure
for this purpose. This change also obsoletes the concept of cloning/cloned
routes. Cloned routes no longer exist while cloning routes still exist
with renamed to connected routes.

Noticeable changes are:
- Nexthop caches aren't listed in route show/netstat -r
  - sysctl(NET_RT_DUMP) doesn't return them
  - If RTF_LLDATA is specified, it returns nexthop caches
- Several definitions of routing flags and messages are removed
  - RTF_CLONING, RTF_XRESOLVE, RTF_LLINFO, RTF_CLONED and RTM_RESOLVE
- RTF_CONNECTED is added
  - It has the same value of RTF_CLONING for backward compatibility
- route's -xresolve, -[no]cloned and -llinfo options are removed
  - -[no]cloning remains because it seems there are users
  - -[no]connected is introduced and recommended
    to be used instead of -[no]cloning
- route show/netstat -r drops some flags
  - 'L' and 'c' are not seen anymore
  - 'C' now indicates a connected route
- Gateway value of a route of an interface address is now not
  a L2 address but "link#N" like a connected (cloning) route
- Proxy ARP: "arp -s ... pub" doesn't create a route

You can know details of behavior changes by seeing diffs under tests/.

Proposed on tech-net and tech-kern:
  http://mail-index.netbsd.org/tech-net/2016/03/11/msg005701.html
2016-04-04 07:37:07 +00:00
..
accept_filter.h
accf_data.c include "ioconf.h" to get the 'void <driver>attach(int count);' prototype. 2015-08-20 14:40:16 +00:00
accf_http.c include "ioconf.h" to get the 'void <driver>attach(int count);' prototype. 2015-08-20 14:40:16 +00:00
cpu_in_cksum.c
dccp_cc_sw.c sprinkle _KERNEL_OPT 2015-08-24 22:21:26 +00:00
dccp_cc_sw.h Add DCCP protocol support from KAME. 2015-02-10 19:11:52 +00:00
dccp_tcplike.c sprinkle _KERNEL_OPT 2015-08-24 22:21:26 +00:00
dccp_tcplike.h Add DCCP protocol support from KAME. 2015-02-10 19:11:52 +00:00
dccp_tfrc_lookup.h Add DCCP protocol support from KAME. 2015-02-10 19:11:52 +00:00
dccp_tfrc.c sprinkle _KERNEL_OPT 2015-08-24 22:21:26 +00:00
dccp_tfrc.h Add DCCP protocol support from KAME. 2015-02-10 19:11:52 +00:00
dccp_usrreq.c sprinkle _KERNEL_OPT 2015-08-24 22:21:26 +00:00
dccp_var.h make connect syscall use sockaddr_big and modify pr_{send,connect} 2015-05-02 17:18:03 +00:00
dccp.h Add DCCP protocol support from KAME. 2015-02-10 19:11:52 +00:00
files.ipfilter
files.netinet Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
icmp6.h Add MLD_LISTENER_REDUCTION per RFC 3542. Requested by Lorenzo Colitti. 2013-07-01 12:43:15 +00:00
icmp_private.h
icmp_var.h PR/49676: Ryo Shimizu: ICMP_STATINC() buffer overflows 2015-02-18 17:00:15 +00:00
if_arp.c Separate nexthop caches from the routing table 2016-04-04 07:37:07 +00:00
if_atm.c Separate nexthop caches from the routing table 2016-04-04 07:37:07 +00:00
if_atm.h
if_ether.h
if_inarp.h Make arp_init, in_revarpinput and revarprequest static 2015-05-21 09:26:18 +00:00
igmp_var.h Make IGMP and multicast group management code MP-safe. Use a read-write 2014-05-29 23:02:48 +00:00
igmp.c sprinkle _KERNEL_OPT 2015-08-24 22:21:26 +00:00
igmp.h Make IGMP and multicast group management code MP-safe. Use a read-write 2014-05-29 23:02:48 +00:00
in4_cksum.c Only check that the offset < sizeof(struct ip) if nxt != 0, i.e. in the 2014-11-30 18:15:41 +00:00
in_cksum.c
in_gif.c eliminate variable argument in encapsw 2016-01-26 06:00:10 +00:00
in_gif.h eliminate variable argument in encapsw 2016-01-26 06:00:10 +00:00
in_ifattach.h
in_offload.c Pull out route lookups from L2 output routines 2015-06-04 09:19:59 +00:00
in_offload.h
in_pcb_hdr.h Introduce 2 new variables: ipsec_enabled and ipsec_used. 2014-05-30 01:39:03 +00:00
in_pcb.c Reduce code duplication. 2016-02-15 14:59:03 +00:00
in_pcb.h remove transitional functions in{,6}_pcbconnect_m() that were used in 2015-05-24 15:43:45 +00:00
in_print.c add routines to print in_addr and sockaddr_in (in_print and sin_print) 2014-12-02 19:35:27 +00:00
in_proto.c Revert previous: ran cvs commit when I meant cvs diff. Sorry! 2016-01-21 15:41:29 +00:00
in_proto.h Revert previous: ran cvs commit when I meant cvs diff. Sorry! 2016-01-21 15:41:29 +00:00
in_selsrc.c Make this compile again 2015-09-21 13:32:26 +00:00
in_selsrc.h Hook up lltable/llentry with the kernel (and rumpkernel) 2015-08-31 08:02:44 +00:00
in_systm.h
in_var.h Replace ARP cache (llinfo) with lltable/llentry 2015-08-31 08:05:20 +00:00
in.c Separate nexthop caches from the routing table 2016-04-04 07:37:07 +00:00
in.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
ip6.h
ip_carp.c Separate nexthop caches from the routing table 2016-04-04 07:37:07 +00:00
ip_carp.h KNF 2014-07-31 00:58:02 +00:00
ip_ecn.c sprinkle _KERNEL_OPT 2015-08-24 22:21:26 +00:00
ip_ecn.h
ip_encap.c To eliminate gif_softc_list linear search, add extra argument to encapsw.pr_ctlinput(). 2016-02-26 07:35:17 +00:00
ip_encap.h remove unnecessary declarations and fix KNF 2016-02-29 01:29:15 +00:00
ip_etherip.c Introduce softint-based if_input 2016-02-09 08:32:07 +00:00
ip_etherip.h
ip_flow.c Add RTF_BROADCAST to mark routes used for the broadcast address when 2015-03-23 18:33:17 +00:00
ip_icmp.c Remove unnecessary casts and do s/0/NULL/ for rtrequest 2016-04-01 09:16:02 +00:00
ip_icmp.h PR/49676: Ryo Shimizu: ICMP_STATINC() buffer overflows 2015-02-18 17:00:15 +00:00
ip_id.c
ip_input.c Revert previous: ran cvs commit when I meant cvs diff. Sorry! 2016-01-21 15:41:29 +00:00
ip_mroute.c eliminate variable argument in encapsw 2016-01-26 06:00:10 +00:00
ip_mroute.h
ip_output.c Give proper prototype to ip_output. 2016-01-20 22:12:22 +00:00
ip_private.h
ip_reass.c Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before 2014-02-25 18:30:08 +00:00
ip_var.h Give proper prototype to ip_output. 2016-01-20 22:12:22 +00:00
ip.h fix typo 2012-11-02 21:07:07 +00:00
Makefile Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
pim_var.h
pim.h
portalgo.c sprinkle _KERNEL_OPT 2015-08-24 22:21:26 +00:00
portalgo.h Add a new sysctl to mark ports as reserved, so that they are not used in 2012-11-29 02:07:20 +00:00
raw_ip.c Revert previous: ran cvs commit when I meant cvs diff. Sorry! 2016-01-21 15:41:29 +00:00
sctp_asconf.c Replace generic queue macros with IFNET/IFADDR macros. 2016-04-03 09:57:40 +00:00
sctp_asconf.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_constants.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_crc32.c Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_crc32.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_hashdriver.c Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_hashdriver.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_header.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_indata.c Fix building of IPv4-Mapped IPv6 addresses. 2016-02-15 19:00:42 +00:00
sctp_indata.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_input.c Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_input.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_output.c Replace generic queue macros with IFNET/IFADDR macros. 2016-04-03 09:57:40 +00:00
sctp_output.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_pcb.c Replace generic queue macros with IFNET/IFADDR macros. 2016-04-03 09:57:40 +00:00
sctp_pcb.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_peeloff.c Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_peeloff.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_structs.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_timer.c Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_timer.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_uio.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp_usrreq.c Replace generic queue macros with IFNET/IFADDR macros. 2016-04-03 09:57:40 +00:00
sctp_var.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctp.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
sctputil.c Replace generic queue macros with IFNET/IFADDR macros. 2016-04-03 09:57:40 +00:00
sctputil.h Add core networking support for SCTP. 2015-10-13 21:28:34 +00:00
tcp_congctl.c sprinkle _KERNEL_OPT 2015-08-24 22:21:26 +00:00
tcp_congctl.h * implement TCP CUBIC congestion control algorithm 2013-11-12 09:02:05 +00:00
tcp_debug.c sprinkle _KERNEL_OPT 2015-08-24 22:21:26 +00:00
tcp_debug.h
tcp_fsm.h
tcp_input.c Reduce code duplication. 2016-02-15 14:59:03 +00:00
tcp_output.c sprinkle _KERNEL_OPT 2015-08-24 22:21:26 +00:00
tcp_private.h
tcp_sack.c sprinkle _KERNEL_OPT 2015-08-24 22:21:26 +00:00
tcp_seq.h fix some case of reference to uninitialized tp->snd_fack. 2014-07-25 17:53:59 +00:00
tcp_subr.c Reduce code duplication. 2016-02-15 14:59:03 +00:00
tcp_timer.c sprinkle _KERNEL_OPT 2015-08-24 22:21:26 +00:00
tcp_timer.h
tcp_usrreq.c Reduce code duplication. 2016-02-15 14:59:03 +00:00
tcp_var.h Change the new counter variables in struct tcpcb to uint32_t, as 2015-02-14 22:09:53 +00:00
tcp_vtw.c sprinkle _KERNEL_OPT 2015-08-24 22:21:26 +00:00
tcp_vtw.h Add RCS keyword. Avoid overflow in constant. 2012-11-23 14:48:31 +00:00
tcp.h Port over the TCP_INFO socket option from FreeBSD, originally from 2015-02-14 12:57:52 +00:00
tcpip.h
udp_private.h
udp_usrreq.c Reduce code duplication. 2016-02-15 14:59:03 +00:00
udp_var.h Give proper prototype to udp_output. 2016-01-20 22:01:18 +00:00
udp.h PR/46602: Move the rfc6056 port randomization to the IP layer. 2012-06-22 14:54:34 +00:00