The interface panel#
Clicking a row on Interfaces opens a side panel over the table. It has three
read-only blocks — live state, counters and the commands you are about to stage — and
one editor. The panel edits nothing directly: the two footer buttons stage operations
and close, and the Commit Bar applies them. Pressing Esc closes the panel and drops
whatever was typed into it; nothing is remembered between openings.
Every path below starts with the row's own base, which is the three words
interfaces <type> <name> — the type column of the table is the second word.
Live state#
Read from the interface's own kernel block, refreshed with the page's four-second poll.
| Field | Meaning |
|---|---|
| State | UP, DOWN or UNKNOWN, as the kernel reports it |
| Flags | the flag list in angle brackets on the interface's first line, for example BROADCAST,MULTICAST,UP,LOWER_UP |
| MTU | the MTU in force now, which is not necessarily the configured one |
| Qdisc | the queueing discipline attached to the interface |
| MAC | from link/ether; blank for interfaces that have no Ethernet address |
| Addresses | every inet and inet6 address the kernel holds, link-local included |
The addresses here differ from the table's Addresses column in one way: the table
filters fe80… out, this list does not.
Counters#
Six numbers, all cumulative since the interface came up, from the two counter tables the kernel prints at the end of the block.
| Field | What a rising number means |
|---|---|
| RX bytes / TX bytes | traffic is flowing |
| RX packets / TX packets | as above, per packet |
| RX errors / dropped | the receive side is unhappy: cabling, duplex mismatch, or a full queue |
| TX errors / dropped | the transmit side is unhappy: usually a saturated link or a shaper doing its job |
Non-zero drops on a shaped interface are expected — dropping is how a shaper signals congestion. Non-zero errors on an unshaped Ethernet port are worth investigating at the cable.
The editor#
Add address#
One address per staging round, entered as CIDR or as one of two literal words.
set interfaces ethernet eth1 address 203.0.113.2/24
set interfaces ethernet eth1 address dhcp
set interfaces ethernet eth1 address dhcpv6A VyOS interface can hold several addresses at once, and set … address adds rather
than replaces. To change an address you add the new one and mark the old one for
removal, both in the same staging round. What counts as a valid value is on
Addressing.
Remove address#
Below the field, every address the configuration declares appears as a small button.
Clicking one marks it: it goes red and struck through, and a delete operation is added
to the pending list. Clicking again unmarks it. Addresses the kernel holds but the
configuration does not declare — an address from a DHCP lease, a link-local address —
are not offered here, because deleting them from the configuration would be a command
about something the configuration never said.
delete interfaces ethernet eth1 address 203.0.113.2/24Set description#
Free text. It becomes the Description column on the table, the subtitle of this panel, and the label beside an uplink on the Uplinks tab.
set interfaces ethernet eth1 description 'ISP A'A value containing a space is quoted when the command is rendered, and quoted the same
way when the agent sends it — both renderOp in the UI and cliWord in the agent wrap
it in single quotes with embedded quotes escaped, so what the preview shows is what the
router runs. An unquoted description ISP A would be three arguments and the commit
would fail — ui/src/lib/format.ts,
agent/staging.go.
MTU#
The field is pre-filled with nothing and shows the current MTU as its placeholder, with the hint: 1500 is Ethernet, 1492 behind PPPoE, up to 9000 for jumbo frames. An operation is staged only if the number differs from the MTU the kernel currently reports.
set interfaces ethernet eth1 mtu 1492Administratively disabled#
A checkbox, pre-set from the interface's live state — it is ticked when the kernel
reports the link DOWN or carries the DOWN flag. Ticking it stages set … disable;
unticking a box that was ticked stages delete … disable.
set interfaces ethernet eth1 disable
delete interfaces ethernet eth1 disableAn interface with disable set has its link taken down. Every address on it stops
answering, every route through it is withdrawn, and any DHCP pool or VRRP group bound to
it stops working. On the interface carrying your session it ends the session.
Commands#
The last block in the panel renders the pending operations, in order, exactly as they
will be sent — with a copy button when JavaScript is available. Before anything is
typed it reads # nothing staged yet. This block is the contract: what it shows is what
POST /api/stage receives and what the commit runs.
The footer#
Stage N changes sends the pending list to POST /api/stage and closes the panel on
success. The count in the label is the number of operations, not the number of fields
you touched — removing two addresses and setting a description is three.
Delete interface stages one operation and closes:
delete interfaces ethernet eth1That removes the whole node: addresses, description, MTU, VLAN children, DHCP client options, everything under it. It does not remove references to the interface from elsewhere in the configuration. A firewall rule, a NAT rule, a DHCP pool, a VRRP group or a load-balancing member still naming the interface will fail the commit or, worse, survive it pointing at nothing. Check the config tree for the name before you commit a delete.
Both buttons are gated by role#
The panel's buttons are rendered for everyone and disabled with a reason for a principal
that may not write. The agent enforces the same rule on POST /api/stage, which
requires the operator role and a usable licence, so the disabled button is a courtesy
and never the security boundary — agent/main.go,
agent/license.go.
See also#
- Interfaces — the table this panel opens from.
- Addressing — what a valid address, prefix and MTU look like.
- Adding an interface — the other side panel on this page.
- Uplinks (multi-WAN) — for an interface with a default route, the uplink panel has the same address in a different frame.
Checked against ui/src/pages/Interfaces.tsx
(InterfaceDetailPanel), agent/parse.go
(parseInterfaceDetail), ui/src/lib/format.ts,
agent/staging.go, agent/main.go.