summaryrefslogtreecommitdiff
path: root/tests/ovn-controller-vtep.at
Commit message (Collapse)AuthorAgeFilesLines
* tests: Get rid of overly specific --pidfile and --unixctl options.Ben Pfaff2016-10-121-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | At an early point in OVS development, OVS was built with fixed default directories for pidfiles and sockets. This meant that it was necessary to use lots of --pidfile and --unixctl options in the testsuite, to point the daemons to where they should put these files (since the testsuite cannot and generally should not touch the real system /var/run). Later on, the environment variables OVS_RUNDIR, OVS_LOGDIR, etc. were introduced to override these defaults, and even later the testsuite was changed to always set these variables correctly in every test. Thus, these days it isn't usually necessary to specify a filename on --pidfile or to specify --unixctl at all. However, many of the tests are built by cut-and-paste, so they tended to keep appearing anyhow. This commit drops most of them, making the testsuite easier to read and understand. This commit also sweeps away some other historical detritus. In particular, in early days of the testsuite there was no way to automatically kill daemons when a test failed (or otherwise ended). This meant that some tests were littered with calls to "kill `cat pidfile`" on almost every line (or m4 macros that expanded to the same thing) so that if a test failed partway through the testsuite would not hang waiting for a daemon to die that was never going to die without manual intervention. However, a long time ago we introduced the "on_exit" mechanism that obsoletes this. This commit eliminates a lot of the old litter of kill invocations, which also makes those tests easier to read. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org>
* ovn: Fix some races in ovn-controller-vtep tests.Ben Pfaff2016-10-071-6/+10
| | | | | | | | | | | This fixes a few races for port bindings appearing and being bound to a chassis. The ones changed to use "ovn-sbctl wait-until" were previously only waiting until a Port_Binding record appeared (created by ovn-northd), but not until the Port_Binding record's 'chassis' column was set (by ovn-controller). Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Gurucharan Shetty <guru@ovn.org>
* ovn-controller: Use UDP checksums when creating Geneve tunnels.Jesse Gross2016-08-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently metadata transmitted by OVN over Geneve tunnels is unprotected by any checksum other than the one provided by the link layer - this includes both the VNI and data stored in options. Turning on UDP checksums which cover this data has obvious benefits in terms of integrity protection. In terms of performance, this actually significantly increases throughput in most common cases when running on Linux based hosts without NICs supporting Geneve offload (around 60% for bulk traffic). The reason is that generally all NICs are capable of offloading transmitted and received UDP checksums (viewed as ordinary UDP packets and not as tunnels). The benefit comes on the receive side where the validated outer UDP checksum can be used to additionally validate an inner checksum (such as TCP), which in turn allows aggregation of packets to be more efficiently handled by the rest of the stack. Not all devices see such a benefit. The most notable exception is hardware VTEPs (currently using VXLAN but potentially Geneve in the future). These devices are designed to not buffer entire packets in their switching engines and are therefore unable to efficiently compute or validate UDP checksums. In addition certain versions of the Linux kernel are not able to fully take advantage of Geneve capable NIC offloads in the presence of checksums. (This is actually a pretty narrow corner case though - earlier versions of Linux don't support Geneve offloads at all and later versions support both offloads and checksums well.) In order avoid possible problems with these cases, efficient checksum receive performance is exposed as an encap option in the southbound database as a hint to remote senders. This currently defaults to off for hardware VTEPs and on for all other cases. Signed-off-by: Jesse Gross <jesse@kernel.org> Acked-by: Ryan Moats <rmoats@us.ibm.com> Acked-by: Ben Pfaff <blp@ovn.org>
* ovn-sbctl: eliminate a spurious test case error causeLance Richardson2016-07-191-1/+5
| | | | | | | | | | | | | | | | | | | | | The "ovn-sbctl" test fails occasionally due to log messages similar to these: jsonrpc|WARN|unix: receive error: Connection reset by peer reconnect|WARN|unix: connection dropped (Connection reset by peer) Since we're already ignoring "Broken pipe" messages in this test case, and the difference between EPIPE and ECONNRESET on send is simply a matter of whether the peer had unconsumed data in its receive buffer when the peer socket was closed, it should be OK to ignore "reset by peer" logs as well. This same type of failure has been observed in ovs-nbctl and ovn-vtep-controller tests, so fix it there as well. Signed-off-by: Lance Richardson <lrichard@redhat.com> Acked-by: Ryan Moats <rmoats@us.ibm.com> Signed-off-by: Russell Bryant <russell@ovn.org>
* ovn-controller-vtep: occasional failure in "binding 1" test caseLance Richardson2016-07-151-1/+2
| | | | | | | | | | | | | | | | | | The ovn-controller-vtep "binding 1" test case fails occasionally due to a race with the ovs-vtep daemon. If ovs-vtep happens to execute handle_physical() after "ovs-vsctl del-port p0", but before the test script has executed "vtep-ctl del-port br-vtep p0", the latter command will fail because ovs-vtep will have already deleted p0 from the vtep db. Eliminate this race while adding an additional check to verify that ovs-vtep is working as expected by waiting for ovs-vtep to remove entries for the deleted physical ports from the vtep db. Signed-off-by: Lance Richardson <lrichard@redhat.com> Suggested-by: Darrell Ball <dlu998@gmail.com> Acked-by: Darrell Ball <dlu998@gmail.com> Signed-off-by: Russell Bryant <russell@ovn.org>
* ovn-sbctl: Change lport-(un)bind to lsp-(un)bind.Russell Bryant2016-07-071-5/+5
| | | | | | | | | A previous commit changed the command names in ovn-nbctl from lport-* to lsp-*. Change lport-bind and lport-unbind in ovn-sbctl to match. Signed-off-by: Russell Bryant <russell@ovn.org> Acked-by: Amitabha Biswas <abiswas@us.ibm.com> Acked-by: Ben Pfaff <blp@ovn.org>
* ovn-nbctl: Update logical switch commands.Justin Pettit2016-06-111-5/+5
| | | | | | | | | | | | | A few minor changes related to logical switch commands: - Use "ls" instead of "lswitch" to be more consistent with other command changes. - Use commands where possible in ovn unit tests. - Update references from "lswitch" to "ls" (code) or "switch" (user). Signed-off-by: Justin Pettit <jpettit@ovn.org> Acked-by: Ryan Moats <rmoats@us.ibm.com> Acked-by: Ben Pfaff <blp@ovn.org>
* ovn-nbctl: Update logical switch port commands.Justin Pettit2016-06-111-19/+19
| | | | | | | | | | | | | A few minor changes related to logical switch port commands: - Use "lsp" instead of "lport" to be more consistent with later changes. - Use commands where possible in ovn unit tests. - Update references from "lport" to "lsp" (code) or "port" (user). Signed-off-by: Justin Pettit <jpettit@ovn.org> Acked-by: Ryan Moats <rmoats@us.ibm.com> Acked-by: Ben Pfaff <blp@ovn.org>
* ovn: Use Logical_Switch_Port in NB.Justin Pettit2016-06-111-7/+7
| | | | | | | | | | | | We have both logical switch and router ports. Router ports are referenced in "Logical_Router_Port" table, so this make it more consistent. Also change internal use of "lport" to "lsp". Signed-off-by: Justin Pettit <jpettit@ovn.org> Acked-by: Ryan Moats <rmoats@us.ibm.com> Acked-by: Ben Pfaff <blp@ovn.org>
* tests: Remove "test" from test names.Ben Pfaff2016-06-101-6/+6
| | | | | | | Every test is a test, so each test doesn't need to attest to being a test. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Ryan Moats <rmoats@us.ibm.com>
* ovn-controller-vtep.at: Pre-sort output before feeding to "sort -d"YAMAMOTO Takashi2016-05-201-2/+2
| | | | | | | | | | | | NetBSD's "sort -d" preserves the order of lines which doesn't have alphanumeric and blanks. eg. empty lines and []. It means it sometimes preserve unstable order of the list output. Also, simply remove -d option where the expected output doesn't include []. Signed-off-by: YAMAMOTO Takashi <yamamoto@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* Separating OVN NB and SB database processesRYAN D. MOATS2016-03-231-4/+7
| | | | | | | | | | | | OVN NB & SB DB's should be run in separate ovsdb-server processes and should run with ovn-ctl start_northd / stop_northd. This patch includes changes to unit tests, tutorial and debian scripts to remain self-consistent. Signed-off-by: RYAN D. MOATS <rmoats@us.ibm.com> Signed-off-by: Michael Arnaldi <arnaldimichael@gmail.com> Co-authored-by: Michael Arnaldi <arnaldimichael@gmail.com> Signed-off-by: Russell Bryant <russell@ovn.org>
* tests: consistently use OVS_APP_EXIT_AND_WAIT() for daemon terminationLance Richardson2016-03-181-7/+5
| | | | | | | | | Tools such as gcov rely on normal termination (via exit()), ensure consistent graceful termination of daemons in tests by using the OVS_APP_EXIT_AND_WAIT() macro. Signed-off-by: Lance Richardson <lrichard@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* tests: Set enable-dummy=system for ovn-controller-vtep tests.Russell Bryant2016-01-201-1/+1
| | | | | | | | | | All of the ovn-controller-vtep tests were failing on my laptop due to an unexpected message in the ovs-vswitchd log related to my VPN. This setting resolves it and makes all tests pass. Fixes: 0c1e8a7d637e ("ovn-controller-vtep: Add gateway module.") Signed-off-by: Russell Bryant <russell@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* tests: Add ovn keyword to all ovn tests.Russell Bryant2015-12-211-0/+1
| | | | | | | | | | | Autotest keywords are helpful for running a subset of the test suite. This patch makes it so you can run all OVN tests using the 'ovn' keyword. $ make check TESTSUITEFLAGS="-k ovn" Signed-off-by: Russell Bryant <russell@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* ovn-controller-vtep.at: Fix a raceYAMAMOTO Takashi2015-11-261-0/+1
| | | | | Signed-off-by: YAMAMOTO Takashi <yamamoto@midokura.com> Acked-by: Ben Pfaff <blp@ovn.org>
* ovn-nb: Rename Port_Bindings 'macs' column to 'addresses'.Ben Pfaff2015-10-161-9/+9
| | | | | | | In an upcoming commit this column will also support IP+MAC pairs. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
* ovn-controller-vtep: Extend vtep module to install Ucast_Macs_Remote.Alex Wang2015-09-151-0/+136
| | | | | | | | | | This commit extends the vtep module to support creating the 'Ucast_Macs_Remote' table entries in the vtep database for MAC addresses on the ovn logical ports. Signed-off-by: Alex Wang <ee07b291@gmail.com> Acked-by: Russell Bryant <rbryant@redhat.com> Acked-by: Justin Pettit <jpettit@nicira.com>
* ovn-controller-vtep: Add vtep module.Alex Wang2015-09-151-0/+52
| | | | | | | | | | This commit adds the vtep module to ovn-controller-vtep. The module will scan through the Port_Binding table in OVN-SB database, and update the vtep logcial switches tunnel keys. Signed-off-by: Alex Wang <ee07b291@gmail.com> Acked-by: Russell Bryant <rbryant@redhat.com> Acked-by: Justin Pettit <jpettit@nicira.com>
* tests: Replace ON_EXIT m4 macro by on_exit() shell function.Ben Pfaff2015-09-091-5/+5
| | | | | | | | A shell function doesn't need quoted and unquoted variants and it integrates naturally with other shell code. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Andy Zhou <azhou@nicira.com>
* tests: Automatically initialize OVS_*DIR vars when tests begin.Ben Pfaff2015-09-091-5/+0
| | | | | | | | | | A lot of tests need to initialize the OVS_RUNDIR, OVS_LOGDIR, etc. variables to point to the directory in which the tests run. Until now, each of them has had to do this individually, which is redundant. This commit starts to do this automatically. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Andy Zhou <azhou@nicira.com>
* tests: Avoid nonportable "sed -i".Ben Pfaff2015-08-281-9/+5
| | | | | | | | "sed -i" isn't entirely portable, and we can avoid it by using the argument to check_logs as intended. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
* ovn-controller-vtep.at: Remove all 'Broken pipe' warning logs fromAlex Wang2015-08-241-1/+9
| | | | | | | | | | | | | | | | ovsdb-server.log. This commit makes the OVN_CONTROLLER_VTEP_STOP remove all 'Broken pipe' warning logs from ovsdb-server.log before running 'check_log'. This is in that *ctl command (e.g. ovn-nbctl) exits right after committing the change to database; however, in reaction, some daemon (e.g. ovn-controller-vtep) may immediately update the database; this later update may cause database sending update back to *ctl command if *ctl has not proceeded to exit yet; and if *ctl command exits before database calling send, the send will fail with 'Broken pipe' error. Signed-off-by: Alex Wang <alexw@nicira.com> Acked-by: Russell Bryant <rbryant@redhat.com>
* ovn-controller-vtep.at: Check the successful exit of ovn-controller-vtep.Alex Wang2015-08-191-1/+3
| | | | | Signed-off-by: Alex Wang <alexw@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
* ovn-controller-vtep.at: Skip test when using Windows setup.Alex Wang2015-08-171-2/+7
| | | | | | | | | The 'ovs-vtep' simulator is not ported to Windows. So, for now, just skip all tests in ovn-controller-vtep.at when running in Windows. Signed-off-by: Alex Wang <alexw@nicira.com> Acked-by: Gurucharan Shetty <gshetty@nicira.com>
* ovn-controller-vtep: Add binding module.Alex Wang2015-08-161-0/+115
| | | | | | | | | | | This commit adds the binding module to ovn-controller-vtep. The module will scan through the Port_Binding table in ovnsb. If there is a port binding entry for a logical switch on the vtep gateway chassis's "vtep_logical_switches", sets the port binding's chassis column to the vtep gateway chassis. Signed-off-by: Alex Wang <alexw@nicira.com> Acked-by: Russell Bryant <rbryant@redhat.com>
* ovn-controller-vtep.at: Fix intermittent test failure.Alex Wang2015-08-161-0/+4
| | | | | | | | | | | | | When testing the recreation of 'chassis' table entry by 'ovn-controller- vtep'. The removal of 'chassis' table entry by the 'ovn-sbctl' could cause 'Broken pipe' warning in ovsdb-server.log. This is due to the race between 'ovn-sbctl' exiting and 'ovn-controller-vtep' adding the chassis back. So, if the 'ovn-sbctl' exits right when the ovsdb-server tries to send update of readd of the deleted 'chassis', the sending will fail with 'Broken pipe' error. Signed-off-by: Alex Wang <alexw@nicira.com> Acked-by: Russell Bryant <rbryant@redhat.com>
* ovn-controller-vtep.at: Fix intermittent test failure.Alex Wang2015-08-161-1/+1
| | | | | | | | | The test waits until grep no vlan '200' from the VTEP 'vlan_binding' column. However, string '200' could also appear in other 'vlan_binding' entry's uuid value. Instead, we should grep for '200='. Signed-off-by: Alex Wang <alexw@nicira.com> Acked-by: Russell Bryant <rbryant@redhat.com>
* ovn-controller-vtep: Add gateway module.Alex Wang2015-08-101-0/+151
| | | | | | | | | | | | | This commit adds the gateway module to ovn-controller-vtep. The module will register the physical switches to ovnsb as chassis and constantly update the "vtep_logical_switches" column in Chassis table. Limitation (Recorded in TODO file): - Do not support reading multiple tunnel ips of physical switch. Signed-off-by: Alex Wang <alexw@nicira.com> Acked-by: Russell Bryant <rbryant@redhat.com>
* ovn: Add controller for VTEP gateway.Alex Wang2015-08-101-0/+1
This commit lays down the foundation for a new controller in OVN, the ovn-controller-vtep, for controlling the vtep enabled gateways. Signed-off-by: Alex Wang <alexw@nicira.com> Acked-by: Russell Bryant <rbryant@redhat.com>