[ovs-git] Open vSwitch: datapath: add recirc action (master)

dev at openvswitch.org dev at openvswitch.org
Mon Apr 21 19:04:22 UTC 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Open vSwitch".

The branch, master has been updated
       via  a605908001070c27aa8c755c92cd361a10b46beb (commit)
       via  7804df205faf285037994c7d222dfd45d5c00c49 (commit)
       via  270a2b8e7692fb0102503d9d590d92db80155ea4 (commit)
       via  62ac1f20e9d0bbd53a418ec704022bcb2430d7ac (commit)
       via  fbfe01de0dedaf6d5b909b1a977d1f8164243754 (commit)
       via  4a750708bc9b6d76d67d88cd1b7193a9c62fdb9e (commit)
       via  6a279b0738fe7e2603a77cf56139f9b06b853e5b (commit)
       via  9a159f748866136a126474137604b2b020bd3574 (commit)
       via  b90de03449c0f285b73ce24e1b74c4887ebd3f97 (commit)
       via  9b00386ba65eeb1c691c2c0203f787f3e2a83061 (commit)
       via  1579cf677fcb481b30d821ad07e45dd58c70f67d (commit)
       via  4f150744921f02fd208b8bc59beb92270f77b924 (commit)
       via  2abf78ff5562b9550558c52b2a16431de71a3378 (commit)
       via  b570c52cc2d0033f36056f43e8d43ed3b01bf186 (commit)
       via  b7807e4f64c8c64bb6000767de72368306a95c90 (commit)
       via  419681daf125576d25839eaefbb179b65e19c091 (commit)
       via  5b23ff7e7da56ee6fad43fe967f1b2a5beeb4893 (commit)
       via  62c70c9d47edf2dbf5c9d0c8cd6c15c8c43dc7a8 (commit)
       via  698ffe3623f1b630ae3d0e206abd77876ecffb87 (commit)
       via  b256dc525c8ef663daf2330463e67a26207cc5f1 (commit)
       via  1ebeaaa7f0c3f0f94f28377404c52a11cca50d86 (commit)
       via  79428250c2b2b51f233d2c3f74560190ff9fb325 (commit)
       via  9bbd18e2db38b91ffee659fb673c77bb0f4efeaa (commit)
       via  347bf289b3dc006ca7b95cca26d3e0d3f20fbe95 (commit)
       via  40dd413d5b5424eb4cd2e6a8558d33f3b7c607ed (commit)
       via  eb7282ddfa7d9fe9ab89c7543456978e671f4335 (commit)
       via  6c932bc8c5db7a9d4e264619eeb30af65bc3b9b6 (commit)
       via  545b23f61fe72e77b37933e5b5fe3f6c4f4a9230 (commit)
       via  f6ba1f355075900221ffbfba127a75e540841bc5 (commit)
       via  beb1c69a3a661dbc0232aeb9831c14788f84eb24 (commit)
       via  c6855ec5147dd801875ff3bb8959b9d2d7bc5bb0 (commit)
       via  9e1a6910c2a758b0b87d5f86c8645baee553cadb (commit)
       via  2c272bd98f619caf0b83ecf97addd94488a0c258 (commit)
       via  fd34f17610bf6d679e5606b081807e282980968c (commit)
       via  c7ee3065084842c8e7068504a535b79debcfe580 (commit)
       via  546953509095cec6fad42663b659171618b765d2 (commit)
      from  ca3d034b3909dfe7ae5d2044f3547e57cb9fb8f5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit a605908001070c27aa8c755c92cd361a10b46beb
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=a605908001070c27aa8c755c92cd361a10b46beb
Author: Andy Zhou <azhou at nicira.com>
		
datapath: add recirc action
		
Recirculation implementation for Linux kernel data path.

Signed-off-by: Andy Zhou <azhou at nicira.com>
Acked-by: Jesse Gross <jesse at nicira.com>


commit 7804df205faf285037994c7d222dfd45d5c00c49
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=7804df205faf285037994c7d222dfd45d5c00c49
Author: Andy Zhou <azhou at nicira.com>
		
datapath: add hash action
		
Signed-off-by: Andy Zhou <azhou at nicira.com>
Acked-by: Jesse Gross <jesse at nicira.com>


commit 270a2b8e7692fb0102503d9d590d92db80155ea4
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=270a2b8e7692fb0102503d9d590d92db80155ea4
Author: Rami Rosen <ramirose at gmail.com>
		
