Merge "Fix handling of SR-IOV PF routes"
This commit is contained in:
commit
65907fd564
|
@ -940,6 +940,10 @@ class IfcfgNetConfig(os_net_config.NetConfig):
|
|||
self.noop, promisc=sriov_pf.promisc,
|
||||
link_mode=sriov_pf.link_mode)
|
||||
self.interface_data[sriov_pf.name] = data
|
||||
if sriov_pf.routes:
|
||||
self._add_routes(sriov_pf.name, sriov_pf.routes)
|
||||
if sriov_pf.rules:
|
||||
self._add_rules(sriov_pf.name, sriov_pf.rules)
|
||||
|
||||
def add_sriov_vf(self, sriov_vf):
|
||||
"""Add a SriovVF object to the net config object
|
||||
|
|
|
@ -197,6 +197,11 @@ _ROUTES = """default via 192.168.1.1 dev em1 metric 10
|
|||
172.20.0.0/24 via 192.168.1.5 dev em1 metric 100
|
||||
"""
|
||||
|
||||
_ROUTES_PF = """default via 192.168.1.1 dev enp3s0f0 metric 10
|
||||
172.19.0.0/24 via 192.168.1.1 dev enp3s0f0
|
||||
172.20.0.0/24 via 192.168.1.5 dev enp3s0f0 metric 100
|
||||
"""
|
||||
|
||||
_ROUTES_WITH_TABLES = """172.19.0.0/24 via 192.168.1.1 dev em1 table table1
|
||||
172.20.0.0/24 via 192.168.1.1 dev em1 table 201
|
||||
172.21.0.0/24 via 192.168.1.1 dev em1 table 200
|
||||
|
@ -563,6 +568,17 @@ PEERDNS=no
|
|||
BOOTPROTO=none
|
||||
"""
|
||||
|
||||
_V4_SRIOV_PF_IFCFG = """# This file is autogenerated by os-net-config
|
||||
DEVICE=enp3s0f0
|
||||
ONBOOT=yes
|
||||
HOTPLUG=no
|
||||
NM_CONTROLLED=no
|
||||
PEERDNS=no
|
||||
BOOTPROTO=static
|
||||
IPADDR=192.168.1.2
|
||||
NETMASK=255.255.255.0
|
||||
"""
|
||||
|
||||
|
||||
class TestIfcfgNetConfig(base.TestCase):
|
||||
def setUp(self):
|
||||
|
@ -1952,6 +1968,24 @@ class TestIfcfgNetConfigApply(base.TestCase):
|
|||
route_data = utils.get_file_data(self.temp_route_file.name)
|
||||
self.assertEqual(_ROUTES, route_data)
|
||||
|
||||
def test_sriov_pf_network_apply(self):
|
||||
route1 = objects.Route('192.168.1.1', default=True,
|
||||
route_options="metric 10")
|
||||
route2 = objects.Route('192.168.1.1', '172.19.0.0/24')
|
||||
route3 = objects.Route('192.168.1.5', '172.20.0.0/24',
|
||||
route_options="metric 100")
|
||||
v4_addr = objects.Address('192.168.1.2/24')
|
||||
pf = objects.SriovPF('enp3s0f0', numvfs=10, addresses=[v4_addr],
|
||||
promisc=False, routes=[route1, route2, route3])
|
||||
self.provider.add_sriov_pf(pf)
|
||||
|
||||
self.provider.apply()
|
||||
|
||||
ifcfg_data = utils.get_file_data(self.temp_ifcfg_file.name)
|
||||
self.assertEqual(_V4_SRIOV_PF_IFCFG, ifcfg_data)
|
||||
route_data = utils.get_file_data(self.temp_route_file.name)
|
||||
self.assertEqual(_ROUTES_PF, route_data)
|
||||
|
||||
def test_dhcp_ovs_bridge_network_apply(self):
|
||||
interface = objects.Interface('em1')
|
||||
bridge = objects.OvsBridge('br-ctlplane', use_dhcp=True,
|
||||
|
|
Loading…
Reference in New Issue