Catalyst Unified Data Access Plane (UADP) Switches

UADP is a family of ASIC based switches hailing to 2013 with version 1.0. Cisco presents these ASICs as poster children for the value add of Cisco's craft over capabilities of merchant silicon. Here unified refers to inclusion of hardware to run the CAPWAP protocol and enhance the speed of WLAN controllers.

One of the features of UADP is that it provides for a high speed interconnect to build stacks of switches. As such, it seems to have been designed with the access layer specifically in mind.

There are five versions of UADP: 1.0, 1.1, 2.0, 2.0 XL and 3.0. This is highlighted in UADP family white paper. Earlier Catalyst switches that preceded the UADP ASICs (3750, 2960) are listed in the Other shared memory section. These switches are very old.

UADP partitions packet memory with the largest chunk (64 percent) in a dynamic pool for burst absorption. A large chunk (25 percent) is reserved for the stacking ports with the balance dedicated to ports as a minimum allocation. A Cisco white paper refers the reader to cisco.com for further details -- without any guidance where said details might be found. Perhaps the reference is Cisco Catalyst 9000 Switching Platforms: QoS and Queuing White Paper.

Update August 2019

The following diagram appeared in BRKARC-2035 in 2019. It did not appear in earlier renditions of the slides for that session.

This 32-port 100 Gb/s switch uses two UADP 3 ASICS -- each with dual cores. Within each ASIC, memory is shared between the cores. Note Bene the ASIC-to-ASIC internconnect at the top of the diagram. Operating this interconnect requires 25 percent of the buffer capacity. Quoting from Qos and Queuing:

    All switches that use the UADP 3.0 ASIC support a unified buffer between the two ASIC cores. That will increase the burst absorption, as it is a single shared buffer between all ports on the switch.
Of course, they don't mean on the switch. They mean on the ASIC.

Table 4 in the QoS and Queuing Paper

Emphasis added for buffer rows.
Quality of Service UADP scale UADP Mini UADP 2.0 UADP 2.0 XL UADP 3.0
Used in Catalyst switchCat 9200Cat 9300Cat 9300, 9400, 9500Cat 9500 High, 9600
Class-maps (Ingress) per policy 256 256 256 256
Class-maps (egress) per policy 256 256 256 256
Policers (Ingress) per policy 63 63 63 63
Policers (engress) per policy 63 63 63 63
Total Policy-maps per switch 1599 1599 1599 1599
Aggregate Policers 1R2C per Core 1024 4096 4096 4096
Aggregate Policers 2R3C per Core 512 2048 2048 2048
Table-maps (ingress) 16 16 16 16
Table-maps (egress) 16 16 16 16
Markdown table (exceed action) 8 8 8 8
Markdown table (Violate action) 8 8 8 8
Egress Queues per port 8 8 8 8
Buffer per Core (MB)681618
Buffer per ASIC (MB)6163236
QoS ACLs per Core 1000 5000 18000 16000
QoS ACLs per Core per Direction 1000 5000 18000 8000
WRED (Up to Queues) NA 4 4 8
VCU (ingress) 192 192 192 192
VCU (egress) 96 96 96 96

Extract from table 3 in the QoS and Queuing Paper for UADP-3.0

Looking only at UADP-3.0 to avoid clutter
Queue1 Gbps hard max1 Gbps soft max10 G hard max10 G soft max25 G hard max 25 G soft max40 G hard max40 G soft max100 G hard max100 G soft max
Q01124482409604801920720288019207680
Q133667236014407202880108043202880 11520

The numbers in the table are buffer units. These are the default settings; they can be increased by 12X. The buffer units for UADP-1.0 are 256 bytes and probably the same for UADP-3.0. A single port can use up to Soft max from the shared pool if other ports are not contending for the shared resource. Since it is shared, memory is insufficient for more than a few ports to claim the maximum. The buffer allocation per port will be reduced from soft max down to hard max as the shared pool nears depletion.

Q0 is the highest prority queue and is used for things like BGP keep alive and spanning tree messages. User traffic is expected in Q1 and that is the focus here. It is possible to complicate matters by turning on additional queues.

To see the maximum burst absorption for a single port at extreme (12X) configuration expressed in bytes:
Queue1 Gbps hard max1 Gbps soft max10 G hard max10 G soft max25 G hard max 25 G soft max40 G hard max40 G soft max100 G hard max100 G soft max
Q12.1 MB4.4 MB8.8 MB 13.3 MB33.4 MB
In the extreme configuration above, a single 100 Gbps port can claim the entire buffer, the balance being reserved for the stacking ring ports.