Index: sys/netinet6/ip6_id.c =================================================================== --- sys/netinet6/ip6_id.c +++ sys/netinet6/ip6_id.c @@ -89,6 +89,7 @@ #include #include #include +#include #include #include @@ -258,5 +259,15 @@ ip6_randomflowlabel(void) { + /* + * It's ok to emit zero flow labels early, before random is available + * (seeded). RFC 6437: + * + * "A Flow Label of zero is used to indicate packets that have not been + * labeled." + */ + if (__predict_false(!is_random_seeded())) + return (0); + return randomid(&randomtab_20) & 0xfffff; }