Featured image of post Cisco ACI – Convert Leaf Ports (Uplink to Downlink) - 2023 Update

Cisco ACI – Convert Leaf Ports (Uplink to Downlink) - 2023 Update

How to convert the 40/100G Leaf Uplinks Port to Downlinks. This changes them to regular ports that can be used for end systems, l3 outs, etc.

Home / Posts / Cisco ACI – Convert Leaf Ports (Uplink to Downlink) - 2023 Update

Overview

Since ACI release 3.1(1) it’s possible to use some Leaf Uplinks as Downlink Ports. This could help you out if there is a need for some 40/100G ports but you are currently only running 10/25G Leafs.

Currently (July 2023 update), the following Leafs support the conversion:

  • N9K-C9348GC-FXP1
  • N9K-C93180LC-EX
  • N9K-C93180YC-EX
  • N9K-C93180YC-FX
  • N9K-C93180YC-FX3
  • N9K-C93108TC-EX2
  • N9K-C93108TC-FX2
  • N9K-C93108TC-FX3
  • N9K-C9336C-FX2
  • N9K-93240YC-FX2
  • N9K-C93216TC-FX2
  • N9K-C93360YC-FX2
  • N9K-C93600CD-GX
  • N9K-C9364C-GX
  • N9K-C9316D-GX

Limitations

There are some limitations, details can be found on the Cisco Page for ACI Version 3.2, for ACI Version 4.2 or for ACI Version 5.2

Overview of the limitations

The following table provides an overview over the Switches that support the conversion and on which ports.

Switch Model Default Links Max Uplinks (Fabric Ports) Max Downlinks (Server Ports) Release Supported
N9K-C9348GC-FXP1 48 x 100M/1G BASE-T downlinks
4 x 10/25-Gbps SFP28 downlinks
2 x 40/100-Gbps QSFP28 uplinks
48 x 100M/1G BASE-T downlinks
4 x 10/25-Gbps SFP28 uplinks
2 x 40/100-Gbps QSFP28 uplinks
Same as default port configuration 3.1(1)
N9K-C93180YC-EX 48 x 10/25-Gbps fiber downlinks
6 x 40/100-Gbps QSFP28 uplinks
Same as default port configuration 48 x 10/25-Gbps fiber downlinks
4 x 40/100-Gbps QSFP28 downlinks
2 x 40/100-Gbps QSFP28 uplinks
3.1(1)
N9K-C93180YC-FX 48 x 10/25-Gbps fiber downlinks
6 x 40/100-Gbps QSFP28 uplinks
48 x 10/25-Gbps fiber uplinks
6 x 40/100-Gbps QSFP28 uplinks
48 x 10/25-Gbps fiber downlinks
4 x 40/100-Gbps QSFP28 downlinks
2 x 40/100-Gbps QSFP28 uplinks
4.0(1)
N9K-C93180YC-FX3 48 x 10/25-Gbps fiber downlinks
6 x 40/100-Gbps QSFP28 uplinks
48 x 10/25-Gbps fiber uplinks
6 x 40/100-Gbps QSFP28 uplinks
48 x 10/25-Gbps fiber downlinks
4 x 40/100-Gbps QSFP28 downlinks
2 x 40/100-Gbps QSFP28 uplinks
5.1(3)
N9K-C93108TC-EX2 48 x 10GBASE-T downlinks
6 x 40/100-Gbps QSFP28 uplinks
Same as default port configuration 48 x 10/25-Gbps fiber downlinks
4 x 40/100-Gbps QSFP28 downlinks
2 x 40/100-Gbps QSFP28 uplinks
3.1(1)
N9K-C93108TC-FX2 48 x 10GBASE-T downlinks
6 x 40/100-Gbps QSFP28 uplinks
Same as default port configuration 48 x 10/25-Gbps fiber downlinks
4 x 40/100-Gbps QSFP28 downlinks
2 x 40/100-Gbps QSFP28 uplinks
4.0(1)
N9K-C93108TC-FX3 48 x 10GBASE-T downlinks
6 x 40/100-Gbps QSFP28 uplinks
Same as default port configuration 48 x 10/25-Gbps fiber downlinks
4 x 40/100-Gbps QSFP28 downlinks
2 x 40/100-Gbps QSFP28 uplinks
5.1(3)
N9K-C9336C-FX2 30 x 40/100-Gbps QSFP28 downlinks
6 x 40/100-Gbps QSFP28 uplinks
36 x 40/100-Gbps QSFP28 uplinks 34 x 40/100-Gbps QSFP28 downlinks
2 x 40/100-Gbps QSFP28 uplinks
4.1(1)
N9K-93240YC-FX2 48 x 10/25-Gbps fiber downlinks
12 x 40/100-Gbps QSFP28 uplinks
48 x 10/25-Gbps fiber uplinks
12 x 40/100-Gbps QSFP28 uplinks
48 x 10/25-Gbps fiber downlinks
10 x 40/100-Gbps QSFP28 downlinks
2 x 40/100-Gbps QSFP28 uplinks
4.1(1)
N9K-C93216TC-FX2 96 x 10G BASE-T downlinks
12 x 40/100-Gbps QSFP28 uplinks
Same as default port configuration 96 x 10G BASE-T downlinks
10 x 40/100-Gbps QSFP28 downlinks
2 x 40/100-Gbps QSFP28 uplinks
4.1(2)
N9K-C93360YC-FX2 96 x 10/25-Gbps SFP28 downlinks
12 x 40/100-Gbps QSFP28 uplinks
44 x 10/25Gbps SFP28 downlinks
52 x 10/25Gbps SFP28 uplinks
12 x 40/100Gbps QSFP28 uplinks
96 x 10/25-Gbps SFP28 downlinks
10 x 40/100-Gbps QSFP28 downlinks
2 x 40/100-Gbps QSFP28 uplinks
4.1(2)
N9K-C93600CD-GX 28 x 40/100-Gbps QSFP28 downlinks
8 x 40/100/400-Gbps QSFP-DD uplinks
28 x 40/100-Gbps QSFP28 uplinks
8 x 40/100/400-Gbps QSFP-DD uplinks
28 x 40/100-Gbps QSFP28 downlinks
6 x 40/100/400-Gbps QSFP-DD downlinks
2 x 40/100/400-Gbps QSFP-DD uplinks
4.2(2)
N9K-C9364C-GX 48 x 40/100-Gbps QSFP28 downlinks
16 x 40/100-Gbps QSFP28 uplinks
64 x 40/100-Gbps QSFP28 uplinks 62 x 40/100-Gbps QSFP28 downlinks
2 x 40/100-Gbps QSFP28 uplinks
4.2(3)
N9K-C9316D-GX 12 x 40/100/400 Gbps QSFP-DD downlinks
4 x 40/100/400 Gbps QSFP-DD uplinks
16 x 40/100/400 Gbps QSFP-DD uplinks 14 x 40/100/400 Gbps QSFP-DD downlinks 5.1(4)

