such rules to be offloaded to a TC datapath.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
---
lib/netdev-offload-tc.c | 37 +
lib/tc.c| 48
lib/tc.h| 1 +
3 files changed
TC now supports an action to pop the outer MPLS header from a packet. The
next protocol after the header is required alongside this. Currently, OvS
datapath rules also supply this information.
Offload OvS MPLS pop actions to TC along with the next protocol.
Signed-off-by: John Hurley
Reviewed
optionally accept these values so can be made replicate the OvS datapath
rule.
Convert OvS MPLS push datapath rules to TC format and offload to a TC
datapath.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
---
lib/netdev-offload-tc.c | 25
lib/packets.h | 24
OvS includes compat code for several TC actions including vlan, mirred and
tunnel key. MPLS actions have recently been added to TC in the kernel. In
preparation for adding TC offload code for MPLS, add the MPLS compat code.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
---
acinclude.m4
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
rvice
>
> Fix by using the correct hook qdisc type at netdev hook qdisc cleanup.
>
Nice catch here. Thanks.
Acked-by: John Hurley
> Fixes 608ff46aaf0d ("ovs-tc: offload datapath rules matching on internal
> ports")
> Signed-off-by: Raed Salem
> Reviewed-by: Roi
to allow the creation of egress qdiscs and to add
or interact with flower filters applied to these.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
Reviewed-by: Roi Dayan
---
lib/netdev-linux.c | 17 +++---
lib/netdev-tc-offloads.c | 36 --
lib/tc.c
by the redirect ingress functionality applied in an earlier
patch.
Signed-off-by: John Hurley
---
lib/dpif.c | 13 +
lib/netdev-linux.c | 1 +
lib/netdev-tc-offloads.c | 41 +
3 files changed, 35 insertions(+), 20 deletions
the functionality of the OvS internal port
kernel module.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
Reviewed-by: Roi Dayan
---
lib/netdev-tc-offloads.c | 15 +---
lib/tc.c | 61 ++--
lib/tc.h | 5 +++-
3 files
OvS includes compat code for several TC actions including vlan, mirred and
tunnel key. Add support for using skbedit actions when compiling
user-space code against older kernel headers.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
Reviewed-by: Roi Dayan
---
acinclude.m4
top of 2a2e637081cb - netdev-tc-offloads: Fix
probe tc block support (patch 3)
Patch v1 -> Patch v2
- use kernel header define for PACKET_HOST (patch 2)
- add enum rather than bool to distinguish ingress/egress qdisc hooks
(patch 3/4)
- fix typos spotted by Roi Dayan
John Hurley (4):
compa
ill
> successfully create an ingress qdisc, ignoring the ingress block.
>
> Fix by trying to add a test rule on the ingress block.
>
Good catch.
Thanks for this.
Acked-by: John Hurley
> Fixes 093c9458fb02 ("tc: allow offloading of block ids")
> Signed-off-by: Raed
On Mon, Apr 8, 2019 at 11:49 AM Roi Dayan wrote:
>
>
>
> On 08/04/2019 13:38, Roi Dayan wrote:
> >
> >
> > On 04/04/2019 19:05, John Hurley wrote:
> >> Rules applied to OvS internal ports are not represented in TC datapaths.
> >> However, it is poss
by the redirect ingress functionality applied in an earlier
patch.
Signed-off-by: John Hurley
---
lib/dpif.c | 13 +---
lib/netdev-linux.c | 1 +
lib/netdev-tc-offloads.c | 55 +---
3 files changed, 49 insertions(+), 20 deletions
to allow the creation of egress qdiscs and to add
or interact with flower filters applied to these.
Signed-off-by: John Hurley
---
lib/netdev-linux.c | 17 +++---
lib/netdev-tc-offloads.c | 34 +++-
lib/tc.c | 58
the functionality of the OvS internal port
kernel module.
Signed-off-by: John Hurley
---
lib/netdev-tc-offloads.c | 15 +---
lib/tc.c | 61 ++--
lib/tc.h | 5 +++-
3 files changed, 70 insertions(+), 11 deletions(-)
diff --git
OvS includes compat code for several TC actions including vlan, mirred and
tunnel key. Add support for using skbedit actions when compiling
user-space code against older kernel headers.
Signed-off-by: John Hurley
---
acinclude.m4 | 7 +
include/linux/automake.mk
ess qdisc hooks
(patch 3/4)
- fix typos spotted by Roi Dayan
John Hurley (4):
compat: add compatibility headers for tc skbedit action
ovs-tc: allow offloading of ingress mirred TC actions to datapath
ovs-tc: allow offloading TC rules to egress qdiscs
ovs-tc: offload datapath rules match
On Wed, Apr 3, 2019 at 7:19 AM Roi Dayan wrote:
>
>
>
> On 02/04/2019 20:14, John Hurley wrote:
> > On Tue, Apr 2, 2019 at 4:05 PM Roi Dayan wrote:
> >>
> >>
> >>
> >> On 02/04/2019 12:27, John Hurley wrote:
> >>> The TC datapath
On Tue, Apr 2, 2019 at 4:05 PM Roi Dayan wrote:
>
>
>
> On 02/04/2019 12:27, John Hurley wrote:
> > The TC datapath only permits the offload of mirr actions if they are
> > egress. To offload TC actions that output to OvS internal ports, ingress
> > mirr actions
On Tue, Apr 2, 2019 at 4:20 PM Roi Dayan wrote:
>
>
>
> On 02/04/2019 12:27, John Hurley wrote:
> > Offloading rules to a TC datapath only allows the creating of ingress hook
> > qdiscs and the application of filters to these. However, there may be
> > certain si
On Tue, Apr 2, 2019 at 3:53 PM Roi Dayan wrote:
>
>
>
> On 02/04/2019 12:27, John Hurley wrote:
> > OvS includes compat code for serval TC actions including vlan, mirr and
>
> typo serval/several
>
> in mirr you mean mirred ? i would prefer mirred.
>
good spot
by the redirect ingress functionality applied in an earlier
patch.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
---
lib/dpif.c | 13 +
lib/netdev-linux.c | 1 +
lib/netdev-tc-offloads.c | 31 +--
3 files changed, 27 insertions(+), 18
to allow the creation of egress qdiscs and to add
or interact with flower filters applied to these.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
---
lib/netdev-linux.c | 16 +++---
lib/netdev-tc-offloads.c | 32 +--
lib/tc.c | 56
of the OvS internal port
kernel module.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
---
lib/netdev-tc-offloads.c | 15 +---
lib/tc.c | 62 ++--
lib/tc.h | 5 +++-
3 files changed, 71 insertions(+), 11
OvS includes compat code for serval TC actions including vlan, mirr and
tunnel key. Add support for using skbedit actions when compiling
user-space code against older kernel headers.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
---
acinclude.m4 | 7 +
include
ports.
Once such filters exist in TC, it enables drivers to interpret OvS
internal ports with the potential to offload a representation of them to
harware devices.
John Hurley (4):
compat: add compatibility headers for tc skbedit action
ovs-tc: allow offloading of ingress mirr TC actions
ned-off-by: Roi Dayan
Acked-by: John Hurley
> ---
> lib/netdev-tc-offloads.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/lib/netdev-tc-offloads.c b/lib/netdev-tc-offloads.c
> index da43549f2f22..b33a79bb14a2 100644
> --- a/lib/netdev-tc-offloads.c
> +++ b/
On Mon, Mar 11, 2019 at 12:47 PM Roi Dayan wrote:
>
> Adding shared ingress block with ingress qdisc already exists results
> in a failure. So remove the ingress qdisc first.
> Also while at it log the slave name.
>
> Signed-off-by: Roi Dayan
Acked-by: John Hurley
> ---
On Tue, Mar 5, 2019 at 1:46 PM Roi Dayan wrote:
>
>
>
> On 27/02/2019 20:28, John Hurley wrote:
> > Rules applied to OvS internal ports are not represented in TC datapaths.
> > However, it is possible to support rules matching on internal ports in TC.
> > The start_
On Tue, Mar 5, 2019 at 2:12 PM Roi Dayan wrote:
>
>
>
> On 27/02/2019 20:28, John Hurley wrote:
> > Offloading rules to a TC datapath only allows the creating of ingress hook
> > qdiscs and the application of filters to these. However, there may be
> > certain si
. Packets matching these should pass through the network
stack for processing and so there is, currently, no benefit in adding them
to TC.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
---
lib/dpif.c | 31 ++-
lib/netdev-linux.c | 1 +
lib/netdev
to allow the creation of egress qdisc and to add
or interact with flower filters applied to these.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
---
lib/netdev-linux.c | 8
lib/netdev-tc-offloads.c | 30 +++---
lib/tc.c | 45
in the
OvS kernel datapath internal port functions. This would allow the TC
offload of internal port rules as ingress fitlers rather than egress.
John Hurley (2):
ovs-tc: allow offloading TC rules to egress qdiscs
ovs-tc: offload datapath rules matching on internal ports
lib/dpif.c
mark(0),ct_state(0/0xff),ct_zone(0),ct_mark(0),ct_label(0),eth(src=78:94:56:ab:cd:f0,dst=00:e8:ca:11:ba:40),eth_type(0x0806),arp(sip=1.1.1.63,tip=1.1.2.63,op=1/0xff,sha=78:94:56:ab:cd:f0,tha=00:00:00:00:00:00),
> packets:0, bytes:0, used:never,
> actions:set(tunnel(tun_id=0x1388,dst=40.1.1.2,ttl=6
n process the decap in order
> within the actions array.
> Nam) I tried this but it is not working. The only way to do it I am
> thinking is to get the mirroring config information in tc.c to find out which
> is mirror port and in decap case just switch the ports. However, all
&g
.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
Reviewed-by: Dirk van der Merwe
Signed-off-by: Jakub Kicinski
---
lib/netdev-linux.c | 73 ++
1 file changed, 73 insertions(+)
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
index
-by: John Hurley
Reviewed-by: Dirk van der Merwe
Reviewed-by: Simon Horman
Signed-off-by: Jakub Kicinski
---
lib/netdev-linux.c | 34 +-
1 file changed, 29 insertions(+), 5 deletions(-)
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
index 6ed2f05..81de3b1
If a linux netdev is added to OvS that is a LAG master (for example, a
bond or team netdev) then record this in bool form in the dev struct. Use
the link info extracted from rtnetlink calls to determine this.
Signed-off-by: John Hurley
Reviewed-by: Dirk van der Merwe
Reviewed-by: Simon Horman
Extend the rtnetlink_parse function to look for linkinfo attributes and,
in turn, store pointers to the master and slave kinds (if any) in the
rtnetlink_change struct.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
Reviewed-by: Dirk van der Merwe
Signed-off-by: Jakub Kicinski
---
lib
-off-by: John Hurley
Reviewed-by: Dirk van der Merwe
Reviewed-by: Simon Horman
Signed-off-by: Jakub Kicinski
---
lib/netdev-bsd.c | 3 ++-
lib/netdev-dpdk.c| 3 ++-
lib/netdev-dummy.c | 3 ++-
lib/netdev-linux.c | 3 ++-
lib/netdev-provider.h| 4
lib
then the dqisc is not considered part of a block.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
Reviewed-by: Dirk van der Merwe
Signed-off-by: Jakub Kicinski
---
lib/netdev-linux.c | 4 +--
lib/netdev-tc-offloads.c | 64 +++-
lib/tc.c
(fixes
namespace bug reported by Roi Dayan)
John Hurley (6):
tc: allow offloading of block ids
netdev-provider: add class op to get block_id
rtnetlink: extend parser to include kind of master and slave
netdev-linux: indicate if netdev is a LAG master
netdev-linux: assign LAG devs to tc blocks
On Wed, Jun 27, 2018 at 6:48 AM, Roi Dayan wrote:
>
>
> On 26/06/2018 20:43, John Hurley wrote:
>> A LAG slave cannot be added directly to an OvS bridge, nor can a OvS
>> bridge port be added to a LAG dev. However, LAG masters can be added to
>> OvS.
>>
>&
.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
Reviewed-by: Dirk van der Merwe
---
lib/netdev-linux.c | 69 ++
1 file changed, 69 insertions(+)
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
index 81de3b1..4aec735 100644
--- a/lib
-by: John Hurley
Reviewed-by: Dirk van der Merwe
Reviewed-by: Simon Horman
---
lib/netdev-linux.c | 34 +-
1 file changed, 29 insertions(+), 5 deletions(-)
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
index 6ed2f05..81de3b1 100644
--- a/lib/netdev-linux.c
If a linux netdev is added to OvS that is a LAG master (for example, a
bond or team netdev) then record this in bool form in the dev struct. Use
the link info extracted from rtnetlink calls to determine this.
Signed-off-by: John Hurley
Reviewed-by: Dirk van der Merwe
Reviewed-by: Simon Horman
Extend the rtnetlink_parse function to look for linkinfo attributes and,
in turn, store pointers to the master and slave kinds (if any) in the
rtnetlink_change struct.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
Reviewed-by: Dirk van der Merwe
---
lib/rtnetlink.c | 43
-off-by: John Hurley
Reviewed-by: Dirk van der Merwe
Reviewed-by: Simon Horman
---
lib/netdev-bsd.c | 3 ++-
lib/netdev-dpdk.c| 3 ++-
lib/netdev-dummy.c | 3 ++-
lib/netdev-linux.c | 3 ++-
lib/netdev-provider.h| 4
lib/netdev-tc-offloads.c | 18
then the dqisc is not considered part of a block.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
Reviewed-by: Dirk van der Merwe
---
lib/netdev-linux.c | 4 +--
lib/netdev-tc-offloads.c | 64 +++-
lib/tc.c | 60
non-null ifname before calling lag update function (fixes
namespace bug reported by Roi Dayan)
John Hurley (6):
tc: allow offloading of block ids
netdev-provider: add class op to get block_id
rtnetlink: extend parser to include kind of master and slave
netdev-linux: indicate if net
On Tue, Jun 26, 2018 at 6:35 AM, Roi Dayan wrote:
>
>
> On 21/06/2018 16:36, John Hurley wrote:
>> A LAG slave cannot be added directly to an OvS bridge, nor can a OvS
>> bridge port be added to a LAG dev. However, LAG masters can be added to
>> OvS.
>>
>&
.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
Reviewed-by: Dirk van der Merwe
---
lib/netdev-linux.c | 69 ++
1 file changed, 69 insertions(+)
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
index 81de3b1..f2b1dfd 100644
--- a/lib
-by: John Hurley
Reviewed-by: Dirk van der Merwe
Reviewed-by: Simon Horman
---
lib/netdev-linux.c | 34 +-
1 file changed, 29 insertions(+), 5 deletions(-)
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
index 6ed2f05..81de3b1 100644
--- a/lib/netdev-linux.c
If a linux netdev is added to OvS that is a LAG master (for example, a
bond or team netdev) then record this in bool form in the dev struct. Use
the link info extracted from rtnetlink calls to determine this.
Signed-off-by: John Hurley
Reviewed-by: Dirk van der Merwe
Reviewed-by: Simon Horman
Extend the rtnetlink_parse function to look for linkinfo attributes and,
in turn, store pointers to the master and slave kinds (if any) in the
rtnetlink_change struct.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
Reviewed-by: Dirk van der Merwe
---
lib/rtnetlink.c | 43
-off-by: John Hurley
Reviewed-by: Dirk van der Merwe
Reviewed-by: Simon Horman
---
lib/netdev-bsd.c | 3 ++-
lib/netdev-dpdk.c| 3 ++-
lib/netdev-dummy.c | 3 ++-
lib/netdev-linux.c | 3 ++-
lib/netdev-provider.h| 4
lib/netdev-tc-offloads.c | 18
then the dqisc is not considered part of a block.
Signed-off-by: John Hurley
Reviewed-by: Simon Horman
Reviewed-by: Dirk van der Merwe
---
lib/netdev-linux.c | 4 +--
lib/netdev-tc-offloads.c | 64 +++-
lib/tc.c | 60
socket is used to
monitor slave devices. If a LAG slave is found whose master is on the bridge
then it is added to the same block as its master. If the underlying slaves
belong to an offloadable device then the Linux LAG device can be offloaded
to hardware.
John Hurley (6):
tc: allow offloading
generation to ensure a decap is done before an encap if both exist.
Patch was committed to master. Backport to branch 2.8 requested by Simon
Horman.
Signed-off-by: John Hurley <john.hur...@netronome.com>
Reviewed-by: Simon Horman <simon.hor...@netronome.com>
---
lib/tc.c | 10 +-
1
generation to ensure a decap is done before an encap if both exist.
Signed-off-by: John Hurley <john.hur...@netronome.com>
Reviewed-by: Simon Horman <simon.hor...@netronome.com>
---
lib/tc.c | 10 +-
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/lib/tc.c b/lib/tc.c
i
will be rejected as the egress port cannot be found. This patch
applies the same ifindex function to geneve as is used in vxlan.
Signed-off-by: John Hurley <john.hur...@netronome.com>
Acked-by: Simon Horman <simon.hor...@netronome.com>
---
lib/netdev-vport.c | 2 +-
1 file changed, 1 ins
k.ozlabs.org/patch/712058/: the indentation is all wrong.
>
> On Fri, Jan 06, 2017 at 05:23:33PM +, John Hurley wrote:
> > From 7e20f404bde9fab2604566bc106b3b6ac071bd3f Mon Sep 17 00:00:00 2001
> > From: John Hurley <john.hur...@netronome.com>
> > Date: Fri, 6 Jan 2
tem.
Giving the packet a temp skb_dst with RTCF_LOCAL flag not set
ensures the 'csum_*_magic' functions are hit in the kernel (if
required) and the modified packet will get the correct checksum
when fully processed.
This has tested with FTP NAT helpers on kernel version 3.13.
Signed-off-by: John Hur
>From 7e20f404bde9fab2604566bc106b3b6ac071bd3f Mon Sep 17 00:00:00 2001
From: John Hurley <john.hur...@netronome.com>
Date: Fri, 6 Jan 2017 17:14:53 +
Subject: [PATCH 1/1] datapath: Ensure correct L4 checksum with NAT helpers.
Fixes:264619055bd52bc2278af848472176642d759874 (datapath:
Ok, this makes sense now. Ive updated and tested the patch:
From 93bc4c59b4eb814ed4bc3da3b7459498863add1e Mon Sep 17 00:00:00 2001
From: John Hurley <john.hur...@netronome.com>
Date: Thu, 5 Jan 2017 17:08:37 +
Subject: [PATCH 1/1] ensure correct checksum when a packet is sent
From 64ce83672aab5634990426e0a51af16d882ac2f9 Mon Sep 17 00:00:00 2001
From: John Hurley <john.hur...@netronome.com>
Date: Wed, 4 Jan 2017 16:52:43 +
Subject: [PATCH] ensure correct checksum when a packet is sent to NAT helper
in kernel < 4.6
---
datapath/conntra
On Wed, Jan 4, 2017 at 12:53 AM, Jarno Rajahalme <ja...@ovn.org> wrote:
>
> > On Dec 28, 2016, at 3:05 PM, John Hurley <john.hur...@netronome.com>
> wrote:
> >
> > sorry, updated patch….
>
> This patch is still whitespace damaged. Maybe use git
dst allows the kernel to correct the checksum.
Verified with packets mangled by Conntrack/NAT helpers.
Signed-off-by: John Hurley <john.hur...@netronome.com>
---
diff --git a/datapath/conntrack.c b/datapath/conntrack.c
index d942884..fef67ba 100644
--- a/datapath/conntrack.c
+++ b
69 matches
Mail list logo