* Hash an IPv6 4-tuple. */
| 84 | * Hash an IPv6 4-tuple. |
| 85 | */ |
| 86 | uint32_t |
| 87 | rss_hash_ip6_4tuple(const struct in6_addr *src, u_short srcport, |
| 88 | const struct in6_addr *dst, u_short dstport) |
| 89 | { |
| 90 | uint8_t data[sizeof(*src) + sizeof(*dst) + sizeof(srcport) + |
| 91 | sizeof(dstport)]; |
| 92 | u_int datalen; |
| 93 | |
| 94 | datalen = 0; |
| 95 | bcopy(src, &data[datalen], sizeof(*src)); |
| 96 | datalen += sizeof(*src); |
| 97 | bcopy(dst, &data[datalen], sizeof(*dst)); |
| 98 | datalen += sizeof(*dst); |
| 99 | bcopy(&srcport, &data[datalen], sizeof(srcport)); |
| 100 | datalen += sizeof(srcport); |
| 101 | bcopy(&dstport, &data[datalen], sizeof(dstport)); |
| 102 | datalen += sizeof(dstport); |
| 103 | return (rss_hash(datalen, data)); |
| 104 | } |
| 105 | |
| 106 | /* |
| 107 | * Calculate an appropriate ipv6 2-tuple or 4-tuple given the given |
no test coverage detected