Lines Matching refs:rxcp
1720 struct be_rx_compl_info *rxcp) in be_rx_stats_update() argument
1726 stats->rx_bytes += rxcp->pkt_size; in be_rx_stats_update()
1728 if (rxcp->pkt_type == BE_MULTICAST_PACKET) in be_rx_stats_update()
1730 if (rxcp->err) in be_rx_stats_update()
1735 static inline bool csum_passed(struct be_rx_compl_info *rxcp) in csum_passed() argument
1740 return (rxcp->tcpf || rxcp->udpf) && rxcp->l4_csum && in csum_passed()
1741 (rxcp->ip_csum || rxcp->ipv6) && !rxcp->err; in csum_passed()
1772 struct be_rx_compl_info *rxcp) in be_rx_compl_discard() argument
1775 u16 i, num_rcvd = rxcp->num_rcvd; in be_rx_compl_discard()
1789 struct be_rx_compl_info *rxcp) in skb_fill_rx_data() argument
1801 curr_frag_len = min(rxcp->pkt_size, rx_frag_size); in skb_fill_rx_data()
1825 if (rxcp->pkt_size <= rx_frag_size) { in skb_fill_rx_data()
1826 BUG_ON(rxcp->num_rcvd != 1); in skb_fill_rx_data()
1831 remaining = rxcp->pkt_size - curr_frag_len; in skb_fill_rx_data()
1832 for (i = 1, j = 0; i < rxcp->num_rcvd; i++) { in skb_fill_rx_data()
1861 struct be_rx_compl_info *rxcp) in be_rx_compl_process() argument
1870 be_rx_compl_discard(rxo, rxcp); in be_rx_compl_process()
1874 skb_fill_rx_data(rxo, skb, rxcp); in be_rx_compl_process()
1876 if (likely((netdev->features & NETIF_F_RXCSUM) && csum_passed(rxcp))) in be_rx_compl_process()
1884 skb_set_hash(skb, rxcp->rss_hash, PKT_HASH_TYPE_L3); in be_rx_compl_process()
1886 skb->csum_level = rxcp->tunneled; in be_rx_compl_process()
1889 if (rxcp->vlanf) in be_rx_compl_process()
1890 __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), rxcp->vlan_tag); in be_rx_compl_process()
1898 struct be_rx_compl_info *rxcp) in be_rx_compl_process_gro() argument
1908 be_rx_compl_discard(rxo, rxcp); in be_rx_compl_process_gro()
1912 remaining = rxcp->pkt_size; in be_rx_compl_process_gro()
1913 for (i = 0, j = -1; i < rxcp->num_rcvd; i++) { in be_rx_compl_process_gro()
1937 skb->len = rxcp->pkt_size; in be_rx_compl_process_gro()
1938 skb->data_len = rxcp->pkt_size; in be_rx_compl_process_gro()
1942 skb_set_hash(skb, rxcp->rss_hash, PKT_HASH_TYPE_L3); in be_rx_compl_process_gro()
1944 skb->csum_level = rxcp->tunneled; in be_rx_compl_process_gro()
1947 if (rxcp->vlanf) in be_rx_compl_process_gro()
1948 __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), rxcp->vlan_tag); in be_rx_compl_process_gro()
1954 struct be_rx_compl_info *rxcp) in be_parse_rx_compl_v1() argument
1956 rxcp->pkt_size = GET_RX_COMPL_V1_BITS(pktsize, compl); in be_parse_rx_compl_v1()
1957 rxcp->vlanf = GET_RX_COMPL_V1_BITS(vtp, compl); in be_parse_rx_compl_v1()
1958 rxcp->err = GET_RX_COMPL_V1_BITS(err, compl); in be_parse_rx_compl_v1()
1959 rxcp->tcpf = GET_RX_COMPL_V1_BITS(tcpf, compl); in be_parse_rx_compl_v1()
1960 rxcp->udpf = GET_RX_COMPL_V1_BITS(udpf, compl); in be_parse_rx_compl_v1()
1961 rxcp->ip_csum = GET_RX_COMPL_V1_BITS(ipcksm, compl); in be_parse_rx_compl_v1()
1962 rxcp->l4_csum = GET_RX_COMPL_V1_BITS(l4_cksm, compl); in be_parse_rx_compl_v1()
1963 rxcp->ipv6 = GET_RX_COMPL_V1_BITS(ip_version, compl); in be_parse_rx_compl_v1()
1964 rxcp->num_rcvd = GET_RX_COMPL_V1_BITS(numfrags, compl); in be_parse_rx_compl_v1()
1965 rxcp->pkt_type = GET_RX_COMPL_V1_BITS(cast_enc, compl); in be_parse_rx_compl_v1()
1966 rxcp->rss_hash = GET_RX_COMPL_V1_BITS(rsshash, compl); in be_parse_rx_compl_v1()
1967 if (rxcp->vlanf) { in be_parse_rx_compl_v1()
1968 rxcp->qnq = GET_RX_COMPL_V1_BITS(qnq, compl); in be_parse_rx_compl_v1()
1969 rxcp->vlan_tag = GET_RX_COMPL_V1_BITS(vlan_tag, compl); in be_parse_rx_compl_v1()
1971 rxcp->port = GET_RX_COMPL_V1_BITS(port, compl); in be_parse_rx_compl_v1()
1972 rxcp->tunneled = in be_parse_rx_compl_v1()
1977 struct be_rx_compl_info *rxcp) in be_parse_rx_compl_v0() argument
1979 rxcp->pkt_size = GET_RX_COMPL_V0_BITS(pktsize, compl); in be_parse_rx_compl_v0()
1980 rxcp->vlanf = GET_RX_COMPL_V0_BITS(vtp, compl); in be_parse_rx_compl_v0()
1981 rxcp->err = GET_RX_COMPL_V0_BITS(err, compl); in be_parse_rx_compl_v0()
1982 rxcp->tcpf = GET_RX_COMPL_V0_BITS(tcpf, compl); in be_parse_rx_compl_v0()
1983 rxcp->udpf = GET_RX_COMPL_V0_BITS(udpf, compl); in be_parse_rx_compl_v0()
1984 rxcp->ip_csum = GET_RX_COMPL_V0_BITS(ipcksm, compl); in be_parse_rx_compl_v0()
1985 rxcp->l4_csum = GET_RX_COMPL_V0_BITS(l4_cksm, compl); in be_parse_rx_compl_v0()
1986 rxcp->ipv6 = GET_RX_COMPL_V0_BITS(ip_version, compl); in be_parse_rx_compl_v0()
1987 rxcp->num_rcvd = GET_RX_COMPL_V0_BITS(numfrags, compl); in be_parse_rx_compl_v0()
1988 rxcp->pkt_type = GET_RX_COMPL_V0_BITS(cast_enc, compl); in be_parse_rx_compl_v0()
1989 rxcp->rss_hash = GET_RX_COMPL_V0_BITS(rsshash, compl); in be_parse_rx_compl_v0()
1990 if (rxcp->vlanf) { in be_parse_rx_compl_v0()
1991 rxcp->qnq = GET_RX_COMPL_V0_BITS(qnq, compl); in be_parse_rx_compl_v0()
1992 rxcp->vlan_tag = GET_RX_COMPL_V0_BITS(vlan_tag, compl); in be_parse_rx_compl_v0()
1994 rxcp->port = GET_RX_COMPL_V0_BITS(port, compl); in be_parse_rx_compl_v0()
1995 rxcp->ip_frag = GET_RX_COMPL_V0_BITS(ip_frag, compl); in be_parse_rx_compl_v0()
2001 struct be_rx_compl_info *rxcp = &rxo->rxcp; in be_rx_compl_get() local
2013 be_parse_rx_compl_v1(compl, rxcp); in be_rx_compl_get()
2015 be_parse_rx_compl_v0(compl, rxcp); in be_rx_compl_get()
2017 if (rxcp->ip_frag) in be_rx_compl_get()
2018 rxcp->l4_csum = 0; in be_rx_compl_get()
2020 if (rxcp->vlanf) { in be_rx_compl_get()
2025 if (be_is_qnq_mode(adapter) && !rxcp->qnq) in be_rx_compl_get()
2026 rxcp->vlanf = 0; in be_rx_compl_get()
2029 rxcp->vlan_tag = swab16(rxcp->vlan_tag); in be_rx_compl_get()
2031 if (adapter->pvid == (rxcp->vlan_tag & VLAN_VID_MASK) && in be_rx_compl_get()
2032 !test_bit(rxcp->vlan_tag, adapter->vids)) in be_rx_compl_get()
2033 rxcp->vlanf = 0; in be_rx_compl_get()
2040 return rxcp; in be_rx_compl_get()
2223 struct be_rx_compl_info *rxcp; in be_rx_cq_clean() local
2234 rxcp = be_rx_compl_get(rxo); in be_rx_cq_clean()
2235 if (!rxcp) { in be_rx_cq_clean()
2247 be_rx_compl_discard(rxo, rxcp); in be_rx_cq_clean()
2249 if (rxcp->num_rcvd == 0) in be_rx_cq_clean()
2597 static inline bool do_gro(struct be_rx_compl_info *rxcp) in do_gro() argument
2599 return (rxcp->tcpf && !rxcp->err && rxcp->l4_csum) ? true : false; in do_gro()
2607 struct be_rx_compl_info *rxcp; in be_process_rx() local
2612 rxcp = be_rx_compl_get(rxo); in be_process_rx()
2613 if (!rxcp) in be_process_rx()
2617 if (unlikely(rxcp->num_rcvd == 0)) in be_process_rx()
2621 if (unlikely(!rxcp->pkt_size)) { in be_process_rx()
2622 be_rx_compl_discard(rxo, rxcp); in be_process_rx()
2629 if (unlikely(rxcp->port != adapter->port_num && in be_process_rx()
2631 be_rx_compl_discard(rxo, rxcp); in be_process_rx()
2636 if (do_gro(rxcp) && polling != BUSY_POLLING) in be_process_rx()
2637 be_rx_compl_process_gro(rxo, napi, rxcp); in be_process_rx()
2639 be_rx_compl_process(rxo, napi, rxcp); in be_process_rx()
2642 frags_consumed += rxcp->num_rcvd; in be_process_rx()
2643 be_rx_stats_update(rxo, rxcp); in be_process_rx()