Appearance
Topology: racks and devices
The <Topology> block is what is installed: racks, the devices in them, and the cables between them.
Rack
xml
<Rack label="CR01" units="48" />
<Rack label="NR01" units="48" row="2" />| Attribute | Required | Default | Valid values / description |
|---|---|---|---|
label | yes | Unique rack label. Devices reference it with rackId | |
units | no | 36 | Whole number: rack height in U |
row | no | 1 | Whole number: which row the rack is drawn in, in Rack Elevation |
Devices
<Server>, <Switch> and <PDU> take the same attributes. A device is written in one of two forms.
Template form — the structure comes from a catalog template:
xml
<Switch label="leaf-01" template="sn5600" rackId="NR01" rackElevation="1"
labels="fabric-a,leaf" />Full form — NICs and ports written out inline:
xml
<Server label="node-001" position={{ x: 100, y: 100 }} labels="rack-cr01,gpu"
rackId="CR01" rackElevation="1" rackUnits="10">
<Nic label="eth0">
<Port label="p0" speed="100G" connector="QSFP28" />
<Port label="p1" speed="100G" connector="QSFP28" />
</Nic>
<Inlet label="PSU1" count="2" connector="C14" watts="1600" />
<Bond label="bond0" mode="lacp" ports="eth0/p0,eth0/p1" />
</Server>| Attribute | Required | Default | Valid values / description |
|---|---|---|---|
label | yes | Unique device label. The first part of every port path | |
template | no | Id of a catalog device template | |
position | no | placed automatically | {{ x: N, y: N }}: where the card sits in Port Mapping |
labels | no | Comma-separated filter tags — e.g. rack-a,gpu | |
rackUnits | no | 1 | Whole number: height in U |
rackId | no | Label of the <Rack> it is mounted in | |
rackElevation | no | Whole number: the lowest unit it occupies, counting from 1 at the bottom | |
cardWidth | no | Always 424 card units (440 mm); other values are rescaled on load | |
cardHeight | no | Card height in pixels in Port Mapping |
A <PDU> also takes the PDU electrical spec. A templated PDU inherits it from its template field by field, as it inherits its outlets.
Children of a templated device
A device written with template="..." gets its ports from the template, but may still carry things that belong to this one installed unit:
| Child | Purpose |
|---|---|
<Bond> | How this device's ports are teamed |
<Breakout> | Split one switch port differently from the template (<Switch> only) |
<Inlet label serialnumber> | Record the serial number of an installed power supply |
xml
<Server label="srv-01" template="r760" rackId="CR01" rackElevation="5">
<Bond label="bond0" mode="lacp" ports="eth0/p0,eth0/p1" />
<Inlet label="PSU1" serialnumber="P2K05AB12345" />
<Inlet label="PSU2" serialnumber="P2K05AB12346" />
</Server>Children of a full-form device
| Device | Port containers | Other children |
|---|---|---|
<Server> | <Nic> | <Inlet>, <Bond> |
<Switch> | <PortGroup> or <Nic> | <Inlet>, <Bond> |
<PDU> | <Phase> (outlet banks), <Nic> (monitor port) | — |
See Topology: ports, inlets, bonds.
Labels and the label filter
Every label used in the topology appears as a button in the label filter at the top of each view's right side bar, all selected by default. A device is shown when at least one of its labels is selected; a device without labels is shown while Unlabeled is selected. Devices filtered out are greyed and hatched in Rack Elevation, Port Mapping and Power Budget, hidden in Fabric Topology, and not counted in the BOM. The filter is view state and is not written to the file.
Cables and power cords have labels too. Fabric Topology adds a Fabric labels group for network cables, and Power Budget a Power grid group for power cords. The device group and the cable group combine: a cable is kept when it passes the cable group and, if the device group is narrowed, a device at one of its ends passes it. The lanes of one breakout port are one physical cable, so their labels count together.