sliver-openvswitch.git
10 years agoMerge branch 'mainstream'
Giuseppe Lettieri [Tue, 5 Nov 2013 08:56:15 +0000 (09:56 +0100)]
Merge branch 'mainstream'

10 years agoofproto: report the correct set of actions for group features
Ben Pfaff [Tue, 5 Nov 2013 05:14:53 +0000 (21:14 -0800)]
ofproto: report the correct set of actions for group features

do not report OF1.1 bits (set_dl_src etc) as group features is OF1.2+.

LINC seems to use 1<<31 for experimenter action type but i failed to
find it in the spec.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
[blp@nicira.com added a comment to ofp-util.h]
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agocfm: Add ovsdb column "cfm_flap_count".
alex wang [Tue, 22 Oct 2013 05:16:23 +0000 (05:16 +0000)]
cfm: Add ovsdb column "cfm_flap_count".

This commit adds a new ovsdb column "cfm_flap_count".  It counts the
number of cfm fault flaps since boot.

Signed-off-by: Alex Wang <alexw@nicira.com>
Signed-off-by: Ethan Jackson <ethan@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
10 years agoOPENFLOW-1.1+: Groups are now supported.
Ben Pfaff [Mon, 4 Nov 2013 19:12:57 +0000 (11:12 -0800)]
OPENFLOW-1.1+: Groups are now supported.

CC: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Simon Horman <horms@verge.net.au>
10 years agodpif-netdev: Change a variable name.
Gurucharan Shetty [Tue, 29 Oct 2013 09:34:15 +0000 (02:34 -0700)]
dpif-netdev: Change a variable name.

'struct dp_netdev_flow' is currently being instantiated as 'flow'.
An upcoming commit introduces a classifier to dpif-netdev
which uses 'struct flow' at a few places and that can cause
confusion while reading code.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
10 years agoclassifier: Update thread safety notes.
Ben Pfaff [Wed, 25 Sep 2013 22:38:57 +0000 (15:38 -0700)]
classifier: Update thread safety notes.

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agodaemon: Precisely document signals that cause the monitor to restart.
Ben Pfaff [Fri, 11 Oct 2013 23:52:50 +0000 (16:52 -0700)]
daemon: Precisely document signals that cause the monitor to restart.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Joe Stringer <joestringer@nicira.com>
10 years agoovs-controller: Rename test-controller and do not install or package.
Ben Pfaff [Fri, 11 Oct 2013 23:24:41 +0000 (16:24 -0700)]
ovs-controller: Rename test-controller and do not install or package.

Too many users have incorrectly assumed that ovs-controller is a necessary
or desirable part of an Open vSwitch deployment.  This commit should fix
the problem by renaming it test-controller and removing it from the
default install and from packaging.

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agonetdev-linux: Skip miimon execution when disabled
Joe Stringer [Fri, 1 Nov 2013 23:34:29 +0000 (16:34 -0700)]
netdev-linux: Skip miimon execution when disabled

When dealing with a large number of ports, one of the performance
bottlenecks is that we loop through all netdevs in the main loop. Miimon
is a contributor to this, checking all devices even if it has never been
enabled.

This patch introduces a counter for the number of netdevs with miimon
configured. If this is 0, then we skip miimon_run() and miimon_wait().
In a test environment of 5000 internal ports and 50 tunnel ports with
bfd, this reduces CPU usage from about 50% to about 45%.

Signed-off-by: Joe Stringer <joestringer@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto-dpif: Support weight for select groups
Simon Horman [Wed, 30 Oct 2013 09:17:20 +0000 (18:17 +0900)]
ofproto-dpif: Support weight for select groups

Signed-off-by: Simon Horman <horms@verge.net.au>
[blp@nicira.com adjusted this for highest random weight scoring and
 updated the test]
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto-dpif: Implement translation of select groups.
Simon Horman [Wed, 30 Oct 2013 09:17:19 +0000 (18:17 +0900)]
ofproto-dpif: Implement translation of select groups.

Select bucket from those that are alive based on a hash of the destination
ethernet address of the packet.

Support for weights is proposed by a subsequent patch.

The selection is based on a hash of the destination ethernet
address of the flow. It should be possible to extend
this to cover a hash of user-specified elements of the flow.

Signed-off-by: Simon Horman <horms@verge.net.au>
[blp@nicira.com replaced bucket selection by "highest random weight"
 method]
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto-dpif: Translation of fast failover groups
Simon Horman [Wed, 30 Oct 2013 09:17:18 +0000 (18:17 +0900)]
ofproto-dpif: Translation of fast failover groups

Fast failover groups use the actions in
the first bucket that is alive.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto: Add test for flow mod with groups.
Simon Horman [Wed, 30 Oct 2013 09:17:17 +0000 (18:17 +0900)]
ofproto: Add test for flow mod with groups.

Test that flow mod with groups succeeds only if the group exists.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto: Add del groups test
Simon Horman [Wed, 30 Oct 2013 09:17:16 +0000 (18:17 +0900)]
ofproto: Add del groups test

