diff --git a/src/sonic-config-engine/minigraph.py b/src/sonic-config-engine/minigraph.py index f30e668251..ba81e8faf7 100644 --- a/src/sonic-config-engine/minigraph.py +++ b/src/sonic-config-engine/minigraph.py @@ -1512,8 +1512,10 @@ def get_mux_cable_entries(mux_cable_ports, neighbors, devices): server_ipv4_lo_prefix = ipaddress.ip_network(UNICODE_TYPE(server_ipv4_lo_addr)) entry['server_ipv4'] = str(server_ipv4_lo_prefix) - if 'lo_addr_v6' in devices[neighbor]: - entry['server_ipv6'] = devices[neighbor]['lo_addr_v6'] + if 'lo_addr_v6' in devices[neighbor] and devices[neighbor]['lo_addr_v6'] is not None: + server_ipv6_lo_addr = devices[neighbor]['lo_addr_v6'].split('/')[0] + server_ipv6_lo_prefix = ipaddress.ip_network(UNICODE_TYPE(server_ipv6_lo_addr)) + entry['server_ipv6'] = str(server_ipv6_lo_prefix) mux_cable_table[intf] = entry else: print("Warning: no server IPv4 loopback found for {}, skipping mux cable table entry".format(neighbor)) diff --git a/src/sonic-config-engine/tests/simple-sample-graph-case.xml b/src/sonic-config-engine/tests/simple-sample-graph-case.xml index d9a21158c4..ce0174adc8 100644 --- a/src/sonic-config-engine/tests/simple-sample-graph-case.xml +++ b/src/sonic-config-engine/tests/simple-sample-graph-case.xml @@ -303,7 +303,7 @@ 10.10.10.1/32 - fe80::0001/128 + fe80::0001/80 10.0.0.1/32 diff --git a/src/sonic-config-engine/tests/test_minigraph_case.py b/src/sonic-config-engine/tests/test_minigraph_case.py index cf8a7557ae..6fa7c5352d 100644 --- a/src/sonic-config-engine/tests/test_minigraph_case.py +++ b/src/sonic-config-engine/tests/test_minigraph_case.py @@ -165,7 +165,7 @@ class TestCfgGenCaseInsensitive(TestCase): 'server1': { 'hwsku': 'server-sku', 'lo_addr': '10.10.10.1/32', - 'lo_addr_v6': 'fe80::0001/128', + 'lo_addr_v6': 'fe80::0001/80', 'mgmt_addr': '10.0.0.1/32', 'type': 'Server' }, @@ -275,12 +275,12 @@ class TestCfgGenCaseInsensitive(TestCase): 'Ethernet4': { 'state': 'auto', 'server_ipv4': '10.10.10.1/32', - 'server_ipv6': 'fe80::0001/128' + 'server_ipv6': 'fe80::1/128' }, 'Ethernet8': { 'state': 'auto', 'server_ipv4': '10.10.10.2/32', - 'server_ipv6': 'fe80::0002/128' + 'server_ipv6': 'fe80::2/128' } }