mbox series

[ovs-dev,OvS,0/4] Offload MPLS actions to TC datapath

Message ID 1564484717-18648-1-git-send-email-john.hurley@netronome.com
Headers show
Series Offload MPLS actions to TC datapath | expand

Message

John Hurley July 30, 2019, 11:05 a.m. UTC
Recent additions to TC in the Linux kernel includes an action module that
allows MPLS packet manipulation.

Update the OvS TC API to allow OvS datapath MPLS actions to be converted
and offloaded to a TC datapath.

Actions converted include set, push and pop. TC also offers a decrement
TTL MPLS action, however, OvS handles this by matching on a TTL value and
doing a set on the MPLS header to a TTL value one below. Therefore, this
action is convered by 'set' offloads without having to be explicitly
supported.

John Hurley (4):
  compat: add compatibility headers for tc mpls action
  ovs-tc: offload MPLS pop actions to TC datapath
  ovs-tc: offload MPLS push actions to TC datapath
  ovs-tc: offload MPLS set actions to TC datapath

 acinclude.m4                   |   7 ++
 include/linux/automake.mk      |   1 +
 include/linux/tc_act/tc_mpls.h |  37 +++++++++
 lib/netdev-offload-tc.c        |  71 ++++++++++++++++
 lib/packets.h                  |  24 ++++++
 lib/tc.c                       | 178 +++++++++++++++++++++++++++++++++++++++++
 lib/tc.h                       |  11 +++
 7 files changed, 329 insertions(+)
 create mode 100644 include/linux/tc_act/tc_mpls.h

Comments

Simon Horman Aug. 1, 2019, 4:10 p.m. UTC | #1
On Tue, Jul 30, 2019 at 12:05:13PM +0100, John Hurley wrote:
> Recent additions to TC in the Linux kernel includes an action module that
> allows MPLS packet manipulation.
> 
> Update the OvS TC API to allow OvS datapath MPLS actions to be converted
> and offloaded to a TC datapath.
> 
> Actions converted include set, push and pop. TC also offers a decrement
> TTL MPLS action, however, OvS handles this by matching on a TTL value and
> doing a set on the MPLS header to a TTL value one below. Therefore, this
> action is convered by 'set' offloads without having to be explicitly
> supported.

Thanks John,

applied to master.