Lightly exercise del-groups

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto: Add group desc and stats tests
Simon Horman [Wed, 30 Oct 2013 09:17:15 +0000 (18:17 +0900)]
ofproto: Add group desc and stats tests

Lightly exercise group desc and stats

Signed-off-by: Simon Horman <horms@verge.net.au>
[blp@nicira.com found that a new test segfaulted and folded in fixes]
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto-dpif: Translation of indirect and all groups
Simon Horman [Wed, 30 Oct 2013 09:17:14 +0000 (18:17 +0900)]
ofproto-dpif: Translation of indirect and all groups

Allow translation of indirect and all groups.  Also allow insertion of
indirect and all groups by changing the maximum permitted number in the
groups table from 0 to OFPG_MAX.

Implementation note:

After translating the actions for each bucket ctx->flow is reset to its
state prior to translation of the buckets actions. This is equivalent to
cloning the bucket before applying actions. This is my interpretation of the
OpenFlow 1.3.2 specification section 5.6.1 Group Types, which includes the
following text. I believe there is room for other interpretations.

* On all groups: "The packet is effectively cloned for each bucket; one
  packet is processed for each bucket of the group."
* On indirect groups: "This group type is effectively identical to an
  all group with one bucket."

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto: Break out resubmit resource checking
Simon Horman [Wed, 30 Oct 2013 09:17:13 +0000 (18:17 +0900)]
ofproto: Break out resubmit resource checking

Break out resubmit resource checking into a helper function
xlate_resubmit_resource_check() and use this new function.
This is to allow the check to be re-used by a subsequent patch.

Suggested-by: Ben Pfaff <blp@nicira.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto: Add enum ofp_group_capabilities
Simon Horman [Wed, 30 Oct 2013 09:17:12 +0000 (18:17 +0900)]
ofproto: Add enum ofp_group_capabilities

These values will be used by subsequent patches

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto: Advertise all supported OpenFlow actions in group features
Simon Horman [Wed, 30 Oct 2013 09:17:11 +0000 (18:17 +0900)]
ofproto: Advertise all supported OpenFlow actions in group features

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agonicira-ext: Update comment.
Ben Pfaff [Sat, 2 Nov 2013 18:36:50 +0000 (11:36 -0700)]
nicira-ext: Update comment.

The ARP headers have been acceptable as NXAST_REG_MOVE destinations since
commit f6c8a6b163 (Add software switch support for modifying ARP headers
in OpenFlow.)

Reported-by: Anupam Chanda <achanda@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Joe Stringer <joestringer@nicira.com>
10 years agoofproto-dpif-xlate: Handle oversized actions more gracefully.
Ben Pfaff [Sat, 2 Nov 2013 15:43:14 +0000 (08:43 -0700)]
ofproto-dpif-xlate: Handle oversized actions more gracefully.

If the datapath actions exceed the maximum size of a Netlink attribute
(about 64 kB), then previously we would assert-fail (before commit
542024c4c3d36 "ofproto-dpif-xlate: Suppress oversize datapath actions.")
or just drop all of them (after that commit).  This commit makes OVS cope
by slow-pathing the flow and executing all of its actions in userspace.

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoFAQ: Elaborate further on how one drops packets with OpenFlow.
Ben Pfaff [Wed, 9 Oct 2013 22:22:15 +0000 (15:22 -0700)]
FAQ: Elaborate further on how one drops packets with OpenFlow.

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agobfd: Improve log message.
Ben Pfaff [Mon, 30 Sep 2013 21:47:41 +0000 (14:47 -0700)]
bfd: Improve log message.

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoflow: Fill in ->l7 in flow_compose().
Ben Pfaff [Mon, 30 Sep 2013 21:46:50 +0000 (14:46 -0700)]
flow: Fill in ->l7 in flow_compose().

flow_extract() fills in ->l7 but flow_compose() wasn't doing it, which
confused bfd_process_packet() when invoked via the ofproto/trace appctl
command.

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto-dpif-upcall: Give each miss_handler thread a unique name.
Ben Pfaff [Sat, 2 Nov 2013 13:59:30 +0000 (06:59 -0700)]
ofproto-dpif-upcall: Give each miss_handler thread a unique name.

This may occasionally make debugging easier.

Suggested-by: Keith Amidon <keith@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
10 years agoutil: Allow set_subprogram_name() to take a printf() format string.
Ben Pfaff [Sat, 2 Nov 2013 13:55:40 +0000 (06:55 -0700)]
util: Allow set_subprogram_name() to take a printf() format string.

This will be convenient in an upcoming commit.

I had to add -Wno-format-zero-length to suppress a GCC warning about a
zero-length format string in this monitor_daemon() call:
    set_subprogram_name("");
I don't know what that warning is good for anyway, and I guess the Clang
developers don't either because Clang didn't warn.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
10 years agoofproto-provider: Fix typo in comment.
Ben Pfaff [Mon, 16 Sep 2013 16:43:15 +0000 (09:43 -0700)]
ofproto-provider: Fix typo in comment.

