ARP has a queue of packets that should be sent after name resolution.
authorbluhm <bluhm@openbsd.org>
Wed, 5 Apr 2023 19:35:23 +0000 (19:35 +0000)
committerbluhm <bluhm@openbsd.org>
Wed, 5 Apr 2023 19:35:23 +0000 (19:35 +0000)
commite0e67b981de1c260417f1b68fd50d5ec01427a2a
treede410907dd6ca2a0a9a99eb0563b2b1d9276d4cb
parent9ee09a72e6c8016a485720a00fd3c678900cc48d
ARP has a queue of packets that should be sent after name resolution.
ND6 did only hold a single packet.  Unify the logic and add a mbuf
hold queue to struct llinfo_nd6.  This is MP safe and queue limits
are tracked with atomic operations.  New function if_mqoutput() has
common code for ARP and ND6.  ln_saddr6 holds the source address
of the requesting packet.  That is easier than fiddling with mbuf
queue in nd6_ns_output().
OK kn@
sys/net/if.c
sys/net/if_var.h
sys/netinet/if_ether.c
sys/netinet6/nd6.c
sys/netinet6/nd6.h
sys/netinet6/nd6_nbr.c