ASR920 Overview

References:
https://www.xilinx.com/support/documentation/data_sheets/ds180_7Series_Overview.pdf
http://www.cisco.com/c/en/us/td/docs/routers/asr903/software/guide/tcam-threshold-config-xe-3s-asr903-book/nt-tcam.html

Larger 24 port devices have fixed 10G SFP ports, smaller devices have dual rate 1G/10G SFP ports.

The Cylon ASIC used inside all the ASR920 variations is the next generation of the Nile ASIC used inside the ME3600X and ME3800X devices (many commands on the CLI are directly ripped from the ME3x00's and say "Nile info..." when displaying Cylon statistics, they often display output for two ASICs because the ME's had two Nile ASICs but the stats for the second ASIC are always blank/zero).

The Cylon ASIC is a 64Gbps full-duplex ASIC (the same as the ASR900 RSP2) with a 12MB shared buffer pool. This means the 24x1G + 4x10G version with the interface module slot (ASR-920-24SZ-IM) is the only oversubscribed unit if the IM slot is used. The units support 4K queues, 512 sub-channels and 4K policers. For MPLS 5 label push and 3 label pop is support, for VLANs 2 push or 1 pop are supported. 20K IPv4 routes and 4K IPv6 routes are supported. 16K ingress MPLS and 28K egress MPLS labels are supported.

All ASR920 variants have 4GB of DDR3 memory for RAM and 4GB of DDR3 memory attacahed to the FPGA. The Cylon ASIC is a fully integrated ASIC with no external memory so the TCAM is used for all forwarding and packet processing look-ups. So based on that it is not clear why the FPGA has 4GB of DDR3 RAM?

Product codenames:
ASR-920-12CZ* / ASR-920-4SZ* == Striker. P2020 Freescale 1.0Ghz  dual core (64 bit?) PPC CPU.
ASR-920-24* == Pegasus. P2020 Freescale 1.2Ghz dual core (64 bit?) PPC CPU.
ASR-920-12SZ-IM == Crete. Freescale T1042 1.2-1.4Ghz quad core 64-bit PPC CPU.

Striker:
ASR-920-12CZ-A#show ver | i Freescale
cisco ASR-920-12CZ-A (Freescale P2020) processor (revision 1.0 GHz) with 912993K/6147K bytes of memory.

ASR-920-12CZ-A#sh pla hardware pp active fpga version
HoFPGA firmware version

Current FPGA Version: 0X00010010   ! This number will change with microcode upgrades

Bundled FPGA FW Version : 0X00010010



Pegasus:
ASR-920-24SZ-M#show ver | i Freescale
cisco ASR-920-24SZ-M (Freescale P2020) processor (revision 1.2 GHz) with 916423K/6147K bytes of memory.

ASR-920-24SZ-M#sh pla hardware pp active fpga version
HoFPGA firmware version

Current FPGA Version: 0X00020026

Bundled FPGA FW Version : 0X00020026



Crete:
ASR-920-12SZ-IM#show ver | i Freescale
cisco ASR-920-12SZ-IM (Freescale T1042) processor (revision 1.2 GHz) with 919092K/6147K bytes of memory.

ASR-920-12SZ-IM#sh pla hardware pp active fpga version
HoFPGA firmware version

Current FPGA Version: 0X0001000c

Bundled FPGA FW Version : 0X0001000c

 

General Troubleshooting Commands:

!
! CPU and memory specific
!
show platform software status control-processor
show proc cpu platform sorted


