[sonic-py-common][multi ASIC] API to get a list of frontend ports (#5221)

* [sonic-py-common][multi ASIC] utility to get a list of frontend ports from a given list of ports
This commit is contained in:
Mahesh Maddikayala 2020-08-20 09:14:00 -07:00 committed by Ubuntu
parent 649b430faa
commit 389c5fe5ea

View File

@ -163,9 +163,8 @@ def get_namespaces_from_linux():
In a multi asic platform, each ASIC is in a Linux Namespace.
This method returns list of all the Namespace present on the device
Note: It is preferable to use this function can be used only
when the config_db is not available.
When configdb is available use get_all_namespaces()
Note: It is preferable to use this function only when config_db is not
available. When configdb is available use get_all_namespaces()
Returns:
List of the namespaces present in the system
@ -281,6 +280,17 @@ def is_port_internal(port_name, namespace=None):
return False
def get_external_ports(port_names, namespace=None):
external_ports = set()
ports_config = get_port_table(namespace)
for port in port_names:
if port in ports_config:
if (PORT_ROLE not in ports_config[port] or
ports_config[port][PORT_ROLE] == EXTERNAL_PORT):
external_ports.add(port)
return external_ports
def is_port_channel_internal(port_channel, namespace=None):
if not is_multi_asic():