agrether_hashmbuf: feed ipv6 flowlabel to hash calculation.
This commit is contained in:
parent
0c85e08d0f
commit
3c8e37e03e
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: if_agrether_hash.c,v 1.2 2005/12/11 12:24:54 christos Exp $ */
|
/* $NetBSD: if_agrether_hash.c,v 1.3 2007/05/05 18:23:23 yamt Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c)2005 YAMAMOTO Takashi,
|
* Copyright (c)2005 YAMAMOTO Takashi,
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: if_agrether_hash.c,v 1.2 2005/12/11 12:24:54 christos Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: if_agrether_hash.c,v 1.3 2007/05/05 18:23:23 yamt Exp $");
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/mbuf.h>
|
#include <sys/mbuf.h>
|
||||||
|
@ -127,6 +127,7 @@ agrether_hashmbuf(struct agr_softc *sc, struct mbuf *m)
|
||||||
} else if (etype == htobe16(ETHERTYPE_IPV6)) {
|
} else if (etype == htobe16(ETHERTYPE_IPV6)) {
|
||||||
struct ip6_hdr ip6_store;
|
struct ip6_hdr ip6_store;
|
||||||
const struct ip6_hdr *ip6;
|
const struct ip6_hdr *ip6;
|
||||||
|
uint32_t flowlabel;
|
||||||
|
|
||||||
ip6 = agr_m_extract(m, off, sizeof(*ip6), &ip6_store);
|
ip6 = agr_m_extract(m, off, sizeof(*ip6), &ip6_store);
|
||||||
if (ip6 == NULL) {
|
if (ip6 == NULL) {
|
||||||
|
@ -137,7 +138,8 @@ agrether_hashmbuf(struct agr_softc *sc, struct mbuf *m)
|
||||||
hash = HASH(&ip6->ip6_dst, sizeof(ip6->ip6_dst), hash);
|
hash = HASH(&ip6->ip6_dst, sizeof(ip6->ip6_dst), hash);
|
||||||
/* hash = HASH(&ip6->ip6_nxt, sizeof(ip6->ip6_nxt), hash); */
|
/* hash = HASH(&ip6->ip6_nxt, sizeof(ip6->ip6_nxt), hash); */
|
||||||
|
|
||||||
/* use flow label? */
|
flowlabel = ip6->ip6_flow & IPV6_FLOWLABEL_MASK;
|
||||||
|
hash = HASH(&flowlabel, sizeof(flowlabel), hash);
|
||||||
|
|
||||||
/* use port numbers for tcp and udp? */
|
/* use port numbers for tcp and udp? */
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue