On Thu, Jul 7, 2022 at 7:03 AM David Marchand <[email protected]> wrote:
>
> Hello Mike,
>
>
> I did not review carefully yet.
> Just two quick comments.
>
>
> On Fri, Jul 1, 2022 at 5:58 AM Mike Pattrick <[email protected]> wrote:
> >
> > From: Flavio Leitner <[email protected]>
> >
> > This provides a software implementation in the case
> > the egress netdev doesn't support segmentation in hardware.
> >
> > This is an _untested_ patch to showcase the proposed solution.
>
> I suppose it is a leftover from the RFC patch, can you confirm?

Yes, sorry about that. The patches mostly kept the original messages,
this one should have gotten a new message as it was tested and
modified.


> >
> > The challenge here is to guarantee packet ordering in the
> > original batch that may be full of TSO packets. Each TSO
> > packet can go up to ~64kB, so with segment size of 1440
> > that means about 44 packets for each TSO. Each batch has
> > 32 packets, so the total batch amounts to 1408 normal
> > packets.
> >
> > The segmentation estimates the total number of packets
> > and then the total number of batches. Then allocate
> > enough memory and finally do the work.
> >
> > Finally each batch is sent in order to the netdev.
> >
> > Signed-off-by: Flavio Leitner <[email protected]>
> > Co-authored-by: Mike Pattrick <[email protected]>
> > Signed-off-by: Mike Pattrick <[email protected]>
> > ---
> >  lib/automake.mk     |   2 +
> >  lib/dp-packet-gso.c | 172 ++++++++++++++++++++++++++++++++++++++++++++
> >  lib/dp-packet-gso.h |  24 +++++++
> >  lib/dp-packet.c     |   2 +
> >  lib/dp-packet.h     |  11 +++
> >  lib/netdev-dpdk.c   |  38 +++++++---
> >  lib/netdev-linux.c  |  57 ---------------
> >  lib/netdev.c        | 121 ++++++++++++++++++-------------
> >  lib/packets.c       |   4 +-
> >  9 files changed, 311 insertions(+), 120 deletions(-)
> >  create mode 100644 lib/dp-packet-gso.c
> >  create mode 100644 lib/dp-packet-gso.h
> >
>
> [snip]
>
>
> > diff --git a/lib/netdev.c b/lib/netdev.c
> > index ad9081f28..f0931730c 100644
> > --- a/lib/netdev.c
> > +++ b/lib/netdev.c
> > @@ -35,6 +35,7 @@
> >  #include "coverage.h"
> >  #include "dpif.h"
> >  #include "dp-packet.h"
> > +#include "dp-packet-gso.h"
> >  #include "openvswitch/dynamic-string.h"
> >  #include "fatal-signal.h"
> >  #include "hash.h"
> > @@ -55,6 +56,7 @@
> >  #include "svec.h"
> >  #include "openvswitch/vlog.h"
> >  #include "flow.h"
> > +#include "userspace-tso.h"
> >  #include "util.h"
> >  #ifdef __linux__
> >  #include "tc.h"
> > @@ -66,6 +68,7 @@ COVERAGE_DEFINE(netdev_received);
> >  COVERAGE_DEFINE(netdev_sent);
> >  COVERAGE_DEFINE(netdev_add_router);
> >  COVERAGE_DEFINE(netdev_get_stats);
> > +COVERAGE_DEFINE(netdev_send_tcp_seg_drops);
>
> This coverage counter is not used, as flagged by the CI:
> https://mail.openvswitch.org/pipermail/ovs-build/2022-July/023119.html
>

My bad, these were used briefly during the testing process, but are no
longer relevant and will be removed in the next revision.

>
>
> >  COVERAGE_DEFINE(netdev_send_prepare_drops);
> >  COVERAGE_DEFINE(netdev_push_header_drops);
> >
>
>
> --
> David Marchand
>

Cheers,
M

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

Reply via email to