Index: sys/net/flowtable.c =================================================================== --- sys/net/flowtable.c (revision 261788) +++ sys/net/flowtable.c (working copy) @@ -1069,6 +1069,15 @@ RTFREE(rt); return (NULL); } + + /* Don't insert the entry if the ARP hasn't yet finished resolving */ + if ((lle->la_flags & LLE_VALID) == 0) { + RTFREE(rt); + LLE_FREE(lle); + FLOWSTAT_INC(ft, ft_fail_lle_invalid); + return (NULL); + } + ro->ro_lle = lle; if (flowtable_insert(ft, hash, key, fibnum, ro, flags) != 0) { Index: sys/net/flowtable.h =================================================================== --- sys/net/flowtable.h (revision 261788) +++ sys/net/flowtable.h (working copy) @@ -39,6 +39,7 @@ uint64_t ft_frees; uint64_t ft_hits; uint64_t ft_lookups; + uint64_t ft_fail_lle_invalid; }; #ifdef _KERNEL Index: usr.bin/netstat/flowtable.c =================================================================== --- usr.bin/netstat/flowtable.c (revision 261788) +++ usr.bin/netstat/flowtable.c (working copy) @@ -55,6 +55,7 @@ p(ft_collisions, "\t%ju collision%s\n"); p(ft_free_checks, "\t%ju free check%s\n"); p(ft_frees, "\t%ju free%s\n"); + p(ft_fail_lle_invalid, "\t%ju lookups w/ no resolved ARP%s\n"); #undef p2 #undef p