freebsd-skq/sys/net
Alexander V. Chernikov d375edc9b5 Simplify inet alias handling code: if we're adding/removing alias which
has the same prefix as some other alias on the same interface, use
newly-added rt_addrmsg() instead of hand-rolled in_addralias_rtmsg().

This eliminates the following rtsock messages:

Pinned RTM_ADD for prefix (for alias addition).
Pinned RTM_DELETE for prefix (for alias withdrawal).

Example (got 10.0.0.1/24 on vlan4, playing with 10.0.0.2/24):

before commit, addition:

  got message of size 116 on Fri Jan 10 14:13:15 2014
  RTM_NEWADDR: address being added to iface: len 116, metric 0, flags:
  sockaddrs: <NETMASK,IFP,IFA,BRD>
   255.255.255.0 vlan4:8.0.27.c5.29.d4 10.0.0.2 10.0.0.255

  got message of size 192 on Fri Jan 10 14:13:15 2014
  RTM_ADD: Add Route: len 192, pid: 0, seq 0, errno 0, flags:<UP,PINNED>
  locks:  inits:
  sockaddrs: <DST,GATEWAY,NETMASK>
   10.0.0.0 10.0.0.2 (255) ffff ffff ff

after commit, addition:

  got message of size 116 on Fri Jan 10 13:56:26 2014
  RTM_NEWADDR: address being added to iface: len 116, metric 0, flags:
  sockaddrs: <NETMASK,IFP,IFA,BRD>
   255.255.255.0 vlan4:8.0.27.c5.29.d4 14.0.0.2 14.0.0.255

before commit, wihdrawal:

  got message of size 192 on Fri Jan 10 13:58:59 2014
  RTM_DELETE: Delete Route: len 192, pid: 0, seq 0, errno 0, flags:<UP,PINNED>
  locks:  inits:
  sockaddrs: <DST,GATEWAY,NETMASK>
   10.0.0.0 10.0.0.2 (255) ffff ffff ff

  got message of size 116 on Fri Jan 10 13:58:59 2014
  RTM_DELADDR: address being removed from iface: len 116, metric 0, flags:
  sockaddrs: <NETMASK,IFP,IFA,BRD>
   255.255.255.0 vlan4:8.0.27.c5.29.d4 10.0.0.2 10.0.0.255

adter commit, withdrawal:

  got message of size 116 on Fri Jan 10 14:14:11 2014
  RTM_DELADDR: address being removed from iface: len 116, metric 0, flags:
  sockaddrs: <NETMASK,IFP,IFA,BRD>
   255.255.255.0 vlan4:8.0.27.c5.29.d4 10.0.0.2 10.0.0.255

Sending both RTM_ADD/RTM_DELETE messages to rtsock is completely wrong
(and requires some hacks to keep prefix in route table on RTM_DELETE).

I've tested this change with quagga (no change) and bird (*).

bird alias handling is already broken in *BSD sysdep code, so nothing
changes here, too.

I'm going to MFC this change if there will be no complains about behavior
change.

While here, fix some style(9) bugs introduced by r260488
(pointed by glebius and bde).

