aboutsummaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2014-12-15lib: Add test for library usageThomas Graf
This test covers inclusion of public header files and basic usage of the API such as vlog. Signed-off-by: Thomas Graf <tgraf@noironetworks.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-12-15lib: Move vconn.h to <openvswitch/vconn.h>Thomas Graf
Also moves definitions for struct vconn and pvconn to the public header. The provider interface is kept private. Signed-off-by: Thomas Graf <tgraf@noironetworks.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-12-15lib: Move vlog.h to <openvswitch/vlog.h>Thomas Graf
A new function vlog_insert_module() is introduced to avoid using list_insert() from the vlog.h header. Signed-off-by: Thomas Graf <tgraf@noironetworks.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-12-15list: Rename struct list to struct ovs_listThomas Graf
struct list is a common name and can't be used in public headers. Signed-off-by: Thomas Graf <tgraf@noironetworks.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-12-15lib: Move compiler.h to <openvswitch/compiler.h>Thomas Graf
The following macros are renamed to avoid conflicts with other headers: * WARN_UNUSED_RESULT to OVS_WARN_UNUSED_RESULT * PRINTF_FORMAT to OVS_PRINTF_FORMAT * NO_RETURN to OVS_NO_RETURN Signed-off-by: Thomas Graf <tgraf@noironetworks.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-12-11ofproto: add support of OFPR_GROUP as packet-in reason for OF1.4+Shu Shen
When the Packet-In message is triggered by a group action, OFPR_GROUP is passed internally as the reason. The wire_reason() function converts the reason to OFPR_ACTION if the wire protocol is earlier than OF1.4. The wire_reason() function also converts other unsupported reasons (i.e., OFPR_ACTION_SET and OFPR_PACKET_OUT) to OFPR_ACTION if it detects a wire protocol earlier than OF1.4. By default reason code OFPR_GROUP for Packet-In will be enabled for async messages as in ofconn_flush(). Upon a connection being established with a controller, the protocol version is checked and OFPR_GROUP will be disabled in async config if the protocol is lower than OF1.4. Any controller running OF1.4+ is still be able to enable OFPR_GROUP at its will without being affected by this check. The patch also includes tests cases for both OF1.3 and OF1.4 to ensure proper reason code is given for packet-in message triggered by group action. Signed-off-by: Shu Shen <shu.shen@radisys.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
2014-12-10ovs-router: non-Linux supportYAMAMOTO Takashi
Refactor ovs-router so that it can work with non-Linux platforms at least in some extent, using the existing route-table code as a fallback. Known restriction: for such platforms, "ovs/router/show" command does not show "Cached" kernel routes. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Acked-by: Pravin B Shelar <pshelar@nicira.com>
2014-12-08tests/classifier: Make test work in big-endian systems.Jarno Rajahalme
Change a test so that the result will be the same in both little-endian and big-endian systems by editing the test case so that only one bit differs. Reported-by: Mijo Safradin <mijo@linux.vnet.ibm.com> Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-12-05ofp-actions: Support "copy_field" ONF extension to OpenFlow 1.3.Ben Pfaff
ONF-JIRA: EXT-320 Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Thomas Graf <tgraf@noironetworks.com>
2014-12-05ofp-actions: Update "copy_field" to latest OF1.5 draft.Ben Pfaff
Since my original prototype, the oxm_id_len field was removed and replaced by 2 bytes of padding. ONF-JIRA: EXT-320 Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Thomas Graf <tgraf@noironetworks.com>
2014-12-05ofp-actions: Only set defined bits when encoding "load" actions.Ben Pfaff
Commit 7eb4b1f1d70345f ("ofp-actions: Support OF1.5 (draft) masked Set-Field, merge with reg_load.") introduced a bug in that a set_field action that set an entire field would be translated incorrectly to reg_load, if the field being set only occupied a portion of the bytes that it contains. For example, an MPLS label is 20 bits but has a 4-byte field, which meant that a set_field would get translated into a reg_load that wrote all 32 bits; in turn, the receiver of that reg_load would reject it because it was attempting to set invalid bits (the top 12 bits). This commit fixes the problem by omitting invalid bits when encoding a reg_load action. Reported-by: Pravin Shelar <pshelar@nicira.com> Tested-by: Pravin Shelar <pshelar@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
2014-12-04tests: Fix race in async config test.Joe Stringer
Occasionally, the testsuite would send the OFPT_SET_ASYNC before ovs-vswitchd got a chance to send its OFPT_ROLE_REPLY message, causing a reordering of the testsuite output and a false positive. Give the test script something extra to do so this is less likely to happen. Signed-off-by: Joe Stringer <joestringer@nicira.com>
2014-12-03tests: Make ofproto-dpif tests more resilient.Joe Stringer
We have previously used a combination of time/warp and revalidator/wait to try to synchronize the datapath flow statistics and status up to the ofproto layer, so that tests may confirm their expected behaviours using OpenFlow or other protocols operating at that layer of vswitchd (eg LACP). This patch switches these tests over to using revalidator/purge, which tells the ofproto-dpif to flush the datapath, causing these statistics to be updated. In local testing this appears to improve the success rate of these tests considerably. Signed-off-by: Joe Stringer <joestringer@nicira.com>
2014-12-02dpif: Minimize memory copy for revalidation.Joe Stringer
One of the limiting factors on the number of flows that can be supported in the datapath is the overhead of assembling flow dump messages in the datapath. This patch modifies the dpif to allow revalidators to skip dumping the key, mask and actions from the datapath, by making use of the unique flow identifiers introduced in earlier patches. For each flow dump, the dpif user specifies whether to skip these attributes, allowing the common case to only dump a pair of 128-bit ID and flow stats. With datapath support, this increases the number of flows that a revalidator can handle per second by 50% or more. Support in dpif-netdev and dpif-netlink is added in this patch; kernel support is left for future patches. Signed-off-by: Joe Stringer <joestringer@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-12-02dpif: Index flows using unique identifiers.Joe Stringer
This patch modifies the dpif interface to allow flows to be manipulated using a 128-bit identifier. This allows revalidator threads to perform datapath operations faster, as they do not need to serialise the entire flow key for operations like flow_get and flow_delete. In conjunction with a future patch to simplify the dump interface, this provides a significant performance benefit for revalidation. When handlers assemble flow_put operations, they specify a unique identifier (UFID) for each flow as it is passed down to the datapath to be stored with the flow. The UFID is currently provided to handlers by the dpif during upcall processing. When revalidators assemble flow_get or flow_del operations, they may specify the UFID for the flow along with the key. The dpif will decide whether to send only the UFID to the datapath, or both the UFID and flow key. The former is preferred for newer datapaths that support UFID, while the latter is used for backwards compatibility. Signed-off-by: Joe Stringer <joestringer@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-11-25ofproto: Fix checking of packet_in_mask in async config.Shu Shen
The check shall use wire protool reasons, which could be different from the internal packet-in reason. Signed-off-by: Shu Shen <shu.shen@radisys.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
2014-11-25hash: Add 128-bit murmurhash.Joe Stringer
Add the 128-bit murmurhash by Austin Appleby, r150 from: http://code.google.com/p/smhasher/source/browse/trunk/MurmurHash3.cpp Signed-off-by: Joe Stringer <joestringer@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-11-25tests/ovs_client: Remove broken debug codeStephen Finucane
There is some debug "logging" code included in the 'ovs_client' application. This code appears to be broken as it spams stdout with duplicated "log" messages. Remove this code. This patch also renames ovs_client to ring_client. In addition, add the 'test-dpdkr' executable to the 'tests/.gitignore' file. Signed-off-by: Stephen Finucane <stephen.finucane@intel.com> Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
2014-11-25ovs-vsctl: Prevent creating duplicate VLAN bridges.Ben Pfaff
ovs-vsctl has the concept of a VLAN (or "fake") bridge, which is a sort of a sub-bridge that receives only packets on a particular VLAN. There is no way to distinguish two VLAN bridges with the same parent on the same VLAN, but until now ovs-vsctl did not prevent creating duplicates or report them. This commit fixes the problem. Reported-by: rwxybh Reported-at: https://github.com/openvswitch/ovs/issues/21 Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Thomas Graf <tgraf@noironetworks.com>
2014-11-25tests: Fix test broken by introduction of ONFOXM_ET_TCP_FLAGS.Ben Pfaff
Commit 847ddeab372220 (meta-flow: Add support for ONF OpenFlow 1.3 extension ONFOXM_ET_TCP_FLAGS.) failed to update a test to match the new OXM extension. This fixes the problem. Signed-off-by: Ben Pfaff <blp@nicira.com>
2014-11-25ofproto-dpif: Add test case for OF1.4 packet-in.Shu Shen
The test case current fails and shows a bug when OF1.4 is used between the controller and the switch, the packet-in message still uses OF1.3 wire protocol version. Signed-off-by: Shu Shen <shu.shen@radisys.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
2014-11-21ofp-util.c: Enable packet-in messages for OpenFlow 1.4 and 1.5.Jean Tourrilhes
Signed-off-by: Jean Tourrilhes <jt@hpl.hp.com> [blp@nicira.com added simple test] Signed-off-by: Ben Pfaff <blp@nicira.com>
2014-11-21tests: Add command to purge revalidators of flows.Joe Stringer
This patch adds a new 'ovs-appctl revalidator/purge' command which flushes all flows from all datapaths, and updates the revalidator udpif_key cache at the same time. Update the ofproto-dpif fragment tests which may fail when ukeys are created from handler threads. Signed-off-by: Joe Stringer <joestringer@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
2014-11-21tunnel-push-pop.at: Make test more deterministic.Jarno Rajahalme
Using the '-march=native' broke this test in a i7 laptop, most likely due to a different hash implementation, which resulted in different datapath port number assignment accross different compilations. Break up the ports setup so that the datapath port number assignment is more deterministic. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
2014-11-14classifier: Defer pvector publication.Jarno Rajahalme
This patch adds a new functions classifier_defer() and classifier_publish(), which control when the classifier modifications are made available to lookups. By default, all modifications are made available to lookups immediately. Modifications made after a classifier_defer() call MAY be 'deferred' for later 'publication'. A call to classifier_publish() will both publish any deferred modifications, and cause subsequent changes to to be published immediately. Currently any deferring is limited to the visibility of the subtable vector changes. pvector now processes modifications mostly in a working copy, which needs to be explicitly published with pvector_publish(). pvector_publish() sorts the working copy and removes gaps before publishing it. This change helps avoiding O(n**2) memory behavior in corner cases, where large number of rules with different masks are inserted or deleted. VMware-BZ: #1322017 Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-11-14classifier: Remove internal mutex.Jarno Rajahalme
Almost all classifier users already exclude concurrent modifications, or are single-threaded, hence the classifier internal mutex can be removed. Due to this change, ovs-router.c and tnl-ports.c need new mutexes, which are added. As noted by Ben in review, ovs_router_flush() should also free the entries it removes from the classifier. It now calls ovsrcu_postpone() to that effect. Suggested-by: Ben Pfaff <blp@nicira.com> Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-11-14classifier: Lockless and robust classifier iteration.Jarno Rajahalme
Previously, accurate iteration required writers to be excluded during iteration. This patch adds an rculist to struct cls_subtable, and a corresponding list node to struct cls_rule, which makes iteration more straightforward, and allows the iterators to remain ignorant of the internals of the cls_match. This new list allows iteration of rules in the classifier by traversing the RCU-friendly subtables vector, and the rculist of rules in each subtable. Classifier modifications may be performed concurrently, but whether or not the concurrent iterator sees those changes depends on the timing of change. More specifically, an concurrent iterator: - May or may not see a rule that is being inserted or removed. - Will see either the new or the old version of a rule that is replaced. - Will see all the other rules (that are not being modified). Finally, The subtable's rculist also allows to make classifier_rule_overlaps() lockless, which this patch also does. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-11-14classifier: Do not insert duplicate rules in indices.Jarno Rajahalme
There is no point in adding duplicate information into prefix tries. Also, since the lower-priority duplicate rules are not visible to lookups, they do not need to be in staged lookup indices directly either (the head rule is). Finally, now that cmap operations return the number of elements in the cmap, subtable's 'n_rules' member is not needed any more. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-11-14rstp: Refactor rstp_port_set_administrative_bridge_port__().Jarno Rajahalme
Invoke move_rstp__() in rstp_port_set_administrative_bridge_port__() if port is not initializing. This is necessary in a test that checks that a Port becoming alternate/backup/disabled stops learning and forwarding. The move_rstp__() call is necessary to immediatly disable learning and forwarding on that port. Without this, the test fails. Signed-off-by: Daniele Venturino <daniele.venturino@m3s.it> Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
2014-11-14tests: Skip tunnel-push-pop test on Windows and BSD.Pravin B Shelar
Also updates ovs-router README documentation. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
2014-11-13ovs-ofctl: Support bucket commandsSimon Horman
(Draft) OpenFlow 1.5 flow mod commands include commands to manipulate the buckets of existing groups. This patch add support to ovs-ofctl for these commands. It also adds documentation and tests for them. ONF-JIRA: EXT-350 Signed-off-by: Simon Horman <simon.horman@netronome.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
2014-11-12tests: Fix ovs-ofctl rule with importance test case.Jarno Rajahalme
Sort the flow dump results to always have them in consistent order. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-11-12openvswitch: Userspace tunneling.Pravin B Shelar
Following patch adds support for userspace tunneling. Tunneling needs three more component first is routing table which is configured by caching kernel routes and second is ARP cache which build automatically by snooping arp. And third is tunnel protocol table which list all listening protocols which is populated by vswitchd as tunnel ports are added. GRE and VXLAN protocol support is added in this patch. Tunneling works as follows: On packet receive vswitchd check if this packet is targeted to tunnel port. If it is then vswitchd inserts tunnel pop action which pops header and sends packet to tunnel port. On packet xmit rather than generating Set tunnel action it generate tunnel push action which has tunnel header data. datapath can use tunnel-push action data to generate header for each packet and forward this packet to output port. Since tunnel-push action contains most of packet header vswitchd needs to lookup routing table and arp table to build this action. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Thomas Graf <tgraf@noironetworks.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-11-12Fix misspellings of "OpenFlow".Ben Pfaff
Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Flavio Leitner <fbl@redhat.com>
2014-11-12tests: Skip a sflow test for Windows.Gurucharan Shetty
AT_XFAIL_IF cannot be used here because it lets the tests run first and then say that the failure is expected. In this particular test, the utilities simply hang blocking all other tests. So use AT_SKIP_IF instead. Signed-off-by: Gurucharan Shetty <gshetty@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com> Acked-by: Nithin Raju <nithin@vmware.com>
2014-11-12ofproto: Test that group commands fail for OpenFlow 1.0Simon Horman
Groups are not supported by OpenFlow 1.0 Signed-off-by: Simon Horman <simon.horman@netronome.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
2014-11-11sflow: Export LAG, PORTNAME, and OPENFLOWPORT information also.Neil McKee
Export standard sFlow LAG, PORTNAME and OPENFLOWPORT structures with each counter-sample. Add unit-test for sFlow-LAG. Adjust other unit-tests to accommodate these new annotations. The sFlow-LAG structures are important for topology discovery, for troubleshooting LAG instability, and for correctly combining sFlow feeds from multiple sources. The OPENFLOWPORT and PORTNAME structures are important for systems that aim to combine sFlow monitoring with OpenFlow controls, as they provide straightforward mapping (1) between sFlow agent IP and OpenFlow datapath-id, and (2) between interface name,ifIndex and OpenFlow port number. Signed-off-by: Neil McKee <neil.mckee@inmon.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
2014-11-11ofproto: Add OpenFlow 1.5 group tests.Simon Horman
This motivation for this change is to exercise (draft) OpenFlow 1.5 group messages. ONF-JIRA: EXT-350 Signed-off-by: Simon Horman <simon.horman@netronome.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
2014-11-11ofproto: Add OpenFlow 1.3 group stats test.Simon Horman
This is to exercise OpenFlow 1.3 group stats replies messages which include a duration. ONF-JIRA: EXT-350 Signed-off-by: Simon Horman <simon.horman@netronome.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
2014-11-11ofp-print: Support printing of (draft) OpenFlow 1.5 group messages with ↵Simon Horman
bucket actions ONF-JIRA: EXT-350 Signed-off-by: Simon Horman <simon.horman@netronome.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
2014-11-11ofp-print: Print bucket ids of OpenFlow 1.5 group messages.Simon Horman
ONF-JIRA: EXT-350 Signed-off-by: Simon Horman <simon.horman@netronome.com> [blp@nicira.com changed ofp_print_bucket_id()] Signed-off-by: Ben Pfaff <blp@nicira.com>
2014-11-10tests: Avoid nonportable use of bash-specific {a..b..c} construct.Ben Pfaff
Reported-by: Alex Wang <alexw@nicira.com> Reported-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
2014-11-10ofproto: Fix supported group types.Shu Shen
Previously the types field is uninited and leds to no supported type being reported in OFPMP_GROUP_FEATURES message. Signed-off-by: Shu Shen <shu.shen@radisys.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
2014-11-10Fix setting transport ports with frags.Jarno Rajahalme
Packets with 'LATER' fragment do not have a transport header, so it is not possible to either match on or set transport ports on such packets. Matching is prevented by augmenting mf_are_prereqs_ok() with a nw_frag 'LATER' bit check. Setting the transport headers on such packets is prevented in three ways: 1. Flows with an explicit match on nw_frag, where the LATER bit is 1: existing calls to the modified mf_are_prereqs_ok() prohibit using transport header fields (port numbers) in OXM/NXM actions (set_field, move). SET_TP_* actions need a new check on the LATER bit. 2. Flows that wildcard the nw_frag LATER bit: At flow translation time, add calls to mf_are_prereqs_ok() to make sure that we do not use transport ports in flows that do not have them. 3. At action execution time, do not set transport ports, if the packet does not have a full transport header. This ensures that we never call the packet_set functions, that require a valid transport header, with packets that do not have them. For example, if the flow was created with a IPv6 first fragment that had the full TCP header, but the next packet's first fragment is missing them. 3 alone would suffice for correct behavior, but 1 and 2 seem like a right thing to do, anyway. Currently, if we are setting port numbers, we will also match them, due to us tracking the set fields with the same flow_wildcards as the matched fields. Hence, if the incoming port number was not zero, the flow would not match any packets with missing or truncated transport headers. However, relying on no packets having zero port numbers would not be very robust. Also, we may separate the tracking of set and matched fields in the future, which would allow some flows that blindly set port numbers to not match on them at all. For TCP in case 3 we use ofpbuf_get_tcp_payload() that requires the whole (potentially variable size) TCP header to be present. However, when parsing a flow, we only require the fixed size portion of the TCP header to be present, which would be enough to set the port numbers and fix the TCP checksum. Finally, we add tests testing the new behavior. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-11-10miniflow_extract: Properly handle small IP packets.Jarno Rajahalme
Ethernet frames may contain padding after the IP payload. When parsing IP packets, check the IP total size (IPv4) or IP payload size (IPv6) to detect the size of l2 padding. The l2 padding size is stored in the ofpbuf to prevent ofpbuf_pull from entering the padding, as well as to allow ofpbuf_l4_size() to return the size of the IP payload without the l2 padding. This helps avoiding parsing truncated transport headers, for example. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-11-10Add support for OpenFlow 1.4+ "importance" values.Rishi Bamba
This patch enables a user to set importance for a new rule via add-flow OF1.4+ in the OVS and display the same via dump-flows command OF1.4+. The changes are made in accordance with OpenFlow 1.4 specs to implement eviction on the basis of "importance". This patch also enhances the diff-flows & replace-flows CLI for addition of importance parameter in a rule. This doesn't actually implement eviction on the basis of importance, which will happen in a later patch. Signed-off-by: Rishi Bamba <rishi.bamba@tcs.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
2014-11-06classifier: Constify RCU pointers.Jarno Rajahalme
Returning const struct cls_rule pointers from the classifier API helps callers to remember that they should not modify the rules returned. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-11-05bridge: Store datapath version into ovsdbAndy Zhou
OVS userspace are backward compatible with older Linux kernel modules. However, not having the most up-to-date datapath kernel modules can some times lead to user confusion. Storing the datapath version in OVSDB allows management software to check and optionally provide notifications to users. Signed-off-by: Andy Zhou <azhou@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2014-11-04tests: Make sure test for actset_output tests initial condition.Jean Tourrilhes
ONF-JIRA: EXT-233 Signed-off-by: Jean Tourrilhes <jt@hpl.hp.com>
2014-11-03flow: Support OF1.5+ (draft) actset_output field.Ben Pfaff
This field allows a flow table to match on the output port currently in the action set. ONF-JIRA: EXT-233 Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>