Add fullstack test with OVS arp_responder

Now that fullstack uses a modern OVS we may finally have
an OVS ARP responder test. The code will now have implicit
coverage. It previously was not run in any functional or
integration test.

Change-Id: I3db3185a08b7cc546dee9e711f5bda9143752f86
Related-Bug: #1623849
(cherry picked from commit 033903aec0)
This commit is contained in:
Assaf Muller 2016-09-15 18:02:16 -04:00 committed by Ihar Hrachyshka
parent 8a89cce6fc
commit cdfa780ab8
4 changed files with 11 additions and 8 deletions

View File

@ -65,7 +65,7 @@ such as what L2 agent to use or what type of routers to create.
+------------------------+------------+------------+------------+------------+------------+------------+
| DHCP HA | V | | | amuller | | |
+------------------------+------------+------------+------------+------------+------------+------------+
| OVS ARP responder | V | X* | | X* | | |
| OVS ARP responder | V | X* | | Implicit | | |
+------------------------+------------+------------+------------+------------+------------+------------+
| OVS agent | V | V | | V | | V |
+------------------------+------------+------------+------------+------------+------------+------------+
@ -90,9 +90,7 @@ such as what L2 agent to use or what type of routers to create.
layers, nor for the L3 agent changes. This has been an area of repeated
regressions.
* The functional job now compiles OVS 2.5 from source, enabling testing
features that we previously could not. The OVS ARP responder is one such
feature. Modifying the fullstack job to use OVS 2.5 as well will enable
testing the OVS ARP responder implicitly.
features that we previously could not.
Missing Infrastructure
----------------------

View File

@ -158,6 +158,7 @@ class OVSConfigFixture(ConfigFixture):
},
'agent': {
'l2_population': str(self.env_desc.l2_pop),
'arp_responder': str(self.env_desc.arp_responder),
}
})

View File

@ -34,12 +34,13 @@ class EnvironmentDescription(object):
Does the setup, as a whole, support tunneling? How about l2pop?
"""
def __init__(self, network_type='vxlan', l2_pop=True, qos=False,
mech_drivers='openvswitch,linuxbridge'):
mech_drivers='openvswitch,linuxbridge', arp_responder=False):
self.network_type = network_type
self.l2_pop = l2_pop
self.qos = qos
self.network_range = None
self.mech_drivers = mech_drivers
self.arp_responder = arp_responder
@property
def tunneling_enabled(self):

View File

@ -29,6 +29,7 @@ class BaseConnectivitySameNetworkTest(base.BaseFullStackTestCase):
of_interface = None
ovsdb_interface = None
arp_responder = False
def setUp(self):
host_descriptions = [
@ -43,7 +44,8 @@ class BaseConnectivitySameNetworkTest(base.BaseFullStackTestCase):
env = environment.Environment(
environment.EnvironmentDescription(
network_type=self.network_type,
l2_pop=self.l2_pop),
l2_pop=self.l2_pop,
arp_responder=self.arp_responder),
host_descriptions)
super(BaseConnectivitySameNetworkTest, self).setUp(env)
@ -77,8 +79,9 @@ class TestOvsConnectivitySameNetwork(BaseConnectivitySameNetworkTest):
network_scenarios = [
('VXLAN', {'network_type': 'vxlan',
'l2_pop': False}),
('GRE and l2pop', {'network_type': 'gre',
'l2_pop': True}),
('GRE-l2pop-arp_responder', {'network_type': 'gre',
'l2_pop': True,
'arp_responder': True}),
('VLANs', {'network_type': 'vlan',
'l2_pop': False})]
scenarios = testscenarios.multiply_scenarios(