Re: [RFC bpf-next 11/23] ice: use VLAN proto from ring packet context in skb path
From: Larysa Zaremba <hidden>
Date: 2023-09-14 16:36:18
Also in:
bpf
On Thu, Sep 14, 2023 at 06:30:32PM +0200, Alexander Lobakin wrote:
From: Larysa Zaremba <redacted> Date: Thu, 24 Aug 2023 21:26:50 +0200quoted
VLAN proto, used in ice XDP hints implementation is stored in ring packet context. Utilize this value in skb VLAN processing too instead of checking netdev features. At the same time, use vlan_tci instead of vlan_tag in touched code, because vlan_tag is misleading.[...]quoted
void -ice_receive_skb(struct ice_rx_ring *rx_ring, struct sk_buff *skb, u16 vlan_tag) +ice_receive_skb(struct ice_rx_ring *rx_ring, struct sk_buff *skb, u16 vlan_tci) { - netdev_features_t features = rx_ring->netdev->features; - bool non_zero_vlan = !!(vlan_tag & VLAN_VID_MASK); - - if ((features & NETIF_F_HW_VLAN_CTAG_RX) && non_zero_vlan) - __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), vlan_tag); - else if ((features & NETIF_F_HW_VLAN_STAG_RX) && non_zero_vlan) - __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021AD), vlan_tag); + if (vlan_tci & VLAN_VID_MASK && rx_ring->pkt_ctx.vlan_proto)I'd wrap the first expression into ()s to make it more readable (and no questions like "shouldn't these be three &&?").
OK
quoted
+ __vlan_hwaccel_put_tag(skb, rx_ring->pkt_ctx.vlan_proto, + vlan_tci); napi_gro_receive(&rx_ring->q_vector->napi, skb); }[...] Thanks, Olek