Skip to content

Commit

Permalink
Cumulus Linux VXLAN support
Browse files Browse the repository at this point in the history
  • Loading branch information
ipspace committed Sep 16, 2022
1 parent c6ea2c9 commit 223f43e
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 16 deletions.
25 changes: 13 additions & 12 deletions docs/module/vxlan.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,19 @@ The module requires VLAN module (to set up **vlans** dictionary) and should be u

The following table describes per-platform support of individual VXLAN features:

| Operating system | VXLAN<br>bridging |
| ------------------ | :-: |
| Arista EOS ||
| Cisco Nexus OS ||
| VyOS ||
| Dell OS10 ||
| Nokia SR Linux ||

Notes:
* Arista EOS and Cisco Nexus OS implement per-VLAN ingress replication lists
* Dell OS10 requires a IPv4 address for VXLAN.
* Arista EOS seems not able to work with IPv6-only transport.
| Operating system | VXLAN<br>bridging | Per-VLAN<br>replication | IPv6 VTEP |
| ------------------ | :-: | :-: | :-: |
| Arista EOS ||||
| Cisco Nexus OS ||||
| Cumulus Linux ||||
| Dell OS10 ||||
| FRR ||||
| Nokia SR Linux ||||
| VyOS ||||

```{note}
* Nokia SR Linux needs EVPN control plane to enable VXLAN functionality. VXLAN ingress replication lists are built from EVPN Route Type 3 updates.
```

## Global Parameters

Expand Down
2 changes: 1 addition & 1 deletion docs/platforms.md
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ Additional [configuration modules](module-reference.md) are supported on these d
| Cisco IOS |||||||
| Cisco IOS XE |||||||
| Cisco Nexus OS |||||||
| Cumulus Linux ||| ||||
| Cumulus Linux ||| ||||
| Cumulus Linux 5.0 (NVUE) ||[](module/vrf.html#platform-support)|||||
| Juniper vSRX 3.0 |||||||
| Mikrotik CHR RouterOS |||||||
Expand Down
42 changes: 42 additions & 0 deletions netsim/ansible/templates/vxlan/cumulus.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/bash
#
# Exit immediately when any command fails
set -e
#
{%- macro create_vxlan_interface(vlan,vrf=None) %}
#
auto vxlan{{ vlan.vni }}
allow-vxlan vni-{{ vlan.vni }}
iface vni-{{ vlan.vni }}
bridge-access {{ vlan.id }}
vxlan-id {{ vlan.vni }}
vxlan-learning {{ "no" if vxlan.flooding|default("") == "evpn" else "yes" }}
{% endmacro -%}
#
# Create VXLAN interfaces with static flood lists
#
cat >/etc/network/interfaces.d/60-vxlan <<CONFIG
{% if vxlan.vlans is defined %}
allow-vxlan lo
iface lo inet loopback
vxlan-local-tunnelip {{ loopback.ipv4 }}
#
{% for vname in vxlan.vlans if vlans[vname].vni is defined %}
{% set vlan = vlans[vname] %}
{{ create_vxlan_interface(vlan,None) }}
{% if vlan.vtep_list is defined %}
{% for remote_vtep in vlan.vtep_list %}
vxlan-remoteip {{ remote_vtep }}
{% endfor %}
{% endif %}
{% endfor %}
#
allow-vxlan bridge
iface bridge
{% for vname in vxlan.vlans if vlans[vname].vni is defined %}
bridge-ports vni-{{ vlans[vname].vni }}
{% endfor %}
{% endif %}
CONFIG
ifreload --allow vxlan
ifreload --allow vlanbridge
2 changes: 1 addition & 1 deletion netsim/topology-defaults.yml
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ vlan: # VLAN support
node: [ vlans ]

vxlan: # VXLAN support
supported_on: [ eos, nxos, vyos, dellos10, srlinux, frr ]
supported_on: [ eos, nxos, vyos, dellos10, srlinux, frr, cumulus ]
requires: [ vlan ]
config_after: [ vrf ] # For platforms that suppport L3 VXLAN, vrfs must be created first
domain: global
Expand Down
3 changes: 1 addition & 2 deletions tests/integration/vxlan/vxlan-irb.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ message: |
VLANs and two VXLAN VNIs. Both switches perform inter-VLAN bridging, resulting
in asymmetrical IRB.
All hosts should be able to ping each other and one of the switches' loopbacks
(due to the way static routes are set on hosts).
All hosts should be able to ping each other and all switch loopback IPs
Please note it might take a while for the lab to work due to
STP learning phase.
Expand Down

0 comments on commit 223f43e

Please sign in to comment.