Skip to content

Commit f333342

Browse files
taoyl-mslguohan
authored andcommitted
[minigraph parser] add basic support for MGMT_PORT (#2103)
* [minigraph parser] add basic support for MGMT_PORT * Change method to determine local interface name
1 parent 3f58ca1 commit f333342

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/sonic-config-engine/minigraph.py

+14-1
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,20 @@ def parse_xml(filename, platform=None, port_config_file=None):
430430
if mgmt_routes:
431431
# TODO: differentiate v4 and v6
432432
mgmt_intf.itervalues().next()['forced_mgmt_routes'] = mgmt_routes
433-
results['MGMT_INTERFACE'] = mgmt_intf
433+
results['MGMT_PORT'] = {}
434+
results['MGMT_INTERFACE'] = {}
435+
mgmt_intf_count = 0
436+
mgmt_alias_reverse_mapping = {}
437+
for key in mgmt_intf:
438+
alias = key[0]
439+
if mgmt_alias_reverse_mapping.has_key(alias):
440+
name = mgmt_alias_reverse_mapping[alias]
441+
else:
442+
name = 'eth' + str(mgmt_intf_count)
443+
mgmt_intf_count += 1
444+
mgmt_alias_reverse_mapping[alias] = name
445+
results['MGMT_PORT'][name] = {'alias': alias, 'admin_status': 'up'}
446+
results['MGMT_INTERFACE'][(name, key[1])] = mgmt_intf[key]
434447
results['LOOPBACK_INTERFACE'] = lo_intfs
435448

436449
phyport_intfs = {}

src/sonic-config-engine/tests/test_cfggen.py

+5
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,11 @@ def test_minigraph_everflow(self):
9292
output = self.run_script(argument)
9393
self.assertEqual(output.strip(), "{'everflow0': {'src_ip': '10.1.0.32', 'dst_ip': '2.2.2.2'}}")
9494

95+
def test_minigraph_mgmt_ports(self):
96+
argument = '-m "' + self.sample_graph + '" -p "' + self.port_config + '" -v MGMT_PORT'
97+
output = self.run_script(argument)
98+
self.assertEqual(output.strip(), "{'eth0': {'alias': 'Management0', 'admin_status': 'up'}}")
99+
95100
def test_minigraph_interfaces(self):
96101
argument = '-m "' + self.sample_graph_simple + '" -p "' + self.port_config + '" -v \'INTERFACE.keys()\''
97102
output = self.run_script(argument)

0 commit comments

Comments
 (0)