* Map a (hashtype, hash) tuple into a connection group, or NULL if the hash * information is insufficient to identify the pcbgroup. This might occur if * a TCP packet turnsup with a 2-tuple hash, or if an RSS hash is present but * RSS is not compiled into the kernel. */
| 72 | * RSS is not compiled into the kernel. |
| 73 | */ |
| 74 | struct inpcbgroup * |
| 75 | in6_pcbgroup_byhash(struct inpcbinfo *pcbinfo, u_int hashtype, uint32_t hash) |
| 76 | { |
| 77 | |
| 78 | #ifdef RSS |
| 79 | if ((pcbinfo->ipi_hashfields == IPI_HASHFIELDS_4TUPLE && |
| 80 | hashtype == M_HASHTYPE_RSS_TCP_IPV6) || |
| 81 | (pcbinfo->ipi_hashfields == IPI_HASHFIELDS_4TUPLE && |
| 82 | hashtype == M_HASHTYPE_RSS_UDP_IPV6) || |
| 83 | (pcbinfo->ipi_hashfields == IPI_HASHFIELDS_2TUPLE && |
| 84 | hashtype == M_HASHTYPE_RSS_IPV6)) |
| 85 | return (&pcbinfo->ipi_pcbgroups[ |
| 86 | in6_pcbgroup_getbucket(pcbinfo, hash)]); |
| 87 | #endif |
| 88 | return (NULL); |
| 89 | } |
| 90 | |
| 91 | struct inpcbgroup * |
| 92 | in6_pcbgroup_bymbuf(struct inpcbinfo *pcbinfo, struct mbuf *m) |
no test coverage detected