Re: [PATCH net] vmxnet3: use gro callback when UPT is enabled

From: Ronak Doshi
Date: Wed Mar 15 2023 - 19:45:58 EST



> On 3/14/23, 8:05 PM, "Yunsheng Lin" <linyunsheng@xxxxxxxxxx <mailto:linyunsheng@xxxxxxxxxx>> wrote:
>
> I am not sure how we can handle the runtime hw capability changing thing yet, that is why
> I suggested setting the hw capability during the driver init process, then user can enable
> or disable GRO if need to.
>
It is not about enabling or disabling the LRO/GRO. It is about which callback to be used to
deliver the packets to the stack.

During init, the vnic will always come up in emulation (non-UPT) mode and user can request
whichever feature they want (lro or gro or both). If it is in UPT mode, as we know UPT device
does not support LRO, we use gro API to deliver. If GRO is disabled by the user, then it can still
take the normal path. If in emulation (non-UPT) mode, ESXi will perform LRO.

> Suppose user enable the software GRO using ethtool, disabling the GRO through some runtime
> checking seems against the will of the user.
>
We are not disabling GRO here, it's either we perform LRO on ESXi or GRO in guest stack.


> Also, if you are able to "add an event to notify the guest about this", I suppose the
> para-virtualized driver will clear the specific bit in netdev->hw_features and
> netdev->features when handling the event? does user need to be notified about this, does
> user get confusion about this change without notification?
>
We won’t be changing any feature bits. It is just to let know the driver that UPT is active and it
should use GRO path instead of relying on ESXi LRO.

Thanks,
Ronak