datapath: remove unneeded declaration of new_vport().
		
This patch removes the new_vport() forward declaration in datapath.c
as it is not needed.

Signed-off-by: Rami Rosen <ramirose at gmail.com>
Signed-off-by: Jesse Gross <jesse at nicira.com>


commit 62ac1f20e9d0bbd53a418ec704022bcb2430d7ac
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=62ac1f20e9d0bbd53a418ec704022bcb2430d7ac
Author: Andy Zhou <azhou at nicira.com>
		
openvswitch.h: rename hash action definition
		
Rename hash_bias to hash_basis to make it consistent with similar
usages.

Signed-off-by: Andy Zhou <azhou at nicira.com>
Acked-by: Jesse Gross <jesse at nicira.com>


commit fbfe01de0dedaf6d5b909b1a977d1f8164243754
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=fbfe01de0dedaf6d5b909b1a977d1f8164243754
Author: Andy Zhou <azhou at nicira.com>
		
odp-util: Always generate key/mask pair in netlink for recirc_id
		
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 missing recirc_id
attribute in netlink message.  When recirc_id is non-zero, or when
it is not a wildcard match, both key and mask attributes are
serialized.  On the other hand, when recirc_id is zero, and being
wildcarded, they are not serialized.  A missing recirc_id key and
mask attribute thus should always be interpreted as wildcard,
same as other flow fields.

Signed-off-by: Andy Zhou <azhou at nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme at nicira.com>


commit 4a750708bc9b6d76d67d88cd1b7193a9c62fdb9e
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=4a750708bc9b6d76d67d88cd1b7193a9c62fdb9e
Author: Andy Zhou <azhou at nicira.com>
		
ofproto-dpif: Rule lookup starts from table zero for non-recirc 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.

Signed-off-by: Andy Zhou <azhou at nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme at nicira.com>


commit 6a279b0738fe7e2603a77cf56139f9b06b853e5b
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=6a279b0738fe7e2603a77cf56139f9b06b853e5b
Author: YAMAMOTO Takashi <yamamoto at valinux.co.jp>
		
ofproto-dpif-upcall: Don't use stack garbage
		
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.")

Acked-by: Jarno Rajahalme <jrajahalme at nicira.com>
Signed-off-by: YAMAMOTO Takashi <yamamoto at valinux.co.jp>


commit 9a159f748866136a126474137604b2b020bd3574
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=9a159f748866136a126474137604b2b020bd3574
Author: Alex Wang <alexw at nicira.com>
		
ofproto-dpif-upcall: Remove the dispatcher thread.
		
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 <alexw at nicira.com>
Acked-by: Ethan Jackson <ethan at nicira.com>



commit b90de03449c0f285b73ce24e1b74c4887ebd3f97
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=b90de03449c0f285b73ce24e1b74c4887ebd3f97
Author: Alex Wang <alexw at nicira.com>
		
dpif-linux: Add thread-safety annotations.
		
Signed-off-by: Alex Wang <alexw at nicira.com>
Acked-by: Ethan Jackson <ethan at nicira.com>



commit 9b00386ba65eeb1c691c2c0203f787f3e2a83061
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=9b00386ba65eeb1c691c2c0203f787f3e2a83061
Author: Alex Wang <alexw at nicira.com>
		
dpif-linux: Pass 'struct dpif_linux *' to internal static functions.
		
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 <alexw at nicira.com>
Acked-by: Ethan Jackson <ethan at nicira.com>



commit 1579cf677fcb481b30d821ad07e45dd58c70f67d
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=1579cf677fcb481b30d821ad07e45dd58c70f67d
Author: Alex Wang <alexw at nicira.com>
		
dpif-linux: Implement the API functions to allow multiple handler threads read upcall.
		
Signed-off-by: Alex Wang <alexw at nicira.com>
Acked-by: Ethan Jackson <ethan at nicira.com>


commit 4f150744921f02fd208b8bc59beb92270f77b924
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=4f150744921f02fd208b8bc59beb92270f77b924
Author: Jarno Rajahalme <jrajahalme at nicira.com>
		
dpif-netdev: Use miniflow as a flow key.
		
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 <jrajahalme at nicira.com>
Reviewed-by: YAMAMOTO Takashi <yamamoto at valinux.co.jp>

commit 2abf78ff5562b9550558c52b2a16431de71a3378
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=2abf78ff5562b9550558c52b2a16431de71a3378
Author: Jarno Rajahalme <jrajahalme at nicira.com>
		
