diff options
author | thompsa <thompsa@FreeBSD.org> | 2007-05-15 07:59:49 +0000 |
---|---|---|
committer | thompsa <thompsa@FreeBSD.org> | 2007-05-15 07:59:49 +0000 |
commit | 718e1380f9f49f396998f4d32eefe0c5af4cb061 (patch) | |
tree | eef53a9686433e04b36c75b85c5d78d4c3e37873 /sys/net/if_lagg.c | |
parent | 1eb8d76bed26546baab610bdf8db03724e5e4b16 (diff) | |
download | FreeBSD-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.c | 4 |
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 } |