! ! ASIC specific ! ! Various commands reference the Nile ASIC in the help text so it seems the text hasn't been updated. ! Also various commands reference 2 ASICs but only have stats for 1, so again it seems the commands ! weren't "updated" to reflect the single ASIC design of the ASR920. ! This command does specifically say "Cylon" in the output: show platform hardware pp active asic debug 0 ! Port ASIC stats for drops and errors show platform hardware pp active asic statistics 0 ! Cef forwarding and drop statistics show platform hardware pp active feature cef statistics ! Show Cylon exception packet processing show platform hardware pp active exception all ! ASIC punt statistics show platform hardware pp active infrastructure pi npd statistics summary show platform hardware pp active infrastructure pi nft statistics ! Info on packet punt paths show platform hardware pp active punt_inject information 0 ! Packet couns to/from Cylon ASIC show platform hardware pp active infrastructure pi npd nif_stats ! ! CEF and Forwarding ! ! CEF lookup show platform hardware pp active feature cef database ipv4 10.0.0.11/32
show platform hardware pp active feature cef database ipv6 abcd::1/128
show platform hardware pp active feature cef database lfib 50
show ip cef 10.0.0.11/32 internal
! Routes per VRF show platform hardware pp active feature cef database routing-table ! Show SDM feature/scaling limits: show platform hardware pp active sdm current ! Also shows TCAM blocks: show platform hardware pp active sdm current ! Cylon usage stats show platform hardware pp active resource-usage summary 0 ! Show FRR/BGP-PIC/MPLS-TP usage show platform hardware pp active resource-usage el3id 0 ! Cylon TCAM usage show platform hardware pp active tcam usage ! More detailed TCAM usage per application such as QoS/ACLs etc. show platform hardware pp active tcam utilization XXX detail 0
show platform hardware pp active nqatm 0 XXX all ! ! General interface troubleshooting ! ! Detailed interface packet stats show platform hardware pp active interface statistics ! Check for L2 BPDU forwarding on a specific bridge-domain show platform hardware pp active feature l2protocol bd 200

! L2 VFI imposition and deposition info
show platform hardware mpls l2 vfi VLAN-350 peer 10.0.0.11 ! Show CPU policer info show platform hardware pp active feature qos police-info cpu 0

! Interface supported features:
show mpls l2transport hw-capability interface Te0/0/3
! ! MPLS in hardware ! ! Show pseudowire details (requires "service internal") show mpls infrastructure lfd pseudowire internal
show platform hardware pp active feature cef database lfib 50 ! MPLS table details show mpls infrastructure lsd label-table detail show mpls infrastructure lsd status detail

!
! General hardware info
!

! There isa Xilinx FPGA, model Kintex-7 (XC7K160T 1FFG676I) linking the Cylon ASIC to the rest of the device components.
! Stats like BFD hand off can be seen here.
show platform hardware pp active fpga statistics


! Some Cisco branded PCIe hardware inside the unit:
show platform hardware slot r0 pcie status
0000:00:00.0 Class 0604: Device 1957:0070 (rev 21)
0000:01:00.0 Class 0580: Device 1137:005f
0001:02:00.0 Class 0604: Device 1957:0070 (rev 21)
0001:03:00.0 Class 0200: Device 1137:005e

1137 is Cisco. There is a PCIe link between Cylon and CPU and the FPGA and CPU.
ASR920#show ver
Cisco IOS XE Software, Version 03.16.04.S - Extended Support Release
Cisco IOS Software, ASR920 Software (PPC_LINUX_IOSD-UNIVERSALK9_NPE-M), Version 15.5(3)S4, RELEASE SOFTWARE (fc1)
...
System image file is "bootflash:/asr920-universalk9_npe.03.16.04.S.155-3.S4-ext.bin"
...
cisco ASR-920-4SZ-A (Freescale P2020)



conf t
 platform shell
 end

ASR920#request platform software system shell
Activity within this shell can jeopardize the functioning of the system.
Are you sure you want to continue? [y/n] y

2017/08/31 09:10:39 : Shell access was granted to user ; Trace file: , /harddisk/tracelogs/system_shell_R0.log.20170831091039
**********************************************************************
Activity within this shell can jeopardize the functioning
of the system.
Use this functionality only under supervision of Cisco Support.