Reported-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto: Verify compatibility of liveness of groups with their type
Simon Horman [Wed, 30 Oct 2013 09:17:10 +0000 (18:17 +0900)]
ofproto: Verify compatibility of liveness of groups with their type

Require liveness for fast-failover groups as it is mandated by OpenFlow1.3.
Allow livness for select groups which is in keeping with OpenFlow1.3.
Disallow liveness it for other group types.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto-dpif: Implement group callbacks
Simon Horman [Wed, 30 Oct 2013 09:17:09 +0000 (18:17 +0900)]
ofproto-dpif: Implement group callbacks

This is a first step towards implementing the dpif side of groups.

In order to be useful the action translation code needs
to be taught about groups.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoAdd OF11 SET MPLS LABEL and SET MPLS TC actions.
Jarno Rajahalme [Thu, 24 Oct 2013 20:19:34 +0000 (13:19 -0700)]
Add OF11 SET MPLS LABEL and SET MPLS TC actions.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Reviewed-by: Simon Horman <horms@verge.net.au>
10 years agolib/ofp-actions: Warn on deprecated actions.
Jarno Rajahalme [Thu, 24 Oct 2013 20:19:33 +0000 (13:19 -0700)]
lib/ofp-actions: Warn on deprecated actions.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto: Centralize action checking, doing it at decode time.
Ben Pfaff [Sat, 2 Nov 2013 04:45:28 +0000 (21:45 -0700)]
ofproto: Centralize action checking, doing it at decode time.

Jarno pointed out that modify_flows__() didn't really need to check every
instance of the flow separately.  After some further investigation I
decided that this was even more of an improvement.

CC: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
10 years agoofp-util: Enforce OpenFlow 1.1+ table_id requirements in flow_mod messages.
Ben Pfaff [Sat, 2 Nov 2013 05:03:19 +0000 (22:03 -0700)]
ofp-util: Enforce OpenFlow 1.1+ table_id requirements in flow_mod messages.

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofp-util: Move ofputil_check_output_port() to ofp-actions, rename.
Ben Pfaff [Wed, 30 Oct 2013 23:31:28 +0000 (16:31 -0700)]
ofp-util: Move ofputil_check_output_port() to ofp-actions, rename.

This function is related to actions to ofp-actions seems like a logical
place for it.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
10 years agoofp-actions: Send deprecated actions as set fields.
Jarno Rajahalme [Thu, 24 Oct 2013 20:19:32 +0000 (13:19 -0700)]
ofp-actions: Send deprecated actions as set fields.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofp-actions: Simplify interface and internal structure.
Jarno Rajahalme [Thu, 24 Oct 2013 20:19:31 +0000 (13:19 -0700)]
ofp-actions: Simplify interface and internal structure.

This makes later changes simpler.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofp-actions: Set-Field OF 1.0/1.1 compatibility.
Jarno Rajahalme [Thu, 24 Oct 2013 20:19:30 +0000 (13:19 -0700)]
ofp-actions: Set-Field OF 1.0/1.1 compatibility.

Output set field actions as standard OF1.0/1.1 set actions or to
reg_load instructions, when a compatible set action(s) do not exist.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoNative Set-Field action.
Jarno Rajahalme [Thu, 24 Oct 2013 20:19:29 +0000 (13:19 -0700)]
Native Set-Field action.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoovsdb-tool: replace tabs with spaces
Alexandru Copot [Fri, 1 Nov 2013 21:20:56 +0000 (23:20 +0200)]
ovsdb-tool: replace tabs with spaces

Signed-off-by: Alexandru Copot <alex.mihai.c@gmail.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoOXM inspired match field names.
Jarno Rajahalme [Thu, 24 Oct 2013 20:19:28 +0000 (13:19 -0700)]
OXM inspired match field names.

Adds OXM inspired aliases for match fields that don't have them
already ("ip_proto", "ip_ecn", "ip_dscp", and "tunnel_id").

"ip_dscp" replaces the earlier undocumented "nw_tos_shifted",
and takes the DSCP value (0-63), which is then shifted
appropriately when applied to an IP packet.
The number of bits for this field is fixed from 8 to 6.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agometa-flow: Inline mf_from_id().
Jarno Rajahalme [Thu, 24 Oct 2013 20:19:27 +0000 (13:19 -0700)]
meta-flow: Inline mf_from_id().

mf_from_id accesses a static table, so the compiler should be able to
completely optimize it away.

Also use OVS_PACKED_ENUM to waste less space.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoOF 1.1 pop vlan compatibility.
Jarno Rajahalme [Thu, 24 Oct 2013 20:19:26 +0000 (13:19 -0700)]
OF 1.1 pop vlan compatibility.

Store the original action code with the strip vlan action,
so that it can be printed back properly.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto-dpif-xlate: Remove obsolete comment.
Ben Pfaff [Fri, 1 Nov 2013 21:08:45 +0000 (14:08 -0700)]
ofproto-dpif-xlate: Remove obsolete comment.