Our use case

Our use case was to use some of the 40/100G Uplink Ports as Downlinks on a N9K-C93180YC-FX. The main limitation there is that the last 2 ports (53 and 54) don’t support conversion, no issue if you use them as Uplinks anyway. Otherwise you have move first your Uplinks to 53/54 and then convert the ports to Downlinks.

Conversion process

The conversion process is pretty straight forward.
Head to Fabric -> Inventory, open up the respective POD and select your Leaf.

Overview of a leaf

Go to the “Interface” tab and change the mode to “Configuration”

Interface overview of a leaf

Now select the port you want to change from uplink to downlink and then select “Downlink”.

Change the port type

There will be a popup with the information about the change, “Submit” it.

Submit dialog

And that’s it, repeat for all the other interfaces you want to convert. Then reload the Leaf.

Reboot the leaf

After the switch is back up, you got the 40/100G Downlink ports ready to use.

API conversion

If you want to automate the interface conversion process and use the ACI API for that, then that’s possible as well. The biggest challenge is always to find the right API calls and the needed classes.

But I can help you with that so that the interface conversion from Uplink to Downlink (or in the other direction) is easy for you.

Convert the Interface

POST to the URL https://{{ip}}/api/node/mo/uni/infra.json

Use the following Body and modify the Node and Port as requested.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
  "infraInfra": {
    "attributes": {},
    "children": [
      {
        "infraPortDirecPol": {
          "attributes": {
            "status": "created,modified"
          },
          "children": [
            {
              "infraRsPortDirection": {
                "attributes": {
                  "tDn": "topology/pod-1/paths-111/pathep-[eth1/49]",
                  "direc": "DownLink"
                }
              }
            }
          ]
        }
      }
    ]
  }
}

XML

Thanks to the comment from KK76, this is the way through XML

1
2
3
4
5
<infrainfra>
    <infraportdirecpol>
        <infrarsportdirection tdn="topology/pod-1/paths-101/pathep-[eth1/51]" direc="DownLink"/>
    </infraportdirecpol>
</infrainfra>

Reload

As mentioned, you need to reload the leaf for the interface conversion to become active. The reload can be done through the API as well.

POST to the URL https://{{ip}}/api/node/mo/topology/pod-1/node-111/sys/action.json

With the following Body

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
{
  "actionLSubj": {
    "attributes": {
      "dn": "topology/pod-1/node-111/sys/action/lsubj-[topology/pod-1/node-111/sys/ch]"
    },
    "children": [
      {
        "eqptChReloadLTask": {
          "attributes": {
            "dn": "topology/pod-1/node-111/sys/action/lsubj-[topology/pod-1/node-111/sys/ch]/eqptChReloadLTask",
            "adminSt": "start"
          }
        }
      }
    ]
  }
}
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy