Add basic recirculation infrastructure and user space
data path support for it. The following bond mega flow patch will
make use of this infrastructure.
Signed-off-by: Andy Zhou
---
v1->v2: Rewritten based on having post recirculation rules stored
in table 254.
V2->V3: Force recirc_i
Recirculation ID needs to be unique per datapath. Its usage will be
tracked by the backer that corresponds to the datapath.
In theory, Recirculation ID can be any uint32_t value, except 0. This
implementation limits to a smaller range just for ease of debugging.
Make the range size 0 effectively d
This is the first patch series to add megaflow support for bond interface
using recirculation.
The final goal is that the bonding port selection will be made within the
datapath, using recirculation. Currently, the bonding port selection is
made in the user space, preventing possible wider mega f
Signed-off-by: Andy Zhou
---
v1 -> v2: Minor adjustment.
v2 -> v3: In comments, discouraging controllers to use newly added
recirc_id and dp_hash fields.
Reject openflow messages that references recirc_id and
dp_hash fields.
---
include/openflow/nicira-ext.h |
On Fri, Mar 21, 2014 at 4:16 PM, Thomas Graf wrote:
> On 03/22/2014 12:13 AM, Thomas Graf wrote:
>>
>> On 03/21/2014 07:03 PM, Pravin wrote:
>>
>> Some comments below. I'll start experimenting with this as well.
>
>
> Almost forgot: I think none of my feedback should be a blocker to
> merge this a
On 03/21/2014 07:03 PM, Pravin wrote:
DPDK need to set _lcore_id for using multiple core.
Signed-off-by: Pravin B Shelar
---
LGTM
Acked-by: Thomas Graf
___
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev
On Fri, Mar 21, 2014 at 4:13 PM, Thomas Graf wrote:
> On 03/21/2014 07:03 PM, Pravin wrote:
>
> Some comments below. I'll start experimenting with this as well.
>
>
>> +
>> +#define MTU_TO_MAX_LEN(mtu) ((mtu) + ETHER_HDR_LEN + ETHER_CRC_LEN)
>> +#define MBUF_SIZE(mtu) (MTU_TO_MAX_LEN(mtu) +
On 03/22/2014 12:13 AM, Thomas Graf wrote:
On 03/21/2014 07:03 PM, Pravin wrote:
Some comments below. I'll start experimenting with this as well.
Almost forgot: I think none of my feedback should be a blocker to
merge this and continue working on it, therefore:
Acked-by: Thomas Graf
On 03/21/2014 07:03 PM, Pravin wrote:
Some comments below. I'll start experimenting with this as well.
+
+#define MTU_TO_MAX_LEN(mtu) ((mtu) + ETHER_HDR_LEN + ETHER_CRC_LEN)
+#define MBUF_SIZE(mtu) (MTU_TO_MAX_LEN(mtu) + (512) + \
+ sizeof(struct rte_mbuf) + R
On Mar 21, 2014, at 2:28 PM, Pravin Shelar wrote:
> On Fri, Mar 21, 2014 at 1:55 PM, Thomas Graf wrote:
>> On 03/21/2014 07:02 PM, Pravin wrote:
>>>
>>> diff --git a/lib/automake.mk b/lib/automake.mk
>>>
>>> @@ -1863,7 +1850,7 @@ dp_netdev_port_input(struct dp_netdev *dp, struct
>>> ofpbuf *p
On Fri, Mar 21, 2014 at 2:48 PM, Thomas Graf wrote:
> On 03/21/2014 10:28 PM, Pravin Shelar wrote:
>
>> I think it is not possible. Why vswitchd would generate such action if
>> the packet is not going somewhere?
>
>
> [...]
>
>
>> right, there is memory leak for packet size less than eth-header.
On 03/21/2014 07:03 PM, Pravin wrote:
This will be used by DPDK for zero copy IO.
Signed-off-by: Pravin B Shelar
---
v1-v2:
Added comment.
---
lib/ofpbuf.c |7 ++-
lib/ofpbuf.h |3 ++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/lib/ofpbuf.c b/lib/ofpbuf.c
ind
On 03/21/2014 07:03 PM, Pravin wrote:
new netdev type like DPDK can support multi-queue IO. Following
patch Adds support for same.
Signed-off-by: Pravin B Shelar
Straight forward patch
Acked-by: Thomas Graf
@@ -514,15 +527,16 @@ netdev_parse_name(const char *netdev_name_, char **name,
ch
On 03/21/2014 07:03 PM, Pravin wrote:
Preparation for multi queue netdev IO. There are no functional changes
in this patch.
Signed-off-by: Pravin B Shelar
Acked-by: Thomas Graf
___
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailm
On 03/21/2014 07:03 PM, Pravin wrote:
This patch adds PMD type netdev for netdevice with poll-mode
drivers. Since there is no way to get signal on a packet recv
from these devices we need to poll them in busy loop. So minimize
system call overhead this patch uses dpif-thread exclusively
for PMD
On 03/21/2014 10:28 PM, Pravin Shelar wrote:
I think it is not possible. Why vswitchd would generate such action if
the packet is not going somewhere?
[...]
right, there is memory leak for packet size less than eth-header.
unfortunately dp_netdev_port_input() would not know if packet is
dele
On Fri, Mar 21, 2014 at 02:30:15PM -0700, Pravin Shelar wrote:
> On Fri, Mar 21, 2014 at 2:09 PM, Ben Pfaff wrote:
> > On Fri, Mar 21, 2014 at 11:03:42AM -0700, Pravin wrote:
> >> Signed-off-by: Pravin B Shelar
> >
> > Acked-by: Ben Pfaff
> >
> > Did this cause real problems? I'm pretty sure th
On Fri, Feb 21, 2014 at 11:41 AM, Jarno Rajahalme wrote:
> We already extract the TCP flags for the key, might as well use that
> for stats.
>
> Signed-off-by: Jarno Rajahalme
Looks good.
Acked-by: Pravin B Shelar
> ---
> datapath/flow.c | 12 +---
> 1 file changed, 5 insertions(+),
On Fri, Mar 21, 2014 at 2:14 PM, Gurucharan Shetty wrote:
> On Fri, Mar 21, 2014 at 11:03 AM, Pravin wrote:
>> Signed-off-by: Pravin B Shelar
>> ---
>> lib/daemon.c |2 +-
>> lib/util.c | 12
>> lib/util.h |1 +
>> 3 files changed, 14 insertions(+), 1 deletion(-)
>>
>
On Fri, Mar 21, 2014 at 2:09 PM, Ben Pfaff wrote:
> On Fri, Mar 21, 2014 at 11:03:42AM -0700, Pravin wrote:
>> Signed-off-by: Pravin B Shelar
>
> Acked-by: Ben Pfaff
>
> Did this cause real problems? I'm pretty sure that the monitor
> process is single-threaded.
ok, I saw problem with netdev-d
On Fri, Mar 21, 2014 at 1:55 PM, Thomas Graf wrote:
> On 03/21/2014 07:02 PM, Pravin wrote:
>>
>> diff --git a/lib/automake.mk b/lib/automake.mk
>>
>> @@ -1863,7 +1850,7 @@ dp_netdev_port_input(struct dp_netdev *dp, struct
>> ofpbuf *packet,
>> dp_netdev_flow_used(netdev_flow, packet, &k
On Fri, Mar 21, 2014 at 11:03 AM, Pravin wrote:
> Signed-off-by: Pravin B Shelar
> ---
> lib/daemon.c |2 +-
> lib/util.c | 12
> lib/util.h |1 +
> 3 files changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/lib/daemon.c b/lib/daemon.c
> index 9d96cba..c1c6550 1
On Fri, Feb 21, 2014 at 11:41 AM, Jarno Rajahalme wrote:
> The 'output' argument of the ovs_nla_put_flow() is the one from which
> the bits are written to the netlink attributes. For SCTP we
> accidentally used the bits from the 'swkey' instead. This caused the
> mask attributes to include the b
On Fri, Mar 21, 2014 at 11:03:42AM -0700, Pravin wrote:
> Signed-off-by: Pravin B Shelar
Acked-by: Ben Pfaff
Did this cause real problems? I'm pretty sure that the monitor
process is single-threaded.
___
dev mailing list
dev@openvswitch.org
http://op
On 03/21/2014 07:03 PM, Pravin wrote:
DPDK Poll mode thread need to keep ref to dpif-port.
Signed-off-by: Pravin B Shelar
Acked-by: Jarno Rajahalme
---
v1-v2:
Removed extra blank line in port_unref().
LGTM
Acked-by: Thomas Graf
___
dev mailing l
On 03/21/2014 07:03 PM, Pravin wrote:
DPDK netdev need to access ofpbuf while sending buffer. Following
patch changes netdev_send accordingly.
Signed-off-by: Pravin B Shelar
---
v1-v2:
- Fix comments.
LGTM
Acked-by: Thomas Graf
___
dev mailing li
On 03/21/2014 07:02 PM, Pravin wrote:
diff --git a/lib/automake.mk b/lib/automake.mk
@@ -1863,7 +1850,7 @@ dp_netdev_port_input(struct dp_netdev *dp, struct ofpbuf
*packet,
dp_netdev_flow_used(netdev_flow, packet, &key);
actions = dp_netdev_flow_get_actions(netdev_flow);
-
On Fri, Feb 21, 2014 at 11:41 AM, Jarno Rajahalme wrote:
> Flow SET can set an empty set of actions by not passing any actions.
> Previously, we assigned the flow's actions pointer to NULL in this
> case, but we never check for the NULL pointer later on. This patch
> modifies this case to allocat
On Fri, Mar 21, 2014 at 12:22:52PM -0600, Junguk Cho wrote:
> I have one question, when flow is inserted in datapath, it will be removed
> after idle time. Who remove this flows?
ovs-vswitchd
___
dev mailing list
dev@openvswitch.org
http://openvswitch.or
Thank you for reply.
I looked at source code. Eth information is necessary to insert flow in
datapath.
However, it did not insert flow because function delete_unexpected_flow()
will call "dpif_flow_del" to delete inserted flow after ovs-dpctl command.
I guess if ofproto does not have this flow, it
On Fri, Mar 21, 2014 at 11:02:36AM -0700, Gurucharan Shetty wrote:
> >
> > OK.
> >
> > (By the way, by "bad code" here, I meant code that performs badly, not
> > incorrect code.)
> I did write a couple of small test programs for run-time issues and
> did not see a problem. But if it makes sense, I
new netdev type like DPDK can support multi-queue IO. Following
patch Adds support for same.
Signed-off-by: Pravin B Shelar
---
v1-v2:
- rename nr_rx to n_rxq
- Added comments.
- use xrealloc, avoid second loop.
---
lib/dpif-netdev.c | 66 ++---
DPDK need to set _lcore_id for using multiple core.
Signed-off-by: Pravin B Shelar
---
Moved thread affinity function to dpdk.
---
lib/dpif-netdev.c |2 ++
lib/netdev-dpdk.c | 20
lib/netdev-dpdk.h |2 ++
3 files changed, 24 insertions(+)
diff --git a/lib/dpif-net
Signed-off-by: Pravin B Shelar
---
lib/daemon.c |2 +-
lib/util.c | 12
lib/util.h |1 +
3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/lib/daemon.c b/lib/daemon.c
index 9d96cba..c1c6550 100644
--- a/lib/daemon.c
+++ b/lib/daemon.c
@@ -416,7 +416,7 @@ mo
Following patch adds DPDK netdev-class to userspace datapath. Now
OVS can use DPDK port for IO by just configuring DPDK port and then
adding dpdk type port to userspace datapath.
Refer to INSTALL.DPDK doc for further info.
This is based a patch from Gerald Rogers.
Signed-off-by: gerald.rog...@in
DPDK Poll mode thread need to keep ref to dpif-port.
Signed-off-by: Pravin B Shelar
Acked-by: Jarno Rajahalme
---
v1-v2:
Removed extra blank line in port_unref().
---
lib/dpif-netdev.c | 29 +++--
1 file changed, 23 insertions(+), 6 deletions(-)
diff --git a/lib/dpif-
Preparation for multi queue netdev IO. There are no functional changes
in this patch.
Signed-off-by: Pravin B Shelar
---
lib/dpif-netdev.c | 34 ++--
lib/netdev-dummy.c| 84 -
lib/netdev-linux.c| 66 ++
This will be used by DPDK for zero copy IO.
Signed-off-by: Pravin B Shelar
---
v1-v2:
Added comment.
---
lib/ofpbuf.c |7 ++-
lib/ofpbuf.h |3 ++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/lib/ofpbuf.c b/lib/ofpbuf.c
index 0eed428..249fbaa 100644
--- a/lib/ofpbuf
This patch adds PMD type netdev for netdevice with poll-mode
drivers. Since there is no way to get signal on a packet recv
from these devices we need to poll them in busy loop. So minimize
system call overhead this patch uses dpif-thread exclusively
for PMD devices and rest of devices which needs
DPDK netdev need to access ofpbuf while sending buffer. Following
patch changes netdev_send accordingly.
Signed-off-by: Pravin B Shelar
---
v1-v2:
- Fix comments.
---
lib/dpif-netdev.c |9 +
lib/netdev-bsd.c |8 +++-
lib/netdev-dummy.c|7 ++-
lib/netdev-l
DPDK can receive multiple packets but current netdev API does
not allow that. Following patch allows dpif-netdev receive batch
of packet in a rx_recv() call for any netdev port. This will be
used by dpdk-netdev.
Signed-off-by: Pravin B Shelar
---
v1-v2:
- handle drop action case.
- avoid alloca
Following patch adds DPDK netdev-class to userspace datapath.
Approach taken in this patch differs from Intel DPDK vSwitch
where DPDK datapath switching is done in saparate process. This
patch adds support for DPDK type port and uses OVS userspace
datapath for switching. Therefore all DPDK proces
>
> OK.
>
> (By the way, by "bad code" here, I meant code that performs badly, not
> incorrect code.)
I did write a couple of small test programs for run-time issues and
did not see a problem. But if it makes sense, I can just use pointers
to remove any uncertainties.
__
On Fri, Mar 21, 2014 at 10:53:35AM -0700, Gurucharan Shetty wrote:
> On Fri, Mar 21, 2014 at 9:47 AM, Ben Pfaff wrote:
> > On Fri, Mar 21, 2014 at 09:49:17AM -0700, Jarno Rajahalme wrote:
> >> IMO this would better match the macro, can you try this one instead:
> >>
> >> static inline struct pkt_m
Commit 03fbdf8d9c80a (lib/flow: Retain ODPP_NONE on flow_extract())
replaced packet metadata initialization function by a macro.
Visual studio does not like nested structure initialization that
is done in that macro.
This commit replaces the macro by a function.
CC: Jarno Rajahalme
Signed-off-by
On Fri, Mar 21, 2014 at 9:49 AM, Jarno Rajahalme wrote:
> Guru,
>
> Please find my comment below,
>
> Jarno
>
> On Mar 20, 2014, at 6:13 PM, Gurucharan Shetty wrote:
>
>> Commit 03fbdf8d9c80a (lib/flow: Retain ODPP_NONE on flow_extract())
>> replaced packet metadata initialization function by a
On Fri, Mar 21, 2014 at 9:47 AM, Ben Pfaff wrote:
> On Fri, Mar 21, 2014 at 09:49:17AM -0700, Jarno Rajahalme wrote:
>> IMO this would better match the macro, can you try this one instead:
>>
>> static inline struct pkt_metadata pkt_metadata_from_flow(const struct flow
>> *flow)
>> {
>> struc
Add support for building the in-tree kernel datapath for Linux kernel 3.13.
There were some changes in the netlink area which required adding new
compatibility code for this layer.
Signed-off-by: Kyle Mestery
---
FAQ | 2 +-
acinclude.m4
On Fri, Mar 21, 2014 at 09:49:17AM -0700, Jarno Rajahalme wrote:
> IMO this would better match the macro, can you try this one instead:
>
> static inline struct pkt_metadata pkt_metadata_from_flow(const struct flow
> *flow)
> {
> struct pkt_metadata md;
>
> md.tunnel = flow->tunnel;
>
Guru,
Please find my comment below,
Jarno
On Mar 20, 2014, at 6:13 PM, Gurucharan Shetty wrote:
> Commit 03fbdf8d9c80a (lib/flow: Retain ODPP_NONE on flow_extract())
> replaced packet metadata initialization function by a macro.
> Visual studio does not like nested structure initialization t
On Fri, Mar 21, 2014 at 10:50:24AM +0200, Alexandru Copot wrote:
> On Tue, Mar 18, 2014 at 12:07 AM, Ben Pfaff wrote:
> >> >
> >> > The one bit that I'm concerned about is that it allows OpenFlow 1.4 to
> >> > be enabled even though there are unimplemented messages that will cause
> >> > Open vSwi
On Fri, Mar 21, 2014 at 03:53:59AM -0600, Junguk Cho wrote:
> Hello, can I insert flow datapath with "ovs-dpctl add-flow"
In theory, yes, but it's a bad idea. As the manpage says:
The following commands are primarily useful for debugging Open vSwitch.
The flow table entries (both
Hi,
You may have a syntax error in the flow you specified. You can dump existing
flows and try inserting/modifying them with some changes:
An example of a flow that worked is as follows:
ovs-dpctl add-flow "openvswitch"
"in_port(1),eth(src=00:11:22:33:11:02,dst=00:11:22:33:11:01),eth_type(0x0800
On 03/21/2014 11:31 AM, Zoltan Kiss wrote:
skb_zerocopy can copy elements of the frags array between skbs, but it doesn't
orphan them. Also, it doesn't handle errors, so this patch takes care of that
as well, and modify the callers accordingly. skb_tx_error() is also added to
the callers so they
On 20/03/14 22:22, Thomas Graf wrote:
On 03/20/2014 05:02 PM, Zoltan Kiss wrote:
--- a/net/openvswitch/datapath.c
+++ b/net/openvswitch/datapath.c
@@ -464,7 +464,9 @@ static int queue_userspace_packet(struct datapath
*dp, struct sk_buff *skb,
}
nla->nla_len = nla_attr_size(skb->len);
skb_zerocopy can copy elements of the frags array between skbs, but it doesn't
orphan them. Also, it doesn't handle errors, so this patch takes care of that
as well, and modify the callers accordingly. skb_tx_error() is also added to
the callers so they will signal the failed delivery towards the c
Hello, can I insert flow datapath with "ovs-dpctl add-flow"
I tried to use "ovs-dpctl add-flow [dp] "in_port(x)" "x".
However, it printed out "ovs-dpctl: updating flow table (Invalid argument)"
Thanks
Junguk
___
dev mailing list
dev@openvswitch.org
htt
On Tue, Mar 18, 2014 at 12:07 AM, Ben Pfaff wrote:
>> >
>> > The one bit that I'm concerned about is that it allows OpenFlow 1.4 to
>> > be enabled even though there are unimplemented messages that will cause
>> > Open vSwitch to abort if ovs-vswitchd receives one.
>>
>> This was my concern too af
58 matches
Mail list logo