Nothing about the existing code in this function cares whether Goto-Table
is the last action.

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoOF 1.1 set vlan vid/pcp compatibility.
Jarno Rajahalme [Thu, 24 Oct 2013 20:19:25 +0000 (13:19 -0700)]
OF 1.1 set vlan vid/pcp compatibility.

OpenFlow 1.1 set vlan actions only modify existing vlan
headers, while OF 1.0 actions push a new vlan header if one
does not exist already.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agovtep: add fault notifications to physical switch and ports
Bruce Davie [Fri, 1 Nov 2013 17:53:23 +0000 (10:53 -0700)]
vtep: add fault notifications to physical switch and ports

Add a "switch_fault" and "port_fault" column to the appropriate
tables in the VTEP schema.

Signed-off-by: Bruce Davie <bdavie@vmware.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoovsdb: Do not leak error in ovsdb_server_compact()
Thomas Graf [Fri, 1 Nov 2013 16:44:52 +0000 (17:44 +0100)]
ovsdb: Do not leak error in ovsdb_server_compact()

Signed-off-by: Thomas Graf <tgraf@redhat.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto: Calculate some group stats at ofproto layer
Simon Horman [Wed, 30 Oct 2013 09:17:08 +0000 (18:17 +0900)]
ofproto: Calculate some group stats at ofproto layer

It seems to make sense to set the reference count and number
of buckets at the protocol layer as it is known there.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto: Add group features test
Simon Horman [Wed, 30 Oct 2013 09:17:07 +0000 (18:17 +0900)]
ofproto: Add group features test

Lightly exercise group features

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto: Fail flow mod if it references a non-existent group
Simon Horman [Wed, 30 Oct 2013 09:17:06 +0000 (18:17 +0900)]
ofproto: Fail flow mod if it references a non-existent group

As per the OpenFlow1.3.2 specification, a flow mod should fail
if it references a non-existent group.

The change in this patch appears to be necessary to satisfy that
constraint. It is unclear to me whether or not is is sufficient.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto: Delete relevant flows on group del
Simon Horman [Wed, 30 Oct 2013 09:17:05 +0000 (18:17 +0900)]
ofproto: Delete relevant flows on group del

As pert the OpenFlow1.3.2 specification, delete flows that
reference a group when it is deleted.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agometa-flow: Make mf_parse() report bad masks as errors.
Ben Pfaff [Fri, 1 Nov 2013 00:18:38 +0000 (17:18 -0700)]
meta-flow: Make mf_parse() report bad masks as errors.

Reported-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoReturn no protocols if mask is supplied for unmaskable match
Simon Horman [Thu, 31 Oct 2013 04:00:02 +0000 (13:00 +0900)]
Return no protocols if mask is supplied for unmaskable match

Currently if a mask is supplied for an unmaskable match then NOT_REACHED()
is called. The effect of this for a user calling ovs-vsctl with a match
that includes a mask which is not permitted is to politely inform them of
the error of their ways by calling abort and segfaulting.

This patch takes an alternate approach to return no protocols which has the
has the effect when that ovs-vsctl is called with a match that includes a
mask which is not permitted an error message of the following form is
displayed.

ovs-ofctl: none of the usable flow formats (none) is among the allowed flow formats (OpenFlow10,NXM)

This patch also updates the ovs-ofctl test to test matches with masks
where possible.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoovs-ofctl: Add icmp_code test
Simon Horman [Thu, 31 Oct 2013 04:00:01 +0000 (13:00 +0900)]
ovs-ofctl: Add icmp_code test

This corrects what appears to be a typo by replacing
a duplicate icmp_type test with an icmp_code test.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agodebian: Option to create tunnel through 'interfaces'.
Gurucharan Shetty [Thu, 31 Oct 2013 16:20:42 +0000 (09:20 -0700)]
debian: Option to create tunnel through 'interfaces'.

This is a port of commit 7b75828bf5654c (rhel: Option to create tunnel
through ifcfg scripts.) from rhel to debian's ifupdown script.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
10 years agodatapath: Use flow hash during flow lookup operation.
Pravin B Shelar [Wed, 30 Oct 2013 16:43:49 +0000 (09:43 -0700)]
datapath: Use flow hash during flow lookup operation.

Flow->hash can be used to detect hash collisions and avoid flow key
compare in flow lookup.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
10 years agoodp-util: Parse SCTP correctly.
Gurucharan Shetty [Wed, 30 Oct 2013 07:44:32 +0000 (00:44 -0700)]
odp-util: Parse SCTP correctly.

We should be looking at 'src_flow' instead of 'flow'. Otherwise,
parsing SCTP through odp_flow_key_to_mask will fail.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
10 years agodatapath: Simplify vport-netdev-hook compatibility code.
Pravin B Shelar [Tue, 29 Oct 2013 21:10:26 +0000 (14:10 -0700)]
datapath: Simplify vport-netdev-hook compatibility code.

