>>  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

Reply via email to