[ovs-git] Open vSwitch: datapath: Drop parameters from execute_actions(). (master)

dev at openvswitch.org dev at openvswitch.org
Fri Apr 29 17:49:24 UTC 2011


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  a4af24751b4127ae0c5cb25262b4069a7c0842ae (commit)
       via  e0e57990f6d59db44e47b3991b8bea7392b9f30b (commit)
       via  6f04e94a264edae76aa2bb44a9019e19b29d47a1 (commit)
       via  ebca7787e50327716e2c2ea4a7cc2656fd4e9fd5 (commit)
      from  73976ebdb054d1a5a2fedb925304b5e0956c20d1 (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 a4af24751b4127ae0c5cb25262b4069a7c0842ae
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=a4af24751b4127ae0c5cb25262b4069a7c0842ae
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Drop parameters from execute_actions().
		
It's (almost) always easier to understand a function with fewer parameters,
so this removes the now-redundant sw_flow_key and actions parameters from
execute_actions(), since they can be found through OVS_CB(skb)->flow now.

This also necessarily moves loop detection into execute_actions().
Otherwise, the flow's actions could have changed between the time that the
loop was detected and the time that it was suppressed, which would mean
that the wrong (version of the) flow would get suppressed.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Jesse Gross <jesse at nicira.com>


commit e0e57990f6d59db44e47b3991b8bea7392b9f30b
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=e0e57990f6d59db44e47b3991b8bea7392b9f30b
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Make every packet passing through the datapath have an sw_flow.
		
This way, it's always possible to get a packet's key or hash simply by
looking at its 'flow', without considering whether the packet came from
userspace or from a vport.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Jesse Gross <jesse at nicira.com>


commit 6f04e94a264edae76aa2bb44a9019e19b29d47a1
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=6f04e94a264edae76aa2bb44a9019e19b29d47a1
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Avoid freeing wild pointer in corner case.
		
In odp_flow_cmd_new_or_set(), if flow_actions_alloc() fails in the "new
flow" case, then flow_put() will kfree() the new flow's 'sf_acts' pointer,
but nothing has initialized that pointer.  Initialize the pointer to NULL
to avoid the problem.

Found by inspection.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Jesse Gross <jesse at nicira.com>


commit ebca7787e50327716e2c2ea4a7cc2656fd4e9fd5
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=ebca7787e50327716e2c2ea4a7cc2656fd4e9fd5
Author: Ben Pfaff <blp at nicira.com>
		
datapath: No need to zero cb anymore in odp_packet_cmd_execute().
		
Before commit 3f19d399f "datapath: Fix mysterious GRE-over-IPSEC problems,"
'packet' in opd_packet_cmd_execute() was an skb cloned from one created by
Netlink, so its cb member wasn't necessarily zeroed.  But that commit
changed 'packet' to be freshly allocated with __dev_alloc_skb(), which
means that cb is zeroed, so we don't have to do it again.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Jesse Gross <jesse at nicira.com>


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

Summary of changes:
 datapath/actions.c      |  107 +++++++++++++++++++++++++++--------------------
 datapath/actions.h      |    6 +--
 datapath/datapath.c     |   61 ++++++++++----------------
 datapath/flow.c         |    1 +
 datapath/loop_counter.c |    5 +-
 datapath/loop_counter.h |    4 +-
 6 files changed, 93 insertions(+), 91 deletions(-)


hooks/post-receive
-- 
Open vSwitch



More information about the git mailing list