Lines Matching full:caps

409 	struct ndis_rss_caps in, caps;  in hn_rndis_query_rsscaps()  local
426 &in, NDIS_RSS_CAPS_SIZE, &caps, &caps_len, NDIS_RSS_CAPS_SIZE_6_0); in hn_rndis_query_rsscaps()
433 if (caps.ndis_hdr.ndis_type != NDIS_OBJTYPE_RSS_CAPS) { in hn_rndis_query_rsscaps()
435 caps.ndis_hdr.ndis_type); in hn_rndis_query_rsscaps()
438 if (caps.ndis_hdr.ndis_rev < NDIS_RSS_CAPS_REV_1) { in hn_rndis_query_rsscaps()
440 caps.ndis_hdr.ndis_rev); in hn_rndis_query_rsscaps()
443 if (caps.ndis_hdr.ndis_size > caps_len) { in hn_rndis_query_rsscaps()
445 "data size %zu\n", caps.ndis_hdr.ndis_size, caps_len); in hn_rndis_query_rsscaps()
447 } else if (caps.ndis_hdr.ndis_size < NDIS_RSS_CAPS_SIZE_6_0) { in hn_rndis_query_rsscaps()
449 caps.ndis_hdr.ndis_size); in hn_rndis_query_rsscaps()
456 if (caps.ndis_nrxr == 0) { in hn_rndis_query_rsscaps()
461 if_printf(sc->hn_ifp, "%u RX rings\n", caps.ndis_nrxr); in hn_rndis_query_rsscaps()
462 rxr_cnt = caps.ndis_nrxr; in hn_rndis_query_rsscaps()
464 if (caps.ndis_hdr.ndis_size == NDIS_RSS_CAPS_SIZE && in hn_rndis_query_rsscaps()
465 caps.ndis_hdr.ndis_rev >= NDIS_RSS_CAPS_REV_2) { in hn_rndis_query_rsscaps()
466 if (caps.ndis_nind > NDIS_HASH_INDCNT) { in hn_rndis_query_rsscaps()
469 caps.ndis_nind); in hn_rndis_query_rsscaps()
472 if (!powerof2(caps.ndis_nind)) { in hn_rndis_query_rsscaps()
474 "power-of-2 %u\n", caps.ndis_nind); in hn_rndis_query_rsscaps()
479 caps.ndis_nind); in hn_rndis_query_rsscaps()
481 indsz = caps.ndis_nind; in hn_rndis_query_rsscaps()
496 hash_fnidx = ffs(caps.ndis_caps & NDIS_RSS_CAP_HASHFUNC_MASK); in hn_rndis_query_rsscaps()
498 if_printf(sc->hn_ifp, "no hash functions, caps 0x%08x\n", in hn_rndis_query_rsscaps()
499 caps.ndis_caps); in hn_rndis_query_rsscaps()
504 if (caps.ndis_caps & NDIS_RSS_CAP_IPV4) in hn_rndis_query_rsscaps()
506 if (caps.ndis_caps & NDIS_RSS_CAP_IPV6) in hn_rndis_query_rsscaps()
508 if (caps.ndis_caps & NDIS_RSS_CAP_IPV6_EX) in hn_rndis_query_rsscaps()
511 if_printf(sc->hn_ifp, "no hash types, caps 0x%08x\n", in hn_rndis_query_rsscaps()
512 caps.ndis_caps); in hn_rndis_query_rsscaps()
516 if_printf(sc->hn_ifp, "RSS caps %#x\n", caps.ndis_caps); in hn_rndis_query_rsscaps()
590 uint32_t caps = 0; in hn_rndis_conf_offload() local
619 caps |= HN_CAP_TSO4; in hn_rndis_conf_offload()
630 caps |= HN_CAP_TSO6; in hn_rndis_conf_offload()
640 if (caps & (HN_CAP_TSO4 | HN_CAP_TSO6)) { in hn_rndis_conf_offload()
650 caps &= ~(HN_CAP_TSO4 | HN_CAP_TSO6); in hn_rndis_conf_offload()
668 caps |= HN_CAP_IPCS; in hn_rndis_conf_offload()
681 caps |= HN_CAP_TCP4CS; in hn_rndis_conf_offload()
693 caps |= HN_CAP_UDP4CS; in hn_rndis_conf_offload()
706 caps |= HN_CAP_TCP6CS; in hn_rndis_conf_offload()
719 caps |= HN_CAP_UDP6CS; in hn_rndis_conf_offload()
766 sc->hn_caps |= caps; in hn_rndis_conf_offload()
944 hn_rndis_query_hwcaps(struct hn_softc *sc, struct ndis_offload *caps) in hn_rndis_query_hwcaps() argument
966 &in, size, caps, &caps_len, NDIS_OFFLOAD_SIZE_6_0); in hn_rndis_query_hwcaps()
973 if (caps->ndis_hdr.ndis_type != NDIS_OBJTYPE_OFFLOAD) { in hn_rndis_query_hwcaps()
975 caps->ndis_hdr.ndis_type); in hn_rndis_query_hwcaps()
978 if (caps->ndis_hdr.ndis_rev < NDIS_OFFLOAD_REV_1) { in hn_rndis_query_hwcaps()
980 caps->ndis_hdr.ndis_rev); in hn_rndis_query_hwcaps()
983 if (caps->ndis_hdr.ndis_size > caps_len) { in hn_rndis_query_hwcaps()
985 "data size %zu\n", caps->ndis_hdr.ndis_size, caps_len); in hn_rndis_query_hwcaps()
987 } else if (caps->ndis_hdr.ndis_size < NDIS_OFFLOAD_SIZE_6_0) { in hn_rndis_query_hwcaps()
989 caps->ndis_hdr.ndis_size); in hn_rndis_query_hwcaps()
991 } else if (caps->ndis_hdr.ndis_rev >= NDIS_OFFLOAD_REV_3 && in hn_rndis_query_hwcaps()
992 caps->ndis_hdr.ndis_size < NDIS_OFFLOAD_SIZE) { in hn_rndis_query_hwcaps()
994 caps->ndis_hdr.ndis_size); in hn_rndis_query_hwcaps()
1001 * caps->ndis_hdr.ndis_size MUST be checked before accessing in hn_rndis_query_hwcaps()
1005 caps->ndis_hdr.ndis_rev); in hn_rndis_query_hwcaps()
1010 caps->ndis_csum.ndis_ip4_txcsum, in hn_rndis_query_hwcaps()
1011 caps->ndis_csum.ndis_ip4_txenc, in hn_rndis_query_hwcaps()
1012 caps->ndis_csum.ndis_ip4_rxcsum, in hn_rndis_query_hwcaps()
1013 caps->ndis_csum.ndis_ip4_rxenc, in hn_rndis_query_hwcaps()
1014 caps->ndis_csum.ndis_ip6_txcsum, in hn_rndis_query_hwcaps()
1015 caps->ndis_csum.ndis_ip6_txenc, in hn_rndis_query_hwcaps()
1016 caps->ndis_csum.ndis_ip6_rxcsum, in hn_rndis_query_hwcaps()
1017 caps->ndis_csum.ndis_ip6_rxenc); in hn_rndis_query_hwcaps()
1021 caps->ndis_lsov2.ndis_ip4_maxsz, in hn_rndis_query_hwcaps()
1022 caps->ndis_lsov2.ndis_ip4_minsg, in hn_rndis_query_hwcaps()
1023 caps->ndis_lsov2.ndis_ip4_encap, in hn_rndis_query_hwcaps()
1024 caps->ndis_lsov2.ndis_ip6_maxsz, in hn_rndis_query_hwcaps()
1025 caps->ndis_lsov2.ndis_ip6_minsg, in hn_rndis_query_hwcaps()
1026 caps->ndis_lsov2.ndis_ip6_encap, in hn_rndis_query_hwcaps()
1027 caps->ndis_lsov2.ndis_ip6_opts); in hn_rndis_query_hwcaps()
1028 if (caps->ndis_hdr.ndis_rev >= NDIS_OFFLOAD_REV_3) in hn_rndis_query_hwcaps()
1031 caps->ndis_rsc.ndis_ip4, in hn_rndis_query_hwcaps()
1032 caps->ndis_rsc.ndis_ip6); in hn_rndis_query_hwcaps()