NetBSD/sys/netinet
knakahara 77dab346ef Fix sending broken RTM_DELADDR message in some operations.
Here is mininum reproduction operation.
====================
# ifconfig ixg0 172.16.0.1/29
# route monitor &
# ifconfig pppoe0 172.16.0.1/32 0.0.0.1
====================

The broken RTM_DELADDR is the following.
====================
got message of size 72 on Thu Nov 17 12:50:42 2022
#13: len 72, got message of size 80 on Thu Nov 17 12:50:42 2022
RTM_DELADDR: address being removed from iface: len 80, pid 3552, metric 0, addrflags: 0
sockaddrs: 0xb4<NETMASK,IFP,IFA,BRD>
 Q00.00.ff.ff.ff.ff.00.00.00.00.00.00.00.00 pppoe0 default default
====================

This problem is related to the following two commit.

(1) b021021468
    that is, sys/netinet/in.c:r1.183

(2) 61bad33c44
    that is, sys/netinet/in.c:r1.185

(1) adds in_scrubaddr() for old addresses to in_ifinit() without checking
IFA_ROUTE.
And then, (2) removes in_ifscrub() for POINTTOPOINT interface in in_control0.
The removed in_ifscrub() is called with checking IFA_ROUTE.
It seems these modifications about checking IFA_ROUTE logic causes this
problem, however the real reason is calling in_ifscrub() for the interface
which does not have IPv4 address.  So, scrubbing old address processing
should be done only if the interface already has IPv4 address.
2022-11-17 05:02:11 +00:00
..
Makefile Remove in_pcb_hdr.h 2022-10-28 05:23:09 +00:00
accept_filter.h s/creting/creating/ 2022-01-01 13:18:43 +00:00
accf_data.c
accf_http.c
cpu_in_cksum.c
dccp.h
dccp_cc_sw.c
dccp_cc_sw.h
dccp_tcplike.c fix various small typos, mainly in comments. 2022-05-22 11:27:33 +00:00
dccp_tcplike.h
dccp_tfrc.c s/occured/occurred/ in comments, log messages and man pages. 2021-12-10 20:36:02 +00:00
dccp_tfrc.h
dccp_tfrc_lookup.h
dccp_usrreq.c inpcb: rename functions to in6pcb_* 2022-11-04 09:01:53 +00:00
dccp_var.h Adjust pf, wg, dccp and sctp for struct inpcb integration 2022-10-28 05:20:08 +00:00
files.ipfilter
files.netinet tcp: separate syn cache stuffs into tcp_syncache.[ch] files 2022-09-20 07:19:14 +00:00
icmp6.h Add sysctl entry to control to send routing message for RTM_DYNAMIC. 2022-08-29 09:14:02 +00:00
icmp_private.h - pass the alignment instead of the mask (as Roy asked and to match the 2021-02-17 22:32:04 +00:00
icmp_var.h Add sysctl entry to control to send routing message for RTM_DYNAMIC. 2022-08-29 09:14:02 +00:00
if_arp.c arp: Validate ARP source hardware address matches Ethernet source 2022-11-15 10:47:39 +00:00
if_ether.h Guard CTASSERT 2021-02-03 17:10:13 +00:00
if_inarp.h Convert ARP from a legacy netisr to pktqueue. 2022-09-03 01:35:03 +00:00
igmp.c
igmp.h CTASSERT -> __CTASSERT to unbreak userland build. 2021-02-03 18:13:13 +00:00
igmp_var.h - pass the alignment instead of the mask (as Roy asked and to match the 2021-02-17 22:32:04 +00:00
in.c Fix sending broken RTM_DELADDR message in some operations. 2022-11-17 05:02:11 +00:00
in.h CTASSERT -> __CTASSERT to unbreak userland build. 2021-02-03 18:13:13 +00:00
in4_cksum.c
in_cksum.c
in_gif.c
in_gif.h
in_ifattach.h
in_l2tp.c - Make ALIGNED_POINTER use __alignof(t) instead of sizeof(t). This is more 2021-02-19 14:51:59 +00:00
in_l2tp.h
in_offload.c
in_offload.h
in_pcb.c ipcb: add/update the description of functions 2022-11-04 09:05:41 +00:00
in_pcb.h inpcb: use in_port_t for port numbers 2022-11-04 09:03:20 +00:00
in_print.c
in_proto.c Garbage-collect everything related to struct domain::dom_ifqueues 2022-09-03 02:53:18 +00:00
in_proto.h
in_selsrc.c
in_selsrc.h
in_systm.h
in_var.h mv <sys/cprng.h> include to the kernel portion 2021-03-08 22:01:18 +00:00
ip.h fix various typos in comments. 2022-04-17 21:24:52 +00:00
ip6.h netinet/netinet6: Add necessary includes to make these standalone. 2021-03-07 15:01:00 +00:00
ip_carp.c Remove unnecessary inclusion of <net/netisr.h>. 2022-09-02 23:48:10 +00:00
ip_carp.h CTASSERT -> __CTASSERT to unbreak userland build. 2021-02-03 18:13:13 +00:00
ip_ecn.c
ip_ecn.h
ip_encap.c
ip_encap.h
ip_flow.c - Make ALIGNED_POINTER use __alignof(t) instead of sizeof(t). This is more 2021-02-19 14:51:59 +00:00
ip_icmp.c Add sysctl entry to control to send routing message for RTM_DYNAMIC. 2022-08-29 09:14:02 +00:00
ip_icmp.h fix various typos in comment, documentation and log messages. 2022-05-24 20:50:17 +00:00
ip_input.c pktqueue: Re-factor sysctl handling. 2022-09-02 03:50:00 +00:00
ip_mroute.c s/heaader/header/ 2022-03-15 21:39:59 +00:00
ip_mroute.h CTASSERT -> __CTASSERT to unbreak userland build. 2021-02-03 18:13:13 +00:00
ip_output.c inpcb: rename functions to inpcb_* 2022-11-04 09:00:58 +00:00
ip_private.h - Make ALIGNED_POINTER use __alignof(t) instead of sizeof(t). This is more 2021-02-19 14:51:59 +00:00
ip_reass.c fix various typos in comments, documentation and messages. 2022-05-31 08:43:13 +00:00
ip_var.h fix various typos in comments and output/log messages. 2022-04-10 09:50:44 +00:00
pim.h
pim_var.h
portalgo.c inpcb: rename functions to in6pcb_* 2022-11-04 09:01:53 +00:00
portalgo.h inpcb: integrate data structures of PCB into one 2022-10-28 05:18:39 +00:00
raw_ip.c inpcb: rename functions to inpcb_* 2022-11-04 09:00:58 +00:00
sctp.h fix various typos in comments, mainly copypasta. 2021-10-24 20:00:11 +00:00
sctp_asconf.c
sctp_asconf.h
sctp_constants.h s/yeild/yield/ 2022-05-18 13:37:52 +00:00
sctp_crc32.c
sctp_crc32.h
sctp_hashdriver.c
sctp_hashdriver.h
sctp_header.h s/convience/convenience/ in comment. 2021-12-05 04:28:53 +00:00
sctp_indata.c fix various typos in comments. 2022-05-28 22:16:43 +00:00
sctp_indata.h
sctp_input.c s/postion/position/ 2022-04-08 10:27:04 +00:00
sctp_input.h
sctp_output.c inpcb: rename functions to in6pcb_* 2022-11-04 09:01:53 +00:00
sctp_output.h
sctp_pcb.c fix various typos in documentation and comments. 2022-10-15 21:53:21 +00:00
sctp_pcb.h Adjust dccp and sctp for struct inpcb separation 2022-10-28 05:26:29 +00:00
sctp_peeloff.c
sctp_peeloff.h
sctp_route.h
sctp_structs.h
sctp_timer.c fix various typos, mainly in comments. 2022-02-16 22:00:55 +00:00
sctp_timer.h
sctp_uio.h
sctp_usrreq.c inpcb: rename functions to inpcb_* 2022-11-04 09:00:58 +00:00
sctp_var.h
sctputil.c s/postion/position/ 2022-04-08 10:27:04 +00:00
sctputil.h
tcp.h CTASSERT -> __CTASSERT to unbreak userland build. 2021-02-03 18:13:13 +00:00
tcp_congctl.c s/threshhold/threshold 2021-07-31 20:29:36 +00:00
tcp_congctl.h
tcp_debug.c
tcp_debug.h CTASSERT -> __CTASSERT to unbreak userland build. 2021-02-03 18:13:13 +00:00
tcp_fsm.h
tcp_input.c inpcb: rename functions to in6pcb_* 2022-11-04 09:01:53 +00:00
tcp_output.c inpcb: rename functions to in6pcb_* 2022-11-04 09:01:53 +00:00
tcp_private.h - Make ALIGNED_POINTER use __alignof(t) instead of sizeof(t). This is more 2021-02-19 14:51:59 +00:00
tcp_sack.c
tcp_seq.h
tcp_subr.c inpcb: rename functions to in6pcb_* 2022-11-04 09:01:53 +00:00
tcp_syncache.c inpcb: rename functions to in6pcb_* 2022-11-04 09:01:53 +00:00
tcp_syncache.h syncache: make some functions static 2022-09-20 10:12:18 +00:00
tcp_timer.c inpcb: rename functions to inpcb_* 2022-11-04 09:00:58 +00:00
tcp_timer.h
tcp_usrreq.c inpcb: rename functions to in6pcb_* 2022-11-04 09:01:53 +00:00
tcp_var.h inpcb: integrate data structures of PCB into one 2022-10-28 05:18:39 +00:00
tcp_vtw.c inpcb: rename functions to inpcb_* 2022-11-04 09:00:58 +00:00
tcp_vtw.h
tcpip.h
udp.h CTASSERT -> __CTASSERT to unbreak userland build. 2021-02-03 18:13:13 +00:00
udp_private.h - Make ALIGNED_POINTER use __alignof(t) instead of sizeof(t). This is more 2021-02-19 14:51:59 +00:00
udp_usrreq.c inpcb: rename functions to inpcb_* 2022-11-04 09:00:58 +00:00
udp_var.h Sprinkle CTASSERT to enforce on-wire layout without __packed 2021-02-03 11:53:43 +00:00
wqinput.c
wqinput.h