Lines Matching refs:rxcp
1960 struct be_rx_compl_info *rxcp) in be_rx_stats_update() argument
1966 stats->rx_bytes += rxcp->pkt_size; in be_rx_stats_update()
1968 if (rxcp->tunneled) in be_rx_stats_update()
1970 if (rxcp->pkt_type == BE_MULTICAST_PACKET) in be_rx_stats_update()
1972 if (rxcp->err) in be_rx_stats_update()
1977 static inline bool csum_passed(struct be_rx_compl_info *rxcp) in csum_passed() argument
1982 return (rxcp->tcpf || rxcp->udpf) && rxcp->l4_csum && in csum_passed()
1983 (rxcp->ip_csum || rxcp->ipv6) && !rxcp->err; in csum_passed()
2014 struct be_rx_compl_info *rxcp) in be_rx_compl_discard() argument
2017 u16 i, num_rcvd = rxcp->num_rcvd; in be_rx_compl_discard()
2031 struct be_rx_compl_info *rxcp) in skb_fill_rx_data() argument
2043 curr_frag_len = min(rxcp->pkt_size, rx_frag_size); in skb_fill_rx_data()
2067 if (rxcp->pkt_size <= rx_frag_size) { in skb_fill_rx_data()
2068 BUG_ON(rxcp->num_rcvd != 1); in skb_fill_rx_data()
2073 remaining = rxcp->pkt_size - curr_frag_len; in skb_fill_rx_data()
2074 for (i = 1, j = 0; i < rxcp->num_rcvd; i++) { in skb_fill_rx_data()
2103 struct be_rx_compl_info *rxcp) in be_rx_compl_process() argument
2112 be_rx_compl_discard(rxo, rxcp); in be_rx_compl_process()
2116 skb_fill_rx_data(rxo, skb, rxcp); in be_rx_compl_process()
2118 if (likely((netdev->features & NETIF_F_RXCSUM) && csum_passed(rxcp))) in be_rx_compl_process()
2126 skb_set_hash(skb, rxcp->rss_hash, PKT_HASH_TYPE_L3); in be_rx_compl_process()
2128 skb->csum_level = rxcp->tunneled; in be_rx_compl_process()
2131 if (rxcp->vlanf) in be_rx_compl_process()
2132 __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), rxcp->vlan_tag); in be_rx_compl_process()
2140 struct be_rx_compl_info *rxcp) in be_rx_compl_process_gro() argument
2150 be_rx_compl_discard(rxo, rxcp); in be_rx_compl_process_gro()
2154 remaining = rxcp->pkt_size; in be_rx_compl_process_gro()
2155 for (i = 0, j = -1; i < rxcp->num_rcvd; i++) { in be_rx_compl_process_gro()
2179 skb->len = rxcp->pkt_size; in be_rx_compl_process_gro()
2180 skb->data_len = rxcp->pkt_size; in be_rx_compl_process_gro()
2184 skb_set_hash(skb, rxcp->rss_hash, PKT_HASH_TYPE_L3); in be_rx_compl_process_gro()
2186 skb->csum_level = rxcp->tunneled; in be_rx_compl_process_gro()
2189 if (rxcp->vlanf) in be_rx_compl_process_gro()
2190 __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), rxcp->vlan_tag); in be_rx_compl_process_gro()
2196 struct be_rx_compl_info *rxcp) in be_parse_rx_compl_v1() argument
2198 rxcp->pkt_size = GET_RX_COMPL_V1_BITS(pktsize, compl); in be_parse_rx_compl_v1()
2199 rxcp->vlanf = GET_RX_COMPL_V1_BITS(vtp, compl); in be_parse_rx_compl_v1()
2200 rxcp->err = GET_RX_COMPL_V1_BITS(err, compl); in be_parse_rx_compl_v1()
2201 rxcp->tcpf = GET_RX_COMPL_V1_BITS(tcpf, compl); in be_parse_rx_compl_v1()
2202 rxcp->udpf = GET_RX_COMPL_V1_BITS(udpf, compl); in be_parse_rx_compl_v1()
2203 rxcp->ip_csum = GET_RX_COMPL_V1_BITS(ipcksm, compl); in be_parse_rx_compl_v1()
2204 rxcp->l4_csum = GET_RX_COMPL_V1_BITS(l4_cksm, compl); in be_parse_rx_compl_v1()
2205 rxcp->ipv6 = GET_RX_COMPL_V1_BITS(ip_version, compl); in be_parse_rx_compl_v1()
2206 rxcp->num_rcvd = GET_RX_COMPL_V1_BITS(numfrags, compl); in be_parse_rx_compl_v1()
2207 rxcp->pkt_type = GET_RX_COMPL_V1_BITS(cast_enc, compl); in be_parse_rx_compl_v1()
2208 rxcp->rss_hash = GET_RX_COMPL_V1_BITS(rsshash, compl); in be_parse_rx_compl_v1()
2209 if (rxcp->vlanf) { in be_parse_rx_compl_v1()
2210 rxcp->qnq = GET_RX_COMPL_V1_BITS(qnq, compl); in be_parse_rx_compl_v1()
2211 rxcp->vlan_tag = GET_RX_COMPL_V1_BITS(vlan_tag, compl); in be_parse_rx_compl_v1()
2213 rxcp->port = GET_RX_COMPL_V1_BITS(port, compl); in be_parse_rx_compl_v1()
2214 rxcp->tunneled = in be_parse_rx_compl_v1()
2219 struct be_rx_compl_info *rxcp) in be_parse_rx_compl_v0() argument
2221 rxcp->pkt_size = GET_RX_COMPL_V0_BITS(pktsize, compl); in be_parse_rx_compl_v0()
2222 rxcp->vlanf = GET_RX_COMPL_V0_BITS(vtp, compl); in be_parse_rx_compl_v0()
2223 rxcp->err = GET_RX_COMPL_V0_BITS(err, compl); in be_parse_rx_compl_v0()
2224 rxcp->tcpf = GET_RX_COMPL_V0_BITS(tcpf, compl); in be_parse_rx_compl_v0()
2225 rxcp->udpf = GET_RX_COMPL_V0_BITS(udpf, compl); in be_parse_rx_compl_v0()
2226 rxcp->ip_csum = GET_RX_COMPL_V0_BITS(ipcksm, compl); in be_parse_rx_compl_v0()
2227 rxcp->l4_csum = GET_RX_COMPL_V0_BITS(l4_cksm, compl); in be_parse_rx_compl_v0()
2228 rxcp->ipv6 = GET_RX_COMPL_V0_BITS(ip_version, compl); in be_parse_rx_compl_v0()
2229 rxcp->num_rcvd = GET_RX_COMPL_V0_BITS(numfrags, compl); in be_parse_rx_compl_v0()
2230 rxcp->pkt_type = GET_RX_COMPL_V0_BITS(cast_enc, compl); in be_parse_rx_compl_v0()
2231 rxcp->rss_hash = GET_RX_COMPL_V0_BITS(rsshash, compl); in be_parse_rx_compl_v0()
2232 if (rxcp->vlanf) { in be_parse_rx_compl_v0()
2233 rxcp->qnq = GET_RX_COMPL_V0_BITS(qnq, compl); in be_parse_rx_compl_v0()
2234 rxcp->vlan_tag = GET_RX_COMPL_V0_BITS(vlan_tag, compl); in be_parse_rx_compl_v0()
2236 rxcp->port = GET_RX_COMPL_V0_BITS(port, compl); in be_parse_rx_compl_v0()
2237 rxcp->ip_frag = GET_RX_COMPL_V0_BITS(ip_frag, compl); in be_parse_rx_compl_v0()
2243 struct be_rx_compl_info *rxcp = &rxo->rxcp; in be_rx_compl_get() local
2255 be_parse_rx_compl_v1(compl, rxcp); in be_rx_compl_get()
2257 be_parse_rx_compl_v0(compl, rxcp); in be_rx_compl_get()
2259 if (rxcp->ip_frag) in be_rx_compl_get()
2260 rxcp->l4_csum = 0; in be_rx_compl_get()
2262 if (rxcp->vlanf) { in be_rx_compl_get()
2267 if (be_is_qnq_mode(adapter) && !rxcp->qnq) in be_rx_compl_get()
2268 rxcp->vlanf = 0; in be_rx_compl_get()
2271 rxcp->vlan_tag = swab16(rxcp->vlan_tag); in be_rx_compl_get()
2273 if (adapter->pvid == (rxcp->vlan_tag & VLAN_VID_MASK) && in be_rx_compl_get()
2274 !test_bit(rxcp->vlan_tag, adapter->vids)) in be_rx_compl_get()
2275 rxcp->vlanf = 0; in be_rx_compl_get()
2282 return rxcp; in be_rx_compl_get()
2479 struct be_rx_compl_info *rxcp; in be_rx_cq_clean() local
2490 rxcp = be_rx_compl_get(rxo); in be_rx_cq_clean()
2491 if (!rxcp) { in be_rx_cq_clean()
2505 be_rx_compl_discard(rxo, rxcp); in be_rx_cq_clean()
2507 if (rxcp->num_rcvd == 0) in be_rx_cq_clean()
2848 static inline bool do_gro(struct be_rx_compl_info *rxcp) in do_gro() argument
2850 return (rxcp->tcpf && !rxcp->err && rxcp->l4_csum) ? true : false; in do_gro()
2858 struct be_rx_compl_info *rxcp; in be_process_rx() local
2863 rxcp = be_rx_compl_get(rxo); in be_process_rx()
2864 if (!rxcp) in be_process_rx()
2868 if (unlikely(rxcp->num_rcvd == 0)) in be_process_rx()
2872 if (unlikely(!rxcp->pkt_size)) { in be_process_rx()
2873 be_rx_compl_discard(rxo, rxcp); in be_process_rx()
2880 if (unlikely(rxcp->port != adapter->port_num && in be_process_rx()
2882 be_rx_compl_discard(rxo, rxcp); in be_process_rx()
2887 if (do_gro(rxcp) && polling != BUSY_POLLING) in be_process_rx()
2888 be_rx_compl_process_gro(rxo, napi, rxcp); in be_process_rx()
2890 be_rx_compl_process(rxo, napi, rxcp); in be_process_rx()
2893 frags_consumed += rxcp->num_rcvd; in be_process_rx()
2894 be_rx_stats_update(rxo, rxcp); in be_process_rx()