Session will be logged to:
  harddisk:tracelogs/system_shell_R0.log.20170831091039
**********************************************************************
*Aug 31 2017 09:10:40.510 BST: %SYSTEM-3-SYSTEM_SHELL_LOG: F0:  Shell started: vty 0
*Aug 31 2017 09:10:40.513 BST: %SYSTEM-3-SYSTEM_SHELL_LOG: F0:  2017/08/31 09:10:39 : Shell access was granted to user ; Trace file: , /harddisk/tracelogs/system_shell_R0.log.20170831091039
[ASR920_RP_0:/]$

[ASR920_RP_0:/tmp]$ whoami
root


[ASR920_RP_0:/]$ uname -a
Linux ASR920_RP_0 2.6.32.59 #3 SMP Tue Sep 27 12:14:58 PDT 2016 ppc ppc ppc GNU/Linux

[ASR920_RP_0:/]$ free -m
             total       used       free     shared    buffers     cached
Mem:          3357       1880       1477          0        156        938
-/+ buffers/cache:        785       2572
Swap:            0          0          0

[ASR920_RP_0:/etc]$ cat /proc/cpuinfo
processor       : 0
cpu             : e500v2
clock           : 500.000000MHz
revision        : 5.1 (pvr 8021 1051)
bogomips        : 125.00

processor       : 1
cpu             : e500v2
clock           : 500.000000MHz
revision        : 5.1 (pvr 8021 1051)
bogomips        : 125.00

total bogomips  : 250.00
timebase        : 62500000
platform        : P2020 DS
model           : fsl,P2020
Memory          : 3584 MB

[ASR920_RP_0:/etc]$ cat /sys/bus/platform/devices/cpld/slot_number
0

[ASR920_RP_0:/etc]$ cat /sys/bus/platform/devices/cpld/board_
board_fp_subtype  board_rev         board_subtype     board_type

[ASR920_RP_0:/etc]$ cat /sys/bus/platform/devices/cpld/board_fp_subtype
STRIKER_C

[ASR920_RP_0:/etc]$ cat /sys/bus/platform/devices/cpld/board_rev
2

[ASR920_RP_0:/etc]$ cat /sys/bus/platform/devices/cpld/board_subtype
STRIKER_C

[ASR920_RP_0:/etc]$ cat /sys/bus/platform/devices/cpld/board_type
RP


ASR920#show ip route
      1.0.0.0/32 is subnetted, 1 subnets
O        1.1.1.1 [110/1] via 10.0.12.1, 15:56:41, TenGigabitEthernet0/0/2
      2.0.0.0/32 is subnetted, 1 subnets
C        2.2.2.2 is directly connected, Loopback0
      3.0.0.0/32 is subnetted, 1 subnets
O        3.3.3.3 [110/1] via 10.0.23.3, 15:56:16, TenGigabitEthernet0/0/3
      10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C        10.0.12.0/24 is directly connected, TenGigabitEthernet0/0/2
L        10.0.12.2/32 is directly connected, TenGigabitEthernet0/0/2
C        10.0.23.0/24 is directly connected, TenGigabitEthernet0/0/3
L        10.0.23.2/32 is directly connected, TenGigabitEthernet0/0/3

ASR920#show int gi0/0/0 | i Hard
  Hardware is 2xGE-4x10GE-FIXED, address is 5087.89da.f900 (bia 5087.89da.f900)

ASR920#show int gi0/0/1 | i Hard
  Hardware is 2xGE-4x10GE-FIXED, address is 5087.89da.f901 (bia 5087.89da.f901)

eth1 below has Gi0/0/0 MAC but Gi0/0/0 is currently down.

[ASR920_RP_0:/]$ ip l show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
7: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
8: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 50:87:89:da:f9:00 brd ff:ff:ff:ff:ff:ff
9: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:00:00:01:00:03 brd ff:ff:ff:ff:ff:ff
10: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN
    link/ether da:00:2e:39:39:f7 brd ff:ff:ff:ff:ff:ff

