Skip to content

Commit

Permalink
[sonic-py-common][multi ASIC] API to get a list of frontend ports (so…
Browse files Browse the repository at this point in the history
…nic-net#5221)

* [sonic-py-common][multi ASIC] utility to get a list of frontend ports from a given list of ports
  • Loading branch information
smaheshm authored and santhosh-kt committed Feb 25, 2021
1 parent 0cc41b0 commit 59392a1
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions src/sonic-py-common/sonic_py_common/multi_asic.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,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
Expand Down Expand Up @@ -253,6 +252,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():
Expand Down

0 comments on commit 59392a1

Please sign in to comment.