networklab 26.2__tar.gz → 26.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {networklab-26.2/networklab.egg-info → networklab-26.3}/PKG-INFO +2 -2
- {networklab-26.2 → networklab-26.3}/README.md +1 -1
- {networklab-26.2 → networklab-26.3}/netsim/__init__.py +1 -1
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/ios.macro.j2 +17 -11
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/iosxr.j2 +3 -0
- networklab-26.3/netsim/ansible/templates/bgp/openbsd.j2 +111 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/sros.gnmi.macro.j2 +1 -0
- networklab-26.3/netsim/ansible/templates/evpn/crpd.j2 +1 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/ioll2.j2 +20 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/ios-common.j2 +33 -0
- networklab-26.3/netsim/ansible/templates/evpn/ios.j2 +29 -0
- networklab-26.3/netsim/ansible/templates/evpn/iosxr.j2 +72 -0
- networklab-26.2/netsim/ansible/templates/evpn/vjunos-switch.j2 → networklab-26.3/netsim/ansible/templates/evpn/junos/common.j2 +7 -56
- networklab-26.3/netsim/ansible/templates/evpn/junos/vlan.j2 +57 -0
- networklab-26.3/netsim/ansible/templates/evpn/vjunos-router.j2 +70 -0
- networklab-26.3/netsim/ansible/templates/evpn/vjunos-switch.j2 +34 -0
- networklab-26.3/netsim/ansible/templates/evpn/vptx.j2 +14 -0
- networklab-26.3/netsim/ansible/templates/gateway/crpd.j2 +37 -0
- networklab-26.3/netsim/ansible/templates/gateway/iosxr.j2 +26 -0
- networklab-26.3/netsim/ansible/templates/initial/crpd.j2 +61 -0
- networklab-26.3/netsim/ansible/templates/isis/crpd.j2 +2 -0
- networklab-26.2/netsim/ansible/templates/isis/junos.j2 → networklab-26.3/netsim/ansible/templates/isis/junos.isis.j2 +0 -19
- networklab-26.3/netsim/ansible/templates/isis/junos.j2 +10 -0
- networklab-26.3/netsim/ansible/templates/isis/vsrx.j2 +12 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/frr.mplsvpn.j2 +3 -0
- networklab-26.3/netsim/ansible/templates/mpls/ios.6pe.j2 +17 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/ios.j2 +0 -1
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/ios.mplsvpn.j2 +7 -0
- networklab-26.3/netsim/ansible/templates/mpls/iosxr/6pe.j2 +22 -0
- networklab-26.3/netsim/ansible/templates/mpls/iosxr/ldp.j2 +16 -0
- networklab-26.3/netsim/ansible/templates/mpls/iosxr/mplsvpn.j2 +32 -0
- networklab-26.3/netsim/ansible/templates/mpls/iosxr.j2 +12 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/junos.ldp.j2 +6 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/junos.mplsvpn.j2 +3 -2
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/sros.bgp.j2 +18 -3
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/sros.j2 +1 -1
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/vyos.mplsvpn.j2 +1 -1
- networklab-26.3/netsim/ansible/templates/routing/iosxr/aspath.j2 +8 -0
- networklab-26.3/netsim/ansible/templates/routing/iosxr/clist.j2 +16 -0
- networklab-26.3/netsim/ansible/templates/routing/iosxr/policy-delete.j2 +16 -0
- networklab-26.3/netsim/ansible/templates/routing/iosxr/policy-match.j2 +26 -0
- networklab-26.3/netsim/ansible/templates/routing/iosxr/policy-set.j2 +29 -0
- networklab-26.3/netsim/ansible/templates/routing/iosxr/policy.j2 +29 -0
- networklab-26.3/netsim/ansible/templates/routing/iosxr/prefix.j2 +16 -0
- networklab-26.3/netsim/ansible/templates/routing/iosxr/static.j2 +13 -0
- networklab-26.3/netsim/ansible/templates/routing/iosxr.j2 +30 -0
- networklab-26.3/netsim/ansible/templates/sr/eos.j2 +23 -0
- networklab-26.3/netsim/ansible/templates/sr/frr.j2 +39 -0
- networklab-26.3/netsim/ansible/templates/sr/ios.j2 +23 -0
- networklab-26.3/netsim/ansible/templates/sr/iosxr.j2 +28 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/sr/junos.j2 +9 -2
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/sr/srlinux.j2 +11 -13
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/sr/sros.j2 +6 -10
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/vjunos-router.j2 +2 -1
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/vptx.j2 +2 -2
- networklab-26.3/netsim/ansible/templates/vxlan/vjunos-router.j2 +68 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/vjunos-switch.j2 +1 -1
- networklab-26.3/netsim/ansible/templates/vxlan/vptx.j2 +66 -0
- {networklab-26.2 → networklab-26.3}/netsim/data/types.py +8 -1
- {networklab-26.2 → networklab-26.3}/netsim/data/validate.py +47 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/cat8000v.yml +2 -1
- {networklab-26.2 → networklab-26.3}/netsim/devices/cisco8000v.py +3 -2
- networklab-26.3/netsim/devices/crpd.py +46 -0
- networklab-26.3/netsim/devices/crpd.yml +53 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/csr.yml +7 -1
- {networklab-26.2 → networklab-26.3}/netsim/devices/eos.yml +4 -1
- {networklab-26.2 → networklab-26.3}/netsim/devices/frr.yml +7 -1
- {networklab-26.2 → networklab-26.3}/netsim/devices/iol.py +16 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/iol.yml +7 -2
- {networklab-26.2 → networklab-26.3}/netsim/devices/ios.yml +1 -0
- networklab-26.3/netsim/devices/iosxr.py +127 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/iosxr.yml +8 -1
- {networklab-26.2 → networklab-26.3}/netsim/devices/junos.py +18 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/junos.yml +3 -1
- {networklab-26.2 → networklab-26.3}/netsim/devices/none.yml +4 -1
- {networklab-26.2 → networklab-26.3}/netsim/devices/openbsd.yml +18 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/srlinux.yml +6 -5
- {networklab-26.2 → networklab-26.3}/netsim/devices/sros.yml +5 -4
- {networklab-26.2 → networklab-26.3}/netsim/devices/vjunos-router.py +18 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/vjunos-router.yml +6 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/vmx.py +18 -0
- networklab-26.3/netsim/devices/vptx.py +58 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/vptx.yml +8 -1
- {networklab-26.2 → networklab-26.3}/netsim/devices/vsrx.py +18 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/xr.yml +54 -1
- networklab-26.3/netsim/extra/bgp.policy/iosxr.j2 +48 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/defaults.yml +1 -1
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/ios.j2 +6 -4
- networklab-26.3/netsim/extra/bgp.session/iosxr.j2 +85 -0
- networklab-26.3/netsim/extra/bgp.session/openbsd.j2 +1 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/plugin.py +3 -5
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/sros.j2 +4 -4
- {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/arubacx.j2 +1 -1
- {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/cumulus_nvue.j2 +1 -1
- {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/dellos10.j2 +3 -1
- {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/eos.j2 +1 -1
- {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/frr.j2 +1 -1
- {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/ios.j2 +1 -1
- networklab-26.3/netsim/extra/ebgp.multihop/iosxr.j2 +27 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/junos.j2 +2 -2
- {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/srlinux.j2 +1 -1
- {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/sros.j2 +2 -2
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/fortios/openstack/latest/user_data +4 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/__init__.py +1 -2
- {networklab-26.2 → networklab-26.3}/netsim/modules/_routing.py +26 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/evpn.py +49 -10
- {networklab-26.2 → networklab-26.3}/netsim/modules/evpn.yml +1 -1
- {networklab-26.2 → networklab-26.3}/netsim/modules/mpls.py +1 -5
- {networklab-26.2 → networklab-26.3}/netsim/modules/mpls.yml +1 -1
- {networklab-26.2 → networklab-26.3}/netsim/modules/routing/__init__.py +4 -3
- {networklab-26.2 → networklab-26.3}/netsim/modules/routing/aspath.py +1 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/routing/clist.py +1 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/routing/normalize.py +2 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/routing/prefix.py +26 -12
- networklab-26.3/netsim/modules/sr.py +81 -0
- networklab-26.3/netsim/modules/sr.yml +56 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/ansible.py +14 -2
- {networklab-26.2 → networklab-26.3}/netsim/outputs/config.py +15 -3
- {networklab-26.2 → networklab-26.3}/netsim/providers/__init__.py +2 -2
- networklab-26.3/netsim/reports/isis-interfaces.html.j2 +33 -0
- networklab-26.3/netsim/reports/isis-interfaces.md.j2 +15 -0
- networklab-26.3/netsim/templates/provider/clab/crpd/hosts.j2 +1 -0
- networklab-26.3/netsim/templates/provider/clab/crpd/netlab-config.j2 +19 -0
- networklab-26.3/netsim/templates/provider/clab/cumulus/hosts.j2 +1 -0
- networklab-26.3/netsim/templates/provider/clab/frr/hosts.j2 +1 -0
- networklab-26.3/netsim/templates/provider/clab/iosxr/netlab-config.j2 +8 -0
- {networklab-26.2/netsim/templates/provider/clab/srlinux → networklab-26.3/netsim/templates/provider/clab/linux}/hosts.j2 +1 -1
- networklab-26.3/netsim/templates/provider/clab/srlinux/hosts.j2 +1 -0
- {networklab-26.2 → networklab-26.3}/netsim/validate/_common.py +4 -3
- {networklab-26.2 → networklab-26.3}/netsim/validate/bgp/eos.py +2 -2
- {networklab-26.2 → networklab-26.3}/netsim/validate/bgp/frr.py +1 -1
- networklab-26.3/netsim/validate/crpd.py +7 -0
- {networklab-26.2 → networklab-26.3}/netsim/validate/ospf/eos.py +1 -1
- {networklab-26.2 → networklab-26.3}/netsim/validate/ospf/frr.py +1 -1
- {networklab-26.2 → networklab-26.3/networklab.egg-info}/PKG-INFO +2 -2
- {networklab-26.2 → networklab-26.3}/networklab.egg-info/SOURCES.txt +41 -5
- networklab-26.2/netsim/ansible/templates/evpn/ios.j2 +0 -13
- networklab-26.2/netsim/ansible/templates/mpls/ios.6pe.j2 +0 -8
- networklab-26.2/netsim/ansible/templates/routing/iosxr.j2 +0 -15
- networklab-26.2/netsim/ansible/templates/sr/eos.j2 +0 -17
- networklab-26.2/netsim/ansible/templates/sr/frr.j2 +0 -26
- networklab-26.2/netsim/ansible/templates/sr/ios.j2 +0 -16
- networklab-26.2/netsim/ansible/templates/sr/sros.openconfig.j2 +0 -30
- networklab-26.2/netsim/devices/vptx.py +0 -390
- networklab-26.2/netsim/modules/sr.py +0 -9
- networklab-26.2/netsim/modules/sr.yml +0 -13
- networklab-26.2/netsim/templates/provider/clab/cumulus/hosts-common.j2 +0 -38
- networklab-26.2/netsim/templates/provider/clab/cumulus/hosts.j2 +0 -15
- networklab-26.2/netsim/templates/provider/clab/frr/hosts-common.j2 +0 -38
- networklab-26.2/netsim/templates/provider/clab/frr/hosts.j2 +0 -15
- networklab-26.2/netsim/templates/provider/clab/linux/hosts-common.j2 +0 -38
- networklab-26.2/netsim/templates/provider/clab/linux/hosts.j2 +0 -15
- networklab-26.2/netsim/templates/provider/clab/srlinux/hosts-common.j2 +0 -38
- {networklab-26.2 → networklab-26.3}/LICENSE.md +0 -0
- {networklab-26.2 → networklab-26.3}/MANIFEST.in +0 -0
- {networklab-26.2 → networklab-26.3}/netlab +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/collect-configs.ansible +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/config.ansible +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/create-config.ansible +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/device-ready.ansible +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/initial-config.ansible +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/missing.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/reload-config.ansible +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/create-config.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/create-custom-config.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/arcos.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/arubacx.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/asa.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/cumulus.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/cumulus_nvue.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/dellos10.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/eos.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/fortinet.fortios.fortios.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/frr.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/ios.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/iosxr.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/junos.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/linux-clab.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/linux.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/missing.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/netscaler.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/none.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/nxos.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/openbsd.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/routeros.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/routeros7.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/sonic.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/srlinux.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/sros.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/vyos-script.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/vyos.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-custom-config.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-module.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/_config_cleanup.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/arcos.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/arubacx.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/asa.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/cumulus.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/cumulus_nvue.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/dellos10.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/eos.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/fortinet.fortios.fortios.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/frr.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/ios.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/iosxr.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/junos.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/nxos.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/routeros.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/routeros7.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/sonic.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/srlinux.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/sros.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/vyos.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fortinet.fortios.fortios/initial.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/frr/deploy-config.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/frr/initial-clab.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/initial-config.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/linux/dhcp.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/cumulus_nvue.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/fortinet.fortios.fortios-clab.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/junos.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/netscaler.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/nxos.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/sros.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/srsim-hardware.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/srsim.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/ssh.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/vyos-clab.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/reload-config/_copy_config.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/reload-config/eos.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/reload-config/ios.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/reload-config/srlinux.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/vmx/initial.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/wait-for-ready.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/arubacx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/junos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/none.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/nxos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/sros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/arubacx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/arubacx.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/asa.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/asa.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/cumulus_nvue.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/cumulus_nvue.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/dellos10.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/eos.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/junos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/junos.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/junos.policy.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/none.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/nxos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/routeros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/routeros.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/routeros7.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/routeros7.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/sonic.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/srlinux.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/sros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/vyos.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/dhcp/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/dhcp/dnsmasq.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/dhcp/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/dhcp/eos.server.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/dhcp/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/dhcp/ios.server.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/dhcp/linux-isc-dhcp-relay.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/dhcp/linux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/eigrp/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/eigrp/nxos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/arubacx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/cumulus_nvue.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/frr.evpn-config.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/nxos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/sros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/arubacx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/cumulus_nvue.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/frr.vrrp-config.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/junos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/nxos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/sros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/_debug_commands.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/arcos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/arubacx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/arubacx.vlan.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/arubacx.vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/asa.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/bird-clab.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/cat8000v.vlan.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/csr.vlan.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/cumulus_nvue.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/dellos10.vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/eos.vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/fortinet.fortios.fortios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/frr/daemons.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/iol.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/iol.vlan.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/ioll2.vlan.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/ios.vlan.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/ios.vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/iosvl2.vlan.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/iosxr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/junos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/junos.vlan.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/junos.vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux/bash_profile.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux/create-bond.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux/hosts-common.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux/hosts.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux/packages.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux/ubuntu.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux/vanilla-ifconfig.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux/vanilla.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux-clab.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/netscaler.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/nxos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/nxos.vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/openbsd.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/routeros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/routeros.vlan.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/routeros.vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/routeros7.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/routeros7.vlan.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/routeros7.vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/sonic.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/sros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/sros.openconfig.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/vyos.vlan.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/vyos.vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/asa.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/eos.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/frr.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/iosxr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/nxos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/srlinux.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/sros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/sros.openconfig.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/arubacx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/cumulus_nvue.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/junos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/linux-clab.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/linux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/missing.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/arubacx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/arubacx.ldp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/arubacx.mplsvpn.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/eos.6pe.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/eos.bgp-lu.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/eos.ldp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/eos.mplsvpn.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/frr.frr-config.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/frr.ldp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/ios.bgp-lu.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/ios.ldp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/junos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/routeros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/routeros.ldp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/routeros.mplsvpn.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/routeros7.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/routeros7.ldp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/routeros7.mplsvpn.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/srlinux.ldp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/sros.ldp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/sros.mplsvpn.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/vyos.ldp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/normalize/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/normalize/ioll2.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/normalize/iosvl2.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/arcos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/arubacx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/arubacx.ospfv2.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/arubacx.ospfv3.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/asa.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/asa.ospfv2.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/cumulus.ospfv2.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/cumulus.ospfv3.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/cumulus_nvue.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/dellos10.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/dellos10.ospfv2.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/dellos10.ospfv3.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/eos.ospfv2.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/eos.ospfv3.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/fortinet.fortios.fortios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/frr.ospfv2.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/frr.ospfv3.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/ios.ospfv2.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/ios.ospfv3.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/iosxr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/junos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/junos.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/none.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/nxos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/nxos.ospfv2.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/nxos.ospfv3.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/openbsd.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/openbsd.ospfv2.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/openbsd.ospfv3.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/routeros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/routeros7.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/routeros7.ospf-include.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/srlinux.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/sros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/sros.openconfig.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/vyos.default.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/vyos.ospfv2.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/vyos.ospfv3.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/frr.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/ios.macro.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/openbsd.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/openbsd.ripng.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/openbsd.ripv2.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/sros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_default.ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_prefix_list_ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_prefix_list_junos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_prefix_list_vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_redistribute.cumulus_nvue.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_redistribute.dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_redistribute.eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_redistribute.frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_redistribute.ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_redistribute.iosxr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_redistribute.srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_redistribute.sros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_route_map_ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_route_policy_junos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_route_policy_vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/arubacx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/cumulus_nvue.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/junos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/linux/ubuntu.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/linux/vanilla.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/linux-clab.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/linux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/openbsd.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/sros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/srv6/frr.bgp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/srv6/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/srv6/ios.bgp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/srv6/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/srv6/sros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/stp/arubacx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/stp/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/stp/cumulus_nvue.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/stp/dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/stp/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/stp/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/stp/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/arubacx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/cat8000v.essentials.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/cat8000v.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/cisco8000v.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/csr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/cumulus_nvue.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/iol.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/ioll2.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/iosvl2.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/linux-clab.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/nxos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/routeros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/routeros7.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/sros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/vjunos-switch.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/vmx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/vsrx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/arubacx.bgp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/arubacx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/arubacx.ospfv2-vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/arubacx.ospfv3-vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/cumulus_nvue.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/dellos10.bgp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/dellos10.ospfv2-vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/eos.bgp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/frr.bgp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/frr.frr-config.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/ios.bgp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/iosxr.bgp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/iosxr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/junos.bgp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/junos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/nxos.bgp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/nxos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/nxos.ospfv2-vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/routeros.bgp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/routeros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/routeros.ospfv2-vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/routeros7.bgp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/routeros7.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/routeros7.ospfv2-vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/sros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/vyos.bgp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/vyos.ospfv2-vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/vyos.ospfv3-vrf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/arubacx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/cumulus_nvue.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/nxos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/sros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/api/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/augment/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/augment/addressing.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/augment/components.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/augment/config.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/augment/devices.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/augment/groups.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/augment/links.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/augment/main.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/augment/nodes.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/augment/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/augment/tools.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/augment/topology.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/augment/validate.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/_nodeset.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/alias.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/ansible.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/api.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/capture.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/clab.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/clab_actions/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/clab_actions/build.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/clab_actions/cleanup.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/clab_actions/tarball.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/collect.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/config.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/connect.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/create.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/defaults.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/down.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/empty.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/exec.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/external_commands.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/graph.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/help.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/initial/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/initial/configs.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/initial/deploy.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/initial/ready.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/initial/utils.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/inspect.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/install.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/libvirt/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/libvirt/config.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/libvirt/package.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/libvirt/remove.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/read.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/report.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/restart.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/show-usage.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/show.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/attributes.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/defaults.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/devices.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/images.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/module_support.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/modules.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/outputs.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/providers.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/reports.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/status.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/tc.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/test.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/up.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/usage.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/usage.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/usage_actions/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/usage_actions/show.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/usage_actions/utils.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/validate/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/validate/devices.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/validate/parse.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/validate/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/validate/report.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/validate/source.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/validate/suzieq.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/validate/tests.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/validate/utils.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/cli/version.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/common.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/Dockerfile +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/Dockerfile.v3 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/bfd.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/bgp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/bird.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/ospf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/protocols.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/radv.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/routing.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/bird.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/dnsmasq/Dockerfile +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/dnsmasq/dhcp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/dnsmasq/dnsmasq.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/dnsmasq.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/kind/initial.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/kind.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/daemons/netscaler/Dockerfile.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/data/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/data/filemaps.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/data/global_vars.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/defaults/addressing.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/defaults/attributes.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/defaults/automation.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/defaults/const.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/defaults/hints.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/defaults/multilab.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/defaults/netlab.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/defaults/paths.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/defaults/ports.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/defaults/warnings.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/_common.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/arubacx.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/arubacx.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/asav.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/asav.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/bird.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/cat8000v.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/cisco8000v.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/csr.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/cumulus.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/cumulus.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/cumulus_nvue.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/cumulus_nvue.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/dellos10.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/dellos10.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/eos.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/fortios.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/frr.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/ioll2.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/ioll2.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/iosv.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/iosv.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/iosvl2.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/iosvl2.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/linux.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/linux.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/netscaler.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/nxos.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/nxos.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/openbsd.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/routeros.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/routeros7.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/sonic.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/srlinux.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/sros.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/srsim.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/srsim.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/unknown.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/unknown.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/vjunos-switch.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/vjunos-switch.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/vmx.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/vsrx.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/devices/vyos.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.domain/defaults.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.domain/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.originate/defaults.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.originate/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/_route_map_ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/arubacx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/defaults.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/junos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/simple-attributes.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/sros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/_sample_bfd_template.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/arubacx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/bird.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/cumulus_nvue.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/junos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/nxos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/routeros7.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bonding/defaults.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bonding/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bonding/linux-clab.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bonding/linux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/bonding/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/check.config/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/cumulus.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/defaults.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/ebgp-multihop-load-balancing.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.utils/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/evpn.multihoming/cumulus_nvue.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/evpn.multihoming/defaults.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/evpn.multihoming/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/evpn.multihoming/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/evpn.multihoming/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/evpn.multihoming/vjunos-switch.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/fabric/defaults.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/fabric/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/files/defaults.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/files/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/firewall.zonebased/defaults.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/firewall.zonebased/deploy.fortinet.fortios.fortios.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/firewall.zonebased/fortinet.fortios.fortios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/firewall.zonebased/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/firewall.zonebased/vsrx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/firewall.zonebased/vyos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/kind/defaults.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/kind/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/mlag.vtep/defaults.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/mlag.vtep/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/multilab/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/node.clone/defaults.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/node.clone/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/none/none.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/arubacx.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/cumulus_nvue.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/defaults.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/eos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/frr.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/ios.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/junos.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/proxy-arp/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/proxy-arp/srlinux.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/proxy-arp/sros.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/test.fixup/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/test.vrf_check/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/vrrp.version/cumulus_nvue.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/vrrp.version/defaults.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/vrrp.version/dellos10.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/extra/vrrp.version/plugin.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/ansible.sh +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/apt-get-update.sh +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/containerlab.sh +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/graph.sh +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/grpc.sh +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/install.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/arubacx.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/asav/day0-config +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/asav.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/asav.xml.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/cat8000v/iosxe_config.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/cat8000v.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/cat8000v.xml.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/csr.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/dellos10/run.sh +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/dellos10.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/eos.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/eos.xml.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/fortios.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/fortios.xml.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/frr/meta-data +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/frr/user-data.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/frr.xml.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/iosv.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/iosv.xml.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/iosvl2.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/iosxr/iosxr_config.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/iosxr.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/nxos.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/nxos.xml.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/openbsd/meta-data +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/openbsd/network-config +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/openbsd/user-data +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/openbsd.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/openbsd.xml.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/routeros7.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/sonic.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/sonic.xml.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/vptx/juniper.conf +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/vptx/make-config.sh +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/vptx/run.sh +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/vptx.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/vptx.xml.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/vsrx/juniper.conf +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/vsrx.txt +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/libvirt.sh +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/install/ubuntu.sh +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/_dataplane.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/bfd.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/bfd.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/bgp.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/bgp.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/dhcp.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/dhcp.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/eigrp.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/eigrp.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/gateway.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/gateway.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/initial.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/isis.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/isis.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/lag.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/lag.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/ospf.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/ospf.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/ripv2.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/ripv2.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/routing/policy.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/routing/static.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/routing.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/srv6.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/srv6.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/stp.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/stp.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/vlan.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/vlan.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/vrf.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/vrf.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/vxlan.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/modules/vxlan.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/_graph.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/ansible.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/common.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/d2.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/d2.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/devices.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/format.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/graph.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/graph.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/graphite.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/json.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/none.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/pickle.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/provider.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/report.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/tools.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/outputs/yaml.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/providers/clab.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/providers/clab.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/providers/external.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/providers/external.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/providers/libvirt.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/providers/libvirt.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/providers/virtualbox.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/providers/virtualbox.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/py.typed +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/addressing-link.html.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/addressing-node.html.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/addressing.html.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/addressing.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/addressing.md.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/bgp-asn.html.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/bgp-asn.md.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/bgp-neighbor-short.md.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/bgp-neighbor.html.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/bgp-neighbor.md.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/bgp-prefix.include.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/bgp.html.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/bgp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/isis-nodes.html.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/isis-nodes.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/isis-nodes.md.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/mgmt.html.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/mgmt.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/nodes.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/ospf-areas.html.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/ospf-areas.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/ospf-areas.md.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/ospf-utils.include.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/ospfv3.html.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/ospfv3.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/ospfv3.md.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/page.html.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/ssh_config.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/wiring-columns.include.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/wiring.html.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/wiring.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/reports/wiring.md.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/roles/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/roles/bridge.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/roles/host.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/roles/router.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/ansible.cfg.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/clab/clab.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/clab/cumulus/interfaces.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/clab/eos/ceos-config.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/clab/frr/daemons.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/clab/iol/ifstate.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/clab/ioll2/ifstate.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/external/external.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/Vagrantfile.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/_debian_vagrant_password.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/arcos-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/arubacx-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/asav-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/cat8000v-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/csr-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/cumulus-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/cumulus_nvue-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/define-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/dellos10-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/eos-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/fortios-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/forwarded-ports.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/frr-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/iosv-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/iosvl2-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/iosxr-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/libvirt-bridge.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/libvirt-tunnel.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/linux-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/none-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/nxos-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/openbsd-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/routeros-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/routeros7-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/sonic-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/vagrant-libvirt.xml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/vptx-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/vsrx-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/vyos-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/Vagrantfile.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/arcos-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/cumulus-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/eos-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/frr-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/linux-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/nxos-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/virtualbox-network.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/virtualbox-ports.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/vsrx-domain.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/tests/clab.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/tests/grpc.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/tests/libvirt.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/templates/tests/virtualbox.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/tools/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/tools/edgeshark.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/tools/graphite.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/tools/graphite.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/tools/nso.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/tools/nuts/inventory/groups.yaml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/tools/nuts/inventory/hosts.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/tools/nuts/nr-config.yaml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/tools/nuts/tests/test_bgp.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/tools/nuts/tests/test_interfaces.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/tools/nuts/tests/test_ospf.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/tools/nuts.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/tools/suzieq/suzieq-cfg.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/tools/suzieq/suzieq.inventory.j2 +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/tools/suzieq.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/topology-defaults.yml +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/utils/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/utils/callback.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/utils/files.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/utils/filters.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/utils/linuxbridge.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/utils/log.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/utils/read.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/utils/routing.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/utils/sort.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/utils/stats.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/utils/status.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/utils/strings.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/utils/templates.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/utils/versioning.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/validate/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/validate/bgp/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/validate/cumulus.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/validate/eos.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/validate/frr.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/validate/isis/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/validate/isis/frr.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/validate/linux.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/validate/ospf/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/validate/route/__init__.py +0 -0
- {networklab-26.2 → networklab-26.3}/netsim/validate/route/frr.py +0 -0
- {networklab-26.2 → networklab-26.3}/networklab.egg-info/dependency_links.txt +0 -0
- {networklab-26.2 → networklab-26.3}/networklab.egg-info/requires.txt +0 -0
- {networklab-26.2 → networklab-26.3}/networklab.egg-info/top_level.txt +0 -0
- {networklab-26.2 → networklab-26.3}/requirements.txt +0 -0
- {networklab-26.2 → networklab-26.3}/setup.cfg +0 -0
- {networklab-26.2 → networklab-26.3}/setup.py +0 -0
- {networklab-26.2 → networklab-26.3}/tests/test_transformation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: networklab
|
|
3
|
-
Version: 26.
|
|
3
|
+
Version: 26.3
|
|
4
4
|
Summary: CLI-based Virtual Networking Lab Abstraction Layer
|
|
5
5
|
Home-page: https://github.com/ipspace/netlab
|
|
6
6
|
Author: Ivan Pepelnjak
|
|
@@ -60,7 +60,7 @@ Interested? [Read the documentation](https://netlab.tools) (also available on [G
|
|
|
60
60
|
|
|
61
61
|
## Releases
|
|
62
62
|
|
|
63
|
-
The latest release is [release 26.
|
|
63
|
+
The latest release is [release 26.03](https://github.com/ipspace/netlab/releases/tag/release_26.03). It should be pretty stable, but if you encounter bugs, please report them as [GitHub issues](https://github.com/ipspace/netlab/issues/new/choose) and use [release 26.02](https://github.com/ipspace/netlab/releases/tag/release_26.02).
|
|
64
64
|
|
|
65
65
|
<!--
|
|
66
66
|
or [1.8.4-post2](https://github.com/ipspace/netlab/releases/tag/release_1.8.4-post2).
|
|
@@ -17,7 +17,7 @@ Interested? [Read the documentation](https://netlab.tools) (also available on [G
|
|
|
17
17
|
|
|
18
18
|
## Releases
|
|
19
19
|
|
|
20
|
-
The latest release is [release 26.
|
|
20
|
+
The latest release is [release 26.03](https://github.com/ipspace/netlab/releases/tag/release_26.03). It should be pretty stable, but if you encounter bugs, please report them as [GitHub issues](https://github.com/ipspace/netlab/issues/new/choose) and use [release 26.02](https://github.com/ipspace/netlab/releases/tag/release_26.02).
|
|
21
21
|
|
|
22
22
|
<!--
|
|
23
23
|
or [1.8.4-post2](https://github.com/ipspace/netlab/releases/tag/release_1.8.4-post2).
|
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
!
|
|
2
|
+
{#
|
|
3
|
+
BGP community propagation configuration
|
|
4
|
+
#}
|
|
5
|
+
{% macro neighbor_community(n,ip,bgp) %}
|
|
6
|
+
{% if n.type in bgp.community|default({}) %}
|
|
7
|
+
{% set c_list = bgp.community[n.type] %}
|
|
8
|
+
{# Deal with IOS/XE regression to the 90s #}
|
|
9
|
+
{% if 'standard' in c_list and 'extended' in c_list %}
|
|
10
|
+
neighbor {{ ip }} send-community both
|
|
11
|
+
{% else %}
|
|
12
|
+
{% for c_type in c_list %}
|
|
13
|
+
neighbor {{ ip }} send-community {{ c_type }}
|
|
14
|
+
{% endfor %}
|
|
15
|
+
{% endif %}
|
|
16
|
+
{% endif %}
|
|
17
|
+
{%- endmacro -%}
|
|
2
18
|
{#
|
|
3
19
|
Global BGP neighbor definition
|
|
4
20
|
#}
|
|
@@ -25,17 +41,7 @@
|
|
|
25
41
|
{% if n.rr_client|default(False) %}
|
|
26
42
|
neighbor {{ ip }} route-reflector-client
|
|
27
43
|
{% endif %}
|
|
28
|
-
{
|
|
29
|
-
{% set c_list = bgp.community[n.type] %}
|
|
30
|
-
{# Deal with IOS/XE regression to the 90s #}
|
|
31
|
-
{% if 'standard' in c_list and 'extended' in c_list %}
|
|
32
|
-
neighbor {{ ip }} send-community both
|
|
33
|
-
{% else %}
|
|
34
|
-
{% for c_type in c_list %}
|
|
35
|
-
neighbor {{ ip }} send-community {{ c_type }}
|
|
36
|
-
{% endfor %}
|
|
37
|
-
{% endif %}
|
|
38
|
-
{% endif %}
|
|
44
|
+
{{ neighbor_community(n,ip,bgp) }}
|
|
39
45
|
{%- endmacro -%}
|
|
40
46
|
{#
|
|
41
47
|
BGP network statement
|
|
@@ -27,6 +27,9 @@
|
|
|
27
27
|
local-as {{ n.local_as }}{%
|
|
28
28
|
if n.replace_global_as|default(True) and n.type != 'localas_ibgp' %} no-prepend replace-as{% endif +%}
|
|
29
29
|
{% endif %}
|
|
30
|
+
{% if n.passive|default(False) %}
|
|
31
|
+
session-open-mode passive-only
|
|
32
|
+
{% endif %}
|
|
30
33
|
description {{ n.name }}
|
|
31
34
|
{% if vrf and af == 'ipv6' %}
|
|
32
35
|
session-open-mode both
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
cat <<BGPD_CONF >/etc/bgpd.conf
|
|
4
|
+
AS {{ bgp.as }}
|
|
5
|
+
{% if bgp.router_id|ipv4 %}
|
|
6
|
+
router-id {{ bgp.router_id }}
|
|
7
|
+
{% endif %}
|
|
8
|
+
log updates
|
|
9
|
+
|
|
10
|
+
## network announcements
|
|
11
|
+
|
|
12
|
+
{% for pfx in bgp.originate|default([]) %}
|
|
13
|
+
network {{ pfx|ansible.utils.ipaddr('0') }}
|
|
14
|
+
{% endfor %}
|
|
15
|
+
{% for intf in netlab_interfaces %}
|
|
16
|
+
{% if intf.bgp.advertise|default(False) %}
|
|
17
|
+
{% if intf.ipv4|default(False) %}
|
|
18
|
+
network {{ intf.ipv4|ansible.utils.ipaddr('0') }}
|
|
19
|
+
{% endif %}
|
|
20
|
+
{% if intf.ipv6|default(False) %}
|
|
21
|
+
network {{ intf.ipv6|ansible.utils.ipaddr('0') }}
|
|
22
|
+
{% endif %}
|
|
23
|
+
{% endif %}
|
|
24
|
+
{% endfor %}
|
|
25
|
+
|
|
26
|
+
## neighbors and groups
|
|
27
|
+
|
|
28
|
+
{% for n in bgp.neighbors %}
|
|
29
|
+
{% for af in ['ipv4', 'ipv6'] %}
|
|
30
|
+
{% if n[af]|default(False) %}
|
|
31
|
+
neighbor {{ n[af] }} {
|
|
32
|
+
remote-as {{ n.as }}
|
|
33
|
+
descr "{{ n.name }}"
|
|
34
|
+
{% if n.local_as|default(False) %}
|
|
35
|
+
local-as {{ n.local_as }}
|
|
36
|
+
{% endif %}
|
|
37
|
+
{% if n.allowas_in|default(False) %}
|
|
38
|
+
enforce local-as no
|
|
39
|
+
{% endif %}
|
|
40
|
+
{% if n.as_override|default(False) %}
|
|
41
|
+
as-override yes
|
|
42
|
+
{% endif %}
|
|
43
|
+
{% if n._source_intf|default(False) %}
|
|
44
|
+
local-address {{ n._source_intf[af]|ipaddr('address') }}
|
|
45
|
+
{% endif %}
|
|
46
|
+
{% if n.rr_client|default(False) %}
|
|
47
|
+
route-reflector{% if bgp.rr_cluster_id|default(False) %} {{ bgp.rr_cluster_id }}{% endif +%}
|
|
48
|
+
{% endif %}
|
|
49
|
+
{% if n.default_originate|default(False) %}
|
|
50
|
+
export default-route
|
|
51
|
+
{% endif %}
|
|
52
|
+
{% if n.gtsm|default(False) %}
|
|
53
|
+
ttl-security yes
|
|
54
|
+
{% endif %}
|
|
55
|
+
{% if n.passive|default(False) %}
|
|
56
|
+
passive
|
|
57
|
+
{% endif %}
|
|
58
|
+
{% if n.password|default(False) %}
|
|
59
|
+
tcp md5sig password {{ n.password }}
|
|
60
|
+
{% endif %}
|
|
61
|
+
{% if n.timers|default(False) %}
|
|
62
|
+
holdtime {{ n.timers.hold|default(180) }}
|
|
63
|
+
holdtime min {{ n.timers.min_hold|default(3) }}
|
|
64
|
+
{% endif %}
|
|
65
|
+
{% if n.rs_client|default(False) %}
|
|
66
|
+
enforce neighbor-as no
|
|
67
|
+
{% endif %}
|
|
68
|
+
{% if n.rs|default(False) %}
|
|
69
|
+
transparent-as yes
|
|
70
|
+
{% endif %}
|
|
71
|
+
}
|
|
72
|
+
{% endif %}
|
|
73
|
+
{% endfor %}
|
|
74
|
+
{% endfor %}
|
|
75
|
+
|
|
76
|
+
## rules
|
|
77
|
+
|
|
78
|
+
{% if bgp.next_hop_self|default(False) %}
|
|
79
|
+
match from ebgp set { nexthop self }
|
|
80
|
+
{% endif %}
|
|
81
|
+
{# delete communities that should not be advertised #}
|
|
82
|
+
{% set c_types = ['standard', 'large', 'extended'] %}
|
|
83
|
+
{% for key, values in bgp.community.items() %}
|
|
84
|
+
{% if key in ['ebgp', 'ibgp'] %}
|
|
85
|
+
{% for ct in c_types %}
|
|
86
|
+
{% if ct not in values %}
|
|
87
|
+
match to {{ key }} set
|
|
88
|
+
{%- if ct == 'standard' %}
|
|
89
|
+
{ community delete *:* }
|
|
90
|
+
{% elif ct == 'large' %}
|
|
91
|
+
{ large-community delete *:*:* }
|
|
92
|
+
{% elif ct == 'extended' %}
|
|
93
|
+
{ ext-community delete * * }
|
|
94
|
+
{% endif %}
|
|
95
|
+
{% endif %}
|
|
96
|
+
{% endfor %}
|
|
97
|
+
{% endif %}
|
|
98
|
+
{% endfor %}
|
|
99
|
+
|
|
100
|
+
allow from any
|
|
101
|
+
allow to any
|
|
102
|
+
|
|
103
|
+
BGPD_CONF
|
|
104
|
+
|
|
105
|
+
chmod 640 /etc/bgpd.conf
|
|
106
|
+
rcctl enable bgpd
|
|
107
|
+
rcctl restart bgpd
|
|
108
|
+
|
|
109
|
+
{% for pfx in bgp.originate|default([]) %}
|
|
110
|
+
route add -blackhole {{ pfx|ipaddr('0') }} -priority 63 localhost
|
|
111
|
+
{% endfor %}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{% include 'vjunos-switch.j2' %}
|
|
@@ -6,7 +6,11 @@
|
|
|
6
6
|
{% for vname,vlan in vlans.items() if vlan.evpn.evi is defined %}
|
|
7
7
|
!
|
|
8
8
|
vlan configuration {{ vlan.id }}
|
|
9
|
+
{% if vlan.vni is defined %}
|
|
9
10
|
member evpn-instance {{ vlan.evpn.evi }} vni {{ vlan.vni }}
|
|
11
|
+
{% else %}
|
|
12
|
+
member evpn-instance {{ vlan.evpn.evi }}
|
|
13
|
+
{% endif %}
|
|
10
14
|
{% if vlan.mode|default('irb') != 'bridge' %}
|
|
11
15
|
{% for intf in interfaces if intf.type == 'svi' and intf.vlan.name|default('') == vname %}
|
|
12
16
|
!
|
|
@@ -16,5 +20,21 @@ interface {{ intf.ifname }}
|
|
|
16
20
|
{% endif %}
|
|
17
21
|
{% endfor %}
|
|
18
22
|
{% endif %}
|
|
23
|
+
{% if vrfs is defined %}
|
|
24
|
+
{% for vname,vdata in vrfs.items() if vdata.evpn.transit_vni is defined %}
|
|
25
|
+
!
|
|
26
|
+
vlan {{ vdata.evpn._transit_vlan }}
|
|
27
|
+
name VRF_{{ vname }}_TRANSIT
|
|
28
|
+
!
|
|
29
|
+
vlan configuration {{ vdata.evpn._transit_vlan }}
|
|
30
|
+
member vni {{ vdata.evpn.transit_vni }}
|
|
31
|
+
!
|
|
32
|
+
interface Vlan{{ vdata.evpn._transit_vlan }}
|
|
33
|
+
vrf forwarding {{ vname }}
|
|
34
|
+
ip unnumbered {{ vxlan.vtep_interface|default('Loopback0') }}
|
|
35
|
+
no shutdown
|
|
36
|
+
no autostate
|
|
37
|
+
{% endfor %}
|
|
38
|
+
{% endif %}
|
|
19
39
|
{# Control-plane configuration #}
|
|
20
40
|
{% include 'ios-common.j2' %}
|
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
{% set vlan = vlans[vname] %}
|
|
9
9
|
!
|
|
10
10
|
l2vpn evpn instance {{ vlan.evpn.evi }} vlan-based
|
|
11
|
+
{% if vlan.vni is defined %}
|
|
11
12
|
encapsulation vxlan
|
|
13
|
+
{% endif %}
|
|
12
14
|
replication-type ingress
|
|
13
15
|
{% if vlan.evpn.rd is defined %}
|
|
14
16
|
rd {{ vlan.evpn.rd }}
|
|
@@ -21,16 +23,47 @@ l2vpn evpn instance {{ vlan.evpn.evi }} vlan-based
|
|
|
21
23
|
{% endfor %}
|
|
22
24
|
{% endfor %}
|
|
23
25
|
{% endif %}
|
|
26
|
+
{% if vrfs is defined %}
|
|
27
|
+
{% for vname,vdata in vrfs.items() if vdata.evpn.evi is defined %}
|
|
28
|
+
!
|
|
29
|
+
vrf definition {{ vname }}
|
|
30
|
+
{% for af in ['ipv4','ipv6'] if af in vdata.af %}
|
|
31
|
+
address-family {{ af }}
|
|
32
|
+
{% for kw in ['import','export'] if kw in vdata %}
|
|
33
|
+
{% for rt in vdata[kw] %}
|
|
34
|
+
route-target {{ kw }} {{ rt }} stitching
|
|
35
|
+
{% endfor %}
|
|
36
|
+
{% endfor %}
|
|
37
|
+
exit-address-family
|
|
38
|
+
{% endfor %}
|
|
39
|
+
{% endfor %}
|
|
40
|
+
{% for vname,vdata in vrfs.items() if vdata.evpn.transit_vni is defined %}
|
|
41
|
+
{% if loop.first %}
|
|
42
|
+
!
|
|
43
|
+
interface nve1
|
|
44
|
+
no shutdown
|
|
45
|
+
source-interface {{ vxlan.vtep_interface|default('Loopback0') }}
|
|
46
|
+
host-reachability protocol bgp
|
|
47
|
+
{% endif %}
|
|
48
|
+
member vni {{ vdata.evpn.transit_vni }} vrf {{ vname }}
|
|
49
|
+
{% endfor %}
|
|
50
|
+
{% endif %}
|
|
51
|
+
{% for n in bgp.neighbors if n.evpn is defined and n.type == 'ebgp' %}
|
|
52
|
+
{% if loop.first %}
|
|
24
53
|
!
|
|
25
54
|
route-map evpn_nh_unchanged permit 10
|
|
26
55
|
set ip next-hop unchanged
|
|
56
|
+
{% endif %}
|
|
57
|
+
{% endfor %}
|
|
27
58
|
!
|
|
28
59
|
router bgp {{ bgp.as }}
|
|
29
60
|
{% for n in bgp.neighbors if n.evpn|default(False) and n.type == 'ebgp' %}
|
|
30
61
|
neighbor {{ n[n.evpn] }} ebgp-multihop
|
|
31
62
|
{% endfor %}
|
|
32
63
|
address-family l2vpn evpn
|
|
64
|
+
bgp scan-time 5
|
|
33
65
|
{% for n in bgp.neighbors if n.evpn|default(False) %}
|
|
66
|
+
neighbor {{ n[n.evpn] }} encap {{ evpn.transport }}
|
|
34
67
|
neighbor {{ n[n.evpn] }} activate
|
|
35
68
|
neighbor {{ n[n.evpn] }} send-community both
|
|
36
69
|
{% if n.rr_client|default(False) %}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{#
|
|
2
|
+
Cisco IOS/XE MAC-VRF data-plane configuration for platforms
|
|
3
|
+
using bridge domains (IOL, Cat8000v)
|
|
4
|
+
#}
|
|
5
|
+
{% if vlans is defined %}
|
|
6
|
+
{% for vname,vlan in vlans.items() if vlan.evpn.evi is defined %}
|
|
7
|
+
!
|
|
8
|
+
bridge-domain {{ vlan.id }}
|
|
9
|
+
{% if evpn.transport == 'vxlan' %}
|
|
10
|
+
member evpn-instance {{ vlan.evpn.evi }} vni {{ vlan.vni }}
|
|
11
|
+
{% else %}
|
|
12
|
+
member evpn-instance {{ vlan.evpn.evi }}
|
|
13
|
+
{% endif %}
|
|
14
|
+
{% endfor %}
|
|
15
|
+
{% endif %}
|
|
16
|
+
{% if vrfs is defined %}
|
|
17
|
+
{% for vname,vdata in vrfs.items() if vdata.evpn.transit_vni is defined %}
|
|
18
|
+
!
|
|
19
|
+
bridge-domain {{ vdata.evpn._transit_vlan }}
|
|
20
|
+
member vni {{ vdata.evpn.transit_vni }}
|
|
21
|
+
!
|
|
22
|
+
interface BDI{{ vdata.evpn._transit_vlan }}
|
|
23
|
+
vrf forwarding {{ vname }}
|
|
24
|
+
ip unnumbered {{ vxlan.vtep_interface|default('Loopback0') }}
|
|
25
|
+
no shutdown
|
|
26
|
+
{% endfor %}
|
|
27
|
+
{% endif %}
|
|
28
|
+
{# Control-plane configuration #}
|
|
29
|
+
{% include 'ios-common.j2' %}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{#
|
|
2
|
+
Cisco IOS/XR EVPN control-plane and MAC-VRF/IP-VRF configuration
|
|
3
|
+
#}
|
|
4
|
+
{% if vlans is defined %}
|
|
5
|
+
{% for vname,vlan in vlans.items() if vlan.evpn.evi is defined %}
|
|
6
|
+
{% if loop.first %}
|
|
7
|
+
evpn
|
|
8
|
+
{% endif %}
|
|
9
|
+
{% set vlan = vlans[vname] %}
|
|
10
|
+
evi {{ vlan.evpn.evi }}
|
|
11
|
+
advertise-mac
|
|
12
|
+
bgp
|
|
13
|
+
{% if vlan.evpn.rd is defined %}
|
|
14
|
+
rd {{ vlan.evpn.rd }}
|
|
15
|
+
{% endif %}
|
|
16
|
+
{% for irt in vlan.evpn.import|default([]) %}
|
|
17
|
+
route-target import {{ irt }}
|
|
18
|
+
{% endfor %}
|
|
19
|
+
{% for ert in vlan.evpn.export|default([]) %}
|
|
20
|
+
route-target export {{ ert }}
|
|
21
|
+
{% endfor %}
|
|
22
|
+
{% endfor %}
|
|
23
|
+
{% for vname,vlan in vlans.items() if vlan.evpn.evi is defined %}
|
|
24
|
+
{% if loop.first %}
|
|
25
|
+
!
|
|
26
|
+
l2vpn
|
|
27
|
+
bridge group netlab
|
|
28
|
+
{% endif %}
|
|
29
|
+
{% set vlan = vlans[vname] %}
|
|
30
|
+
bridge-domain BD{{ vlan.id }}
|
|
31
|
+
evi {{ vlan.evpn.evi }}
|
|
32
|
+
{% endfor %}
|
|
33
|
+
{% endif %}
|
|
34
|
+
!
|
|
35
|
+
router bgp {{ bgp.as }}
|
|
36
|
+
{#
|
|
37
|
+
If we have EVPN IP VRFs ensure the VPNv4/VPNv6 address families are configured
|
|
38
|
+
(that's how IOS/XR generates type-5 routes
|
|
39
|
+
#}
|
|
40
|
+
{% for af in ['ipv4','ipv6'] if vrfs is defined %}
|
|
41
|
+
{% for vname,vdata in vrfs.items() if vdata.evpn.evi is defined and af in vdata.af %}
|
|
42
|
+
{% if loop.first %}
|
|
43
|
+
address-family vpn{{ af.replace('ip','') }} unicast
|
|
44
|
+
bgp scan-time 5
|
|
45
|
+
bgp import-delay 0 0
|
|
46
|
+
{% endif %}
|
|
47
|
+
{% endfor %}
|
|
48
|
+
{% endfor %}
|
|
49
|
+
address-family l2vpn evpn
|
|
50
|
+
bgp scan-time 5
|
|
51
|
+
{% for n in bgp.neighbors if n.evpn|default(False) %}
|
|
52
|
+
neighbor {{ n[n.evpn] }}
|
|
53
|
+
address-family l2vpn evpn
|
|
54
|
+
{% if 'ebgp' in n.type %}
|
|
55
|
+
send-community-ebgp
|
|
56
|
+
send-extended-community-ebgp
|
|
57
|
+
{% endif %}
|
|
58
|
+
{% if n.rr_client|default(False) %}
|
|
59
|
+
route-reflector-client
|
|
60
|
+
{% endif %}
|
|
61
|
+
{#
|
|
62
|
+
If we have at least one EVPN IP VRF, we have to advertise corresponding VPNvx
|
|
63
|
+
routes into EVPN address family... PER NEIGHBOR ¯\_(ツ)_/¯
|
|
64
|
+
#}
|
|
65
|
+
{% for af in ['ipv4','ipv6'] if vrfs is defined %}
|
|
66
|
+
{% for vname,vdata in vrfs.items() if vdata.evpn.evi is defined and af in vdata.af %}
|
|
67
|
+
{% if loop.first %}
|
|
68
|
+
advertise vpn{{ af.replace('ip','') }} unicast
|
|
69
|
+
{% endif %}
|
|
70
|
+
{% endfor %}
|
|
71
|
+
{% endfor %}
|
|
72
|
+
{% endfor %}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
{#
|
|
1
|
+
{#
|
|
2
|
+
Junos EVPN control-plane and MAC-VRF configuration
|
|
3
|
+
|
|
4
|
+
Used for all Junos platforms supporting EVPN/VXLAN (vjunos-switch, vPTX/EVO)
|
|
5
|
+
#}
|
|
2
6
|
|
|
3
7
|
{# Enable BGP EVPN for specific neighbors #}
|
|
4
8
|
protocols {
|
|
@@ -65,32 +69,8 @@ policy-options {
|
|
|
65
69
|
{% endfor %}
|
|
66
70
|
}
|
|
67
71
|
{% endif %}
|
|
68
|
-
{% if vxlan is defined and evpn._junos_default_macvrf|default(False) %}
|
|
69
|
-
protocols {
|
|
70
|
-
evpn {
|
|
71
|
-
encapsulation vxlan;
|
|
72
|
-
default-gateway no-gateway-community;
|
|
73
|
-
extended-vni-list all;
|
|
74
|
-
{% if vxlan.vlans is defined %}
|
|
75
|
-
vni-options {
|
|
76
|
-
{% for vname in vxlan.vlans if vlans[vname].vni is defined %}
|
|
77
|
-
{% set vlan = vlans[vname] %}
|
|
78
|
-
vni {{ vlan.vni }} {
|
|
79
|
-
vrf-target target:{{ vlan.evpn.import[0] }};
|
|
80
|
-
}
|
|
81
|
-
{% endfor %}
|
|
82
|
-
}
|
|
83
|
-
{% endif %}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
{% endif %}
|
|
87
72
|
|
|
88
73
|
{% if vlans is defined and vxlan is defined and not evpn._junos_default_macvrf|default(False) %}
|
|
89
|
-
vlans {
|
|
90
|
-
{% for vname,v in vlans.items() if v.evpn.evi is defined and v.evpn.bundle is not defined %}
|
|
91
|
-
delete: {{ vname }};
|
|
92
|
-
{% endfor %}
|
|
93
|
-
}
|
|
94
74
|
|
|
95
75
|
{# vlan-based MAC VRF #}
|
|
96
76
|
routing-instances {
|
|
@@ -108,20 +88,6 @@ routing-instances {
|
|
|
108
88
|
vrf-{{ dir }} evpn-vlan-{{ vname }}-{{ dir }};
|
|
109
89
|
{% endif %}
|
|
110
90
|
{% endfor %}
|
|
111
|
-
{% for intf in interfaces if intf.vlan.access|default('') == vname %}
|
|
112
|
-
interface {{ intf.ifname }};
|
|
113
|
-
{% endfor %}
|
|
114
|
-
vlans {
|
|
115
|
-
{{ vname }} {
|
|
116
|
-
vlan-id {{ v.id }};
|
|
117
|
-
{% if v.mode == 'irb' %}
|
|
118
|
-
l3-interface irb.{{ v.id }};
|
|
119
|
-
{% endif %}
|
|
120
|
-
vxlan {
|
|
121
|
-
vni {{ v.vni }};
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
91
|
protocols {
|
|
126
92
|
evpn {
|
|
127
93
|
encapsulation vxlan;
|
|
@@ -151,23 +117,6 @@ routing-instances {
|
|
|
151
117
|
{# use targets already defined by vrf #}
|
|
152
118
|
vrf-{{ dir }} vrf-{{ n }}-rt-{{ dir }};
|
|
153
119
|
{% endif %}
|
|
154
|
-
{% endfor %}
|
|
155
|
-
{# map vlans and access interfaces #}
|
|
156
|
-
{% for vname in v.evpn.vlans %}
|
|
157
|
-
{% for intf in interfaces if intf.vlan.access|default('') == vname %}
|
|
158
|
-
interface {{ intf.ifname }};
|
|
159
|
-
{% endfor %}
|
|
160
|
-
vlans {
|
|
161
|
-
{{ vname }} {
|
|
162
|
-
vlan-id {{ vlans[vname].id }};
|
|
163
|
-
{% if vlans[vname].mode == 'irb' %}
|
|
164
|
-
l3-interface irb.{{ vlans[vname].id }};
|
|
165
|
-
{% endif %}
|
|
166
|
-
vxlan {
|
|
167
|
-
vni {{ vlans[vname].vni }};
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
120
|
{% endfor %}
|
|
172
121
|
protocols {
|
|
173
122
|
evpn {
|
|
@@ -189,6 +138,7 @@ routing-instances {
|
|
|
189
138
|
{{ n }} {
|
|
190
139
|
protocols {
|
|
191
140
|
evpn {
|
|
141
|
+
{% if v.evpn.transit_vni is defined %}
|
|
192
142
|
irb-symmetric-routing {
|
|
193
143
|
vni {{ v.evpn.transit_vni }};
|
|
194
144
|
}
|
|
@@ -198,6 +148,7 @@ routing-instances {
|
|
|
198
148
|
vni {{ v.evpn.transit_vni }};
|
|
199
149
|
export [ vrf-{{n}}-bgp-export bgp-final ];
|
|
200
150
|
}
|
|
151
|
+
{% endif %}
|
|
201
152
|
}
|
|
202
153
|
}
|
|
203
154
|
route-distinguisher {{ v.evpn.rd }};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{# vlan template for vptx and vjunos-switch #}
|
|
2
|
+
|
|
3
|
+
vlans {
|
|
4
|
+
{% for vname,v in vlans.items() if v.evpn.evi is defined and v.evpn.bundle is not defined %}
|
|
5
|
+
delete: {{ vname }};
|
|
6
|
+
{% endfor %}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
{# vlan-based MAC VRF #}
|
|
10
|
+
routing-instances {
|
|
11
|
+
{% for vname,v in vlans.items() if v.evpn.evi is defined and v.evpn.bundle is not defined %}
|
|
12
|
+
vlan_{{ vname }} {
|
|
13
|
+
{% for intf in interfaces if intf.vlan.access|default('') == vname %}
|
|
14
|
+
interface {{ intf.ifname }};
|
|
15
|
+
{% endfor %}
|
|
16
|
+
vlans {
|
|
17
|
+
{{ vname }} {
|
|
18
|
+
vlan-id {{ v.id }};
|
|
19
|
+
{% if v.mode == 'irb' %}
|
|
20
|
+
l3-interface irb.{{ v.id }};
|
|
21
|
+
{% endif %}
|
|
22
|
+
vxlan {
|
|
23
|
+
vni {{ v.vni }};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
{% endfor %}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
{# vlan-aware MAC VRF #}
|
|
32
|
+
{% if vrfs is defined %}
|
|
33
|
+
routing-instances {
|
|
34
|
+
{% for n,v in vrfs.items() if v.evpn.vlans is defined %}
|
|
35
|
+
vlan_aware_{{ n }} {
|
|
36
|
+
{# map vlans and access interfaces #}
|
|
37
|
+
{% for vname in v.evpn.vlans %}
|
|
38
|
+
{% for intf in interfaces if intf.vlan.access|default('') == vname %}
|
|
39
|
+
interface {{ intf.ifname }};
|
|
40
|
+
{% endfor %}
|
|
41
|
+
vlans {
|
|
42
|
+
{{ vname }} {
|
|
43
|
+
vlan-id {{ vlans[vname].id }};
|
|
44
|
+
{% if vlans[vname].mode == 'irb' %}
|
|
45
|
+
l3-interface irb.{{ vlans[vname].id }};
|
|
46
|
+
{% endif %}
|
|
47
|
+
vxlan {
|
|
48
|
+
vni {{ vlans[vname].vni }};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
{% endfor %}
|
|
53
|
+
}
|
|
54
|
+
{% endfor %}
|
|
55
|
+
}
|
|
56
|
+
{% endif %}
|
|
57
|
+
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{#
|
|
2
|
+
vJunos-router (Junos) EVPN configuration
|
|
3
|
+
|
|
4
|
+
Supports both 'default_macvrf' mode (global protocols evpn) and
|
|
5
|
+
per-VLAN mac-vrf routing-instances.
|
|
6
|
+
#}
|
|
7
|
+
|
|
8
|
+
{% if vlans is defined and vxlan is defined and not evpn._junos_default_macvrf|default(False) %}
|
|
9
|
+
|
|
10
|
+
{# remove the bridge domain from the default switch #}
|
|
11
|
+
bridge-domains {
|
|
12
|
+
{% for vname in vxlan.vlans if vlans[vname].vni is defined %}
|
|
13
|
+
delete: vlan-{{ vlans[vname].id }};
|
|
14
|
+
{% endfor %}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
{# vlan-based MAC VRF #}
|
|
18
|
+
routing-instances {
|
|
19
|
+
{% for vname,v in vlans.items() if v.evpn.evi is defined and v.evpn.bundle is not defined %}
|
|
20
|
+
vlan_{{ vname }} {
|
|
21
|
+
bridge-domains {
|
|
22
|
+
vlan-{{ v.id }} {
|
|
23
|
+
domain-type bridge;
|
|
24
|
+
vlan-id {{ v.id }};
|
|
25
|
+
{% for intf in interfaces if intf.vlan.access|default('') == vname %}
|
|
26
|
+
interface {{ intf.ifname }};
|
|
27
|
+
{% endfor %}
|
|
28
|
+
{% if v.mode == 'irb' %}
|
|
29
|
+
routing-interface irb.{{ v.id }};
|
|
30
|
+
{% endif %}
|
|
31
|
+
vxlan {
|
|
32
|
+
vni {{ v.vni }};
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
{% endfor %}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
{# vlan-aware MAC VRF #}
|
|
41
|
+
{% if vrfs is defined %}
|
|
42
|
+
routing-instances {
|
|
43
|
+
{% for n,v in vrfs.items() if v.evpn.vlans is defined %}
|
|
44
|
+
vlan_aware_{{ n }} {
|
|
45
|
+
{# map vlans and access interfaces #}
|
|
46
|
+
bridge-domains {
|
|
47
|
+
{% for vname in v.evpn.vlans %}
|
|
48
|
+
vlan-{{ vlans[vname].id }} {
|
|
49
|
+
{% for intf in interfaces if intf.vlan.access|default('') == vname %}
|
|
50
|
+
interface {{ intf.ifname }};
|
|
51
|
+
{% endfor %}
|
|
52
|
+
vlan-id {{ vlans[vname].id }};
|
|
53
|
+
{% if vlans[vname].mode == 'irb' %}
|
|
54
|
+
routing-interface irb.{{ vlans[vname].id }};
|
|
55
|
+
{% endif %}
|
|
56
|
+
vxlan {
|
|
57
|
+
vni {{ vlans[vname].vni }};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
{% endfor %}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
{% endfor %}
|
|
64
|
+
}
|
|
65
|
+
{% endif %}
|
|
66
|
+
|
|
67
|
+
{% endif %}
|
|
68
|
+
|
|
69
|
+
{# Common Junos EVPN configuration (BGP neighbors, MAC-VRF, L3VNI, policy-options) #}
|
|
70
|
+
{% include 'junos/common.j2' %}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{#
|
|
2
|
+
vJunos-switch (Junos) EVPN configuration
|
|
3
|
+
|
|
4
|
+
Supports both 'default_macvrf' mode (global protocols evpn) and
|
|
5
|
+
per-VLAN mac-vrf routing-instances.
|
|
6
|
+
#}
|
|
7
|
+
|
|
8
|
+
{% if vxlan is defined and evpn._junos_default_macvrf|default(False) %}
|
|
9
|
+
protocols {
|
|
10
|
+
evpn {
|
|
11
|
+
encapsulation vxlan;
|
|
12
|
+
default-gateway no-gateway-community;
|
|
13
|
+
extended-vni-list all;
|
|
14
|
+
{% if vxlan.vlans is defined %}
|
|
15
|
+
vni-options {
|
|
16
|
+
{% for vname in vxlan.vlans if vlans[vname].vni is defined %}
|
|
17
|
+
{% set vlan = vlans[vname] %}
|
|
18
|
+
vni {{ vlan.vni }} {
|
|
19
|
+
vrf-target target:{{ vlan.evpn.import[0] }};
|
|
20
|
+
}
|
|
21
|
+
{% endfor %}
|
|
22
|
+
}
|
|
23
|
+
{% endif %}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
{% endif %}
|
|
27
|
+
|
|
28
|
+
{# Common Junos EVPN configuration (BGP neighbors, MAC-VRF, L3VNI, policy-options) #}
|
|
29
|
+
{% include 'junos/common.j2' %}
|
|
30
|
+
{# Common vlan configuration #}
|
|
31
|
+
{% if vlans is defined and vxlan is defined and not evpn._junos_default_macvrf|default(False) %}
|
|
32
|
+
{% include 'junos/vlan.j2' %}
|
|
33
|
+
{% endif %}
|
|
34
|
+
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{#
|
|
2
|
+
vPTX (Junos EVO) EVPN configuration
|
|
3
|
+
|
|
4
|
+
On EVO, the global 'protocols evpn encapsulation vxlan' (default-switch EVI /
|
|
5
|
+
_junos_default_macvrf mode) is NOT supported. Always use mac-vrf routing-instances.
|
|
6
|
+
#}
|
|
7
|
+
|
|
8
|
+
{# Common Junos EVPN configuration (BGP neighbors, MAC-VRF, L3VNI, policy-options) #}
|
|
9
|
+
{% include 'junos/common.j2' %}
|
|
10
|
+
{# Common vlan configuration #}
|
|
11
|
+
{% if vlans is defined and vxlan is defined and not evpn._junos_default_macvrf|default(False) %}
|
|
12
|
+
{% include 'junos/vlan.j2' %}
|
|
13
|
+
{% endif %}
|
|
14
|
+
|