Move compat code to netdev_rx_handler_register() definition.
It also adds type safety for netdev-hook.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
10 years agoclassifier: Rename struct cls_table as cls_subtable.
Jarno Rajahalme [Tue, 29 Oct 2013 23:39:52 +0000 (16:39 -0700)]
classifier: Rename struct cls_table as cls_subtable.

The naming of the classifier table has been a source of confusion,
since each OpenFlow table is implemented as a classifier, which
consists of multiple (sub)tables.  This name change hopefully makes
classifier related discussion a bit less confusing.

For consistency, relevant field names as well as the function and
variable names have been renamed in similar fashion.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto: Add support for sending OFPTYPE_ROLE_STATUS messages.
Alexandru Copot [Tue, 22 Oct 2013 08:40:03 +0000 (11:40 +0300)]
ofproto: Add support for sending OFPTYPE_ROLE_STATUS messages.

When a controller changes its role to MASTER, the others are marked
as SLAVE. This patch makes it possible to notify the controllers
of this change.

Signed-off-by: Alexandru Copot <alex.mihai.c@gmail.com>
Cc: Daniel Baluta <dbaluta@ixiacom.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoinclude/openflow: Add OpenFlow 1.4 header file
Alexandru Copot [Tue, 22 Oct 2013 08:40:02 +0000 (11:40 +0300)]
include/openflow: Add OpenFlow 1.4 header file

It contains only Set-Async-Config and Role status message definitions.

Signed-off-by: Alexandru Copot <alex.mihai.c@gmail.com>
Cc: Daniel Baluta <dbaluta@ixiacom.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agovtep: Bring BFD specification in vtep.xml into sync with OVS.
Ben Pfaff [Tue, 29 Oct 2013 20:01:07 +0000 (13:01 -0700)]
vtep: Bring BFD specification in vtep.xml into sync with OVS.

A number of new key-value pairs have been added to the bfd and bfd_status
columns of the OVS schema since the VTEP schema was created. To aid
interoperability between OVS instances and VTEPs, this patch brings
the VTEP schema into line with that of OVS.

CC: Bruce Davie <bdavie@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoImplement OFPT_QUEUE_GET_CONFIG_REQUEST and OFPT_QUEUE_GET_CONFIG_REPLY.
Venkitachalam Gopalakrishnan [Thu, 24 Oct 2013 22:54:03 +0000 (15:54 -0700)]
Implement OFPT_QUEUE_GET_CONFIG_REQUEST and OFPT_QUEUE_GET_CONFIG_REPLY.

Open vSwitch has never implemented this request and reply, even though they
have been in OpenFlow since version 1.0.  This commit adds an
implementation.

Signed-off: Venkitachalam Gopalakrishnan <gops@vmware.com>
Co-authored-by: Ben Pfaff <blp@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Joe Stringer <joestringer@nicira.com>
10 years agoopenflow-1.2.h: Remove redundant definition of OFPST12_GROUP_FEATURES.
Ben Pfaff [Thu, 24 Oct 2013 21:34:17 +0000 (14:34 -0700)]
openflow-1.2.h: Remove redundant definition of OFPST12_GROUP_FEATURES.

Message types are defined in ofp-msgs.h these days.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Joe Stringer <joestringer@nicira.com>
10 years agovswitch.xml: Improve documentation for BFD.
Ben Pfaff [Tue, 29 Oct 2013 19:41:17 +0000 (12:41 -0700)]
vswitch.xml: Improve documentation for BFD.

This update improves the BFD documentation in a few ways:

   - Demand mode is now supported.

   - Wordsmithing, spelling, etc.

   - Attempt to better explain decay_min_rx, forwarding_if_rx, and
     cpath_down.

   - Break into subgroups for configuration and status, to better explain
     which party sets which fields.

   - Reindents to match the rest of vswitch.xml.

Because of the reindentation, this patch may be easier to view with spacing
changes suppressed.

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoTCP flags matching support.
Jarno Rajahalme [Mon, 28 Oct 2013 20:54:40 +0000 (13:54 -0700)]
TCP flags matching support.

    tcp_flags=flags/mask
        Bitwise  match on TCP flags.  The flags and mask are 16-bit num‐
        bers written in decimal or in hexadecimal prefixed by 0x.   Each
        1-bit  in  mask requires that the corresponding bit in port must
        match.  Each 0-bit in mask causes the corresponding  bit  to  be
        ignored.

        TCP  protocol  currently  defines  9 flag bits, and additional 3
        bits are reserved (must be transmitted as zero), see  RFCs  793,
        3168, and 3540.  The flag bits are, numbering from the least
significant bit:

        0: FIN No more data from sender.

        1: SYN Synchronize sequence numbers.

        2: RST Reset the connection.

        3: PSH Push function.

        4: ACK Acknowledgement field significant.

        5: URG Urgent pointer field significant.

        6: ECE ECN Echo.

        7: CWR Congestion Windows Reduced.

        8: NS  Nonce Sum.

        9-11:  Reserved.

        12-15: Not matchable, must be zero.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
