Device types
nl6 ships resource files for 31 device types across 9 categories.
The REST API's category filter uses a coarser set of five values, shown below.
Each device type has its own directory under go/nl6/resources/ containing JSON responses for SNMP OIDs, SSH commands, and (for storage devices) REST API endpoints.
See Resource files for the JSON format.
Core routers
| Device | Ports | Description |
|---|---|---|
| Cisco ASR9K | 48 | High-end service provider router |
| Cisco ASR 9902 | 50 | Fixed 2RU IOS-XR 24.2.2 router: two A99-RP-F, one ASR-9902-LC with 48 front ports in two slices, two management ports, Bundle-Ether1 (HundredGigE0/0/0/9 and 0/0/0/10 as members, in ifStackTable), BVI1, Loopback0, Null0 and three VLAN subinterfaces, each over its port or bundle in ifStackTable; SNMP, CLI and gNMI interfaces and inventory generated from one chassis model |
| Cisco CRS-X | 144 | Carrier-class router, 16-slot CRS-X |
| Huawei NE8000 | 96 | Carrier-class router |
| Nokia 7750 SR-12 | 72 | IP/MPLS service router |
| Juniper MX960 | 80 | Service provider edge router. Its show configuration carries the three VRFs show route instance detail reports (CUSTOMER-A, INTERNET, MGMT) as routing-instances stanzas with their own router-id, on tagged units of ge-0/0/0 and xe-1/0/1; the VRF units carry family inet and no address, so IP-MIB is unchanged by them. |
| Juniper MX10004 | 80 | Modular edge router with 48 × 10G and 24 × 400G interfaces, four logical units on xe-0/0/0 (unit 0 and the VRF units 100, 200 and 999, each over the port in ifStackTable and each configured in show configuration with the VRF it belongs to), the management port fxp0 and loopback lo0 with their addressed units (ifIndex 77 to 80), dual Routing Engine and control board, gNMI catalogue (OpenConfig platform, system, BGP, Junos native sensors) |
The Juniper MX10004 also serves a gNMI catalogue: interface state and counters with Junos per-queue counters, subinterfaces, platform components with temperature and properties, CPU, system CPU and memory, system state, BGP neighbours, and the native packet-usage, fabric and FPC environment sensors under the juniper origin.
The fabric sensor's shape comes from a hardware capture; the environment sensor is YANG-derived from junos-fpc-env.yang and may differ from what hardware renders.
The Cisco ASR 9902 serves a gNMI catalogue for interface and subinterface counters, platform components, system CPUs and system memory.
Its interface counters cover the physical ports and the logical interfaces.
Its subinterface counters cover only the VLAN subinterfaces, as gNMI describes.
Its leaf sets, prefix depths and per-component leaf groups are shape-verified against a gnmic capture of an ASR 9902 on IOS-XR 24.2.2; values are synthetic.
Responses carry the subtree's YANG module as prefix origin, as IOS-XR does.
JSON_IETF answers with one update per requested node, its leaves nested as IOS-XR documents it; see gNMI.
The MX10004 is not in the round-robin list. Request it by name.
The MX10004's ENTITY-MIB entPhysicalTable lists the same boards, serials, part numbers and revisions as its gNMI components and show chassis hardware, the chassis (entity 1) included.
Each interface has a port entity at index 1000 + ifIndex, and entAliasMappingTable maps it to that ifIndex.
Edge routers
| Device | Ports | Description |
|---|---|---|
| Juniper MX240 | 24 | Compact modular router. Its show configuration carries the three VRFs show route instance detail reports (CUSTOMER-A, INTERNET, MGMT) as routing-instances stanzas with their own router-id, on tagged units of xe-1/0/0; the VRF units carry family inet and no address, so IP-MIB is unchanged by them. |
| NEC IX3315 | 48 | Enterprise router |
Data center switches
| Device | Ports | Description |
|---|---|---|
| Cisco Nexus 9500 | 64 | Data center spine switch, Nexus 9508 chassis |
| Arista 7280R3 | 32 | High-performance switch |
Campus switches
| Device | Ports | Description |
|---|---|---|
| Cisco Catalyst 9500 | 48 | Enterprise core switch, Catalyst 9500-48Y4C |
| Extreme VSP4450 | 48 | Campus switch |
| D-Link DGS-3630 | 52 | L3 managed switch |
| Cisco IOS | 4 | Access switch, Catalyst 2960-X (WS-C2960X-24TS-L) |
Firewalls
| Device | Ports | Description |
|---|---|---|
| Palo Alto PA-3220 | 16 | Next-gen firewall |
| Fortinet FortiGate-600E | 20 | Enterprise firewall |
| SonicWall NSa 6700 | 16 | Next-gen firewall |
| Check Point 15600 | 24 | Security gateway |
Servers
| Device | Ports | Description |
|---|---|---|
| Dell PowerEdge R750 | 4 | Server BMC/iDRAC |
| HPE ProLiant DL380 | 4 | Server iLO interface |
| IBM Power S922 | 4 | Power Systems server |
| Linux Server | 3 | Ubuntu 24.04 LTS (SNMP, SSH) |
GPU servers
| Device | GPUs | VRAM/GPU | Description |
|---|---|---|---|
| NVIDIA DGX-A100 | 8 | 80 GB | A100 GPU training system |
| NVIDIA DGX-H100 | 8 | 80 GB | H100 GPU training system |
| NVIDIA HGX-H200 | 8 | 141 GB | H200 GPU inference system |
See GPU simulation for the DCGM OID layout, per-GPU metric cycling, and the collector OID contract.
Storage systems
| Device | Type | Protocols |
|---|---|---|
| AWS S3 Storage | Object storage | SNMP, SSH, HTTPS REST |
| Pure Storage FlashArray | All-flash array | SNMP, SSH, HTTPS REST |
| NetApp ONTAP | Unified storage | SNMP, SSH, HTTPS REST |
| Dell EMC Unity | Unified storage | SNMP, SSH, HTTPS REST |
Storage devices expose their management API over HTTPS on port 8443 using a set of shared TLS certificates generated at startup. See Web API for the simulator's own control-plane endpoints; the storage APIs themselves are defined entirely by the JSON resource files in each storage device's directory.
Optical transport
| Device | Channels | Protocols |
|---|---|---|
| Ciena Waveserver 5 | 2 × WaveLogic 5 Extreme | SNMP, SSH, gNMI |
A coherent DWDM transport platform rather than a packet device.
Its per-channel discovery key is the optical-channel (OCH) component name (OCH-1-1), carried in an optical resource part.
It is not an ifIndex, since an optical channel is not an interface.
Being a layer-1 transport platform it performs no layer-3/4 inspection, so it exports no flow records (NetFlow / IPFIX / sFlow).
A batch-level flow seed skips it with a log line; an explicit per-device flow block naming this type is rejected with HTTP 400.
Optical state is served over gNMI under /components/component[name=$och]/optical-channel/.
See Optical telemetry for the served paths, the health bands, the on-demand degradation endpoint and a per-use-case validation walkthrough, and the limitations doc for where the simulation stops.
API category values
POST /api/v1/devices with round_robin: true accepts a category filter.
It takes exactly one of five strings; any other value matches no device type and is rejected with 400.
API category | Doc categories above |
|---|---|
Network Devices | Core routers, Edge routers, Data center switches, Campus switches, Firewalls |
Servers | Servers |
GPU Servers | GPU servers |
Storage | Storage systems |
Optical Transport | Optical transport |
Enhanced features (all network devices)
- Entity MIB alignment. ifTable and Entity MIB rows are consistent across chassis, line cards, power supplies, fans, and temperature sensors.
entAliasMappingTable. Physical-to-logical port mappings.- Dynamic metrics. CPU, memory, and temperature cycle through a 100-point sine-wave pattern per device. See Architecture.
- Dynamic HC interface counters.
ifHCInOctets/ifHCOutOctetsare computed on-demand as monotonically increasing Counter64 values, with per-interface phase offsets. See SNMP reference. - GPU metrics via NVIDIA DCGM OIDs. Per-GPU utilization, VRAM, temperature, power, fan, and clocks. See GPU simulation.
- SNMPv3 support. Engine ID, MD5/SHA1 authentication and DES/AES128 privacy, RFC 3414 USM, verified against net-snmp. See SNMP reference.
- Per-category baselines. CPU / memory / temperature ranges and spike amplitudes are driven by per-category device profiles.
- Interface stats and operational status, system information, vendor-specific OIDs, CDP & LLDP, and OSPF / BGP / VRF via SSH.
World cities for sysLocation
Device sysLocation values are drawn from a bundled world-cities dataset of about 47,000 rows so large fleets have plausible geographic spread.
The dataset ships under go/nl6/worldcities/ as 97 CSV shards plus a header.csv.
Each entry's latitude/longitude are retained from the dataset and exposed per device via GET /api/v1/devices (location / latitude / longitude).
See the web API reference.
The sysLocation string itself is unchanged; coordinates are an additive surface on the control-plane API.