Signed-off-by: Andy Zhou
V3->v4:
* Rehash the hash with hash_basis
* always accept dp_hash mask
* add mask to ovs_nla_put_flow() API
V2->V3:
* rename dp_hash to ovs_flow_hash
* Simplify netlink message error checking logic
* other cleanups
---
data
Acked-by: Jarno Rajahalme
On Apr 17, 2014, at 7:19 PM, YAMAMOTO Takashi wrote:
> Catched by "learning action - self-modifying flow with hard_timeout"
> test case.
>
> The bug introduced by commit b256dc52.
> ("ofproto-dpif-xlate: Cache xlate_actions() effects.")
>
> Signed-off-by: YAMAMOTO Ta
Pushed, thanks for the prompt review!
Jarno
On Apr 18, 2014, at 2:32 AM, YAMAMOTO Takashi wrote:
>> miniflow_extract() extracts packet headers directly to a miniflow,
>> which is a compressed form of the struct flow. This does not require
>> a large struct to be cleared to begin with, and ac
Thanks for the review, pushed with this error message line (it fit to one line
better :-):
VLOG_WARN("Negative value %s is not a valid port number.", s);
Jarno
On Apr 17, 2014, at 11:11 PM, Justin Pettit wrote:
> It might be useful to print the port string that was handed to it, since
On Apr 18, 2014, at 2:28 AM, YAMAMOTO Takashi wrote:
>> Add inlined generic accessors for miniflow integer type fields, and a
>> new miniflow_get_tcp_flags() usinge these. These will be used in a
>> later patch.
>>
>> Some definitions also used in lib/packets.h had to be moved there to
>> reso
On Apr 18, 2014, at 2:32 AM, YAMAMOTO Takashi wrote:
>> Upcoming patches add classifier lookups using miniflows, this is
>> heavily used for it.
>>
>> Signed-off-by: Jarno Rajahalme
>
> Reviewed-by: YAMAMOTO Takashi
Pushed, thanks!
Jarno
___
de
On Apr 18, 2014, at 2:32 AM, YAMAMOTO Takashi wrote:
>> Support struct miniflow as a key for datapath flow lookup.
>>
>> The new classifier interface classifier_lookup_miniflow_first() takes
>> a miniflow as a key and stops at the first match with no regard to
>> flow prioritites. This works o
On Apr 18, 2014, at 2:26 AM, YAMAMOTO Takashi wrote:
>> Use miniflow as a flow key in the userspace datapath classifier. The
>> miniflow is expanded for upcalls, but for existing datapath flows, the
>> key need not be expanded.
>>
>> Signed-off-by: Jarno Rajahalme
>
> Reviewed-by: YAMAMOTO T
On Fri, Apr 18, 2014 at 2:50 AM, Andy Zhou wrote:
> Rename hash_bias to hash_basis to make it consistent with similar
> usages.
>
> Signed-off-by: Andy Zhou
Acked-by: Jesse Gross
___
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/
On Fri, Apr 18, 2014 at 2:51 AM, Andy Zhou wrote:
> diff --git a/datapath/actions.c b/datapath/actions.c
> index 82cfd2d..87a8a40 100644
> --- a/datapath/actions.c
> +++ b/datapath/actions.c
> @@ -460,6 +460,20 @@ static int sample(struct datapath *dp, struct sk_buff
> *skb,
>
It looks like this patch still slow-paths packets until the classification is
done. As I stated last time[1], this is a non-starter because of the impact it
will have on performance. As such, I'm not going to review any patches or
comment on future ones that do this. If you want to integrate
On Fri, Apr 18, 2014 at 9:28 AM, Jesse Gross wrote:
> On Fri, Apr 18, 2014 at 2:51 AM, Andy Zhou wrote:
>> diff --git a/datapath/actions.c b/datapath/actions.c
>> index 82cfd2d..87a8a40 100644
>> --- a/datapath/actions.c
>> +++ b/datapath/actions.c
>> @@ -460,6 +460,20 @@ static int sample(struct
On Fri, Apr 18, 2014 at 10:39 AM, Andy Zhou wrote:
> On Fri, Apr 18, 2014 at 9:28 AM, Jesse Gross wrote:
>> I don't understand the other change about accepting a hash mask even
>> when there isn't a hash value. Can you explain this?
> It is not necessary now. I was thinking of the case Pravin sug
On Fri, Apr 18, 2014 at 10:52 AM, Jesse Gross wrote:
> On Fri, Apr 18, 2014 at 10:39 AM, Andy Zhou wrote:
>> On Fri, Apr 18, 2014 at 9:28 AM, Jesse Gross wrote:
>>> I don't understand the other change about accepting a hash mask even
>>> when there isn't a hash value. Can you explain this?
>> It
In Windows, we cannot delete a file that has been opened.
We use this feature to "lock" the pidfile.
Signed-off-by: Gurucharan Shetty
---
lib/daemon-windows.c | 79 ++
lib/daemon.h |8 -
2 files changed, 86 insertions(+), 1 deleti
ovsdb-server on windows crashes without it.
Signed-off-by: Gurucharan Shetty
---
lib/netdev.c |3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/netdev.c b/lib/netdev.c
index 4736a97..71d3f83 100644
--- a/lib/netdev.c
+++ b/lib/netdev.c
@@ -70,7 +70,8 @@ static struct s
Signed-off-by: Gurucharan Shetty
---
tests/atlocal.in |3 +++
1 file changed, 3 insertions(+)
diff --git a/tests/atlocal.in b/tests/atlocal.in
index 06e7384..8267554 100644
--- a/tests/atlocal.in
+++ b/tests/atlocal.in
@@ -77,4 +77,7 @@ Linux)
FreeBSD|NetBSD)
LOOPBACK_INTERFACE=lo0
The option won't have any effect on the running of the daemon.
Recognizing the option lets us avoid if else conditions in unit
tests.
Signed-off-by: Gurucharan Shetty
---
lib/daemon.h |5 +
1 file changed, 5 insertions(+)
diff --git a/lib/daemon.h b/lib/daemon.h
index 0b7dc5f..8ac777f 1
Sa far, we are using variable 'detach' to indicate whether the option
"--service" has been set. We were using variable 'detached' to indicate that
the daemon is being called from the Windows services manager.
An upcoming commit introduces command line option "--detach" for daemons
running on Windo
When "--detach" is specified, a daemon will create a new
process with the same command line options as the parent.
Additionally, an undocumented command line option "--pipe-handle"
is passed to child. Once the child is ready to handle external
commands, it communicates to the parent that it is read
On Linux, we heavily use --remote=punix:* to listen for
connections through unix domain sockets. We also use, unix:*
to connect to a daemon that is listening on unix domain sockets.
Many times, we create default unix domain sockets for listening
and many utilities connect to these sockets by defaul
In unit tests, we compare text written in logs or stdout/stderr
to figure out the success or failure of tests. In Windows,
since new line is represented by CR+LF, autoconf tests run in
MinGW environment fail.
Asking diff to ignore trailing carriage returns is one way
to solve the problem
Suggeste
We use kill to cleanup processes from pidfiles.
Windows has a 'taskkill' which does something similar.
We can check if the process with a PID exists with
'tasklist'. Both tasklist and taskkill return 0 for
both success and failure. So, we will have to grep
to see if there is a o/p.
A typical o/p o
Now that we have a separate [p]stream_class for hiding
kernel assigned TCP port inside a file meant for unix domain
sockets in windows, use the new infrastructure provided.
Signed-off-by: Gurucharan Shetty
---
lib/unixctl.c | 67 +++--
1 file
On MinGW, "pwd -W" gives the present working directory
in the form of windows path (i.e C:/temp instead of /c/temp).
When we pass the directory path to daemons as arguments,
we should be passing it in the form of windows path.
Suggested-by: Ben Pfaff
Signed-off-by: Gurucharan Shetty
---
tests/t
The incremental change follows:
diff --git a/datapath/actions.c b/datapath/actions.c
index fdcd576..921310a 100644
--- a/datapath/actions.c
+++ b/datapath/actions.c
@@ -468,10 +468,11 @@ static void execute_hash(struct sk_buff *skb,
const struct nlattr *attr)
/* OVS_HASH_ALG_L4 is the only p
This was the only place in OVS code that accessed classifier internal
data structures directly. Use the classifier cursor API instead, so
that following patches can hide classifier internal data structures.
Note: There seems to be no test case to verify that this vlan usage
collection is implemen
It is better not to expose definitions not needed by users.
Signed-off-by: Jarno Rajahalme
---
lib/classifier.c| 134 ---
lib/classifier.h| 65 ---
tests/test-classifier.c |6 +--
3 files changed, 115 insertio
We only need to iterate over the bits masked by the 'b' in
minimask_has_extra(), since for zeroes in 'b' there can be no 'extra'
wildcards in 'a', as 'b' has already wildcarded all the bits.
minimask_is_catchall() can be simplified by the invariant that mask's
map never has 1-bits for all-zero val
Change the classifier to allocate variable sized miniflows and
minimasks in cls_match and cls_subtable, respectively. Do not
duplicate the mask in cls_rule any more.
miniflow_clone and miniflow_move can now take variably sized miniflows
as source. The destination is assumed to be regularly sized
Using a linear array allows more efficient memory access for lookups.
Signed-off-by: Jarno Rajahalme
---
lib/classifier.c | 239 +-
1 file changed, 182 insertions(+), 57 deletions(-)
diff --git a/lib/classifier.c b/lib/classifier.c
index e48f
Keep an internal representation of a rule separate from the one
embedded into user's structs. This allows for further memory
optimization in the classifier.
Signed-off-by: Jarno Rajahalme
---
lib/classifier.c| 211 +--
lib/classifier.h
Signed-off-by: Jarno Rajahalme
---
lib/classifier.c| 181 ++-
lib/flow.c | 155
lib/flow.h | 38 --
lib/hindex.c| 13
lib/hindex.h| 1
Define OVS_PREFETCH() and OVS_PREFETCH_WRITE() using builtin prefetch
for GCC, and ovs_prefetch_range() for prefetching a range of addresses.
Signed-off-by: Jarno Rajahalme
---
lib/compiler.h |8
lib/util.h | 14 ++
2 files changed, 22 insertions(+)
diff --git a/l
Add new macro MINIFLOW_MAP(FIELD) that returns the map covering the
given struct flow field.
Change the miniflow accessors to macros so that they can take the
field name directly.
Use these to add ipv6 suppoort to miniflow_hash_5tuple().
Add ipv6 support to flow_hash_5tuple() as well so that the
This allows use of miniflows that have all of their values inline.
Signed-off-by: Jarno Rajahalme
---
lib/classifier.c | 36 +++--
lib/dpif-netdev.c | 32 ++-
lib/flow.c| 91 ++---
lib/flow.h|
This series:
- Inlines critical functions that are only used by the classifier.
- Hides classifier internals from the API, adding a 'cls_match' that
contains the private parts of 'cls_rule'.
- Changes the subtable list to a linear array that enables prefetching.
- Always inlines the miniflows and
On Apr 18, 2014, at 2:50 AM, Andy Zhou wrote:
> Currently, all packet lookup starts from internal table for possible
> matching of post recirculation rules. This is not necessary for
> datapath that does not support recirculation.
>
> This patch adds the ability to steering rule lookup starting
On Fri, Apr 18, 2014 at 12:59 PM, Jarno Rajahalme wrote:
>
> On Apr 18, 2014, at 2:50 AM, Andy Zhou wrote:
>
>> Currently, all packet lookup starts from internal table for possible
>> matching of post recirculation rules. This is not necessary for
>> datapath that does not support recirculation.
On Apr 18, 2014, at 2:50 AM, Andy Zhou wrote:
...
> @@ -2681,9 +2681,9 @@ unencap:
> * capable of being expanded to allow for that much space. */
> void
> odp_flow_key_from_flow(struct ofpbuf *buf, const struct flow *flow,
> - odp_port_t odp_in_port)
> +
Acked-by: Ethan Jackson
On Thu, Apr 17, 2014 at 5:41 PM, Alex Wang wrote:
> Signed-off-by: Alex Wang
>
> ---
> V8 -> v9:
> - move the fat-lock acquisition inside the if-statement in dpif_linux_run().
> - fix an error: dpif_linux_recv_purge() should acquire wrlock.
>
> V7 -> V8:
> - rebase.
>
>
Acked-by: Ethan Jackson
On Thu, Apr 17, 2014 at 5:41 PM, Alex Wang wrote:
> This commit reformats the dpif-linux module so that all internal
> static functions take 'struct dpif_linux *' as input argument.
> This will allow the adding of thread-safety annotations.
>
> Signed-off-by: Alex Wang
Acked-by: Ethan Jackson
On Thu, Apr 17, 2014 at 5:41 PM, Alex Wang wrote:
> Signed-off-by: Alex Wang
>
> ---
> V9:
> - add thread-safety annotations.
> ---
> lib/dpif-linux.c | 60
> +-
> 1 file changed, 46 insertions(+), 14 deletions(-)
Thx, applied three patches,
On Fri, Apr 18, 2014 at 1:55 PM, Ethan Jackson wrote:
> Acked-by: Ethan Jackson
>
>
> On Thu, Apr 17, 2014 at 5:41 PM, Alex Wang wrote:
> > Signed-off-by: Alex Wang
> >
> > ---
> > V9:
> > - add thread-safety annotations.
> > ---
> > lib/dpif-linux.c | 60
> +++
> On Apr 18, 2014, at 1:09 PM, Andy Zhou wrote:
>
>> On Fri, Apr 18, 2014 at 12:59 PM, Jarno Rajahalme
>> wrote:
>>
>>> On Apr 18, 2014, at 2:50 AM, Andy Zhou wrote:
>>>
>>> Currently, all packet lookup starts from internal table for possible
>>> matching of post recirculation rules. This i
With the foundation laid in previous commits, this commit
removes the 'dispatcher' thread by allowing 'handler'
threads to read upcalls directly from dpif.
This commit significantly simplifies the flow miss handling
code and brings slight improvement to flow setup rate.
Signed-off-by: Alex Wang
Good point. I agree it looks odd. How about the following incremental:
diff --git a/lib/odp-util.c b/lib/odp-util.c
index 9d49198..8e95c9e 100644
--- a/lib/odp-util.c
+++ b/lib/odp-util.c
@@ -2481,21 +2481,17 @@ ovs_to_odp_frag_mask(uint8_t nw_frag_mask)
}
static void
-odp_flow_key_from_flow__
LGTM,
Acked-by: Jarno Rajahalme
> On Apr 18, 2014, at 2:32 PM, Andy Zhou wrote:
>
> Good point. I agree it looks odd. How about the following incremental:
>
> diff --git a/lib/odp-util.c b/lib/odp-util.c
> index 9d49198..8e95c9e 100644
> --- a/lib/odp-util.c
> +++ b/lib/odp-util.c
> @@ -248
On Fri, Apr 18, 2014 at 2:51 AM, Andy Zhou wrote:
> diff --git a/datapath/actions.c b/datapath/actions.c
> index 87a8a40..fdcd576 100644
> --- a/datapath/actions.c
> +++ b/datapath/actions.c
> +static int execute_recirc(struct datapath *dp, struct sk_buff *skb,
> +c
> + *- "flow_dumper" thread that reads the kernel flow table and dispatches
Lost the initial "A" here.
> struct upcall {
> -struct list list_node; /* For queuing upcalls. */
> +bool is_valid; /* If the upcall can be used. */
> struct flow_miss *flow_mi
On Fri, Apr 18, 2014 at 4:51 PM, Ethan Jackson wrote:
> > + *- "flow_dumper" thread that reads the kernel flow table and
> dispatches
>
> Lost the initial "A" here.
Thx,
> struct upcall {
> > -struct list list_node; /* For queuing upcalls. */
> > +bool is_valid;
Thx, applied,
Nothing better than applying 100th patch on Friday,~
At this rate, if everyone stop applying patches, it would take me 8 yrs to
match your number of commits, and 40+yrs to match Ben's record. ;D
On Fri, Apr 18, 2014 at 5:10 PM, Alex Wang wrote:
>
>
>
> On Fri, Apr 18, 2014 at
Thanks for catching this. It is also used later on to set xin.may_learn,
does that matter too?
On 19 April 2014 03:22, Jarno Rajahalme wrote:
> Acked-by: Jarno Rajahalme
>
> On Apr 17, 2014, at 7:19 PM, YAMAMOTO Takashi
> wrote:
>
> > Catched by "learning action - self-modifying flow with har
From: Ethan Jackson
Previously, we had a separate flow_dumper thread that fetched flows from
the datapath to distribute to revalidator threads. This patch takes the
logic for dumping and pushes it into the revalidator threads, resulting
in simpler code with similar performance to the current code
In FAQ, there is way of configuring one ip address to OVS like this.
ifconfig eth0 0.0.0.0
ifconfig br0 192.168.128.5
There are some sentences.
"If your only connection to the machine running OVS is through the
IP address in question, then you would want to run all of these
commands on a
On April 18, 2014 at 7:50:46 PM, Junguk Cho (jman...@gmail.com) wrote:
> In FAQ, there is way of configuring one ip address to OVS like this.
>
> ifconfig eth0 0.0.0.0
> ifconfig br0 192.168.128.5
>
>
> There are some sentences.
>
> "If your only connection to the machine running OVS is throug
> Commit 33ab38d9 (meta-flow: Simplify mf_from_ofp_port_string())
> inadvertently removed a check for minus sign at the beginning of a
> port number string introduced by commit 05dddba (meta-flow: Don't
> allow negative port numbers). This check is still needed, so put it
> back, but to ofputil_po
This message and any attachments (the "message") are confidential, intended
solely for the addressees. If you are not the intended recipient, please notify
the sender immediately by e-mail and delete this message from your system. In
this case, you are not authorized to use, copy this message a
> Use miniflow as a flow key in the userspace datapath classifier. The
> miniflow is expanded for upcalls, but for existing datapath flows, the
> key need not be expanded.
>
> Signed-off-by: Jarno Rajahalme
Reviewed-by: YAMAMOTO Takashi
> @@ -2144,8 +2157,9 @@ dp_execute_cb(void *aux_, struct
> Add inlined generic accessors for miniflow integer type fields, and a
> new miniflow_get_tcp_flags() usinge these. These will be used in a
> later patch.
>
> Some definitions also used in lib/packets.h had to be moved there to
> resolve circular include dependencies. Similarly, some inline
> f
> Upcoming patches add classifier lookups using miniflows, this is
> heavily used for it.
>
> Signed-off-by: Jarno Rajahalme
Reviewed-by: YAMAMOTO Takashi
___
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev
> Support struct miniflow as a key for datapath flow lookup.
>
> The new classifier interface classifier_lookup_miniflow_first() takes
> a miniflow as a key and stops at the first match with no regard to
> flow prioritites. This works only if the classifier has no
> conflicting rules (as is the c
> miniflow_extract() extracts packet headers directly to a miniflow,
> which is a compressed form of the struct flow. This does not require
> a large struct to be cleared to begin with, and accesses less memory.
> These performance benefits should allow this to be used in the DPDK
> datapath.
>
>
Currently, all packet lookup starts from internal table for possible
matching of post recirculation rules. This is not necessary for
datapath that does not support recirculation.
This patch adds the ability to steering rule lookup starting table
based on whether datapath supports recirculation.
S
Rename hash_bias to hash_basis to make it consistent with similar
usages.
Signed-off-by: Andy Zhou
---
include/linux/openvswitch.h | 4 ++--
lib/dpif-netdev.c| 2 +-
lib/odp-util.c | 2 +-
ofproto/ofproto-dpif-xlate.c | 4 ++--
ofproto/ofproto-dpif-xlate.h | 2 +-
5 fi
Currently netlink flow (and mask) recirc_id attribute is only
serialized when the recirc_id value is non-zero. For this logic
to work correctly, the interpretation of the missing recirc_id
depends on whether the datapath supports recirculation.
This patch remove the ambiguity of the meaning of mis
Recirculation implementation for Linux kernel data path.
Signed-off-by: Andy Zhou
---
V3 -> v4:
* OVS_CB input_port may be NULL for ovs_packet_cmd_execute()
* always accept recirc_id mask
* Always generate recirc_id netlink message for recirc
enabled
67 matches
Mail list logo