10 years agoWiden TCP flags handling.
Jarno Rajahalme [Mon, 28 Oct 2013 20:54:39 +0000 (13:54 -0700)]
Widen TCP flags handling.

Widen TCP flags handling from 7 bits (uint8_t) to 12 bits (uint16_t).
The kernel interface remains at 8 bits, which makes no functional
difference now, as none of the higher bits is currently of interest
to the userspace.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
10 years agoMerge branch 'mainstream'
Giuseppe Lettieri [Fri, 25 Oct 2013 20:15:00 +0000 (22:15 +0200)]
Merge branch 'mainstream'

10 years agolib: Remove unreachable JSONRPC case
Joe Stringer [Tue, 22 Oct 2013 17:03:08 +0000 (10:03 -0700)]
lib: Remove unreachable JSONRPC case

jsonrpc_session_recv() handles echo replies prior to this.

Found by inspection.

Signed-off-by: Joe Stringer <joestringer@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agojsonrpc: Only compose message to log if it's really going to be logged.
Ben Pfaff [Fri, 25 Oct 2013 16:22:37 +0000 (09:22 -0700)]
jsonrpc: Only compose message to log if it's really going to be logged.

This suppresses a testsuite failure when the testsuite is run from a
directory whose name contains a non-ASCII character.  I'd rather fix the
problem but webpages like the following make it sound difficult or
impossible on Python 2.x: http://stackoverflow.com/a/11742928

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agotests: Skip Python daemon tests in directory with non-ASCII name.
Ben Pfaff [Fri, 25 Oct 2013 16:22:36 +0000 (09:22 -0700)]
tests: Skip Python daemon tests in directory with non-ASCII name.

The Debian autobuild machines run their builds inside a top-level
directory named /«BUILDDIR».  That name contains two non-ASCII characters
that cause the Python code in the interface-reconfigure and ovs-monitor-ipsec
tests to fail.  The problem seems to be related to the locale, because
switching to a UTF-8 locale allows the tests to proceed farther but does
not fix the problem.  I was not able to easily fix the actual problem.
Web searches turn up articles that imply that the problem is not
reasonably fixable with Python 2.x, e.g.:
    http://stackoverflow.com/a/11742928

This commit instead avoids the problem by skipping these tests if the
current working directory's name contains non-ASCII characters.  This is
a legitimate solution only because interface-reconfigure and
ovs-monitor-ipsec run from initscripts and thus their current working
directories are system directories.  (Also, the current working directory
matters much less when run in a real environment because the --root-prefix
option that causes the issue is not used in a real environment.)

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agotests: use full table names in ovs-vsctl commands
Ansis Atteka [Thu, 24 Oct 2013 22:36:29 +0000 (15:36 -0700)]
tests: use full table names in ovs-vsctl commands

It is more obvious to figure out what exactly test is doing
if ovs-vsctl commands contain full table names.

Signed-off-by: Ansis Atteka <aatteka@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto: Report multipart buffer overflow.
YAMAMOTO Takashi [Thu, 24 Oct 2013 03:07:44 +0000 (12:07 +0900)]
ofproto: Report multipart buffer overflow.

Because our size of the multipart request buffer is effectively 0,
always report multipart buffer overflow error for multipart requests
with "more" flag set.

While this might be simpler if done in ofp-msgs.c, i put this in
ofproto.c because it seems like a better place to implement the
buffering logic if/when desirable.

An option question: what to do for the following messages with the
same xid?  especially for the last message which doesn't have the
"more" flag set?  it would be neater to detect and drop them.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto: Report correct errors for unsupported stats/multipart requests.
YAMAMOTO Takashi [Thu, 24 Oct 2013 03:07:43 +0000 (12:07 +0900)]
ofproto: Report correct errors for unsupported stats/multipart requests.

The correct error in that case is OFPERR_OFPBRC_BAD_STAT,
not OFPERR_OFPBRC_BAD_TYPE.

Currently, the only example of unsupported stats/multipart request is
OFPTYPE_TABLE_FEATURES_STATS_REQUEST.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agopackage: Make Fedora RPMs build after vtep changes.
Kyle Mestery [Thu, 24 Oct 2013 19:35:14 +0000 (15:35 -0400)]
package: Make Fedora RPMs build after vtep changes.

Add the appropriate vtep files into the Fedora RPM build
to make this work on master again.

Signed-off-by: Kyle Mestery <kmestery@cisco.com>
Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
10 years agoofp-print: Update a printf format for the recent pin.total_len change.
YAMAMOTO Takashi [Thu, 24 Oct 2013 02:58:54 +0000 (11:58 +0900)]
ofp-print: Update a printf format for the recent pin.total_len change.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoconnmgr: Fix an abort.
YAMAMOTO Takashi [Thu, 24 Oct 2013 02:58:53 +0000 (11:58 +0900)]
connmgr: Fix an abort.

