Skip to content

Cumulus Linux

Cumulus Linux ships two generations of CLI, so this package has two lexers. Both are verb-first rather than context-based: the leading command word decides how the rest of the line reads, and there is no configuration mode to track.

Interface names follow Linux conventions — swp1, breakout subports (swp1s0), ranges (swp1-48), bond0, vlan100, peerlink.4094 and bare lo.

NVUE — nv

Aliases: nvue, nv, cumulus-nvue · Filenames: *.nvue

The CLI introduced in Cumulus Linux 4.4 and the only one in 5.x. nv set and nv config apply read as commands, nv unset as a removal, and the values on/off/up/down as literals.

# Cumulus Linux 5.x -- configuration through NVUE (nv) commands
nv set system hostname leaf1
nv set interface lo ip address 10.0.0.1/32
nv set interface swp1 description spine1:swp1
nv set interface swp1 link mtu 9216
nv set interface swp1 ip address 10.1.1.1/31
nv set interface swp49-50 bond member bond0
nv set interface bond0 bond lacp-rate fast
nv set interface bond0 bond mlag id 1
nv set interface swp48 bridge domain br_default access 100
nv set bridge domain br_default vlan 100
nv set bridge domain br_default vlan 100 vni 10100
nv set nve vxlan source address 10.0.0.1
nv set nve vxlan arp-nd-suppress on
nv set evpn enable on
nv set vrf default router bgp autonomous-system 65101
nv set vrf default router bgp router-id 10.0.0.1
nv set vrf default router bgp neighbor swp1 peer-group SPINE
nv set vrf default router bgp peer-group SPINE remote-as external
nv set vrf default router bgp address-family l2vpn-evpn enable on
nv set vrf TENANT-A evpn vni 50001
nv set mlag backup 172.16.0.12
nv set mlag mac-address 44:38:39:ff:40:94
nv set mlag peer-ip linklocal
nv unset interface swp1 ip address
nv config diff
nv config apply
nv config save

NCLU — net

Aliases: nclu, cumulus, cumulus-nclu, net-commands · Filenames: *.nclu

The CLI through Cumulus Linux 4.x, still what most existing runbooks contain. net add and net commit read as commands; net del, net clear and net abort are highlighted as removals, since those are the lines a reader needs to notice before pasting.

# Cumulus Linux 4.x -- configuration through NCLU (net) commands
net add hostname leaf1
net add interface swp1 description spine1:swp1
net add interface swp1 mtu 9216
net add interface swp1 ip address 10.1.1.1/31
net add loopback lo ip address 10.0.0.1/32
net add bridge bridge ports swp48
net add bridge bridge vids 100,200
net add interface swp48 bridge access 100
net add vlan 100 ip address 10.100.0.1/24
net add vlan 100 ip address-virtual 00:00:5e:00:01:01 10.100.0.254/24
net add vxlan vni10100 vxlan id 10100
net add vxlan vni10100 bridge access 100
net add clag peer sys-mac 44:38:39:ff:40:94 interface peerlink primary
net add bond bond0 bond slaves swp49-50
net add clag port bond bond0 clag-id 1
net add bgp autonomous-system 65101
net add bgp router-id 10.0.0.1
net add bgp neighbor swp1 interface remote-as external
net add bgp ipv4 unicast network 10.0.0.1/32
net add bgp l2vpn evpn neighbor swp1 activate
net add bgp l2vpn evpn advertise-all-vni
net del bgp ipv4 unicast neighbor swp1 activate
net add time zone America/Phoenix
net pending
net commit

The routing config underneath

On both generations, net show configuration commands and nv config show describe the switch, but BGP itself is FRRouting. When you are quoting /etc/frr/frr.conf rather than the CLI that produced it, use the frr lexer.