Lines Matching refs:pi

45 static int em_tso_setup(struct e1000_softc *sc, if_pkt_info_t pi, u32 *txd_upper,
47 static int em_transmit_checksum_setup(struct e1000_softc *sc, if_pkt_info_t pi,
49 static int em_isc_txd_encap(void *arg, if_pkt_info_t pi);
135 em_tso_setup(struct e1000_softc *sc, if_pkt_info_t pi, u32 *txd_upper, u32 *txd_lower)
138 struct em_tx_queue *que = &sc->tx_queues[pi->ipi_qsidx];
143 hdr_len = pi->ipi_ehdrlen + pi->ipi_ip_hlen + pi->ipi_tcp_hlen;
151 cur = pi->ipi_pidx;
159 TXD->lower_setup.ip_fields.ipcss = pi->ipi_ehdrlen;
161 htole16(pi->ipi_ehdrlen + pi->ipi_ip_hlen - 1);
162 TXD->lower_setup.ip_fields.ipcso = pi->ipi_ehdrlen + offsetof(struct ip, ip_sum);
169 TXD->upper_setup.tcp_fields.tucss = pi->ipi_ehdrlen + pi->ipi_ip_hlen;
172 pi->ipi_ehdrlen + pi->ipi_ip_hlen + offsetof(struct tcphdr, th_sum);
178 TXD->tcp_seg_setup.fields.mss = htole16(pi->ipi_tso_segsz);
186 (pi->ipi_len - hdr_len)); /* Total len */
192 DPRINTF(iflib_get_dev(sc->ctx), "%s: pidx: %d cur: %d\n", __FUNCTION__, pi->ipi_pidx, cur);
218 em_transmit_checksum_setup(struct e1000_softc *sc, if_pkt_info_t pi, u32 *txd_upper, u32 *txd_lower)
222 struct em_tx_queue *que = &sc->tx_queues[pi->ipi_qsidx];
224 int csum_flags = pi->ipi_csum_flags;
228 cur = pi->ipi_pidx;
229 hdr_len = pi->ipi_ehdrlen + pi->ipi_ip_hlen;
241 txr->csum_lhlen == pi->ipi_ehdrlen &&
242 txr->csum_iphlen == pi->ipi_ip_hlen &&
261 TXD->lower_setup.ip_fields.ipcss = pi->ipi_ehdrlen;
263 TXD->lower_setup.ip_fields.ipcso = pi->ipi_ehdrlen + offsetof(struct ip, ip_sum);
283 txr->csum_lhlen = pi->ipi_ehdrlen;
284 txr->csum_iphlen = pi->ipi_ip_hlen;
302 em_isc_txd_encap(void *arg, if_pkt_info_t pi)
306 struct em_tx_queue *que = &sc->tx_queues[pi->ipi_qsidx];
308 bus_dma_segment_t *segs = pi->ipi_segs;
309 int nsegs = pi->ipi_nsegs;
310 int csum_flags = pi->ipi_csum_flags;
318 txd_flags = pi->ipi_flags & IPI_TX_INTR ? E1000_TXD_CMD_RS : 0;
319 i = first = pi->ipi_pidx;
337 i = em_tso_setup(sc, pi, &txd_upper, &txd_lower);
340 i = em_transmit_checksum_setup(sc, pi, &txd_upper, &txd_lower);
343 if (pi->ipi_mflags & M_VLANTAG) {
345 txd_upper |= htole16(pi->ipi_vtag) << 16;
411 pi->ipi_new_pidx = i;