diff --git a/roles/fabric/templates/ports.conf.j2 b/roles/fabric/templates/ports.conf.j2 index 907b97b..f52212a 100644 --- a/roles/fabric/templates/ports.conf.j2 +++ b/roles/fabric/templates/ports.conf.j2 @@ -1,11 +1,7 @@ # https://docs.nvidia.com/networking-ethernet-software/cumulus-linux/Layer-1-and-Switch-Ports/Interface-Configuration-and-Management/Switch-Port-Attributes/#breakout-ports -{% for interface in interfaces | selectattr('name', 'match', '^swp[0-9]+$') %} -{{ interface.name|regex_replace('^swp', '') }}= -{%- if interfaces|selectattr('name', 'match', '^'+interface.name+'s[0-9]+$') %} -4x -{% elif not interface.enabled %} -disabled -{% else %} -1x -{% endif %} +{% for interface in interfaces | selectattr('name', 'match', '^swp[0-9]+(s0)?$') %} +{# get '1' from 'swp1' and '2' from 'swp2s0' #} +{% set port = interface.name | regex_replace('^swp([0-9]+).*$', '\\1') %} +{% set count = interfaces | selectattr('name', 'match', '^swp'+port+'(s[0-9])*$') | length %} +{{ port }}={% if interface.enabled or count > 1 %}{{ count }}x{% else %}disabled{% endif +%} {% endfor %}