summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge remote-tracking branch 'origin/master' into ovnJustin Pettit2015-04-1248-487/+2735
|\ \ | |/ | | | | | | Conflicts: tutorial/ovs-sandbox
| * tests: gre: fix flags endiannessFlavio Leitner2015-04-101-3/+4
| | | | | | | | | | | | | | | | | | The flags field is 16 bits so use network byte order in the test case and use the proper conversion methods when parsing and dumping. Signed-off-by: Flavio Leitner <fbl@redhat.com> Signed-off-by: Jesse Gross <jesse@nicira.com>
| * dpif-netdev: Count exact match cache hits.Daniele Di Proietto2015-04-091-6/+10
| | | | | | | | | | | | | | | | | | We used to count exact match cache hits and masked classifier hits together. This commit splits the DP_STAT_HIT counter into two. This change will be used by future commits. Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Acked-by: Ethan Jackson <ethan@nicira.com>
| * dpif-netdev: Make datapath and flow stats atomic.Daniele Di Proietto2015-04-091-19/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A read operation from a non atomic shared value (without external locking) can return incorrect values. Using the atomic semantics prevents this from happening. However: * No memory barriers are used. We don't need that kind of consistency for statistics (we use relaxed operations). * The updates are not atomic, just the loads and stores. This is ok because there's a single writer. Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Acked-by: Ethan Jackson <ethan@nicira.com>
| * dpif-netdev: Group statistics updates in the slow path.Daniele Di Proietto2015-04-091-5/+6
| | | | | | | | | | | | | | | | Since statistics updates might require locking (in future commits) grouping them will reduce the locking overhead. Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Acked-by: Ethan Jackson <ethan@nicira.com>
| * tunneling: Invalid packets should be cleared.Jesse Gross2015-04-091-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we receive a packet with an invalid tunnel header, we should drop the packet without further processing. Currently we do this by removing any parsed tunnel metadata. However, this is not sufficient to stop processing - this only results in the packet getting dropped by chance when something usually runs across part of the packet that does not make sense. Since both the packet and its metadata are in an inconsistent state, it's also possible that the result is an ovs-vswitchd crash or forwarding of a mangled packet. Rather than clear the metadata, an alternate solution is to remove all of the packet data. This guarantees that the packet gets dropped during the next round of processing. Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
| * tunneling: Convert tunnel push/pop functions to act on single packets.Jesse Gross2015-04-093-121/+56
| | | | | | | | | | | | | | | | | | | | | | | | The userspace tunneling API for pushing and popping tunnel headers is currently based on processing batches of packets. However, there is no obvious way to take advantage of batching for these operations and so each tunnel operation has a pair of loops to process the batch. This changes the API to operate on single packets to enable better code reuse. Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
| * geneve: Zero header before parsing userspace tunneling action.Jesse Gross2015-04-071-0/+1
| | | | | | | | | | | | | | | | | | | | When we parse the text representation of the Geneve action the header is not fully initialized. Besides the obvious potential to generate an action that the user did not actually specify, this also causes intermittent unit test failures when an action is read in and printed out and the result is different. Signed-off-by: Jesse Gross <jesse@nicira.com>
| * packet: Avoid array of struct with zero length member.Jesse Gross2015-04-071-1/+1
| | | | | | | | | | | | | | | | | | | | Windows doesn't like that the Geneve header has an array of options with each have a zero length member (the variable data). Nothing is accessing the data now, so just replace the member with a comment - we can use pointer arithmetic when necessary. Reported-by: Gurucharan Shetty <shettyg@nicira.com> Signed-off-by: Jesse Gross <jesse@nicira.com>
| * tunneling: Add UDP checksum support for userspace tunnels.Jesse Gross2015-04-072-11/+41
| | | | | | | | | | | | | | | | | | Kernel based OVS recently added the ability to support checksums for UDP based tunnels (Geneve and VXLAN). This adds similar support for the userspace datapath to bring feature parity. Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
| * packet: Add IP pseudoheader checksum calculation.Jesse Gross2015-04-072-0/+15
| | | | | | | | | | | | | | | | | | As OVS adds userspace support for being the endpoint in protocols like tunnels, it will need to be able to calculate pseudoheaders as part of the checksum calculation. Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
| * tunneling: Add userspace tunnel support for Geneve.Jesse Gross2015-04-073-4/+158
| | | | | | | | | | | | | | | | | | | | | | This adds basic userspace dataplane support for the Geneve tunneling protocol. The rest of userspace only has the ability to handle Geneve without options and this follows that pattern for the time being. However, when the rest of userspace is updated it should be easy to extend the dataplane as well. Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
| * tunneling: Factor out common UDP tunnel code.Jesse Gross2015-04-072-57/+85
| | | | | | | | | | | | | | | | | | | | Currently, the userspace VXLAN implementation contains the code for generating and parsing both the UDP and VXLAN headers. This pulls out the UDP portion for better layering and to make it easier to support additional UDP based tunnels and features. Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
| * vxlan: Set FLOW_TNL_F_KEY for received packets.Jesse Gross2015-04-071-0/+1
| | | | | | | | | | | | | | | | The VNI is always present in the VXLAN header, so we should set the FLOW_TNL_F_KEY flag to indicate this. However, the userspace implementation of VXLAN currently does not. Signed-off-by: Jesse Gross <jesse@nicira.com>
| * odp-util: Shift VXLAN VNI when printing/parsing.Jesse Gross2015-04-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | Currently when printing a userspace tunnel action for VXLAN, the VNI is treated as a 32 bit field rather than 24 bit. Even if this is the representation that we use internally, we should still show the right VNI to avoid confusing people. Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Pritesh Kothari <pritesh.kothari@cisco.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
| * tunneling: Use flow flag for GRE checksum calculation.Jesse Gross2015-04-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The indication to calculate the GRE checksum is currently the port config rather than the tunnel flow. Currently there is a one to one mapping between the two so there is no difference. However, the kernel datapath must use the flow and it is also potentially more flexible, so this switches how we decide whether to calculate the checksum. Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Pritesh Kothari <pritesh.kothari@cisco.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
| * tunneling: Fix location of GRE checksums.Jesse Gross2015-04-072-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | The GRE checksum is a 16 bit field stored in a 32 bit option (the rest is reserved). The current code treats the checksum as a 32-bit field and places it in the right place for little endian systems but not big endian. This fixes the problem by storing the 16 bit field directly. Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Pritesh Kothari <pritesh.kothari@cisco.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
| * tunneling: Add check for GRE protocol is Ethernet.Jesse Gross2015-04-071-0/+4
| | | | | | | | | | | | | | | | | | | | | | On receive, the userspace GRE code doesn't check the protocol field. Since OVS only understands Ethernet packets, this adds a check that the inner protocol is Ethernet and discards other types of packets. Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Pritesh Kothari <pritesh.kothari@cisco.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
| * tunneling: Include IP TTL in flow metadata.Jesse Gross2015-04-071-0/+1
| | | | | | | | | | | | | | | | | | | | The IP TTL is currently omitted in the extracted tunnel information that is stored in the flow for userspace tunneling. This includes it so that the same logic used by the kernel also applies. Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Pritesh Kothari <pritesh.kothari@cisco.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
| * hmap: Add comment warning about pitfall in HMAP_FOR_EACH_* usage.Ben Pfaff2015-04-061-0/+10
| | | | | | | | | | | | CC: Russell Bryant <rbryant@redhat.com> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
| * lib/list: Add LIST_FOR_EACH_POP.Jarno Rajahalme2015-04-0611-34/+23
| | | | | | | | | | | | | | | | Makes popping each member of the list a bit easier. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Russell Bryant <rbryant@redhat.com> Acked-by: Ben Pfaff <blp@nicira.com>
| * auto-attach: Fix segfault when enabling auto attach.Dennis Flynn2015-04-061-3/+5
| | | | | | | | | | | | | | | | This commit fixes a segmentation fault observed when enabling lldp prior to establishing auto attach mappings. Signed-off-by: Dennis Flynn <drflynn@avaya.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
| * netdev-bsd: Fix sign extension bug in ifr_flags on FreeBSD.Kevin Lo2015-04-051-2/+4
| | | | | | | | | | | | | | | | | | | | | | FreeBSD fills the int return value with ifr_flagshigh in the high 16 bits and ifr_flags in the low 16 bits rather than blindly promoting ifr_flags to an int, which will preserve the sign. This commit makes sure the flags returned isn't negative and apply mask 0xffff to flags. Signed-off-by: Kevin Lo <kevlo@FreeBSD.org> Signed-off-by: Ben Pfaff <blp@nicira.com>
| * dpif-netdev: Remove support for DPIF_FP_ZERO_STATS flagDaniele Di Proietto2015-04-021-1/+10
| | | | | | | | | | | | | | | | | | | | | | Since flow statistics are thread local and updated without any lock, it is not correct to do a memset from another thread. This commit simply removes the support for the flag. It is not needed by ofproto-dpif, it is only exposed by dpctl commands. Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Acked-by: Ethan Jackson <ethan@nicira.com>
| * datapath-windows: Make GET_PID a separate IOCTLSorin Vinturis2015-04-021-46/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Added a new IOCTL in order to retrieve the PID from the kernel datapath. The new method uses a direct and cleaner way, as opposed to the old way of using a Netlink transaction, avoiding the unnecessary overhead. Signed-off-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Reported-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Reported-at: https://github.com/openvswitch/ovs-issues/issues/31 Acked-by: Nithin Raju <nithin@vmware.com> Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Tested-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
| * ovsdb-idl: Tolerate missing tables and columns.Ben Pfaff2015-03-313-30/+196
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Until now, if ovs-vsctl (or another client of the C ovsdb-idl library) was compiled against a schema that had a column or table that was not in the database actually being used (e.g. during an upgrade), and the column or table was selected for monitoring, then ovsdb-idl would fail to get any data at all because ovsdb-server would report an error due to a request about a column or a table it didn't know about. This commit fixes the problem by making ovsdb-idl retrieve the database schema from the database server and omit any tables or columns that don't exist from its monitoring request. This works OK for the kinds of upgrades that OVSDB otherwise supports gracefully because it will simply make the missing columns or tables appear empty, which clients of the ovsdb-idl library already have to tolerate. VMware-BZ: #1413562 Reported-by: Alex Wang <alexw@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
| * lockfile: Support \-delimited file names in lockfile_name().Alin Serdean2015-03-311-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently paths that have only forward slashes like the following "C:/package/binaries/conf.db" work seamlessly. If we try the native windows filepaths i.e. "C:\package\binaries\conf.db" we will hit the following problem: 2015-03-31T15:54:17Z|00001|lockfile|WARN|.c:\package\binaries\conf.db.~lock~: failed to open lock file: Invalid argument 2015-03-31T15:54:17Z|00002|lockfile|WARN|.c:\package\binaries\conf.db.~lock~: failed to lock file: Invalid argument ovsdb-server: I/O error: c:\package\binaries\conf.db: failed to lock lockfile (Invalid argument) In this patch we update the lockfile_name function to also look for backslashes, and also accommodate if we have a mix of backslashes and forward slashes. Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> [blp@nicira.com simplified the code] Signed-off-by: Ben Pfaff <blp@nicira.com>
| * hmap: Don't include ovs-atomic.h unnecessarily.Ben Pfaff2015-03-315-4/+7
| | | | | | | | | | | | | | | | | | | | | | GNU C++ isn't too happy with ovs-atomic.h. We could fix that (maybe we should) but the report I received from a C++ user implied to me that it would be just as useful to just drop the unnecessary #include "ovs-atomic.h" from hmap.h. Reported-by: Michael Hu <humichael@vmware.com> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
| * ovsdb-idl: Add function comments.Ben Pfaff2015-03-311-1/+5
| | | | | | | | | | Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Russell Bryant <rbryant@redhat.com>
| * jsonrpc: Add function comments.Ben Pfaff2015-03-311-2/+27
| | | | | | | | | | Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Russell Bryant <rbryant@redhat.com>
| * dpif-netdev: Account for and free lost packets.Daniele Di Proietto2015-03-301-0/+3
| | | | | | | | | | | | | | | | Packets for which an upcall has failed (lost packets) must be deleted. We also need to count them as MISS and LOST. Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Acked-by: Ethan Jackson <ethan@nicira.com>
| * netdev-linux: Make htb quantum always no less than mtu.Alex Wang2015-03-271-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, ovs uses hardcoded rate2quantum = 10 for each htb qdisc. When qdisc class's rate is small, the resulting quantum (calculated by min_rate / rate2quantum) will be smaller than MTU. This is not recommended and tc will keep complaining the following in syslog. localhost kernel: HTB: quantum of class 10003 is small. Consider r2q change. localhost kernel: HTB: quantum of class 10004 is small. Consider r2q change. localhost kernel: HTB: quantum of class 10005 is small. Consider r2q change. localhost kernel: HTB: quantum of class 10006 is small. Consider r2q change. To fix the issue, this commit makes ovs always use htb quantum no less than the MTU. Signed-off-by: Alex Wang <alexw@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
| * netdev-dpdk: Put cuse thread into quiescent state.Kevin Traynor2015-03-271-4/+9
| | | | | | | | | | | | | | | | | | | | | | ovsrcu_synchronize() is used when setting virtio_dev to NULL. This results in an ovsrcu_quiesce_end() call which means the cuse thread may not go into quiescent state again for an indefinite time. Add an ovsrcu_quiesce_start() call to prevent this. Signed-off-by: Kevin Traynor <kevin.traynor@intel.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
| * netdev-vport: Do not update netdev when there is no config change.Alex Wang2015-03-271-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When there is any update from ovsdb, ovs will call netdev_set_config() for every vport. Even though the change is not related to vport, the current implementation will always increment the per-netdev sequence number. Subsequently this could cause even more unwanted effects, e.g. the recreation of 'struct tnl_port' in ofproto level. This commit fixes the issue by only updating the netdev when there is actual configuration change. Signed-off-by: Alex Wang <alexw@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
| * netdev: Fix user space tunneling for set_tunnel action.Ricky Li2015-03-264-8/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e.g. Set tunnel id for encapsulated VxLAN packet (out_key=flow): ovs-vsctl add-port int-br vxlan0 -- set interface vxlan0 \ type=vxlan options:remote_ip=172.168.1.2 options:out_key=flow ovs-ofctl add-flow int-br in_port=LOCAL, icmp,\ actions=set_tunnel:3, output:1 (1 is the port# of vxlan0) Output tunnel ID should be modified to 3 with this patch. Signed-off-by: Ricky Li <ricky.li@intel.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
| * flow_format: Do not format "in_port=0".Jarno Rajahalme2015-03-261-4/+8
| | | | | | | | | | | | | | | | | | | | flow_format() is used mainly for formating the headers of packets embedded in OpenFlow PACKET_IN messages. In this case the flow does not have a valid port number, and printing out "in_port=0" only confuses the resulting output. Besides, 0 is not a valid OpenFlow port number. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
| * ofproto-dpif: Restore metadata and registers on recirculation.Jarno Rajahalme2015-03-262-1/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | xlate_actions() now considers an optional recirculation context (via 'xin') and restores OpenFlow pipeline metadata (registers, 'metadata', etc.) based on it. The recirculation context may contain an action set and stack to be restored and further actions to be executed upon recirculation. It also contains a table_id number to be used for rule lookup in cases where no post-recirculation actions are used. The translation context internal metadata is restored using a new internal action: UNROLL_XLATE action stores the translation context data visible to OpenFlow controllers via PACKET_IN messages. This includes the current table number and the current rule cookie. UNROLL_XLATE actions are inserted only when the remaining actions may generate PACKET_IN messages. These changes allow the post-MPLS recirculation to properly continue with the pipeline metadata that existed at the time of recirculation. The internal table is still consulted for bonds. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ethan Jackson <ethan@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
| * netdev-dpdk: create smaller mempools in case of failureDaniele Di Proietto2015-03-241-13/+33
| | | | | | | | | | | | | | | | | | If rte_mempool_create() fails with ENOMEM, try asking for a smaller mempools. This patch enables OVS DPDK to run on systems without 1GB hugepages Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Acked-by: Ethan Jackson <ethan@nicira.com>
| * netdev-linux: Fix build with old kernel headers.Ben Pfaff2015-03-241-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 677d9158fc0a (netdev-linux: Support for SFQ, FQ_CoDel and CoDel qdiscs.) added support for new qdiscs. The commit uses TCA_CODEL_* and TCA_FQ_CODEL_* not in old kernel headers, causing a build failure against such headers. This commit should fix the problem by defining these values ourselves. (I haven't tested it against old headers, so I might have missed something, but it's a straightforward change and at worst won't do harm.) It appears that sfq (also added by the same commit) was in Linux before 2.6.32, so it seems unlikely that we need any compatibility code there. CC: Jonathan Vestin <jonavest@kau.se> Signed-off-by: Ben Pfaff <blp@nicira.com>
| * tunnels: Enable UDP checksum computation for Geneve and VXLAN.Jesse Gross2015-03-241-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The kernel module can already support outer UDP checksums for Geneve and VXLAN using the standard checksum flag in tunnel metadata. This makes userspace aware of the capability so that users can enable it on tunnel ports. There is a complication in that there is no way for userspace to probe or detect if the kernel does not support this capability in order to warn the user. In this case, connectivity will appear to function normally but packets will not be checksum protected. This is mainly an issue for VXLAN which has existed in the kernel for a some time without checksum support - while there are also a few kernel versions that support Geneve only without checksums, they are much less common. There isn't a particularly good solution to the compatibility issue without introducing a larger capabilities structure. However, UDP checksums are likely to be used only rarely at this point in time and the VXLAN spec (where the main problem lies) recommends against them. Therefore, this is considered to be an advanced user feature and we settle for just documenting the issue. Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Pritesh Kothari <pritesh.kothari@cisco.com>
| * Implement hash fields select groupSimon Horman2015-03-243-8/+42
| | | | | | | | | | | | | | | | | | | | This is intended as a usable demonstration of how the NTR selection method extension might may be used. NTR selection method Signed-off-by: Simon Horman <simon.horman@netronome.com> [blp@nicira.com added a NEWS entry] Signed-off-by: Ben Pfaff <blp@nicira.com>
| * Support NTR selection method in ovs-ofctl group commandsSimon Horman2015-03-241-0/+94
| | | | | | | | | | | | NTR selection method Signed-off-by: Simon Horman <simon.horman@netronome.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
| * Support encoding of NTR selection methodSimon Horman2015-03-244-6/+138
| | | | | | | | | | | | | | | | | | Include NTR selection method experimenter group property in in group mod request and group desc reply. NTR selection method Signed-off-by: Simon Horman <simon.horman@netronome.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
| * Support decoding of NTR selection methodSimon Horman2015-03-246-8/+323
| | | | | | | | | | | | | | | | | | | | | | | | | | This is in preparation for supporting group mod and desc reply messages with an NTR selection method group experimenter property. Currently decoding always fails as it only allows properties for known selection methods and no selection methods are known yet. A subsequent patch will propose a hash selection method. NTR selection method Signed-off-by: Simon Horman <simon.horman@netronome.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
| * vswitch.ovsschema: Add datapath_types and port_types.Mark D. Gray2015-03-242-15/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At startup enumerate datapath and port types and add this information to the datapath_types and port_types columns in the ovsdb. This allows an ovsdb client to query the datapath in order to determine if certain datapath and port types exist. For example, by querying the port_types column, an ovsdb client will be able to determine if this instance of ovs-vswitchd was compiled with DPDK support. Signed-off-by: Mark D. Gray <mark.d.gray@intel.com> Signed-off-by: Billy O'Mahony <billy.o.mahony@intel.com> [blp@nicira.com made several changes] Signed-off-by: Ben Pfaff <blp@nicira.com>
| * netdev-linux: Support for SFQ, FQ_CoDel and CoDel qdiscs.Jonathan Vestin2015-03-231-0/+643
| | | | | | | | | | | | | | | | This patch adds support for SFQ, CoDel and FQ_CoDel classless qdiscs to Open vSwitch. It also removes the requirement for a QoS to have at least one Queue (as this makes no sense when using classless qdiscs). I have also not implemented class_{get,set,delete,get_stats,dump_stats} because they are meant for qdiscs with classes. Signed-off-by: Jonathan Vestin <jonavest@kau.se> [blp@nicira.com mostly applied stylistic changes] Signed-off-by: Ben Pfaff <blp@nicira.com>
| * auto-attach: Support latest version of auto-attach LLDP TLVsDennis Flynn2015-03-234-64/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following enhancements to the auto-attach feature are provided - Support recent modifications to the AA element discovery TLV - Support recent Avaya Organizationally Unique ID (OUI) change. (This will change to IEEE assigned OUI once AA standard has been ratified) - Remove some Avaya specific #defines The primary purpose of this commit is to catch up with the latest changes made to the auto attach TLVs as the Auto Attach feature progresses through the 802.1Q IEEE standards committee. Most notably this includes some minor rework of the AA element discovery TLV and a recent change to the Avaya OUI value. Signed-off-by: Dennis Flynn <drflynn@avaya.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
| * netdev-dpdk: add dpdk vhost-cuse portsKevin Traynor2015-03-192-48/+466
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for a new port type to userspace datapath called dpdkvhost. This allows KVM (QEMU) to offload the servicing of virtio-net devices to its associated dpdkvhost port. Instructions for use are in INSTALL.DPDK. This has been tested on Intel multi-core platforms and with clients that have virtio-net interfaces. Signed-off-by: Ciara Loftus <ciara.loftus@intel.com> Signed-off-by: Kevin Traynor <kevin.traynor@intel.com> Signed-off-by: Maryam Tahhan <maryam.tahhan@intel.com> Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
| * netdev-linux: Avoid RTM_GETQDISC bug workaround on new-enough kernels.Ben Pfaff2015-03-181-10/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise we can't detect classless qdiscs. This has no useful effect for the currently supported qdiscs, which all have classes, but it makes it possible to add support for new classless qdiscs. This suddenly makes netdev-linux complain about qdiscs it doesn't know about (e.g. pfifo_fast), which isn't too useful, so this commit also demotes that INFO message to DBG level. Reported-by: Jonathan Vestin <jonavest@kau.se> Signed-off-by: Ben Pfaff <blp@nicira.com>
| * netdev-linux: Be more careful about integer overflow in policing.Ben Pfaff2015-03-171-7/+22
| | | | | | | | | | | | | | | | | | Otherwise the policing limits could make no sense if large rates were specified. Reported-by: Zhangguanghui <zhang.guanghui@h3c.com> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Ansis Atteka <aatteka@nicira.com>