Cumulus NVUE¶
The Cumulus NVUE implementation supports L2VNI configuration on the default
bridge domain br_default with three modes for BUM (Broadcast, Unknown
unicast, Multicast) traffic replication:
Ingress-replication (default) - Uses EVPN-learned VTEPs for dynamic BUM replication
Head-end-replication - Uses static VTEP flood lists for BUM replication
Multicast - Uses ASM multicast groups with PIM Sparse Mode
Configuration Parameters¶
BUM Replication Mode Configuration:
ngs_bum_replication_mode- BUM traffic replication mode. Options:ingress-replication(default),head-end-replication,multicast
Ingress-Replication Mode (EVPN-learned VTEPs):
No additional configuration required - VTEPs are learned via EVPN
Head-End-Replication Mode (Static VTEP Lists):
ngs_her_flood_list- Global HER flood list (comma-separated VTEP IPs)ngs_physnet_her_flood- Per-physnet HER flood lists (format:physnet1:ip1,ip2;physnet2:ip3,ip4)
Multicast Mode:
ngs_mcast_group_map- Explicit VNI-to-multicast-group mappings (format:vni1:group1,vni2:group2)ngs_mcast_group_base- Base multicast group address for automatic derivation (e.g.,239.1.1.0)ngs_mcast_group_increment- Derivation method (default:vni_last_octet)
EVPN Control Plane Configuration:
ngs_evpn_vni_config- Enable EVPN VNI control plane configuration (default: false)ngs_bgp_asn- BGP AS number (required whenngs_evpn_vni_configis enabled)
BUM Replication Mode Auto-Detection¶
The driver automatically selects the appropriate BUM replication mode:
If
ngs_bum_replication_modeis explicitly set, use that modeElse if
ngs_her_flood_listorngs_physnet_her_floodis configured, auto-detecthead-end-replicationmode (backward compatibility)Else default to
ingress-replicationmode
This ensures backward compatibility with existing deployments using HER flood lists while defaulting new deployments to EVPN-learned VTEPs.
EVPN VNI Control Plane¶
When ngs_evpn_vni_config=true and ngs_bgp_asn is set, the driver
configures per-VNI EVPN in FRRouting (FRR) using vtysh commands:
vtysh -c "configure terminal" \
-c "router bgp <asn>" \
-c "address-family l2vpn evpn" \
-c "vni <vni>" \
-c "rd auto" \
-c "route-target import auto" \
-c "route-target export auto"
Configuration Examples¶
Scenario 1: Ingress-Replication (EVPN-learned VTEPs, Default)
[genericswitch:cumulus-switch]
device_type = netmiko_cumulus_nvue
Generated commands:
nv set bridge domain br_default vlan 100 vni 10100
nv set bridge domain br_default vlan 100 vni 10100 flooding \
head-end-replication evpn
Scenario 2: Head-End-Replication with Global HER Flood List
[genericswitch:cumulus-switch]
device_type = netmiko_cumulus_nvue
ngs_her_flood_list = 10.0.1.1,10.0.1.2
Generated commands:
nv set bridge domain br_default vlan 100 vni 10100
nv set nve vxlan flooding head-end-replication 10.0.1.1
nv set nve vxlan flooding head-end-replication 10.0.1.2
Scenario 3: Head-End-Replication with Per-Physnet HER Flood Lists
[genericswitch:cumulus-switch]
device_type = netmiko_cumulus_nvue
ngs_physnet_her_flood = physnet1:10.0.1.1,10.0.1.2;physnet2:10.0.2.1
For physnet1, generated commands:
nv set bridge domain br_default vlan 100 vni 10100
nv set nve vxlan flooding head-end-replication 10.0.1.1
nv set nve vxlan flooding head-end-replication 10.0.1.2
Scenario 4: Multicast Mode with Base Address
[genericswitch:cumulus-switch]
device_type = netmiko_cumulus_nvue
ngs_bum_replication_mode = multicast
ngs_mcast_group_base = 239.1.1.0
For VNI 10100, generated commands:
nv set bridge domain br_default vlan 100 vni 10100
nv set bridge domain br_default vlan 100 vni 10100 flooding \
multicast-group 239.1.1.116
Scenario 5: Multicast Mode with Explicit Mapping
[genericswitch:cumulus-switch]
device_type = netmiko_cumulus_nvue
ngs_bum_replication_mode = multicast
ngs_mcast_group_map = 10100:239.5.5.100,10200:239.5.5.200
For VNI 10100, generated commands:
nv set bridge domain br_default vlan 100 vni 10100
nv set bridge domain br_default vlan 100 vni 10100 flooding \
multicast-group 239.5.5.100
Scenario 6: EVPN VNI Configuration with Ingress-Replication
[genericswitch:cumulus-switch]
device_type = netmiko_cumulus_nvue
ngs_evpn_vni_config = true
ngs_bgp_asn = 65000
Generated commands:
vtysh -c "configure terminal" \
-c "router bgp 65000" \
-c "address-family l2vpn evpn" \
-c "vni 10100" \
-c "rd auto" \
-c "route-target import auto" \
-c "route-target export auto"
nv set bridge domain br_default vlan 100 vni 10100
nv set bridge domain br_default vlan 100 vni 10100 flooding \
head-end-replication evpn
Prerequisites¶
Ingress-replication mode:
BGP EVPN configured (optional per-VNI config via
ngs_evpn_vni_config)
Example FRR configuration for EVPN:
nv set router bgp 65000 neighbor 10.0.0.2 type external
nv set router bgp 65000 neighbor 10.0.0.2 \
address-family l2vpn-evpn enable on
nv set nve vxlan source address 10.0.0.1
Head-end-replication mode:
Static VTEP flood lists configured
No BGP EVPN required (optional for MAC/IP learning)
Multicast mode:
PIM Sparse Mode and Rendezvous Point for BUM traffic replication (data plane)
BGP EVPN optional but recommended for MAC/IP learning (control plane)
Example PIM configuration:
# Configure PIM on interfaces
nv set interface swp1 router pim
nv set interface lo router pim
# Configure RP
nv set router pim address-family ipv4-unicast \
rp 10.255.255.254 group-range 239.0.0.0/8
# Configure EVPN (for MAC/IP learning)
nv set router bgp 65000 neighbor 10.0.0.2 type external
nv set router bgp 65000 neighbor 10.0.0.2 \
address-family l2vpn-evpn enable on
nv set nve vxlan source address 10.0.0.1