[dpdk-stable] [PATCH] net/ena: TX L4 offloads should not be set in RX path
Rafał Kozik
rk at semihalf.com
Fri Jan 26 14:51:37 CET 2018
Hello,
I send this patch to stable list by mistake. I misunderstood git-send
configuration.
Currently this patch is under review on dpdk-dev list
http://dpdk.org/ml/archives/dev/2018-January/089053.html.
I am very sorry about the trouble I caused, I assure you that it will
never happen again.
Kind regards,
Rafal Kozik
2018-01-26 14:39 GMT+01:00 Luca Boccassi <bluca at debian.org>:
> On Thu, 2018-01-25 at 16:12 +0100, Rafal Kozik wrote:
>> Information about received packet type detected by NIC should be
>> stored in packet_type field of rte_mbuf. TX L4 offload flags should
>> not be set in RX path. Only fields that could be set in of_flags
>> during packet receiving are information if L4 and L3 checksum is
>> correct.
>>
>> Fixes: 1173fca25af9 ("ena: add polling-mode driver")
>> Cc: stable at dpdk.org
>>
>> Reported-by: Matthew Smith <mgsmith at netgate.com>
>> Signed-off-by: Rafal Kozik <rk at semihalf.com>
>> ---
>> drivers/net/ena/ena_ethdev.c | 10 ++++++----
>> 1 file changed, 6 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/ena/ena_ethdev.c
>> b/drivers/net/ena/ena_ethdev.c
>> index 83e0ae2..1e2af80 100644
>> --- a/drivers/net/ena/ena_ethdev.c
>> +++ b/drivers/net/ena/ena_ethdev.c
>> @@ -275,16 +275,17 @@ static inline void ena_rx_mbuf_prepare(struct
>> rte_mbuf *mbuf,
>> struct ena_com_rx_ctx
>> *ena_rx_ctx)
>> {
>> uint64_t ol_flags = 0;
>> + uint32_t packet_type = 0;
>>
>> if (ena_rx_ctx->l4_proto == ENA_ETH_IO_L4_PROTO_TCP)
>> - ol_flags |= PKT_TX_TCP_CKSUM;
>> + packet_type |= RTE_PTYPE_L4_TCP;
>> else if (ena_rx_ctx->l4_proto == ENA_ETH_IO_L4_PROTO_UDP)
>> - ol_flags |= PKT_TX_UDP_CKSUM;
>> + packet_type |= RTE_PTYPE_L4_UDP;
>>
>> if (ena_rx_ctx->l3_proto == ENA_ETH_IO_L3_PROTO_IPV4)
>> - ol_flags |= PKT_TX_IPV4;
>> + packet_type |= RTE_PTYPE_L3_IPV4;
>> else if (ena_rx_ctx->l3_proto == ENA_ETH_IO_L3_PROTO_IPV6)
>> - ol_flags |= PKT_TX_IPV6;
>> + packet_type |= RTE_PTYPE_L3_IPV6;
>>
>> if (unlikely(ena_rx_ctx->l4_csum_err))
>> ol_flags |= PKT_RX_L4_CKSUM_BAD;
>> @@ -292,6 +293,7 @@ static inline void ena_rx_mbuf_prepare(struct
>> rte_mbuf *mbuf,
>> ol_flags |= PKT_RX_IP_CKSUM_BAD;
>>
>> mbuf->ol_flags = ol_flags;
>> + mbuf->packet_type = packet_type;
>> }
>>
>> static inline void ena_tx_mbuf_prepare(struct rte_mbuf *mbuf,
>
> Hi,
>
> has a similar/related fix been applied to dpdk/master?
>
> --
> Kind regards,
> Luca Boccassi
More information about the stable
mailing list