NICo enforces tenant network isolation across three independent fabrics. Each fabric uses a different mechanism, is configured through a different operator API, and is verified separately. This page summarises the model so an operator can choose the right guide; it is not a replacement for the per-fabric configuration guides linked below.
Network operations split across two roles. The per-fabric guides tag every operation with its role and interface using the model below; read this once, then use the operations matrix in each guide.
Operator (site administrator)
nicocli (its CLI
wrapper).nico-admin-cli (which speaks the gRPC API directly) only for
operations the REST API does not expose — for example, NMX-C endpoint
registration, the NVLink GPU-mapping populate step, or break-glass fabric
cleanup.Tenant
nicocli exclusively.nicocli rather than reaching for nico-admin-cli.REST paths in the matrices are shown against the /v2/org/{org}/nico/...
placeholder; nicocli commands follow the nicocli <resource> <verb> form.
See the REST API Reference tab and the
nicocli Reference for exact request bodies and flags.
Operations
See Who configures what, and how for the role and interface model.
A tenant’s instance reaches a VPC by drawing addresses from one of the VpcPrefixes attached to that VPC. NICo carves a /31 link-net per interface from the prefix — one address to the instance, one to the DPU’s SVI in the VPC’s VRF. An instance may participate in several VPCs at once by having interfaces drawing from prefixes in different VPCs. On the DPU of the managed host backing the instance, each related VPC materialises as a Linux VRF; every host interface drawing from a prefix in that VPC lives in that VRF. The tenant overlay is a pure type-5 EVPN (IP-prefix) overlay — NICo does not stretch any tenant L2 segment across the fabric.
Ethernet isolation has three independent layers:
The Ethernet configuration model is documented in the VPC manuals; this overview does not duplicate them:
Each tenant InfiniBand partition maps to a UFM P_Key. Membership is enforced
by the subnet manager at the fabric level: hosts that are not members of a
P_Key cannot exchange traffic with other members of that P_Key, regardless
of physical connectivity. NICo reconciles desired partition membership against
UFM via the IbFabricMonitor background task and surfaces the synchronisation
status to operators and to tenants.
See Configuring InfiniBand Partitions for the operator configuration guide, and the InfiniBand Setup Runbook for the prerequisite UFM / OpenSM hardening.
NVLink logical partitions group GPUs across hosts into a single isolated NVLink domain. NICo drives partition lifecycle against the NMX-M REST API and the NMX-C gRPC API and reconciles desired partitions periodically. Each tenant instance that requests NVLink connectivity is placed into the partition corresponding to its allocation; a host whose GPUs are not in a partition cannot reach any other host’s GPUs over NVLink.
See NVLink Partitioning for the operator configuration guide.
The following invariants apply to every fabric.
InstanceStatus
exposes a per-fabric configs_synced field that is true only when the
observed fabric state matches the desired configuration. The aggregate
configs_synced field is the logical AND of all per-fabric fields and gates
the instance’s Ready state.Ready.
Tenants observe this as the Configuring tenant state, and the machine
remains in WaitingForNetworkConfig until the DPU reports back.For the architectural rationale and the patterns shared across all three fabrics, see Networking Integrations.
For the Day 0 IP, DHCP, DNS, and admin-network configuration that every isolation guarantee on this page rests on, see Day 0 IP and Network Configuration.