# EVPN

The `nv unset` commands remove the configuration you set with the equivalent `nv set` commands. This guide only describes an `nv unset` command if it differs from the `nv set` command.

## nv set evpn dad duplicate-action freeze duration

Configures the switch to freeze duplicate addresses for a specific period of time. You can specify a value between 30 and 3600 seconds or `permanent` to freeze duplicate addresses until you run the clear command.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn dad duplicate-action freeze duration permanent

## nv set evpn dad duplicate-action warning-only

Sets the duplicate address action to only generate a warning log message. This is the default setting.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn dad duplicate-action warning-only

## nv set evpn dad state

Enables and disables duplicate address detection. The default setting is `disabled`.

The VTEP considers a host MAC or IP address to be duplicate if the address moves across the network more than a certain number of times within a certain number of seconds. In addition to legitimate host or VM mobility scenarios, address movement can occur when you configure IP addresses incorrectly on a host or when packet looping occurs in the network due to faulty configuration or behavior.

In Cumulus Linux 5.14 and earlier, you specify `enable on` or `enable off` instead of `state enabled` or `state disabled`.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn dad state enabled

## nv set evpn dad mac-move-threshold

Configures the number of MAC moves allowed within the detection time specified before the switch flags the MAC address as a possible duplicate. You can specify a value between 2 and 1000.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn dad mac-move-threshold 10

## nv set evpn dad move-window

Configures the detection time interval during which the MAC move threshold applies. You can specify a value between 2 and 1800.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn dad move-window 1200

## nv set evpn state

Enables and disables the EVPN control plane. When enabled, the EVPN service offered is a VLAN-based service and Cumulus Linux creates an EVI automatically for each extended VLAN. The default setting is `disabled`.

In Cumulus Linux 5.14 and earlier, you specify `enable on` or `enable off` instead of `state enabled` or `state disabled`.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn state enabled

## nv set evpn mac-vrf-soo

Configures a site ID. When you use EVPN with MLAG, EVPN might install local MAC addresses or neighbor entries as remote entries. To prevent EVPN from taking ownership of local MAC addresses or neighbor entries from MLAG, you can associate all local layer 2 VNIs with a unique site ID, which represents an MLAG pair.

When you configure a site ID, Cumulus Linux:

- Adds a Site-of-Origin extended community encoded with the local site ID to EVPN routes that originate from local layer 2 VNIs. Cumulus Linux adds the Site-of-Origin extended community when creating the route.
- Filters all received EVPN routes with a `Site-of-Origin` extended community that matches the local site ID. Cumulus Linux filters the routes when importing the routes from the global table to the layer 2 VNI or layer 3 VNI table.

The site ID is in the format `<IPv4 address>:<2-byte Value>`, where the IPv4 address is the anycast IP address (a virtual IP address for VXLAN data-path termination) and the 2-byte value is an integer between 0 and 65535. For example: 10.0.1.12:10

### Version History

Introduced in Cumulus Linux 5.7.0

### Example

    cumulus@switch:~$ nv set evpn mac-vrf-soo 10.0.1.12:10

## nv set evpn multihoming ead-evi-route rx

Configures the switch to advertise type-1/EAD (Ethernet Auto-discovery) routes as EAD-per-EVI (Ethernet Auto-discovery per EVPN instance) routes for EVPN multihoming at the receiving end.

Some third-party switch vendors do not advertise EAD-per-EVI routes; they only advertise EAD-per-ES routes. To interoperate with these vendors, you need to disable EAD-per-EVI route advertisements. The default setting is `on`.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn multihoming ead-evi-route rx off

## nv set evpn multihoming ead-evi-route tx

Configures the switch to advertise type-1/EAD (Ethernet Auto-discovery) routes as EAD-per-EVI (Ethernet Auto-discovery per EVPN instance) routes for EVPN multihoming at egress. The default setting is `on`.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn multihoming ead-evi-route tx off

## nv set evpn multihoming state

Enables and disables EVPN multihoming. The default setting is `disabled`.

In Cumulus Linux 5.14 and earlier, you specify `enable on` or `enable off` instead of `state enabled` or `state disabled`.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn multihoming state enabled

## nv set evpn multihoming mac-holdtime

Configures the MAC hold time, which specifies the duration for which a switch maintains SYNC MAC entries after the switch deletes the EVPN type-2 route of the Ethernet segment peer. During this time, the switch attempts to independently establish reachability of the MAC address on the local Ethernet segment. You can specify a value between 0 and 86400 seconds. The default setting is 1080 seconds.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn multihoming mac-holdtime 1000

## nv set evpn multihoming neighbor-holdtime

Configures the neighbor hold times, which specifies the duration for which a switch maintains SYNC neighbor entries after the switch deletes the EVPN type-2 route of the Ethernet segment peer. During this time, the switch attempts to independently establish reachability of the host on the local Ethernet segment. You can specify a value between 0 and 86400 seconds. The default setting is 1080 seconds.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn multihoming neighbor-holdtime 600

## nv set evpn multihoming segment

Configures the switch to advertise type-1/EAD (Ethernet Auto-discovery) routes as EAD-per-ES (Ethernet Auto-discovery per Ethernet segment) routes.

Some third party switch vendors do not advertise EAD-per-EVI routes; they only advertise EAD-per-ES routes. To interoperate with these vendors, you need to disable EAD-per-EVI route advertisements.

## nv set evpn multihoming segment df-preference

Configures the designated forwarder preference value for EVPN multihoming. You can specify a value between 1 and 65535.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn multihoming segment df-preference 50000

## nv set evpn multihoming segment mac-address <mac-address>

Configures the MAC address per Ethernet segment for EVPN multihoming. This setting is required.

### Command Syntax

