Skip to content

Topology: ports, inlets, bonds ​

These elements go inside an installed device in the <Topology>.

Nic, PortGroup, Phase ​

A group of ports on a full-form device.

  • In a <Switch>: <PortGroup> or <Nic>.
  • In a <Server>: <Nic>.
  • In a <PDU>: <Phase> for a bank of outlets, <Nic> for the network monitor port.
xml
<Nic label="eth0" side="back" layout={{ x: 20, y: 10, cols: 2 }}>
  <Port label="p0" speed="100G" connector="QSFP28" />
  <Port label="p1" speed="100G" connector="QSFP28" />
</Nic>

<Phase label="bank1" breaker="20" layout={{ x: 24, y: 16, cols: 8, groupSize: 4 }}>
  <Outlet label="o0" receptacle="C13" />
  <Outlet label="o1" receptacle="C13" />
</Phase>
AttributeRequiredDefaultValid values / description
labelyesUnique within the device
layoutnoLayout object: {{ x, y, cols, groupSize?, rows?, w?, h? }}
sidenobackfront or back
breakernoNumber, amps — <Phase> only
facingnoalternate, up or down
adjacentRowsno1Whole number ≥ 1
alignnoleftleft, center or right

Port ​

A network (or power) port inside a <Nic> or <PortGroup>.

xml
<Port label="swp1" speed="400G" connector="OSFP" breakout="4" />
<Port label="Eth1/1" speed="100G" connector="QSFP28" />
AttributeRequiredDefaultValid values / description
labelyesUnique within the NIC. May contain /
speedno10GSpeed
connectornoRJ45Any connector, data or power
breakoutno2 or 4 — switch ports only

A port is a leaf element. A breakout port cannot be a bond member. A port with a power connector (e.g. C14) is a power inlet and can be the end of a power cord.

Outlet ​

One receptacle in a PDU <Phase>.

xml
<Outlet label="o0" receptacle="C13" />
AttributeRequiredDefaultValid values / description
labelyesUnique within the bank
receptaclenoC13A power connector

speed on an outlet is an error. A <Phase> accepts only <Outlet> children.

Inlet ​

Where a <Server> or <Switch> takes power: the device end of a power cord.

Short form — count identical inlets named p0…pN-1:

xml
<Inlet label="PSU1" count="2" connector="C14" watts="750" />

Long form — inlets spelled out:

xml
<Inlet label="PSU1" captive="true" cordLength="1.8 m" watts="750">
  <Port label="left" connector="C14" />
  <Port label="right" connector="C20" />
</Inlet>

Attributes are those of the catalog inlet, plus:

AttributeValid values / description
serialnumberFree text: serial number of the power supply installed in this device

Rules:

  • On a templated device an <Inlet> only records a serial number: it names one of the template's inlets by label and carries only serialnumber.
  • A <Port> inside an <Inlet> takes only label and connector, which must be a power connector and defaults to the inlet's.
  • count and <Port> children cannot be used together.
  • speed is an error. An inlet label cannot reuse a NIC label on the same device.

Bond ​

Several ports of one device acting as one logical link (LAG, port-channel, NIC team). Valid in <Server> and <Switch>, on full-form and templated devices.

xml
<Bond label="bond0" mode="lacp" ports="eth0/p0,eth0/p1" />
AttributeRequiredDefaultValid values / description
labelyesUnique within the device
modenolacplacp, static or active-backup — see Bond mode
portsyesComma-separated members, each NicLabel/PortLabel (no device label)

Each member port still has its own cable; the bond says those links act as one. Errors:

  • a member that is not a port of this device;
  • the same port in two bonds;
  • a breakout port, or a power outlet, as a member;
  • a duplicate bond label, or a missing or empty ports;
  • a <Bond> inside a <Catalog> entry.

Breakout override ​

On a templated <Switch>, splits one port differently from what the template declares.

xml
<Switch label="leaf-01" template="sn4700" position={{ x: 20, y: 180 }}>
  <Breakout port="links/p21" channels="4" />
  <Breakout port="links/p30" channels="none" />
</Switch>
<Cable from="leaf-01/links/p21:2" to="srv-07/eth0/p0" />
AttributeRequiredValid values / description
portyesGroupLabel/PortLabel on this device, without :N
channelsyes2 or 4 to split the port; none to keep whole a port the template splits

Only ports whose split differs from the template are written; the Port panel in Port Mapping edits this for you. Errors: on a non-switch, on a full-form switch (use breakout on its <Port>), inside the catalog, a port that does not exist, names a channel or appears twice, or any other channels value.