Sunday, January 28, 2018

Cisco Switches -- What ports should you use for Port Channels based on port ASIC Assignments

Cisco uses chips called Application Specific Integrated Chips (ASIC) in its switch ports. An ASIC is the "Secret Sauce" that allows the switch to operate at line speed.

The number of switch ports controlled by one ASIC varies depending on the platform. The 6880-x uses one ASIC for every 8 ten Gigabit ports. 

A 1 Gigabit switch like a 2960x-48 uses two ASICs for all 50 ports. Ports g1/0/1-24 and port t1/0/1 are on ASIC 0 and Ports g1/0/25-48 and t1/0/2 are on ASIC 1.

On the 6880-x switch you can use the following command to see what ASICs a port uses:

sh int t1/5/1 capabilities | i ASIC
  Ports-in-ASIC (Sub-port ASIC) : 1-2,5-6 (1-8)
sh int t1/5/3 capabilities | i ASIC

  Ports-in-ASIC (Sub-port ASIC) : 3-4,7-8 (1-8)
sh int t1/5/11 capabilities | i ASIC
  Ports-in-ASIC (Sub-port ASIC) : 11-12,15-16 (9-16) 

In this example, port 1/5/1 is part of the ASIC in group 1. See Cisco ASIC Redundancy for a complete explanation of how the ASICs are grouped in a 6880-x switch.

The above output represents the channel mapping and the port to ASIC mapping of the interfaces. For example, Te1/5/1 shares the fabric with ports 2,5,6 (1-2,5-6) and the port-asic with ports 2-8 (1-8).

You can use "sh hw-module slot 5 port-group-mapping" to view the ASIC mappings.

sh hw-module slot 5 port-group-mapping

port-group ports
1 1, 2, 3, 4, 5, 6, 7, 8,
2 9, 10, 11, 12, 13, 14, 15, 16,



Why does this matter?

In a switch, it is possible for one ASIC to fail while the other ASICs continues to work. If you have created an Etherchannel for redundancy but used ports on the same ASIC you will have an outage if the ASIC fails. 

A better design is to use Ethercannel ports on different ASICs. It can be a pain to keep track of the ports for each Etherchannel when doing this. To reduce the pain I have a spreadsheet on Github that will create the port configuration and the interface configuration. All you have to do is enter the ports. You can download the spreadsheet from my github at Documents

If you are using a different platform you will have to lookup the ASIC groupings for that specific platform. For example, a Nexus 7K uses 4 port ASIC groupings.

On the 3750/2960 series switches, you use the "show platform pm if-numbers" command to display platform-dependent port-manager information.

In this example from a 2960x-48, the first number in the ports column is the ASIC that it falls on. There are only two ASICs across all 52 ports.

sh platform pm if-numbers 

interface gid  gpn  lpn  port slot unit slun port-type lpn-idb gpn-idb
----------------------------------------------------------------------
Gi1/0/1   1    1    1    0/2  1    1    1    local     Yes     Yes
Gi1/0/2   2    2    2    0/1  1    2    2    local     Yes     Yes
Gi1/0/3   3    3    3    0/4  1    3    3    local     Yes     Yes
Gi1/0/4   4    4    4    0/3  1    4    4    local     Yes     Yes
Gi1/0/5   5    5    5    0/6  1    5    5    local     Yes     Yes
Gi1/0/6   6    6    6    0/5  1    6    6    local     Yes     Yes
Gi1/0/7   7    7    7    0/8  1    7    7    local     Yes     Yes
Gi1/0/8   8    8    8    0/7  1    8    8    local     Yes     Yes
Gi1/0/9   9    9    9    0/10 1    9    9    local     Yes     Yes
Gi1/0/10  10   10   10   0/9  1    10   10   local     Yes     Yes
Gi1/0/11  11   11   11   0/12 1    11   11   local     Yes     Yes
Gi1/0/12  12   12   12   0/11 1    12   12   local     Yes     Yes
Gi1/0/13  13   13   13   0/16 1    13   13   local     Yes     Yes
Gi1/0/14  14   14   14   0/15 1    14   14   local     Yes     Yes
Gi1/0/15  15   15   15   0/18 1    15   15   local     Yes     Yes
Gi1/0/16  16   16   16   0/17 1    16   16   local     Yes     Yes
Gi1/0/17  17   17   17   0/20 1    17   17   local     Yes     Yes
Gi1/0/18  18   18   18   0/19 1    18   18   local     Yes     Yes
Gi1/0/19  19   19   19   0/22 1    19   19   local     Yes     Yes
Gi1/0/20  20   20   20   0/21 1    20   20   local     Yes     Yes
Gi1/0/21  21   21   21   0/24 1    21   21   local     Yes     Yes
Gi1/0/22  22   22   22   0/23 1    22   22   local     Yes     Yes
Gi1/0/23  23   23   23   0/26 1    23   23   local     Yes     Yes
Gi1/0/24  24   24   24   0/25 1    24   24   local     Yes     Yes
Gi1/0/25  25   25   25   1/2  1    25   25   local     Yes     Yes
Gi1/0/26  26   26   26   1/1  1    26   26   local     Yes     Yes
Gi1/0/27  27   27   27   1/4  1    27   27   local     Yes     Yes
Gi1/0/28  28   28   28   1/3  1    28   28   local     Yes     Yes
Gi1/0/29  29   29   29   1/6  1    29   29   local     Yes     Yes
Gi1/0/30  30   30   30   1/5  1    30   30   local     Yes     Yes
Gi1/0/31  31   31   31   1/8  1    31   31   local     Yes     Yes
Gi1/0/32  32   32   32   1/7  1    32   32   local     Yes     Yes
Gi1/0/33  33   33   33   1/10 1    33   33   local     Yes     Yes
Gi1/0/34  34   34   34   1/9  1    34   34   local     Yes     Yes
Gi1/0/35  35   35   35   1/12 1    35   35   local     Yes     Yes
Gi1/0/36  36   36   36   1/11 1    36   36   local     Yes     Yes
Gi1/0/37  37   37   37   1/16 1    37   37   local     Yes     Yes
Gi1/0/38  38   38   38   1/15 1    38   38   local     Yes     Yes
Gi1/0/39  39   39   39   1/18 1    39   39   local     Yes     Yes
Gi1/0/40  40   40   40   1/17 1    40   40   local     Yes     Yes
Gi1/0/41  41   41   41   1/20 1    41   41   local     Yes     Yes
Gi1/0/42  42   42   42   1/19 1    42   42   local     Yes     Yes
Gi1/0/43  43   43   43   1/22 1    43   43   local     Yes     Yes
Gi1/0/44  44   44   44   1/21 1    44   44   local     Yes     Yes
Gi1/0/45  45   45   45   1/24 1    45   45   local     Yes     Yes
Gi1/0/46  46   46   46   1/23 1    46   46   local     Yes     Yes
Gi1/0/47  47   47   47   1/26 1    47   47   local     Yes     Yes
Gi1/0/48  48   48   48   1/25 1    48   48   local     Yes     Yes
Gi1/0/49  49   49   49   0/13 1    49   49   local     Yes     Yes
Gi1/0/50  50   50   50   1/13 1    50   50   local     Yes     Yes
Te1/0/1   51   51   51   0/0  1    1    51   local     Yes     Yes
Te1/0/2   52   52   52   1/0  1    2    52   local     Yes     Yes






References

Cisco ASIC-Redundancy
Question On 3750 Asics
Catalyst 3750 Switch Show Platform Commands
Viewing ASIC Mappings - 6509E & 3750E
ASIC to port mapping