Skip to content

EVPN

Configure Ethernet VPN (EVPN) settings on IOS-XR devices including source interface, EVPN groups, BGP route distinguisher, timers, duplicate detection, SRv6, virtual neighbors, and virtual VFIs. EVPN is a standards-based Layer 2 VPN technology that provides scalable and efficient Layer 2 connectivity across a Layer 3 network infrastructure using BGP for control plane signaling.

Diagram
NameTypeConstraintMandatoryDefault Value
evpnClass[evpn]No

NameTypeConstraintMandatoryDefault Value
bgpClass[bgp]No
cost_outBooleantrue, falseNo
duplicate_detectionClass[duplicate_detection]No
ethernet_segmentClass[ethernet_segment]No
evisList[evis]No
groupsList[groups]No
mtu_matchChoiceenforce, ignoreNo
interfacesList[interfaces]No
load_balancingClass[load_balancing]No
logging_df_electionBooleantrue, falseNo
source_interfaceStringNo
srv6Class[srv6]No
staggered_bringup_timerIntegermin: 0, max: 300000No
startup_cost_inIntegermin: 30, max: 86400No
timersClass[timers]No
transmit_mtuChoicelayer_2, zeroNo
virtualClass[virtual]No

NameTypeConstraintMandatoryDefault Value
rdStringNo

duplicate_detection (iosxr.devices.configuration.evpn)

Section titled “duplicate_detection (iosxr.devices.configuration.evpn)”
NameTypeConstraintMandatoryDefault Value
ipv4Class[ipv4]No
ipv6Class[ipv6]No

ethernet_segment (iosxr.devices.configuration.evpn)

Section titled “ethernet_segment (iosxr.devices.configuration.evpn)”
NameTypeConstraintMandatoryDefault Value
type_one_auto_generation_disableBooleantrue, falseNo

NameTypeConstraintMandatoryDefault Value
idIntegermin: 1, max: 65534Yes
advertise_macBooleantrue, falseNo
bgpClass[bgp]No
control_word_disableBooleantrue, falseNo
descriptionStringNo
etreeBooleanNo
load_balancingClass[load_balancing]No
unknown_unicast_suppressionBooleantrue, falseNo

NameTypeConstraintMandatoryDefault Value
idIntegermin: 1, max: 4294967295Yes
core_interfacesList[core_interfaces]No

interfaces (iosxr.devices.configuration.evpn)

Section titled “interfaces (iosxr.devices.configuration.evpn)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
access_signal_bundle_downBooleantrue, falseNo
core_isolation_groupIntegermin: 1, max: 4294967295No
ethernet_segmentClass[ethernet_segment]No
timersClass[timers]No

load_balancing (iosxr.devices.configuration.evpn)

Section titled “load_balancing (iosxr.devices.configuration.evpn)”
NameTypeConstraintMandatoryDefault Value
flow_label_staticBooleantrue, falseNo

NameTypeConstraintMandatoryDefault Value
enabledBooleantrue, falseNo
locatorsList[locators]No
usid_allocation_wide_local_id_blockBooleantrue, falseNo

NameTypeConstraintMandatoryDefault Value
ac_debounceIntegermin: 0, max: 300000No
backup_replacement_delayIntegermin: 0, max: 300000No
carvingIntegermin: 0, max: 300No
mac_postponeIntegermin: 0, max: 300No
peeringIntegermin: 0, max: 300No
recoveryIntegermin: 0, max: 3600No

virtual (iosxr.devices.configuration.evpn)

Section titled “virtual (iosxr.devices.configuration.evpn)”
NameTypeConstraintMandatoryDefault Value
access_eviClass[access_evi]No
neighborsList[neighbors]No
vfisList[vfis]No

ipv4 (iosxr.devices.configuration.evpn.duplicate_detection)