Sponsored by:	Yandex LLC
MFC after:	4 weeks
2014-01-10 12:13:55 +00:00
..
bpf_buffer.c Changes to resolve races in bpfread() and catchpacket() that, at worst, 2012-12-10 16:14:44 +00:00
bpf_buffer.h Call bpf_jitter() before acquiring BPF global lock due to malloc() being used inside bpf_jitter. 2012-05-21 22:19:19 +00:00
bpf_filter.c
bpf_jitter.c
bpf_jitter.h
bpf_zerocopy.c After the PHYS_TO_VM_PAGE() function was de-inlined, the main reason 2012-08-05 14:11:42 +00:00
bpf_zerocopy.h - Fix trivial typo 2012-01-14 17:07:52 +00:00
bpf.c Convert the random entropy harvesting code to use a const void * pointer 2013-11-01 20:53:49 +00:00
bpf.h Style: s/SYS_EVENTHANDLER_H/_SYS_EVENTHANDLER_H_/g 2013-10-28 20:32:05 +00:00
bpfdesc.h Changes to resolve races in bpfread() and catchpacket() that, at worst, 2012-12-10 16:14:44 +00:00
bridgestp.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
bridgestp.h Move the interface media check to a taskqueue, some interfaces (usb) sleep 2012-04-20 10:06:28 +00:00
ethernet.h Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
fddi.h
firewire.h
flowtable.c In the flowtable scanner, restart the scan at the last found position, 2013-10-15 21:28:51 +00:00
flowtable.h
ieee8023ad_lacp.c Multi-queue NIC drivers and multi-port lagg tend to use the same lower 2013-12-30 01:32:17 +00:00
ieee8023ad_lacp.h Break out the static, global LACP debug options into a per-lagg unit 2013-07-26 19:41:13 +00:00
ieee_oui.h Clean up the macros to avoid using casts. 2013-11-15 16:03:32 +00:00
if_arc.h Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
if_arcsubr.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_arp.h Migrate structs arpstat, icmpstat, mrtstat, pimstat and udpstat to PCPU 2013-07-09 09:50:15 +00:00
if_atm.h Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
if_atmsubr.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_bridge.c Include necessary headers that now are available due to pollution 2013-10-28 07:29:16 +00:00
if_bridgevar.h
if_clone.c Include necessary headers that now are available due to pollution 2013-10-28 07:29:16 +00:00
if_clone.h Style: s/SYS_EVENTHANDLER_H/_SYS_EVENTHANDLER_H_/g 2013-10-28 20:32:05 +00:00
if_dead.c Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
if_debug.c
if_disc.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_dl.h Use the LLINDEX macro to access the link-level I/F index. This makes 2012-05-19 02:39:43 +00:00
if_edsc.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_ef.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_enc.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_enc.h
if_epair.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_ethersubr.c Allow ethernet drivers to pass in packets connected via the nextpkt pointer. 2013-11-18 22:58:14 +00:00
if_faith.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_fddisubr.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_fwsubr.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_gif.c ANSIfy function defintions. 2013-11-15 12:12:50 +00:00
if_gif.h Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
if_gre.c Remove never used ioctls that originate from KAME. The proof 2013-11-11 05:39:42 +00:00
if_gre.h
if_iso88025subr.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_lagg.c Multi-queue NIC drivers and multi-port lagg tend to use the same lower 2013-12-30 01:32:17 +00:00
if_lagg.h Multi-queue NIC drivers and multi-port lagg tend to use the same lower 2013-12-30 01:32:17 +00:00
if_llatbl.c Back out r249318, r249320 and r249327 due to a heisenbug most 2013-05-06 16:42:18 +00:00
if_llatbl.h Remove include opt_ofed.h since OFED is unifdef'd. 2013-08-27 16:45:00 +00:00
if_llc.h
if_loop.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_media.c
if_media.h Provide forward declaration for struct ifnet. Consumers 2013-10-27 17:27:06 +00:00
if_mib.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_mib.h
if_pflog.h o Create directory sys/netpfil, where all packet filters should 2012-09-14 11:51:49 +00:00
if_pfsync.h Remove most of the remaining sysctl name list macros. They were only 2013-08-26 18:16:05 +00:00
if_sppp.h
if_spppfr.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_spppsubr.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_stf.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_stf.h
if_tap.c Teach every SIOCGIFSTATUS provider to fill in ifs->ascii anyway. 2014-01-07 15:59:33 +00:00
if_tap.h
if_tapvar.h Revert part of an earlier patch attempt that snuck in with r240938. 2012-09-25 23:41:45 +00:00
if_tun.c Teach every SIOCGIFSTATUS provider to fill in ifs->ascii anyway. 2014-01-07 15:59:33 +00:00
if_tun.h
if_types.h A major overhaul of the CARP implementation. The ip_carp.c was started 2011-12-16 12:16:56 +00:00
if_var.h In complemence to ifa_add_loopback_route() and ifa_del_loopback_route() 2013-11-05 07:36:17 +00:00
if_vlan_var.h Style: s/SYS_EVENTHANDLER_H/_SYS_EVENTHANDLER_H_/g 2013-10-28 20:32:05 +00:00
if_vlan.c Include necessary headers that now are available due to pollution 2013-10-28 07:29:16 +00:00
if.c Remove dead code. 2014-01-07 19:00:40 +00:00
if.h Remove never used ioctls that originate from KAME. The proof 2013-11-11 05:39:42 +00:00
ifq.h Move all interface queue related structures, macros and definitions 2013-10-29 17:48:08 +00:00
iso88025.h Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
netisr_internal.h
netisr.c Fix macro name in comment. 2013-11-26 15:23:56 +00:00
netisr.h
netmap_user.h It is 2014 and we have a new version of netmap. 2014-01-06 12:53:15 +00:00
netmap.h It is 2014 and we have a new version of netmap. 2014-01-06 12:53:15 +00:00
pfil.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
pfil.h Whitespace, style cleanups, and improved comments. 2013-08-24 12:03:24 +00:00
pfkeyv2.h
pfvar.h To support upcoming changes change internal API for source node handling: 2013-11-22 19:16:34 +00:00
ppp_defs.h Allow certain headers to be included more easily. 2013-05-21 21:20:10 +00:00
radix_mpath.c Partially fix IPv4 interface routes deletion in RADIX_MPATH. 2014-01-06 22:36:20 +00:00
radix_mpath.h
radix.c Change semantics for rnh_lookup() function: now 2014-01-04 22:25:26 +00:00
radix.h Change semantics for rnh_lookup() function: now 2014-01-04 22:25:26 +00:00
raw_cb.c vnet.h needs to be included before raw_cb.h. Now it compiles due to 2013-10-25 19:49:03 +00:00
raw_cb.h
raw_usrreq.c vnet.h needs to be included before raw_cb.h. Now it compiles due to 2013-10-25 19:49:03 +00:00
route.c Simplify inet alias handling code: if we're adding/removing alias which 2014-01-10 12:13:55 +00:00
route.h Simplify inet alias handling code: if we're adding/removing alias which 2014-01-10 12:13:55 +00:00
rtsock.c Simplify inet alias handling code: if we're adding/removing alias which 2014-01-10 12:13:55 +00:00
sff8472.h Convert #defines to enums so that the values are visible in the debugger. 2014-01-02 21:30:59 +00:00
slcompress.c
slcompress.h
vnet.c Fix build. 2013-11-27 07:21:25 +00:00
vnet.h Correct CTASSERT condition. 2013-07-09 15:10:27 +00:00
zlib.c Juggle some internal symbols from our antique zlib (that originally came 2013-01-06 14:59:59 +00:00
zlib.h Juggle some internal symbols from our antique zlib (that originally came 2013-01-06 14:59:59 +00:00
zutil.h