classifier: Support miniflow as a key.
		
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 case with the userspace datapath
classifier).

Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
Reviewed-by: YAMAMOTO Takashi <yamamoto at valinux.co.jp>

commit b570c52cc2d0033f36056f43e8d43ed3b01bf186
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=b570c52cc2d0033f36056f43e8d43ed3b01bf186
Author: Jarno Rajahalme <jrajahalme at nicira.com>
		
lib/flow: Possibly faster miniflow_hash_in_minimask()
		
Upcoming patches add classifier lookups using miniflows, this is
heavily used for it.

Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
Reviewed-by: YAMAMOTO Takashi <yamamoto at valinux.co.jp>

commit b7807e4f64c8c64bb6000767de72368306a95c90
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=b7807e4f64c8c64bb6000767de72368306a95c90
Author: Jarno Rajahalme <jrajahalme at nicira.com>
		
lib/flow: Add miniflow accessors and miniflow_get_tcp_flags().
		
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
functions using struct flow are now in lib/flow.h.  IMO this is
cleaner, since now the lib/flow.h need not be included from
lib/packets.h.

Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
Reviewed-by: YAMAMOTO Takashi <yamamoto at valinux.co.jp>

commit 419681daf125576d25839eaefbb179b65e19c091
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=419681daf125576d25839eaefbb179b65e19c091
Author: Jarno Rajahalme <jrajahalme at nicira.com>
		
lib/flow: Introduce miniflow_extract().
		
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.

miniflow_extract() takes a miniflow as an input/output parameter.  On
input the buffer for values to be extracted must be properly
initialized.  On output the map contains ones for all the fields that
have been extracted.

Some struct flow fields are reordered to make miniflow_extract to
progress in the logical order.

Some explicit "inline" keywords are necessary for GCC to optimize this
properly.  Also, macros are used for same reason instead of inline
functions for pushing data to the miniflow.

Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
Reviewed-by: YAMAMOTO Takashi <yamamoto at valinux.co.jp>

commit 5b23ff7e7da56ee6fad43fe967f1b2a5beeb4893
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=5b23ff7e7da56ee6fad43fe967f1b2a5beeb4893
Author: Jarno Rajahalme <jrajahalme at nicira.com>
		
lib/ofp-util: Restore the check for minus sign in port number strings.
		
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_port_from_string() this time.

Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
Acked-by: Justin Pettit <jpettit at nicira.com>
Reviewed-by: YAMAMOTO Takashi <yamamoto at valinux.co.jp>

commit 62c70c9d47edf2dbf5c9d0c8cd6c15c8c43dc7a8
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=62c70c9d47edf2dbf5c9d0c8cd6c15c8c43dc7a8
Author: ejj <ethan at nicira.com>
		
Merge pull request #3 from joestringer/submit/xlate_cache_v2
		
Cache the modules affected by xlate_actions().

commit 698ffe3623f1b630ae3d0e206abd77876ecffb87
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=698ffe3623f1b630ae3d0e206abd77876ecffb87
Author: Joe Stringer <joestringer at nicira.com>
		
revalidator: Only revalidate high-throughput flows.
		
Previously we would revalidate all flows if the "need_revalidate" flag
was raised. This patch modifies the logic to delete low throughput flows
rather than revalidate them. High-throughput flows are unaffected by
this change. This patch identifies the flows based on the mean time
between packets since the last dump.

This change is primarily targeted at situations where:
* Flow dump duration is high (~1 second)
* Revalidation is triggered. (eg, by bridge reconfiguration or learning)

After the need_revalidate flag is set, next time a new flow dump session
starts, revalidators will begin revalidating the flows. This full
revalidation is more expensive, which significantly increases the flow
dump duration. At the end of this dump session, the datapath flow
management algorithms kick in for the next dump:

* If flow dump duration becomes too long, the flow limit is decreased.
* The number of flows in the datapath then exceeds the flow_limit.
* As the flow_limit is exceeded, max_idle is temporarily set to 100ms.
* Revalidators delete all flows that haven't seen traffic recently.

The effect of this is that many low-throughput flows are deleted after
revalidation, even if they are valid. The revalidation is unnecessary
for flows that would be deleted anyway, so this patch skips the
revalidation step for those flows.

Note that this patch will only perform this optimization if the flow has
already been dumped at least once, and only if the time since the last
dump is sufficiently long. This gives the flow a chance to become
high-throughput.

