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

Pravin B Shelar pshelar at ovn.org
Fri Apr 22 01:54:15 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.

I have also fixed patches according to comments I got from Jesse on v1.

v1-v2: (majore chages)
- Added support for Large packets segementation.
- renamed tunnel module to netdev-native-tnl
- move STT to separate module.

Pravin B Shelar (15):
  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: Refactor fast path process function.
  dpif-netdev: Refactor userspace action
  netdev: Add Large segment offload 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               |  62 +++-
 lib/dpif-netdev.c             | 351 ++++++++++++---------
 lib/dpif.c                    |  12 +-
 lib/netdev-native-stt.c       | 700 ++++++++++++++++++++++++++++++++++++++++++
 lib/netdev-native-stt.h       |  37 +++
 lib/netdev-native-tnl.c       | 650 +++++++++++++++++++++++++++++++++++++++
 lib/netdev-native-tnl.h       | 133 ++++++++
 lib/netdev-provider.h         |   9 +-
 lib/netdev-vport-private.h    |  63 ++++
 lib/netdev-vport.c            | 677 +---------------------------------------
 lib/netdev.c                  | 150 +++++++--
 lib/netdev.h                  |  12 +-
 lib/odp-execute.c             |  10 +-
 lib/odp-execute.h             |   5 +-
 lib/odp-util.c                |  62 +++-
 lib/packets.c                 |  21 ++
 lib/packets.h                 |  42 +++
 lib/timeval.h                 |   1 +
 lib/tnl-ports.c               |  82 +++--
 lib/tnl-ports.h               |   4 +-
 ofproto/ofproto-dpif-xlate.c  |   5 +-
 ofproto/tunnel.c              |  14 +-
 tests/tunnel-push-pop-ipv6.at |  19 +-
 tests/tunnel-push-pop.at      |  27 ++
 28 files changed, 2808 insertions(+), 899 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