From 142019e380ae64600ab0e0c9c9fb427869addf1c Mon Sep 17 00:00:00 2001 From: jingwenxie Date: Thu, 11 Jul 2024 12:38:56 +0800 Subject: [PATCH] Fix no standalone lo_v6 entry which break YANG validation (#19514) ### Why I did it The load_mgmt_config generated lo_v6 is missing standalone entry which fail YANG validation ##### Work item tracking - Microsoft ADO **(number only)**:28665800 #### How I did it Add the standalone entry #### How to verify it Manual test in DUT Before change: ``` admin@str-msn2700a1-03:~$ sonic-cfggen -M /etc/sonic/device_desc.xml --print-data { "DEVICE_METADATA": { "localhost": { "hostname": "CPQ21-0101-0509-04T0", "hwsku": "Arista-7260CX3-D108C8" } }, "LOOPBACK_INTERFACE": { "lo_v6|2603:10d0:e:5eb::/128": {} <==== missing standalone entry which fail YANG }, "MGMT_INTERFACE": { "eth0|100.84.101.139/26": { "gwaddr": "100.84.101.129" }, "eth0|2603:10e2:f0:7478::b/64": { "gwaddr": "2603:10e2:f0:7478::1" } } } ``` After change: ``` admin@str-msn2700a1-03:~$ sonic-cfggen -M /etc/sonic/device_desc.xml --print-data { "DEVICE_METADATA": { "localhost": { "hostname": "CPQ21-0101-0509-04T0", "hwsku": "Arista-7260CX3-D108C8" } }, "LOOPBACK_INTERFACE": { "lo_v6": {}, <=== added standalone entry "lo_v6|2603:10d0:e:5eb::/128": {} }, "MGMT_INTERFACE": { "eth0|100.84.101.139/26": { "gwaddr": "100.84.101.129" }, "eth0|2603:10e2:f0:7478::b/64": { "gwaddr": "2603:10e2:f0:7478::1" } } } ``` --- src/sonic-config-engine/minigraph.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sonic-config-engine/minigraph.py b/src/sonic-config-engine/minigraph.py index d88487e27..ad4d0ec31 100644 --- a/src/sonic-config-engine/minigraph.py +++ b/src/sonic-config-engine/minigraph.py @@ -2226,9 +2226,9 @@ def parse_device_desc_xml(filename): 'hwsku': hwsku, }} - results['LOOPBACK_INTERFACE'] = {('lo', lo_prefix): {}} + results['LOOPBACK_INTERFACE'] = {'lo': {}, ('lo', lo_prefix): {}} if lo_prefix_v6: - results['LOOPBACK_INTERFACE'] = {('lo_v6', lo_prefix_v6): {}} + results['LOOPBACK_INTERFACE'] = {'lo_v6': {}, ('lo_v6', lo_prefix_v6): {}} results['MGMT_INTERFACE'] = {} if mgmt_prefix: