Implements OVS kernel meter action support.
Signed-off-by: Andy Zhou
---
include/uapi/linux/openvswitch.h | 3 +++
net/openvswitch/actions.c| 6 ++
net/openvswitch/datapath.h | 1 +
net/openvswitch/flow_netlink.c | 6 ++
4 files changed, 16 insertions(+)
diff --git a
OVS kernel datapath so far does not support Openflow meter action.
This is the first stab at adding kernel datapath meter support.
This implementation supports only drop band type.
Signed-off-by: Andy Zhou
---
net/openvswitch/Makefile | 1 +
net/openvswitch/datapath.c | 14 +-
net
Later patches will invoke get_dp() outside of datapath.c. Export it.
Signed-off-by: Andy Zhou
---
net/openvswitch/datapath.c | 29 -
net/openvswitch/datapath.h | 31 +++
2 files changed, 31 insertions(+), 29 deletions(-)
diff --git a/net
; references on 32 bit builds.
use div_u64() instead.
v4 -> v5: rebase
Andy Zhou (4):
openvswitch: Add meter netlink definitions
openvswitch: export get_dp() API.
openvswitch: Add meter infrastructure
openvswitch: Add meter action support
include/uapi/
Meter has its own netlink family. Define netlink messages and attributes
for communicating with the user space programs.
Signed-off-by: Andy Zhou
---
include/uapi/linux/openvswitch.h | 51
1 file changed, 51 insertions(+)
diff --git a/include/uapi/linux
On Thu, Nov 9, 2017 at 12:50 AM, Pravin Shelar wrote:
> On Thu, Nov 9, 2017 at 11:00 AM, Andy Zhou wrote:
>> Implements OVS kernel meter action support.
>>
>> Signed-off-by: Andy Zhou
>> ---
> I could not apply this patch on latest net-next.
I will rebase and repost.
Implements OVS kernel meter action support.
Signed-off-by: Andy Zhou
---
include/uapi/linux/openvswitch.h | 3 +++
net/openvswitch/actions.c| 6 ++
net/openvswitch/datapath.h | 1 +
net/openvswitch/flow_netlink.c | 6 ++
4 files changed, 16 insertions(+)
diff --git a
OVS kernel datapath so far does not support Openflow meter action.
This is the first stab at adding kernel datapath meter support.
This implementation supports only drop band type.
Signed-off-by: Andy Zhou
---
net/openvswitch/Makefile | 1 +
net/openvswitch/datapath.c | 14 +-
net
Later patches will invoke get_dp() outside of datapath.c. Export it.
Signed-off-by: Andy Zhou
---
net/openvswitch/datapath.c | 29 -
net/openvswitch/datapath.h | 31 +++
2 files changed, 31 insertions(+), 29 deletions(-)
diff --git a/net
Meter has its own netlink family. Define netlink messages and attributes
for communicating with the user space programs.
Signed-off-by: Andy Zhou
---
include/uapi/linux/openvswitch.h | 51
1 file changed, 51 insertions(+)
diff --git a/include/uapi/linux
; references on 32 bit builds.
use div_u64() instead.
Andy Zhou (4):
openvswitch: Add meter netlink definitions
openvswitch: export get_dp() API.
openvswitch: Add meter infrastructure
openvswitch: Add meter action support
include/uapi/linux/openvswitch.h | 54
ne
Later patches will invoke get_dp() outside of datapath.c. Export it.
Signed-off-by: Andy Zhou
---
net/openvswitch/datapath.c | 29 -
net/openvswitch/datapath.h | 31 +++
2 files changed, 31 insertions(+), 29 deletions(-)
diff --git a/net
Meter has its own netlink family. Define netlink messages and attributes
for communicating with the user space programs.
Signed-off-by: Andy Zhou
---
include/uapi/linux/openvswitch.h | 51
1 file changed, 51 insertions(+)
diff --git a/include/uapi/linux
of code.
With those two observations, it seems cleaner to add meter
support in the openvswitch module directly.
---
v1(RFC)->v2: remove unused code improve locking
and other review comments
v2 -> v3: rebase
Andy Zhou (4):
openvswitch: Add meter netlink de
OVS kernel datapath so far does not support Openflow meter action.
This is the first stab at adding kernel datapath meter support.
This implementation supports only drop band type.
Signed-off-by: Andy Zhou
---
net/openvswitch/Makefile | 1 +
net/openvswitch/datapath.c | 14 +-
net
Implements OVS kernel meter action support.
Signed-off-by: Andy Zhou
---
include/uapi/linux/openvswitch.h | 3 +++
net/openvswitch/actions.c| 6 ++
net/openvswitch/datapath.h | 1 +
net/openvswitch/flow_netlink.c | 6 ++
4 files changed, 16 insertions(+)
diff --git a
On Thu, Nov 2, 2017 at 5:07 AM, Pravin Shelar wrote:
> On Thu, Nov 2, 2017 at 3:07 AM, Andy Zhou wrote:
>> On Fri, Oct 20, 2017 at 8:32 PM, Pravin Shelar wrote:
>>> On Thu, Oct 19, 2017 at 5:58 PM, Andy Zhou wrote:
>>>>
>>>> On Thu, Oct 19, 2017 at
On Fri, Oct 20, 2017 at 8:32 PM, Pravin Shelar wrote:
> On Thu, Oct 19, 2017 at 5:58 PM, Andy Zhou wrote:
>>
>> On Thu, Oct 19, 2017 at 02:47 Pravin Shelar wrote:
>>>
>>> On Tue, Oct 17, 2017 at 12:36 AM, Andy Zhou wrote:
>>> > OVS kernel datapath
On Mon, Oct 16, 2017 at 10:49 AM, Pravin Shelar wrote:
> On Mon, Oct 16, 2017 at 12:05 AM, Andy Zhou wrote:
>> On Fri, Oct 13, 2017 at 5:12 PM, Pravin Shelar wrote:
>>> On Thu, Oct 12, 2017 at 3:38 PM, Andy Zhou wrote:
>>>> OVS kernel datapath so far does not
Implements OVS kernel meter action support.
Signed-off-by: Andy Zhou
---
include/uapi/linux/openvswitch.h | 3 +++
net/openvswitch/actions.c| 6 ++
net/openvswitch/datapath.h | 1 +
net/openvswitch/flow_netlink.c | 6 ++
4 files changed, 16 insertions(+)
diff --git a
Later patches will invoke get_dp() outside of datapath.c. Export it.
Signed-off-by: Andy Zhou
---
net/openvswitch/datapath.c | 29 -
net/openvswitch/datapath.h | 31 +++
2 files changed, 31 insertions(+), 29 deletions(-)
diff --git a/net
Meter has its own netlink family. Define netlink messages and attributes
for communicating with the user space programs.
Signed-off-by: Andy Zhou
---
include/uapi/linux/openvswitch.h | 51
1 file changed, 51 insertions(+)
diff --git a/include/uapi/linux
OVS kernel datapath so far does not support Openflow meter action.
This is the first stab at adding kernel datapath meter support.
This implementation supports only drop band type.
Signed-off-by: Andy Zhou
---
net/openvswitch/Makefile | 1 +
net/openvswitch/datapath.c | 14 +-
net
of code.
With those two observations, it seems cleaner to add meter
support in the openvswitch module directly.
---
v1(RFC)->v2: remove unused code
improve locking
and other review comments
Andy Zhou (4):
openvswitch: Add meter netlink defin
On Fri, Oct 13, 2017 at 5:13 PM, Pravin Shelar wrote:
> On Thu, Oct 12, 2017 at 3:38 PM, Andy Zhou wrote:
>> Implements OVS kernel meter action support.
>>
>> Signed-off-by: Andy Zhou
>> ---
>> include/uapi/linux/openvswitch.h | 1 +
>>
On Fri, Oct 13, 2017 at 5:12 PM, Pravin Shelar wrote:
> On Thu, Oct 12, 2017 at 3:38 PM, Andy Zhou wrote:
>> OVS kernel datapath so far does not support Openflow meter action.
>> This is the first stab at adding kernel datapath meter support.
>> This implementation support
of code.
With those two observations, it seems cleaner to add meter
support in the openvswitch module directly.
Andy Zhou (4):
openvswitch: Add meter netlink definitions
openvswitch: export get_dp() API.
openvswitch: Add meter infrastructure
openvswitch: Add meter action support
include/u
Later patches will invoke get_dp() outside of datapath.c. Export it.
Signed-off-by: Andy Zhou
---
net/openvswitch/datapath.c | 29 -
net/openvswitch/datapath.h | 31 +++
2 files changed, 31 insertions(+), 29 deletions(-)
diff --git a/net
OVS kernel datapath so far does not support Openflow meter action.
This is the first stab at adding kernel datapath meter support.
This implementation supports only drop band type.
Signed-off-by: Andy Zhou
---
net/openvswitch/Makefile | 1 +
net/openvswitch/datapath.c | 14 +-
net
Meter has its own netlink family. Define netlink messages and attributes
for communicating with the user space programs.
Signed-off-by: Andy Zhou
---
include/uapi/linux/openvswitch.h | 51
1 file changed, 51 insertions(+)
diff --git a/include/uapi/linux
Implements OVS kernel meter action support.
Signed-off-by: Andy Zhou
---
include/uapi/linux/openvswitch.h | 1 +
net/openvswitch/actions.c| 12
net/openvswitch/datapath.h | 1 +
net/openvswitch/flow_netlink.c | 6 ++
4 files changed, 20 insertions(+)
diff
e
patch will need to pass in action lists that are not fully encoded
by themselves.
Signed-off-by: Andy Zhou
Acked-by: Joe Stringer
---
net/openvswitch/actions.c | 18 +++---
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/net/openvswitch/actions.c b/net/openvswitch/act
t;v4: Enhance patch 4.
Fix two bugs pointed out by Pravin,
Remove 'is_sample' variable.
v2->v3: Enhance patch 4, Rafctor to move more common logic to clone_execute().
v1->v2: Address Pravin's comment, Refactor recirc and sample
to share more commo
Added clone_execute() that both the sample and the recirc
action implementation can use.
Signed-off-by: Andy Zhou
---
net/openvswitch/actions.c | 176 --
1 file changed, 93 insertions(+), 83 deletions(-)
diff --git a/net/openvswitch/actions.c b/net
The logic of allocating and copy key for each 'exec_actions_level'
was specific to execute_recirc(). However, future patches will reuse
as well. Refactor the logic into its own function clone_key().
Signed-off-by: Andy Zhou
Acked-by: Pravin B Shelar
---
net/openvswitch/acti
sed does not change the flow key. The
detection is performed only once at the flow downloading time.
Another related optimization is to rewrite the action list
at flow downloading time in order to save the fast path from parsing
the sample action list in its original form repeatedly.
Signed-off-by: Andy
On Sat, Mar 18, 2017 at 12:22 PM, Pravin Shelar wrote:
> On Thu, Mar 16, 2017 at 3:48 PM, Andy Zhou wrote:
>> Added clone_execute() that both the sample and the recirc
>> action implementation can use.
>>
>> Signed-off-by: Andy Zhou
>> ---
&g
The logic of allocating and copy key for each 'exec_actions_level'
was specific to execute_recirc(). However, future patches will reuse
as well. Refactor the logic into its own function clone_key().
Signed-off-by: Andy Zhou
Acked-by: Pravin B Shelar
---
net/openvswitch/acti
e
patch will need to pass in action lists that are not fully encoded
by themselves.
Signed-off-by: Andy Zhou
Acked-by: Joe Stringer
---
net/openvswitch/actions.c | 18 +++---
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/net/openvswitch/actions.c b/net/openvswitch/act
t;v2: Address pravin's comment, Refactor recirc and sample
to share more common code
v2->v3: Enhace patch 4, add more loigc to the common code
Andy Zhou (4):
openvswitch: Deferred fifo API change.
openvswitch: Refactor recirc key allocation.
openvswitch: Optimize sample act
sed does not change the flow key. The
detection is performed only once at the flow downloading time.
Another related optimization is to rewrite the action list
at flow downloading time in order to save the fast path from parsing
the sample action list in its original form repeatedly.
Signed-off-by: Andy
Added clone_execute() that both the sample and the recirc
action implementation can use.
Signed-off-by: Andy Zhou
---
net/openvswitch/actions.c | 175 --
1 file changed, 92 insertions(+), 83 deletions(-)
diff --git a/net/openvswitch/actions.c b/net
On Thu, Mar 16, 2017 at 10:28 AM, Pravin Shelar wrote:
> On Tue, Mar 14, 2017 at 4:08 PM, Andy Zhou wrote:
>> add_deferred_actions() API currently requires actions to be passed in
>> as a fully encoded netlink message. So far both 'sample' and 'recirc'
>
> Actions parameter which hints if it is recirc or sample. We can add
> recic-id param and set it if it is recic case.
> will this work?
>
Just posted v2. I added a patch in the end to implement this
refactoring as suggested.
The sample action can be used for translating Openflow 'clone' action.
However its implementation has not been sufficiently optimized for this
use case. This series attempts to close the gap.
Patch 3 commit message has more details on the specific optimizations
implemented.
An
The logic of allocating and copy key for each 'exec_actions_level'
was specific to execute_recirc(). However, future patches will reuse
as well. Refactor the logic into its own function clone_key().
Signed-off-by: Andy Zhou
---
net/openvswitch/acti
e
patch will need to pass in action lists that are not fully encoded
by themselves.
Signed-off-by: Andy Zhou
Acked-by: Joe Stringer
---
net/openvswitch/actions.c | 18 +++---
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/net/openvswitch/actions.c b/net/openvswitch/act
sed does not change the flow key. The
detection is performed only once at the flow downloading time.
Another related optimization is to rewrite the action list
at flow downloading time in order to save the fast path from parsing
the sample action list in its original form repeatedly.
Signed-off-by: Andy
Added execute_or_defer_actions() that both sample and recirc
action's implementation can use.
Signed-off-by: Andy Zhou
---
net/openvswitch/actions.c | 96 +--
1 file changed, 59 insertions(+), 37 deletions(-)
diff --git a/net/openvswitch/action
>>> - skb = skb_clone(skb, GFP_ATOMIC);
>>> - if (!skb)
>>> - /* Skip the sample action when out of memory. */
>>> - return 0;
>>> + if (key) {
>>> + err = do_execute_actions(dp, skb, key, actions, rem);
>>> + } else if (!add_deferre
Thanks for the review. Please see comments inline.
On Mon, Mar 13, 2017 at 12:08 AM, Pravin Shelar wrote:
> On Fri, Mar 10, 2017 at 4:51 PM, Andy Zhou wrote:
>> With the introduction of open flow 'clone' action, the OVS user space
>> can now translate the 'clon
The logic of allocating and copy key for each 'exec_actions_level'
was specific to execute_recirc(). However, future patches will reuse
as well. Refactor the logic into its own function clone_key().
Signed-off-by: Andy Zhou
---
net/openvswitch/acti
The sample action can be used for translating Openflow 'clone' action.
However its implementation has not been sufficiently optimized for this
use case. This series attempts to close the gap.
Patch 3 commit message has more details on the specific optimizations
implemented.
An
sed does not change the flow key. The
detection is performed only once at the flow downloading time.
Another related optimization is to rewrite the action list
at flow downloading time in order to save the fast path from parsing
the sample action list in its original form repeatedly.
Signed-off-by: Andy
e
patch will need to pass in action lists that are not fully encoded
by themselves.
Signed-off-by: Andy Zhou
Acked-by: Joe Stringer
---
net/openvswitch/actions.c | 18 +++---
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/net/openvswitch/actions.c b/net/openvswitch/act
On Thu, Mar 9, 2017 at 11:46 AM, Joe Stringer wrote:
> On 7 March 2017 at 16:15, Andy Zhou wrote:
>> With the introduction of open flow 'clone' action, the OVS user space
>> can now translate the 'clone' action into kernel datapath 'sample'
>>
On Thu, Mar 9, 2017 at 11:11 AM, Joe Stringer wrote:
> On 7 March 2017 at 16:15, Andy Zhou wrote:
>> The logic of allocating and copy key for each 'exec_actions_level'
>> was specific to execute_recirc(). However, future patches will reuse
>> as well. Refactor
ot change the flow key. The
detection is performed only once at the flow downloading time.
The third optimization implemented is to rewrite the action list
at flow downloading time in order to save the fast path from parsing
the sample action list in its original form repeatedly.
Signed-off-by: An
The logic of allocating and copy key for each 'exec_actions_level'
was specific to execute_recirc(). However, future patches will reuse
as well. Refactor the logic into its own function clone_key().
Signed-off-by: Andy Zhou
---
net/openvswitch/acti
The sample action can be used for translating Openflow 'clone' action.
However its implementation has not been sufficiently optimized for this
use case. This series attempts to close the gap.
Patch 3 commit message has more details on the specific optimizations
implemented.
An
e
patch will need to pass in action lists that are not fully encoded
by themselves.
Signed-off-by: Andy Zhou
---
net/openvswitch/actions.c | 18 +++---
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/net/openvswitch/actions.c b/net/openvswitch/actions.c
index c82301c..7518
On Wed, Feb 1, 2017 at 6:30 PM, Pravin Shelar wrote:
> On Tue, Jan 31, 2017 at 8:47 AM, Andy Zhou wrote:
>> Add 'clone' kernel datapath support. In case the actions within clone
>> do not modify the current flow, the actions are executed without
>> making a copy
may modify
current flow key, a key has to be copied. In case the percpu
'flow_keys' is available for the next 'exec_actions_level', the clone
actions will be executed without using the deferred fifo. Otherwise,
deferred fifo is used this clone action.
Signed-off-by: Andy
The logic of allocating and copy key for each 'exec_actions_level'
was specific to execute_recirc(). However, future patches will reuse
as well. Refactor the logic into its own function clone_key().
Signed-off-by: Andy Zhou
---
net/openvswitch/acti
e
patch will need to pass in action lists that are not fully encoded
by themselves.
Signed-off-by: Andy Zhou
---
net/openvswitch/actions.c | 18 +++---
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/net/openvswitch/actions.c b/net/openvswitch/actions.c
index efa9a88..6f02
Please discard this series. These are ovs user space changes, not
kernel changes. They are sent in error. Sorry.
On Mon, Jan 30, 2017 at 10:39 PM, Andy Zhou wrote:
> Currently, there is no way to specify the packet size when injecting
> a packet via "netdev-dummy/receive&q
Please discard this series. These are ovs user space changes, not
kernel changes. They are sent in error. Sorry.
On Mon, Jan 30, 2017 at 10:39 PM, Andy Zhou wrote:
> Repost user space meter support. This is based Jarno's original work
> at: https://mail.openvswitch.org/pipermail/o
From: Jarno Rajahalme
Translate OpenFlow METER instructions to datapath meter actions.
Signed-off-by: Jarno Rajahalme
Signed-off-by: Andy Zhou
---
include/openvswitch/ofp-actions.h | 1 +
lib/dpif.c| 40 +---
lib/ofp-actions.c
From: Jarno Rajahalme
Add DPIF-level infrastructure for meters. Allow meter_set to modify
the meter configuration (e.g. set the burst size if unspecified).
Signed-off-by: Jarno Rajahalme
Signed-off-by: Andy Zhou
---
datapath/linux/compat/include/linux/openvswitch.h | 4 +-
lib/dpif
, and only if some of the
meter bands are hit, we need to process the packets individually.
Signed-off-by: Jarno Rajahalme
Signed-off-by: Andy Zhou
---
lib/dpif-netdev.c| 362 ---
tests/dpif-netdev.at | 106 +++
2 files changed, 450
er packets. Add macros
to support this use case.
Signed-off-by: Andy Zhou
---
lib/dp-packet.h | 140 +++
lib/dpif-netdev.c| 62 +--
lib/dpif.c | 2 +-
lib/netdev-dummy.c | 10 ++--
h.
Signed-off-by: Andy Zhou
---
lib/netdev-dummy.c | 38 --
1 file changed, 28 insertions(+), 10 deletions(-)
diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c
index e6e36cd..10df0a7 100644
--- a/lib/netdev-dummy.c
+++ b/lib/netdev-dummy.c
@@
Repost user space meter support. This is based Jarno's original work
at: https://mail.openvswitch.org/pipermail/ovs-dev/2015-November/306304.html.
With some enhancements, and rebased to current master.
---
v1-v2: rebase and repost.
v2-v3: simplify patch 2/5.
Andy Zhou (2):
netdev-dummy
do_execute_actions() implements a worthwhile optimization: in case
an output action is the last action in an action list, skb_clone()
can be avoided by outputing the current skb. However, the
implementation is more complicated than necessary. This patch
simplify this logic.
Signed-off-by: Andy
On Fri, Jan 27, 2017 at 12:42 PM, Pravin Shelar wrote:
> On Wed, Jan 25, 2017 at 9:24 PM, Andy Zhou wrote:
>> do_execute_actions() implements a worthwhile optimization: in case
>> an output action is the last action in an action list, skb_clone()
>> can be avoided by outp
do_execute_actions() implements a worthwhile optimization: in case
an output action is the last action in an action list, skb_clone()
can be avoided by outputing the current skb. However, the
implementation is more complicated than necessary. This patch
simplify this logic.
Signed-off-by: Andy
y
Reported-at: http://openvswitch.org/pipermail/dev/2016-March/067672.html
Signed-off-by: Andy Zhou
---
net/openvswitch/actions.c | 45 -
1 file changed, 40 insertions(+), 5 deletions(-)
diff --git a/net/openvswitch/actions.c b/net/openvswitch/actions.c
in
77 matches
Mail list logo