Gi0/0/1 is being used for in band management:
ASR920#show run int gi0/0/1
interface GigabitEthernet0/0/1
 description LAB MGMT
 ip vrf forwarding LAB-MGMT
 ip address 10.116.26.61 255.255.255.0

[ASR920_RP_0:/]$ ip r
10.1.1.0/24 dev eth1  proto kernel  scope link  src 10.1.1.30
10.2.0.0/16 dev eth2  scope link
10.3.0.0/16 dev eth2  scope link
10.0.0.0/16 dev eth2  scope link
10.1.0.0/16 dev eth2  scope link
10.128.0.0/16 dev eth2  proto kernel  scope link  src 10.128.1.1
default via 10.1.1.1 dev eth1

ASR920#show ip route vrf LAB-MGMT
S*    0.0.0.0/0 [1/0] via 10.116.26.1
      10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
C        10.116.26.0/24 is directly connected, GigabitEthernet0/0/1
L        10.116.26.61/32 is directly connected, GigabitEthernet0/0/1
S        10.254.255.20/32 [1/0] via 10.116.26.66


dmesg

[ASR920_RP_0:/var/log]$ dmesg
...
Linux version 2.6.32.59 ([email protected]) (gcc version 4.4.1 (MontaVista) ) #3 SMP Tue Sep 27 12:14:58 PDT 2016
...

[ASR920_RP_0:/var/log]$ dmesg | grep -i fpga
FPGA_PCIE: fpga_pcie_init_module enter
FPGA_IOMEM: fpga_iomem_init enter
FPGA_IOMEM: fpga_iomem_init exit
FPGA_PCIE: fpga_pcie_probe enter
FPGA_PCIE: fpga mmio_start=f0000000 fpga mmio_len=100000
FPGA_PCIE: fpga_pcie_probe exit
FPGA_PCIE: fpga_pcie_init_module err:0 exit
FPGA_IOMEM: iomem kmalloc success, size=77824 (fpga_iomemblk_alloc)
fpga malloc: 0xe6640000 memfn:0x26640 v2p:0x26640000
fpga_iomem_devfops_mmap:fpga malloc: 0xe6640000 0xaaaaaaaa 0x0 0x26640000 0x88888888

[ASR920_RP_0:/var/log]$ dmesg | grep -i cylon
cylon found!!
CYLON_PCI: cylon_pci_init_module enter
CYLON_MEM: cylon_iomem_init enter
CYLON_MEM: cylon_iomem_init exit
CYLON_PCI: cylon_pci_probe enter
cylonpci 0001:03:00.0: enabling device (0000 -> 0002)
cylonpci 0001:03:00.0: enabling bus mastering
CYLON_PCI(asic0): mmio_start=0xe0000000 (cylon_pci_init_dev_mmio_start)
CYLON_PCI(cylonpci0): read deviceVer 0x0403 (cylon_pci_enable)
CYLON_PCI(cylonpci0): irq request successful (cylon_pci_enable)
CYLON_MEM: cylon kmalloc(iomem) success, size=65660 (cylon_iomemblk_alloc) ASIC_MAX=4
cylon kmalloc: 0xe8740000 memfn:0x28740 v2p:0x28740000
CYLON_MEM: cylon_iomem_enable device(1)
CYLON_PCI: cylon_pci_probe exit
CYLON_PCI: cylon_pci_init_module exit
CYLON_MEM: mmap completed (cylon_iomem_devfops_mmap)
CYLON_PCI(cylonpci0): mmap completed (cylon_pci_devfops_mmap)
CYLONMACLRN: kthread sleep maximum
CylonEoamIntr: kthread wokeup
CylonEoamIntr: kthread sleep maximum


It seems all forwarding plane interfaces are fully disconnected from the Kernel (which is to be expected).