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.
Files changed (1073) hide show
  1. {networklab-26.2/networklab.egg-info → networklab-26.3}/PKG-INFO +2 -2
  2. {networklab-26.2 → networklab-26.3}/README.md +1 -1
  3. {networklab-26.2 → networklab-26.3}/netsim/__init__.py +1 -1
  4. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/ios.macro.j2 +17 -11
  5. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/iosxr.j2 +3 -0
  6. networklab-26.3/netsim/ansible/templates/bgp/openbsd.j2 +111 -0
  7. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/sros.gnmi.macro.j2 +1 -0
  8. networklab-26.3/netsim/ansible/templates/evpn/crpd.j2 +1 -0
  9. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/ioll2.j2 +20 -0
  10. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/ios-common.j2 +33 -0
  11. networklab-26.3/netsim/ansible/templates/evpn/ios.j2 +29 -0
  12. networklab-26.3/netsim/ansible/templates/evpn/iosxr.j2 +72 -0
  13. networklab-26.2/netsim/ansible/templates/evpn/vjunos-switch.j2 → networklab-26.3/netsim/ansible/templates/evpn/junos/common.j2 +7 -56
  14. networklab-26.3/netsim/ansible/templates/evpn/junos/vlan.j2 +57 -0
  15. networklab-26.3/netsim/ansible/templates/evpn/vjunos-router.j2 +70 -0
  16. networklab-26.3/netsim/ansible/templates/evpn/vjunos-switch.j2 +34 -0
  17. networklab-26.3/netsim/ansible/templates/evpn/vptx.j2 +14 -0
  18. networklab-26.3/netsim/ansible/templates/gateway/crpd.j2 +37 -0
  19. networklab-26.3/netsim/ansible/templates/gateway/iosxr.j2 +26 -0
  20. networklab-26.3/netsim/ansible/templates/initial/crpd.j2 +61 -0
  21. networklab-26.3/netsim/ansible/templates/isis/crpd.j2 +2 -0
  22. networklab-26.2/netsim/ansible/templates/isis/junos.j2 → networklab-26.3/netsim/ansible/templates/isis/junos.isis.j2 +0 -19
  23. networklab-26.3/netsim/ansible/templates/isis/junos.j2 +10 -0
  24. networklab-26.3/netsim/ansible/templates/isis/vsrx.j2 +12 -0
  25. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/frr.mplsvpn.j2 +3 -0
  26. networklab-26.3/netsim/ansible/templates/mpls/ios.6pe.j2 +17 -0
  27. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/ios.j2 +0 -1
  28. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/ios.mplsvpn.j2 +7 -0
  29. networklab-26.3/netsim/ansible/templates/mpls/iosxr/6pe.j2 +22 -0
  30. networklab-26.3/netsim/ansible/templates/mpls/iosxr/ldp.j2 +16 -0
  31. networklab-26.3/netsim/ansible/templates/mpls/iosxr/mplsvpn.j2 +32 -0
  32. networklab-26.3/netsim/ansible/templates/mpls/iosxr.j2 +12 -0
  33. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/junos.ldp.j2 +6 -0
  34. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/junos.mplsvpn.j2 +3 -2
  35. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/sros.bgp.j2 +18 -3
  36. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/sros.j2 +1 -1
  37. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/vyos.mplsvpn.j2 +1 -1
  38. networklab-26.3/netsim/ansible/templates/routing/iosxr/aspath.j2 +8 -0
  39. networklab-26.3/netsim/ansible/templates/routing/iosxr/clist.j2 +16 -0
  40. networklab-26.3/netsim/ansible/templates/routing/iosxr/policy-delete.j2 +16 -0
  41. networklab-26.3/netsim/ansible/templates/routing/iosxr/policy-match.j2 +26 -0
  42. networklab-26.3/netsim/ansible/templates/routing/iosxr/policy-set.j2 +29 -0
  43. networklab-26.3/netsim/ansible/templates/routing/iosxr/policy.j2 +29 -0
  44. networklab-26.3/netsim/ansible/templates/routing/iosxr/prefix.j2 +16 -0
  45. networklab-26.3/netsim/ansible/templates/routing/iosxr/static.j2 +13 -0
  46. networklab-26.3/netsim/ansible/templates/routing/iosxr.j2 +30 -0
  47. networklab-26.3/netsim/ansible/templates/sr/eos.j2 +23 -0
  48. networklab-26.3/netsim/ansible/templates/sr/frr.j2 +39 -0
  49. networklab-26.3/netsim/ansible/templates/sr/ios.j2 +23 -0
  50. networklab-26.3/netsim/ansible/templates/sr/iosxr.j2 +28 -0
  51. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/sr/junos.j2 +9 -2
  52. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/sr/srlinux.j2 +11 -13
  53. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/sr/sros.j2 +6 -10
  54. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/vjunos-router.j2 +2 -1
  55. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/vptx.j2 +2 -2
  56. networklab-26.3/netsim/ansible/templates/vxlan/vjunos-router.j2 +68 -0
  57. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/vjunos-switch.j2 +1 -1
  58. networklab-26.3/netsim/ansible/templates/vxlan/vptx.j2 +66 -0
  59. {networklab-26.2 → networklab-26.3}/netsim/data/types.py +8 -1
  60. {networklab-26.2 → networklab-26.3}/netsim/data/validate.py +47 -0
  61. {networklab-26.2 → networklab-26.3}/netsim/devices/cat8000v.yml +2 -1
  62. {networklab-26.2 → networklab-26.3}/netsim/devices/cisco8000v.py +3 -2
  63. networklab-26.3/netsim/devices/crpd.py +46 -0
  64. networklab-26.3/netsim/devices/crpd.yml +53 -0
  65. {networklab-26.2 → networklab-26.3}/netsim/devices/csr.yml +7 -1
  66. {networklab-26.2 → networklab-26.3}/netsim/devices/eos.yml +4 -1
  67. {networklab-26.2 → networklab-26.3}/netsim/devices/frr.yml +7 -1
  68. {networklab-26.2 → networklab-26.3}/netsim/devices/iol.py +16 -0
  69. {networklab-26.2 → networklab-26.3}/netsim/devices/iol.yml +7 -2
  70. {networklab-26.2 → networklab-26.3}/netsim/devices/ios.yml +1 -0
  71. networklab-26.3/netsim/devices/iosxr.py +127 -0
  72. {networklab-26.2 → networklab-26.3}/netsim/devices/iosxr.yml +8 -1
  73. {networklab-26.2 → networklab-26.3}/netsim/devices/junos.py +18 -0
  74. {networklab-26.2 → networklab-26.3}/netsim/devices/junos.yml +3 -1
  75. {networklab-26.2 → networklab-26.3}/netsim/devices/none.yml +4 -1
  76. {networklab-26.2 → networklab-26.3}/netsim/devices/openbsd.yml +18 -0
  77. {networklab-26.2 → networklab-26.3}/netsim/devices/srlinux.yml +6 -5
  78. {networklab-26.2 → networklab-26.3}/netsim/devices/sros.yml +5 -4
  79. {networklab-26.2 → networklab-26.3}/netsim/devices/vjunos-router.py +18 -0
  80. {networklab-26.2 → networklab-26.3}/netsim/devices/vjunos-router.yml +6 -0
  81. {networklab-26.2 → networklab-26.3}/netsim/devices/vmx.py +18 -0
  82. networklab-26.3/netsim/devices/vptx.py +58 -0
  83. {networklab-26.2 → networklab-26.3}/netsim/devices/vptx.yml +8 -1
  84. {networklab-26.2 → networklab-26.3}/netsim/devices/vsrx.py +18 -0
  85. {networklab-26.2 → networklab-26.3}/netsim/devices/xr.yml +54 -1
  86. networklab-26.3/netsim/extra/bgp.policy/iosxr.j2 +48 -0
  87. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/defaults.yml +1 -1
  88. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/ios.j2 +6 -4
  89. networklab-26.3/netsim/extra/bgp.session/iosxr.j2 +85 -0
  90. networklab-26.3/netsim/extra/bgp.session/openbsd.j2 +1 -0
  91. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/plugin.py +3 -5
  92. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/sros.j2 +4 -4
  93. {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/arubacx.j2 +1 -1
  94. {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/cumulus_nvue.j2 +1 -1
  95. {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/dellos10.j2 +3 -1
  96. {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/eos.j2 +1 -1
  97. {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/frr.j2 +1 -1
  98. {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/ios.j2 +1 -1
  99. networklab-26.3/netsim/extra/ebgp.multihop/iosxr.j2 +27 -0
  100. {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/junos.j2 +2 -2
  101. {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/srlinux.j2 +1 -1
  102. {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/sros.j2 +2 -2
  103. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/fortios/openstack/latest/user_data +4 -0
  104. {networklab-26.2 → networklab-26.3}/netsim/modules/__init__.py +1 -2
  105. {networklab-26.2 → networklab-26.3}/netsim/modules/_routing.py +26 -0
  106. {networklab-26.2 → networklab-26.3}/netsim/modules/evpn.py +49 -10
  107. {networklab-26.2 → networklab-26.3}/netsim/modules/evpn.yml +1 -1
  108. {networklab-26.2 → networklab-26.3}/netsim/modules/mpls.py +1 -5
  109. {networklab-26.2 → networklab-26.3}/netsim/modules/mpls.yml +1 -1
  110. {networklab-26.2 → networklab-26.3}/netsim/modules/routing/__init__.py +4 -3
  111. {networklab-26.2 → networklab-26.3}/netsim/modules/routing/aspath.py +1 -0
  112. {networklab-26.2 → networklab-26.3}/netsim/modules/routing/clist.py +1 -0
  113. {networklab-26.2 → networklab-26.3}/netsim/modules/routing/normalize.py +2 -0
  114. {networklab-26.2 → networklab-26.3}/netsim/modules/routing/prefix.py +26 -12
  115. networklab-26.3/netsim/modules/sr.py +81 -0
  116. networklab-26.3/netsim/modules/sr.yml +56 -0
  117. {networklab-26.2 → networklab-26.3}/netsim/outputs/ansible.py +14 -2
  118. {networklab-26.2 → networklab-26.3}/netsim/outputs/config.py +15 -3
  119. {networklab-26.2 → networklab-26.3}/netsim/providers/__init__.py +2 -2
  120. networklab-26.3/netsim/reports/isis-interfaces.html.j2 +33 -0
  121. networklab-26.3/netsim/reports/isis-interfaces.md.j2 +15 -0
  122. networklab-26.3/netsim/templates/provider/clab/crpd/hosts.j2 +1 -0
  123. networklab-26.3/netsim/templates/provider/clab/crpd/netlab-config.j2 +19 -0
  124. networklab-26.3/netsim/templates/provider/clab/cumulus/hosts.j2 +1 -0
  125. networklab-26.3/netsim/templates/provider/clab/frr/hosts.j2 +1 -0
  126. networklab-26.3/netsim/templates/provider/clab/iosxr/netlab-config.j2 +8 -0
  127. {networklab-26.2/netsim/templates/provider/clab/srlinux → networklab-26.3/netsim/templates/provider/clab/linux}/hosts.j2 +1 -1
  128. networklab-26.3/netsim/templates/provider/clab/srlinux/hosts.j2 +1 -0
  129. {networklab-26.2 → networklab-26.3}/netsim/validate/_common.py +4 -3
  130. {networklab-26.2 → networklab-26.3}/netsim/validate/bgp/eos.py +2 -2
  131. {networklab-26.2 → networklab-26.3}/netsim/validate/bgp/frr.py +1 -1
  132. networklab-26.3/netsim/validate/crpd.py +7 -0
  133. {networklab-26.2 → networklab-26.3}/netsim/validate/ospf/eos.py +1 -1
  134. {networklab-26.2 → networklab-26.3}/netsim/validate/ospf/frr.py +1 -1
  135. {networklab-26.2 → networklab-26.3/networklab.egg-info}/PKG-INFO +2 -2
  136. {networklab-26.2 → networklab-26.3}/networklab.egg-info/SOURCES.txt +41 -5
  137. networklab-26.2/netsim/ansible/templates/evpn/ios.j2 +0 -13
  138. networklab-26.2/netsim/ansible/templates/mpls/ios.6pe.j2 +0 -8
  139. networklab-26.2/netsim/ansible/templates/routing/iosxr.j2 +0 -15
  140. networklab-26.2/netsim/ansible/templates/sr/eos.j2 +0 -17
  141. networklab-26.2/netsim/ansible/templates/sr/frr.j2 +0 -26
  142. networklab-26.2/netsim/ansible/templates/sr/ios.j2 +0 -16
  143. networklab-26.2/netsim/ansible/templates/sr/sros.openconfig.j2 +0 -30
  144. networklab-26.2/netsim/devices/vptx.py +0 -390
  145. networklab-26.2/netsim/modules/sr.py +0 -9
  146. networklab-26.2/netsim/modules/sr.yml +0 -13
  147. networklab-26.2/netsim/templates/provider/clab/cumulus/hosts-common.j2 +0 -38
  148. networklab-26.2/netsim/templates/provider/clab/cumulus/hosts.j2 +0 -15
  149. networklab-26.2/netsim/templates/provider/clab/frr/hosts-common.j2 +0 -38
  150. networklab-26.2/netsim/templates/provider/clab/frr/hosts.j2 +0 -15
  151. networklab-26.2/netsim/templates/provider/clab/linux/hosts-common.j2 +0 -38
  152. networklab-26.2/netsim/templates/provider/clab/linux/hosts.j2 +0 -15
  153. networklab-26.2/netsim/templates/provider/clab/srlinux/hosts-common.j2 +0 -38
  154. {networklab-26.2 → networklab-26.3}/LICENSE.md +0 -0
  155. {networklab-26.2 → networklab-26.3}/MANIFEST.in +0 -0
  156. {networklab-26.2 → networklab-26.3}/netlab +0 -0
  157. {networklab-26.2 → networklab-26.3}/netsim/ansible/collect-configs.ansible +0 -0
  158. {networklab-26.2 → networklab-26.3}/netsim/ansible/config.ansible +0 -0
  159. {networklab-26.2 → networklab-26.3}/netsim/ansible/create-config.ansible +0 -0
  160. {networklab-26.2 → networklab-26.3}/netsim/ansible/device-ready.ansible +0 -0
  161. {networklab-26.2 → networklab-26.3}/netsim/ansible/initial-config.ansible +0 -0
  162. {networklab-26.2 → networklab-26.3}/netsim/ansible/missing.yml +0 -0
  163. {networklab-26.2 → networklab-26.3}/netsim/ansible/reload-config.ansible +0 -0
  164. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/create-config.yml +0 -0
  165. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/create-custom-config.yml +0 -0
  166. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/arcos.yml +0 -0
  167. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/arubacx.yml +0 -0
  168. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/asa.yml +0 -0
  169. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/cumulus.yml +0 -0
  170. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/cumulus_nvue.yml +0 -0
  171. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/dellos10.yml +0 -0
  172. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/eos.yml +0 -0
  173. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/fortinet.fortios.fortios.yml +0 -0
  174. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/frr.yml +0 -0
  175. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/ios.yml +0 -0
  176. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/iosxr.yml +0 -0
  177. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/junos.yml +0 -0
  178. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/linux-clab.yml +0 -0
  179. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/linux.yml +0 -0
  180. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/missing.yml +0 -0
  181. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/netscaler.yml +0 -0
  182. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/none.yml +0 -0
  183. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/nxos.yml +0 -0
  184. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/openbsd.yml +0 -0
  185. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/routeros.yml +0 -0
  186. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/routeros7.yml +0 -0
  187. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/sonic.yml +0 -0
  188. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/srlinux.yml +0 -0
  189. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/sros.yml +0 -0
  190. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/vyos-script.j2 +0 -0
  191. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-config/vyos.yml +0 -0
  192. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-custom-config.yml +0 -0
  193. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/deploy-module.yml +0 -0
  194. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/_config_cleanup.j2 +0 -0
  195. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/arcos.yml +0 -0
  196. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/arubacx.yml +0 -0
  197. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/asa.yml +0 -0
  198. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/cumulus.yml +0 -0
  199. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/cumulus_nvue.yml +0 -0
  200. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/dellos10.yml +0 -0
  201. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/eos.yml +0 -0
  202. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/fortinet.fortios.fortios.yml +0 -0
  203. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/frr.yml +0 -0
  204. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/ios.yml +0 -0
  205. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/iosxr.yml +0 -0
  206. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/junos.yml +0 -0
  207. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/nxos.yml +0 -0
  208. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/routeros.yml +0 -0
  209. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/routeros7.yml +0 -0
  210. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/sonic.yml +0 -0
  211. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/srlinux.yml +0 -0
  212. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/sros.yml +0 -0
  213. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fetch-config/vyos.yml +0 -0
  214. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/fortinet.fortios.fortios/initial.yml +0 -0
  215. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/frr/deploy-config.yml +0 -0
  216. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/frr/initial-clab.yml +0 -0
  217. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/initial-config.yml +0 -0
  218. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/linux/dhcp.yml +0 -0
  219. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/cumulus_nvue.yml +0 -0
  220. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/fortinet.fortios.fortios-clab.yml +0 -0
  221. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/junos.yml +0 -0
  222. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/netscaler.yml +0 -0
  223. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/nxos.yml +0 -0
  224. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/sros.yml +0 -0
  225. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/srsim-hardware.j2 +0 -0
  226. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/srsim.yml +0 -0
  227. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/ssh.yml +0 -0
  228. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/readiness-check/vyos-clab.yml +0 -0
  229. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/reload-config/_copy_config.yml +0 -0
  230. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/reload-config/eos.yml +0 -0
  231. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/reload-config/ios.yml +0 -0
  232. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/reload-config/srlinux.yml +0 -0
  233. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/vmx/initial.yml +0 -0
  234. {networklab-26.2 → networklab-26.3}/netsim/ansible/tasks/wait-for-ready.yml +0 -0
  235. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/arubacx.j2 +0 -0
  236. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/cumulus.j2 +0 -0
  237. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/dellos10.j2 +0 -0
  238. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/eos.j2 +0 -0
  239. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/frr.j2 +0 -0
  240. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/ios.j2 +0 -0
  241. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/junos.j2 +0 -0
  242. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/none.j2 +0 -0
  243. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/nxos.j2 +0 -0
  244. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/srlinux.j2 +0 -0
  245. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/sros.j2 +0 -0
  246. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bfd/vyos.j2 +0 -0
  247. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/arubacx.j2 +0 -0
  248. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/arubacx.macro.j2 +0 -0
  249. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/asa.j2 +0 -0
  250. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/asa.macro.j2 +0 -0
  251. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/cumulus.j2 +0 -0
  252. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/cumulus_nvue.j2 +0 -0
  253. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/cumulus_nvue.macro.j2 +0 -0
  254. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/dellos10.j2 +0 -0
  255. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/dellos10.macro.j2 +0 -0
  256. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/eos.j2 +0 -0
  257. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/eos.macro.j2 +0 -0
  258. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/frr.j2 +0 -0
  259. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/ios.j2 +0 -0
  260. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/junos.j2 +0 -0
  261. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/junos.macro.j2 +0 -0
  262. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/junos.policy.j2 +0 -0
  263. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/none.j2 +0 -0
  264. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/nxos.j2 +0 -0
  265. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/routeros.j2 +0 -0
  266. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/routeros.macro.j2 +0 -0
  267. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/routeros7.j2 +0 -0
  268. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/routeros7.macro.j2 +0 -0
  269. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/sonic.j2 +0 -0
  270. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/srlinux.j2 +0 -0
  271. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/srlinux.macro.j2 +0 -0
  272. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/sros.j2 +0 -0
  273. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/vyos.j2 +0 -0
  274. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/bgp/vyos.macro.j2 +0 -0
  275. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/dhcp/cumulus.j2 +0 -0
  276. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/dhcp/dnsmasq.j2 +0 -0
  277. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/dhcp/eos.j2 +0 -0
  278. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/dhcp/eos.server.j2 +0 -0
  279. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/dhcp/ios.j2 +0 -0
  280. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/dhcp/ios.server.j2 +0 -0
  281. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/dhcp/linux-isc-dhcp-relay.j2 +0 -0
  282. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/dhcp/linux.j2 +0 -0
  283. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/eigrp/ios.j2 +0 -0
  284. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/eigrp/nxos.j2 +0 -0
  285. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/arubacx.j2 +0 -0
  286. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/cumulus.j2 +0 -0
  287. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/cumulus_nvue.j2 +0 -0
  288. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/dellos10.j2 +0 -0
  289. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/eos.j2 +0 -0
  290. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/frr.evpn-config.j2 +0 -0
  291. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/frr.j2 +0 -0
  292. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/nxos.j2 +0 -0
  293. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/srlinux.j2 +0 -0
  294. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/sros.j2 +0 -0
  295. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/evpn/vyos.j2 +0 -0
  296. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/arubacx.j2 +0 -0
  297. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/cumulus.j2 +0 -0
  298. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/cumulus_nvue.j2 +0 -0
  299. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/dellos10.j2 +0 -0
  300. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/eos.j2 +0 -0
  301. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/frr.j2 +0 -0
  302. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/frr.vrrp-config.j2 +0 -0
  303. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/ios.j2 +0 -0
  304. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/junos.j2 +0 -0
  305. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/nxos.j2 +0 -0
  306. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/srlinux.j2 +0 -0
  307. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/sros.j2 +0 -0
  308. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/gateway/vyos.j2 +0 -0
  309. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/_debug_commands.j2 +0 -0
  310. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/arcos.j2 +0 -0
  311. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/arubacx.j2 +0 -0
  312. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/arubacx.vlan.j2 +0 -0
  313. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/arubacx.vrf.j2 +0 -0
  314. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/asa.j2 +0 -0
  315. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/bird-clab.j2 +0 -0
  316. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/cat8000v.vlan.j2 +0 -0
  317. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/csr.vlan.j2 +0 -0
  318. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/cumulus.j2 +0 -0
  319. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/cumulus_nvue.j2 +0 -0
  320. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/dellos10.j2 +0 -0
  321. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/dellos10.vrf.j2 +0 -0
  322. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/eos.j2 +0 -0
  323. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/eos.vrf.j2 +0 -0
  324. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/fortinet.fortios.fortios.j2 +0 -0
  325. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/frr/daemons.j2 +0 -0
  326. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/frr.j2 +0 -0
  327. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/iol.j2 +0 -0
  328. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/iol.vlan.j2 +0 -0
  329. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/ioll2.vlan.j2 +0 -0
  330. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/ios.j2 +0 -0
  331. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/ios.vlan.j2 +0 -0
  332. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/ios.vrf.j2 +0 -0
  333. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/iosvl2.vlan.j2 +0 -0
  334. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/iosxr.j2 +0 -0
  335. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/junos.j2 +0 -0
  336. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/junos.vlan.j2 +0 -0
  337. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/junos.vrf.j2 +0 -0
  338. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux/bash_profile.j2 +0 -0
  339. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux/create-bond.j2 +0 -0
  340. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux/hosts-common.j2 +0 -0
  341. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux/hosts.j2 +0 -0
  342. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux/packages.j2 +0 -0
  343. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux/ubuntu.j2 +0 -0
  344. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux/vanilla-ifconfig.j2 +0 -0
  345. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux/vanilla.j2 +0 -0
  346. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux-clab.j2 +0 -0
  347. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/linux.j2 +0 -0
  348. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/netscaler.j2 +0 -0
  349. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/nxos.j2 +0 -0
  350. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/nxos.vrf.j2 +0 -0
  351. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/openbsd.j2 +0 -0
  352. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/routeros.j2 +0 -0
  353. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/routeros.vlan.j2 +0 -0
  354. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/routeros.vrf.j2 +0 -0
  355. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/routeros7.j2 +0 -0
  356. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/routeros7.vlan.j2 +0 -0
  357. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/routeros7.vrf.j2 +0 -0
  358. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/sonic.j2 +0 -0
  359. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/srlinux.j2 +0 -0
  360. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/sros.j2 +0 -0
  361. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/sros.openconfig.j2 +0 -0
  362. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/vyos.j2 +0 -0
  363. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/vyos.vlan.j2 +0 -0
  364. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/initial/vyos.vrf.j2 +0 -0
  365. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/asa.j2 +0 -0
  366. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/eos.j2 +0 -0
  367. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/eos.macro.j2 +0 -0
  368. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/frr.j2 +0 -0
  369. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/frr.macro.j2 +0 -0
  370. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/ios.j2 +0 -0
  371. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/iosxr.j2 +0 -0
  372. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/nxos.j2 +0 -0
  373. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/srlinux.j2 +0 -0
  374. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/srlinux.macro.j2 +0 -0
  375. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/sros.j2 +0 -0
  376. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/sros.openconfig.j2 +0 -0
  377. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/isis/vyos.j2 +0 -0
  378. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/arubacx.j2 +0 -0
  379. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/cumulus.j2 +0 -0
  380. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/cumulus_nvue.j2 +0 -0
  381. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/dellos10.j2 +0 -0
  382. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/eos.j2 +0 -0
  383. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/frr.j2 +0 -0
  384. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/ios.j2 +0 -0
  385. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/junos.j2 +0 -0
  386. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/linux-clab.j2 +0 -0
  387. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/linux.j2 +0 -0
  388. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/lag/vyos.j2 +0 -0
  389. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/missing.j2 +0 -0
  390. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/arubacx.j2 +0 -0
  391. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/arubacx.ldp.j2 +0 -0
  392. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/arubacx.mplsvpn.j2 +0 -0
  393. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/eos.6pe.j2 +0 -0
  394. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/eos.bgp-lu.j2 +0 -0
  395. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/eos.j2 +0 -0
  396. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/eos.ldp.j2 +0 -0
  397. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/eos.mplsvpn.j2 +0 -0
  398. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/frr.frr-config.j2 +0 -0
  399. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/frr.j2 +0 -0
  400. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/frr.ldp.j2 +0 -0
  401. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/ios.bgp-lu.j2 +0 -0
  402. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/ios.ldp.j2 +0 -0
  403. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/junos.j2 +0 -0
  404. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/routeros.j2 +0 -0
  405. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/routeros.ldp.j2 +0 -0
  406. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/routeros.mplsvpn.j2 +0 -0
  407. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/routeros7.j2 +0 -0
  408. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/routeros7.ldp.j2 +0 -0
  409. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/routeros7.mplsvpn.j2 +0 -0
  410. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/srlinux.j2 +0 -0
  411. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/srlinux.ldp.j2 +0 -0
  412. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/sros.ldp.j2 +0 -0
  413. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/sros.mplsvpn.j2 +0 -0
  414. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/vyos.j2 +0 -0
  415. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/mpls/vyos.ldp.j2 +0 -0
  416. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/normalize/eos.j2 +0 -0
  417. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/normalize/ioll2.j2 +0 -0
  418. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/normalize/iosvl2.j2 +0 -0
  419. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/arcos.j2 +0 -0
  420. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/arubacx.j2 +0 -0
  421. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/arubacx.ospfv2.j2 +0 -0
  422. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/arubacx.ospfv3.j2 +0 -0
  423. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/asa.j2 +0 -0
  424. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/asa.ospfv2.j2 +0 -0
  425. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/cumulus.j2 +0 -0
  426. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/cumulus.ospfv2.j2 +0 -0
  427. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/cumulus.ospfv3.j2 +0 -0
  428. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/cumulus_nvue.j2 +0 -0
  429. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/dellos10.j2 +0 -0
  430. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/dellos10.macro.j2 +0 -0
  431. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/dellos10.ospfv2.j2 +0 -0
  432. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/dellos10.ospfv3.j2 +0 -0
  433. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/eos.j2 +0 -0
  434. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/eos.ospfv2.j2 +0 -0
  435. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/eos.ospfv3.j2 +0 -0
  436. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/fortinet.fortios.fortios.j2 +0 -0
  437. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/frr.j2 +0 -0
  438. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/frr.ospfv2.j2 +0 -0
  439. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/frr.ospfv3.j2 +0 -0
  440. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/ios.j2 +0 -0
  441. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/ios.ospfv2.j2 +0 -0
  442. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/ios.ospfv3.j2 +0 -0
  443. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/iosxr.j2 +0 -0
  444. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/junos.j2 +0 -0
  445. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/junos.macro.j2 +0 -0
  446. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/none.j2 +0 -0
  447. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/nxos.j2 +0 -0
  448. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/nxos.ospfv2.j2 +0 -0
  449. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/nxos.ospfv3.j2 +0 -0
  450. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/openbsd.j2 +0 -0
  451. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/openbsd.ospfv2.j2 +0 -0
  452. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/openbsd.ospfv3.j2 +0 -0
  453. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/routeros.j2 +0 -0
  454. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/routeros7.j2 +0 -0
  455. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/routeros7.ospf-include.j2 +0 -0
  456. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/srlinux.j2 +0 -0
  457. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/srlinux.macro.j2 +0 -0
  458. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/sros.j2 +0 -0
  459. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/sros.openconfig.j2 +0 -0
  460. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/vyos.default.j2 +0 -0
  461. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/vyos.j2 +0 -0
  462. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/vyos.ospfv2.j2 +0 -0
  463. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ospf/vyos.ospfv3.j2 +0 -0
  464. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/cumulus.j2 +0 -0
  465. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/eos.j2 +0 -0
  466. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/frr.j2 +0 -0
  467. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/frr.macro.j2 +0 -0
  468. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/ios.j2 +0 -0
  469. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/ios.macro.j2 +0 -0
  470. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/openbsd.j2 +0 -0
  471. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/openbsd.ripng.j2 +0 -0
  472. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/openbsd.ripv2.j2 +0 -0
  473. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/sros.j2 +0 -0
  474. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/ripv2/vyos.j2 +0 -0
  475. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_default.ios.j2 +0 -0
  476. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_prefix_list_ios.j2 +0 -0
  477. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_prefix_list_junos.j2 +0 -0
  478. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_prefix_list_vyos.j2 +0 -0
  479. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_redistribute.cumulus_nvue.j2 +0 -0
  480. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_redistribute.dellos10.j2 +0 -0
  481. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_redistribute.eos.j2 +0 -0
  482. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_redistribute.frr.j2 +0 -0
  483. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_redistribute.ios.j2 +0 -0
  484. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_redistribute.iosxr.j2 +0 -0
  485. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_redistribute.srlinux.j2 +0 -0
  486. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_redistribute.sros.j2 +0 -0
  487. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_route_map_ios.j2 +0 -0
  488. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_route_policy_junos.j2 +0 -0
  489. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/_route_policy_vyos.j2 +0 -0
  490. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/arubacx.j2 +0 -0
  491. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/cumulus.j2 +0 -0
  492. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/cumulus_nvue.j2 +0 -0
  493. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/dellos10.j2 +0 -0
  494. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/eos.j2 +0 -0
  495. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/frr.j2 +0 -0
  496. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/ios.j2 +0 -0
  497. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/junos.j2 +0 -0
  498. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/linux/ubuntu.j2 +0 -0
  499. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/linux/vanilla.j2 +0 -0
  500. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/linux-clab.j2 +0 -0
  501. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/linux.j2 +0 -0
  502. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/openbsd.j2 +0 -0
  503. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/srlinux.j2 +0 -0
  504. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/sros.j2 +0 -0
  505. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/routing/vyos.j2 +0 -0
  506. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/srv6/frr.bgp.j2 +0 -0
  507. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/srv6/frr.j2 +0 -0
  508. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/srv6/ios.bgp.j2 +0 -0
  509. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/srv6/ios.j2 +0 -0
  510. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/srv6/sros.j2 +0 -0
  511. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/stp/arubacx.j2 +0 -0
  512. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/stp/cumulus.j2 +0 -0
  513. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/stp/cumulus_nvue.j2 +0 -0
  514. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/stp/dellos10.j2 +0 -0
  515. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/stp/eos.j2 +0 -0
  516. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/stp/frr.j2 +0 -0
  517. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/stp/ios.j2 +0 -0
  518. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/arubacx.j2 +0 -0
  519. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/cat8000v.essentials.j2 +0 -0
  520. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/cat8000v.j2 +0 -0
  521. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/cisco8000v.j2 +0 -0
  522. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/csr.j2 +0 -0
  523. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/cumulus.j2 +0 -0
  524. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/cumulus_nvue.j2 +0 -0
  525. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/dellos10.j2 +0 -0
  526. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/eos.j2 +0 -0
  527. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/frr.j2 +0 -0
  528. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/iol.j2 +0 -0
  529. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/ioll2.j2 +0 -0
  530. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/ios.j2 +0 -0
  531. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/iosvl2.j2 +0 -0
  532. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/linux-clab.j2 +0 -0
  533. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/nxos.j2 +0 -0
  534. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/routeros.j2 +0 -0
  535. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/routeros7.j2 +0 -0
  536. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/srlinux.j2 +0 -0
  537. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/sros.j2 +0 -0
  538. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/vjunos-switch.j2 +0 -0
  539. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/vmx.j2 +0 -0
  540. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/vsrx.j2 +0 -0
  541. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vlan/vyos.j2 +0 -0
  542. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/arubacx.bgp.j2 +0 -0
  543. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/arubacx.j2 +0 -0
  544. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/arubacx.ospfv2-vrf.j2 +0 -0
  545. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/arubacx.ospfv3-vrf.j2 +0 -0
  546. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/cumulus.j2 +0 -0
  547. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/cumulus_nvue.j2 +0 -0
  548. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/dellos10.bgp.j2 +0 -0
  549. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/dellos10.j2 +0 -0
  550. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/dellos10.ospfv2-vrf.j2 +0 -0
  551. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/eos.bgp.j2 +0 -0
  552. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/eos.j2 +0 -0
  553. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/frr.bgp.j2 +0 -0
  554. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/frr.frr-config.j2 +0 -0
  555. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/frr.j2 +0 -0
  556. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/ios.bgp.j2 +0 -0
  557. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/ios.j2 +0 -0
  558. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/iosxr.bgp.j2 +0 -0
  559. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/iosxr.j2 +0 -0
  560. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/junos.bgp.j2 +0 -0
  561. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/junos.j2 +0 -0
  562. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/nxos.bgp.j2 +0 -0
  563. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/nxos.j2 +0 -0
  564. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/nxos.ospfv2-vrf.j2 +0 -0
  565. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/routeros.bgp.j2 +0 -0
  566. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/routeros.j2 +0 -0
  567. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/routeros.ospfv2-vrf.j2 +0 -0
  568. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/routeros7.bgp.j2 +0 -0
  569. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/routeros7.j2 +0 -0
  570. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/routeros7.ospfv2-vrf.j2 +0 -0
  571. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/srlinux.j2 +0 -0
  572. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/sros.j2 +0 -0
  573. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/vyos.bgp.j2 +0 -0
  574. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/vyos.j2 +0 -0
  575. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/vyos.ospfv2-vrf.j2 +0 -0
  576. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vrf/vyos.ospfv3-vrf.j2 +0 -0
  577. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/arubacx.j2 +0 -0
  578. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/cumulus.j2 +0 -0
  579. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/cumulus_nvue.j2 +0 -0
  580. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/dellos10.j2 +0 -0
  581. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/eos.j2 +0 -0
  582. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/frr.j2 +0 -0
  583. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/ios.j2 +0 -0
  584. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/nxos.j2 +0 -0
  585. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/srlinux.j2 +0 -0
  586. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/sros.j2 +0 -0
  587. {networklab-26.2 → networklab-26.3}/netsim/ansible/templates/vxlan/vyos.j2 +0 -0
  588. {networklab-26.2 → networklab-26.3}/netsim/api/__init__.py +0 -0
  589. {networklab-26.2 → networklab-26.3}/netsim/augment/__init__.py +0 -0
  590. {networklab-26.2 → networklab-26.3}/netsim/augment/addressing.py +0 -0
  591. {networklab-26.2 → networklab-26.3}/netsim/augment/components.py +0 -0
  592. {networklab-26.2 → networklab-26.3}/netsim/augment/config.py +0 -0
  593. {networklab-26.2 → networklab-26.3}/netsim/augment/devices.py +0 -0
  594. {networklab-26.2 → networklab-26.3}/netsim/augment/groups.py +0 -0
  595. {networklab-26.2 → networklab-26.3}/netsim/augment/links.py +0 -0
  596. {networklab-26.2 → networklab-26.3}/netsim/augment/main.py +0 -0
  597. {networklab-26.2 → networklab-26.3}/netsim/augment/nodes.py +0 -0
  598. {networklab-26.2 → networklab-26.3}/netsim/augment/plugin.py +0 -0
  599. {networklab-26.2 → networklab-26.3}/netsim/augment/tools.py +0 -0
  600. {networklab-26.2 → networklab-26.3}/netsim/augment/topology.py +0 -0
  601. {networklab-26.2 → networklab-26.3}/netsim/augment/validate.py +0 -0
  602. {networklab-26.2 → networklab-26.3}/netsim/cli/__init__.py +0 -0
  603. {networklab-26.2 → networklab-26.3}/netsim/cli/_nodeset.py +0 -0
  604. {networklab-26.2 → networklab-26.3}/netsim/cli/alias.txt +0 -0
  605. {networklab-26.2 → networklab-26.3}/netsim/cli/ansible.py +0 -0
  606. {networklab-26.2 → networklab-26.3}/netsim/cli/api.py +0 -0
  607. {networklab-26.2 → networklab-26.3}/netsim/cli/capture.py +0 -0
  608. {networklab-26.2 → networklab-26.3}/netsim/cli/clab.py +0 -0
  609. {networklab-26.2 → networklab-26.3}/netsim/cli/clab_actions/__init__.py +0 -0
  610. {networklab-26.2 → networklab-26.3}/netsim/cli/clab_actions/build.py +0 -0
  611. {networklab-26.2 → networklab-26.3}/netsim/cli/clab_actions/cleanup.py +0 -0
  612. {networklab-26.2 → networklab-26.3}/netsim/cli/clab_actions/tarball.py +0 -0
  613. {networklab-26.2 → networklab-26.3}/netsim/cli/collect.py +0 -0
  614. {networklab-26.2 → networklab-26.3}/netsim/cli/config.py +0 -0
  615. {networklab-26.2 → networklab-26.3}/netsim/cli/connect.py +0 -0
  616. {networklab-26.2 → networklab-26.3}/netsim/cli/create.py +0 -0
  617. {networklab-26.2 → networklab-26.3}/netsim/cli/defaults.py +0 -0
  618. {networklab-26.2 → networklab-26.3}/netsim/cli/down.py +0 -0
  619. {networklab-26.2 → networklab-26.3}/netsim/cli/empty.yml +0 -0
  620. {networklab-26.2 → networklab-26.3}/netsim/cli/exec.py +0 -0
  621. {networklab-26.2 → networklab-26.3}/netsim/cli/external_commands.py +0 -0
  622. {networklab-26.2 → networklab-26.3}/netsim/cli/graph.py +0 -0
  623. {networklab-26.2 → networklab-26.3}/netsim/cli/help.py +0 -0
  624. {networklab-26.2 → networklab-26.3}/netsim/cli/initial/__init__.py +0 -0
  625. {networklab-26.2 → networklab-26.3}/netsim/cli/initial/configs.py +0 -0
  626. {networklab-26.2 → networklab-26.3}/netsim/cli/initial/deploy.py +0 -0
  627. {networklab-26.2 → networklab-26.3}/netsim/cli/initial/ready.py +0 -0
  628. {networklab-26.2 → networklab-26.3}/netsim/cli/initial/utils.py +0 -0
  629. {networklab-26.2 → networklab-26.3}/netsim/cli/inspect.py +0 -0
  630. {networklab-26.2 → networklab-26.3}/netsim/cli/install.py +0 -0
  631. {networklab-26.2 → networklab-26.3}/netsim/cli/libvirt/__init__.py +0 -0
  632. {networklab-26.2 → networklab-26.3}/netsim/cli/libvirt/config.py +0 -0
  633. {networklab-26.2 → networklab-26.3}/netsim/cli/libvirt/package.py +0 -0
  634. {networklab-26.2 → networklab-26.3}/netsim/cli/libvirt/remove.py +0 -0
  635. {networklab-26.2 → networklab-26.3}/netsim/cli/read.py +0 -0
  636. {networklab-26.2 → networklab-26.3}/netsim/cli/report.py +0 -0
  637. {networklab-26.2 → networklab-26.3}/netsim/cli/restart.py +0 -0
  638. {networklab-26.2 → networklab-26.3}/netsim/cli/show-usage.txt +0 -0
  639. {networklab-26.2 → networklab-26.3}/netsim/cli/show.py +0 -0
  640. {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/__init__.py +0 -0
  641. {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/attributes.py +0 -0
  642. {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/defaults.py +0 -0
  643. {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/devices.py +0 -0
  644. {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/images.py +0 -0
  645. {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/module_support.py +0 -0
  646. {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/modules.py +0 -0
  647. {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/outputs.py +0 -0
  648. {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/providers.py +0 -0
  649. {networklab-26.2 → networklab-26.3}/netsim/cli/show_commands/reports.py +0 -0
  650. {networklab-26.2 → networklab-26.3}/netsim/cli/status.py +0 -0
  651. {networklab-26.2 → networklab-26.3}/netsim/cli/tc.py +0 -0
  652. {networklab-26.2 → networklab-26.3}/netsim/cli/test.py +0 -0
  653. {networklab-26.2 → networklab-26.3}/netsim/cli/up.py +0 -0
  654. {networklab-26.2 → networklab-26.3}/netsim/cli/usage.py +0 -0
  655. {networklab-26.2 → networklab-26.3}/netsim/cli/usage.txt +0 -0
  656. {networklab-26.2 → networklab-26.3}/netsim/cli/usage_actions/__init__.py +0 -0
  657. {networklab-26.2 → networklab-26.3}/netsim/cli/usage_actions/show.py +0 -0
  658. {networklab-26.2 → networklab-26.3}/netsim/cli/usage_actions/utils.py +0 -0
  659. {networklab-26.2 → networklab-26.3}/netsim/cli/validate/__init__.py +0 -0
  660. {networklab-26.2 → networklab-26.3}/netsim/cli/validate/devices.py +0 -0
  661. {networklab-26.2 → networklab-26.3}/netsim/cli/validate/parse.py +0 -0
  662. {networklab-26.2 → networklab-26.3}/netsim/cli/validate/plugin.py +0 -0
  663. {networklab-26.2 → networklab-26.3}/netsim/cli/validate/report.py +0 -0
  664. {networklab-26.2 → networklab-26.3}/netsim/cli/validate/source.py +0 -0
  665. {networklab-26.2 → networklab-26.3}/netsim/cli/validate/suzieq.py +0 -0
  666. {networklab-26.2 → networklab-26.3}/netsim/cli/validate/tests.py +0 -0
  667. {networklab-26.2 → networklab-26.3}/netsim/cli/validate/utils.py +0 -0
  668. {networklab-26.2 → networklab-26.3}/netsim/cli/version.py +0 -0
  669. {networklab-26.2 → networklab-26.3}/netsim/common.py +0 -0
  670. {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/Dockerfile +0 -0
  671. {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/Dockerfile.v3 +0 -0
  672. {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/bfd.j2 +0 -0
  673. {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/bgp.j2 +0 -0
  674. {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/bird.j2 +0 -0
  675. {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/ospf.j2 +0 -0
  676. {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/protocols.j2 +0 -0
  677. {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/radv.j2 +0 -0
  678. {networklab-26.2 → networklab-26.3}/netsim/daemons/bird/routing.j2 +0 -0
  679. {networklab-26.2 → networklab-26.3}/netsim/daemons/bird.yml +0 -0
  680. {networklab-26.2 → networklab-26.3}/netsim/daemons/dnsmasq/Dockerfile +0 -0
  681. {networklab-26.2 → networklab-26.3}/netsim/daemons/dnsmasq/dhcp.j2 +0 -0
  682. {networklab-26.2 → networklab-26.3}/netsim/daemons/dnsmasq/dnsmasq.j2 +0 -0
  683. {networklab-26.2 → networklab-26.3}/netsim/daemons/dnsmasq.yml +0 -0
  684. {networklab-26.2 → networklab-26.3}/netsim/daemons/kind/initial.j2 +0 -0
  685. {networklab-26.2 → networklab-26.3}/netsim/daemons/kind.yml +0 -0
  686. {networklab-26.2 → networklab-26.3}/netsim/daemons/netscaler/Dockerfile.j2 +0 -0
  687. {networklab-26.2 → networklab-26.3}/netsim/data/__init__.py +0 -0
  688. {networklab-26.2 → networklab-26.3}/netsim/data/filemaps.py +0 -0
  689. {networklab-26.2 → networklab-26.3}/netsim/data/global_vars.py +0 -0
  690. {networklab-26.2 → networklab-26.3}/netsim/defaults/addressing.yml +0 -0
  691. {networklab-26.2 → networklab-26.3}/netsim/defaults/attributes.yml +0 -0
  692. {networklab-26.2 → networklab-26.3}/netsim/defaults/automation.yml +0 -0
  693. {networklab-26.2 → networklab-26.3}/netsim/defaults/const.yml +0 -0
  694. {networklab-26.2 → networklab-26.3}/netsim/defaults/hints.yml +0 -0
  695. {networklab-26.2 → networklab-26.3}/netsim/defaults/multilab.yml +0 -0
  696. {networklab-26.2 → networklab-26.3}/netsim/defaults/netlab.yml +0 -0
  697. {networklab-26.2 → networklab-26.3}/netsim/defaults/paths.yml +0 -0
  698. {networklab-26.2 → networklab-26.3}/netsim/defaults/ports.yml +0 -0
  699. {networklab-26.2 → networklab-26.3}/netsim/defaults/warnings.yml +0 -0
  700. {networklab-26.2 → networklab-26.3}/netsim/devices/__init__.py +0 -0
  701. {networklab-26.2 → networklab-26.3}/netsim/devices/_common.py +0 -0
  702. {networklab-26.2 → networklab-26.3}/netsim/devices/arubacx.py +0 -0
  703. {networklab-26.2 → networklab-26.3}/netsim/devices/arubacx.yml +0 -0
  704. {networklab-26.2 → networklab-26.3}/netsim/devices/asav.py +0 -0
  705. {networklab-26.2 → networklab-26.3}/netsim/devices/asav.yml +0 -0
  706. {networklab-26.2 → networklab-26.3}/netsim/devices/bird.py +0 -0
  707. {networklab-26.2 → networklab-26.3}/netsim/devices/cat8000v.py +0 -0
  708. {networklab-26.2 → networklab-26.3}/netsim/devices/cisco8000v.yml +0 -0
  709. {networklab-26.2 → networklab-26.3}/netsim/devices/csr.py +0 -0
  710. {networklab-26.2 → networklab-26.3}/netsim/devices/cumulus.py +0 -0
  711. {networklab-26.2 → networklab-26.3}/netsim/devices/cumulus.yml +0 -0
  712. {networklab-26.2 → networklab-26.3}/netsim/devices/cumulus_nvue.py +0 -0
  713. {networklab-26.2 → networklab-26.3}/netsim/devices/cumulus_nvue.yml +0 -0
  714. {networklab-26.2 → networklab-26.3}/netsim/devices/dellos10.py +0 -0
  715. {networklab-26.2 → networklab-26.3}/netsim/devices/dellos10.yml +0 -0
  716. {networklab-26.2 → networklab-26.3}/netsim/devices/eos.py +0 -0
  717. {networklab-26.2 → networklab-26.3}/netsim/devices/fortios.yml +0 -0
  718. {networklab-26.2 → networklab-26.3}/netsim/devices/frr.py +0 -0
  719. {networklab-26.2 → networklab-26.3}/netsim/devices/ioll2.py +0 -0
  720. {networklab-26.2 → networklab-26.3}/netsim/devices/ioll2.yml +0 -0
  721. {networklab-26.2 → networklab-26.3}/netsim/devices/iosv.py +0 -0
  722. {networklab-26.2 → networklab-26.3}/netsim/devices/iosv.yml +0 -0
  723. {networklab-26.2 → networklab-26.3}/netsim/devices/iosvl2.py +0 -0
  724. {networklab-26.2 → networklab-26.3}/netsim/devices/iosvl2.yml +0 -0
  725. {networklab-26.2 → networklab-26.3}/netsim/devices/linux.py +0 -0
  726. {networklab-26.2 → networklab-26.3}/netsim/devices/linux.yml +0 -0
  727. {networklab-26.2 → networklab-26.3}/netsim/devices/netscaler.yml +0 -0
  728. {networklab-26.2 → networklab-26.3}/netsim/devices/nxos.py +0 -0
  729. {networklab-26.2 → networklab-26.3}/netsim/devices/nxos.yml +0 -0
  730. {networklab-26.2 → networklab-26.3}/netsim/devices/openbsd.py +0 -0
  731. {networklab-26.2 → networklab-26.3}/netsim/devices/routeros.yml +0 -0
  732. {networklab-26.2 → networklab-26.3}/netsim/devices/routeros7.yml +0 -0
  733. {networklab-26.2 → networklab-26.3}/netsim/devices/sonic.yml +0 -0
  734. {networklab-26.2 → networklab-26.3}/netsim/devices/srlinux.py +0 -0
  735. {networklab-26.2 → networklab-26.3}/netsim/devices/sros.py +0 -0
  736. {networklab-26.2 → networklab-26.3}/netsim/devices/srsim.py +0 -0
  737. {networklab-26.2 → networklab-26.3}/netsim/devices/srsim.yml +0 -0
  738. {networklab-26.2 → networklab-26.3}/netsim/devices/unknown.py +0 -0
  739. {networklab-26.2 → networklab-26.3}/netsim/devices/unknown.yml +0 -0
  740. {networklab-26.2 → networklab-26.3}/netsim/devices/vjunos-switch.py +0 -0
  741. {networklab-26.2 → networklab-26.3}/netsim/devices/vjunos-switch.yml +0 -0
  742. {networklab-26.2 → networklab-26.3}/netsim/devices/vmx.yml +0 -0
  743. {networklab-26.2 → networklab-26.3}/netsim/devices/vsrx.yml +0 -0
  744. {networklab-26.2 → networklab-26.3}/netsim/devices/vyos.yml +0 -0
  745. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.domain/defaults.yml +0 -0
  746. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.domain/plugin.py +0 -0
  747. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.originate/defaults.yml +0 -0
  748. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.originate/plugin.py +0 -0
  749. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/_route_map_ios.j2 +0 -0
  750. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/arubacx.j2 +0 -0
  751. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/cumulus.j2 +0 -0
  752. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/defaults.yml +0 -0
  753. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/dellos10.j2 +0 -0
  754. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/eos.j2 +0 -0
  755. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/frr.j2 +0 -0
  756. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/ios.j2 +0 -0
  757. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/junos.j2 +0 -0
  758. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/plugin.py +0 -0
  759. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/simple-attributes.yml +0 -0
  760. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/srlinux.j2 +0 -0
  761. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/sros.j2 +0 -0
  762. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.policy/vyos.j2 +0 -0
  763. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/_sample_bfd_template.j2 +0 -0
  764. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/arubacx.j2 +0 -0
  765. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/bird.j2 +0 -0
  766. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/cumulus.j2 +0 -0
  767. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/cumulus_nvue.j2 +0 -0
  768. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/dellos10.j2 +0 -0
  769. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/eos.j2 +0 -0
  770. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/frr.j2 +0 -0
  771. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/junos.j2 +0 -0
  772. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/nxos.j2 +0 -0
  773. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/routeros7.j2 +0 -0
  774. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/srlinux.j2 +0 -0
  775. {networklab-26.2 → networklab-26.3}/netsim/extra/bgp.session/vyos.j2 +0 -0
  776. {networklab-26.2 → networklab-26.3}/netsim/extra/bonding/defaults.yml +0 -0
  777. {networklab-26.2 → networklab-26.3}/netsim/extra/bonding/frr.j2 +0 -0
  778. {networklab-26.2 → networklab-26.3}/netsim/extra/bonding/linux-clab.j2 +0 -0
  779. {networklab-26.2 → networklab-26.3}/netsim/extra/bonding/linux.j2 +0 -0
  780. {networklab-26.2 → networklab-26.3}/netsim/extra/bonding/plugin.py +0 -0
  781. {networklab-26.2 → networklab-26.3}/netsim/extra/check.config/plugin.py +0 -0
  782. {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/cumulus.j2 +0 -0
  783. {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/defaults.yml +0 -0
  784. {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/ebgp-multihop-load-balancing.yml +0 -0
  785. {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.multihop/plugin.py +0 -0
  786. {networklab-26.2 → networklab-26.3}/netsim/extra/ebgp.utils/plugin.py +0 -0
  787. {networklab-26.2 → networklab-26.3}/netsim/extra/evpn.multihoming/cumulus_nvue.j2 +0 -0
  788. {networklab-26.2 → networklab-26.3}/netsim/extra/evpn.multihoming/defaults.yml +0 -0
  789. {networklab-26.2 → networklab-26.3}/netsim/extra/evpn.multihoming/eos.j2 +0 -0
  790. {networklab-26.2 → networklab-26.3}/netsim/extra/evpn.multihoming/frr.j2 +0 -0
  791. {networklab-26.2 → networklab-26.3}/netsim/extra/evpn.multihoming/plugin.py +0 -0
  792. {networklab-26.2 → networklab-26.3}/netsim/extra/evpn.multihoming/vjunos-switch.j2 +0 -0
  793. {networklab-26.2 → networklab-26.3}/netsim/extra/fabric/defaults.yml +0 -0
  794. {networklab-26.2 → networklab-26.3}/netsim/extra/fabric/plugin.py +0 -0
  795. {networklab-26.2 → networklab-26.3}/netsim/extra/files/defaults.yml +0 -0
  796. {networklab-26.2 → networklab-26.3}/netsim/extra/files/plugin.py +0 -0
  797. {networklab-26.2 → networklab-26.3}/netsim/extra/firewall.zonebased/defaults.yml +0 -0
  798. {networklab-26.2 → networklab-26.3}/netsim/extra/firewall.zonebased/deploy.fortinet.fortios.fortios.yml +0 -0
  799. {networklab-26.2 → networklab-26.3}/netsim/extra/firewall.zonebased/fortinet.fortios.fortios.j2 +0 -0
  800. {networklab-26.2 → networklab-26.3}/netsim/extra/firewall.zonebased/plugin.py +0 -0
  801. {networklab-26.2 → networklab-26.3}/netsim/extra/firewall.zonebased/vsrx.j2 +0 -0
  802. {networklab-26.2 → networklab-26.3}/netsim/extra/firewall.zonebased/vyos.j2 +0 -0
  803. {networklab-26.2 → networklab-26.3}/netsim/extra/kind/defaults.yml +0 -0
  804. {networklab-26.2 → networklab-26.3}/netsim/extra/kind/plugin.py +0 -0
  805. {networklab-26.2 → networklab-26.3}/netsim/extra/mlag.vtep/defaults.yml +0 -0
  806. {networklab-26.2 → networklab-26.3}/netsim/extra/mlag.vtep/plugin.py +0 -0
  807. {networklab-26.2 → networklab-26.3}/netsim/extra/multilab/__init__.py +0 -0
  808. {networklab-26.2 → networklab-26.3}/netsim/extra/node.clone/defaults.yml +0 -0
  809. {networklab-26.2 → networklab-26.3}/netsim/extra/node.clone/plugin.py +0 -0
  810. {networklab-26.2 → networklab-26.3}/netsim/extra/none/none.j2 +0 -0
  811. {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/arubacx.j2 +0 -0
  812. {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/cumulus_nvue.j2 +0 -0
  813. {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/defaults.yml +0 -0
  814. {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/dellos10.j2 +0 -0
  815. {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/eos.j2 +0 -0
  816. {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/frr.j2 +0 -0
  817. {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/ios.j2 +0 -0
  818. {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/junos.j2 +0 -0
  819. {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/plugin.py +0 -0
  820. {networklab-26.2 → networklab-26.3}/netsim/extra/ospf.areas/srlinux.j2 +0 -0
  821. {networklab-26.2 → networklab-26.3}/netsim/extra/proxy-arp/plugin.py +0 -0
  822. {networklab-26.2 → networklab-26.3}/netsim/extra/proxy-arp/srlinux.j2 +0 -0
  823. {networklab-26.2 → networklab-26.3}/netsim/extra/proxy-arp/sros.j2 +0 -0
  824. {networklab-26.2 → networklab-26.3}/netsim/extra/test.fixup/plugin.py +0 -0
  825. {networklab-26.2 → networklab-26.3}/netsim/extra/test.vrf_check/plugin.py +0 -0
  826. {networklab-26.2 → networklab-26.3}/netsim/extra/vrrp.version/cumulus_nvue.j2 +0 -0
  827. {networklab-26.2 → networklab-26.3}/netsim/extra/vrrp.version/defaults.yml +0 -0
  828. {networklab-26.2 → networklab-26.3}/netsim/extra/vrrp.version/dellos10.j2 +0 -0
  829. {networklab-26.2 → networklab-26.3}/netsim/extra/vrrp.version/plugin.py +0 -0
  830. {networklab-26.2 → networklab-26.3}/netsim/install/ansible.sh +0 -0
  831. {networklab-26.2 → networklab-26.3}/netsim/install/apt-get-update.sh +0 -0
  832. {networklab-26.2 → networklab-26.3}/netsim/install/containerlab.sh +0 -0
  833. {networklab-26.2 → networklab-26.3}/netsim/install/graph.sh +0 -0
  834. {networklab-26.2 → networklab-26.3}/netsim/install/grpc.sh +0 -0
  835. {networklab-26.2 → networklab-26.3}/netsim/install/install.yml +0 -0
  836. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/arubacx.txt +0 -0
  837. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/asav/day0-config +0 -0
  838. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/asav.txt +0 -0
  839. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/asav.xml.j2 +0 -0
  840. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/cat8000v/iosxe_config.txt +0 -0
  841. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/cat8000v.txt +0 -0
  842. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/cat8000v.xml.j2 +0 -0
  843. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/csr.txt +0 -0
  844. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/dellos10/run.sh +0 -0
  845. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/dellos10.txt +0 -0
  846. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/eos.txt +0 -0
  847. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/eos.xml.j2 +0 -0
  848. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/fortios.txt +0 -0
  849. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/fortios.xml.j2 +0 -0
  850. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/frr/meta-data +0 -0
  851. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/frr/user-data.j2 +0 -0
  852. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/frr.xml.j2 +0 -0
  853. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/iosv.txt +0 -0
  854. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/iosv.xml.j2 +0 -0
  855. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/iosvl2.txt +0 -0
  856. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/iosxr/iosxr_config.txt +0 -0
  857. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/iosxr.txt +0 -0
  858. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/nxos.txt +0 -0
  859. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/nxos.xml.j2 +0 -0
  860. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/openbsd/meta-data +0 -0
  861. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/openbsd/network-config +0 -0
  862. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/openbsd/user-data +0 -0
  863. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/openbsd.txt +0 -0
  864. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/openbsd.xml.j2 +0 -0
  865. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/routeros7.txt +0 -0
  866. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/sonic.txt +0 -0
  867. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/sonic.xml.j2 +0 -0
  868. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/vptx/juniper.conf +0 -0
  869. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/vptx/make-config.sh +0 -0
  870. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/vptx/run.sh +0 -0
  871. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/vptx.txt +0 -0
  872. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/vptx.xml.j2 +0 -0
  873. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/vsrx/juniper.conf +0 -0
  874. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt/vsrx.txt +0 -0
  875. {networklab-26.2 → networklab-26.3}/netsim/install/libvirt.sh +0 -0
  876. {networklab-26.2 → networklab-26.3}/netsim/install/ubuntu.sh +0 -0
  877. {networklab-26.2 → networklab-26.3}/netsim/modules/_dataplane.py +0 -0
  878. {networklab-26.2 → networklab-26.3}/netsim/modules/bfd.py +0 -0
  879. {networklab-26.2 → networklab-26.3}/netsim/modules/bfd.yml +0 -0
  880. {networklab-26.2 → networklab-26.3}/netsim/modules/bgp.py +0 -0
  881. {networklab-26.2 → networklab-26.3}/netsim/modules/bgp.yml +0 -0
  882. {networklab-26.2 → networklab-26.3}/netsim/modules/dhcp.py +0 -0
  883. {networklab-26.2 → networklab-26.3}/netsim/modules/dhcp.yml +0 -0
  884. {networklab-26.2 → networklab-26.3}/netsim/modules/eigrp.py +0 -0
  885. {networklab-26.2 → networklab-26.3}/netsim/modules/eigrp.yml +0 -0
  886. {networklab-26.2 → networklab-26.3}/netsim/modules/gateway.py +0 -0
  887. {networklab-26.2 → networklab-26.3}/netsim/modules/gateway.yml +0 -0
  888. {networklab-26.2 → networklab-26.3}/netsim/modules/initial.yml +0 -0
  889. {networklab-26.2 → networklab-26.3}/netsim/modules/isis.py +0 -0
  890. {networklab-26.2 → networklab-26.3}/netsim/modules/isis.yml +0 -0
  891. {networklab-26.2 → networklab-26.3}/netsim/modules/lag.py +0 -0
  892. {networklab-26.2 → networklab-26.3}/netsim/modules/lag.yml +0 -0
  893. {networklab-26.2 → networklab-26.3}/netsim/modules/ospf.py +0 -0
  894. {networklab-26.2 → networklab-26.3}/netsim/modules/ospf.yml +0 -0
  895. {networklab-26.2 → networklab-26.3}/netsim/modules/ripv2.py +0 -0
  896. {networklab-26.2 → networklab-26.3}/netsim/modules/ripv2.yml +0 -0
  897. {networklab-26.2 → networklab-26.3}/netsim/modules/routing/policy.py +0 -0
  898. {networklab-26.2 → networklab-26.3}/netsim/modules/routing/static.py +0 -0
  899. {networklab-26.2 → networklab-26.3}/netsim/modules/routing.yml +0 -0
  900. {networklab-26.2 → networklab-26.3}/netsim/modules/srv6.py +0 -0
  901. {networklab-26.2 → networklab-26.3}/netsim/modules/srv6.yml +0 -0
  902. {networklab-26.2 → networklab-26.3}/netsim/modules/stp.py +0 -0
  903. {networklab-26.2 → networklab-26.3}/netsim/modules/stp.yml +0 -0
  904. {networklab-26.2 → networklab-26.3}/netsim/modules/vlan.py +0 -0
  905. {networklab-26.2 → networklab-26.3}/netsim/modules/vlan.yml +0 -0
  906. {networklab-26.2 → networklab-26.3}/netsim/modules/vrf.py +0 -0
  907. {networklab-26.2 → networklab-26.3}/netsim/modules/vrf.yml +0 -0
  908. {networklab-26.2 → networklab-26.3}/netsim/modules/vxlan.py +0 -0
  909. {networklab-26.2 → networklab-26.3}/netsim/modules/vxlan.yml +0 -0
  910. {networklab-26.2 → networklab-26.3}/netsim/outputs/__init__.py +0 -0
  911. {networklab-26.2 → networklab-26.3}/netsim/outputs/_graph.py +0 -0
  912. {networklab-26.2 → networklab-26.3}/netsim/outputs/ansible.yml +0 -0
  913. {networklab-26.2 → networklab-26.3}/netsim/outputs/common.py +0 -0
  914. {networklab-26.2 → networklab-26.3}/netsim/outputs/d2.py +0 -0
  915. {networklab-26.2 → networklab-26.3}/netsim/outputs/d2.yml +0 -0
  916. {networklab-26.2 → networklab-26.3}/netsim/outputs/devices.py +0 -0
  917. {networklab-26.2 → networklab-26.3}/netsim/outputs/format.py +0 -0
  918. {networklab-26.2 → networklab-26.3}/netsim/outputs/graph.py +0 -0
  919. {networklab-26.2 → networklab-26.3}/netsim/outputs/graph.yml +0 -0
  920. {networklab-26.2 → networklab-26.3}/netsim/outputs/graphite.py +0 -0
  921. {networklab-26.2 → networklab-26.3}/netsim/outputs/json.py +0 -0
  922. {networklab-26.2 → networklab-26.3}/netsim/outputs/none.py +0 -0
  923. {networklab-26.2 → networklab-26.3}/netsim/outputs/pickle.py +0 -0
  924. {networklab-26.2 → networklab-26.3}/netsim/outputs/provider.py +0 -0
  925. {networklab-26.2 → networklab-26.3}/netsim/outputs/report.py +0 -0
  926. {networklab-26.2 → networklab-26.3}/netsim/outputs/tools.py +0 -0
  927. {networklab-26.2 → networklab-26.3}/netsim/outputs/yaml.py +0 -0
  928. {networklab-26.2 → networklab-26.3}/netsim/providers/clab.py +0 -0
  929. {networklab-26.2 → networklab-26.3}/netsim/providers/clab.yml +0 -0
  930. {networklab-26.2 → networklab-26.3}/netsim/providers/external.py +0 -0
  931. {networklab-26.2 → networklab-26.3}/netsim/providers/external.yml +0 -0
  932. {networklab-26.2 → networklab-26.3}/netsim/providers/libvirt.py +0 -0
  933. {networklab-26.2 → networklab-26.3}/netsim/providers/libvirt.yml +0 -0
  934. {networklab-26.2 → networklab-26.3}/netsim/providers/virtualbox.py +0 -0
  935. {networklab-26.2 → networklab-26.3}/netsim/providers/virtualbox.yml +0 -0
  936. {networklab-26.2 → networklab-26.3}/netsim/py.typed +0 -0
  937. {networklab-26.2 → networklab-26.3}/netsim/reports/addressing-link.html.j2 +0 -0
  938. {networklab-26.2 → networklab-26.3}/netsim/reports/addressing-node.html.j2 +0 -0
  939. {networklab-26.2 → networklab-26.3}/netsim/reports/addressing.html.j2 +0 -0
  940. {networklab-26.2 → networklab-26.3}/netsim/reports/addressing.j2 +0 -0
  941. {networklab-26.2 → networklab-26.3}/netsim/reports/addressing.md.j2 +0 -0
  942. {networklab-26.2 → networklab-26.3}/netsim/reports/bgp-asn.html.j2 +0 -0
  943. {networklab-26.2 → networklab-26.3}/netsim/reports/bgp-asn.md.j2 +0 -0
  944. {networklab-26.2 → networklab-26.3}/netsim/reports/bgp-neighbor-short.md.j2 +0 -0
  945. {networklab-26.2 → networklab-26.3}/netsim/reports/bgp-neighbor.html.j2 +0 -0
  946. {networklab-26.2 → networklab-26.3}/netsim/reports/bgp-neighbor.md.j2 +0 -0
  947. {networklab-26.2 → networklab-26.3}/netsim/reports/bgp-prefix.include.j2 +0 -0
  948. {networklab-26.2 → networklab-26.3}/netsim/reports/bgp.html.j2 +0 -0
  949. {networklab-26.2 → networklab-26.3}/netsim/reports/bgp.j2 +0 -0
  950. {networklab-26.2 → networklab-26.3}/netsim/reports/isis-nodes.html.j2 +0 -0
  951. {networklab-26.2 → networklab-26.3}/netsim/reports/isis-nodes.j2 +0 -0
  952. {networklab-26.2 → networklab-26.3}/netsim/reports/isis-nodes.md.j2 +0 -0
  953. {networklab-26.2 → networklab-26.3}/netsim/reports/mgmt.html.j2 +0 -0
  954. {networklab-26.2 → networklab-26.3}/netsim/reports/mgmt.j2 +0 -0
  955. {networklab-26.2 → networklab-26.3}/netsim/reports/nodes.j2 +0 -0
  956. {networklab-26.2 → networklab-26.3}/netsim/reports/ospf-areas.html.j2 +0 -0
  957. {networklab-26.2 → networklab-26.3}/netsim/reports/ospf-areas.j2 +0 -0
  958. {networklab-26.2 → networklab-26.3}/netsim/reports/ospf-areas.md.j2 +0 -0
  959. {networklab-26.2 → networklab-26.3}/netsim/reports/ospf-utils.include.j2 +0 -0
  960. {networklab-26.2 → networklab-26.3}/netsim/reports/ospfv3.html.j2 +0 -0
  961. {networklab-26.2 → networklab-26.3}/netsim/reports/ospfv3.j2 +0 -0
  962. {networklab-26.2 → networklab-26.3}/netsim/reports/ospfv3.md.j2 +0 -0
  963. {networklab-26.2 → networklab-26.3}/netsim/reports/page.html.j2 +0 -0
  964. {networklab-26.2 → networklab-26.3}/netsim/reports/ssh_config.j2 +0 -0
  965. {networklab-26.2 → networklab-26.3}/netsim/reports/wiring-columns.include.j2 +0 -0
  966. {networklab-26.2 → networklab-26.3}/netsim/reports/wiring.html.j2 +0 -0
  967. {networklab-26.2 → networklab-26.3}/netsim/reports/wiring.j2 +0 -0
  968. {networklab-26.2 → networklab-26.3}/netsim/reports/wiring.md.j2 +0 -0
  969. {networklab-26.2 → networklab-26.3}/netsim/roles/__init__.py +0 -0
  970. {networklab-26.2 → networklab-26.3}/netsim/roles/bridge.py +0 -0
  971. {networklab-26.2 → networklab-26.3}/netsim/roles/host.py +0 -0
  972. {networklab-26.2 → networklab-26.3}/netsim/roles/router.py +0 -0
  973. {networklab-26.2 → networklab-26.3}/netsim/templates/ansible.cfg.j2 +0 -0
  974. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/clab/clab.j2 +0 -0
  975. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/clab/cumulus/interfaces.j2 +0 -0
  976. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/clab/eos/ceos-config.j2 +0 -0
  977. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/clab/frr/daemons.j2 +0 -0
  978. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/clab/iol/ifstate.j2 +0 -0
  979. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/clab/ioll2/ifstate.j2 +0 -0
  980. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/external/external.j2 +0 -0
  981. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/Vagrantfile.j2 +0 -0
  982. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/_debian_vagrant_password.j2 +0 -0
  983. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/arcos-domain.j2 +0 -0
  984. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/arubacx-domain.j2 +0 -0
  985. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/asav-domain.j2 +0 -0
  986. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/cat8000v-domain.j2 +0 -0
  987. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/csr-domain.j2 +0 -0
  988. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/cumulus-domain.j2 +0 -0
  989. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/cumulus_nvue-domain.j2 +0 -0
  990. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/define-domain.j2 +0 -0
  991. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/dellos10-domain.j2 +0 -0
  992. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/eos-domain.j2 +0 -0
  993. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/fortios-domain.j2 +0 -0
  994. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/forwarded-ports.j2 +0 -0
  995. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/frr-domain.j2 +0 -0
  996. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/iosv-domain.j2 +0 -0
  997. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/iosvl2-domain.j2 +0 -0
  998. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/iosxr-domain.j2 +0 -0
  999. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/libvirt-bridge.j2 +0 -0
  1000. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/libvirt-tunnel.j2 +0 -0
  1001. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/linux-domain.j2 +0 -0
  1002. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/none-domain.j2 +0 -0
  1003. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/nxos-domain.j2 +0 -0
  1004. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/openbsd-domain.j2 +0 -0
  1005. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/routeros-domain.j2 +0 -0
  1006. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/routeros7-domain.j2 +0 -0
  1007. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/sonic-domain.j2 +0 -0
  1008. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/vagrant-libvirt.xml +0 -0
  1009. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/vptx-domain.j2 +0 -0
  1010. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/vsrx-domain.j2 +0 -0
  1011. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/libvirt/vyos-domain.j2 +0 -0
  1012. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/Vagrantfile.j2 +0 -0
  1013. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/arcos-domain.j2 +0 -0
  1014. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/cumulus-domain.j2 +0 -0
  1015. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/eos-domain.j2 +0 -0
  1016. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/frr-domain.j2 +0 -0
  1017. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/linux-domain.j2 +0 -0
  1018. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/nxos-domain.j2 +0 -0
  1019. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/virtualbox-network.j2 +0 -0
  1020. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/virtualbox-ports.j2 +0 -0
  1021. {networklab-26.2 → networklab-26.3}/netsim/templates/provider/virtualbox/vsrx-domain.j2 +0 -0
  1022. {networklab-26.2 → networklab-26.3}/netsim/templates/tests/clab.yml +0 -0
  1023. {networklab-26.2 → networklab-26.3}/netsim/templates/tests/grpc.yml +0 -0
  1024. {networklab-26.2 → networklab-26.3}/netsim/templates/tests/libvirt.yml +0 -0
  1025. {networklab-26.2 → networklab-26.3}/netsim/templates/tests/virtualbox.yml +0 -0
  1026. {networklab-26.2 → networklab-26.3}/netsim/tools/__init__.py +0 -0
  1027. {networklab-26.2 → networklab-26.3}/netsim/tools/edgeshark.yml +0 -0
  1028. {networklab-26.2 → networklab-26.3}/netsim/tools/graphite.py +0 -0
  1029. {networklab-26.2 → networklab-26.3}/netsim/tools/graphite.yml +0 -0
  1030. {networklab-26.2 → networklab-26.3}/netsim/tools/nso.yml +0 -0
  1031. {networklab-26.2 → networklab-26.3}/netsim/tools/nuts/inventory/groups.yaml +0 -0
  1032. {networklab-26.2 → networklab-26.3}/netsim/tools/nuts/inventory/hosts.j2 +0 -0
  1033. {networklab-26.2 → networklab-26.3}/netsim/tools/nuts/nr-config.yaml +0 -0
  1034. {networklab-26.2 → networklab-26.3}/netsim/tools/nuts/tests/test_bgp.j2 +0 -0
  1035. {networklab-26.2 → networklab-26.3}/netsim/tools/nuts/tests/test_interfaces.j2 +0 -0
  1036. {networklab-26.2 → networklab-26.3}/netsim/tools/nuts/tests/test_ospf.j2 +0 -0
  1037. {networklab-26.2 → networklab-26.3}/netsim/tools/nuts.yml +0 -0
  1038. {networklab-26.2 → networklab-26.3}/netsim/tools/suzieq/suzieq-cfg.yml +0 -0
  1039. {networklab-26.2 → networklab-26.3}/netsim/tools/suzieq/suzieq.inventory.j2 +0 -0
  1040. {networklab-26.2 → networklab-26.3}/netsim/tools/suzieq.yml +0 -0
  1041. {networklab-26.2 → networklab-26.3}/netsim/topology-defaults.yml +0 -0
  1042. {networklab-26.2 → networklab-26.3}/netsim/utils/__init__.py +0 -0
  1043. {networklab-26.2 → networklab-26.3}/netsim/utils/callback.py +0 -0
  1044. {networklab-26.2 → networklab-26.3}/netsim/utils/files.py +0 -0
  1045. {networklab-26.2 → networklab-26.3}/netsim/utils/filters.py +0 -0
  1046. {networklab-26.2 → networklab-26.3}/netsim/utils/linuxbridge.py +0 -0
  1047. {networklab-26.2 → networklab-26.3}/netsim/utils/log.py +0 -0
  1048. {networklab-26.2 → networklab-26.3}/netsim/utils/read.py +0 -0
  1049. {networklab-26.2 → networklab-26.3}/netsim/utils/routing.py +0 -0
  1050. {networklab-26.2 → networklab-26.3}/netsim/utils/sort.py +0 -0
  1051. {networklab-26.2 → networklab-26.3}/netsim/utils/stats.py +0 -0
  1052. {networklab-26.2 → networklab-26.3}/netsim/utils/status.py +0 -0
  1053. {networklab-26.2 → networklab-26.3}/netsim/utils/strings.py +0 -0
  1054. {networklab-26.2 → networklab-26.3}/netsim/utils/templates.py +0 -0
  1055. {networklab-26.2 → networklab-26.3}/netsim/utils/versioning.py +0 -0
  1056. {networklab-26.2 → networklab-26.3}/netsim/validate/__init__.py +0 -0
  1057. {networklab-26.2 → networklab-26.3}/netsim/validate/bgp/__init__.py +0 -0
  1058. {networklab-26.2 → networklab-26.3}/netsim/validate/cumulus.py +0 -0
  1059. {networklab-26.2 → networklab-26.3}/netsim/validate/eos.py +0 -0
  1060. {networklab-26.2 → networklab-26.3}/netsim/validate/frr.py +0 -0
  1061. {networklab-26.2 → networklab-26.3}/netsim/validate/isis/__init__.py +0 -0
  1062. {networklab-26.2 → networklab-26.3}/netsim/validate/isis/frr.py +0 -0
  1063. {networklab-26.2 → networklab-26.3}/netsim/validate/linux.py +0 -0
  1064. {networklab-26.2 → networklab-26.3}/netsim/validate/ospf/__init__.py +0 -0
  1065. {networklab-26.2 → networklab-26.3}/netsim/validate/route/__init__.py +0 -0
  1066. {networklab-26.2 → networklab-26.3}/netsim/validate/route/frr.py +0 -0
  1067. {networklab-26.2 → networklab-26.3}/networklab.egg-info/dependency_links.txt +0 -0
  1068. {networklab-26.2 → networklab-26.3}/networklab.egg-info/requires.txt +0 -0
  1069. {networklab-26.2 → networklab-26.3}/networklab.egg-info/top_level.txt +0 -0
  1070. {networklab-26.2 → networklab-26.3}/requirements.txt +0 -0
  1071. {networklab-26.2 → networklab-26.3}/setup.cfg +0 -0
  1072. {networklab-26.2 → networklab-26.3}/setup.py +0 -0
  1073. {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.2
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.02](https://github.com/ipspace/netlab/releases/tag/release_26.02). 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.01.01](https://github.com/ipspace/netlab/releases/tag/release_26.01.01).
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.02](https://github.com/ipspace/netlab/releases/tag/release_26.02). 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.01.01](https://github.com/ipspace/netlab/releases/tag/release_26.01.01).
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).
@@ -2,7 +2,7 @@
2
2
 
3
3
  import sys
4
4
 
5
- __version__ = "26.02"
5
+ __version__ = "26.03"
6
6
 
7
7
  abort = False
8
8
 
@@ -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
- {% if n.type in bgp.community|default({}) %}
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 %}
@@ -57,6 +57,7 @@
57
57
  ebgp-default-reject-policy:
58
58
  import: False
59
59
  export: False
60
+ advertise-inactive: True
60
61
  {% if vrf_bgp.rr|default(False) %}
61
62
  client-reflect: True
62
63
  {% endif %}
@@ -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
- {# EVPN config using mac-vrf & co #}
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
+