On 03/12/2025 12:16, David Marchand via dev wrote:
> On Mon, 1 Dec 2025 at 06:27, Mike Pattrick <[email protected]> wrote:
>>
>> On Wed, Nov 12, 2025 at 12:04 PM David Marchand <[email protected]> 
>> wrote:
>>>
>>> A bug in the vhost library for VDUSE devices resulted in multi-segments
>>> mbufs being treated by OVS.
>>>
>>> This hard to debug situation resulted in incorrectly segmented packets
>>> with mlx5 nics, as the DPDK driver handles multi-segments mbufs fine
>>> even without requiring RTE_ETH_TX_OFFLOAD_MULTI_SEGS.
>>>
>>> While the bug is fixed in the vhost library, we could still hit similar
>>> situations with "normal" DPDK ports: for example,
>>> RTE_ETH_RX_OFFLOAD_SCATTER is requested for jumbo frames and a bug could
>>> be hidden there.
>>>
>>> Enforce only mono-segment mbufs are received.
>>>
>>> Link: 
>>> https://patchwork.dpdk.org/project/dpdk/patch/[email protected]/
>>> Reported-at: https://issues.redhat.com/browse/FDP-2121
>>> Signed-off-by: David Marchand <[email protected]>
>>> ---
>>>  lib/netdev-dpdk.c | 3 +++
>>>  1 file changed, 3 insertions(+)
>>>
>>> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
>>> index 3704145a57..0cb9fae9f0 100644
>>> --- a/lib/netdev-dpdk.c
>>> +++ b/lib/netdev-dpdk.c
>>> @@ -2598,6 +2598,9 @@ netdev_dpdk_batch_init_packet_fields(struct 
>>> dp_packet_batch *batch)
>>>      struct dp_packet *packet;
>>>
>>>      DP_PACKET_BATCH_FOR_EACH (i, packet, batch) {
>>> +        /* Datapath does not support multi-segment buffers. */
>>> +        ovs_assert(packet->mbuf.nb_segs == 1);
>>
>>
>> Would this assert ever be hit in a case that wasn't a bug in a DPDK driver?
> 
> Nothing in OVS touches nb_segs, so it would be a bug coming from a
> DPDK component: a driver, the vhost library, the mempool/mbuf
> library..
> 
> 

I was also wondering if there was a need for a check and packet drop
here, seen as this is outside OVS control and was already hit. But otoh
it will be for every packet in the fastpath so it might be too much

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to