Fix a problem introduced by commit cfa955b083c5617212a29a03423e063ff6cb350a.
(connmgr: Fix packet-in reason for OpenFlow1.3 table-miss flow entries.).

ofconn might not be connected here, in that case
ofputil_protocol_to_ofp_version aborts.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agodatapath: Enable all GSO features on internal port.
Pravin B Shelar [Fri, 25 Oct 2013 20:42:12 +0000 (13:42 -0700)]
datapath: Enable all GSO features on internal port.

OVS already can handle all types of segmentation offloads that
are supported by the kernel.
Following patch specifically enables UDP and IPV6 segmentation
offloads.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
10 years agoofproto: Use ofproto_check_ofpacts() from modify_flows__().
Ben Pfaff [Fri, 25 Oct 2013 21:00:43 +0000 (14:00 -0700)]
ofproto: Use ofproto_check_ofpacts() from modify_flows__().

Until now this code has called ofpacts_check() directly, but that omits
the additional check that the ofproto_check_ofpacts() wrapper includes.

Reported-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
10 years agoofproto: Avoid abandoning an ofopgroup without committing it.
Ben Pfaff [Fri, 25 Oct 2013 20:31:50 +0000 (13:31 -0700)]
ofproto: Avoid abandoning an ofopgroup without committing it.

Commit e3b5693319c (Fix table checking for goto table instruction.) moved
action checking into modify_flows__(), for good reason, but as a side
effect made modify_flows__() abandon and never commit the ofopgroup that it
started, if action checking failed.  This commit fixes the problem.

The following commands, run under "make sandbox", illustrate the problem.
Without this change, the final command hangs because the barrier request
that ovs-ofctl sends never gets a response (because barriers wait for all
ofopgroups to complete, which never happens).  With this commit, the
commands complete quickly:

ovs-vsctl add-br br0
ovs-vsctl set bridge br0 protocols=OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13
ovs-ofctl add-flow -O OpenFlow11 br0 table=1,action=goto_table:2
ovs-ofctl add-flow -O OpenFlow11 br0 table=1,action=goto_table:1

Reported-by: Jarno Rajahalme <jrajahalme@vmware.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agodatapath: Per cpu flow stats.
Pravin B Shelar [Wed, 23 Oct 2013 21:34:39 +0000 (14:34 -0700)]
datapath: Per cpu flow stats.

With mega flow implementation ovs flow can be shared between
multiple CPUs which makes stats updates highly contended
operation. Following patch allocates separate stats for each
CPU to make stats update scalable.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
10 years agolib/ofp-actions: Enforce action consistency.
Jarno Rajahalme [Wed, 23 Oct 2013 19:52:57 +0000 (12:52 -0700)]
lib/ofp-actions: Enforce action consistency.

OpenFlow 1.1+ specs encourage switches to verify action consistency
at flow setup time.  Implement this for OpenFlow 1.1+ only to not
break any current OF 1.0 based use.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofp-actions: Make union ofp_action more generic.
Ben Pfaff [Wed, 23 Oct 2013 20:46:57 +0000 (13:46 -0700)]
ofp-actions: Make union ofp_action more generic.

Make union ofp_action more generic by allowing it to be used for
all actions.  OFP_ACTION_ALIGN (which is 8, as the sizeof(union
ofp_action) used to be) is now used where sizeof union ofp_action
was used before.  On the same note, variable name 'n_actions' is
changed to 'max_actions' as the number of actions cannot be simply
divided when actions have various sizes.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoAdd OF11 SET IP TTL action.
Jarno Rajahalme [Wed, 23 Oct 2013 00:20:44 +0000 (17:20 -0700)]
Add OF11 SET IP TTL action.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoAdd OF11 set IPv4 ECN action.
Jarno Rajahalme [Wed, 23 Oct 2013 00:20:43 +0000 (17:20 -0700)]
Add OF11 set IPv4 ECN action.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoAllow OFPACT_SET_IP_DSCP to act on both IPv4 and IPv6 packets.
Ben Pfaff [Wed, 23 Oct 2013 16:58:34 +0000 (09:58 -0700)]
Allow OFPACT_SET_IP_DSCP to act on both IPv4 and IPv6 packets.

This removes semantic differences between different OpenFlow
versions, making it easier to translate between them.
Also, rename OFPACT_SET_IPV4_DSCP to OFPACT_SET_IP_DSCP.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoFix ovs-ofctl documentation.
Jarno Rajahalme [Wed, 23 Oct 2013 00:20:40 +0000 (17:20 -0700)]
Fix ovs-ofctl documentation.

State that if decrementing makes a TTL zero, controller notifications
may be sent.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agopinsched: Eliminate function callback in interface.
Ben Pfaff [Wed, 23 Oct 2013 04:58:58 +0000 (21:58 -0700)]
pinsched: Eliminate function callback in interface.

