diff --git a/config/main.py b/config/main.py index 01b9cf9ee37f..960021f9a455 100644 --- a/config/main.py +++ b/config/main.py @@ -292,6 +292,7 @@ def interface_name_is_valid(config_db, interface_name): port_dict = config_db.get_table('PORT') port_channel_dict = config_db.get_table('PORTCHANNEL') sub_port_intf_dict = config_db.get_table('VLAN_SUB_INTERFACE') + loopback_dict = config_db.get_table('LOOPBACK_INTERFACE') if clicommon.get_interface_naming_mode() == "alias": interface_name = interface_alias_to_name(config_db, interface_name) @@ -311,6 +312,10 @@ def interface_name_is_valid(config_db, interface_name): for sub_port_intf_name in sub_port_intf_dict: if interface_name == sub_port_intf_name: return True + if loopback_dict: + for loopback_name in loopback_dict: + if interface_name == loopback_name: + return True return False def interface_name_to_alias(config_db, interface_name): diff --git a/tests/config_int_name_test.py b/tests/config_int_name_test.py new file mode 100644 index 000000000000..dd00c8f98db0 --- /dev/null +++ b/tests/config_int_name_test.py @@ -0,0 +1,12 @@ +from unittest import mock + +from utilities_common.db import Db + +import config.main as config + + +def test_interface_name_checker(): + db = Db() + db.cfgdb.set_entry("LOOPBACK_INTERFACE", "Loopback0", {"NULL": "NULL"}) + + assert config.interface_name_is_valid(db.cfgdb, "Loopback0")