Section titled “ipv4 (iosxr.devices.configuration.evpn.duplicate_detection)”
NameTypeConstraintMandatoryDefault Value
disableBooleantrue, falseNo
freeze_timeIntegermin: 5, max: 3600No
move_countIntegermin: 1, max: 1000No
move_intervalIntegermin: 5, max: 3600No
reset_freeze_count_intervalIntegermin: 1, max: 48No
retry_countAnyInteger[min: 0, max: 1000] or Choice[infinity] or String[Regex: ^.*[\$\%]\{.*$]No

bgp (iosxr.devices.configuration.evpn.evis)

Section titled “bgp (iosxr.devices.configuration.evpn.evis)”
NameTypeConstraintMandatoryDefault Value
export_route_policyStringNo
route_target_exportsListStringNo
import_route_policyStringNo
route_target_importsListStringNo
rdStringNo

load_balancing (iosxr.devices.configuration.evpn.evis)

Section titled “load_balancing (iosxr.devices.configuration.evpn.evis)”
NameTypeConstraintMandatoryDefault Value
enabledBooleantrue, falseNo
flow_label_staticBooleantrue, falseNo

core_interfaces (iosxr.devices.configuration.evpn.groups)

Section titled “core_interfaces (iosxr.devices.configuration.evpn.groups)”
NameTypeConstraintMandatoryDefault Value
nameStringYes

ethernet_segment (iosxr.devices.configuration.evpn.interfaces)

Section titled “ethernet_segment (iosxr.devices.configuration.evpn.interfaces)”
NameTypeConstraintMandatoryDefault Value
route_targetStringNo
convergenceClass[convergence]No
esi_zeroStringNo
force_single_homedBooleantrue, falseNo
load_balancing_modeChoiceall-active, port-active, single-active, single-flow-activeNo
service_carving_hrwBooleantrue, falseNo
service_carving_manualClass[service_carving_manual]No
service_carving_multicastClass[service_carving_multicast]No
service_carving_preferenceClass[service_carving_preference]No

timers (iosxr.devices.configuration.evpn.interfaces)

Section titled “timers (iosxr.devices.configuration.evpn.interfaces)”
NameTypeConstraintMandatoryDefault Value
ac_debounceIntegermin: 0, max: 300000No
carvingIntegermin: 0, max: 300No
peeringIntegermin: 0, max: 300No
recoveryIntegermin: 0, max: 3600No

locators (iosxr.devices.configuration.evpn.srv6)

Section titled “locators (iosxr.devices.configuration.evpn.srv6)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
usid_allocation_wide_local_id_blockBooleantrue, falseNo

access_evi (iosxr.devices.configuration.evpn.virtual)

Section titled “access_evi (iosxr.devices.configuration.evpn.virtual)”
NameTypeConstraintMandatoryDefault Value
ethernet_segmentClass[ethernet_segment]No

neighbors (iosxr.devices.configuration.evpn.virtual)

Section titled “neighbors (iosxr.devices.configuration.evpn.virtual)”
NameTypeConstraintMandatoryDefault Value
addressStringYes
pw_idIntegermin: 1, max: 4294967295Yes
ethernet_segmentClass[ethernet_segment]No
timersClass[timers]No

vfis (iosxr.devices.configuration.evpn.virtual)

Section titled “vfis (iosxr.devices.configuration.evpn.virtual)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
ethernet_segmentClass[ethernet_segment]No
timersClass[timers]No

convergence (iosxr.devices.configuration.evpn.interfaces.ethernet_segment)

Section titled “convergence (iosxr.devices.configuration.evpn.interfaces.ethernet_segment)”
NameTypeConstraintMandatoryDefault Value
mac_mobilityBooleantrue, falseNo
nexthop_trackingBooleantrue, falseNo
rerouteBooleantrue, falseNo

service_carving_manual (iosxr.devices.configuration.evpn.interfaces.ethernet_segment)

Section titled “service_carving_manual (iosxr.devices.configuration.evpn.interfaces.ethernet_segment)”
NameTypeConstraintMandatoryDefault Value
primaryStringNo
secondaryStringNo

service_carving_multicast (iosxr.devices.configuration.evpn.interfaces.ethernet_segment)

Section titled “service_carving_multicast (iosxr.devices.configuration.evpn.interfaces.ethernet_segment)”
NameTypeConstraintMandatoryDefault Value
hrw_gBooleantrue, falseNo
hrw_s_gBooleantrue, falseNo

service_carving_preference (iosxr.devices.configuration.evpn.interfaces.ethernet_segment)

Section titled “service_carving_preference (iosxr.devices.configuration.evpn.interfaces.ethernet_segment)”
NameTypeConstraintMandatoryDefault Value
access_drivenBooleantrue, falseNo
weightIntegermin: 0, max: 65535No

ethernet_segment (iosxr.devices.configuration.evpn.virtual.access_evi)

Section titled “ethernet_segment (iosxr.devices.configuration.evpn.virtual.access_evi)”
NameTypeConstraintMandatoryDefault Value
route_targetStringNo
esi_zeroStringNo

ethernet_segment (iosxr.devices.configuration.evpn.virtual.neighbors)

Section titled “ethernet_segment (iosxr.devices.configuration.evpn.virtual.neighbors)”
NameTypeConstraintMandatoryDefault Value
route_targetStringNo
esi_zeroStringNo
service_carving_hrwBooleantrue, falseNo
service_carving_manualClass[service_carving_manual]No
service_carving_multicastClass[service_carving_multicast]No
service_carving_preferenceClass[service_carving_preference]No

ethernet_segment (iosxr.devices.configuration.evpn.virtual.vfis)

Section titled “ethernet_segment (iosxr.devices.configuration.evpn.virtual.vfis)”
NameTypeConstraintMandatoryDefault Value
route_targetStringNo
esi_zeroStringNo
service_carving_hrwBooleantrue, falseNo
service_carving_manualClass[service_carving_manual]No
service_carving_preferenceClass[service_carving_preference]No

BGP RD/RT Formats

EVPN supports three BGP Route Distinguisher (RD/RT) formats using standard X:Y colon notation:

  1. two-byte AS (e.g., "65001:100")
  2. four-byte AS (e.g., "65536:100")
  3. IPv4 address (e.g., "192.168.1.1:100")

All 3 formats can be used interchangeably. The normalization layer automatically detects the user-specified format and maps to the correct attributes before sending to the device.

BGP RT MAC Address Formats

EVPN BGP route-target fields accept MAC addresses in any of three formats:

  1. colon-separated (e.g., "01:01:01:01:01:01")
  2. dash-separated (e.g., "01-01-01-01-01-01")
  3. dotted (e.g., "0101.0101.0101")

All 3 formats can be used interchangeably. The normalization layer coverts the user-specified format to colon-separated before sending to the device.

Example-1: EVPN global settings with timers, duplicate detection, and ethernet segment.

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
evpn:
bgp:
rd: "65536:100"
source_interface: Loopback0
mtu_match: ignore
load_balancing:
flow_label_static: true
logging_df_election: true
cost_out: true
startup_cost_in: 60
staggered_bringup_timer: 3000
transmit_mtu: zero
timers:
recovery: 120
peering: 60
carving: 5
ac_debounce: 2000
backup_replacement_delay: 3000
mac_postpone: 240
ethernet_segment:
type_one_auto_generation_disable: true
duplicate_detection:
ipv4:
move_count: 10
move_interval: 360
freeze_time: 120
retry_count: 5
reset_freeze_count_interval: 48
ipv6:
move_count: 10
move_interval: 360
freeze_time: 120
retry_count: infinity
reset_freeze_count_interval: 48

Example-2: EVPN with BGP route distinguisher using IPv4 address format.

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
evpn:
bgp:
rd: "192.168.1.1:100"

Example-3: EVPN with BGP route distinguisher using two-byte AS format.

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
evpn:
bgp:
rd: "65001:100"

Example-4: EVPN with BGP route distinguisher using four-byte AS format.

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
evpn:
bgp:
rd: "65536:100"

Example-5: EVPN with SRv6 locator.

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
evpn:
source_interface: Loopback0
srv6:
locators:
- name: LOC1
usid_allocation_wide_local_id_block: true

Example-6: EVPN with virtual neighbors and VFI’s.

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
evpn:
source_interface: Loopback0
virtual:
neighbors:
- address: 192.168.1.1
pw_id: 100
timers:
peering: 60
recovery: 120
carving: 5
ac_debounce: 2000
ethernet_segment:
esi_zero: 01.01.01.01.01.01.01.01.01
route_target: "01:01:01:01:01:01"
service_carving_multicast:
hrw_s_g: true
service_carving_manual:
primary: 100-101,103
secondary: 200-201,203
vfis:
- name: VFI1
timers:
peering: 60
recovery: 120
carving: 5
ac_debounce: 2000
ethernet_segment:
esi_zero: 01.01.01.01.02.02.02.02.02
route_target: "01:01:01:01:01:02"
service_carving_manual:
primary: 100-101,103
secondary: 200-201,203

Example-7: Multiple EVPN interfaces with different load balancing modes.

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
evpn:
interfaces:
- name: Bundle-Ether13
core_isolation_group: 12
timers:
peering: 30
recovery: 90
ethernet_segment:
esi_zero: 01.02.02.02.02.02.02.02.05
route_target: "01:02:02:02:02:05"
load_balancing_mode: port-active
service_carving_preference:
weight: 100
access_driven: true
service_carving_multicast:
hrw_g: true
convergence:
mac_mobility: true
- name: Bundle-Ether14
access_signal_bundle_down: true
timers:
carving: 10
ethernet_segment:
esi_zero: 01.03.03.03.03.03.03.03.06
load_balancing_mode: single-active
service_carving_manual:
primary: 100,200,300
secondary: 400,500,600

Example-8: EVPN EVI with BGP route distinguisher, route targets, and route policies.

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
evpn:
evis:
- id: 1001
description: Customer A EVPN Instance
load_balancing:
enabled: true
flow_label_static: true
bgp:
rd: "65000:1001"
route_target_imports:
- "65000:1001"
- "65001:1002"
- "192.168.100.1:1003"
- "4200000001:1004"
- "65536:1005"
route_target_exports:
- "65000:1001"
- "65001:1002"
- "192.168.100.1:1003"
- "4200000001:1004"
- "65536:1005"
import_route_policy: EVPN_CUSTOMER_A_IMPORT_POLICY
export_route_policy: EVPN_CUSTOMER_A_EXPORT_POLICY
advertise_mac: true
unknown_unicast_suppression: true