Skip to content

Commit

Permalink
Nexus OS VXLAN implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
ipspace committed Jul 23, 2022
1 parent f7f3dfe commit 548693e
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 34 deletions.
2 changes: 1 addition & 1 deletion docs/module-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ The following configuration modules are included in **netsim-tools** distributio
module/sr-mpls.md
module/vlan.md
module/vrf.md
module/vxlan.md
```

## Common Routing Protocol Features
Expand All @@ -36,5 +37,4 @@ Experimental modules are usually implemented on a small set of devices. We're al
module/evpn.md
module/srv6.md
module/vxlan.md
```
6 changes: 5 additions & 1 deletion docs/module/vxlan.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This configuration module configures VXLAN data plane, VLAN-to-VXLAN mapping, an

The module supports the following features:

* VLAN-to-VXLAN bridging
* VLAN-to-VXLAN bridging implementing _VLAN-based Service Interface_ as defined in RFC 7432/RFC 8365.
* Single VXLAN interface per device
* Default loopback address used as the VTEP IP address
* Static per-VLAN or per-node ingress replication
Expand All @@ -26,6 +26,10 @@ The following table describes per-platform support of individual VXLAN features:
| Operating system | VXLAN<br>bridging |
| ------------------ | :-: |
| Arista EOS ||
| Cisco Nexus OS ||

Notes:
* Arista EOS and Cisco Nexus OS implement per-VLAN ingress replication lists

## Global Parameters

Expand Down
58 changes: 29 additions & 29 deletions docs/platforms.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,39 +181,39 @@ The following interface addresses are supported on various platforms:
(platform-routing-support)=
Routing protocol [configuration modules](module-reference.md) are supported on these devices (use **[netlab show module-support](netlab/show.md)** command to display the current system settings):

| Operating system | OSPF | IS-IS | EIGRP | BGP |
| --------------------- | :--: | :---: | :---: | :-: |
| Arista EOS |||||
| Cisco IOS |||||
| Cisco IOS XE |||||
| Cisco Nexus OS |||||
| Cumulus Linux |||||
| Cumulus Linux 5.0 (NVUE) |||||
| Fortinet FortiOS | [](caveats.html#fortinet-fortios) ||||
| FRR 7.5.0 |||||
| Juniper vSRX 3.0 |||||
| Mikrotik CHR RouterOS |||||
| Nokia SR Linux |||||
| Nokia SR OS |||||
| VyOS |||||
| Dell OS10 |||||
| Operating system | OSPF | IS-IS | EIGRP | BGP | BFD |
| --------------------- | :--: | :---: | :---: | :-: | :-: |
| Arista EOS ||||||
| Cisco IOS ||||||
| Cisco IOS XE ||||||
| Cisco Nexus OS ||||||
| Cumulus Linux ||||||
| Cumulus Linux 5.0 (NVUE) ||||||
| Fortinet FortiOS | [](caveats.html#fortinet-fortios) |||||
| FRR 7.5.0 ||||||
| Juniper vSRX 3.0 ||||||
| Mikrotik CHR RouterOS ||||||
| Nokia SR Linux ||||||
| Nokia SR OS ||||||
| VyOS ||||||
| Dell OS10 ||||||

(platform-module-support)=
Additional [configuration modules](module-reference.md) are supported on these devices (use **[netlab show module-support](netlab/show.md)** command to display the current system settings):

| Operating system | BFD | VLAN | VRF | VXLAN | MPLS | SR-MPLS | SRv6 |
| --------------------- | :-: | :--: | :-: | :---: | :--: | :-----: | :--: |
| Arista EOS | | ||||||
| Cisco IOS | | ||||||
| Cisco IOS XE | | ||||||
| Cisco Nexus OS | | || ||||
| Cumulus Linux 5.0 (NVUE) |||[](module/vrf.md#platform-support)|||||
| Juniper vSRX 3.0 | | ||||||
| Mikrotik CHR RouterOS | | ||||||
| Nokia SR Linux | | ||||||
| Nokia SR OS | | ||||||
| VyOS | | ||||||
| Dell OS10 | | ||||||
| Operating system | VLAN | VRF | VXLAN | MPLS | SR-MPLS | SRv6 |
| --------------------- | :--: | :-: | :---: | :--: | :-----: | :--: |
| Arista EOS |||||||
| Cisco IOS |||||||
| Cisco IOS XE |||||||
| Cisco Nexus OS | || ||||
| Cumulus Linux 5.0 (NVUE) ||[](module/vrf.md#platform-support)|||||
| Juniper vSRX 3.0 |||||||
| Mikrotik CHR RouterOS |||||||
| Nokia SR Linux |||||||
| Nokia SR OS |||||||
| VyOS |||||||
| Dell OS10 |||||||

## IPv6 Support

Expand Down
5 changes: 3 additions & 2 deletions netsim/ansible/templates/vxlan/eos.j2
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
interface vxlan 1
vxlan source-interface loopback 0
{% if vlans is defined %}
{% for vlan in vlans.values() if vlan.vni is defined %}
{% if vxlan.vlans is defined %}
{% for vname in vxlan.vlans if vlans[vname].vni is defined %}
{% set vlan = vlans[vname] %}
vxlan vlan {{ vlan.id }} vni {{ vlan.vni }}
{% if vlan.vtep_list is defined %}
vxlan vlan {{ vlan.id }} flood vtep {{ vlan.vtep_list|join(' ') }}
Expand Down
26 changes: 26 additions & 0 deletions netsim/ansible/templates/vxlan/nxos.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
feature nv overlay
feature vn-segment-vlan-based
!
{% if vlans is defined %}
{% for vname,vdata in vlans.items() if vdata.vni is defined %}
vlan {{ vdata.id }}
vn-segment {{ vdata.vni }}
!
{% endfor +%}
{% endif %}
!
interface nve 1
source-interface loopback 0
{% if vxlan.vlans is defined %}
{% for vname in vxlan.vlans if vlans[vname].vni is defined %}
{% set vlan = vlans[vname] %}
member vni {{ vlan.vni }}
{% if vxlan.flooding|default("") == "static" %}
ingress-replication protocol static
{% for peer in vlan.vtep_list|default([]) %}
peer-ip {{ peer }}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}
no shutdown
2 changes: 1 addition & 1 deletion netsim/topology-defaults.yml
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ vlan: # VLAN support
node: [ vlans ]

vxlan: # VXLAN support
supported_on: [ eos ]
supported_on: [ eos, nxos ]
requires: [ vlan ]
domain: global
flooding: static
Expand Down

0 comments on commit 548693e

Please sign in to comment.