Signed-off-by: Joe Stringer <joestringer at nicira.com>
Acked-by: Ethan Jackson <ethan at nicira.com>
---
v2: Acked.
v1: Determine "high-throughput" by packets rather than bytes.
    Calculate the mean time between packets for comparison, rather than
      comparing the number of packets since the last dump.
RFC: First post.


commit b256dc525c8ef663daf2330463e67a26207cc5f1
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=b256dc525c8ef663daf2330463e67a26207cc5f1
Author: Joe Stringer <joestringer at nicira.com>
		
ofproto-dpif-xlate: Cache xlate_actions() effects.
		
This patch adds a new object called 'struct xlate_cache' which can be
set in 'struct xlate_in', and passed to xlate_actions() to cache the
modules affected by this flow translation. Subsequently, the caller can
pass the xcache to xlate_push_stats() to credit stats and perform side
effects for a lower cost than full flow translation.

These changes are aimed currently at long-lived flows, decreasing the
average dump duration for such flows by 50-80%. This allows more flows
to be supported in the datapath at a given time. Applying these changes
to short-lived flows is left for a later commit.

Signed-off-by: Joe Stringer <joestringer at nicira.com>
Acked-by: Ethan Jackson <ethan at nicira.com>
---
v2: Acked.
v1: Add caching for fin_timeout action.
    Expire netflows on xlate_cache_clear().
    Account to bonds using a copy of 'flow' rather than hash.
    Always build XC_NORMAL entry (previously only if may_learn is true)
    Rename xlate_from_cache()->xlate_push_stats()
    Add may_learn parameter to xlate_push_stats()
    Tidy up xlate_actions__() mirror/netflow code.
    Fold in style fixups.
RFC: First post.


commit 1ebeaaa7f0c3f0f94f28377404c52a11cca50d86
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=1ebeaaa7f0c3f0f94f28377404c52a11cca50d86
Author: Joe Stringer <joestringer at nicira.com>
		
ofproto: New function ofproto_refresh_rule().
		
This function checks for a rule in the classifier:
* If the rule exists, reset its modified time.
* If an equivalent rule exists, reset that rule's modified time.
* If no rule exists, re-install the rule and reset its modified time.
* Finally, return the rule that was modified.

This function will be used to ensure that hard timeouts for learnt rules
are refreshed if traffic consistently hits a rule with a learn action in
it. The first user will be the next commit.

Signed-off-by: Joe Stringer <joestringer at nicira.com>
Acked-by: Ethan Jackson <ethan at nicira.com>
---
v2: Acked.
v1: Ensure rule->modified is updated correctly.
RFC: First post.


commit 79428250c2b2b51f233d2c3f74560190ff9fb325
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=79428250c2b2b51f233d2c3f74560190ff9fb325
Author: YAMAMOTO Takashi <yamamoto at valinux.co.jp>
		
flow.h: Fix a comment typo
		
Acked-by: Jarno Rajahalme <jrajahalme at nicira.com>
Signed-off-by: YAMAMOTO Takashi <yamamoto at valinux.co.jp>


commit 9bbd18e2db38b91ffee659fb673c77bb0f4efeaa
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=9bbd18e2db38b91ffee659fb673c77bb0f4efeaa
Author: Alex Wang <alexw at nicira.com>
		
ofproto-dpif.at: Fix a race.
		
For the fixed line, the ofctl_monitor.log should have 18 lines.
So, should wait until it reaches 18 lines.

Signed-off-by: Alex Wang <alexw at nicira.com>
Acked-by: Joe Stringer <joestringer at nicira.com>


commit 347bf289b3dc006ca7b95cca26d3e0d3f20fbe95
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=347bf289b3dc006ca7b95cca26d3e0d3f20fbe95
Author: Andy Zhou <azhou at nicira.com>
		
dpif-netdev: Move hash function out of the recirc action, into its own action
		
Currently recirculation action can optionally compute hash. This patch
adds a hash action that is independent of the recirc action, which
no longer computes hash.  For megaflow bond with recirc, the output
to a bond port action will look like:

    hash(hash_l4(0)), recirc(<recirc_id>)

Obviously, when a recirculation application that does not depend on
hash value can just use the recirc action alone.

Signed-off-by: Andy Zhou <azhou at nicira.com>
Reviewed-by: YAMAMOTO Takashi <yamamoto at valinux.co.jp>
Acked-by: Pravin B Shelar <pshelar at nicira.com


