>> static inline uint64_t >> -rx_desc_status_to_pkt_flags(uint32_t rx_status) >> +rx_desc_status_to_pkt_flags(uint32_t rx_status, uint8_t vlan_strip) >> { >> uint64_t pkt_flags; >> + uint64_t vlan_flags; >> + >> + /* if vlan is stripped, set the proper flag */ >> + if (vlan_strip) >> + vlan_flags = PKT_RX_VLAN_PKT | PKT_RX_VLAN_STRIPPED; >> + else >> + vlan_flags = PKT_RX_VLAN_PKT; >> >> /* >> * Check if VLAN present only. >> * Do not check whether L3/L4 rx checksum done by NIC or not, >> * That can be found from rte_eth_rxmode.hw_ip_checksum flag >> */ >> - pkt_flags = (rx_status & IXGBE_RXD_STAT_VP) ? PKT_RX_VLAN_PKT : 0; >> + pkt_flags = (rx_status & IXGBE_RXD_STAT_VP) ? vlan_flags : 0; > > > Instead of storing in rxq (and passing as a parameter) a bool value for > vlan_strip (=on/off), > you probably can store in rxq and pass as a parameter here uint64_t > vlan_flags; > Then it will be: > > rx_desc_status_to_pkt_flags(uint32_t rx_status, uint64_t vlan_flags) > { > ... > pkt_flags = (rx_status & IXGBE_RXD_STAT_VP) ? vlan_flags : 0; > ... > } > > ... > pkt_flags = rx_desc_status_to_pkt_flags(s[j], rxq->vlan_flags); > > Might help to save few cycles here.
Yep, will do in v2. Olivier