Lines Matching refs:pi
60 xgbe_print_pkt_info(struct xgbe_prv_data *pdata, if_pkt_info_t pi)
64 axgbe_printf(1, "pi len: %d qsidx: %d nsegs: %d ndescs: %d flags: %x pidx: %d\n",
65 pi->ipi_len, pi->ipi_qsidx, pi->ipi_nsegs, pi->ipi_ndescs, pi->ipi_flags, pi->ipi_pidx);
66 axgbe_printf(1, "pi new_pidx: %d csum_flags: %x mflags: %x vtag: %d\n",
67 pi->ipi_new_pidx, pi->ipi_csum_flags, pi->ipi_mflags, pi->ipi_vtag);
68 axgbe_printf(1, "pi etype: %d ehdrlen: %d ip_hlen: %d ipproto: %d\n",
69 pi->ipi_etype, pi->ipi_ehdrlen, pi->ipi_ip_hlen, pi->ipi_ipproto);
70 axgbe_printf(1, "pi tcp_hlen: %d tcp_hflags: %x tcp_seq: %d tso_segsz %d\n",
71 pi->ipi_tcp_hlen, pi->ipi_tcp_hflags, pi->ipi_tcp_seq, pi->ipi_tso_segsz);
76 if_pkt_info_t pi)
86 pi->ipi_tso_segsz, ring->tx.cur_mss, ring->cur);
89 pi->ipi_vtag, ring->tx.cur_vlan_ctag);
91 if ((pi->ipi_csum_flags & CSUM_TSO) &&
92 (pi->ipi_tso_segsz != ring->tx.cur_mss)) {
99 MSS, pi->ipi_tso_segsz);
102 ring->tx.cur_mss = pi->ipi_tso_segsz;
106 if (pi->ipi_vtag && (pi->ipi_vtag != ring->tx.cur_vlan_ctag)) {
114 VT, pi->ipi_vtag);
116 ring->tx.cur_vlan_ctag = pi->ipi_vtag;
124 axgbe_calculate_tx_parms(struct xgbe_prv_data *pdata, if_pkt_info_t pi,
132 hlen = pi->ipi_ehdrlen + pi->ipi_ip_hlen + pi->ipi_tcp_hlen;
133 if (pi->ipi_csum_flags & CSUM_TSO) {
135 tcp_payload_len = pi->ipi_len - hlen;
137 __func__, pi->ipi_len, pi->ipi_ehdrlen, pi->ipi_ip_hlen,
138 pi->ipi_tcp_hlen);
141 if (pi->ipi_vtag)
157 bytes = pi->ipi_len;
170 axgbe_isc_txd_encap(void *arg, if_pkt_info_t pi)
183 xgbe_print_pkt_info(pdata, pi);
185 channel = pdata->channel[pi->ipi_qsidx];
191 __func__, pi->ipi_qsidx, ring->cur, ring->dirty);
193 MPASS(pi->ipi_len != 0);
194 if (__predict_false(pi->ipi_len == 0)) {
199 MPASS(ring->cur == pi->ipi_pidx);
200 if (__predict_false(ring->cur != pi->ipi_pidx)) {
202 ring->cur, pi->ipi_pidx);
216 hlen = axgbe_calculate_tx_parms(pdata, pi, packet);
218 __func__, pi->ipi_len, packet->tx_packets, packet->tx_bytes, hlen);
231 if (axgbe_ctx_desc_setup(pdata, ring, pi))
239 lower_32_bits(pi->ipi_segs[cur_seg].ds_addr),
240 upper_32_bits(pi->ipi_segs[cur_seg].ds_addr),
241 (int)pi->ipi_segs[cur_seg].ds_len, pi->ipi_len);
244 rdesc->desc0 = cpu_to_le32(lower_32_bits(pi->ipi_segs[cur_seg].ds_addr));
245 rdesc->desc1 = cpu_to_le32(upper_32_bits(pi->ipi_segs[cur_seg].ds_addr));
249 hlen = pi->ipi_segs[cur_seg].ds_len;
253 if (pi->ipi_vtag) {
273 if (pi->ipi_csum_flags & CSUM_TSO) {
277 tcp_payload_len = pi->ipi_len - hlen;
284 pi->ipi_tcp_hlen/4);
287 pi->ipi_tcp_hlen/4);
293 if (pi->ipi_csum_flags)
297 XGMAC_SET_BITS_LE(rdesc->desc3, TX_NORMAL_DESC3, FL, pi->ipi_len);
302 for (cur_seg = 0 ; cur_seg < pi->ipi_nsegs ; cur_seg++) {
306 datalen = pi->ipi_segs[cur_seg].ds_len - hlen;
309 datalen = pi->ipi_segs[cur_seg].ds_len;
319 cpu_to_le32(lower_32_bits(pi->ipi_segs[cur_seg].ds_addr + offset));
321 cpu_to_le32(upper_32_bits(pi->ipi_segs[cur_seg].ds_addr + offset));
333 if (pi->ipi_csum_flags)
338 lower_32_bits(pi->ipi_segs[cur_seg].ds_addr),
339 upper_32_bits(pi->ipi_segs[cur_seg].ds_addr),
340 (int)pi->ipi_segs[cur_seg].ds_len, pi->ipi_len);
360 ring->cur = pi->ipi_new_pidx = (cur & (ring->rdesc_count - 1));