Lines Matching full:pi
126 igc_tso_setup(struct tx_ring *txr, if_pkt_info_t pi, uint32_t *cmd_type_len,
134 switch(pi->ipi_etype) {
145 __func__, ntohs(pi->ipi_etype));
149 TXD = (struct igc_adv_tx_context_desc *) &txr->tx_base[pi->ipi_pidx];
152 paylen = pi->ipi_len - pi->ipi_ehdrlen - pi->ipi_ip_hlen -
153 pi->ipi_tcp_hlen;
156 if (pi->ipi_mflags & M_VLANTAG) {
157 vlan_macip_lens |= (pi->ipi_vtag << IGC_ADVTXD_VLAN_SHIFT);
160 vlan_macip_lens |= pi->ipi_ehdrlen << IGC_ADVTXD_MACLEN_SHIFT;
161 vlan_macip_lens |= pi->ipi_ip_hlen;
170 mss_l4len_idx |= (pi->ipi_tso_segsz << IGC_ADVTXD_MSS_SHIFT);
171 mss_l4len_idx |= (pi->ipi_tcp_hlen << IGC_ADVTXD_L4LEN_SHIFT);
188 igc_tx_ctx_setup(struct tx_ring *txr, if_pkt_info_t pi,
197 if (pi->ipi_csum_flags & CSUM_TSO)
198 return (igc_tso_setup(txr, pi, cmd_type_len, olinfo_status));
201 *olinfo_status |= pi->ipi_len << IGC_ADVTXD_PAYLEN_SHIFT;
204 TXD = (struct igc_adv_tx_context_desc *) &txr->tx_base[pi->ipi_pidx];
211 if (pi->ipi_mflags & M_VLANTAG) {
212 vlan_macip_lens |= (pi->ipi_vtag << IGC_ADVTXD_VLAN_SHIFT);
213 } else if ((pi->ipi_csum_flags & IGC_CSUM_OFFLOAD) == 0) {
218 vlan_macip_lens |= pi->ipi_ehdrlen << IGC_ADVTXD_MACLEN_SHIFT;
220 switch(pi->ipi_etype) {
231 vlan_macip_lens |= pi->ipi_ip_hlen;
234 switch (pi->ipi_ipproto) {
236 if (pi->ipi_csum_flags & (CSUM_IP_TCP | CSUM_IP6_TCP)) {
242 if (pi->ipi_csum_flags & (CSUM_IP_UDP | CSUM_IP6_UDP)) {
248 if (pi->ipi_csum_flags & (CSUM_IP_SCTP | CSUM_IP6_SCTP)) {
267 igc_isc_txd_encap(void *arg, if_pkt_info_t pi)
271 struct igc_tx_queue *que = &sc->tx_queues[pi->ipi_qsidx];
273 int nsegs = pi->ipi_nsegs;
274 bus_dma_segment_t *segs = pi->ipi_segs;
285 if (pi->ipi_mflags & M_VLANTAG)
288 i = pi->ipi_pidx;
290 txd_flags = pi->ipi_flags & IPI_TX_INTR ? IGC_ADVTXD_DCMD_RS : 0;
292 i += igc_tx_ctx_setup(txr, pi, &cmd_type_len, &olinfo_status);
320 pi->ipi_new_pidx = i;
323 txr->tx_bytes += pi->ipi_len;