summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* cfm: Define old_cfm_fault as 'enum cfm_fault_reason'.branch-1.6Alex Wang2014-03-201-1/+1
| | | | | | | | | | | CFM fault variable type has been changed to 'enum cfm_fault_reason' for long time. However, inside cfm_run(), the old_cfm_fault is still defined as boolean. This commit fixes the issue. Found by inspection. Signed-off-by: Alex Wang <alexw@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
* ovsdb: Fix memory leak.Ben Pfaff2013-03-121-0/+5
| | | | | Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Ethan Jackson <ethan@nicira.com>
* netdev-linux: Fix netdev_linux_send() return value in corner case.Ben Pfaff2013-02-281-1/+1
| | | | | | | A negative 'sock' means there was an error but netdev_linux_send() returns a positive errno value on error. Signed-off-by: Ben Pfaff <blp@nicira.com>
* ofp-parse: Ignore "idle_age" and "hard_age" when parsing a flow string.Justin Pettit2013-02-011-1/+3
| | | | | | | | | | It should be possible to feed to output of "ovs-ofctl dump-flows" to "ovs-ofctl add-flows". However, some of the metadata needs to be ignored. "idle_age" and "hard_age" was recently added to the output of "ovs-ofctl dump-flows", but they were not ignored like the other metadata. This commit ignores them. Signed-off-by: Justin Pettit <jpettit@nicira.com>
* ovsdb: Fix double-free in ovsdb_jsonrpc_session_close().Ben Pfaff2013-01-241-2/+1
| | | | | | | | | | | | | ovsdb_session_destroy() was called twice but it should only be called once. This double-free is unlikely to cause problems in practice because it only triggers if there were ever more than two outstanding requests in the session at a time (because the only data being freed is an hmap, which does not allocate any heap memory unless the hmap has more than two elements). Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Ethan Jackson <ethan@nicira.com>
* Revert "datapath: Avoid null deref when GSO is for verifying header ↵Jesse Gross2013-01-211-2/+0
| | | | | | | | | | | | | | | | | | integrity only." This reverts commit 00c7faf3e5b7d4020e995a1429cf94313f197171. In general, it should not be possible have a NULL return value from skb_gso_segment() since we're not actually trying to verify the header integrity. No other callers with similar needs have NULL checks. The actual cause of the problem was LRO packets, which OVS isn't equipped to handle. The commit 33e031e99cc630baf1b0cb9256710dee7d9ab66d (datapath: Move LRO check from transmit to receive.) solves that problem by fixing the LRO check. In order to avoid possibly masking any other problems, this reverts the GSO check which should no longer be needed. Signed-off-by: Jesse Gross <jesse@nicira.com>
* datapath: Move LRO check from transmit to receive.Jesse Gross2013-01-211-11/+12
| | | | | | | | | | | | | | | | | | | Commit 24b019f808211a95078efd916064af0975ca5733 (datapath: Disable LRO from userspace instead of the kernel.) accidentally moved the check for LRO packets from the receive path to transmit. Since this check is supposed to protect OVS (and other parts of the system) from packets that it cannot handle it is obviously not useful on egress. Therefore, this commit moves it back to the receive side. The primary problem that this caused is upcalls to userspace tried to segment the packet even though no segmentation information is available. This would later cause NULL pointer dereferences when skb_gso_segment() did nothing. Bug #14772 Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
* datapath: Avoid null deref when GSO is for verifying header integrity only.Ben Pfaff2013-01-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | skb_gso_segment() has the following comment: * It may return NULL if the skb requires no segmentation. This is * only possible when GSO is used for verifying header integrity. Somehow queue_gso_packets() has never hit this case before, but some failures have suddenly been reported. This commit should fix the problem. Additional commentary by Jesse: We shouldn't normally be hitting this case because we're actually trying to do GSO, not header validation. However, I guess the guest/backend must be generating a packet with an MSS, which tricks us into thinking that it's GSO, but no GSO is actually requested. In the case of the bridge, header validation does take place so the situation is handled already. It seems not ideal that the network backend doesn't sanitize these packets but it's probably good that we handle it in any case. Bug #14772. Reported-by: Deepesh Govindan <dgovindan@vmware.com> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com>
* ovs-ctl: Exit, instead of resuming, after handling fatal signals.Ben Pfaff2012-12-261-1/+1
| | | | | | | | | | | | | | | When I wrote the "trap" calls in ovs-ctl, I had the mistaken notion that "trap $cmd $signal" would execute $cmd and then exit when $signal was caught. This is incorrect. Instead, it executes $cmd and then resumes executing the shell script. On the other hand, "trap $cmd 0" does by itself what I wanted: it causes the shell to execute $cmd and then exits due to the signal. So this commit changes the offending traps to use this form. Bug #14290. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Kyle Mestery <kmestery@cisco.com>
* bond: Fix segfault sending learning packets with LACP disabled.Ben Pfaff2012-11-291-1/+1
| | | | | | | | | | | | | | | | | | | | | It is essentially an invalid configuration to disable LACP but request TCP balancing: in this configuration, the bond drops all packets. But may_send_learning_packets() would still indicate that learning packets should be sent, so bond_compose_learning_packet() would try to choose an output slave for those packets, which would be NULL (because all packets are dropped), which would cause a segfault upon dereference. This commit fixes the problem by making may_send_learning_packets() no longer indicate that learning packets should be sent. I tested this issue by modifying bond_should_send_learning_packets() to always return true if may_send_learning_packets() returns true, and then introducing the invalid configuration described above. Without this comit, ovs-vswitchd segfaults quickly; with this commit, it does not. Bug #14090. Reported-by: Kiran Shanbhog <kiran@vmware.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* python/ovs/stream: Fix Stream.connect() retval for incomplete connection.Ben Pfaff2012-11-211-9/+11
| | | | | | | | | | If the loop condition in Stream.connect() was false, which is especially likely for TCP connections, then Stream.connect() would return None, which violates its documented behavior. This commit fixes the problem. Reported-by: Isaku Yamahata <yamahata@valinux.co.jp> Tested-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Ben Pfaff <blp@nicira.com>
* stp: port_no counter is off by oneAnsis Atteka2012-08-221-1/+1
| | | | | | | | | | | | This counter was off by one, because port_num should be less than STP_MAX_PORTS. This caused an assert hit later in stp_get_port(). Issue: 13059 Signed-off-by: Ansis Atteka <aatteka@nicira.com> Reported-by: Ram Jothikumar <rjothikumar@nicira.com> Acked-by: Ethan Jackson <ethan@nicira.com>
* bond: Tag flows according to their hash bucket, not just their slave.Ben Pfaff2012-08-212-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | The bonding code is supposed to tag flows two ways: - According to the chosen bond slave, to make it easy to invalidate all of the flows assigned to a given slave. - According to the hash value for a flow, to make it easy to invalidate all of the flows that hash into the same bucket. However, the code wasn't actually applying the hash-based tags. This meant that rebalancing didn't take effect immediately, and so after rebalancing we could get log messages like this: inconsistency in subfacet (actions were: 5) (correct actions: 4) specifying some flow that was moved by the rebalance. This commit fixes the problem by applying the hash-based tags. Bug #12847. Reported-by: Pratap Reddy <preddy@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Ethan Jackson <ethan@nicira.com>
* ovs-ctl: Add support for newer name for Open vSwitch kernel module.Ben Pfaff2012-08-061-10/+31
| | | | | | | | | Open vSwitch 1.4 and later is compatible with the upstream Linux kernel module but the init scripts hadn't been adapted to work with the upstream module name. Debian bug #684057. Signed-off-by: Ben Pfaff <blp@nicira.com>
* datapath: Relax set header validation.Jesse Gross2012-08-032-4/+4
| | | | | | | | | | | | | | | | | When installing a flow with an action to set a particular field we need to validate that the packets that are part of the flow actually contain that header. With IP we use zeroed addresses and with TCP/UDP the check is for zeroed ports. This check is overly broad and can catch packets like DHCP requests that have a zero source address in a legitimate header. This changes the check to look for a zeroed protocol number for IP or for both ports be zero for TCP/UDP before considering the header to not exist. Bug #12769 Reported-by: Ethan Jackson <ethan@nicira.com> Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
* flow: Correctly consider nw_frag_mask in some flow_wildcards_*() functions.Ben Pfaff2012-08-031-2/+5
| | | | | | | This probably means that some classifier functions based on the fragment type of packets have never worked properly. Signed-off-by: Ben Pfaff <blp@nicira.com>
* flow: Fix wild pointer dereference in flow_compose().Ethan Jackson2012-08-011-0/+1
| | | | | | | | | | | The 'ip' variable in flow_compose() points to some memory allocated in an ofpbuf. The ofpbuf is modified without making the necessary updates to the location of 'ip' causing a potential wild memory access. Found by inspection. Signed-off-by: Ethan Jackson <ethan@nicira.com>
* Avoid implementation-defined strerror behaviourEd Maste2012-07-271-1/+2
| | | | | | | | | | | | | | | | | POSIX states that the string returned by strerror() may be overwritten by a subsequent call (i.e., because it returns a pointer to a static buffer). Make a copy of one of the two strerror() strings to avoid this. Background: FreeBSD historically returned such a pointer only in the case of an invalid errno. With the addition of NLS strerror was changed to do so for all calls. Prior to this change I had confusing results from the test suite like "... is 22 (Invalid argument) but should be 0 (Invalid argument)". Signed-off-by: Ed Maste <emaste@adaranet.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* ovs-ctl: Start the rest of Open vSwitch if loading brcompat module fails.Ben Pfaff2012-07-271-1/+6
| | | | | | | | | | | This may be more useful in practice than failing the entire OVS startup sequence. Debian bug #681955. CC: 681955@bugs.debian.org Reported-by: Bastian Blank <waldi@debian.org> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Simon Horman <horms@verge.net.au>
* Fix race condition in parallel execution of "make install".Ben Pfaff2012-07-231-1/+1
| | | | | | | | | | | | | ovs-vsctl is listed, incorrectly, in both bin_PROGRAMS and bin_SCRIPTS. This meant that "make install" with the -j option could try to install ovs-vsctl two times in parallel, a race that occasionally caused a build failure, e.g.: http://buildd.debian.org/status/fetch.php?pkg=openvswitch&arch=s390&ver=1.4.2%2Bgit20120612-5&stamp=1342851603 Debian bug #682384. CC: 682384@bugs.debian.org Reported-by: Bastian Blank <waldi@debian.org> Signed-off-by: Ben Pfaff <blp@nicira.com>
* debian: Remove controller keys on openvswitch-controller package purge.Ben Pfaff2012-07-202-0/+45
| | | | | | | | | | | A Debian package is expected to remove all its configuration files (which includes all files in /etc) when it is purged, but the openvswitch-controller package wasn't doing that. This fixes the problem. Debian bug #682187. CC: 682187@bugs.debian.org Reported-by: Andreas Beckmann <debian@abeckmann.de> Signed-off-by: Ben Pfaff <blp@nicira.com>
* debian: Do not change iptables rules by default.Ben Pfaff2012-07-181-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Debian kernel maintainer Bastian Blank writes, at http://bugs.debian.org/680537: The netfilter rules are a shared resource. There is no synchronization, so the admin have the last word. As kernel maintainer, I see it similar to a configuration file, so §10.7 policy applies. The purpose of openvswitch is to provide support for switching, not to setup filter rules. This means it violates the principle of least surprise. I believe that the argument by analogy to configuration files is weak, given that the Debian policy section in question is very specifically about files, not about general principles. On the other hand, Debian does not install any firewall by default, so the presence of a rule that blocks GRE traffic is a sign that the administrator has taken an explicit action to install a firewall that blocks GRE, and therefore it is rather rude to override this. Therefore, this patch simply turns off this behavior on Debian, given that in ordinary Debian installations it will have no adverse effect on Open vSwitch. Debian bug #680537. CC: 680537@bugs.debian.org Reported-by: Bastian Blank <waldi@debian.org> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Simon Horman <horms@verge.net.au>
* cfm: Always initialize CCM "internal_ms_x" extension field.Ben Pfaff2012-07-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | Found by valgrind: Syscall param socketcall.sendmsg(msg.msg_iov[i]) points to uninitialised byte(s) at 0x42D3021: sendmsg (in /lib/libc-2.5.so) by 0x80E4D23: nl_sock_transact (netlink-socket.c:670) by 0x80D9086: dpif_linux_execute__ (dpif-linux.c:872) by 0x807D6AE: dpif_execute__ (dpif.c:957) by 0x807D6FE: dpif_execute (dpif.c:987) by 0x805DED9: send_packet (ofproto-dpif.c:4727) by 0x805F8E1: port_run_fast (ofproto-dpif.c:2441) by 0x8065CF6: run_fast (ofproto-dpif.c:926) by 0x805674F: ofproto_run_fast (ofproto.c:1148) by 0x804C957: bridge_run_fast (bridge.c:1980) by 0x8053F49: main (ovs-vswitchd.c:123) Address 0xbea0895c is on thread 1's stack Bug #11797. Signed-off-by: Ben Pfaff <blp@nicira.com>
* datapath: Check gso_type for correct sk_buff in queue_gso_packets().Ben Pfaff2012-07-101-1/+2
| | | | | | | | | | | | | | | | | At the point where it was used, skb_shinfo(skb)->gso_type referred to a post-GSO sk_buff. Thus, it would always be 0. We want to know the pre-GSO gso_type, so we need to obtain it before segmenting. Before this change, the kernel would pass inconsistent data to userspace: packets for UDP fragments with nonzero offset would be passed along with flow keys that indicate a zero offset (that is, the flow key for "later" fragments claimed to be "first" fragments). This inconsistency tended to confuse Open vSwitch userspace, causing it to log messages about "failed to flow_del" the flows with "later" fragments. Bug #12394. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com>
* debian: Remove obsolete advice to edit /etc/default/openvswitch-switch.Ben Pfaff2012-07-091-5/+1
| | | | | | This hasn't been necessary for a long time. Signed-off-by: Ben Pfaff <blp@nicira.com>
* debian: Add "netbase" dependency for /etc/protocols.Ben Pfaff2012-07-092-1/+2
| | | | | | | | | | ovs-ctl.in uses /etc/protocols, which is in the "netbase" package, so a dependency is required. Debian bug #680537. CC: 680537@bugs.debian.org Reported-by: Bastian Blank <waldi@debian.org> Signed-off-by: Ben Pfaff <blp@nicira.com>
* python: Call 'wait' methods correctly in jsonrpc and stream code.Ben Pfaff2012-07-022-2/+2
| | | | | | Bug #12301. Reported-by: Mike Kruze <mkruze@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* ovs-vswitchd: Call mlockall() from the daemon, not the parent or monitor.Ben Pfaff2012-06-291-7/+15
| | | | | | | | | | | | | | | mlockall(2) says: Memory locks are not inherited by a child created via fork(2) and are automatically removed (unlocked) during an execve(2) or when the process terminates. which means that --mlockall was ineffective in combination with --detach or --monitor or both. Both are used in the most common production configuration of Open vSwitch, so this means that --mlockall has never been effective in production. Signed-off-by: Ben Pfaff <blp@nicira.com>
* lib: Do not assume sig_atomic_t is int.Ed Maste2012-06-262-2/+3
| | | | | | | | On FreeBSD sig_atomic_t is long, which causes the comparison in fatal_signal_run to be true when no signal has been reported. Signed-off-by: Ed Maste <emaste@freebsd.org> Signed-off-by: Ben Pfaff <blp@nicira.com>
* Update dates for 1.6.1 release.v1.6.1Justin Pettit2012-06-252-2/+2
| | | | Signed-off-by: Justin Pettit <jpettit@nicira.com>
* ofp-util: Avoid use-after-free in ofputil_encode_flow_mod().Ben Pfaff2012-06-251-1/+1
| | | | | | | | | nx_put_match() can reallocate the ofpbuf's data so we need to reload the pointer. Found by inspection. Signed-off-by: Ben Pfaff <blp@nicira.com>
* debian: Make DKMS automatically build for running kernel.Ben Pfaff2012-06-192-0/+3
| | | | | | | | | | | | By default DKMS doesn't build on demand for each kernel booted or updated. Adding AUTOINSTALL=yes gives it this behavior. Based on a small sample of Debian packages and how-to guides for Ubuntu, AUTOINSTALL=yes is what most packages use and what users expect. Fix-suggested-by: Kirill Kabardin Reported-by: Ralf Heiringhoff <ralf@frosty-geek.net> Reported-at: https://bugs.launchpad.net/bugs/962189 Signed-off-by: Ben Pfaff <blp@nicira.com>
* Declare the version as "1.6.1".Justin Pettit2012-06-143-2/+14
| | | | Signed-off-by: Justin Pettit <jpettit@nicira.com>
* vlog: Avoid use-after-free in corner case.Ben Pfaff2012-06-131-1/+8
| | | | | | Found by valgrind. Signed-off-by: Ben Pfaff <blp@nicira.com>
* datapath: Check currect return value from skb_gso_segment()Pravin B Shelar2012-06-121-2/+2
| | | | | | | | | Fix return check typo. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com> Bug #11933
* datapath: Fix use-after-free bug in dp_notify.Pravin B Shelar2012-06-071-2/+3
| | | | | | | | dp_notify, in unregister case, is accessing vport after detaching it. Following patch fixes it. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com>
* ofproto: Fix use after free in ofoperation_complete().Ethan Jackson2012-06-071-0/+1
| | | | | | | | | | In one edge case, ofoperation_complete() destroys its rule, without updating its ofoperation that the rule is gone. Later in the same function, ofoperation_destroy() attempts to modify the rule which already destroyed. Bug #11797. Signed-off-by: Ethan Jackson <ethan@nicira.com>
* Set dates for release of 1.5.0.Justin Pettit2012-06-042-2/+2
| | | | Signed-off-by: Justin Pettit <jpettit@nicira.com>
* NEWS: Move learning timeout changes to 1.5.0 section.Justin Pettit2012-06-041-2/+2
| | | | | | | Changes to the default MAC learning timeout and making it configurable were added in 1.5.0, not 1.6.0. Signed-off-by: Justin Pettit <jpettit@nicira.com>
* ofp-util: Clean up cookie handling.Justin Pettit2012-05-2911-63/+322
| | | | | | | | | | | | | | | | | | | | | | | Commit e72e793 (Add ability to restrict flow mods and flow stats requests to cookies.) modified cookie handling. Some of its behavior was unintuitive and there was at least one bug (described below). Commit f66b87d (DESIGN: Document uses for flow cookies.) attempted to document a clean design for cookie handling. This commit updates the DESIGN document and brings the implementation in line with it. In commit e72e793, the code that handled processing OpenFlow flow modification requests set the cookie mask to exact-match. This seems reasonable for adding flows, but is not correct for matching, since OpenFlow 1.0 doesn't support matching based on the cookie. This commit changes to cookie mask to fully wildcarded, which is the correct behavior for modifications and deletions. It doesn't cause any problems for flow additions, since the mask is ignored for that operation. Bug #9742 Reported-by: Luca Giraudo <lgiraudo@nicira.com> Reported-by: Paul Ingram <paul@nicira.com> Signed-off-by: Justin Pettit <jpettit@nicira.com>
* ofproto-dpif: Fix CONTROLLER actions for LLC frames.Ethan Jackson2012-05-251-1/+7
| | | | | | | | | | | The CONTROLLER action assumed that all Ethernet frames stored their Ethernet Type in the two bytes succeeding the source and destination addresses. This turns out not to be true for 802.2 LLC frames, potentially causing an assertion failure. This patch solves the issue by skipping the assertion in this case. Bug #10349. Signed-off-by: Ethan Jackson <ethan@nicira.com>
* bridge: Ignore "null" interfaces as required.Ethan Jackson2012-05-211-2/+3
| | | | | | | | | | Commit bae7208e91a0 (bridge: Refactor bridge_reconfigure().) introduced a regression in which the switch would attempt to instantiate "null" interfaces in the datapath. This would, of course, fail and trigger a warning. Though harmless, these warnings confused users. Signed-off-by: Ethan Jackson <ethan@nicira.com>
* Fix typo in "PYTHONPATH".Ben Pfaff2012-05-221-1/+1
| | | | | Reported-by: Justin Pettit <jpettit@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* datapath: Reset upper layer protocol info on internal devices.Jesse Gross2012-05-171-0/+8
| | | | | | | | | | | | | | | | | It's possible that packets that are sent on internal devices (from the OVS perspective) have already traversed the local IP stack. After they go through the internal device, they will again travel through the IP stack which may get confused by the presence of existing information in the skb. The problem can be observed when switching between namespaces. This clears out that information to avoid problems but deliberately leaves other metadata alone. This is to provide maximum flexibility in chaining together OVS and other Linux components. Bug #10995 Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
* odp-util: Update ODPUTIL_FLOW_KEY_BYTES for current kernel flow format.Ben Pfaff2012-05-164-7/+36
| | | | | | | | | | | | | | | | | | | | Before we submitted the kernel module upstream, we updated the flow format by adding two fields to the description of packets with VLAN headers, but we forgot to update ODPUTIL_FLOW_KEY_BYTES to reflect these changes. The result was that a maximum-length flow did not fit in the given space. This fixes a crash processing IPv6 neighbor discovery packets with VLAN headers received in a tunnel configured with key=flow or in_key=flow. This updates some comments to better describe the implications of ODPUTIL_FLOW_KEY_BYTES (suggested by Justin). This also updates test-odp.c so that it would have caught this problem, and updates odp.at to demonstrate that a full 156 bytes are necessary. (To see that, revert the change to ODPUTIL_FLOW_KEY_BYTES and run the test.) Reported-by: Dan Wendlandt <dan@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* dpif-netdev: allow for proper destruction of netdev datapathsGiuseppe Lettieri2012-05-162-1/+13
| | | | | | | | | | | | | | | Until now, bridges with datapath_type=netdev did not destroy the datapath when deleted. In particular, the tap device implementing the internal interface was not close()d, and therefore the tap persists until ovs-vswitchd exit()s. This behaviour was caused by the missing callback for 'enumerate' in the dpif-netdev class. Without this callback 'bridge_reconfigure' failed to realize that there are datapaths with no bridge, and thus cannot destroy them. Providing an 'enumerate' callback fixes this. Signed-off-by: Giuseppe Lettieri <g.lettieri@iet.unipi.it> Signed-off-by: Ben Pfaff <blp@nicira.com>
* ofp-util: Treat a packet-out in_port of OFPP_CONTROLLER as OFPP_NONE.Ben Pfaff2012-05-145-6/+61
| | | | | | | | | | | | | | Some OpenFlow 1.0 controllers incorrectly use OPFP_CONTROLLER as the in_port in packet-out messages, when OFPP_NONE is their intent. Until now, Open vSwitch has rejected such requests with an error message. This commit makes Open vSwitch instead treat OFPP_CONTROLLER the same as OFPP_NONE for compatibility with those controllers. (Also, as of this writing, OpenFlow 1.0.1 appears to be changing the port to use from OFPP_NONE to OFPP_CONTROLLER.) Suggested-by: Rob Sherwood <rob.sherwood@bigswitch.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* odp-util: Fix parsing of actions encapsulated within "sample" actions.Ben Pfaff2012-05-101-2/+1
| | | | Signed-off-by: Ben Pfaff <blp@nicira.com>
* rhel: Add timeouts to network scripts.Brian Kruger2012-05-093-6/+9
| | | | | | | | | | | | | If the daemon(s) aren't running for whatever reason, the RHEL ovs ifup/ifdown scripts don't take that into account and an attempt to reboot a system could take forever. (literally. endless loop!) Here are a couple of patches (one of ifup, one for ifdown) to add timeouts (10 seconds), because it runs per interface you have configured and that could take awhile to reboot a system if needed. Signed-off-by: Brian Kruger <bkruger+ovsdev@gmail.com> [blp@nicira.com fixed up a conflict against master] Signed-off-by: Ben Pfaff <blp@nicira.com>
* datapath: Validation of IPv6 set port action uses IPv4 headerPravin B Shelar2012-05-081-7/+15
| | | | | | | | | | | | When the kernel validates set TCP/UDP port actions, it looks at the ports in the existing flow to make sure that the L4 header exists. However, these actions always use the IPv4 version of the struct. Following patch fixes this by checking for flow ip protocol first. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com> Bug #11205