[ovs-dev] [PATCH v3 00/15] dpif-netdev: Large packet segmentation and STT.

Pravin B Shelar pshelar at ovn.org
Tue May 10 17:30:43 UTC 2016


Following patch series adds support for STT. STT can generate large
packet by merging multiple stt segments. To handle packet larger
than device MTU we need to segment these packet. We can just segment
then packet in STT and send each packet up to the userspace datapath.
But that generate lot more packets and lowers performance. So this
patch series improves userpace datapath to handle large packet.
And segment the packet when it is required, typically just before
sending it over device.
This makes it easier to use DPDK segmentation offloads in future
integration work.

v2-v3:
- Fixed function name of netdev-native-tnl headers.
- Refactored tnl header build code.
- Add patches to fix netdev header push, pop error path.

I have also fixed patches according to comments I got from Jesse on v1.
v1-v2: (major chages)
- Added support for Large packets segementation.
- renamed tunnel module to netdev-native-tnl
- move STT to separate module.

Pravin B Shelar (17):
  netdev-vport: Factor-out tunnel Push-pop code into separate module.
  netdev: Return number of packet from netdev_pop_header()
  dp-packet: Add private data
  dp-packet: use packet reset function.
  dpif-netdev: rename packet_batch
  dpif-netdev: create batch object
  dpif-netdev: Fix memory leak in tunnel header pop action.
  dpif-netdev: Fix memory leak in tunnel header push action.
  dpif-netdev: Refactor fast path process function.
  dpif-netdev: Refactor userspace action
  netdev: Add Large packet segmentation support.
  netdev-vport: Introduce ip_build_header()
  tunnel: Add IP ECN related functions.
  tnl-ports: Handle STT ports.
  native tunnel: Add support for STT
  netdev: Add support for GRE segmentation
  netdev: Add support for GENEVE/VXLAN tunnel segmentation

 lib/automake.mk               |   7 +
 lib/dp-packet-lso.c           | 490 ++++++++++++++++++++++++++++
 lib/dp-packet-lso.h           |  60 ++++
 lib/dp-packet.c               |   2 +
 lib/dp-packet.h               |  74 ++++-
 lib/dpif-netdev.c             | 378 ++++++++++++----------
 lib/dpif.c                    |  12 +-
 lib/netdev-native-stt.c       | 708 +++++++++++++++++++++++++++++++++++++++++
 lib/netdev-native-stt.h       |  41 +++
 lib/netdev-native-tnl.c       | 724 ++++++++++++++++++++++++++++++++++++++++++
 lib/netdev-native-tnl.h       | 117 +++++++
 lib/netdev-provider.h         |  18 +-
 lib/netdev-vport-private.h    |  58 ++++
 lib/netdev-vport.c            | 684 ++-------------------------------------
 lib/netdev.c                  | 162 ++++++++--
 lib/netdev.h                  |  17 +-
 lib/odp-execute.c             |  10 +-
 lib/odp-execute.h             |   5 +-
 lib/odp-util.c                |  62 +++-
 lib/packets.c                 |  21 ++
 lib/packets.h                 |  51 +++
 lib/timeval.h                 |   1 +
 lib/tnl-ports.c               |  82 +++--
 lib/tnl-ports.h               |   4 +-
 ofproto/ofproto-dpif-xlate.c  |   5 +-
 ofproto/tunnel.c              |  64 +---
 tests/tunnel-push-pop-ipv6.at |  19 +-
 tests/tunnel-push-pop.at      |  27 ++
 28 files changed, 2924 insertions(+), 979 deletions(-)
 create mode 100644 lib/dp-packet-lso.c
 create mode 100644 lib/dp-packet-lso.h
 create mode 100644 lib/netdev-native-stt.c
 create mode 100644 lib/netdev-native-stt.h
 create mode 100644 lib/netdev-native-tnl.c
 create mode 100644 lib/netdev-native-tnl.h
 create mode 100644 lib/netdev-vport-private.h

-- 
2.5.5




More information about the dev mailing list