Lines Matching full:ri

61 static int bnxt_isc_rxd_pkt_get(void *sc, if_rxd_info_t ri);
410 bnxt_set_rsstype(if_rxd_info_t ri, uint8_t rss_hash_type) in bnxt_set_rsstype() argument
417 ri->iri_rsstype = M_HASHTYPE_RSS_TCP_IPV4; in bnxt_set_rsstype()
420 ri->iri_rsstype = M_HASHTYPE_RSS_UDP_IPV4; in bnxt_set_rsstype()
423 ri->iri_rsstype = M_HASHTYPE_RSS_IPV4; in bnxt_set_rsstype()
426 ri->iri_rsstype = M_HASHTYPE_RSS_TCP_IPV6; in bnxt_set_rsstype()
429 ri->iri_rsstype = M_HASHTYPE_RSS_UDP_IPV6; in bnxt_set_rsstype()
432 ri->iri_rsstype = M_HASHTYPE_RSS_IPV6; in bnxt_set_rsstype()
435 ri->iri_rsstype = M_HASHTYPE_OPAQUE_HASH; in bnxt_set_rsstype()
441 bnxt_pkt_get_l2(struct bnxt_softc *softc, if_rxd_info_t ri, in bnxt_pkt_get_l2() argument
456 ri->iri_flowid = le32toh(rcp->rss_hash); in bnxt_pkt_get_l2()
457 bnxt_set_rsstype(ri, rcp->rss_hash_type); in bnxt_pkt_get_l2()
460 ri->iri_rsstype = M_HASHTYPE_NONE; in bnxt_pkt_get_l2()
464 ri->iri_nfrags = ags + 1; in bnxt_pkt_get_l2()
466 ri->iri_frags[0].irf_flid = (rcp->opaque >> 16) & 0xff; in bnxt_pkt_get_l2()
467 ri->iri_frags[0].irf_idx = rcp->opaque & 0xffff; in bnxt_pkt_get_l2()
468 ri->iri_frags[0].irf_len = le16toh(rcp->len); in bnxt_pkt_get_l2()
469 ri->iri_len = le16toh(rcp->len); in bnxt_pkt_get_l2()
473 ri->iri_cidx = RING_NEXT(&cpr->ring, ri->iri_cidx); in bnxt_pkt_get_l2()
480 ri->iri_flags |= M_VLANTAG; in bnxt_pkt_get_l2()
482 ri->iri_vtag = le32toh(rcph->metadata) & in bnxt_pkt_get_l2()
487 ri->iri_csum_flags |= CSUM_IP_CHECKED; in bnxt_pkt_get_l2()
489 ri->iri_csum_flags |= CSUM_IP_VALID; in bnxt_pkt_get_l2()
493 ri->iri_csum_flags |= CSUM_L4_CALC; in bnxt_pkt_get_l2()
496 ri->iri_csum_flags |= CSUM_L4_VALID; in bnxt_pkt_get_l2()
497 ri->iri_csum_data = 0xffff; in bnxt_pkt_get_l2()
502 for (i=1; i < ri->iri_nfrags; i++) { in bnxt_pkt_get_l2()
504 ri->iri_cidx = RING_NEXT(&cpr->ring, ri->iri_cidx); in bnxt_pkt_get_l2()
508 ri->iri_frags[i].irf_flid = (acp->opaque >> 16 & 0xff); in bnxt_pkt_get_l2()
509 ri->iri_frags[i].irf_idx = acp->opaque & 0xffff; in bnxt_pkt_get_l2()
510 ri->iri_frags[i].irf_len = le16toh(acp->len); in bnxt_pkt_get_l2()
511 ri->iri_len += le16toh(acp->len); in bnxt_pkt_get_l2()
518 bnxt_pkt_get_tpa(struct bnxt_softc *softc, if_rxd_info_t ri, in bnxt_pkt_get_tpa() argument
533 tpas = &(softc->rx_rings[ri->iri_qsidx].tpa_start[agg_id]); in bnxt_pkt_get_tpa()
537 ri->iri_flowid = le32toh(tpas->low.rss_hash); in bnxt_pkt_get_tpa()
538 bnxt_set_rsstype(ri, tpas->low.rss_hash_type); in bnxt_pkt_get_tpa()
541 ri->iri_rsstype = M_HASHTYPE_NONE; in bnxt_pkt_get_tpa()
545 ri->iri_nfrags = ags + 1; in bnxt_pkt_get_tpa()
547 ri->iri_frags[0].irf_flid = ((tpas->low.opaque >> 16) & 0xff); in bnxt_pkt_get_tpa()
548 ri->iri_frags[0].irf_idx = (tpas->low.opaque & 0xffff); in bnxt_pkt_get_tpa()
549 ri->iri_frags[0].irf_len = le16toh(tpas->low.len); in bnxt_pkt_get_tpa()
550 ri->iri_len = le16toh(tpas->low.len); in bnxt_pkt_get_tpa()
554 ri->iri_cidx = RING_NEXT(&cpr->ring, ri->iri_cidx); in bnxt_pkt_get_tpa()
559 ri->iri_flags |= M_VLANTAG; in bnxt_pkt_get_tpa()
561 ri->iri_vtag = le32toh(tpas->high.metadata) & in bnxt_pkt_get_tpa()
567 ri->iri_csum_flags |= CSUM_IP_CHECKED; in bnxt_pkt_get_tpa()
568 ri->iri_csum_flags |= CSUM_IP_VALID; in bnxt_pkt_get_tpa()
571 ri->iri_csum_flags |= CSUM_L4_CALC; in bnxt_pkt_get_tpa()
572 ri->iri_csum_flags |= CSUM_L4_VALID; in bnxt_pkt_get_tpa()
573 ri->iri_csum_data = 0xffff; in bnxt_pkt_get_tpa()
577 for (i=1; i < ri->iri_nfrags; i++) { in bnxt_pkt_get_tpa()
579 ri->iri_cidx = RING_NEXT(&cpr->ring, ri->iri_cidx); in bnxt_pkt_get_tpa()
583 ri->iri_frags[i].irf_flid = ((acp->opaque >> 16) & 0xff); in bnxt_pkt_get_tpa()
584 ri->iri_frags[i].irf_idx = (acp->opaque & 0xffff); in bnxt_pkt_get_tpa()
585 ri->iri_frags[i].irf_len = le16toh(acp->len); in bnxt_pkt_get_tpa()
586 ri->iri_len += le16toh(acp->len); in bnxt_pkt_get_tpa()
590 ri->iri_nfrags++; in bnxt_pkt_get_tpa()
592 ri->iri_frags[i].irf_flid = ((agend->opaque >> 16) & 0xff); in bnxt_pkt_get_tpa()
593 ri->iri_frags[i].irf_idx = (agend->opaque & 0xffff); in bnxt_pkt_get_tpa()
594 ri->iri_frags[i].irf_len = le16toh(agend->len); in bnxt_pkt_get_tpa()
595 ri->iri_len += le16toh(agend->len); in bnxt_pkt_get_tpa()
602 bnxt_isc_rxd_pkt_get(void *sc, if_rxd_info_t ri) in bnxt_isc_rxd_pkt_get() argument
605 struct bnxt_cp_ring *cpr = &softc->rx_cp_rings[ri->iri_qsidx]; in bnxt_isc_rxd_pkt_get()
615 ri->iri_cidx = RING_NEXT(&cpr->ring, ri->iri_cidx); in bnxt_isc_rxd_pkt_get()
624 return bnxt_pkt_get_l2(softc, ri, cpr, flags_type); in bnxt_isc_rxd_pkt_get()
626 return bnxt_pkt_get_tpa(softc, ri, cpr, flags_type); in bnxt_isc_rxd_pkt_get()
632 softc->rx_rings[ri->iri_qsidx].tpa_start[agg_id].low = *rtpa; in bnxt_isc_rxd_pkt_get()
635 ri->iri_cidx = RING_NEXT(&cpr->ring, ri->iri_cidx); in bnxt_isc_rxd_pkt_get()
638 softc->rx_rings[ri->iri_qsidx].tpa_start[agg_id].high = in bnxt_isc_rxd_pkt_get()
644 type, ri->iri_qsidx); in bnxt_isc_rxd_pkt_get()
648 ri->iri_cidx = RING_NEXT(&cpr->ring, in bnxt_isc_rxd_pkt_get()
649 ri->iri_cidx); in bnxt_isc_rxd_pkt_get()