I'm not a fan of function callbacks because I feel that they obscure
interfaces.  This eliminates the function callback used until now in
the pinsched code.

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoconnmgr: Fix packet-in reason for OpenFlow1.3 table-miss flow entries.
YAMAMOTO Takashi [Wed, 23 Oct 2013 04:50:23 +0000 (21:50 -0700)]
connmgr: Fix packet-in reason for OpenFlow1.3 table-miss flow entries.

As per spec, make packet-in reason for OpenFlow1.3 table-miss flow
entries no_match rather than action.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agofail-open: Add function to identify fail-open's flows.
Ben Pfaff [Wed, 23 Oct 2013 04:36:22 +0000 (21:36 -0700)]
fail-open: Add function to identify fail-open's flows.

This seems slightly cleaner than embedding this logic directing into
ofproto-dpif, since it is an interface that theoretically could be useful
to other ofproto providers.

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofp-util: Use correct cookie value in "packet_in"s when no flow involved.
Ben Pfaff [Tue, 22 Oct 2013 23:57:46 +0000 (16:57 -0700)]
ofp-util: Use correct cookie value in "packet_in"s when no flow involved.

OpenFlow 1.3 uses all-1-bits in a packet_in to indicate that the packet_in
was not generated by a flow, but Open vSwitch incorrectly used 0.  This
fixes the problem.

For consistency, this commit also changes NXT_PACKET_IN to use all-1-bits
for this case, event though NXT_PACKET_IN was previously defined to use
zero.  This doesn't appear to make a difference for the NVP controller; if
it causes a problem for some other controller then I will revert that part
of the change.

Found by inspection.

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofp-util: Improve comments on struct ofputil_packet_in.
Ben Pfaff [Tue, 22 Oct 2013 23:38:46 +0000 (16:38 -0700)]
ofp-util: Improve comments on struct ofputil_packet_in.

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoconnmgr: Move send_len from ofputil_packet_in to ofproto_packet_in.
Ben Pfaff [Tue, 22 Oct 2013 23:32:13 +0000 (16:32 -0700)]
connmgr: Move send_len from ofputil_packet_in to ofproto_packet_in.

send_len is not directly part of the OpenFlow packet_in message, at least
given that it is partially redundant with packet_len.  send_len is, rather,
a request to the connmgr that expresses how many bytes the action requested
be sent to the controller, but the connmgr cannot always honor it.

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoconnmgr: Move controller_id from ofputil_packet_in to ofproto_packet_in.
Ben Pfaff [Tue, 22 Oct 2013 23:21:10 +0000 (16:21 -0700)]
connmgr: Move controller_id from ofputil_packet_in to ofproto_packet_in.

controller_id isn't part of the OpenFlow message, so it shouldn't be in
ofputil_packet_in.

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto, ofp-util: Begin disentangling packet-in wire format and handling.
Ben Pfaff [Tue, 22 Oct 2013 23:16:31 +0000 (16:16 -0700)]
ofproto, ofp-util: Begin disentangling packet-in wire format and handling.

struct ofputil_packet_in mixes data included in OpenFlow packet_in messages
with data that used internally by ofproto and connmgr to queue and route
packet_ins.  This commit begins disentangling these purposes by adding a
new struct ofproto_packet_in that wraps struct ofputil_packet_in.  Adding
this new level of indirection causes a lot of code churn, so this commit
mainly takes care of that to make the remaining changes easier to read.

This commit does move the list node used for queuing packet_ins into the
new wrapper structure.

Signed-off-by: Ben Pfaff <blp@nicira.com>
10 years agodatapath: Add backport for __always_unused.
Jesse Gross [Tue, 22 Oct 2013 22:23:16 +0000 (15:23 -0700)]
datapath: Add backport for __always_unused.

Reported-by: Ben Pfaff <bpfaff@vmware.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
10 years agoUpdate AUTHORS
Joe Stringer [Mon, 21 Oct 2013 20:11:01 +0000 (13:11 -0700)]
Update AUTHORS

Signed-off-by: Joe Stringer <joestringer@nicira.com>
Signed-off-by: Ethan Jackson <ethan@nicira.com>
10 years agodpif-linux: collect and display mega flow mask stats
Andy Zhou [Mon, 21 Oct 2013 21:37:34 +0000 (14:37 -0700)]
dpif-linux: collect and display mega flow mask stats

Signed-off-by: Andy Zhou <azhou@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
10 years agodatapath: collect mega flow mask stats
Andy Zhou [Mon, 21 Oct 2013 21:37:33 +0000 (14:37 -0700)]
datapath: collect mega flow mask stats

Collect mega flow mask stats. ovs-dpctl show command can be used to
display them.

Signed-off-by: Andy Zhou <azhou@nicira.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
10 years agoclassifier: Fix a typo.
Gurucharan Shetty [Fri, 18 Oct 2013 08:23:34 +0000 (01:23 -0700)]
classifier: Fix a typo.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
10 years agoofproto: Fix coding style.
Gurucharan Shetty [Thu, 17 Oct 2013 11:25:19 +0000 (04:25 -0700)]
ofproto: Fix coding style.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>