freebsd-skq/sys/net
Adrian Chadd 0e778c88c9 Don't insert a flowtable entry if the lle isn't yet valid.
Some of the collisions that are occuring are due to flowtable lookups
that succeed but have an invalid lle - typically because the L2 adjacency
lookup hasn't completed.  This would lead to a follow-up insert which
would then fail (ie, collision) and the code would fall through to doing
a slow-path L2/L3 lookup in the netinet/netinet6 code.

This patch simply aborts storing a new flowtable entry if the lle isn't
yet valid.

Whilst I'm here, add a new pcpu counter for the item so the number of
failures can be tracked separately from generic "collisions."

Reviewed by:	glebius
MFC after:	10 days
Sponsored by:	Netflix, Inc.
2014-02-14 00:05:09 +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
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 Don't insert a flowtable entry if the lle isn't yet valid. 2014-02-14 00:05:09 +00:00
flowtable.h Don't insert a flowtable entry if the lle isn't yet valid. 2014-02-14 00:05:09 +00:00
ieee8023ad_lacp.c Simplify filling sockaddr_dl structure for if_resolvemulti() 2014-01-18 23:24:51 +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 Simplify filling sockaddr_dl structure for if_resolvemulti() 2014-01-18 23:24:51 +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 Simplify filling sockaddr_dl structure for if_resolvemulti() 2014-01-18 23:24:51 +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 Simplify filling sockaddr_dl structure for if_resolvemulti() 2014-01-18 23:24:51 +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 Simplify filling sockaddr_dl structure for if_resolvemulti() 2014-01-18 23:24:51 +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 Simplify filling sockaddr_dl structure for if_resolvemulti() 2014-01-18 23:24:51 +00:00
if_lagg.c Simplify filling sockaddr_dl structure for if_resolvemulti() 2014-01-18 23:24:51 +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
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 Simplify filling sockaddr_dl structure for if_resolvemulti() 2014-01-18 23:24:51 +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 forgot to update this file in 2607000 2014-01-17 04:38:58 +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 Revert accidentially leaked changes in r261627. 2014-02-08 09:57:52 +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 o Revamp API between flowtable and netinet, netinet6. 2014-02-07 15:18:23 +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 Remove identical vnet sysctl handlers, and handle CTLFLAG_VNET 2014-02-07 13:47:33 +00:00
vnet.h Fixup for r261590 (vnet sysctl handlers cleanup). 2014-02-09 08:13:17 +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