Message ID | 20240625082924.775877-1-chengcheng.luo@smartx.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [1/2] Add GSO UDP Offloading feature to OVS Internal Port | expand |
On Tue, Jun 25, 2024 at 4:30 AM echken <chengcheng.luo@smartx.com> wrote: > > The OVS internal port does not support UDP fragmentation offloading, > resulting in large packets sent through the OVS internal port to OVS > being prematurely fragmented. This increases the total number of packets > processed in the path from the vport to the OVS bridge output port, > affecting transmission efficiency. > > Signed-off-by: echken <chengcheng.luo@smartx.com> > --- > net/openvswitch/vport-internal_dev.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c > index 74c88a6baa43..c5a72c4dc6fd 100644 > --- a/net/openvswitch/vport-internal_dev.c > +++ b/net/openvswitch/vport-internal_dev.c > @@ -110,7 +110,8 @@ static void do_setup(struct net_device *netdev) > > netdev->features = NETIF_F_LLTX | NETIF_F_SG | NETIF_F_FRAGLIST | > NETIF_F_HIGHDMA | NETIF_F_HW_CSUM | > - NETIF_F_GSO_SOFTWARE | NETIF_F_GSO_ENCAP_ALL; > + NETIF_F_GSO_SOFTWARE | NETIF_F_GSO_ENCAP_ALL | > + NETIF_F_GSO_UDP | NETIF_F_GSO_UDP_L4; I'll try testing this out, but preliminarily, NETIF_F_GSO_SOFTWARE already contains NETIF_F_GSO_UDP_L4. Thanks, Mike > > netdev->vlan_features = netdev->features; > netdev->hw_enc_features = netdev->features; > -- > 2.34.1 > >
On 6/25/24 15:27, Mike Pattrick wrote: > On Tue, Jun 25, 2024 at 4:30 AM echken <chengcheng.luo@smartx.com> wrote: >> >> The OVS internal port does not support UDP fragmentation offloading, >> resulting in large packets sent through the OVS internal port to OVS >> being prematurely fragmented. This increases the total number of packets >> processed in the path from the vport to the OVS bridge output port, >> affecting transmission efficiency. >> >> Signed-off-by: echken <chengcheng.luo@smartx.com> >> --- >> net/openvswitch/vport-internal_dev.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c >> index 74c88a6baa43..c5a72c4dc6fd 100644 >> --- a/net/openvswitch/vport-internal_dev.c >> +++ b/net/openvswitch/vport-internal_dev.c >> @@ -110,7 +110,8 @@ static void do_setup(struct net_device *netdev) >> >> netdev->features = NETIF_F_LLTX | NETIF_F_SG | NETIF_F_FRAGLIST | >> NETIF_F_HIGHDMA | NETIF_F_HW_CSUM | >> - NETIF_F_GSO_SOFTWARE | NETIF_F_GSO_ENCAP_ALL; >> + NETIF_F_GSO_SOFTWARE | NETIF_F_GSO_ENCAP_ALL | >> + NETIF_F_GSO_UDP | NETIF_F_GSO_UDP_L4; > > I'll try testing this out, but preliminarily, NETIF_F_GSO_SOFTWARE > already contains NETIF_F_GSO_UDP_L4. And as far as my understanding goes, NETIF_F_GSO_UDP is deprecated for all use, except for tuntap. So, we probably shouldn't add it. UFO generally creates more issues than it solves. Best regards, Ilya Maximets.
diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c index 74c88a6baa43..c5a72c4dc6fd 100644 --- a/net/openvswitch/vport-internal_dev.c +++ b/net/openvswitch/vport-internal_dev.c @@ -110,7 +110,8 @@ static void do_setup(struct net_device *netdev) netdev->features = NETIF_F_LLTX | NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA | NETIF_F_HW_CSUM | - NETIF_F_GSO_SOFTWARE | NETIF_F_GSO_ENCAP_ALL; + NETIF_F_GSO_SOFTWARE | NETIF_F_GSO_ENCAP_ALL | + NETIF_F_GSO_UDP | NETIF_F_GSO_UDP_L4; netdev->vlan_features = netdev->features; netdev->hw_enc_features = netdev->features;
The OVS internal port does not support UDP fragmentation offloading, resulting in large packets sent through the OVS internal port to OVS being prematurely fragmented. This increases the total number of packets processed in the path from the vport to the OVS bridge output port, affecting transmission efficiency. Signed-off-by: echken <chengcheng.luo@smartx.com> --- net/openvswitch/vport-internal_dev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)