From 357b8601efd55cfa420aa3b49845ba72709473f1 Mon Sep 17 00:00:00 2001 From: Jeroen van Bemmel Date: Sat, 1 Oct 2022 20:04:06 -0500 Subject: [PATCH 1/2] Add config for SR OS MPLS EVPN LDP --- EVPN/mpls-bridging/evpn.mpls/sros.j2 | 37 ++++++++++++++++++++++++++++ EVPN/mpls-bridging/topology.yml | 4 +++ 2 files changed, 41 insertions(+) create mode 100644 EVPN/mpls-bridging/evpn.mpls/sros.j2 diff --git a/EVPN/mpls-bridging/evpn.mpls/sros.j2 b/EVPN/mpls-bridging/evpn.mpls/sros.j2 new file mode 100644 index 0000000..9d7d9c3 --- /dev/null +++ b/EVPN/mpls-bridging/evpn.mpls/sros.j2 @@ -0,0 +1,37 @@ +# May need to configure these, default seems to work +# mpls label range l2evpn {{ 405000 + 10000 * id }} 1000 +# mpls label range l2evpn ethernet-segment 415000 1000 + +# See https://documentation.nokia.com/cgi-bin/dbaccessfilename.cgi/3HE14991AAAFTQZZA01_V1_7450%20ESS%207750%20SR%207950%20XRS%20Advanced%20Configuration%20Guide%20for%20Releases%20up%20to%2021.5.R2-Part%20II.pdf +# EVPN for MPLS Tunnels + +{% macro mpls_interface(vrf,type,vni,evi) %} +- path: configure/service/vpls[service-name={{ vrf }}] + val: +{# May get created for first time here, when not referenced from any interfaces #} + customer: '1' + admin-state: enable + service-id: {{ vni if type=='l3' else (vrf[4:]|int + 10000) }} # transit VNI for l3, should not overlap + + bgp: + - bgp-instance: 1 + # route-distinguisher: xxx # Don't configure this, use auto RD + route-target: + export: "target:{{ bgp.as }}:{{ vrf[4:]|int }}" + import: "target:{{ bgp.as }}:{{ vrf[4:]|int }}" + bgp-evpn: + evi: {{ evi }} + mpls: + - bgp-instance: 1 + admin-state: enable + ingress-replication-bum-label: True + ecmp: 8 + auto-bind-tunnel: + resolution: any + ecmp: 8 +{% endmacro %} + +updates: +{% for vname,vdata in vlans.items() if vdata.vni is defined %} +{{ mpls_interface('vlan'+vdata.id|string,'l2',vdata.vni,vdata.id) }} +{% endfor %} diff --git a/EVPN/mpls-bridging/topology.yml b/EVPN/mpls-bridging/topology.yml index 5fc30f7..c84392b 100644 --- a/EVPN/mpls-bridging/topology.yml +++ b/EVPN/mpls-bridging/topology.yml @@ -10,6 +10,10 @@ bgp.as: 65000 vlans: tenant: mode: bridge + evpn: # JvB: enable EVPN, should add EVI + transport: mpls # default: vxlan + +# mpls.vlans: [ tenant ] groups: hosts: From df6c9fde899cfa5b951c4b8808ad770c69a9e499 Mon Sep 17 00:00:00 2001 From: Jeroen van Bemmel Date: Sun, 2 Oct 2022 09:59:08 -0500 Subject: [PATCH 2/2] Clarify comments --- EVPN/mpls-bridging/topology.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/EVPN/mpls-bridging/topology.yml b/EVPN/mpls-bridging/topology.yml index c84392b..279f923 100644 --- a/EVPN/mpls-bridging/topology.yml +++ b/EVPN/mpls-bridging/topology.yml @@ -10,10 +10,10 @@ bgp.as: 65000 vlans: tenant: mode: bridge - evpn: # JvB: enable EVPN, should add EVI - transport: mpls # default: vxlan + evpn: # JvB: enable EVPN, should trigger EVI generation + transport: mpls # evpn module would default to vxlan if module is present -# mpls.vlans: [ tenant ] +# evpn.vlans: [ tenant ] # implied by 'evpn:' groups: hosts: