aboutsummaryrefslogtreecommitdiff
path: root/vswitchd
AgeCommit message (Collapse)Author
2012-10-25datapath: Fix Tunnel options TOSPravin B Shelar
Use DSCP bits from ToS set on tunnel. This is a crossport of commit 749ae9504293dbb695dd67402acbd47acbcbeb83 from master. Bug #8822. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com>
2012-08-22stp: port_no counter is off by oneAnsis Atteka
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>
2012-07-02ovs-vswitchd: Call mlockall() from the daemon, not the parent or monitor.Ben Pfaff
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>
2012-03-05vswitchd: Document behavior of 802.1p priorities with VLAN splinters.Ben Pfaff
Reported-by: likunyun <kunyunli@hotmail.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-03-05bridge: Remove unwanted ports at time of ofproto creation.Ben Pfaff
The reconfiguration code only deleted unwanted ports for bridges that had been created in previous (re)configurations. In fact, we should run this step even for bridges that are newly added, e.g. to delete ports that were added by a previous run of ovs-vswitchd and deleted from the database between runs. Before this commit, the following left "int" in datapath br0. After this commit, "int" is properly deleted: 1. With ovs-vswitchd running: # ovs-vsctl add-br br0 # ovs-vsctl add-port br0 int -- set interface int type=internal 2. Kill ovs-vswitchd, then: # ovs-vsctl --no-wait -- del-port br0 int 3. Restart ovs-vswitchd. Bug #9957. Reported-by: Hiroshi Tanaka <htanaka@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-16vswitchd: Always configure a default queue for QoS.Ben Pfaff
When an interface has QoS configured but no default queue (queue 0), OVS has until now installed that QoS configuration literally, which causes all packets destined for this default queue to be dropped. This behavior is usually both unexpected and undesirable. This commit changes behavior so that, when no default queue is configured, OVS uses a default "empty" configuration for the default queue. This behavior should be more acceptable when QoS is slightly misconfigured. I tested that, without this patch, configuring only queue 1 causes "tc class show" to show only queue 1 (handle 1:2) for linux-htb and linux-hfsc, and that with this patch it shows configurations for both queue 0 (handle 1:1) and queue 1. Bug #5583. Feature #7413. Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-01vswitchd: Make the MAC entry aging time configurable.Ben Pfaff
NICS-11. Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-01-24ofproto: Optionally flush all learning tables with appctl.Ethan Jackson
Signed-off-by: Ethan Jackson <ethan@nicira.com>
2012-01-03vswitchd: Also consider access port VLANs as "in use" for VLAN splinters.Ben Pfaff
It's natural to add an access port to a bridge and expect that trunk ports will then immediately start to work properly with that VLAN without additional configuration. This change makes that happen. Signed-off-by: Ben Pfaff <blp@nicira.com>
2011-12-16bond: Warn of imminent default bond_mode change.Ethan Jackson
Post version 1.4.*, we are planning to change the default bond_mode from balance-slb to active-backup. This commit warns users of the change so that they can prepare. Signed-off-by: Ethan Jackson <ethan@nicira.com>
2011-12-12bridge: Enable support for access and native VLAN ports on bonds.Ben Pfaff
Since Open vSwitch's inception we've disabled the use of bonds as access ports, for no particularly good reason. This also unintentionally prevented bonds from being used as native VLAN ports. This commit removes the code that prevented using bonds these ways Reported-and-tested-by: "Michael A. Collins" <mike.a.collins@ark-net.org> Signed-off-by: Ben Pfaff <blp@nicira.com>
2011-12-09bridge: Avoid use-after-free with VLAN splinters and multiple bridges.Ben Pfaff
The VLAN splinters feature uses a "pool" to track and free allocated blocks. There's only one pool, but the implementation was freeing all of the blocks in it for every bridge during reconfiguration, not just once for each reconfiguration, so caused a use-after-free when there was more than one bridge and a bridge other than the last one in the list of bridges had a VLAN splinter port. Bug #8671. Reported-by: Michael Mao <mmao@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
2011-11-30lacp: Require non-zero system ID.Ethan Jackson
It's a bug if LACP is configured with a system ID of zero. This patch assert fails in this case.
2011-11-30bridge: Honor lacp-system-id other_config setting.Ethan Jackson
The bridge code was completely ignoring the lacp-system-id setting. Future patches will add tests which would have caught this issue. Bug #8516.
2011-11-30bridge: Configure datapath ID earlier.Ben Pfaff
The design intent is for LACP ports to use the datapath ID as the default system ID when none is specifically configured. However, the datapath ID is not available that early. This commit makes it available earlier. This commit does not fix another bug that prevents the LACP system ID from being set properly (nothing sets it at all, in fact, so it always uses 0). Build and unit tested only.
2011-11-30bridge: Remove redundant newline.Ethan Jackson
2011-11-28ofproto: Add "fast path".Ben Pfaff
The key to getting good performance on the netperf CRR test seems to be to handle the first packet of each new flow as quickly as possible. Until now, we've only had one opportunity to do that on each trip through the main poll loop. One way to improve would be to make that poll loop circulate more quickly. My experiments show, however, that even just commenting out the slower parts of the poll loop yield minimal improvement. This commit takes another approach. Instead of making the poll loop overall faster, it invokes the performance-critical parts of it more than once during each poll loop. My measurements show that this commit improves netperf CRR performance by 24% versus the previous commit, for an overall improvement of 87% versus the baseline just before the commit that removed the poll_fd_woke(). With this commit, ovs-benchmark performance has also improved by 13% overall since that baseline.
2011-11-23ovs-vswitchd: Track packet and byte statistics sent on mirrors.Justin Pettit
This commit adds support for tracking the number of packets and bytes sent through a mirror. The numbers are kept in the new "statistics" column on the mirror table in the "tx_packets" and "tx_bytes" keys.
2011-11-23mirroring: Use more generic terms for mirroring.Justin Pettit
2011-11-23Implement new "VLAN splinters" feature.Ben Pfaff
The "VLAN splinters" feature works around buggy device drivers in old Linux versions. This feature is deprecated. When broken device drivers are no longer in widespread use, we will delete this feature. I tested earlier versions of this commit, but I have not tested this version. See ovs-vswitchd.conf.db(5) for more information.
2011-11-23vswitchd: Remove special case for VLAN devices.Ben Pfaff
We introduced this special case before the XenServer integration was complete. At that point, we were using VLAN devices on XenServer, with a separate bridge for each VLAN, so we needed this special case. But no version of OVS for any supported XenServer version uses VLAN devices this way, so we can delete the special case.
2011-11-23bridge: Fix incorrect comments.Ben Pfaff
2011-11-23bridge: Avoid reading other_config columns with ovsdb_idl_get().Ben Pfaff
ovsdb_idl_get() doesn't work with synthetic records. Upcoming commits will start synthesizing more ports and interfaces, so we should avoid using ovsdb_idl_get(). In the long term it's probably a good idea to come up with a better way to do synthetic database records, one that causes less trouble. Bug #8457.
2011-11-23vswitch: Implement dscp column of the Queue table.Ethan Jackson
The dscp column of the queue table instructs Open vSwitch to mark all traffic egressing the queue with the given DSCP bits in its tos field. Bug #7046.
2011-11-18tests: Allow unit tests to run as root.Ethan Jackson
The unit tests did not allow users to run them as root because ovs-vswitchd would destroy all of the existing 'system' datapaths. This patch prevents ovs-vswitchd from registering 'system' datapaths when running unit tests preventing the issue.
2011-11-17Implement a new port setting "other-config:priority-tags".Ben Pfaff
Linux hosts (and probably others) tend to ignore priority-tagged frames, so this new setting allows Open vSwitch to suppress sending them. Reported-by: Michael Mao <mmao@nicira.com> Bug #8320.
2011-11-17ofproto-dpif: Do not output RSPAN packets to SPAN ports.Ben Pfaff
It's always been my intention that ports used as port mirroring destinations (SPAN) be reserved solely for that purpose. When SPAN and RSPAN are both configured, however, RSPAN mirror packets could get directed to SPAN ports, which was unintentional. This commit also updates the documentation to make it clear (if that is even necessary) that this behavior is intentional. Found by inspection.
2011-11-15stp: Track BPDU tx and rx counts.Justin Pettit
When debugging spanning tree, it's useful to have counters about how many BPDUs have been sent and received. This commit keeps track of these counters and stores them in a new "statistics" column of the Port table. Feature #8103
2011-11-11docs: Always build ovs-vswitchd.conf.db.5 in srcdir.Ben Pfaff
Otherwise we build it in the build directory by default, which breaks the Debian package build (unless we're working from a "make dist" created tarball since that has ovs-vswitchd.conf.db.5 in the srcdir as part of the distribution). Reported-by: Ansis Atteka <aatteka@nicira.com> Tested-by: Ansis Atteka <aatteka@nicira.com>
2011-11-03cfm: Support tagged CCM PDUs.Ethan Jackson
This patch also causes eth_compose() to set the l2 and l3 pointers of the packets which it modifies.
2011-11-01ovs-appctl: Add fdb/flush commandAnsis Atteka
Added a new command that will allow to flush particular bridge's MAC learning table. Issue #7819
2011-11-01Fix build on FreeBSD.Edward Tomasz NapieraƂa
Patch below fixes build on FreeBSD; tested on 10.0-CURRENT. Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org> Signed-off-by: Ben Pfaff <blp@nicira.com>
2011-10-26Implement automatic dependency generation for manpages.Ben Pfaff
This ensures that manpages actually get rebuilt if any of the lib/*.man fragments that they depend upon are modified.
2011-10-26vswitch: Don't update STP on synthetic ports.Ethan Jackson
This can cause ovs-vswitchd to crash. Bug #8007. Reported-by: Krishna Miriyala <krishna@nicira.com>
2011-10-24datapath: Add multicast tunnel support.Ben Pfaff
Something like this, on two separate vswitches, works to try it out: route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 ovs-vsctl \ -- add-port br0 gre0 \ -- set interface gre0 type=gre options:remote_ip=224.0.0.1 Runtime tested on Linux 3.0, build tested on Linux 2.6.18, both i386. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com>
2011-10-22ovs-vswitchd: Add support for 802.1D STP.Justin Pettit
Still alpha quality, since only tested for interoperability with Linux bridge's STP implementation.
2011-10-18bridge: Allow specially named "unix:" controllers.Ben Pfaff
Some users want to use Unix domain socket controllers, so this relaxes the restriction. Requested-by: Jari Sundell <sundell.software@gmail.com>
2011-10-17vswitchd: New column "link_resets".Ethan Jackson
An interface's 'link_resets' column represents the number of times Open vSwitch has observed its link_state change.
2011-10-17vswitchd: Update link_state instantly.Ethan Jackson
With this patch, instead of updating an interface's link_state once every 5 seconds, it's updated immediately when changed. To avoid stressing the database, these updates are rate limited to once per second.
2011-10-17vswitchd: Cleanup rate limited DB writes.Ethan Jackson
The code to write the 'lacp_current' flag to the database was unnecessarily complicated. Future patches will directly benefit from this refactoring.
2011-10-17vswitchd: Remove iface_get_carrier().Ethan Jackson
It has only one caller, and doesn't improve the code's readability.
2011-10-17bridge: Forbid '/' in bridge names to prevent arbitrary directory access.Ben Pfaff
2011-10-12vswitch.xml: Correct CAPWAP minimum Linux kernel version.Ben Pfaff
2011-10-12ovs.db.types: Consistently use commas in formatting large numbers.Ben Pfaff
Suggested-by: Justin Pettit <jpettit@nicira.com>
2011-10-12vswitchd: Document constraints on keys.Ben Pfaff
Suggested-by: Justin Pettit <jpettit@nicira.com>
2011-10-11cfm: New 'cfm_opstate' setting.Ethan Jackson
In some cases, a controller may want to take an interface down for forwarding purposes, but avoid completely deconfiguring CFM and thus lose all connectivity monitoring. The new 'cfm_opstate' setting is a way to achieve this behavior.
2011-10-11vswitch.xml: Annotate 'false' keyword in CFM documentation.Ethan Jackson
2011-10-07vswitch.ovsschema: Mark more CFM columns ephemeral.Ben Pfaff
I spotted these being logged to the database. That doesn't match up with our usual model, so mark them ephemeral.
2011-10-04bridge: Fix comment describing iface_refresh_cfm_stats().Justin Pettit
2011-10-04vswitchd: Document map members as separate columnsBen Pfaff
The OVS configuration database now has numerous columns that contain fixed key-value pairs. Currently there's no way to see these at a glance, because they are not presented in the summary tables just before the detailed descriptions. This commit extends the XML format so that keys within a column can be described individually, and rearranges and rewrites vswitch.xml to take advantage of this feature.