summaryrefslogtreecommitdiffstats
path: root/sys/netinet6/in6_pcb.c
diff options
context:
space:
mode:
authorume <ume@FreeBSD.org>2003-10-01 21:24:28 +0000
committerume <ume@FreeBSD.org>2003-10-01 21:24:28 +0000
commitdff1ad31d578de8652ddb2af57b20afeef17161b (patch)
tree40cbf0f17e6e447a893c3c70e1a6ee492c6a779e /sys/netinet6/in6_pcb.c
parent1510816eb2189f841fa0c9d83a1491b4e9228642 (diff)
downloadFreeBSD-src-dff1ad31d578de8652ddb2af57b20afeef17161b.zip
FreeBSD-src-dff1ad31d578de8652ddb2af57b20afeef17161b.tar.gz
randomize IPv6 flowlabel when RANDOM_IP_ID is defined.
Obtained from: KAME
Diffstat (limited to 'sys/netinet6/in6_pcb.c')
-rw-r--r--sys/netinet6/in6_pcb.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/netinet6/in6_pcb.c b/sys/netinet6/in6_pcb.c
index ab59d52..f160661 100644
--- a/sys/netinet6/in6_pcb.c
+++ b/sys/netinet6/in6_pcb.c
@@ -69,6 +69,7 @@
#include "opt_inet.h"
#include "opt_inet6.h"
#include "opt_ipsec.h"
+#include "opt_random_ip_id.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -402,7 +403,11 @@ in6_pcbconnect(inp, nam, td)
inp->in6p_flowinfo &= ~IPV6_FLOWLABEL_MASK;
if (inp->in6p_flags & IN6P_AUTOFLOWLABEL)
inp->in6p_flowinfo |=
+#ifdef RANDOM_IP_ID
+ (htonl(ip6_randomflowlabel()) & IPV6_FLOWLABEL_MASK);
+#else
(htonl(ip6_flow_seq++) & IPV6_FLOWLABEL_MASK);
+#endif
in_pcbrehash(inp);
return (0);
OpenPOWER on IntegriCloud