Lines Matching refs:rxr

229 	struct hn_rx_ring	*rxr;
1119 arg->rxr->hn_rxvf_ifp = arg->vf_ifp;
1125 struct hn_rx_ring *rxr;
1135 rxr = &sc->hn_rx_ring[i];
1138 arg.rxr = rxr;
1140 vmbus_chan_run_task(rxr->hn_chan, &task);
1142 rxr->hn_rxvf_ifp = vf_ifp;
2863 hn_chan_rollup(struct hn_rx_ring *rxr, struct hn_tx_ring *txr)
2866 tcp_lro_flush_all(&rxr->hn_lro);
3395 hn_rxpkt(struct hn_rx_ring *rxr, const void *data, int dlen,
3398 struct ifnet *ifp, *hn_ifp = rxr->hn_ifp;
3405 if (rxr->hn_rxvf_ifp != NULL) {
3410 ifp = rxr->hn_rxvf_ifp;
3412 } else if (rxr->hn_rx_flags & HN_RX_FLAG_XPNT_VF) {
3442 rxr->hn_small_pkts++;
3475 rxr->hn_csum_ip++;
3485 rxr->hn_csum_tcp++;
3487 rxr->hn_csum_udp++;
3506 (rxr->hn_trust_hcsum &
3508 rxr->hn_csum_trusted++;
3517 (rxr->hn_trust_hcsum &
3519 rxr->hn_csum_trusted++;
3526 (rxr->hn_trust_hcsum & HN_TRUST_HCSUM_IP)) {
3527 rxr->hn_csum_trusted++;
3565 rxr->hn_rss_pkts++;
3572 rxr->hn_mbuf_hash);
3588 if (rxr->hn_rx_flags & HN_RX_FLAG_UDP_HASH) {
3604 (rxr->hn_mbuf_hash &
3641 m_new->m_pkthdr.flowid = rxr->hn_rx_idx;
3670 rxr->hn_pkts++;
3674 struct lro_ctrl *lro = &rxr->hn_lro;
3677 rxr->hn_lro_tried++;
4191 struct hn_rx_ring *rxr = &sc->hn_rx_ring[i];
4194 rxr->hn_trust_hcsum |= hcsum;
4196 rxr->hn_trust_hcsum &= ~hcsum;
4228 struct hn_rx_ring *rxr;
4233 rxr = &sc->hn_rx_ring[i];
4234 stat += *((int *)((uint8_t *)rxr + ofs));
4243 rxr = &sc->hn_rx_ring[i];
4244 *((int *)((uint8_t *)rxr + ofs)) = 0;
4254 struct hn_rx_ring *rxr;
4259 rxr = &sc->hn_rx_ring[i];
4260 stat += *((uint64_t *)((uint8_t *)rxr + ofs));
4269 rxr = &sc->hn_rx_ring[i];
4270 *((uint64_t *)((uint8_t *)rxr + ofs)) = 0;
4282 struct hn_rx_ring *rxr;
4287 rxr = &sc->hn_rx_ring[i];
4288 stat += *((u_long *)((uint8_t *)rxr + ofs));
4297 rxr = &sc->hn_rx_ring[i];
4298 *((u_long *)((uint8_t *)rxr + ofs)) = 0;
4952 struct hn_rx_ring *rxr = &sc->hn_rx_ring[i];
4954 rxr->hn_br = hyperv_dmamem_alloc(bus_get_dma_tag(dev),
4956 &rxr->hn_br_dma, BUS_DMA_WAITOK);
4957 if (rxr->hn_br == NULL) {
4963 rxr->hn_trust_hcsum |= HN_TRUST_HCSUM_TCP;
4965 rxr->hn_trust_hcsum |= HN_TRUST_HCSUM_UDP;
4967 rxr->hn_trust_hcsum |= HN_TRUST_HCSUM_IP;
4968 rxr->hn_mbuf_hash = NDIS_HASH_ALL;
4969 rxr->hn_ifp = sc->hn_ifp;
4971 rxr->hn_txr = &sc->hn_tx_ring[i];
4972 rxr->hn_pktbuf_len = HN_PKTBUF_LEN_DEF;
4973 rxr->hn_pktbuf = malloc(rxr->hn_pktbuf_len, M_DEVBUF, M_WAITOK);
4974 rxr->hn_rx_idx = i;
4975 rxr->hn_rxbuf = sc->hn_rxbuf;
4982 tcp_lro_init_args(&rxr->hn_lro, sc->hn_ifp, lroent_cnt,
4985 tcp_lro_init(&rxr->hn_lro);
4986 rxr->hn_lro.ifp = sc->hn_ifp;
4989 rxr->hn_lro.lro_length_lim = HN_LRO_LENLIM_DEF;
4990 rxr->hn_lro.lro_ackcnt_lim = HN_LRO_ACKCNT_DEF;
5002 rxr->hn_rx_sysctl_tree = SYSCTL_ADD_NODE(ctx,
5006 if (rxr->hn_rx_sysctl_tree != NULL) {
5008 SYSCTL_CHILDREN(rxr->hn_rx_sysctl_tree),
5010 &rxr->hn_pkts, "# of packets received");
5012 SYSCTL_CHILDREN(rxr->hn_rx_sysctl_tree),
5014 &rxr->hn_rss_pkts,
5017 SYSCTL_CHILDREN(rxr->hn_rx_sysctl_tree),
5019 &rxr->hn_pktbuf_len, 0,
5122 struct hn_rx_ring *rxr = &sc->hn_rx_ring[i];
5124 if (rxr->hn_br == NULL)
5126 if ((rxr->hn_rx_flags & HN_RX_FLAG_BR_REF) == 0) {
5127 hyperv_dmamem_free(&rxr->hn_br_dma, rxr->hn_br);
5132 rxr->hn_br = NULL;
5135 tcp_lro_free(&rxr->hn_lro);
5137 free(rxr->hn_pktbuf, M_DEVBUF);
6161 struct hn_rx_ring *rxr;
6173 rxr = &sc->hn_rx_ring[idx];
6174 KASSERT((rxr->hn_rx_flags & HN_RX_FLAG_ATTACHED) == 0,
6176 rxr->hn_rx_flags |= HN_RX_FLAG_ATTACHED;
6177 rxr->hn_chan = chan;
6203 cbr.cbr = rxr->hn_br;
6204 cbr.cbr_paddr = rxr->hn_br_dma.hv_paddr;
6207 error = vmbus_chan_open_br(chan, &cbr, NULL, 0, hn_chan_callback, rxr);
6212 rxr->hn_rx_flags |= HN_RX_FLAG_BR_REF;
6224 struct hn_rx_ring *rxr;
6235 rxr = &sc->hn_rx_ring[idx];
6236 KASSERT((rxr->hn_rx_flags & HN_RX_FLAG_ATTACHED),
6238 rxr->hn_rx_flags &= ~HN_RX_FLAG_ATTACHED;
6258 rxr->hn_rx_flags |= HN_RX_FLAG_BR_REF;
6404 const struct hn_rx_ring *rxr = &sc->hn_rx_ring[i];
6406 if (rxr->hn_rx_flags & HN_RX_FLAG_BR_REF)
7075 hn_rndis_rx_data(struct hn_rx_ring *rxr, const void *data, int dlen)
7085 if_printf(rxr->hn_ifp, "invalid RNDIS packet msg\n");
7091 if_printf(rxr->hn_ifp, "truncated RNDIS packet msg, "
7097 if_printf(rxr->hn_ifp, "invalid RNDIS packet msglen, "
7104 if_printf(rxr->hn_ifp, "invalid RNDIS packet msg, no data\n");
7117 if_printf(rxr->hn_ifp, "invalid RNDIS packet msg, "
7123 if_printf(rxr->hn_ifp, "invalid RNDIS packet msg, "
7129 if_printf(rxr->hn_ifp, "invalid RNDIS packet msg, "
7147 if_printf(rxr->hn_ifp, "got oobdata\n");
7152 if_printf(rxr->hn_ifp, "invalid RNDIS packet msg, "
7163 if_printf(rxr->hn_ifp, "invalid RNDIS packet msg, "
7176 if_printf(rxr->hn_ifp, "invalid RNDIS packet msg, "
7195 if_printf(rxr->hn_ifp, "invalid RNDIS packet msg, "
7208 if_printf(rxr->hn_ifp, "invalid RNDIS packet msg, "
7221 if_printf(rxr->hn_ifp, "invalid RNDIS packet msg "
7228 if_printf(rxr->hn_ifp, "invalid RNDIS packet msg, "
7233 hn_rxpkt(rxr, ((const uint8_t *)pkt) + data_off, data_len, &info);
7237 hn_rndis_rxpkt(struct hn_rx_ring *rxr, const void *data, int dlen)
7242 if_printf(rxr->hn_ifp, "invalid RNDIS msg\n");
7249 hn_rndis_rx_data(rxr, data, dlen);
7255 hn_rndis_rx_status(rxr->hn_ifp->if_softc, data, dlen);
7257 hn_rndis_rx_ctrl(rxr->hn_ifp->if_softc, data, dlen);
7295 hn_nvs_handle_rxbuf(struct hn_rx_ring *rxr, struct vmbus_channel *chan,
7303 if_printf(rxr->hn_ifp, "invalid nvs RNDIS\n");
7310 if_printf(rxr->hn_ifp, "nvs type %u, not RNDIS\n",
7317 if_printf(rxr->hn_ifp, "invalid rxbuf chanpkt\n");
7323 if_printf(rxr->hn_ifp, "invalid rxbuf_id 0x%08x\n",
7331 if_printf(rxr->hn_ifp, "invalid rxbuf_cnt %d\n", count);
7342 if_printf(rxr->hn_ifp, "%dth RNDIS msg overflow rxbuf, "
7346 hn_rndis_rxpkt(rxr, rxr->hn_rxbuf + ofs, len);
7353 hn_nvs_ack_rxbuf(rxr, chan, pkt->cp_hdr.cph_xactid);
7357 hn_nvs_ack_rxbuf(struct hn_rx_ring *rxr, struct vmbus_channel *chan,
7377 if (rxr->hn_ack_failed == 0)
7378 if_printf(rxr->hn_ifp, "RXBUF ack retry\n");
7379 rxr->hn_ack_failed++;
7386 if_printf(rxr->hn_ifp, "RXBUF ack failed\n");
7393 struct hn_rx_ring *rxr = xrxr;
7394 struct hn_softc *sc = rxr->hn_ifp->if_softc;
7397 struct vmbus_chanpkt_hdr *pkt = rxr->hn_pktbuf;
7400 pktlen = rxr->hn_pktbuf_len;
7413 nlen = rxr->hn_pktbuf_len * 2;
7418 if_printf(rxr->hn_ifp, "expand pktbuf %d -> %d\n",
7419 rxr->hn_pktbuf_len, nlen);
7421 free(rxr->hn_pktbuf, M_DEVBUF);
7422 rxr->hn_pktbuf = nbuf;
7423 rxr->hn_pktbuf_len = nlen;
7438 hn_nvs_handle_rxbuf(rxr, chan, pkt);
7446 if_printf(rxr->hn_ifp, "unknown chan pkt %u\n",
7451 hn_chan_rollup(rxr, rxr->hn_txr);