commit 40dd413d5b5424eb4cd2e6a8558d33f3b7c607ed
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=40dd413d5b5424eb4cd2e6a8558d33f3b7c607ed
Author: Andy Zhou <azhou at nicira.com>
		
datapath: Fix a double free bug for the sample action
		
When sample action returns with an error, the skb has already been
freed. This patch fix a bug to make sure we don't free it again.


commit eb7282ddfa7d9fe9ab89c7543456978e671f4335
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=eb7282ddfa7d9fe9ab89c7543456978e671f4335
Author: Andy Zhou <azhou at nicira.com>
		
ofproto-dpif: xlate should not attribute stats to bond entry when using recirc
		
When recirculation is used to implement bond, the bond entry stats are
collected from the hidden post recirculation rules. This bug causes
double counting of stats to some strenuous bond entries.

Signed-off-by: Andy Zhou <azhou at nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme at nicira.com>


commit 6c932bc8c5db7a9d4e264619eeb30af65bc3b9b6
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=6c932bc8c5db7a9d4e264619eeb30af65bc3b9b6
Author: Andy Zhou <azhou at nicira.com>
		
ofproto/bond: properly maintain hash entry pr_rule
		
This is a bug causing per hash entry's pr_rule pointer not properly
maintained; they became NULL after each rebalancing. This patch fixes
this bug.

Signed-off-by: Andy Zhou <azhou at nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme at nicira.com>


commit 545b23f61fe72e77b37933e5b5fe3f6c4f4a9230
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=545b23f61fe72e77b37933e5b5fe3f6c4f4a9230
Author: Andy Zhou <azhou at nicira.com>
		
ofproto/bond: Keep hash entry slave valid.
		
Bond recirculation needs to refresh the 'hidden rules' from
time to time. Keep hash entry slave valid to prevent those
hidden rules from being removed.

Signed-off-by: Andy Zhou <azhou at nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme at nicira.com>


commit f6ba1f355075900221ffbfba127a75e540841bc5
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=f6ba1f355075900221ffbfba127a75e540841bc5
Author: Andy Zhou <azhou at nicira.com>
		
ofproto/bond: only display hash entries with tx_byptes > 1KB
		
When recirculation is used to implement bond, all bond entries are
always populated regardless whether there is traffic going through
them or not. This change cuts down the noise when running
'ovs-appctl bond/show', by skipping '0KB' entries.

Signed-off-by: Andy Zhou <azhou at nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme at nicira.com>


commit beb1c69a3a661dbc0232aeb9831c14788f84eb24
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=beb1c69a3a661dbc0232aeb9831c14788f84eb24
Author: Alex Wang <alexw at nicira.com>
		
datapath: Allow each vport to have an array of 'port_id's.
		
In order to allow handlers directly read upcalls from datapath,
we need to support per-handler netlink socket for each vport in
datapath.  This commit makes this happen.  Also, it is guaranteed
to be backward compatible with previous branch.

Signed-off-by: Alex Wang <alexw at nicira.com>
Acked-by: Thomas Graf <tgraf at redhat.com>
Acked-by: Pravin B Shelar <pshelar at nicira.com>


commit c6855ec5147dd801875ff3bb8959b9d2d7bc5bb0
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=c6855ec5147dd801875ff3bb8959b9d2d7bc5bb0
Author: Joe Stringer <joestringer at nicira.com>
		
ofproto/bond: Protect statistics with writelock.
		
dcf00ba35a0 (ofproto/bond: Implement bond megaflow using recirculation)
allowed bond_entry statistics to be modified while holding a readlock.
This patch modifies bond_entry_account() to get a writelock before
modifying the statistics and adds thread-safety annotations to these
fields and relevant functions.

Signed-off-by: Joe Stringer <joestringer at nicira.com>
Signed-off-by: Andy Zhou <azhou at nicira.com>¬


commit 9e1a6910c2a758b0b87d5f86c8645baee553cadb
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=9e1a6910c2a758b0b87d5f86c8645baee553cadb
Author: Joe Stringer <joestringer at nicira.com>
		
ofproto/bond: Minor cleanups.
		
Add a constant for the number of bond buckets, and other minor cleanups.

Signed-off-by: Joe Stringer <joestringer at nicira.com>
Signed-off-by: Andy Zhou <azhou at nicira.com>¬


