summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* datapath-windows: use correct dst port during Vxlan TxNithin Raju2015-06-194-50/+19
| | | | | | | | | | | | | | | | | | | A previous commit used the wrong DST port in the UDP header during Vxlan Tx which caused Vxlan tunneling to break. Fixing it here.. Also included is a cosmetic fix in OvsDetectTunnelRxPkt() where we were using htons() instead of ntohs(). Doesn't make a difference in practice though. One more change is, OvsIpHlprCbVxlan() has been nuked since it is not used. Not sure if it is worth being resurrected. Testing done: Ping across Vxlan tunnel and Stt tunnel. Signed-off-by: Nithin Raju <nithin@vmware.com> Reported-by: Eitan Eliahu <eliahue@vmware.com> Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
* Merge remote-tracking branch 'origin/master' into ovn4Justin Pettit2015-06-1842-386/+910
|\
| * odp-util: Convert flow serialization parameters to a struct.Jesse Gross2015-06-187-63/+103
| | | | | | | | | | | | | | | | | | | | | | Serializing between userspace flows and netlink attributes currently requires several additional parameters besides the flows themselves. This will continue to grow in the future as well. This converts the function arguments to a parameters struct, which makes the code easier to read and allowing irrelevant arguments to be omitted. Signed-off-by: Jesse Gross <jesse@nicira.com> Signed-off-by: Andy Zhou <azhou@nicira.com>
| * Prepare for post-2.4.0 (2.4.90).Justin Pettit2015-06-183-1/+12
| | | | | | | | | | Signed-off-by: Justin Pettit <jpettit@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com>
| * Prepare for 2.4.0.Justin Pettit2015-06-183-4/+4
| | | | | | | | | | Signed-off-by: Justin Pettit <jpettit@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com>
| * datapath-windows: Return pending for IRPs completed laterSorin Vinturis2015-06-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | Return STATUS_PENDING for IRPs that are completed later in another thread. Signed-off-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Reported-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Reported-at: https://github.com/openvswitch/ovs-issues/issues/83 Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
| * AUTHORS: Add Thadeu Lima de Souza Cascardo.Ben Pfaff2015-06-171-0/+1
| | | | | | | | Signed-off-by: Ben Pfaff <blp@nicira.com>
| * Add IGMPv3 support.Thadeu Lima de Souza Cascardo2015-06-176-6/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support IGMPv3 messages with multiple records. Make sure all IGMPv3 messages go through slow path, since they may carry multiple multicast addresses, unlike IGMPv2. Tests done: * multiple addresses in IGMPv3 report are inserted in mdb; * address is removed from IGMPv3 if record is INCLUDE_MODE; * reports sent on a burst with same flow all go to userspace; * IGMPv3 reports go to mrouters, i.e., ports that have issued a query. Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@redhat.com> Acked-by: Flavio Leitner <fbl@sysclose.org> Signed-off-by: Ben Pfaff <blp@nicira.com>
| * ofproto-dpif-xlate: Make IGMP packets always take slow path.Thadeu Lima de Souza Cascardo2015-06-171-4/+10
| | | | | | | | | | | | | | | | | | | | | | IGMP packets need to take the slow path. Otherwise, packets that match the same flow will not be processed by OVS. That might prevent OVS from updating the expire time for entries already in the mdb, but also to lose packets with different addresses in the payload. Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@redhat.com> Acked-by: Flavio Leitner <fbl@sysclose.org> Signed-off-by: Ben Pfaff <blp@nicira.com>
| * lacp: Remove packed attribute from struct lacp_pdu.Ben Pfaff2015-06-171-2/+1
| | | | | | | | | | | | | | | | | | The packed annotation doesn't do anything here because all of the members in the structure are naturally aligned. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Flavio Leitner <fbl@sysclose.org> Acked-by: Ethan Jackson <ethan@nicira.com>
| * auto-attach: Cleanup i-sid/vlan mappings associated with lldp-enabled port.Dennis Flynn2015-06-171-1/+25
| | | | | | | | | | | | | | | | This commit fixes a bug where the i-sid/vlan mapping structures associated with an lldp-enabled port were not being freed during general port cleanup. Signed-off-by: Dennis Flynn <drflynn@avaya.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
| * docs: Fix alignment for diagram in native-tunneling.md.Mark D. Gray2015-06-171-18/+17
| | | | | | | | | | | | | | | | Markdown was not formatted correctly and, as a result, was displaying incorrectly on github. Signed-off-by: Mark D. Gray <mark.d.gray@intel.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
| * ovs-vtep: Support userspace datapaths.Daniele Di Proietto2015-06-161-2/+15
| | | | | | | | | | | | | | | | | | | | With this commit, the VTEP emulator detects the datapath_type of the bridge used as a "physical" switch, and creates subsequent bridges with the same type. This allows ovs-vtep to work with the userspace datapath. Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Acked-by: Gurucharan Shetty <gshetty@nicira.com>
| * datapath-windows: BSOD when disabling the extensionSorin Vinturis2015-06-151-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the filter detach routine is called while there are packets still in processing, the OvsUninitSwitchContext function call will decrement the switch context reference count without releasing the switch context structure. This behaviour is correct and expected, but the BSOD is caused in this case because the gOvsSwitchContext variable is set to NULL, which is wrong. The gOvsSwitchContext global variable must be set to NULL only when the switch context structure is actually released. Signed-off-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Reported-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Reported-at: https://github.com/openvswitch/ovs-issues/issues/80 Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
| * dpif-netdev: Prefetch next packet before miniflow_extract().Daniele Di Proietto2015-06-151-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It appears that miniflow_extract() in emc_processing() spends a lot of cycles waiting for the packet's data to be read. Prefetching the next packet's data while parsing removes this delay. For a single flow pipeline the throughput improves by ~10%. With a more realistic pipeline the change has a much smaller effect (~0.5% improvement) Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Signed-off-by: Ethan Jackson <ethan@nicira.com> Acked-by: Ethan Jackson <ethan@nicira.com>
| * ovs-ctl: let openvswitch startup to NOT hold up system boot upon errorSabyasachi Sengupta2015-06-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Abort openvswitch startup script if ovsdb startup fails for some reason. This helps in getting the system startup to NOT hang indefinitely, as was seen in a recent report when ovsdb failed with "I/O error: /etc/openvswitch/conf.db: failed to lock lockfile (Resource temporarily unavailable)" and system remained in hung state forever, unless manually rebooted from console. Signed-off-by: Sabyasachi Sengupta <sabyasachi.sengupta@alcatel-lucent.com> [blp@nicira.com changed an 'if' statement to '||'] Signed-off-by: Ben Pfaff <blp@nicira.com>
| * flow: Make assertions about offsets within struct flow easier to follow.Ben Pfaff2015-06-152-31/+32
| | | | | | | | | | Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
| * netdev-dpdk: add dpdk vhost-user portsCiara Loftus2015-06-145-70/+310
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for a new port type to the userspace datapath called dpdkvhostuser. A new dpdkvhostuser port will create a unix domain socket which when provided to QEMU is used to facilitate communication between the virtio-net device on the VM and the OVS port on the host. vhost-cuse ('dpdkvhost') ports are still available as 'dpdkvhostcuse' ports and will be enabled if vhost-cuse support is detected in the DPDK build specified during compilation of the switch. Otherwise, vhost-user ports are enabled. Signed-off-by: Ciara Loftus <ciara.loftus@intel.com> Acked-by: Flavio Leitner <fbl@redhat.com> Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
| * ofproto: Support port mods in bundles.Jarno Rajahalme2015-06-126-37/+147
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for port mods in an OpenFlow 1.4 bundle, as required for the minimum support level by the OpenFlow 1.4 specification. If the bundle includes port mods, it may not specify the OFPBF_ATOMIC flag. Port mods and flow mods in a bundle are always applied in order and the consecutive flow mods between port mods are made available to lookups atomically. Note that ovs-ofctl does not support creating bundles with port mods. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
| * ofproto: Postpone sending flow removed messages.Jarno Rajahalme2015-06-124-15/+30
| | | | | | | | | | | | | | | | | | The final flow stats are available only after there are no references to the rule. Postpone sending the flow removed message until the final stats are available. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
| * classifier: Simplify versioning.Jarno Rajahalme2015-06-129-133/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | After all, there are some cases in which both the insertion version and removal version of a rule need to be considered. This makes the cls_match a bit bigger, but makes classifier versioning much simpler to understand. Also, avoid using type larger than int in an enum, as it is not portable C. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
* | ovn: Remove completed items from TODO.ovnBen Pfaff2015-06-171-85/+0
| | | | | | | | | | Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
* | ofctrl: Don't use designated initializers.Gurucharan Shetty2015-06-161-22/+22
| | | | | | | | | | | | | | | | | | MSVC 2013 does not like designated initializers when structs are initialized inside structs. Apparently it has been fixed in MSVC 2015. Signed-off-by: Gurucharan Shetty <gshetty@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
* | ovs-sim: New utility for multi-node OVS and OVN simulation.Ben Pfaff2015-06-165-0/+685
| | | | | | | | | | | | | | Please see the examples in ovs-sim(1) for some examples of how this can be useful. Signed-off-by: Ben Pfaff <blp@nicira.com>
* | ovn-nbctl: Take default database target from OVN_NB_DB in environment.Ben Pfaff2015-06-163-13/+32
| | | | | | | | | | | | | | | | | | | | This makes life easier for testing at the point you start to separate your environment into multiple machines. Also work on the manpage a little. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
* | xml2nroff: Add support for variable substitutions.Ben Pfaff2015-06-162-7/+39
| | | | | | | | | | | | | | | | | | This allows XML-generated manpages in the source tree to include correct directory names for the local configuration, instead of just the plain nroff ones. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
* | dummy: Introduce new --enable-dummy=system option.Ben Pfaff2015-06-165-38/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Until now there have been two variants for --enable-dummy: * --enable-dummy: This adds support for "dummy" dpif and netdev. * --enable-dummy=override: In addition, this replaces *every* existing dpif and netdev by the dummy type. The latter is useful for testing but it defeats the possibility of using the userspace native tunneling implementation (because all the tunnel netdevs get replaced by dummy netdevs). Thus, this commit adds a third variant: * --enable-dummy=system: This replaces the "system" dpif and netdev by dummies but leaves the others untouched. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
* | netdev: Initialize at the beginning of netdev_unregister_provider().Ben Pfaff2015-06-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise, if netdev_unregister_provider() is called before any other netdev function, netdev_class_mutex is not initialized and the attempt to lock it aborts. This doesn't fix an existing bug but with the following commit --enable-dummy=system will make netdev_unregister_provider() the first netdev function to be called. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
* | dpif: Generalize test for dummy dpifs beyond the name.Ben Pfaff2015-06-163-5/+14
| | | | | | | | | | | | | | | | When --enable-dummy=system or --enable-dummy=override is in use, dpifs other than "dummy" are actually dummy dpifs, so use a more reliable test. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
* | ofproto-dpif-xlate: Add native tunnel information to ofproto/trace.Ben Pfaff2015-06-161-1/+16
| | | | | | | | | | | | | | I found this invaluable for debugging native tunnels over dummy devices. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
* | ofproto-dpif: Allow translation reports to include formatted data.Ben Pfaff2015-06-163-15/+37
| | | | | | | | | | | | | | | | This allow the reports to have additional useful information. An upcoming commit will take advantage of this. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
* | netdev-dummy: Implement ARP responder.Ben Pfaff2015-06-161-0/+17
| | | | | | | | | | | | | | | | This is the only missing piece to make native tunneling work with dummy devices for testing purposes. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
* | packets: Generalize compose_arp().Ben Pfaff2015-06-163-14/+28
| | | | | | | | | | | | | | | | | | Until now, compose_arp() has only been able to compose ARP requests. This extends it to composing general ARP packets, in particular replies. An upcoming commit will make use of this capability. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
* | netdev-dummy: Report EADDRNOTAVAIL when no IPv4 address is configured.Ben Pfaff2015-06-161-1/+2
| | | | | | | | | | | | | | | | | | This conforms with the interface described in netdev-provider.h. Found when experimenting with native tunneling and dummy devices. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
* | ovn-sb: Remove redundant "attached_port" column from Gateway table.Ben Pfaff2015-06-152-9/+3
| | | | | | | | | | | | | | | | | | The keys in the Chassis table's "gateway_ports" column report the same information as the Gateway table's "attached_port" column, so this commit removes the latter. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
* | Update location for Neutron plugin.Russell Bryant2015-06-151-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | The git repository for the neutron plugin has been renamed to reflect that it is now officially part of the OpenStack Neutron project. The repo now lives in the "openstack" namespace. Also remove the link to the todo file as those are now just tracked in the networking-ovn bug tracker (launchpad bugs). Signed-off-by: Russell Bryant <rbryant@redhat.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* | fedora.spec: Create openvswitch-ovn package.Russell Bryant2015-06-154-8/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch creates a new subpackage for OVN, openvswitch-ovn. It also installs systemd unit files for ovn-controller and ovn-northd. If you want to run ovn-controller: # systemctl start ovn-controller If you want to run ovn-northd: # systemctl start ovn-northd Both systemd units are currently set to depend on openvswitch. If further ovsdb initialization is required for the OVN databases before ovn-northd can start, that will be handled automatically by ovn-ctl when you start the ovn-northd service. This currently assumes that ovn-northd runs on the same host as ovsdb-server that is hosting the OVN databases. That seems like a reasonable assumption in the current architecture and can be evolved later when needed. Signed-off-by: Russell Bryant <rbryant@redhat.com> CC: Flavio Leitner <fbl@redhat.com> CC: Ben Pfaff <blp@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* | ovn: Add ovn-ctl to assist with OVN daemon lifecycle.Russell Bryant2015-06-156-0/+317
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch introduces ovn-ctl, which is similar to ovs-ctl. I opted for a new script as everything in OVN so far is nicely isolated, so a new script seemed to make the most sense. If you'd like to run ovn-controller on a host already running ovs: # ovn-ctl start_controller If you'd like to run ovn-northd: # ovn-ctl start_northd Note that ovn-ctl assumes that ovn-northd is running on the same server as ovsdb-server hosting the OVN databases. Based on the current architecture this seems like a completely reasonable assumption. This can be improved later when needed. There's some additional stuff happening in start_northd to make the experience nicer and not require additional steps by the administrator. It creates the OVN dbs if they don't exist. If ovsdb-server hasn't loaded them, it tells it to load them, as well. ovn-ctl also supports running everything on the same host. This would be common in a test environment with a single host or small set of hosts. That would simply be: # ovs-ctl start --system-id=random # ovn-ctl start_northd # ovn-ctl start_controller Signed-off-by: Russell Bryant <rbryant@redhat.com> CC: Flavio Leitner <fbl@redhat.com> CC: Ben Pfaff <blp@nicira.com> [blp@nicira.com added configure.ac code to create ovn/utilities builddir] Signed-off-by: Ben Pfaff <blp@nicira.com>
* | ovn-controller: Verify bridge ports before changing.Ben Pfaff2015-06-141-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OVSDB is transactional but it does not have built-in protection from dirty reads. To avoid those, it's necessary to manually add verification to transactions to ensure that any data reads whose values were essential to later writes have not changed. ovn-controller didn't do that for the "ports" column in the Bridge table, which means that if the set of ports changed when it didn't expect it, it could revert changes made by other database clients. In particular this showed up in a scale test, where ovn-controller would delete "vif" ports added via ovs-vsctl. (It's easy to see exactly what happened by looking in the database log with "ovsdb-tool -mm show-log".) Reported-by: Russell Bryant <rbryant@redhat.com> Reported-at: http://openvswitch.org/pipermail/dev/2015-June/056326.html Signed-off-by: Ben Pfaff <blp@nicira.com>
* | Merge "master" into "ovn".Ben Pfaff2015-06-13187-3479/+10678
|\ \ | |/ | | | | | | | | | | | | | | This allows OVN to take advantage of the client scalability changes that have been committed to ovsdb-server on master recently. Conflicts: Makefile.am lib/learn.c
| * ovs-rcu: Comment fixes.Ben Pfaff2015-06-121-4/+4
| | | | | | | | | | | | | | | | A comment referred to a "Usage" section but the section was named "Use". This fixes the problem (also a grammar error). Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
| * rculist: Remove postponed poisoning.Jarno Rajahalme2015-06-116-52/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Postponed 'next' member poisoning was based on the faulty assumption that postponed functions would be called in the order they were postponed. This assumption holds only for the functions postponed by any single thread. When functions are postponed by different threads, there are no guarantees of the order in which the functions may be called, or timing between those calls after the next grace period has passed. Given this, the postponed poisoning could have executed after postponed destruction of the object containing the rculist element. This bug was revealed after the memory leaks on rule deletion were recently fixed. This patch removes the postponed 'next' member poisoning and adds documentation describing the ordering limitations in OVS RCU. Alex Wang dug out the root cause of the resulting crashes, thanks! Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
| * vtep-ctl: Fix a bug.Alex Wang2015-06-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | add_port_to_cache() uses 'cache_name' as the shash node name for shash_add(). So, the del_cached_port() must also pass 'cache_name' as argument for shash_find_and_delete(). This bug does not cause any issue currently but should be fixed. Signed-off-by: Alex Wang <alexw@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
| * ofproto: Revertible eviction.Jarno Rajahalme2015-06-111-43/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | Handling evictions was broken in the previous patches. Eviction took place early in the commit, and actually inappropriately bumped the version number too early. Now eviction is treated much like a flow modification, where a new rule replaces the old one, but just without any 'inheritance' from the evicted rule to the new rule. This makes evictions to be executed only when commit is successful, as evictions are reverted like any other changes when the commit fails. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
| * ofproto: Accurate flow counts.Jarno Rajahalme2015-06-113-12/+27
| | | | | | | | | | | | | | | | | | Classifier's rule count now contains temporary duplicates and rules whose deletion has been deferred. Maintain a new 'n_flows' count in struct oftable to as the count of rules in the latest version. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
| * Use classifier versioning.Jarno Rajahalme2015-06-1112-565/+684
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Each rule is now added or deleted in a specific tables version. Flow tables are versioned with a monotonically increasing 64-bit integer, where positive values are valid version numbers. Rule modifications are implemented as an insertion of a new rule and a deletion of the old rule, both taking place in the same tables version. Since concurrent lookups may use different versions, both the old and new rule must be available for lookups at the same time. The ofproto provider interface is changed to accomodate the above. As rule's actions need not be modified any more, we no longer need 'rule_premodify_actions', nor 'rule_modify_actions'. 'rule_insert' now takes a pointer to the old rule and adds a flag that tells whether the old stats should be forwarded to the new rule or not (this replaces the 'reset_counters' flag of the now removed 'rule_modify_actions'). Versioning all flow table changes has the side effect of making learned flows visible for future lookups only. I.e., the upcall that executes the learn action, will not see the newly learned action in it's classifier lookups. Only upcalls that start executing after the new flow was added will match on it. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
| * ofproto: Infra for table versioning.Jarno Rajahalme2015-06-115-11/+65
| | | | | | | | | | Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
| * test-classifier: Test versioning features.Jarno Rajahalme2015-06-112-64/+245
| | | | | | | | | | Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
| * classifier: Make traversing identical rules robust.Jarno Rajahalme2015-06-113-85/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The traversal of the list of identical rules from the lookup threads is fragile if the list head is removed during the list traversal. This patch simplifies the implementation of that list by making the list NULL terminated, singly linked RCU-protected list. By having the NULL at the end there is no longer a possiblity of missing the point when the list wraps around. This is significant when there can be multiple elements with the same priority in the list. This change also decreases the size of the struct cls_match back pre-'visibility' attribute size. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
| * odp-util: Remove last use of odp_tun_key_from_attr for formatting.Jesse Gross2015-06-111-17/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We formerly converted tunnel attributes to their flow representation before formatting but now perform all operations directly on the netlink attributes. There is one remaining use of odp_tun_key_from_attr() that is not used for the purposes of generating a flow. This is to check the mask but this no longer makes sense given the way that we format the flow itself. In fact, the code is not actually invoked any more, so we can simply remove it. This retains the special case for tunnels as a safety measure but it should not matter in practice. Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>