Command | Description
--- | ---
`<mac-address>` | The MAC address.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn multihoming segment mac-address 00:00:00:00:00:10

## nv set evpn multihoming startup-delay

Configures the duration for which a switch holds the Ethernet segment-bond in a protodown state after a reboot or process restart. This allows the initialization of the VXLAN overlay to complete. You can specify a value between 0 and 3600 seconds. The default setting is 180 seconds.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn multihoming startup-delay 1000

## nv set evpn route-advertise default-gateway

Configures the gateway VTEPs to advertise their IP and MAC address. Only turn this setting on in a centralized routing deployment and only on the centralized gateway router. When set to `enabled`, the IP addresses of SVIs in all EVIs announce as type-2 routes with the gateway extended community. The remote layer 2 only VTEPs use ARP suppression and the hosts learn of the gateway’s IP to MAC binding. The default setting is `disbled`.

In Cumulus Linux 5.14 and earlier, you specify `on` or `off`.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn route-advertise default-gateway enabled

## nv set evpn route-advertise nexthop-setting

Configures how to advertise type-5 routes. Each switch in an MLAG pair advertises type-5 routes with its own system IP address, which creates an additional next hop at the remote VTEPs. In a large multi-tenancy EVPN deployment, where additional resources are a concern, you can disable this feature. Set this command to `shared-ip-mac` if you do not want to advertise type-5 routes with the system IP address. Set this command to `system-ip-mac` to advertise type-5 routes with the system IP address. The default setting is `system-ip-mac`.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn route-advertise nexthop-setting shared-ip-mac

## nv set evpn route-advertise svi-ip

Configures the switch to announce the IP addresses of SVIs in all EVIs as type-2 routes. Only enable this option if you reuse SVI IP addresses in the network. The default setting is `disabled`.

In Cumulus Linux 5.14 and earlier, you specify `on` or `off`.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn route-advertise svi-ip enabled

## nv set evpn vni

Enables the EVPN control plane so that the EVPN service offered is VLAN-based and Cumulus Linux creates an EVI automatically for each extended VLAN.

In Cumulus Linux 5.3 and earlier, this command is `nv set evpn evi,`

## nv set evpn vni <vni-id> rd <rd-id>

Configures the BGP Route Distinguisher to use for EVPN type-5 routes originated from this VNI.

In Cumulus Linux 5.3 and earlier, this command is `nv set evpn evi <vni-id> rd`

### Command Syntax

Command | Description
--- | ---
`<vni-id>` | The VNI ID.
`<rd-id>` | The BGP route distinguisher.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set evpn vni 10 rd 10.10.10.1:20

## nv set evpn vni <vni-id> route-target both <rt-id>

Configures the route targets you want to both import and export for the specified VNI.

In Cumulus Linux 5.3 and earlier, this command is `nv set evpn evi <vni-id> route-target both <rt-id>`

### Command Syntax

Command | Description
--- | ---
`<vni-id>` | The VNI ID.
`<rt-id>` | The route target.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn vni 10 route-target both 65101:10

## nv set evpn vni <vni-id> route-target export <rt-id>

Configures the layer 2 RTs you want to export for the specified VNI.

In Cumulus Linux 5.3 and earlier, this command is `nv set evpn evi <vni-id> route-target export <rt-id>`

### Command Syntax

Command | Description
--- | ---
`<vni-id>` | The VNI ID.
`<rt-id>` | The route target.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn vni 10 route-target export 65101:10

## nv set evpn vni <vni-id> route-target import <rt-id>

Configures the layer 2 RTs you want to import for the specified VNI.

In Cumulus Linux 5.3 and earlier, this command is `nv set evpn evi <vni-id> route-target import <rt-id>`

### Command Syntax

Command | Description
--- | ---
`<vni-id>` | The VNI ID.
`<rt-id>` | The route target.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set evpn vni 10 route-target import 65102:10

## nv set vrf <vrf-id> evpn state

Enables and disables the EVPN control plane in the specified VRF.

In Cumulus Linux 5.14 and earlier, you specify `enable on` or `enable off` instead of `state enabled` or `state disabled`.

### Command Syntax

Command | Description
--- | ---
`<vrf-id>` | The VRF name.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set vrf RED evpn state enabled

## nv set vrf <vrf-id> evpn prefix-routes-only

Configures the switch to advertise IP prefix routes (type 5 routes) only in the specified VRF. You can specify `enabled` or `disabled`.

- In Cumulus Linux 5.14 and earlier, you specify `on` or `off`.
- When you enable `prefix-routes-only` for a VRF where the VNI is already present, NVUE blocks the configuration and returns a constraint error, which prevents the VRF-VNI from going down and ensures that the VRF remains UP. However, when you enable `prefix-routes-only` together with other VRF EVPN configuration (such as VLAN configuration), NVUE applies the configuration normally and the VRF-VNI state remains UP.

### Command Syntax

Command | Description
--- | ---
`<vrf-id>` | The VRF name.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set vrf RED evpn prefix-routes-only enabled

## nv set vrf <vrf-id> evpn vlan <vlan-id>

Configures the VLAN for the EVPN instance in the specified VRF. You can specify a value between 1 and 4094, or `auto`.

### Command Syntax

Command | Description
--- | ---
`<vrf-id>` | The VRF name.
`<vlan-id>` | The VLAN name.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set vrf RED evpn vlan 10

## nv set vrf <vrf-id> evpn vni <vni-id>

Configures the layer 3 VNI for the EVPN instance in the specified VRF. You can specify a value between 1 and 16777214, or `auto`.

### Command Syntax

Command | Description
--- | ---
`<vrf-id>` | The VRF name.
`<vni-id>` | The layer 3 VNI ID.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set vrf RED evpn vni 10