summaryrefslogtreecommitdiffstats
path: root/sys/net/if_lagg.c
diff options
context:
space:
mode:
authorthompsa <thompsa@FreeBSD.org>2007-05-15 07:59:49 +0000
committerthompsa <thompsa@FreeBSD.org>2007-05-15 07:59:49 +0000
commit718e1380f9f49f396998f4d32eefe0c5af4cb061 (patch)
treeeef53a9686433e04b36c75b85c5d78d4c3e37873 /sys/net/if_lagg.c
parent1eb8d76bed26546baab610bdf8db03724e5e4b16 (diff)
downloadFreeBSD-src-718e1380f9f49f396998f4d32eefe0c5af4cb061.zip
FreeBSD-src-718e1380f9f49f396998f4d32eefe0c5af4cb061.tar.gz
Feed ipv6 flowlabel to hash calculation.
Obtained from: NetBSD
Diffstat (limited to 'sys/net/if_lagg.c')
-rw-r--r--sys/net/if_lagg.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/net/if_lagg.c b/sys/net/if_lagg.c
index 2ab1185..c951153 100644
--- a/sys/net/if_lagg.c
+++ b/sys/net/if_lagg.c
@@ -1199,7 +1199,7 @@ uint32_t
lagg_hashmbuf(struct mbuf *m, uint32_t key)
{
uint16_t etype;
- uint32_t p = 0;
+ uint32_t flow, p = 0;
int off;
struct ether_header *eh;
struct ether_vlan_header vlanbuf;
@@ -1254,6 +1254,8 @@ lagg_hashmbuf(struct mbuf *m, uint32_t key)
p = hash32_buf(&ip6->ip6_src, sizeof(struct in6_addr), p);
p = hash32_buf(&ip6->ip6_dst, sizeof(struct in6_addr), p);
+ flow = ip6->ip6_flow & IPV6_FLOWLABEL_MASK;
+ p = hash32_buf(&flow, sizeof(flow), p); /* IPv6 flow label */
break;
#endif
}
OpenPOWER on IntegriCloud