commit 2c272bd98f619caf0b83ecf97addd94488a0c258
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=2c272bd98f619caf0b83ecf97addd94488a0c258
Author: Zoltan Kiss <zoltan.kiss at citrix.com>
		
datapath: Orphan frags in skb_zerocopy and handle errors
		
This is the ported version of commit 36d5fe6a with the same name from net-next.
Apart from the small datapath.c changes it adjust the compat layer files as
well. This is the original commit message:

"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 creator of the
skb."

Signed-off-by: Zoltan Kiss <zoltan.kiss at citrix.com>
Signed-off-by: Jesse Gross <jesse at nicira.com>


commit fd34f17610bf6d679e5606b081807e282980968c
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=fd34f17610bf6d679e5606b081807e282980968c
Author: Simon Horman <horms at verge.net.au>
		
ofproto-dpif: Correct typo in documentation of rule_dpif_lookup()
		
This corrects a typo that was added by adcf00ba35a0ce9c
("ofproto/bond: Implement bond megaflow using recirculation").

Cc: Andy Zhou <azhou at nicira.com>
Signed-off-by: Simon Horman <horms at verge.net.au>
Signed-off-by: Andy Zhou <azhou at nicira.com>¬


commit c7ee3065084842c8e7068504a535b79debcfe580
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=c7ee3065084842c8e7068504a535b79debcfe580
Author: Simon Horman <horms at verge.net.au>
		
ofproto-dpif: Correct documentation of rule_dpif_lookup_from_table()
		
This corrects an editing error that was added by 6b83a3c5c37a0711
("ofproto: Support OF version-specific table-miss behaviours").

Signed-off-by: Simon Horman <horms at verge.net.au>
Signed-off-by: Andy Zhou <azhou at nicira.com>¬


commit 546953509095cec6fad42663b659171618b765d2
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=546953509095cec6fad42663b659171618b765d2
Author: Jarno Rajahalme <jrajahalme at nicira.com>
		
lib/odp-util: Do not use mask if it doesn't exist.
		
Diagnostic code path dereferenced a NULL pointer.

Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
Reviewed-by: YAMAMOTO Takashi <yamamoto at valinux.co.jp>

-----------------------------------------------------------------------

Summary of changes:
 datapath/actions.c                           |   60 +-
 datapath/datapath.c                          |   78 ++-
 datapath/datapath.h                          |    8 +-
 datapath/flow.h                              |    2 +
 datapath/flow_netlink.c                      |   43 +-
 datapath/linux/compat/include/linux/skbuff.h |   16 +-
 datapath/linux/compat/skbuff-openvswitch.c   |   27 +-
 datapath/vport.c                             |  102 +++-
 datapath/vport.h                             |   27 +-
 include/linux/openvswitch.h                  |   39 +-
 lib/byte-order.h                             |   12 +
 lib/classifier.c                             |   62 ++
 lib/classifier.h                             |    3 +
 lib/dpif-linux.c                             |  676 +++++++++++++--------
 lib/dpif-linux.h                             |    3 +-
 lib/dpif-netdev.c                            |   90 ++-
 lib/dpif.c                                   |    1 +
 lib/flow.c                                   |  842 +++++++++++++++-----------
 lib/flow.h                                   |  208 ++++++-
 lib/match.c                                  |    2 +-
 lib/nx-match.c                               |    2 +-
 lib/odp-execute.c                            |    1 +
 lib/odp-util.c                               |   83 +--
 lib/odp-util.h                               |    4 +-
 lib/ofp-util.c                               |    8 +-
 lib/packets.h                                |   52 +-
 ofproto/bond.c                               |   81 ++-
 ofproto/ofproto-dpif-monitor.h               |    1 +
 ofproto/ofproto-dpif-upcall.c                |  437 ++++++-------
 ofproto/ofproto-dpif-xlate.c                 |  443 ++++++++++++--
 ofproto/ofproto-dpif-xlate.h                 |   18 +-
 ofproto/ofproto-dpif.c                       |   62 +-
 ofproto/ofproto-dpif.h                       |    1 +
 ofproto/ofproto-provider.h                   |    2 +
 ofproto/ofproto.c                            |   62 +-
 tests/ofproto-dpif.at                        |   22 +-
 tests/test-classifier.c                      |    2 +-
 tests/test-odp.c                             |    3 +-
 tests/test-sflow.c                           |    1 +
 39 files changed, 2419 insertions(+), 1167 deletions(-)


hooks/post-receive
-- 
Open vSwitch



More information about the git mailing list