[voq][minigraph] Add admin_status attribute for inband interface (#8050)
Why I did it In the config_db.json generated by minigraph "admin_status" attribute is missing for the VOQ inband interface port in the PORT table. How I did it Changes done to add admin_status attribute for voq inband interface port, if it exists in the PORT table keys.
This commit is contained in:
parent
8a48be9b74
commit
d78382b47c
@ -1488,6 +1488,11 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
|
|||||||
# make all neighbors connected ports to 'admin_up'
|
# make all neighbors connected ports to 'admin_up'
|
||||||
ports[port]['admin_status'] = 'up'
|
ports[port]['admin_status'] = 'up'
|
||||||
|
|
||||||
|
# bring up the inband voq interfaces
|
||||||
|
for inband_port in voq_inband_intfs:
|
||||||
|
if inband_port in ports.keys():
|
||||||
|
ports[inband_port]['admin_status'] = 'up'
|
||||||
|
|
||||||
results['PORT'] = ports
|
results['PORT'] = ports
|
||||||
results['CONSOLE_PORT'] = console_ports
|
results['CONSOLE_PORT'] = console_ports
|
||||||
|
|
||||||
|
@ -48,6 +48,11 @@
|
|||||||
<Type>Vlan</Type>
|
<Type>Vlan</Type>
|
||||||
<a:PrefixStr>1.1.1.1/24</a:PrefixStr>
|
<a:PrefixStr>1.1.1.1/24</a:PrefixStr>
|
||||||
</a:VoqInbandInterface>
|
</a:VoqInbandInterface>
|
||||||
|
<a:VoqInbandInterface>
|
||||||
|
<Name>Ethernet-IB0</Name>
|
||||||
|
<Type>port</Type>
|
||||||
|
<a:PrefixStr>2.2.2.2/32</a:PrefixStr>
|
||||||
|
</a:VoqInbandInterface>
|
||||||
</VoqInbandInterfaces>
|
</VoqInbandInterfaces>
|
||||||
<DataAcls/>
|
<DataAcls/>
|
||||||
<AclInterfaces/>
|
<AclInterfaces/>
|
||||||
|
@ -31,6 +31,7 @@ class TestCfgGen(TestCase):
|
|||||||
self.ecmp_graph = os.path.join(self.test_dir, 'fg-ecmp-sample-minigraph.xml')
|
self.ecmp_graph = os.path.join(self.test_dir, 'fg-ecmp-sample-minigraph.xml')
|
||||||
self.sample_resource_graph = os.path.join(self.test_dir, 'sample-graph-resource-type.xml')
|
self.sample_resource_graph = os.path.join(self.test_dir, 'sample-graph-resource-type.xml')
|
||||||
self.sample_subintf_graph = os.path.join(self.test_dir, 'sample-graph-subintf.xml')
|
self.sample_subintf_graph = os.path.join(self.test_dir, 'sample-graph-subintf.xml')
|
||||||
|
self.voq_port_config = os.path.join(self.test_dir, 'voq-sample-port-config.ini')
|
||||||
# To ensure that mock config_db data is used for unit-test cases
|
# To ensure that mock config_db data is used for unit-test cases
|
||||||
os.environ["CFGGEN_UNIT_TESTING"] = "2"
|
os.environ["CFGGEN_UNIT_TESTING"] = "2"
|
||||||
|
|
||||||
@ -778,11 +779,44 @@ class TestCfgGen(TestCase):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_minigraph_voq_inband_interface(self):
|
def test_minigraph_voq_inband_interface_vlan(self):
|
||||||
argument = "-m {} --var-json VOQ_INBAND_INTERFACE".format(self.sample_graph_voq)
|
argument = "-m {} --var-json VOQ_INBAND_INTERFACE".format(self.sample_graph_voq)
|
||||||
|
output = self.run_script(argument)
|
||||||
|
output_dict = utils.to_dict(output.strip())
|
||||||
self.assertDictEqual(
|
self.assertDictEqual(
|
||||||
json.loads(self.run_script(argument)),
|
output_dict['Vlan3094'],
|
||||||
{ 'Vlan3094': {'inband_type': 'Vlan'},
|
{'inband_type': 'Vlan'}
|
||||||
'Vlan3094|1.1.1.1/24': {}
|
)
|
||||||
|
self.assertDictEqual(
|
||||||
|
output_dict['Vlan3094|1.1.1.1/24'],
|
||||||
|
{}
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_minigraph_voq_inband_interface_port(self):
|
||||||
|
argument = "-m {} --var-json VOQ_INBAND_INTERFACE".format(self.sample_graph_voq)
|
||||||
|
output = self.run_script(argument)
|
||||||
|
output_dict = utils.to_dict(output.strip())
|
||||||
|
self.assertDictEqual(
|
||||||
|
output_dict['Ethernet-IB0'],
|
||||||
|
{'inband_type': 'port'}
|
||||||
|
)
|
||||||
|
self.assertDictEqual(
|
||||||
|
output_dict['Ethernet-IB0|2.2.2.2/32'],
|
||||||
|
{}
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_minigraph_voq_inband_port(self):
|
||||||
|
argument = "-m {} -p {} --var-json PORT".format(self.sample_graph_voq, self.voq_port_config)
|
||||||
|
output = self.run_script(argument)
|
||||||
|
output_dict = utils.to_dict(output.strip())
|
||||||
|
self.assertDictEqual(
|
||||||
|
output_dict['Ethernet-IB0'],
|
||||||
|
{'lanes': '133',
|
||||||
|
'alias': 'Recycle0',
|
||||||
|
'description': 'Recycle0',
|
||||||
|
'mtu': '9100',
|
||||||
|
'tpid': '0x8100',
|
||||||
|
'pfc_asym': 'off',
|
||||||
|
'admin_status': 'up'
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
34
src/sonic-config-engine/tests/voq-sample-port-config.ini
Normal file
34
src/sonic-config-engine/tests/voq-sample-port-config.ini
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# name lanes alias
|
||||||
|
Ethernet0 29,30,31,32 fortyGigE0/0
|
||||||
|
Ethernet4 25,26,27,28 fortyGigE0/4
|
||||||
|
Ethernet8 37,38,39,40 fortyGigE0/8
|
||||||
|
Ethernet12 33,34,35,36 fortyGigE0/12
|
||||||
|
Ethernet16 41,42,43,44 fortyGigE0/16
|
||||||
|
Ethernet20 45,46,47,48 fortyGigE0/20
|
||||||
|
Ethernet24 5,6,7,8 fortyGigE0/24
|
||||||
|
Ethernet28 1,2,3,4 fortyGigE0/28
|
||||||
|
Ethernet32 9,10,11,12 fortyGigE0/32
|
||||||
|
Ethernet36 13,14,15,16 fortyGigE0/36
|
||||||
|
Ethernet40 21,22,23,24 fortyGigE0/40
|
||||||
|
Ethernet44 17,18,19,20 fortyGigE0/44
|
||||||
|
Ethernet48 49,50,51,52 fortyGigE0/48
|
||||||
|
Ethernet52 53,54,55,56 fortyGigE0/52
|
||||||
|
Ethernet56 61,62,63,64 fortyGigE0/56
|
||||||
|
Ethernet60 57,58,59,60 fortyGigE0/60
|
||||||
|
Ethernet64 65,66,67,68 fortyGigE0/64
|
||||||
|
Ethernet68 69,70,71,72 fortyGigE0/68
|
||||||
|
Ethernet72 77,78,79,80 fortyGigE0/72
|
||||||
|
Ethernet76 73,74,75,76 fortyGigE0/76
|
||||||
|
Ethernet80 105,106,107,108 fortyGigE0/80
|
||||||
|
Ethernet84 109,110,111,112 fortyGigE0/84
|
||||||
|
Ethernet88 117,118,119,120 fortyGigE0/88
|
||||||
|
Ethernet92 113,114,115,116 fortyGigE0/92
|
||||||
|
Ethernet96 121,122,123,124 fortyGigE0/96
|
||||||
|
Ethernet100 125,126,127,128 fortyGigE0/100
|
||||||
|
Ethernet104 85,86,87,88 fortyGigE0/104
|
||||||
|
Ethernet108 81,82,83,84 fortyGigE0/108
|
||||||
|
Ethernet112 89,90,91,92 fortyGigE0/112
|
||||||
|
Ethernet116 93,94,95,96 fortyGigE0/116
|
||||||
|
Ethernet120 97,98,99,100 fortyGigE0/120
|
||||||
|
Ethernet124 101,102,103,104 fortyGigE0/124
|
||||||
|
Ethernet-IB0 133 Recycle0
|
Loading…
Reference in New Issue
Block a user