Lines Matching full:pi

85 igb_tso_setup(struct tx_ring *txr, if_pkt_info_t pi, uint32_t *cmd_type_len,
94 switch(pi->ipi_etype) {
105 __func__, ntohs(pi->ipi_etype));
109 TXD = (struct e1000_adv_tx_context_desc *)&txr->tx_base[pi->ipi_pidx];
112 paylen = pi->ipi_len - pi->ipi_ehdrlen - pi->ipi_ip_hlen -
113 pi->ipi_tcp_hlen;
116 if (pi->ipi_mflags & M_VLANTAG) {
117 vlan_macip_lens |= (pi->ipi_vtag << E1000_ADVTXD_VLAN_SHIFT);
120 vlan_macip_lens |= pi->ipi_ehdrlen << E1000_ADVTXD_MACLEN_SHIFT;
121 vlan_macip_lens |= pi->ipi_ip_hlen;
130 mss_l4len_idx |= (pi->ipi_tso_segsz << E1000_ADVTXD_MSS_SHIFT);
131 mss_l4len_idx |= (pi->ipi_tcp_hlen << E1000_ADVTXD_L4LEN_SHIFT);
151 igb_tx_ctx_setup(struct tx_ring *txr, if_pkt_info_t pi,
161 if (pi->ipi_csum_flags & CSUM_TSO)
162 return (igb_tso_setup(txr, pi, cmd_type_len, olinfo_status));
165 *olinfo_status |= pi->ipi_len << E1000_ADVTXD_PAYLEN_SHIFT;
168 TXD = (struct e1000_adv_tx_context_desc *)&txr->tx_base[pi->ipi_pidx];
175 if (pi->ipi_mflags & M_VLANTAG) {
176 vlan_macip_lens |= (pi->ipi_vtag << E1000_ADVTXD_VLAN_SHIFT);
177 } else if ((pi->ipi_csum_flags & IGB_CSUM_OFFLOAD) == 0) {
182 vlan_macip_lens |= pi->ipi_ehdrlen << E1000_ADVTXD_MACLEN_SHIFT;
184 switch(pi->ipi_etype) {
195 vlan_macip_lens |= pi->ipi_ip_hlen;
198 switch (pi->ipi_ipproto) {
200 if (pi->ipi_csum_flags & (CSUM_IP_TCP | CSUM_IP6_TCP)) {
206 if (pi->ipi_csum_flags & (CSUM_IP_UDP | CSUM_IP6_UDP)) {
212 if (pi->ipi_csum_flags & (CSUM_IP_SCTP | CSUM_IP6_SCTP)) {
235 igb_isc_txd_encap(void *arg, if_pkt_info_t pi)
239 struct em_tx_queue *que = &sc->tx_queues[pi->ipi_qsidx];
241 int nsegs = pi->ipi_nsegs;
242 bus_dma_segment_t *segs = pi->ipi_segs;
253 if (pi->ipi_mflags & M_VLANTAG)
256 i = pi->ipi_pidx;
258 txd_flags = pi->ipi_flags & IPI_TX_INTR ? E1000_ADVTXD_DCMD_RS : 0;
260 i += igb_tx_ctx_setup(txr, pi, &cmd_type_len, &olinfo_status);
292 pi->ipi_new_pidx = i;
295 txr->tx_bytes += pi->ipi_len;