diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 6c2125db1..3ba467ec5 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -33,6 +33,7 @@ export default withMermaid({ text: 'Documentation', items: [ { text: 'Overview', link: '/overview' }, + { text: 'Tutorials', link: '/tutorials/' }, { text: 'API References', link: '/api-reference/' }, ], }, @@ -69,6 +70,13 @@ export default withMermaid({ text: 'Overview', items: [{ text: 'Index', link: '/overview/' }], }, + { + text: 'Tutorials', + items: [ + { text: 'Index', link: '/tutorials/' }, + { text: 'EVPN/VXLAN Fabric', link: '/tutorials/evpn-vxlan-fabric' } + ], + }, { text: 'API References', items: [{ text: 'Index', link: '/api-reference/' }], diff --git a/docs/assets/evpn-vxlan-topology-dark.png b/docs/assets/evpn-vxlan-topology-dark.png new file mode 100644 index 000000000..255a7dd3b Binary files /dev/null and b/docs/assets/evpn-vxlan-topology-dark.png differ diff --git a/docs/assets/evpn-vxlan-topology.cast b/docs/assets/evpn-vxlan-topology.cast new file mode 100644 index 000000000..a617e24cb --- /dev/null +++ b/docs/assets/evpn-vxlan-topology.cast @@ -0,0 +1,3827 @@ +{"version":3,"term":{"cols":187,"rows":91,"type":"tmux-256color","version":"tmux 3.6a","theme":{"fg":"#cdd6f4","bg":"#1e1e2e","palette":"#45475a:#f38ba8:#a6e3a1:#f9e2af:#89b4fa:#f5c2e7:#94e2d5:#bac2de:#585b70:#f38ba8:#a6e3a1:#f9e2af:#89b4fa:#f5c2e7:#94e2d5:#a6adc8"}},"timestamp":1772880610,"command":"env ZDOTDIR=${XDG_CONFIG_HOME:-$HOME/.config}/asciinema zsh","env":{"SHELL":"/opt/homebrew/bin/fish"}} +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.779, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.479, "m", ""] +[1.487, "o", "k"] +[0.000, "o", "\bku"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "c"] +[0.000, "o", "l"] +[0.001, "o", "u"] +[0.000, "o", "s"] +[0.000, "o", "t"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "-"] +[0.000, "o", "i"] +[0.000, "o", "n"] +[0.001, "o", "f"] +[0.006, "o", "\u001b[19D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[12Co"] +[1.187, "o", "\r\r\n"] +[0.069, "o", "Kubernetes control plane is running at https://127.0.0.1:61688\r\nCoreDNS is running at https://127.0.0.1:61688/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy\r\n\r\nTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.\r\n"] +[0.001, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.997, "o", "k"] +[0.000, "o", "\bku"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "g"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", " "] +[0.001, "o", "d"] +[0.000, "o", "e"] +[0.000, "o", "p"] +[0.001, "o", "l"] +[0.000, "o", "o"] +[0.001, "o", "y"] +[0.000, "o", "m"] +[0.000, "o", "e"] +[0.001, "o", "n"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "n"] +[0.001, "o", " "] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "w"] +[0.000, "o", "o"] +[0.001, "o", "r"] +[0.000, "o", "k"] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", "p"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "a"] +[0.001, "o", "t"] +[0.001, "o", "o"] +[0.000, "o", "r"] +[0.000, "o", "-"] +[0.001, "o", "s"] +[0.000, "o", "y"] +[0.000, "o", "s"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.002, "o", "\u001b[48D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[41Cm"] +[1.337, "o", "\r\r\n"] +[0.050, "o", "NAME READY UP-TO-DATE AVAILABLE AGE\r\nnetwork-operator-controller-manager 1/1 1 1 4m45s\r\n"] +[0.001, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.603, "m", ""] +[1.454, "o", "y"] +[0.000, "o", "\byq"] +[0.001, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "d"] +[0.000, "o", "e"] +[0.000, "o", "v"] +[0.001, "o", "i"] +[0.000, "o", "c"] +[0.001, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.000, "o", "1"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.001, "o", "m"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "1"] +[0.001, "o", "-"] +[0.000, "o", "d"] +[0.000, "o", "e"] +[0.001, "o", "v"] +[0.000, "o", "i"] +[0.000, "o", "c"] +[0.001, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "s"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.000, "o", "r"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "."] +[0.001, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.002, "o", "\u001b[72D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m1\u001b[4m-\u001b[4md\u001b[4me\u001b[4mv\u001b[4mi\u001b[4mc\u001b[4me\u001b[4ms\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m1\u001b[4m-\u001b[4md\u001b[4me\u001b[4mv\u001b[4mi\u001b[4mc\u001b[4me\u001b[4ms\u001b[4m/\u001b[4ms\u001b[4me\u001b[4mc\u001b[4mr\u001b[4me\u001b[4mt\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[1.153, "o", "\r\r\n"] +[0.009, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Device\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m evpn-leaf\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m endpoint\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m address\u001b[0m:\u001b[32m 192.168.5.2:50011\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36msecretRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m fabric-credentials\u001b[0m\r\n"] +[0.000, "o", "---\r\n\u001b[36mapiVersion\u001b[0m:\u001b[32m v1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Secret\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m fabric-credentials\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m kubernetes.io/basic-auth\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mstringData\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m username\u001b[0m:\u001b[32m admin\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mpassword\u001b[0m:\u001b[32m admin\u001b[0m\r\n"] +[0.001, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.317, "m", ""] +[2.606, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.000, "o", "y"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "d"] +[0.000, "o", "e"] +[0.000, "o", "v"] +[0.001, "o", "i"] +[0.000, "o", "c"] +[0.001, "o", "e"] +[0.001, "o", "\u001b[39D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m1\u001b[4m-\u001b[4md\u001b[4me\u001b[4mv\u001b[4mi\u001b[4mc\u001b[4me\u001b[4ms\u001b[24m"] +[0.835, "o", "\r\r\n"] +[0.097, "o", "secret/fabric-credentials created\r\n"] +[0.005, "o", "device.networking.metal.ironcore.dev/leaf1 created\r\n"] +[0.005, "o", "device.networking.metal.ironcore.dev/leaf2 created\r\n"] +[0.007, "o", "device.networking.metal.ironcore.dev/leaf3 created\r\n"] +[0.005, "o", "device.networking.metal.ironcore.dev/spine1 created\r\n"] +[0.003, "o", "device.networking.metal.ironcore.dev/spine2 created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[3.483, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "d"] +[0.001, "o", "e"] +[0.000, "o", "v"] +[0.001, "o", "i"] +[0.000, "o", "c"] +[0.001, "o", "e"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", " "] +[0.001, "o", "w"] +[0.000, "o", "i"] +[0.000, "o", "d"] +[0.003, "o", "\u001b[25D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[18Ce"] +[1.457, "o", "\r\r\n"] +[0.047, "o", "NAME ENDPOINT MANUFACTURER MODEL SERIALNUMBER FIRMWAREVERSION PORTS PHASE READY AGE\r\nleaf1 192.168.5.2:50011"] +[0.000, "o", " Cisco N9K-C9300v 9D9X10CJ4NB 10.4(6) 0/64 (10g) Running True 5s\r\nleaf2 "] +[0.000, "o", "192.168.5.2:50012 "] +[0.000, "o", "Cisco N9K-C9300v 95Y2QS3MWJI "] +[0.000, "o", "10.4(6) "] +[0.000, "o", "0/64 (10g) Running True 5s\r\nleaf3"] +[0.000, "o", " 192.168.5.2:50013 Cisco N9K-C9300v 9NIPG1KUN7D 10.4(6) 0/64 (10g)"] +[0.000, "o", " Running"] +[0.000, "o", " True 5s"] +[0.000, "o", "\r\nspine1 192.168.5.2:50001 Cisco "] +[0.000, "o", " N9K-C9300v "] +[0.000, "o", "94M7ETP4RRI 10.4(6)"] +[0.000, "o", " "] +[0.000, "o", "0/64 (10g)"] +[0.000, "o", " Running "] +[0.000, "o", "True 5s\r\nspine2 192.168.5.2:50002 "] +[0.000, "o", "Cisco "] +[0.000, "o", "N9K-C9300v"] +[0.000, "o", " 97UMBFX3T63 10.4(6)"] +[0.000, "o", " "] +[0.000, "o", "0/64 (10g) "] +[0.000, "o", "Running"] +[0.000, "o", " "] +[0.000, "o", "True 5s\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.574, "m", ""] +[0.554, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.958, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "0"] +[0.000, "o", "2"] +[0.000, "o", "-"] +[0.000, "o", "l"] +[0.001, "o", "o"] +[0.000, "o", "o"] +[0.000, "o", "p"] +[0.000, "o", "b"] +[0.001, "o", "a"] +[0.000, "o", "c"] +[0.000, "o", "k"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "s"] +[0.000, "o", "p"] +[0.000, "o", "i"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "1"] +[0.001, "o", "-"] +[0.000, "o", "l"] +[0.000, "o", "o"] +[0.000, "o", "0"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.001, "o", "m"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "2"] +[0.000, "o", "-"] +[0.001, "o", "l"] +[0.000, "o", "o"] +[0.000, "o", "o"] +[0.000, "o", "p"] +[0.001, "o", "b"] +[0.000, "o", "a"] +[0.000, "o", "c"] +[0.000, "o", "k"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "s"] +[0.000, "o", "p"] +[0.001, "o", "i"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "1"] +[0.001, "o", "-"] +[0.000, "o", "l"] +[0.000, "o", "o"] +[0.001, "o", "1"] +[0.000, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.001, "o", "m"] +[0.005, "o", "\u001b[85D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m2\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4mo\u001b[4mp\u001b[4mb\u001b[4ma\u001b[4mc\u001b[4mk\u001b[4ms\u001b[4m/\u001b[4ms\u001b[4mp\u001b[4mi\u001b[4mn\u001b[4me\u001b[4m1\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4m0\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m2\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4mo\u001b[4mp\u001b[4mb\u001b[4ma\u001b[4mc\u001b[4mk\u001b[4ms\u001b[4m/\u001b[4ms\u001b[4mp\u001b[4mi\u001b[4mn\u001b[4me\u001b[4m1\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4m1\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.732, "o", "\r\r\n"] +[0.006, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m spine1-lo0\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m spine1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m lo0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m Router-ID Spine1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Loopback\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mipv4\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m addresses\u001b[0m:\r\n -\u001b[32m 10.0.0.1/32\u001b[0m\r\n"] +[0.000, "o", "---\r\n\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m spine1-lo1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m spine1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m lo1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m Anycast RP\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Loopback\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mipv4\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m addresses\u001b[0m:\r\n -\u001b[32m 10.0.0.100/32\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.832, "m", ""] +[0.923, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.203, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "2"] +[0.001, "o", "-"] +[0.000, "o", "l"] +[0.000, "o", "o"] +[0.001, "o", "o"] +[0.000, "o", "p"] +[0.000, "o", "b"] +[0.001, "o", "a"] +[0.000, "o", "c"] +[0.001, "o", "k"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.000, "o", "1"] +[0.001, "o", "-"] +[0.000, "o", "l"] +[0.000, "o", "o"] +[0.001, "o", "0"] +[0.000, "o", "."] +[0.001, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "0"] +[0.000, "o", "2"] +[0.000, "o", "-"] +[0.000, "o", "l"] +[0.001, "o", "o"] +[0.000, "o", "o"] +[0.000, "o", "p"] +[0.001, "o", "b"] +[0.000, "o", "a"] +[0.000, "o", "c"] +[0.001, "o", "k"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.001, "o", "a"] +[0.000, "o", "f"] +[0.000, "o", "1"] +[0.001, "o", "-"] +[0.000, "o", "l"] +[0.000, "o", "o"] +[0.001, "o", "1"] +[0.000, "o", "."] +[0.000, "o", "y"] +[0.001, "o", "a"] +[0.000, "o", "m"] +[0.002, "o", "\u001b[83D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m2\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4mo\u001b[4mp\u001b[4mb\u001b[4ma\u001b[4mc\u001b[4mk\u001b[4ms\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4m0\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m2\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4mo\u001b[4mp\u001b[4mb\u001b[4ma\u001b[4mc\u001b[4mk\u001b[4ms\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4m1\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.869, "o", "\r\r\n"] +[0.009, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo0\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m lo0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m Router-ID Leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Loopback\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mipv4\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m addresses\u001b[0m:\r\n -\u001b[32m 10.0.0.10/32\u001b[0m\r\n"] +[0.000, "o", "---\r\n\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m lo1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m VTEP Leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Loopback\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mipv4\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m addresses\u001b[0m:\r\n -\u001b[32m 10.0.1.10/32\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[32m 10.1.0.10/32\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.044, "m", ""] +[1.673, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.447, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.000, "o", "y"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "2"] +[0.001, "o", "-"] +[0.000, "o", "l"] +[0.000, "o", "o"] +[0.001, "o", "o"] +[0.000, "o", "p"] +[0.000, "o", "b"] +[0.001, "o", "a"] +[0.000, "o", "c"] +[0.000, "o", "k"] +[0.002, "o", "\u001b[41D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m2\u001b[4m-\u001b[4ml\u001b[4mo\u001b[4mo\u001b[4mp\u001b[4mb\u001b[4ma\u001b[4mc\u001b[4mk\u001b[4ms\u001b[24m"] +[0.904, "o", "\r\r\n"] +[0.073, "o", "interface.networking.metal.ironcore.dev/leaf1-lo0 created\r\n"] +[0.005, "o", "interface.networking.metal.ironcore.dev/leaf1-lo1 created\r\n"] +[0.006, "o", "interface.networking.metal.ironcore.dev/leaf2-lo0 created\r\n"] +[0.007, "o", "interface.networking.metal.ironcore.dev/leaf2-lo1 created\r\n"] +[0.007, "o", "interface.networking.metal.ironcore.dev/leaf3-lo0 created\r\n"] +[0.006, "o", "interface.networking.metal.ironcore.dev/leaf3-lo1 created\r\n"] +[0.006, "o", "interface.networking.metal.ironcore.dev/spine1-lo0 created\r\n"] +[0.005, "o", "interface.networking.metal.ironcore.dev/spine1-lo1 created\r\n"] +[0.010, "o", "interface.networking.metal.ironcore.dev/spine2-lo0 created\r\n"] +[0.006, "o", "interface.networking.metal.ironcore.dev/spine2-lo1 created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.854, "o", "w"] +[0.001, "o", "\bwa"] +[0.000, "o", "t"] +[0.000, "o", "c"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.000, "o", "g"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "i"] +[0.000, "o", "n"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "f"] +[0.000, "o", "a"] +[0.001, "o", "c"] +[0.000, "o", "e"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.001, "o", "i"] +[0.000, "o", "d"] +[0.002, "o", "\u001b[34D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[29Ce"] +[1.664, "o", "\r\r\n"] +[0.005, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.053, "o", "\u001b[H\u001b[JNAME\u001b[1;14HINTERFACE TYPE\u001b[37GADMIN STATE DESCRIPTION\u001b[1;70HMTU DEVICE READY CONFIGURED OPERATIONAL AGE\r\u001b[2dleaf1-lo0 lo0\u001b[2;26HLoopback Up\u001b[2;51H"] +[0.000, "o", "Router-ID Leaf1\u001b[2;76Hleaf1 True True\u001b[2;106HTrue\u001b[2;120H3s\r\u001b[3dleaf1-lo1 lo1\u001b[3;26H"] +[0.000, "o", "Loopback Up\u001b[3;51H"] +[0.000, "o", "VTEP Leaf1\u001b[3;76Hleaf1\u001b[3;120H3s\r\u001b[4d"] +[0.000, "o", "leaf2-lo0 lo0\u001b[4;26H"] +[0.000, "o", "Loopback Up\u001b[4;51H"] +[0.000, "o", "Router-ID Leaf2\u001b[4;76H"] +[0.000, "o", "leaf2\u001b[4;120H"] +[0.000, "o", "3s\r\u001b[5d"] +[0.000, "o", "leaf2-lo1 lo1\u001b[5;26HLoopback Up\u001b[5;51H"] +[0.000, "o", "VTEP Leaf2\u001b[5;76Hleaf2 True True\u001b[5;106HTrue\u001b[5;120H"] +[0.000, "o", "3s\r\u001b[6d"] +[0.000, "o", "leaf3-lo0 lo0\u001b[6;26H"] +[0.000, "o", "Loopback Up\u001b[6;51H"] +[0.000, "o", "Router-ID Leaf3\u001b[6;76H"] +[0.000, "o", "leaf3 True True\u001b[6;106H"] +[0.000, "o", "True\u001b[6;120H"] +[0.000, "o", "3s\r\u001b[7d"] +[0.000, "o", "leaf3-lo1 lo1\u001b[7;26HLoopback Up\u001b[7;51HVTEP Leaf3\u001b[7;76Hleaf3\u001b[7;120H3s\r\u001b[8dspine1-lo0 lo0\u001b[8;26HLoopback Up\u001b[8;51HRouter-ID Spine1\u001b[8;76Hspine1 True True\u001b[8;106HTrue\u001b[8;120H"] +[0.000, "o", "3s\r\u001b[9dspine1-lo1 lo1\u001b[9;26HLoopback Up\u001b[9;51HAnycast RP\u001b[9;76Hspine1 True True\u001b[9;106HTrue\u001b[9;120H3s\r\u001b[10dspine2-lo0 lo0\u001b[10;26HLoopback Up\u001b[10;51HRouter-ID Spine2\u001b[10;76Hspine2\u001b[10;120H3s\r\u001b[11dspine2-lo1 lo1\u001b[11;26HLoopback Up\u001b[11;51HAnycast RP\u001b[11;76Hspine2 True True\u001b[11;106HTrue\u001b[11;120H"] +[0.000, "o", "3s\r\u001b[12d"] +[1.055, "o", "\u001b[2;120H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b"] +[0.000, "o", "4\u001b[6d\b4\u001b[7d\b4\u001b[8d\b"] +[0.000, "o", "4\u001b[9d\b"] +[0.000, "o", "4\u001b[10d\b"] +[0.000, "o", "4\u001b[11d\b4\r\u001b[12d"] +[1.058, "o", "\u001b[1;90H CONFIGURED OPERATIONAL AGE\u001b[2;93H True\u001b[106G True\u001b[2;120H 5s\u001b[3;85HUnknown Unknown\u001b[108GUnknown 5s\u001b[4;85H"] +[0.000, "o", "Unknown Unknown\u001b[108GUnknown 5s\u001b[5;93H True\u001b[106G True\u001b[5;120H 5s\u001b[6;93H"] +[0.000, "o", " True\u001b[106G"] +[0.000, "o", " True\u001b[6;120H 5s\u001b[7;85HUnknown Unknown\u001b[108G"] +[0.000, "o", "Unknown "] +[0.000, "o", " 5s\u001b[8;93H True\u001b[106G True\u001b[8;120H 5s\u001b[9;93H True\u001b[106G True\u001b[9;120H 5s\u001b[10;85HUnknown Unknown\u001b[108G"] +[0.000, "o", "Unknown 5s\u001b[11;93H"] +[0.000, "o", " True\u001b[106G"] +[0.000, "o", " True\u001b[11;120H"] +[0.000, "o", " "] +[0.000, "o", " 5s\r\u001b[12d"] +[1.053, "o", "\u001b[1;90H\u001b[2P\u001b[2;93HTrue \u001b[106GTrue \u001b[2;120H6s\u001b[K\u001b[3;85HTrue True True 6s\u001b[K\u001b[4;85HTrue True True 6"] +[0.000, "o", "s\u001b[K\u001b[5;93HTrue \u001b[106GTrue \u001b[5;120H6s\u001b[K\u001b[6;93H"] +[0.000, "o", "True \u001b[106GTrue \u001b[6;120H6s\u001b[K\u001b[7;85HTrue True True 6s\u001b[K\u001b[8;93HTrue \u001b[106GTrue \u001b[8;120H6s\u001b[K\u001b[9;93HTrue \u001b[106GTrue \u001b[9;120H6s\u001b[K\u001b[10;85HTrue True True 6s\u001b[K\u001b[11;93H"] +[0.000, "o", "True \u001b[106GTrue \u001b[11;120H6"] +[0.000, "o", "s\u001b[K\r\u001b[12d"] +[1.053, "o", "\u001b[2;120H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b"] +[0.000, "o", "7\u001b[6d\b7\u001b[7d\b7\u001b[8d\b"] +[0.000, "o", "7\u001b[9d\b"] +[0.000, "o", "7\u001b[10d\b7\u001b[11d\b7\r\u001b[12d"] +[1.052, "o", "\u001b[2;120H8\u001b[3d\b8\u001b[4d\b8\u001b[5d\b8\u001b[6d\b"] +[0.000, "o", "8\u001b[7d\b8\u001b[8d\b8\u001b[9d\b"] +[0.000, "o", "8\u001b[10d\b8\u001b[11d\b8\r\u001b[12d"] +[1.056, "o", "\u001b[2;120H10s\u001b[3;120H10s\u001b[4;120H10s\u001b[5;120H"] +[0.000, "o", "10s\u001b[6;120H10s\u001b[7;120H1"] +[0.000, "o", "0s\u001b[8;120H1"] +[0.000, "o", "0s\u001b[9;120H"] +[0.000, "o", "1"] +[0.000, "o", "0s\u001b[10;120H10s\u001b[11;120H1"] +[0.000, "o", "0s\r\u001b[12d"] +[1.052, "o", "\u001b[2;121H1\u001b[3d\b1\u001b[4d\b1\u001b[5d\b1\u001b[6d\b"] +[0.000, "o", "1\u001b[7d\b1\u001b[8d\b"] +[0.000, "o", "1\u001b[9d\b1\u001b[10d\b1\u001b[11d\b"] +[0.000, "o", "1\r\u001b[12d"] +[1.051, "o", "\u001b[2;121H2\u001b[3d\b2\u001b[4d\b2\u001b[5d\b2\u001b[6d\b"] +[0.000, "o", "2\u001b[7d\b2\u001b[8d\b2\u001b[9d\b"] +[0.000, "o", "2\u001b[10d\b2\u001b[11d\b"] +[0.000, "o", "2\r\u001b[12d"] +[0.543, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.574, "m", ""] +[0.948, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.945, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "0"] +[0.000, "o", "3"] +[0.000, "o", "-"] +[0.001, "o", "v"] +[0.000, "o", "p"] +[0.000, "o", "c"] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", "e"] +[0.000, "o", "e"] +[0.001, "o", "p"] +[0.000, "o", "a"] +[0.000, "o", "l"] +[0.001, "o", "i"] +[0.000, "o", "v"] +[0.000, "o", "e"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.001, "o", "p"] +[0.000, "o", "c"] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", "e"] +[0.000, "o", "e"] +[0.001, "o", "p"] +[0.000, "o", "a"] +[0.000, "o", "l"] +[0.000, "o", "i"] +[0.001, "o", "v"] +[0.000, "o", "e"] +[0.000, "o", "."] +[0.000, "o", "y"] +[0.001, "o", "a"] +[0.000, "o", "m"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "3"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.000, "o", "p"] +[0.001, "o", "c"] +[0.000, "o", "-"] +[0.000, "o", "k"] +[0.001, "o", "e"] +[0.000, "o", "e"] +[0.000, "o", "p"] +[0.000, "o", "a"] +[0.001, "o", "l"] +[0.000, "o", "i"] +[0.000, "o", "v"] +[0.000, "o", "e"] +[0.001, "o", "/"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "h"] +[0.000, "o", "1"] +[0.001, "o", "-"] +[0.000, "o", "3"] +[0.000, "o", "0"] +[0.000, "o", "."] +[0.001, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.006, "o", "\u001b[105D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m3\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4mk\u001b[4me\u001b[4me\u001b[4mp\u001b[4ma\u001b[4ml\u001b[4mi\u001b[4mv\u001b[4me\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4mk\u001b[4me\u001b[4me\u001b[4mp\u001b[4ma\u001b[4ml\u001b[4mi\u001b[4mv\u001b[4me\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m3\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4mk\u001b[4me\u001b[4me\u001b[4mp\u001b[4ma\u001b[4ml\u001b[4mi\u001b[4mv\u001b[4me\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4me\u001b[4mt\u001b[4mh\u001b[4m1\u001b[4m-\u001b[4m3\u001b[4m0\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.794, "o", "\r\r\n"] +[0.008, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m VRF\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m vpc-keepalive\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1-vpc-keepalive\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m VPC_KEEPALIVE\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m VRF for vPC Keepalive\u001b[0m\r\n"] +[0.001, "o", "---\r\n\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m vpc-keepalive\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1-eth1-30\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m eth1/30\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m vPC Keepalive\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Physical\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mvrfRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-vpc-keepalive\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mipv4\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m addresses\u001b[0m:\r\n -\u001b[32m 10.1.1.1/30\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.495, "m", ""] +[1.692, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.000, "o", "y"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "k"] +[0.001, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "3"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.001, "o", "p"] +[0.000, "o", "c"] +[0.000, "o", "-"] +[0.000, "o", "k"] +[0.001, "o", "e"] +[0.000, "o", "e"] +[0.000, "o", "p"] +[0.001, "o", "a"] +[0.000, "o", "l"] +[0.000, "o", "i"] +[0.001, "o", "v"] +[0.001, "o", "\u001b[45D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m3\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4mk\u001b[4me\u001b[4me\u001b[4mp\u001b[4ma\u001b[4ml\u001b[4mi\u001b[4mv\u001b[4me\u001b[24m"] +[1.241, "o", "\r\r\n"] +[0.090, "o", "interface.networking.metal.ironcore.dev/leaf1-eth1-30 created\r\n"] +[0.006, "o", "interface.networking.metal.ironcore.dev/leaf2-eth1-30 created\r\n"] +[0.009, "o", "vrf.networking.metal.ironcore.dev/leaf1-vpc-keepalive created\r\n"] +[0.007, "o", "vrf.networking.metal.ironcore.dev/leaf2-vpc-keepalive created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.162, "o", "w"] +[0.001, "o", "\bwa"] +[0.000, "o", "t"] +[0.000, "o", "c"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "v"] +[0.001, "o", "r"] +[0.000, "o", "f"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.001, "o", "i"] +[0.000, "o", "d"] +[0.003, "o", "\u001b[28D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[23Ce"] +[2.747, "o", "\r\r\n"] +[0.005, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.054, "o", "\u001b[H\u001b[JNAME\u001b[1;23HVRF\u001b[1;39HDEVICE READY AGE\r\u001b[2dleaf1-vpc-keepalive VPC_KEEPALIVE leaf1\u001b[2;56H5s\r\u001b[3dleaf2-vpc-keepalive VPC_KEEPALIVE leaf2\u001b[3;56H"] +[0.000, "o", "5s\r\u001b[4d"] +[1.051, "o", "\u001b[2;48HTrue 6\u001b[3;48HTrue 6\r\u001b[4d"] +[1.053, "o", "\u001b[2;56H7\u001b[3d\b7\r\u001b[4d"] +[1.057, "o", "\u001b[2;56H8\u001b[3d\b8\r\u001b[4d"] +[1.056, "o", "\u001b[2;56H9\u001b[3d\b9\r\u001b[4d"] +[1.052, "o", "\u001b[2;56H10s\u001b[3;56H10s\r\u001b[4d"] +[0.083, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.001, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.311, "o", "w"] +[0.000, "o", "\bwa"] +[0.001, "o", "t"] +[0.000, "o", "c"] +[0.000, "o", "h"] +[0.001, "o", " "] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "g"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", " "] +[0.000, "o", "i"] +[0.000, "o", "n"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "f"] +[0.000, "o", "a"] +[0.000, "o", "c"] +[0.000, "o", "e"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "w"] +[0.000, "o", "o"] +[0.000, "o", "r"] +[0.001, "o", "k"] +[0.000, "o", "i"] +[0.000, "o", "n"] +[0.001, "o", "g"] +[0.000, "o", "."] +[0.000, "o", "m"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "a"] +[0.001, "o", "l"] +[0.000, "o", "."] +[0.000, "o", "i"] +[0.000, "o", "r"] +[0.001, "o", "o"] +[0.000, "o", "n"] +[0.000, "o", "c"] +[0.001, "o", "o"] +[0.000, "o", "r"] +[0.000, "o", "e"] +[0.001, "o", "."] +[0.000, "o", "d"] +[0.000, "o", "e"] +[0.001, "o", "v"] +[0.000, "o", "/"] +[0.000, "o", "r"] +[0.000, "o", "o"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "="] +[0.001, "o", "v"] +[0.000, "o", "p"] +[0.000, "o", "c"] +[0.001, "o", "-"] +[0.000, "o", "k"] +[0.000, "o", "e"] +[0.000, "o", "e"] +[0.001, "o", "p"] +[0.000, "o", "a"] +[0.000, "o", "l"] +[0.000, "o", "i"] +[0.001, "o", "v"] +[0.000, "o", "e"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "o"] +[0.001, "o", " "] +[0.000, "o", "w"] +[0.000, "o", "i"] +[0.001, "o", "d"] +[0.001, "o", "\u001b[86D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[81Ce"] +[1.695, "m", ""] +[1.281, "o", "\r\r\n"] +[0.004, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.053, "o", "\u001b[H\u001b[JNAME\u001b[1;17HINTERFACE TYPE\u001b[40GADMIN STATE DESCRIPTION MTU DEVICE READY CONFIGURED OPERATIONAL AGE\r\u001b[2dleaf1-eth1-30 eth1/30 Physical Up\u001b[2;54H"] +[0.000, "o", "vPC Keepalive\u001b[2;76Hleaf1 True True\u001b[2;106HTrue\u001b[2;120H16s\r\u001b[3dleaf2-eth1-30 eth1/30 Physical Up\u001b[3;54HvPC Keepalive\u001b[3;76Hleaf2 True True\u001b[3;106HTrue\u001b[3;120H"] +[0.000, "o", "16s\r\u001b[4d"] +[1.048, "o", "\u001b[2;121H7\u001b[3d\b7\r\u001b[4d"] +[1.050, "o", "\u001b[2;121H8\u001b[3d\b8\r\u001b[4d"] +[1.052, "o", "\u001b[2;121H9\u001b[3d\b9\r\u001b[4d"] +[1.053, "o", "\u001b[2;120H20\u001b[3d\b\b20\r\u001b[4d"] +[1.055, "o", "\u001b[2;121H1\u001b[3d\b1\r\u001b[4d"] +[1.051, "o", "\u001b[2;121H2\u001b[3d\b2\r\u001b[4d"] +[1.056, "o", "\u001b[2;121H3\u001b[3d\b3\r\u001b[4d"] +[0.986, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.225, "r", "187x45"] +[0.000, "r", "187x91"] +[1.300, "m", ""] +[1.072, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.552, "o", "s"] +[0.000, "o", "\bss"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.001, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "\u001b[8D\u001b[32ms\u001b[32ms\u001b[32mh\u001b[39m\u001b[5C1"] +[1.189, "o", "\r\r\n"] +[1.372, "o", "** WARNING: connection is not using a post-quantum key exchange algorithm.\r\r\n** This session may be vulnerable to \"store now, decrypt later\" attacks.\r\r\n** The server may need to be upgraded. See https://openssh.com/pq.html\r\r\n"] +[0.111, "o", "User Access Verification\r\n"] +[0.417, "o", "\r\n"] +[0.267, "o", "Bad terminal type: \"tmux-256color\". Will assume vt100.\r\n"] +[0.042, "o", "Cisco NX-OS Software\r\nCopyright (c) 2002-2025, Cisco Systems, Inc. All rights reserved.\r\nNexus 9000v software (\"Nexus 9000v Software\") and related documentation,\r\nfiles or other reference materials (\"Documentation\") are\r\nthe proprietary property and confidential information of Cisco\r\nSystems, Inc. (\"Cisco\") and are protected, without limitation,\r\npursuant to United States and International copyright and trademark\r\nlaws in the applicable jurisdiction which provide civil and criminal\r\npenalties for copying or distribution without Cisco's authorization.\r\n\r\nAny use or disclosure, in whole or in part, of the Nexus 9000v Software\r\nor Documentation to any third party for any purposes is expressly\r\nprohibited except as otherwise authorized by Cisco in writing.\r\nThe copyrights to certain works contained herein are owned by other\r\nthird parties and are used and distributed under license. Some parts\r\nof this software may be covered under the GNU Public License or the\r\nGNU Lesser General Public License. A copy of each su"] +[0.000, "o", "ch license is\r\navailable at\r\nhttp://www.gnu.org/licenses/gpl.html and\r\nhttp://www.gnu.org/licenses/lgpl.html\r\n***************************************************************************\r\n* Nexus 9000v is strictly limited to use for evaluation, demonstration *\r\n* and NX-OS education. Any use or disclosure, in whole or in part of *\r\n* the Nexus 9000v Software or Documentation to any third party for any *\r\n* purposes is expressly prohibited except as otherwise authorized by *\r\n* Cisco in writing. *\r\n***************************************************************************\r\n\rleaf1# "] +[1.640, "o", "ping 10.1.1.2 vrf VPC_KEEPALIVE source 10.1.1.1"] +[1.138, "o", "\r\r\n"] +[0.201, "o", "PING 10.1.1.2 (10.1.1.2) from 10.1.1.1: 56 data bytes\r\n"] +[0.044, "o", "64 bytes from 10.1.1.2: icmp_seq=0 ttl=254 time=8.365 ms\r\n64 bytes from 10.1.1.2: icmp_seq=1 ttl=254 time=5.239 ms\r\n64 bytes from 10.1.1.2: icmp_seq=2 ttl=254 time=5.613 ms\r\n64 bytes from 10.1.1.2: icmp_seq=3 ttl=254 time=5.489 ms\r\n64 bytes from 10.1.1.2: icmp_seq=4 ttl=254 time=4.823 ms\r\n\r\n--- 10.1.1.2 ping statistics ---\r\n5 packets transmitted, 5 packets received, 0.00% packet loss\r\nround-trip min/avg/max = 4.823/5.905/8.365 ms\r\n"] +[0.041, "o", "\rleaf1# "] +[1.548, "m", ""] +[1.202, "o", "e"] +[0.194, "o", "x"] +[0.172, "o", "i"] +[0.134, "o", "t"] +[1.269, "o", "\r\r\n"] +[0.063, "o", "Connection to clab-evpn-vxlan-fabric-leaf1 closed.\r\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.783, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.637, "o", "y"] +[0.000, "o", "\byq"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "0"] +[0.000, "o", "4"] +[0.000, "o", "-"] +[0.001, "o", "v"] +[0.000, "o", "p"] +[0.000, "o", "c"] +[0.001, "o", "-"] +[0.000, "o", "p"] +[0.000, "o", "e"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "l"] +[0.000, "o", "i"] +[0.001, "o", "n"] +[0.000, "o", "k"] +[0.001, "o", "/"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.001, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "h"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "3"] +[0.000, "o", "1"] +[0.000, "o", "."] +[0.000, "o", "y"] +[0.001, "o", "a"] +[0.000, "o", "m"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "4"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.000, "o", "p"] +[0.001, "o", "c"] +[0.000, "o", "-"] +[0.000, "o", "p"] +[0.001, "o", "e"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "l"] +[0.001, "o", "i"] +[0.000, "o", "n"] +[0.000, "o", "k"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "h"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "3"] +[0.001, "o", "2"] +[0.000, "o", "."] +[0.000, "o", "y"] +[0.001, "o", "a"] +[0.000, "o", "m"] +[0.005, "o", "\u001b[97D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m4\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4mp\u001b[4me\u001b[4me\u001b[4mr\u001b[4ml\u001b[4mi\u001b[4mn\u001b[4mk\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4me\u001b[4mt\u001b[4mh\u001b[4m1\u001b[4m-\u001b[4m3\u001b[4m1\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m4\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4mp\u001b[4me\u001b[4me\u001b[4mr\u001b[4ml\u001b[4mi\u001b[4mn\u001b[4mk\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4me\u001b[4mt\u001b[4mh\u001b[4m1\u001b[4m-\u001b[4m3\u001b[4m2\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[1.544, "o", "\r\r\n"] +[0.015, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m vpc-peer-link\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1-eth1-31\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mproviderConfigRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m apiVersion\u001b[0m:\u001b[32m nx.cisco.networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m InterfaceConfig\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m spanning-tree-network\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m eth1/31\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m vPC Peer-Link\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Physical\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mswitchport\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m mode\u001b[0m:\u001b[32m Trunk\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mnativeVlan\u001b[0m:\u001b[95m 1\u001b[0m\r\n"] +[0.005, "o", "---\r\n\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m vpc-peer-link\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1-eth1-32\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mproviderConfigRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m apiVersion\u001b[0m:\u001b[32m nx.cisco.networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m InterfaceConfig\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m spanning-tree-network\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m eth1/32\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m vPC Peer-Link\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Physical\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mswitchport\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m mode\u001b[0m:\u001b[32m Trunk\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mnativeVlan\u001b[0m:\u001b[95m 1\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.152, "m", ""] +[2.095, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.465, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "4"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.001, "o", "p"] +[0.000, "o", "c"] +[0.000, "o", "-"] +[0.001, "o", "p"] +[0.000, "o", "e"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "l"] +[0.000, "o", "i"] +[0.001, "o", "n"] +[0.000, "o", "k"] +[0.001, "o", "/"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.001, "o", "a"] +[0.000, "o", "f"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "p"] +[0.000, "o", "o"] +[0.000, "o", "1"] +[0.000, "o", "."] +[0.001, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.001, "o", "\u001b[45D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m4\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4mp\u001b[4me\u001b[4me\u001b[4mr\u001b[4ml\u001b[4mi\u001b[4mn\u001b[4mk\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mp\u001b[4mo\u001b[4m1\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[1.046, "o", "\r\r\n"] +[0.009, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m vpc-peer-link\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1-po1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mproviderConfigRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m apiVersion\u001b[0m:\u001b[32m nx.cisco.networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m InterfaceConfig\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m spanning-tree-network\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m po1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m vPC Peer-Link\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Aggregate\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mswitchport\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m mode\u001b[0m:\u001b[32m Trunk\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mnativeVlan\u001b[0m:\u001b[95m 1\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36maggregation\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m controlProtocol"] +[0.000, "o", "\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m mode\u001b[0m:\u001b[32m Active\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmemberInterfaceRefs\u001b[0m:\r\n -\u001b[36m name\u001b[0m:\u001b[32m leaf1-eth1-31\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m leaf1-eth1-32\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.693, "m", ""] +[2.787, "o", "k"] +[0.000, "o", "\bku"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "a"] +[0.000, "o", "p"] +[0.000, "o", "p"] +[0.001, "o", "l"] +[0.000, "o", "y"] +[0.000, "o", " "] +[0.001, "o", "-"] +[0.000, "o", "k"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "4"] +[0.000, "o", "-"] +[0.001, "o", "v"] +[0.000, "o", "p"] +[0.000, "o", "c"] +[0.001, "o", "-"] +[0.000, "o", "p"] +[0.000, "o", "e"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "l"] +[0.000, "o", "i"] +[0.001, "o", "n"] +[0.002, "o", "\u001b[44D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m4\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4mp\u001b[4me\u001b[4me\u001b[4mr\u001b[4ml\u001b[4mi\u001b[4mn\u001b[4mk\u001b[24m"] +[1.069, "o", "\r\r\n"] +[0.079, "o", "interface.networking.metal.ironcore.dev/leaf1-eth1-31 created\r\n"] +[0.005, "o", "interface.networking.metal.ironcore.dev/leaf1-eth1-32 created\r\n"] +[0.005, "o", "interface.networking.metal.ironcore.dev/leaf1-po1 created\r\n"] +[0.005, "o", "interface.networking.metal.ironcore.dev/leaf2-eth1-31 created\r\n"] +[0.005, "o", "interface.networking.metal.ironcore.dev/leaf2-eth1-32 created\r\n"] +[0.006, "o", "interface.networking.metal.ironcore.dev/leaf2-po1 created\r\n"] +[0.006, "o", "interfaceconfig.nx.cisco.networking.metal.ironcore.dev/spanning-tree-network created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.451, "o", "w"] +[0.000, "o", "\bwa"] +[0.000, "o", "t"] +[0.001, "o", "c"] +[0.000, "o", "h"] +[0.000, "o", " "] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "i"] +[0.000, "o", "n"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "f"] +[0.000, "o", "a"] +[0.000, "o", "c"] +[0.001, "o", "e"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "w"] +[0.000, "o", "o"] +[0.000, "o", "r"] +[0.001, "o", "k"] +[0.000, "o", "i"] +[0.000, "o", "n"] +[0.001, "o", "g"] +[0.000, "o", "."] +[0.000, "o", "m"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "a"] +[0.001, "o", "l"] +[0.000, "o", "."] +[0.000, "o", "i"] +[0.001, "o", "r"] +[0.000, "o", "o"] +[0.000, "o", "n"] +[0.001, "o", "c"] +[0.000, "o", "o"] +[0.000, "o", "r"] +[0.001, "o", "e"] +[0.000, "o", "."] +[0.000, "o", "d"] +[0.001, "o", "e"] +[0.000, "o", "v"] +[0.000, "o", "/"] +[0.000, "o", "r"] +[0.001, "o", "o"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.001, "o", "="] +[0.000, "o", "v"] +[0.000, "o", "p"] +[0.000, "o", "c"] +[0.001, "o", "-"] +[0.000, "o", "p"] +[0.000, "o", "e"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "-"] +[0.000, "o", "l"] +[0.001, "o", "i"] +[0.000, "o", "n"] +[0.000, "o", "k"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "o"] +[0.000, "o", " "] +[0.001, "o", "w"] +[0.000, "o", "i"] +[0.000, "o", "d"] +[0.003, "o", "\u001b[86D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[81Ce"] +[1.923, "m", ""] +[2.061, "o", "\r\r\n"] +[0.004, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.056, "o", "\u001b[H\u001b[JNAME\u001b[1;17HINTERFACE TYPE\u001b[1;41HADMIN STATE DESCRIPTION MTU DEVICE READY CONFIGURED OPERATIONAL AGE\r\u001b[2dleaf1-eth1-31 eth1/31 Physical Up\u001b[2;55HvPC Peer-Link\u001b[2;77Hleaf1 Unknown Unknown\u001b[109G"] +[0.000, "o", "Unknown\u001b[123G7s\r\u001b[3dleaf1-eth1-32 eth1/32 Physical Up\u001b[3;55HvPC Peer-Link\u001b[3;77Hleaf1 True\u001b[96GTrue\u001b[3;109HTrue\u001b[3;123H"] +[0.000, "o", "7s\r\u001b[4d"] +[0.000, "o", "leaf1-po1\u001b[17G"] +[0.000, "o", "po1\u001b[4;29H"] +[0.000, "o", "Aggregate Up\u001b[4;55H"] +[0.000, "o", "vPC Peer-Link\u001b[4;77Hleaf1\u001b[4;123H7s\r\u001b[5dleaf2-eth1-31 eth1/31 Physical Up\u001b[5;55HvPC Peer-Link\u001b[5;77Hleaf2 True\u001b[96GTrue\u001b[5;109HTrue\u001b[5;123H"] +[0.000, "o", "7s\r\u001b[6d"] +[0.000, "o", "leaf2-eth1-32 eth1/32 Physical Up\u001b[6;55H"] +[0.000, "o", "vPC Peer-Link\u001b[6;77H"] +[0.000, "o", "leaf2 Unknown Unknown\u001b[109GUnknown\u001b[123G7s\r\u001b[7dleaf2-po1\u001b[17Gpo1\u001b[7;29HAggregate Up\u001b[7;55H"] +[0.000, "o", "vPC Peer-Link\u001b[7;77H"] +[0.000, "o", "leaf2 Unknown Unknown\u001b[109GUnknown\u001b[123G"] +[0.000, "o", "7s\r\u001b[8d"] +[1.053, "o", "\u001b[2;86HTrue True \u001b[109GTrue \u001b[123G8\u001b[3d\b"] +[0.000, "o", "8\u001b[4d\b8\u001b[5d\b8\u001b[6;86H"] +[0.000, "o", "True True \u001b[109GTrue \u001b[123G"] +[0.000, "o", "8\u001b[7d\b8\r\u001b[8d"] +[1.053, "o", "\u001b[2;123H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b9\u001b[6d\b9\u001b[7d\b"] +[0.000, "o", "9\r\u001b[8d"] +[1.053, "o", "\u001b[2;123H10s\u001b[3;123H10s\u001b[4;123H10s\u001b[5;123H1"] +[0.000, "o", "0s\u001b[6;123H10s\u001b[7;123H10s\r\u001b[8d"] +[1.051, "o", "\u001b[2;124H1\u001b[3d\b1\u001b[4;86H"] +[0.000, "o", "Unknown Unknown\u001b[109GUnknown\u001b[4;124H1\u001b[5d\b"] +[0.000, "o", "1\u001b[6d\b1\u001b[7d\b1\r\u001b[8d"] +[1.054, "o", "\u001b[1;91H\u001b[2P\u001b[2;94HTrue \u001b[107GTrue \u001b[2;121H12s\u001b[K\u001b[3;94HTrue \u001b[107GTrue \u001b[3;121H12"] +[0.000, "o", "s\u001b[K\u001b[4;86HFalse True False 12s\u001b[K\u001b[5;94HTrue \u001b[107GTrue \u001b[5;121H"] +[0.000, "o", "12"] +[0.000, "o", "s\u001b[K\u001b[6;94HTrue \u001b[107GTrue \u001b[6;121H12s\u001b[K\u001b[7;86HFalse True False 12s\u001b[K\r\u001b[8d"] +[1.052, "o", "\u001b[2;122H3\u001b[3d\b3\u001b[4d\b3\u001b[5d\b3\u001b[6d\b"] +[0.000, "o", "3\u001b[7d\b3\r\u001b[8d"] +[1.054, "o", "\u001b[2;122H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b"] +[0.000, "o", "4\u001b[6d\b4\u001b[7d\b4\r\u001b[8d"] +[1.050, "o", "\u001b[2;122H5\u001b[3d\b5\u001b[4d\b5\u001b[5d\b"] +[0.000, "o", "5\u001b[6d\b5\u001b[7d\b"] +[0.000, "o", "5\r\u001b[8d"] +[1.058, "o", "\u001b[2;122H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b"] +[0.000, "o", "6\u001b[6d\b6\u001b[7d\b"] +[0.000, "o", "6\r\u001b[8d"] +[1.052, "o", "\u001b[2;122H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b"] +[0.000, "o", "7\u001b[6d\b7\u001b[7d\b7\r\u001b[8d"] +[1.053, "o", "\u001b[2;122H8\u001b[3d\b8\u001b[4d\b8\u001b[5d\b8\u001b[6d\b"] +[0.000, "o", "8\u001b[7d\b8\r\u001b[8d"] +[1.051, "o", "\u001b[2;122H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b"] +[0.000, "o", "9\u001b[6d\b9\u001b[7d\b9\r\u001b[8d"] +[1.057, "o", "\u001b[2;121H20\u001b[3d\b\b20\u001b[4d\b\b20\u001b[5d\b\b"] +[0.000, "o", "20\u001b[6d\b\b20\u001b[7d\b\b"] +[0.000, "o", "20\r\u001b[8d"] +[1.054, "o", "\u001b[2;122H1\u001b[3d\b1\u001b[4d\b1\u001b[5d\b1\u001b[6d\b"] +[0.000, "o", "1\u001b[7d\b1\r\u001b[8d"] +[1.059, "o", "\u001b[2;122H2\u001b[3d\b2\u001b[4d\b"] +[0.000, "o", "2\u001b[5d\b2\u001b[6d\b"] +[0.000, "o", "2\u001b[7d\b2\r\u001b[8d"] +[1.051, "o", "\u001b[2;122H3\u001b[3d\b3\u001b[4;86HTrue \u001b[4;107HTrue \u001b[4;122H3\u001b[5d\b"] +[0.000, "o", "3\u001b[6d\b3\u001b[7;86H"] +[0.000, "o", "True \u001b[7;107H"] +[0.000, "o", "True \u001b[7;122H3\r\u001b[8d"] +[1.052, "o", "\u001b[2;122H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b4\u001b[6d\b4\u001b[7d\b4\r\u001b[8d"] +[1.053, "o", "\u001b[2;122H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b"] +[0.000, "o", "6\u001b[6d\b6\u001b[7d\b6\r\u001b[8d"] +[1.049, "o", "\u001b[2;122H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b"] +[0.000, "o", "7\u001b[6d\b7\u001b[7d\b7\r\u001b[8d"] +[1.055, "o", "\u001b[2;122H8\u001b[3d\b8\u001b[4d\b8\u001b[5d\b8\u001b[6d\b"] +[0.000, "o", "8\u001b[7d\b8\r\u001b[8d"] +[1.053, "o", "\u001b[2;122H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b9\u001b[6d\b"] +[0.000, "o", "9\u001b[7d\b9\r\u001b[8d"] +[1.056, "o", "\u001b[2;121H30\u001b[3d\b\b30\u001b[4d\b\b30\u001b[5d\b\b"] +[0.000, "o", "30\u001b[6d\b\b30\u001b[7d\b\b30\r\u001b[8d"] +[0.619, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.837, "m", ""] +[0.799, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.904, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "5"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.001, "o", "p"] +[0.000, "o", "c"] +[0.000, "o", "-"] +[0.000, "o", "d"] +[0.001, "o", "o"] +[0.000, "o", "m"] +[0.000, "o", "a"] +[0.001, "o", "i"] +[0.000, "o", "n"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.001, "o", "p"] +[0.000, "o", "c"] +[0.000, "o", "-"] +[0.001, "o", "d"] +[0.000, "o", "o"] +[0.000, "o", "m"] +[0.000, "o", "a"] +[0.001, "o", "i"] +[0.000, "o", "n"] +[0.000, "o", "."] +[0.001, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.006, "o", "\u001b[50D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m5\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4md\u001b[4mo\u001b[4mm\u001b[4ma\u001b[4mi\u001b[4mn\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4md\u001b[4mo\u001b[4mm\u001b[4ma\u001b[4mi\u001b[4mn\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[1.153, "o", "\r\r\n"] +[0.007, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m nx.cisco.networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m VPCDomain\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-vpcdomain\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdomainId\u001b[0m:\u001b[95m 1\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mpeer\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m adminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36minterfaceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-po1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mswitch\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m enabled\u001b[0m:\u001b[95m true\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mgateway\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m enabled\u001b[0m:\u001b[95m true\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mkeepalive\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m source\u001b[0m:\u001b[32m 10.1.1.1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdestination\u001b[0m:\u001b[32m 10.1.1.2\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mvrfRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-vpc-keepalive\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.402, "m", ""] +[1.244, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.001, "o", "y"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "5"] +[0.001, "o", "-"] +[0.000, "o", "v"] +[0.000, "o", "p"] +[0.001, "o", "c"] +[0.000, "o", "-"] +[0.000, "o", "d"] +[0.001, "o", "o"] +[0.000, "o", "m"] +[0.000, "o", "a"] +[0.001, "o", "i"] +[0.001, "o", "\u001b[42D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m5\u001b[4m-\u001b[4mv\u001b[4mp\u001b[4mc\u001b[4m-\u001b[4md\u001b[4mo\u001b[4mm\u001b[4ma\u001b[4mi\u001b[4mn\u001b[24m"] +[1.274, "o", "\r\r\n"] +[0.060, "o", "vpcdomain.nx.cisco.networking.metal.ironcore.dev/leaf1-vpcdomain created\r\n"] +[0.006, "o", "vpcdomain.nx.cisco.networking.metal.ironcore.dev/leaf2-vpcdomain created\r\n"] +[0.001, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.051, "o", "w"] +[0.000, "o", "\bwa"] +[0.000, "o", "t"] +[0.001, "o", "c"] +[0.000, "o", "h"] +[0.000, "o", " "] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "v"] +[0.000, "o", "p"] +[0.000, "o", "c"] +[0.001, "o", "d"] +[0.000, "o", "o"] +[0.001, "o", "m"] +[0.000, "o", "a"] +[0.000, "o", "i"] +[0.000, "o", "n"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "o"] +[0.001, "o", " "] +[0.000, "o", "w"] +[0.000, "o", "i"] +[0.001, "o", "d"] +[0.002, "o", "\u001b[34D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[29Ce"] +[1.100, "o", "\r\r\n"] +[0.004, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.048, "o", "\u001b[H\u001b[JNAME\u001b[1;19HDEVICE DOMAIN ENABLED READY CONFIGURED OPERATIONAL PEERSTATUS ROLE\u001b[1;107HPEERLINKIFOPERST \u001b[1;126HKEEPALIVEPEERUPTIME AGE\r\u001b[2dleaf1-vpcdomain leaf1 1\u001b[2;37HUp\u001b[2;47HTrue True\u001b[2;68HTrue\u001b[2;82HUp\u001b[2;95HPrimary \u001b[2;107H"] +[0.0, "o", "Up\u001b[148G4s\r\u001b[3dleaf2-vpcdomain leaf2 1\u001b[3;37HUp\u001b[3;47H"] +[0.0, "o", "True True\u001b[3;68HTrue\u001b[3;82HUp\u001b[3;95HSecondary \u001b[3;107HUp\u001b[148G"] +[0.0, "o", "4s\r\u001b[4d"] +[1.057, "o", "\u001b[2;148H5\u001b[3d\b5\r\u001b[4d"] +[1.049, "o", "\u001b[2;148H6\u001b[3d\b6\r\u001b[4d"] +[1.048, "o", "\u001b[2;148H7\u001b[3d\b7\r\u001b[4d"] +[1.056, "o", "\u001b[2;148H8\u001b[3d\b8\r\u001b[4d"] +[1.052, "o", "\u001b[2;148H9\u001b[3d\b9\r\u001b[4d"] +[1.052, "o", "\u001b[2;148H10s\u001b[3;148H10s\r\u001b[4d"] +[1.056, "o", "\u001b[2;149H1\u001b[3d\b1\r\u001b[4d"] +[1.048, "o", "\u001b[2;149H2\u001b[3d\b2\r\u001b[4d"] +[1.048, "o", "\u001b[2;149H3\u001b[3d\b3\r\u001b[4d"] +[1.053, "o", "\u001b[2;149H4\u001b[3d\b4\r\u001b[4d"] +[1.058, "o", "\u001b[2;149H5\u001b[3d\b5\r\u001b[4d"] +[1.059, "o", "\u001b[2;149H6\u001b[3;126H13s\u001b[149G6\r\u001b[4d"] +[1.054, "o", "\u001b[2;149H7\u001b[3d\b7\r\u001b[4d"] +[1.057, "o", "\u001b[2;149H8\u001b[3d\b8\r\u001b[4d"] +[1.058, "o", "\u001b[2;149H9\u001b[3d\b9\r\u001b[4d"] +[1.05, "o", "\u001b[2;148H20\u001b[3d\b\b20\r\u001b[4d"] +[1.054, "o", "\u001b[2;149H1\u001b[3d\b1\r\u001b[4d"] +[1.054, "o", "\u001b[2;126H20s\u001b[149G3\u001b[3d\b"] +[0.0, "o", "3\r\u001b[4d"] +[1.052, "o", "\u001b[2;149H4\u001b[3d\b4\r\u001b[4d"] +[1.054, "o", "\u001b[2;149H5\u001b[3d\b5\r\u001b[4d"] +[1.051, "o", "\u001b[2;149H6\u001b[3d\b6\r\u001b[4d"] +[1.049, "o", "\u001b[2;149H7\u001b[3d\b7\r\u001b[4d"] +[0.924, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.489, "m", ""] +[2.183, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.227, "o", "s"] +[0.000, "o", "\bss"] +[0.000, "o", "h"] +[0.001, "o", " "] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.001, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "\u001b[8D\u001b[32ms\u001b[32ms\u001b[32mh\u001b[39m\u001b[5C1"] +[0.931, "o", "\r\r\n"] +[1.823, "o", "** WARNING: connection is not using a post-quantum key exchange algorithm.\r\r\n** This session may be vulnerable to \"store now, decrypt later\" attacks.\r\r\n** The server may need to be upgraded. See https://openssh.com/pq.html\r\r\n"] +[0.110, "o", "User Access Verification\r\n"] +[0.407, "o", "\r\n"] +[0.278, "o", "Bad terminal type: \"tmux-256color\". Will assume vt100.\r\n"] +[0.042, "o", "Cisco NX-OS Software\r\nCopyright (c) 2002-2025, Cisco Systems, Inc. All rights reserved.\r\nNexus 9000v software (\"Nexus 9000v Software\") and related documentation,\r\nfiles or other reference materials (\"Documentation\") are\r\nthe proprietary property and confidential information of Cisco\r\nSystems, Inc. (\"Cisco\") and are protected, without limitation,\r\npursuant to United States and International copyright and trademark\r\nlaws in the applicable jurisdiction which provide civil and criminal\r\npenalties for copying or distribution without Cisco's authorization.\r\n\r\nAny use or disclosure, in whole or in part, of the Nexus 9000v Software\r\nor Documentation to any third party for any purposes is expressly\r\nprohibited except as otherwise authorized by Cisco in writing.\r\nThe copyrights to certain works contained herein are owned by other\r\nthird parties and are used and distributed under license. Some parts\r\nof this software may be covered under the GNU Public License or the\r\nGNU Lesser General Public License. A copy of each su"] +[0.000, "o", "ch license is\r\navailable at\r\nhttp://www.gnu.org/licenses/gpl.html and\r\nhttp://www.gnu.org/licenses/lgpl.html\r\n***************************************************************************\r\n* Nexus 9000v is strictly limited to use for evaluation, demonstration *\r\n* and NX-OS education. Any use or disclosure, in whole or in part of *\r\n* the Nexus 9000v Software or Documentation to any third party for any *\r\n* purposes is expressly prohibited except as otherwise authorized by *\r\n* Cisco in writing. *\r\n***************************************************************************\r\n\rleaf1# "] +[1.398, "o", "show vpc brief"] +[1.223, "o", "\r\r\n"] +[0.044, "o", "Legend:\r\n (*) - local vPC is down, forwarding via vPC peer-link\r\n\r\nvPC domain id : 1 \r\nPeer status : peer adjacency formed ok \r\nvPC keep-alive status : peer is alive \r\nConfiguration consistency status : success \r\nPer-vlan consistency status : success \r\nType-2 consistency status : success \r\nvPC role : primary \r\nNumber of vPCs configured : 0 \r\nPeer Gateway : Enabled\r\nDual-active excluded VLANs : -\r\nGraceful Consistency Check : Enabled\r\nAuto-recovery status : Disabled\r\nDelay-restore status : Timer is on.(timeout = 30s, 5s left)\r\nDelay-restore SVI status : Timer is off.(timeout = 10s)\r\nDelay-restore Orphan-port status : Timer is off.(timeout = 0s)\r\nOperational Layer3 Peer-router : Disabled\r\nVirtual-peerlink mode : Disabled\r\n\r\nvPC Peer-link status"] +[0.000, "o", "\r\n---------------------------------------------------------------------\r\nid Port Status Active vlans \r\n-- ---- ------ -------------------------------------------------\r\n1 Po1 up 1 \r\n\rleaf1# "] +[2.166, "m", ""] +[1.265, "o", "e"] +[0.261, "o", "x"] +[0.211, "o", "i"] +[0.187, "o", "t"] +[2.327, "o", "\r\r\n"] +[0.057, "o", "Connection to clab-evpn-vxlan-fabric-leaf1 closed.\r\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.447, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.916, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "6"] +[0.000, "o", "-"] +[0.000, "o", "i"] +[0.001, "o", "n"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "c"] +[0.000, "o", "o"] +[0.001, "o", "n"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "h"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "1"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.001, "o", "m"] +[0.006, "o", "\u001b[49D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m6\u001b[4m-\u001b[4mi\u001b[4mn\u001b[4mt\u001b[4me\u001b[4mr\u001b[4mc\u001b[4mo\u001b[4mn\u001b[4mn\u001b[4me\u001b[4mc\u001b[4mt\u001b[4ms\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4me\u001b[4mt\u001b[4mh\u001b[4m1\u001b[4m-\u001b[4m1\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.842, "o", "\r\r\n"] +[0.009, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m fabric\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1-eth1-1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m eth1/1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m Leaf1 to Spine1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Physical\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmtu\u001b[0m:\u001b[95m 9216\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mipv4\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m unnumbered\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m interfaceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo0\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.981, "m", ""] +[2.096, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.000, "o", "y"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "k"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "6"] +[0.000, "o", "-"] +[0.000, "o", "i"] +[0.001, "o", "n"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "c"] +[0.000, "o", "o"] +[0.000, "o", "n"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.001, "o", "\u001b[45D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m6\u001b[4m-\u001b[4mi\u001b[4mn\u001b[4mt\u001b[4me\u001b[4mr\u001b[4mc\u001b[4mo\u001b[4mn\u001b[4mn\u001b[4me\u001b[4mc\u001b[4mt\u001b[4ms\u001b[24m"] +[1.154, "o", "\r\r\n"] +[0.124, "o", "interface.networking.metal.ironcore.dev/leaf1-eth1-1 created\r\n"] +[0.004, "o", "interface.networking.metal.ironcore.dev/leaf1-eth1-2 created\r\n"] +[0.004, "o", "interface.networking.metal.ironcore.dev/leaf2-eth1-1 created\r\n"] +[0.005, "o", "interface.networking.metal.ironcore.dev/leaf2-eth1-2 created\r\n"] +[0.009, "o", "interface.networking.metal.ironcore.dev/leaf3-eth1-1 created\r\n"] +[0.004, "o", "interface.networking.metal.ironcore.dev/leaf3-eth1-2 created\r\n"] +[0.006, "o", "interface.networking.metal.ironcore.dev/spine1-eth1-1 created\r\n"] +[0.008, "o", "interface.networking.metal.ironcore.dev/spine1-eth1-2 created\r\n"] +[0.007, "o", "interface.networking.metal.ironcore.dev/spine1-eth1-3 created\r\n"] +[0.008, "o", "interface.networking.metal.ironcore.dev/spine2-eth1-1 created\r\n"] +[0.004, "o", "interface.networking.metal.ironcore.dev/spine2-eth1-2 created\r\n"] +[0.007, "o", "interface.networking.metal.ironcore.dev/spine2-eth1-3 created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.140, "o", "w"] +[0.000, "o", "\bwa"] +[0.001, "o", "t"] +[0.000, "o", "c"] +[0.000, "o", "h"] +[0.001, "o", " "] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.000, "o", "g"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", " "] +[0.001, "o", "i"] +[0.000, "o", "n"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "f"] +[0.000, "o", "a"] +[0.000, "o", "c"] +[0.001, "o", "e"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "w"] +[0.001, "o", "o"] +[0.000, "o", "r"] +[0.000, "o", "k"] +[0.000, "o", "i"] +[0.001, "o", "n"] +[0.000, "o", "g"] +[0.000, "o", "."] +[0.001, "o", "m"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "a"] +[0.000, "o", "l"] +[0.000, "o", "."] +[0.000, "o", "i"] +[0.001, "o", "r"] +[0.000, "o", "o"] +[0.000, "o", "n"] +[0.001, "o", "c"] +[0.000, "o", "o"] +[0.000, "o", "r"] +[0.000, "o", "e"] +[0.001, "o", "."] +[0.000, "o", "d"] +[0.000, "o", "e"] +[0.001, "o", "v"] +[0.000, "o", "/"] +[0.000, "o", "r"] +[0.001, "o", "o"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "="] +[0.001, "o", "f"] +[0.000, "o", "a"] +[0.000, "o", "b"] +[0.000, "o", "r"] +[0.001, "o", "i"] +[0.000, "o", "c"] +[0.000, "o", " "] +[0.001, "o", "-"] +[0.000, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.001, "o", "i"] +[0.000, "o", "d"] +[0.002, "o", "\u001b[79D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[74Ce"] +[2.093, "o", "\r\r\n"] +[0.004, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.049, "o", "\u001b[H\u001b[JNAME\u001b[1;17HINTERFACE TYPE\u001b[40GADMIN STATE DESCRIPTION\u001b[72GMTU DEVICE READY CONFIGURED OPERATIONAL AGE\r\u001b[2d"] +[0.000, "o", "leaf1-eth1-1 eth1/1\u001b[29GPhysical Up\u001b[2;54HLeaf1 to Spine1 9216 leaf1\u001b[2;123H5s\r\u001b[3dleaf1-eth1-2 eth1/2\u001b[29GPhysical Up\u001b[3;54HLeaf1 to Spine2 9216 leaf1\u001b[3;123H5s\r\u001b[4dleaf2-eth1-1 eth1/1\u001b[29G"] +[0.000, "o", "Physical Up\u001b[4;54HLeaf2 to Spine1 9216 leaf2 True True\u001b[4;109H"] +[0.000, "o", "True\u001b[4;123H"] +[0.000, "o", "5s\r\u001b[5d"] +[0.000, "o", "leaf2-eth1-2 eth1/2\u001b[29GPhysical Up\u001b[5;54HLeaf2 to Spine2 9216 leaf2\u001b[5;123H"] +[0.000, "o", "5s\r\u001b[6dleaf3-eth1-1 eth1/1\u001b[29GPhysical Up\u001b[6;54H"] +[0.000, "o", "Leaf3 to Spine1 9216 leaf3 True True\u001b[6;109HTrue\u001b[6;123H5s\r\u001b[7dleaf3-eth1-2 eth1/2\u001b[29GPhysical Up\u001b[7;54HLeaf3 to Spine2 9216 leaf3\u001b[7;123H5s\r\u001b[8dspine1-eth1-1 eth1/1\u001b[29G"] +[0.000, "o", "Physical Up\u001b[8;54HSpine1 to Leaf1 9216 spine1 True True\u001b[8;109HTrue\u001b[8;123H5s\r\u001b[9dspine1-eth1-2 eth1/2\u001b[29GPhysical Up\u001b[9;54HSpine1 to Leaf2 9216 spine1\u001b[9;123H"] +[0.000, "o", "5s\r\u001b[10d"] +[0.000, "o", "spine1-eth1-3 eth1/3\u001b[29GPhysical Up\u001b[10;54HSpine1 to Leaf3 9216 spine1\u001b[10;123H"] +[0.000, "o", "5s\r\u001b[11d"] +[0.000, "o", "spine2-eth1-1 eth1/1\u001b[29GPhysical Up\u001b[11;54H"] +[0.000, "o", "Spine2 to Leaf1 9216 spine2 True True\u001b[11;109HTrue\u001b[11;123H5s\r\u001b[12d"] +[0.000, "o", "spine2-eth1-2 eth1/2\u001b[29G"] +[0.000, "o", "Physical Up\u001b[12;54HSpine2 to Leaf2 9216 spine2\u001b[12;123H"] +[0.000, "o", "5s\r\u001b[13d"] +[0.000, "o", "spine2-eth1-3 eth1/3\u001b[29GPhysical Up\u001b[13;54H"] +[0.000, "o", "Spine2 to Leaf3 9216 spine2\u001b[13;123H"] +[0.000, "o", "5s\r\u001b[14d"] +[1.053, "o", "\u001b[1;93H CONFIGURED OPERATIONAL AGE\u001b[2;88HUnknown Unknown\u001b[111GUnknown 6s\u001b[3;123H 6s\u001b[4;96H"] +[0.000, "o", " True\u001b[109G True\u001b[4;123H 6s\u001b[5;88HUnknown Unknown\u001b[111GUnknown 6s\u001b[6;96H"] +[0.000, "o", " True\u001b[109G True\u001b[6;123H 6s\u001b[7;88HUnknown Unknown\u001b[111GUnknown 6s\u001b[8;96H True\u001b[109G True\u001b[8;123H "] +[0.000, "o", " 6s\u001b[9;88HUnknown Unknown\u001b[9;123H 6s\u001b[10;88HUnknown Unknown\u001b[111G"] +[0.000, "o", "Unknown 6s\u001b[11;96H True\u001b[109G"] +[0.000, "o", " True\u001b[11;123H"] +[0.000, "o", " 6s\u001b[12;88HUnknown Unknown\u001b[111GUnknown 6s\u001b[13;123H "] +[0.000, "o", " 6s\r\u001b[14d"] +[1.051, "o", "\u001b[2;125H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b"] +[0.000, "o", "7\u001b[6d\b7\u001b[7d\b7\u001b[8d\b"] +[0.000, "o", "7\u001b[9d\b"] +[0.000, "o", "7\u001b[10d\b7\u001b[11d\b"] +[0.000, "o", "7\u001b[12d\b7\u001b[13;88HUnknown Unknown\u001b[111GUnknown\u001b[125G7\r\u001b[14d"] +[1.052, "o", "\u001b[2;88HTrue True \u001b[111GTrue \u001b[125G8\u001b[3d\b8\u001b[4d\b"] +[0.000, "o", "8\u001b[5;88HTrue True \u001b[111GTrue \u001b[125G8\u001b[6d\b"] +[0.000, "o", "8\u001b[7;88HTrue True \u001b[111GTrue \u001b[125G"] +[0.000, "o", "8\u001b[8d\b"] +[0.000, "o", "8\u001b[9d\b8\u001b[10;88HTrue True \u001b[111GTrue \u001b[125G8\u001b[11d\b8\u001b[12;88HTrue True \u001b[111G"] +[0.000, "o", "True \u001b[125G"] +[0.000, "o", "8\u001b[13d\b8\r\u001b[14d"] +[1.052, "o", "\u001b[2;125H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b"] +[0.000, "o", "9\u001b[6d\b9\u001b[7d\b"] +[0.000, "o", "9\u001b[8d\b9\u001b[9d\b"] +[0.000, "o", "9\u001b[10d\b9\u001b[11d\b"] +[0.000, "o", "9\u001b[12d\b9\u001b[13;88HTrue True \u001b[111G"] +[0.000, "o", "True \u001b[125G"] +[0.000, "o", "9\r\u001b[14d"] +[1.056, "o", "\u001b[2;125H10s\u001b[3;125H10s\u001b[4;125H10s\u001b[5;125H1"] +[0.000, "o", "0s\u001b[6;125H10s\u001b[7;125H10s\u001b[8;125H10s\u001b[9;125H1"] +[0.001, "o", "0s\u001b[10;125H10s\u001b[11;125H10s\u001b[12;125H10s\u001b[13;125H10s\r\u001b[14d"] +[1.054, "o", "\u001b[2;126H1\u001b[3;88HUnknown Unknown\u001b[111GUnknown\u001b[3;126H"] +[0.000, "o", "1\u001b[4d\b1\u001b[5d\b"] +[0.000, "o", "1\u001b[6d\b1\u001b[7d\b1\u001b[8d\b1\u001b[9;111HUnknown\u001b[9;126H1\u001b[10d\b1\u001b[11d\b1\u001b[12d\b"] +[0.000, "o", "1\u001b[13d\b"] +[0.000, "o", "1\r\u001b[14d"] +[1.054, "o", "\u001b[2;126H2\u001b[3;88HTrue True \u001b[111GTrue \u001b[3;126H2\u001b[4d\b2\u001b[5d\b2\u001b[6d\b2\u001b[7d\b2\u001b[8d\b"] +[0.000, "o", "2\u001b[9d\b2\u001b[10d\b2\u001b[11d\b2\u001b[12d\b"] +[0.000, "o", "2\u001b[13d\b"] +[0.000, "o", "2\r\u001b[14d"] +[1.055, "o", "\u001b[1;93H\u001b[2P\u001b[2;96HTrue \u001b[109GTrue \u001b[2;123H13s\u001b[K\u001b[3;96HTrue \u001b[109G"] +[0.000, "o", "True \u001b[3;123H13s\u001b[K\u001b[4;96HTrue \u001b[109GTrue \u001b[4;123H13s\u001b[K\u001b[5;96HTrue \u001b[109G"] +[0.000, "o", "True \u001b[5;123H13"] +[0.000, "o", "s\u001b[K\u001b[6;96HTrue \u001b[109GTrue \u001b[6;123H13"] +[0.000, "o", "s\u001b[K\u001b[7;96HTrue \u001b[109G"] +[0.000, "o", "True \u001b[7;123H"] +[0.000, "o", "13"] +[0.000, "o", "s\u001b[K\u001b[8;96HTrue \u001b[109GTrue \u001b[8;123H13s\u001b[K\u001b[9;88HTrue True True 13"] +[0.000, "o", "s\u001b[K\u001b[10;96HTrue \u001b[109G"] +[0.000, "o", "True \u001b[10;123H"] +[0.000, "o", "13"] +[0.000, "o", "s\u001b[K\u001b[11;96H"] +[0.000, "o", "True \u001b[109GTrue \u001b[11;123H13s\u001b[K\u001b[12;96HTrue \u001b[109G"] +[0.000, "o", "True \u001b[12;123H13"] +[0.000, "o", "s\u001b[K\u001b[13;96H"] +[0.000, "o", "True \u001b[109GTrue \u001b[13;123H13"] +[0.000, "o", "s\u001b[K\r\u001b[14d"] +[1.057, "o", "\u001b[2;124H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b4\u001b[6d\b"] +[0.000, "o", "4\u001b[7d\b4\u001b[8d\b"] +[0.000, "o", "4\u001b[9d\b"] +[0.000, "o", "4\u001b[10d\b4\u001b[11d\b4\u001b[12d\b4\u001b[13d\b4\r\u001b[14d"] +[1.054, "o", "\u001b[2;124H5\u001b[3d\b5\u001b[4d\b5\u001b[5d\b"] +[0.000, "o", "5\u001b[6d\b5\u001b[7d\b"] +[0.000, "o", "5\u001b[8d\b"] +[0.000, "o", "5\u001b[9d\b5\u001b[10d\b5\u001b[11d\b5\u001b[12d\b5\u001b[13d\b"] +[0.000, "o", "5\r\u001b[14d"] +[1.056, "o", "\u001b[2;124H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b"] +[0.000, "o", "6\u001b[6d\b6\u001b[7d\b6\u001b[8d\b"] +[0.000, "o", "6\u001b[9d\b6\u001b[10d\b6\u001b[11d\b6\u001b[12d\b"] +[0.000, "o", "6\u001b[13d\b"] +[0.000, "o", "6\r\u001b[14d"] +[1.057, "o", "\u001b[2;124H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b"] +[0.000, "o", "7\u001b[6d\b7\u001b[7d\b7\u001b[8d\b7\u001b[9d\b"] +[0.000, "o", "7\u001b[10d\b7\u001b[11d\b7\u001b[12d\b7\u001b[13d\b"] +[0.000, "o", "7\r\u001b[14d"] +[1.055, "o", "\u001b[2;124H8\u001b[3d\b8\u001b[4d\b8\u001b[5d\b8\u001b[6d\b"] +[0.000, "o", "8\u001b[7d\b8\u001b[8d\b8\u001b[9d\b"] +[0.000, "o", "8\u001b[10d\b"] +[0.000, "o", "8\u001b[11d\b8\u001b[12d\b8\u001b[13d\b8\r\u001b[14d"] +[0.447, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.675, "m", ""] +[0.586, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.991, "o", "y"] +[0.000, "o", "\byq"] +[0.001, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "7"] +[0.000, "o", "-"] +[0.000, "o", "u"] +[0.001, "o", "n"] +[0.000, "o", "d"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "l"] +[0.000, "o", "a"] +[0.001, "o", "y"] +[0.000, "o", "/"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.001, "o", "a"] +[0.000, "o", "f"] +[0.000, "o", "1"] +[0.001, "o", "-"] +[0.000, "o", "o"] +[0.000, "o", "s"] +[0.000, "o", "p"] +[0.001, "o", "f"] +[0.000, "o", "."] +[0.000, "o", "y"] +[0.001, "o", "a"] +[0.000, "o", "m"] +[0.005, "o", "\u001b[42D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m7\u001b[4m-\u001b[4mu\u001b[4mn\u001b[4md\u001b[4me\u001b[4mr\u001b[4ml\u001b[4ma\u001b[4my\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mo\u001b[4ms\u001b[4mp\u001b[4mf\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[1.005, "o", "\r\r\n"] +[0.010, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m OSPF\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-underlay\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36minstance\u001b[0m:\u001b[32m UNDERLAY\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mrouterId\u001b[0m:\u001b[32m 10.0.0.10\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mlogAdjacencyChanges\u001b[0m:\u001b[95m true\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36minterfaceRefs\u001b[0m:\r\n -\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36marea\u001b[0m:\u001b[32m 0.0.0.0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mpassive\u001b[0m:\u001b[95m true\u001b[0m\r\n\u001b[95m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36marea\u001b[0m:\u001b[32m 0.0.0.0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mpassive\u001b[0m:\u001b[95m true\u001b[0m\r\n\u001b[95m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m leaf1-eth1-1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36marea\u001b[0m:\u001b[32m 0.0.0.0\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m leaf1-eth1-2\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36marea\u001b[0m:\u001b[32m 0.0.0.0\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.065, "m", ""] +[2.150, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "a"] +[0.001, "o", "p"] +[0.000, "o", "p"] +[0.001, "o", "l"] +[0.000, "o", "y"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "0"] +[0.001, "o", "7"] +[0.000, "o", "-"] +[0.000, "o", "u"] +[0.001, "o", "n"] +[0.000, "o", "d"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "l"] +[0.000, "o", "a"] +[0.001, "o", "\u001b[40D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m7\u001b[4m-\u001b[4mu\u001b[4mn\u001b[4md\u001b[4me\u001b[4mr\u001b[4ml\u001b[4ma\u001b[4my\u001b[24m"] +[0.918, "o", "\r\r\n"] +[0.143, "o", "ospf.networking.metal.ironcore.dev/leaf1-underlay created\r\n"] +[0.004, "o", "ospf.networking.metal.ironcore.dev/leaf2-underlay created\r\n"] +[0.006, "o", "ospf.networking.metal.ironcore.dev/leaf3-underlay created\r\n"] +[0.005, "o", "ospf.networking.metal.ironcore.dev/spine1-underlay created\r\n"] +[0.007, "o", "ospf.networking.metal.ironcore.dev/spine2-underlay created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.034, "o", "w"] +[0.000, "o", "\bwa"] +[0.000, "o", "t"] +[0.001, "o", "c"] +[0.000, "o", "h"] +[0.001, "o", " "] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "o"] +[0.000, "o", "s"] +[0.001, "o", "p"] +[0.000, "o", "f"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "o"] +[0.000, "o", " "] +[0.001, "o", "w"] +[0.000, "o", "i"] +[0.000, "o", "d"] +[0.003, "o", "\u001b[29D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[24Ce"] +[2.571, "o", "\r\r\n"] +[0.013, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.050, "o", "\u001b[H\u001b[JNAME\u001b[1;19HDEVICE INSTANCE ROUTER-ID READY CONFIGURED OPERATIONAL ADJACENCIES AGE\r\u001b[2dleaf1-underlay leaf1 UNDERLAY 10.0.0.10\u001b[2;100H"] +[0.000, "o", "5s\r\u001b[3dleaf2-underlay leaf2 UNDERLAY 10.0.0.11 False True\u001b[3;72HFalse\u001b[3;100H5s\r\u001b[4d"] +[0.000, "o", "leaf3-underlay leaf3 UNDERLAY 10.0.0.12 False True\u001b[4;72HFalse\u001b[4;100H5s\r\u001b[5d"] +[0.000, "o", "spine1-underlay spine1 UNDERLAY 10.0.0.1 False True\u001b[5;72H"] +[0.000, "o", "False\u001b[5;100H5s\r\u001b[6d"] +[0.000, "o", "spine2-underlay spine2 UNDERLAY 10.0.0.2 False True\u001b[6;72HFalse\u001b[6;100H"] +[0.001, "o", "5s\r\u001b[7d"] +[1.054, "o", "\u001b[1;56H CONFIGURED OPERATIONAL ADJACENCIES AGE\u001b[2;51HUnknown Unknown\u001b[74GUnknown\u001b[2;100H 6s\u001b[3;59H True\u001b[72G False\u001b[3;100H "] +[0.000, "o", " 6s\u001b[4;59H True\u001b[72G False\u001b[4;100H 6s\u001b[5;59H"] +[0.000, "o", " True\u001b[72G False\u001b[5;100H 6s\u001b[6;59H"] +[0.000, "o", " True\u001b[72G False\u001b[6;100H 6s\r\u001b[7d"] +[1.053, "o", "\u001b[1;56H\u001b[2P\u001b[2;51HFalse True False \u001b[2;100H7s\u001b[K\u001b[3;59HTrue \u001b[72GFalse \u001b[3;100H7s\u001b[K\u001b[4;59H"] +[0.000, "o", "True \u001b[72GFalse \u001b[4;100H7s\u001b[K\u001b[5;59HTrue \u001b[72GFalse \u001b[5;100H7s\u001b[K\u001b[6;59H"] +[0.000, "o", "True \u001b[72GFalse \u001b[6;100H7s\u001b[K\r\u001b[7d"] +[1.051, "o", "\u001b[2;51HTrue \u001b[2;72HTrue \u001b[2;100H8\u001b[3d\b8\u001b[4d\b"] +[0.000, "o", "8\u001b[5d\b8\u001b[6d\b8\r\u001b[7d"] +[1.053, "o", "\u001b[2;86H2 Full\u001b[2;100H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b"] +[0.000, "o", "9\u001b[6d\b9\r\u001b[7d"] +[1.051, "o", "\u001b[2;100H10s\u001b[3;100H1"] +[0.000, "o", "0s\u001b[4;100H10s\u001b[5;100H10s\u001b[6;100H1"] +[0.000, "o", "0s\r\u001b[7d"] +[1.049, "o", "\u001b[2;101H1\u001b[3d\b1\u001b[4d\b1\u001b[5d\b"] +[0.000, "o", "1\u001b[6d\b1\r\u001b[7d"] +[1.050, "o", "\u001b[2;101H2\u001b[3d\b2\u001b[4d\b2\u001b[5d\b2\u001b[6d\b"] +[0.000, "o", "2\r\u001b[7d"] +[1.054, "o", "\u001b[2;101H3\u001b[3d\b3\u001b[4d\b3\u001b[5d\b3\u001b[6d\b"] +[0.000, "o", "3\r\u001b[7d"] +[1.052, "o", "\u001b[2;101H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b"] +[0.000, "o", "4\u001b[6d\b4\r\u001b[7d"] +[1.053, "o", "\u001b[2;101H5\u001b[3d\b5\u001b[4d\b5\u001b[5d\b5\u001b[6d\b5\r\u001b[7d"] +[1.051, "o", "\u001b[2;101H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b"] +[0.000, "o", "6\u001b[6d\b6\r\u001b[7d"] +[1.054, "o", "\u001b[2;101H7\u001b[3d\b7\u001b[4;51HTrue \u001b[4;72H"] +[0.000, "o", "True \u001b[4;86H2 Full\u001b[4;101H7\u001b[5d\b7\u001b[6;51HTrue \u001b[6;72HTrue \u001b[6;86H3 Full\u001b[6;101H7\r\u001b[7d"] +[1.052, "o", "\u001b[2;101H8\u001b[3;51HTrue \u001b[3;72HTrue \u001b[3;86H2 Full\u001b[3;101H8\u001b[4d\b8\u001b[5;51H"] +[0.000, "o", "True \u001b[5;72HTrue \u001b[5;86H3 Full\u001b[5;101H8\u001b[6d\b8\r\u001b[7d"] +[1.049, "o", "\u001b[2;101H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b"] +[0.000, "o", "9\u001b[6d\b9\r\u001b[7d"] +[1.046, "o", "\u001b[2;100H20\u001b[3d\b\b20\u001b[4d\b\b"] +[0.000, "o", "20\u001b[5d\b\b20\u001b[6d\b\b"] +[0.000, "o", "20\r\u001b[7d"] +[1.054, "o", "\u001b[2;101H1\u001b[3d\b1\u001b[4d\b1\u001b[5d\b1\u001b[6d\b"] +[0.000, "o", "1\r\u001b[7d"] +[1.053, "o", "\u001b[2;101H3\u001b[3d\b3\u001b[4d\b3\u001b[5d\b"] +[0.000, "o", "3\u001b[6d\b3\r\u001b[7d"] +[1.054, "o", "\u001b[2;101H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b"] +[0.000, "o", "4\u001b[6d\b4\r\u001b[7d"] +[1.053, "o", "\u001b[2;101H5\u001b[3d\b5\u001b[4d\b5\u001b[5d\b5\u001b[6d\b5\r\u001b[7d"] +[1.057, "o", "\u001b[2;101H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b6\u001b[6d\b"] +[0.000, "o", "6\r\u001b[7d"] +[1.059, "o", "\u001b[2;101H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b7\u001b[6d\b7\r\u001b[7d"] +[0.846, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.857, "m", ""] +[2.251, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.264, "o", "s"] +[0.000, "o", "\bss"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.001, "o", "\u001b[8D\u001b[32ms\u001b[32ms\u001b[32mh\u001b[39m\u001b[5C1"] +[0.835, "o", "\r\r\n"] +[1.527, "o", "** WARNING: connection is not using a post-quantum key exchange algorithm.\r\r\n** This session may be vulnerable to \"store now, decrypt later\" attacks.\r\r\n** The server may need to be upgraded. See https://openssh.com/pq.html\r\r\n"] +[0.220, "o", "User Access Verification\r\n"] +[0.506, "o", "\r\n"] +[0.268, "o", "Bad terminal type: \"tmux-256color\". Will assume vt100.\r\n"] +[0.048, "o", "Cisco NX-OS Software\r\nCopyright (c) 2002-2025, Cisco Systems, Inc. All rights reserved.\r\nNexus 9000v software (\"Nexus 9000v Software\") and related documentation,\r\nfiles or other reference materials (\"Documentation\") are\r\nthe proprietary property and confidential information of Cisco\r\nSystems, Inc. (\"Cisco\") and are protected, without limitation,\r\npursuant to United States and International copyright and trademark\r\nlaws in the applicable jurisdiction which provide civil and criminal\r\npenalties for copying or distribution without Cisco's authorization.\r\n\r\nAny use or disclosure, in whole or in part, of the Nexus 9000v Software\r\nor Documentation to any third party for any purposes is expressly\r\nprohibited except as otherwise authorized by Cisco in writing.\r\nThe copyrights to certain works contained herein are owned by other\r\nthird parties and are used and distributed under license. Some parts\r\nof this software may be covered under the GNU Public License or the\r\nGNU Lesser General Public License. A copy of each su"] +[0.000, "o", "ch license is\r\navailable at\r\nhttp://www.gnu.org/licenses/gpl.html and\r\nhttp://www.gnu.org/licenses/lgpl.html\r\n***************************************************************************\r\n* Nexus 9000v is strictly limited to use for evaluation, demonstration *\r\n* and NX-OS education. Any use or disclosure, in whole or in part of *\r\n* the Nexus 9000v Software or Documentation to any third party for any *\r\n* purposes is expressly prohibited except as otherwise authorized by *\r\n* Cisco in writing. *\r\n***************************************************************************\r\n\rleaf1# "] +[1.769, "o", "show ip ospf neighbors"] +[1.390, "o", "\r\r\n"] +[0.047, "o", " OSPF Process ID UNDERLAY VRF default\r\n Total number of neighbors: 2\r\n Neighbor ID Pri State Up Time Address Interface\r\n 10.0.0.1 1 FULL/ - 00:01:20 10.0.0.1 Eth1/1 \r\n 10.0.0.2 1 FULL/ - 00:01:20 10.0.0.2 Eth1/2 \r\n\rleaf1# "] +[0.943, "m", ""] +[2.619, "o", "show ip route ospf"] +[1.270, "o", "\r\r\n"] +[0.012, "o", "IP Route Table for VRF \"default\"\r\n'*' denotes best ucast next-hop\r\n'**' denotes best mcast next-hop\r\n'[x/y]' denotes [preference/metric]\r\n'%' in via output denotes VRF \r\n\r\n10.0.0.1/32, ubest/mbest: 1/0\r\n *via 10.0.0.1, Eth1/1, [110/41], 00:01:19, ospf-UNDERLAY, intra\r\n10.0.0.2/32, ubest/mbest: 1/0\r\n *via 10.0.0.2, Eth1/2, [110/41], 00:01:19, ospf-UNDERLAY, intra\r\n10.0.0.11/32, ubest/mbest: 2/0\r\n *via 10.0.0.1, Eth1/1, [110/81], 00:01:19, ospf-UNDERLAY, intra\r\n *via 10.0.0.2, Eth1/2, [110/81], 00:01:19, ospf-UNDERLAY, intra\r\n10.0.0.12/32, ubest/mbest: 2/0\r\n *via 10.0.0.1, Eth1/1, [110/81], 00:01:19, ospf-UNDERLAY, intra\r\n *via 10.0.0.2, Eth1/2, [110/81], 00:01:19, ospf-UNDERLAY, intra\r\n10.0.0.100/32, ubest/mbest: 2/0\r\n *via 10.0.0.1, Eth1/1, [110/41], 00:01:19, ospf-UNDERLAY, intra\r\n *via 10.0.0.2, Eth1/2, [110/41], 00:01:19, ospf-UNDERLAY, intra\r\n10.0.1.11/32, ubest/mbest: 2/0\r\n *via 10.0.0.1, Eth1/1, [110/81], 00:01:19, ospf-UNDERLAY, intra\r\n"] +[0.032, "o", " *via 10.0.0.2, Eth1/2, [110/81], 00:01:19, ospf-UNDERLAY, intra\r\n10.0.1.12/32, ubest/mbest: 2/0\r\n *via 10.0.0.1, Eth1/1, [110/81], 00:01:19, ospf-UNDERLAY, intra\r\n *via 10.0.0.2, Eth1/2, [110/81], 00:01:19, ospf-UNDERLAY, intra\r\n\r\n\rleaf1# "] +[2.881, "m", ""] +[1.388, "o", "ping 10.0.0.12"] +[1.278, "o", "\r\r\n"] +[0.191, "o", "PING 10.0.0.12 (10.0.0.12): 56 data bytes\r\n"] +[0.042, "o", "64 bytes from 10.0.0.12: icmp_seq=0 ttl=253 time=10.852 ms\r\n64 bytes from 10.0.0.12: icmp_seq=1 ttl=253 time=8.183 ms\r\n64 bytes from 10.0.0.12: icmp_seq=2 ttl=253 time=7.207 ms\r\n64 bytes from 10.0.0.12: icmp_seq=3 ttl=253 time=6.293 ms\r\n64 bytes from 10.0.0.12: icmp_seq=4 ttl=253 time=7.235 ms\r\n\r\n--- 10.0.0.12 ping statistics ---\r\n5 packets transmitted, 5 packets received, 0.00% packet loss\r\nround-trip min/avg/max = 6.293/7.954/10.852 ms\r\n"] +[0.048, "o", "\rleaf1# "] +[1.788, "m", ""] +[1.435, "o", "e"] +[0.318, "o", "x"] +[0.293, "o", "i"] +[0.147, "o", "t"] +[1.113, "o", "\r\r\n"] +[0.051, "o", "Connection to clab-evpn-vxlan-fabric-leaf1 closed.\r\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.353, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.769, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "8"] +[0.001, "o", "-"] +[0.000, "o", "p"] +[0.000, "o", "i"] +[0.001, "o", "m"] +[0.000, "o", "/"] +[0.000, "o", "l"] +[0.001, "o", "e"] +[0.000, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "p"] +[0.001, "o", "i"] +[0.000, "o", "m"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.001, "o", "m"] +[0.005, "o", "\u001b[36D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m8\u001b[4m-\u001b[4mp\u001b[4mi\u001b[4mm\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mp\u001b[4mi\u001b[4mm\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.732, "o", "\r\r\n"] +[0.008, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m PIM\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-pim\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mrendezvousPoints\u001b[0m:\r\n -\u001b[36m address\u001b[0m:\u001b[32m 10.0.0.100\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmulticastGroups\u001b[0m:\r\n -\u001b[32m 224.0.0.0/4\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36minterfaceRefs\u001b[0m:\r\n -\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m leaf1-eth1-1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m leaf1-eth1-2\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.305, "m", ""] +[1.070, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.022, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "0"] +[0.000, "o", "8"] +[0.000, "o", "-"] +[0.001, "o", "p"] +[0.000, "o", "i"] +[0.000, "o", "m"] +[0.001, "o", "/"] +[0.000, "o", "s"] +[0.000, "o", "p"] +[0.000, "o", "i"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "p"] +[0.000, "o", "i"] +[0.000, "o", "m"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.001, "o", "\u001b[37D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m8\u001b[4m-\u001b[4mp\u001b[4mi\u001b[4mm\u001b[4m/\u001b[4ms\u001b[4mp\u001b[4mi\u001b[4mn\u001b[4me\u001b[4m1\u001b[4m-\u001b[4mp\u001b[4mi\u001b[4mm\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.906, "o", "\r\r\n"] +[0.008, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m PIM\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m spine1-pim\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m spine1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mrendezvousPoints\u001b[0m:\r\n -\u001b[36m address\u001b[0m:\u001b[32m 10.0.0.100\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmulticastGroups\u001b[0m:\r\n -\u001b[32m 224.0.0.0/4\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36manycastAddresses\u001b[0m:\r\n -\u001b[32m 10.0.0.1\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[32m 10.0.0.2\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36minterfaceRefs\u001b[0m:\r\n -\u001b[36m name\u001b[0m:\u001b[32m spine1-lo0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m spine1-lo1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m spine1-eth1-1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m spine1-eth1-2\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n\u001b[32m \u001b[0m-\u001b[36m name\u001b[0m:\u001b[32m spine1-eth"] +[0.000, "o", "1-3\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmode\u001b[0m:\u001b[32m Sparse\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.278, "m", ""] +[1.059, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.000, "o", "y"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "k"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "8"] +[0.001, "o", "-"] +[0.000, "o", "p"] +[0.000, "o", "i"] +[0.001, "o", "\u001b[35D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m8\u001b[4m-\u001b[4mp\u001b[4mi\u001b[4mm\u001b[24m"] +[0.977, "o", "\r\r\n"] +[0.089, "o", "pim.networking.metal.ironcore.dev/leaf1-pim created\r\n"] +[0.005, "o", "pim.networking.metal.ironcore.dev/leaf2-pim created\r\n"] +[0.005, "o", "pim.networking.metal.ironcore.dev/leaf3-pim created\r\n"] +[0.006, "o", "pim.networking.metal.ironcore.dev/spine1-pim created\r\n"] +[0.008, "o", "pim.networking.metal.ironcore.dev/spine2-pim created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.480, "o", "w"] +[0.001, "o", "\bwa"] +[0.000, "o", "t"] +[0.000, "o", "c"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "p"] +[0.000, "o", "i"] +[0.001, "o", "m"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.000, "o", "i"] +[0.001, "o", "d"] +[0.002, "o", "\u001b[28D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[23Ce"] +[1.754, "o", "\r\r\n"] +[0.006, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.053, "o", "\u001b[H\u001b[JNAME\u001b[1;14HDEVICE READY AGE\r\u001b[2dleaf1-pim leaf1 True\u001b[33G3s\r\u001b[3dleaf2-pim leaf2 True\u001b[33G"] +[0.001, "o", "3s\r\u001b[4dleaf3-pim leaf3 True\u001b[33G3s\r\u001b[5dspine1-pim spine1 True\u001b[33G3s\r\u001b[6d"] +[0.000, "o", "spine2-pim spine2 Unknown 3s\r\u001b[7d"] +[1.056, "o", "\u001b[2;33H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b4\u001b[6d\b4\r\u001b[7d"] +[1.049, "o", "\u001b[2;33H5\u001b[3d\b5\u001b[4d\b5\u001b[5d\b"] +[0.000, "o", "5\u001b[6d\b5\r\u001b[7d"] +[1.048, "o", "\u001b[2;33H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b6\u001b[6d\b"] +[0.000, "o", "6\r\u001b[7d"] +[1.052, "o", "\u001b[1;28H\u001b[2P\u001b[2;31H7s\u001b[K\u001b[3d\b\b7"] +[0.000, "o", "s\u001b[K\u001b[4d\b\b7s\u001b[K\u001b[5d\b\b7s\u001b[K\u001b[6;23HTrue 7"] +[0.000, "o", "s\u001b[K\r\u001b[7d"] +[1.051, "o", "\u001b[2;31H8\u001b[3d\b8\u001b[4d\b8\u001b[5d\b"] +[0.000, "o", "8\u001b[6d\b8\r\u001b[7d"] +[1.056, "o", "\u001b[2;31H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b9\u001b[6d\b"] +[0.000, "o", "9\r\u001b[7d"] +[1.050, "o", "\u001b[2;31H10s\u001b[3;31H10s\u001b[4;31H10s\u001b[5;31H1"] +[0.000, "o", "0s\u001b[6;31H10s\r\u001b[7d"] +[0.999, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.693, "m", ""] +[0.662, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.425, "o", "y"] +[0.000, "o", "\byq"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "9"] +[0.000, "o", "-"] +[0.001, "o", "b"] +[0.000, "o", "g"] +[0.000, "o", "p"] +[0.001, "o", "-"] +[0.000, "o", "r"] +[0.001, "o", "o"] +[0.000, "o", "u"] +[0.000, "o", "t"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "b"] +[0.000, "o", "g"] +[0.000, "o", "p"] +[0.000, "o", "."] +[0.001, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.005, "o", "\u001b[43D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m9\u001b[4m-\u001b[4mb\u001b[4mg\u001b[4mp\u001b[4m-\u001b[4mr\u001b[4mo\u001b[4mu\u001b[4mt\u001b[4me\u001b[4mr\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mb\u001b[4mg\u001b[4mp\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[2.289, "o", "\r\r\n"] +[0.008, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m BGP\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-bgp\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36masNumber\u001b[0m:\u001b[95m 65000\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mrouterId\u001b[0m:\u001b[32m 10.0.0.10\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36maddressFamilies\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m ipv4Unicast\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m enabled\u001b[0m:\u001b[95m true\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[3.203, "o", "k"] +[0.000, "o", "\bku"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "a"] +[0.000, "o", "p"] +[0.000, "o", "p"] +[0.001, "o", "l"] +[0.000, "o", "y"] +[0.000, "o", " "] +[0.001, "o", "-"] +[0.000, "o", "k"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "0"] +[0.000, "o", "9"] +[0.001, "o", "-"] +[0.000, "o", "b"] +[0.000, "o", "g"] +[0.001, "o", "p"] +[0.000, "o", "-"] +[0.001, "o", "r"] +[0.000, "o", "o"] +[0.000, "o", "u"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.002, "o", "\u001b[42D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m0\u001b[4m9\u001b[4m-\u001b[4mb\u001b[4mg\u001b[4mp\u001b[4m-\u001b[4mr\u001b[4mo\u001b[4mu\u001b[4mt\u001b[4me\u001b[4mr\u001b[24m"] +[1.388, "o", "\r\r\n"] +[0.083, "o", "bgp.networking.metal.ironcore.dev/leaf1-bgp created\r\n"] +[0.004, "o", "bgp.networking.metal.ironcore.dev/leaf2-bgp created\r\n"] +[0.005, "o", "bgp.networking.metal.ironcore.dev/leaf3-bgp created\r\n"] +[0.005, "o", "bgp.networking.metal.ironcore.dev/spine1-bgp created\r\n"] +[0.006, "o", "bgp.networking.metal.ironcore.dev/spine2-bgp created\r\n"] +[0.001, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.374, "o", "w"] +[0.001, "o", "\bwa"] +[0.000, "o", "t"] +[0.000, "o", "c"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.000, "o", "g"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", " "] +[0.000, "o", "b"] +[0.001, "o", "g"] +[0.000, "o", "p"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.000, "o", "i"] +[0.001, "o", "d"] +[0.002, "o", "\u001b[28D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[23Ce"] +[2.194, "o", "\r\r\n"] +[0.004, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.047, "o", "\u001b[H\u001b[JNAME\u001b[1;14HDEVICE READY AGE\r\u001b[2d"] +[0.000, "o", "leaf1-bgp leaf1 True 4s\r\u001b[3dleaf2-bgp leaf2\u001b[3;31H4s\r\u001b[4d"] +[0.000, "o", "leaf3-bgp leaf3 True 4s\r\u001b[5d"] +[0.000, "o", "spine1-bgp spine1 True 4s\r\u001b[6d"] +[0.000, "o", "spine2-bgp spine2 True 4s\r\u001b[7d"] +[1.050, "o", "\u001b[1;28H AGE\u001b[2;31H 5s\u001b[3;23HUnknown 5s\u001b[4;31H 5s\u001b[5;31H"] +[0.000, "o", " 5s\u001b[6;31H 5s\r\u001b[7d"] +[1.050, "o", "\u001b[2;33H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b6\u001b[6d\b6\r\u001b[7d"] +[1.053, "o", "\u001b[2;33H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b"] +[0.000, "o", "7\u001b[6d\b7\r\u001b[7d"] +[1.049, "o", "\u001b[1;28H\u001b[2P\u001b[2;31H8s\u001b[K\u001b[3;23HTrue 8s\u001b[K\u001b[4d\b\b8"] +[0.000, "o", "s\u001b[K\u001b[5d\b\b8s\u001b[K\u001b[6d\b\b8"] +[0.000, "o", "s\u001b[K\r\u001b[7d"] +[1.051, "o", "\u001b[2;31H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b"] +[0.000, "o", "9\u001b[6d\b9\r\u001b[7d"] +[1.053, "o", "\u001b[2;31H11s\u001b[3;31H11s\u001b[4;31H11s\u001b[5;31H1"] +[0.000, "o", "1s\u001b[6;31H11s\r\u001b[7d"] +[0.951, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.597, "m", ""] +[0.360, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.258, "o", "y"] +[0.000, "o", "\byq"] +[0.001, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "1"] +[0.001, "o", "0"] +[0.000, "o", "-"] +[0.000, "o", "b"] +[0.001, "o", "g"] +[0.000, "o", "p"] +[0.000, "o", "-"] +[0.001, "o", "p"] +[0.000, "o", "e"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "b"] +[0.000, "o", "g"] +[0.000, "o", "p"] +[0.001, "o", "-"] +[0.000, "o", "p"] +[0.000, "o", "e"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "s"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.001, "o", "m"] +[0.005, "o", "\u001b[48D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m0\u001b[4m-\u001b[4mb\u001b[4mg\u001b[4mp\u001b[4m-\u001b[4mp\u001b[4me\u001b[4me\u001b[4mr\u001b[4ms\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mb\u001b[4mg\u001b[4mp\u001b[4m-\u001b[4mp\u001b[4me\u001b[4me\u001b[4mr\u001b[4ms\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.906, "o", "\r\r\n"] +[0.007, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m BGPPeer\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-spine1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36maddress\u001b[0m:\u001b[32m 10.0.0.1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36masNumber\u001b[0m:\u001b[95m 65000\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mlocalAddress\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m interfaceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36maddressFamilies\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m l2vpnEvpn\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m enabled\u001b[0m:\u001b[95m true\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36msendCommunity\u001b[0m:\u001b[32m Both\u001b[0m\r\n"] +[0.000, "o", "---\r\n\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m BGPPeer\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-spine2\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36maddress\u001b[0m:\u001b[32m 10.0.0.2\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36masNumber\u001b[0m:\u001b[95m 65000\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mlocalAddress\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m interfaceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo0\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36maddressFamilies\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m l2vpnEvpn\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m enabled\u001b[0m:\u001b[95m true\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36msendCommunity\u001b[0m:\u001b[32m Both\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.877, "m", ""] +[0.943, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.000, "o", "a"] +[0.001, "o", "p"] +[0.000, "o", "p"] +[0.001, "o", "l"] +[0.000, "o", "y"] +[0.000, "o", " "] +[0.001, "o", "-"] +[0.000, "o", "k"] +[0.001, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "1"] +[0.000, "o", "0"] +[0.000, "o", "-"] +[0.001, "o", "b"] +[0.000, "o", "g"] +[0.000, "o", "p"] +[0.001, "o", "-"] +[0.000, "o", "p"] +[0.000, "o", "e"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.002, "o", "\u001b[41D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m0\u001b[4m-\u001b[4mb\u001b[4mg\u001b[4mp\u001b[4m-\u001b[4mp\u001b[4me\u001b[4me\u001b[4mr\u001b[4ms\u001b[24m"] +[1.075, "o", "\r\r\n"] +[0.078, "o", "bgppeer.networking.metal.ironcore.dev/leaf1-spine1 created\r\n"] +[0.005, "o", "bgppeer.networking.metal.ironcore.dev/leaf1-spine2 created\r\n"] +[0.005, "o", "bgppeer.networking.metal.ironcore.dev/leaf2-spine1 created\r\n"] +[0.006, "o", "bgppeer.networking.metal.ironcore.dev/leaf2-spine2 created\r\n"] +[0.006, "o", "bgppeer.networking.metal.ironcore.dev/leaf3-spine1 created\r\n"] +[0.006, "o", "bgppeer.networking.metal.ironcore.dev/leaf3-spine2 created\r\n"] +[0.004, "o", "bgppeer.networking.metal.ironcore.dev/spine1-leaf1 created\r\n"] +[0.007, "o", "bgppeer.networking.metal.ironcore.dev/spine1-leaf2 created\r\n"] +[0.005, "o", "bgppeer.networking.metal.ironcore.dev/spine1-leaf3 created\r\n"] +[0.005, "o", "bgppeer.networking.metal.ironcore.dev/spine2-leaf1 created\r\n"] +[0.005, "o", "bgppeer.networking.metal.ironcore.dev/spine2-leaf2 created\r\n"] +[0.004, "o", "bgppeer.networking.metal.ironcore.dev/spine2-leaf3 created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.779, "o", "w"] +[0.001, "o", "\bwa"] +[0.000, "o", "t"] +[0.000, "o", "c"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "b"] +[0.000, "o", "g"] +[0.001, "o", "p"] +[0.000, "o", "p"] +[0.000, "o", "e"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.001, "o", "i"] +[0.000, "o", "d"] +[0.002, "o", "\u001b[32D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[27Ce"] +[1.870, "o", "\r\r\n"] +[0.004, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.051, "o", "\u001b[H\u001b[JNAME\u001b[1;16H"] +[0.000, "o", "DEVICE READY CONFIGURED OPERATIONAL SESSION STATE LAST ESTABLISHED ADVERTISED PREFIXES AGE\r\u001b[2dleaf1-spine1 leaf1\u001b[2;119H4s\r\u001b[3d"] +[0.000, "o", "leaf1-spine2 leaf1\u001b[3;119H4s\r\u001b[4dleaf2-spine1 leaf2 False True\u001b[4;48HFalse\u001b[4;62HIdle\u001b[4;78H33s\u001b[4;97H0 (L2vpnEvpn)\u001b[4;119H4s\r\u001b[5dleaf2-spine2 leaf2\u001b[5;119H"] +[0.000, "o", "4s\r\u001b[6dleaf3-spine1 leaf3\u001b[6;119H4s\r\u001b[7dleaf3-spine2 leaf3\u001b[7;119H4s\r\u001b[8dspine1-leaf1 spine1 Unknown\u001b[8;119H"] +[0.000, "o", "4s\r\u001b[9dspine1-leaf2 spine1 False True\u001b[9;48HFalse\u001b[9;62HIdle\u001b[9;78H36s\u001b[9;97H0 (L2vpnEvpn)\u001b[9;119H4s\r\u001b[10dspine1-leaf3 spine1\u001b[10;119H4s\r\u001b[11dspine2-leaf1 spine2\u001b[11;119H4s\r\u001b[12dspine2-leaf2 spine2\u001b[12;119H"] +[0.000, "o", "4s\r\u001b[13dspine2-leaf3 spine2\u001b[13;119H"] +[0.000, "o", "4s\r\u001b[14d"] +[1.051, "o", "\u001b[2;119H5\u001b[3d\b5\u001b[4;79H4\u001b[4;119H5\u001b[5d\b"] +[0.000, "o", "5\u001b[6d\b"] +[0.000, "o", "5\u001b[7d\b5\u001b[8d\b"] +[0.000, "o", "5\u001b[9;79H7\u001b[9;119H"] +[0.000, "o", "5\u001b[10d\b5\u001b[11d\b"] +[0.000, "o", "5\u001b[12d\b5\u001b[13d\b5\r\u001b[14d"] +[1.053, "o", "\u001b[2;25HUnknown Unknown\u001b[48GUnknown\u001b[2;119H6\u001b[3d\b6\u001b[4;79H5\u001b[4;119H"] +[0.000, "o", "6\u001b[5;25HUnknown Unknown\u001b[48GUnknown\u001b[5;119H6\u001b[6d\b"] +[0.000, "o", "6\u001b[7d\b"] +[0.000, "o", "6\u001b[8d\b6\u001b[9;79H8\u001b[9;119H6\u001b[10d\b6\u001b[11d\b6\u001b[12d\b"] +[0.000, "o", "6\u001b[13d\b"] +[0.000, "o", "6\r\u001b[14d"] +[1.053, "o", "\u001b[2;25HFalse True \u001b[48GFalse \u001b[62GIdle\u001b[2;78H33s\u001b[2;97H0 (L2vpnEvpn)\u001b[2;119H7\u001b[3d\b"] +[0.000, "o", "7\u001b[4;79H6\u001b[4;119H7\u001b[5;25H"] +[0.000, "o", "False True \u001b[48G"] +[0.000, "o", "False \u001b[62G"] +[0.000, "o", "Idle\u001b[5;78H31s\u001b[5;97H0 (L2vpnEvpn)\u001b[5;119H"] +[0.000, "o", "7\u001b[6d\b7\u001b[7d\b7\u001b[8d\b7\u001b[9;79H9\u001b[9;119H7\u001b[10d\b7\u001b[11d\b7\u001b[12d\b7\u001b[13d\b"] +[0.000, "o", "7\r\u001b[14d"] +[1.055, "o", "\u001b[2;79H4\u001b[2;119H8\u001b[3d\b8\u001b[4;79H7\u001b[4;119H8\u001b[5;79H2\u001b[5;119H"] +[0.000, "o", "8\u001b[6d\b8\u001b[7d\b8\u001b[8d\b"] +[0.000, "o", "8\u001b[9;78H"] +[0.000, "o", "40\u001b[9;119H"] +[0.000, "o", "8\u001b[10d\b"] +[0.000, "o", "8\u001b[11d\b8\u001b[12d\b8\u001b[13d\b"] +[0.000, "o", "8\r\u001b[14d"] +[1.053, "o", "\u001b[2;79H5\u001b[2;119H9\u001b[3d\b9\u001b[4;79H8\u001b[4;119H9\u001b[5;79H3\u001b[5;119H"] +[0.000, "o", "9\u001b[6d\b9\u001b[7d\b"] +[0.000, "o", "9\u001b[8d\b"] +[0.000, "o", "9\u001b[9;79H1\u001b[9;119H"] +[0.000, "o", "9\u001b[10d\b9\u001b[11d\b9\u001b[12d\b9\u001b[13d\b"] +[0.000, "o", "9\r\u001b[14d"] +[1.053, "o", "\u001b[2;79H6\u001b[2;119H10s\u001b[3;119H10s\u001b[4;79H9\u001b[4;119H1"] +[0.000, "o", "0s\u001b[5;79H4\u001b[5;119H10s\u001b[6;25HUnknown Unknown\u001b[48GUnknown\u001b[6;119H10s\u001b[7;119H1"] +[0.000, "o", "0s\u001b[8;119H10s\u001b[9;79H2\u001b[9;119H10s\u001b[10;119H10s\u001b[11;119H10s\u001b[12;119H10s\u001b[13;25HUnknown Unknown\u001b[48GUnknown\u001b[13;119H1"] +[0.000, "o", "0s\r\u001b[14d"] +[1.053, "o", "\u001b[2;79H8\u001b[2;120H2\u001b[3d\b2\u001b[4;78H41\u001b[4;120H2\u001b[5;79H6\u001b[5;120H2\u001b[6d\b"] +[0.000, "o", "2\u001b[7d\b2\u001b[8d\b2\u001b[9;79H4\u001b[9;120H"] +[0.000, "o", "2\u001b[10d\b"] +[0.000, "o", "2\u001b[11d\b"] +[0.000, "o", "2\u001b[12d\b2\u001b[13d\b2\r\u001b[14d"] +[1.055, "o", "\u001b[2;79H9\u001b[2;120H3\u001b[3d\b3\u001b[4;79H2\u001b[4;120H3\u001b[5;79H7\u001b[5;120H3\u001b[6;25HFalse True \u001b[48G"] +[0.000, "o", "False \u001b[62GIdle\u001b[6;78H35s\u001b[6;97H0 (L2vpnEvpn)\u001b[6;120H"] +[0.000, "o", "3\u001b[7d\b3\u001b[8d\b"] +[0.000, "o", "3\u001b[9;79H"] +[0.000, "o", "5\u001b[9;120H"] +[0.000, "o", "3\u001b[10d\b3\u001b[11d\b3\u001b[12d\b3\u001b[13;25HFalse True \u001b[48G"] +[0.000, "o", "False \u001b[62G"] +[0.000, "o", "Idle\u001b[13;78H"] +[0.000, "o", "34s\u001b[13;97H"] +[0.000, "o", "0 (L2vpnEvpn)\u001b[13;120H"] +[0.000, "o", "3\r\u001b[14d"] +[1.052, "o", "\u001b[2;78H40\u001b[2;120H4\u001b[3d\b4\u001b[4;79H3\u001b[4;120H4\u001b[5;79H8\u001b[5;120H4\u001b[6;79H6\u001b[6;120H"] +[0.000, "o", "4\u001b[7d\b4\u001b[8d\b4\u001b[9;79H6\u001b[9;120H4\u001b[10d\b4\u001b[11d\b"] +[0.000, "o", "4\u001b[12d\b4\u001b[13;79H5\u001b[13;120H4\r\u001b[14d"] +[1.052, "o", "\u001b[2;79H1\u001b[2;120H5\u001b[3d\b5\u001b[4;79H4\u001b[4;120H5\u001b[5;79H9\u001b[5;120H5\u001b[6;79H7\u001b[6;120H"] +[0.000, "o", "5\u001b[7d\b5\u001b[8d\b5\u001b[9;79H7\u001b[9;120H5\u001b[10d\b"] +[0.000, "o", "5\u001b[11d\b"] +[0.000, "o", "5\u001b[12d\b5\u001b[13;79H6\u001b[13;120H"] +[0.000, "o", "5\r\u001b[14d"] +[1.050, "o", "\u001b[2;79H2\u001b[2;120H6\u001b[3;25HUnknown Unknown\u001b[48GUnknown\u001b[3;120H6\u001b[4;79H5\u001b[4;120H6\u001b[5;78H40\u001b[5;120H6\u001b[6;79H8\u001b[6;120H6\u001b[7d\b6\u001b[8d\b6\u001b[9;79H8\u001b[9;120H"] +[0.000, "o", "6\u001b[10d\b6\u001b[11d\b6\u001b[12d\b6\u001b[13;79H7\u001b[13;120H6\r\u001b[14d"] +[1.052, "o", "\u001b[2;79H3\u001b[2;120H7\u001b[3d\b7\u001b[4;79H6\u001b[4;120H7\u001b[5;79H1\u001b[5;120H7\u001b[6;79H9\u001b[6;120H"] +[0.000, "o", "7\u001b[7d\b"] +[0.000, "o", "7\u001b[8d\b"] +[0.000, "o", "7\u001b[9;79H"] +[0.000, "o", "9\u001b[9;120H"] +[0.000, "o", "7\u001b[10d\b7\u001b[11d\b7\u001b[12d\b7\u001b[13;79H8\u001b[13;120H7\r\u001b[14d"] +[1.053, "o", "\u001b[2;79H4\u001b[2;120H8\u001b[3;25HFalse True \u001b[48GFalse \u001b[62GIdle\u001b[3;78H33s\u001b[3;97H0 (L2vpnEvpn)\u001b[3;120H8\u001b[4;79H7\u001b[4;120H8\u001b[5;79H"] +[0.000, "o", "2\u001b[5;120H8\u001b[6;78H40\u001b[6;120H8\u001b[7d\b"] +[0.000, "o", "8\u001b[8d\b8\u001b[9;25HTrue \u001b[9;48HTrue \u001b[9;62HEstablished\u001b[79G4\u001b[9;120H8\u001b[10d\b"] +[0.000, "o", "8\u001b[11d\b"] +[0.000, "o", "8\u001b[12d\b8\u001b[13;79H9\u001b[13;120H8\r\u001b[14d"] +[1.053, "o", "\u001b[2;79H5\u001b[2;120H9\u001b[3;79H4\u001b[3;120H9\u001b[4;79H8\u001b[4;120H9\u001b[5;79H3\u001b[5;120H9\u001b[6;79H1\u001b[6;120H9\u001b[7d\b"] +[0.000, "o", "9\u001b[8d\b9\u001b[9;79H5\u001b[9;120H9\u001b[10d\b9\u001b[11d\b9\u001b[12d\b9\u001b[13;78H40\u001b[13;120H9\r\u001b[14d"] +[1.053, "o", "\u001b[2;79H6\u001b[2;119H20\u001b[3;79H5\u001b[3;119H20\u001b[4;79H"] +[0.000, "o", "9\u001b[4;119H20\u001b[5;79H4\u001b[5;119H20\u001b[6;79H2\u001b[6;119H20\u001b[7d\b\b"] +[0.000, "o", "20\u001b[8d\b\b20\u001b[9;79H6\u001b[9;119H"] +[0.000, "o", "20\u001b[10d\b\b20\u001b[11d\b\b20\u001b[12d\b\b20\u001b[13;79H1\u001b[13;119H"] +[0.000, "o", "20\r\u001b[14d"] +[1.051, "o", "\u001b[2;79H7\u001b[2;120H1\u001b[3;79H6\u001b[3;120H1\u001b[4;78H50\u001b[4;120H1\u001b[5;79H5\u001b[5;120H1\u001b[6;79H3\u001b[6;120H1\u001b[7d\b"] +[0.000, "o", "1\u001b[8d\b1\u001b[9;79H7\u001b[9;120H1\u001b[10d\b1\u001b[11d\b"] +[0.000, "o", "1\u001b[12d\b1\u001b[13;79H2\u001b[13;120H1\r\u001b[14d"] +[1.054, "o", "\u001b[2;79H8\u001b[2;120H2\u001b[3;79H7\u001b[3;120H2\u001b[4;79H1\u001b[4;120H2\u001b[5;79H6\u001b[5;120H2\u001b[6;79H4\u001b[6;120H2\u001b[7d\b2\u001b[8d\b2\u001b[9;79H8\u001b[9;120H"] +[0.000, "o", "2\u001b[10d\b2\u001b[11d\b2\u001b[12d\b2\u001b[13;79H3\u001b[13;120H"] +[0.000, "o", "2\r\u001b[14d"] +[1.055, "o", "\u001b[2;79H9\u001b[2;120H3\u001b[3;79H8\u001b[3;120H3\u001b[4;25HTrue \u001b[4;48HTrue \u001b[4;62HEstablished 47\u001b[4;120H3\u001b[5;79H7\u001b[5;120H3\u001b[6;79H5\u001b[6;120H"] +[0.000, "o", "3\u001b[7d\b3\u001b[8d\b3\u001b[9;79H9\u001b[9;120H3\u001b[10d\b"] +[0.000, "o", "3\u001b[11d\b3\u001b[12d\b3\u001b[13;79H"] +[0.000, "o", "4\u001b[13;120H"] +[0.000, "o", "3\r\u001b[14d"] +[1.049, "o", "\u001b[2;78H50\u001b[2;120H4\u001b[3;79H9\u001b[3;120H4\u001b[4;79H8\u001b[4;120H4\u001b[5;79H8\u001b[5;120H4\u001b[6;79H"] +[0.000, "o", "6\u001b[6;120H4\u001b[7d\b4\u001b[8d\b4\u001b[9;78H50\u001b[9;120H"] +[0.000, "o", "4\u001b[10d\b4\u001b[11d\b4\u001b[12d\b4\u001b[13;79H"] +[0.000, "o", "5\u001b[13;120H4\r\u001b[14d"] +[1.050, "o", "\u001b[2;79H1\u001b[2;120H5\u001b[3;78H40\u001b[3;120H5\u001b[4;79H9\u001b[4;120H5\u001b[5;79H9\u001b[5;120H5\u001b[6;79H"] +[0.000, "o", "7\u001b[6;120H5\u001b[7d\b5\u001b[8d\b5\u001b[9;79H"] +[0.000, "o", "1\u001b[9;120H"] +[0.000, "o", "5\u001b[10d\b5\u001b[11d\b"] +[0.000, "o", "5\u001b[12d\b5\u001b[13;79H"] +[0.000, "o", "6\u001b[13;120H"] +[0.000, "o", "5\r\u001b[14d"] +[1.052, "o", "\u001b[2;79H2\u001b[2;120H6\u001b[3;79H1\u001b[3;120H6\u001b[4;78H50\u001b[4;120H6\u001b[5;78H50\u001b[5;120H6\u001b[6;79H8\u001b[6;120H"] +[0.000, "o", "6\u001b[7d\b6\u001b[8;35HUnknown\u001b[48GUnknown\u001b[8;120H"] +[0.000, "o", "6\u001b[9;79H"] +[0.000, "o", "2\u001b[9;120H6\u001b[10d\b"] +[0.000, "o", "6\u001b[11;25H"] +[0.001, "o", "Unknown Unknown\u001b[48G"] +[0.000, "o", "Unknown\u001b[11;120H"] +[0.000, "o", "6\u001b[12d\b6\u001b[13;79H7\u001b[13;120H"] +[0.000, "o", "6\r\u001b[14d"] +[1.053, "o", "\u001b[1;30H\u001b[2P\u001b[2;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[2;76H53s \u001b[2;95H0 (L2vpnEvpn) \u001b[117G"] +[0.000, "o", "27s\u001b[K\u001b[3;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[3;76H42s \u001b[3;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G27"] +[0.000, "o", "s\u001b[K\u001b[4;33HTrue \u001b[46GTrue \u001b[4;60HEstablished 51s \u001b[4;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G"] +[0.000, "o", "27s\u001b[K\u001b[5;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[5;76H51s \u001b[5;95H0 (L2vpnEvpn) \u001b[117G27"] +[0.000, "o", "s\u001b[K\u001b[6;33HTrue \u001b[46G"] +[0.000, "o", "False \u001b[60GIdle \u001b[6;76H49s \u001b[6;95H0 (L2vpnEvpn) \u001b[117G27s\u001b[K\u001b[7;117H27s\u001b[K\u001b[8;25HFalse True False Idle\u001b[8;76H34s\u001b[8;95H"] +[0.000, "o", "0 (L2vpnEvpn)\u001b[8;117H27s\u001b[K\u001b[9;33H"] +[0.000, "o", "True \u001b[46GTrue \u001b[9;60HEstablished 53s \u001b[9;95H0 (L2vpnEvpn) \u001b[117G"] +[0.000, "o", "27"] +[0.000, "o", "s\u001b[K\u001b[10;117H27s\u001b[K\u001b[11;25HFalse True False Idle\u001b[11;76H33s\u001b[11;95H0 (L2vpnEvpn)\u001b[11;117H"] +[0.000, "o", "27"] +[0.000, "o", "s\u001b[K\u001b[12;117H27s\u001b[K\u001b[13;33H"] +[0.000, "o", "True \u001b[46GFalse \u001b[60G"] +[0.000, "o", "Idle \u001b[13;76H48s \u001b[13;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G27s\u001b[K\r\u001b[14d"] +[1.051, "o", "\u001b[2;77H4\u001b[2;118H8\u001b[3;77H3\u001b[3;118H8\u001b[4;77H2\u001b[4;118H8\u001b[5;77H2\u001b[5;118H8\u001b[6;76H50\u001b[6;118H"] +[0.000, "o", "8\u001b[7d\b8\u001b[8;77H5\u001b[8;118H8\u001b[9;77H4\u001b[9;118H"] +[0.000, "o", "8\u001b[10d\b8\u001b[11;77H"] +[0.000, "o", "4\u001b[11;118H"] +[0.000, "o", "8\u001b[12d\b8\u001b[13;77H9\u001b[13;118H8\r\u001b[14d"] +[1.050, "o", "\u001b[2;77H5\u001b[2;118H9\u001b[3;77H4\u001b[3;118H9\u001b[4;77H3\u001b[4;118H9\u001b[5;77H3\u001b[5;118H"] +[0.000, "o", "9\u001b[6;77H1\u001b[6;118H9\u001b[7d\b9\u001b[8;77H6\u001b[8;118H9\u001b[9;77H5\u001b[9;118H"] +[0.000, "o", "9\u001b[10d\b9\u001b[11;77H5\u001b[11;118H"] +[0.000, "o", "9\u001b[12d\b9\u001b[13;76H50\u001b[13;118H9\r\u001b[14d"] +[1.052, "o", "\u001b[1;30H CONFIGURED OPERATIONAL SESSION STATE LAST ESTABLISHED ADVERTISED PREFIXES AGE\u001b[2;33H True\u001b[46G False\u001b[60G Idle\u001b[2;76H 56s\u001b[2;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G 30s\u001b[3;33H True\u001b[46G"] +[0.000, "o", " False\u001b[60G Idle\u001b[3;76H 45s\u001b[3;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G "] +[0.000, "o", "30s\u001b[4;33H True\u001b[46G"] +[0.000, "o", " True\u001b[4;60H"] +[0.000, "o", " Established 54s\u001b[4;95H 0 (L2vpnEvpn)\u001b[117G 30s\u001b[5;33H"] +[0.000, "o", " True\u001b[46G False\u001b[60G Idle\u001b[5;76H 54s\u001b[5;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G 30s\u001b[6;33H"] +[0.000, "o", " True\u001b[46G False\u001b[60G Idle\u001b[6;76H"] +[0.000, "o", " 52s\u001b[6;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G 30s\u001b[7;117H 30s\u001b[8;33H"] +[0.000, "o", " True\u001b[46G False\u001b[60G Idle\u001b[8;76H"] +[0.000, "o", " 37s\u001b[8;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G 30s\u001b[9;33H True\u001b[46G"] +[0.000, "o", " True\u001b[9;60H"] +[0.000, "o", " Established 56s\u001b[9;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G "] +[0.000, "o", "30s\u001b[10;25H"] +[0.000, "o", "Unknown Unknown\u001b[48GUnknown\u001b[10;117H 30s\u001b[11;33H True\u001b[46G False\u001b[60G Idle\u001b[11;76H"] +[0.000, "o", " 36s\u001b[11;95H 0 (L2vpnEvpn)\u001b[117G "] +[0.000, "o", "30s\u001b[12;117H"] +[0.000, "o", " 30s\u001b[13;33H"] +[0.000, "o", " True\u001b[46G"] +[0.000, "o", " False\u001b[60G Idle\u001b[13;76H 51s\u001b[13;95H 0 (L2vpnEvpn)\u001b[117G "] +[0.000, "o", "30s\r\u001b[14d"] +[1.054, "o", "\u001b[2;79H8\u001b[2;120H2\u001b[3;79H7\u001b[3;120H2\u001b[4;79H6\u001b[4;120H2\u001b[5;79H6\u001b[5;120H2\u001b[6;79H4\u001b[6;120H2\u001b[7d\b"] +[0.000, "o", "2\u001b[8;79H9\u001b[8;120H2\u001b[9;79H8\u001b[9;120H2\u001b[10d\b2\u001b[11;79H8\u001b[11;120H"] +[0.000, "o", "2\u001b[12d\b2\u001b[13;79H3\u001b[13;120H2\r\u001b[14d"] +[1.053, "o", "\u001b[1;30H\u001b[2P\u001b[2;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[2;76H59s \u001b[2;95H0 (L2vpnEvpn) \u001b[117G33"] +[0.000, "o", "s\u001b[K\u001b[3;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[3;76H48s \u001b[3;95H0 (L2vpnEvpn) \u001b[117G33s\u001b[K\u001b[4;33H"] +[0.000, "o", "True \u001b[46GTrue \u001b[4;60H"] +[0.000, "o", "Established 57s \u001b[4;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G33s\u001b[K\u001b[5;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[5;76H57s \u001b[5;95H0 (L2vpnEvpn) \u001b[117G33s\u001b[K\u001b[6;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[6;76H55s \u001b[6;95H0 (L2vpnEvpn) \u001b[117G33s\u001b[K\u001b[7;117H33"] +[0.000, "o", "s\u001b[K\u001b[8;33HTrue \u001b[46G"] +[0.000, "o", "False \u001b[60G"] +[0.000, "o", "Idle \u001b[8;76H"] +[0.000, "o", "40s \u001b[8;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G33s\u001b[K\u001b[9;33HTrue \u001b[46GTrue \u001b[9;60HEstablished 59s \u001b[9;95H0 (L2vpnEvpn) \u001b[117G33s\u001b[K\u001b[10;25HFalse True False Idle\u001b[10;76H35s\u001b[10;95H0 (L2vpnEvpn)\u001b[10;117H33s\u001b[K\u001b[11;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[11;76H39s \u001b[11;95H0 (L2vpnEvpn) \u001b[117G33s\u001b[K\u001b[12;117H"] +[0.000, "o", "33s\u001b[K\u001b[13;33HTrue \u001b[46G"] +[0.000, "o", "False \u001b[60GIdle \u001b[13;76H54s \u001b[13;95H0 (L2vpnEvpn) \u001b[117G33s\u001b[K\r\u001b[14d"] +[1.052, "o", "\u001b[2;76H60\u001b[2;118H4\u001b[3;77H9\u001b[3;118H4\u001b[4;77H8\u001b[4;118H4\u001b[5;77H8\u001b[5;118H"] +[0.000, "o", "4\u001b[6;77H6\u001b[6;118H"] +[0.000, "o", "4\u001b[7d\b4\u001b[8;77H1\u001b[8;118H4\u001b[9;76H"] +[0.000, "o", "60\u001b[9;118H4\u001b[10;77H"] +[0.000, "o", "6\u001b[10;118H"] +[0.000, "o", "4\u001b[11;76H"] +[0.000, "o", "40\u001b[11;118H"] +[0.000, "o", "4\u001b[12d\b4\u001b[13;77H5\u001b[13;118H4\r\u001b[14d"] +[1.053, "o", "\u001b[2;77H1\u001b[2;118H5\u001b[3;25HTrue \u001b[3;46HTrue \u001b[3;60HEstablished 34\u001b[3;118H5\u001b[4;77H9\u001b[4;118H5\u001b[5;77H9\u001b[5;118H5\u001b[6;77H7\u001b[6;118H"] +[0.000, "o", "5\u001b[7d\b5\u001b[8;77H2\u001b[8;118H5\u001b[9;77H1\u001b[9;118H"] +[0.000, "o", "5\u001b[10;77H7\u001b[10;118H5\u001b[11;77H1\u001b[11;118H"] +[0.000, "o", "5\u001b[12d\b5\u001b[13;77H6\u001b[13;118H"] +[0.000, "o", "5\r\u001b[14d"] +[1.048, "o", "\u001b[1;30H CONFIGURED OPERATIONAL SESSION STATE LAST ESTABLISHED ADVERTISED PREFIXES AGE\u001b[2;33H True\u001b[46G False\u001b[60G Idle\u001b[2;76H 62s\u001b[2;95H 0 (L2vpnEvpn)\u001b[117G"] +[0.000, "o", " 36s\u001b[3;33H True\u001b[46G True\u001b[3;60H Established 35s\u001b[3;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G 36s\u001b[4;33H True\u001b[46G True\u001b[4;60H Established 60s\u001b[4;95H 0 (L2vpnEvpn)\u001b[117G 36s\u001b[5;33H True\u001b[46G"] +[0.000, "o", " False\u001b[60G Idle\u001b[5;76H"] +[0.000, "o", " 60s\u001b[5;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G"] +[0.000, "o", " "] +[0.000, "o", "36s\u001b[6;33H True\u001b[46G False\u001b[60G"] +[0.000, "o", " Idle\u001b[6;76H 58s\u001b[6;95H 0 (L2vpnEvpn)\u001b[117G"] +[0.000, "o", " "] +[0.000, "o", "36s\u001b[7;25HUnknown Unknown\u001b[48GUnknown\u001b[7;117H 36s\u001b[8;33H True\u001b[46G"] +[0.000, "o", " False\u001b[60G Idle\u001b[8;76H 43s\u001b[8;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G 36s\u001b[9;33H True\u001b[46G True\u001b[9;60H Established 62s\u001b[9;95H 0 (L2vpnEvpn)\u001b[117G"] +[0.000, "o", " "] +[0.000, "o", "36s\u001b[10;33H True\u001b[46G"] +[0.000, "o", " False\u001b[60G Idle\u001b[10;76H 38s\u001b[10;95H 0 (L2vpnEvpn)\u001b[117G 36s\u001b[11;33H True\u001b[46G False\u001b[60G"] +[0.000, "o", " Idle\u001b[11;76H 42s\u001b[11;95H 0 (L2vpnEvpn)\u001b[117G "] +[0.000, "o", "36s\u001b[12;25H"] +[0.000, "o", "Unknown Unknown\u001b[48GUnknown\u001b[12;117H 36s\u001b[13;33H True\u001b[46G False\u001b[60G Idle\u001b[13;76H 57s\u001b[13;95H"] +[0.000, "o", " 0 (L2vpnEvpn)\u001b[117G 36s\r\u001b[14d"] +[1.050, "o", "\u001b[1;30H\u001b[2P\u001b[2;33HTrue \u001b[46GFalse \u001b[60GIdle \u001b[2;76H63s \u001b[2;95H0 (L2vpnEvpn) \u001b[117G37s\u001b[K\u001b[3;33H"] +[0.000, "o", "True \u001b[46GTrue \u001b[3;60HEstablished 36s \u001b[3;95H0 (L2vpnEvpn) \u001b[117G37s\u001b[K\u001b[4;33H"] +[0.000, "o", "True \u001b[46GTrue \u001b[4;60H"] +[0.000, "o", "Established 61s \u001b[4;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G37s\u001b[K\u001b[5;33H"] +[0.000, "o", "True \u001b[46G"] +[0.000, "o", "False \u001b[60G"] +[0.000, "o", "Idle \u001b[5;76H"] +[0.000, "o", "61s \u001b[5;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G37s\u001b[K\u001b[6;33HTrue \u001b[46GFalse \u001b[60G"] +[0.000, "o", "Idle \u001b[6;76H59s \u001b[6;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G37"] +[0.000, "o", "s\u001b[K\u001b[7;25HFalse True False Idle\u001b[7;76H34s\u001b[7;95H0 (L2vpnEvpn)\u001b[7;117H37s\u001b[K\u001b[8;33H"] +[0.000, "o", "True \u001b[46G"] +[0.000, "o", "False \u001b[60G"] +[0.000, "o", "Idle \u001b[8;76H44s \u001b[8;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G"] +[0.000, "o", "37"] +[0.000, "o", "s\u001b[K\u001b[9;33H"] +[0.000, "o", "True \u001b[46GTrue \u001b[9;60H"] +[0.000, "o", "Established 63s \u001b[9;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G37s\u001b[K\u001b[10;33HTrue \u001b[46G"] +[0.000, "o", "False \u001b[60GIdle \u001b[10;76H39s \u001b[10;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G37"] +[0.000, "o", "s\u001b[K\u001b[11;33HTrue \u001b[46G"] +[0.000, "o", "False \u001b[60G"] +[0.000, "o", "Idle \u001b[11;76H43s \u001b[11;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G37s\u001b[K\u001b[12;25HFalse True False Idle\u001b[12;76H33s\u001b[12;95H"] +[0.000, "o", "0 (L2vpnEvpn)\u001b[12;117H"] +[0.000, "o", "37s\u001b[K\u001b[13;33H"] +[0.000, "o", "True \u001b[46G"] +[0.000, "o", "False \u001b[60G"] +[0.000, "o", "Idle \u001b[13;76H58s \u001b[13;95H"] +[0.000, "o", "0 (L2vpnEvpn) \u001b[117G37s\u001b[K\r\u001b[14d"] +[1.050, "o", "\u001b[2;77H4\u001b[2;118H8\u001b[3;77H7\u001b[3;118H8\u001b[4;77H2\u001b[4;118H8\u001b[5;77H2\u001b[5;118H8\u001b[6;76H60\u001b[6;118H8\u001b[7;77H5\u001b[7;118H"] +[0.000, "o", "8\u001b[8;77H5\u001b[8;118H8\u001b[9;77H4\u001b[9;118H8\u001b[10;76H40\u001b[10;118H"] +[0.000, "o", "8\u001b[11;77H4\u001b[11;118H8\u001b[12;77H4\u001b[12;118H8\u001b[13;77H"] +[0.000, "o", "9\u001b[13;118H"] +[0.000, "o", "8\r\u001b[14d"] +[1.051, "o", "\u001b[2;77H5\u001b[2;118H9\u001b[3;77H8\u001b[3;118H9\u001b[4;77H3\u001b[4;118H9\u001b[5;77H3\u001b[5;118H9\u001b[6;77H1\u001b[6;118H9\u001b[7;77H6\u001b[7;118H9\u001b[8;77H"] +[0.000, "o", "6\u001b[8;118H9\u001b[9;77H5\u001b[9;118H9\u001b[10;77H1\u001b[10;118H9\u001b[11;77H5\u001b[11;118H9\u001b[12;77H5\u001b[12;118H"] +[0.000, "o", "9\u001b[13;76H"] +[0.000, "o", "60\u001b[13;118H"] +[0.000, "o", "9\r\u001b[14d"] +[1.054, "o", "\u001b[2;77H6\u001b[2;117H40\u001b[3;77H9\u001b[3;117H40\u001b[4;77H4\u001b[4;117H40\u001b[5;77H4\u001b[5;117H40\u001b[6;77H2\u001b[6;117H"] +[0.000, "o", "40\u001b[7;77H7\u001b[7;117H40\u001b[8;77H7\u001b[8;117H40\u001b[9;77H6\u001b[9;117H40\u001b[10;77H2\u001b[10;117H40\u001b[11;77H6\u001b[11;117H40\u001b[12;77H6\u001b[12;117H40\u001b[13;77H1\u001b[13;117H"] +[0.000, "o", "40\r\u001b[14d"] +[1.055, "o", "\u001b[2;77H7\u001b[2;118H1\u001b[3;76H40\u001b[3;118H1\u001b[4;77H5\u001b[4;118H1\u001b[5;77H5\u001b[5;118H1\u001b[6;77H3\u001b[6;118H1\u001b[7;77H"] +[0.000, "o", "8\u001b[7;118H1\u001b[8;77H8\u001b[8;118H1\u001b[9;77H7\u001b[9;118H1\u001b[10;77H3\u001b[10;118H1\u001b[11;77H7\u001b[11;118H1\u001b[12;77H7\u001b[12;118H1\u001b[13;77H"] +[0.000, "o", "2\u001b[13;118H"] +[0.000, "o", "1\r\u001b[14d"] +[1.059, "o", "\u001b[2;77H8\u001b[2;118H2\u001b[3;77H1\u001b[3;118H2\u001b[4;77H6\u001b[4;118H2\u001b[5;77H6\u001b[5;118H2\u001b[6;77H4\u001b[6;118H2\u001b[7;77H"] +[0.000, "o", "9\u001b[7;118H2\u001b[8;25HTrue \u001b[8;46HTrue \u001b[8;60HEstablished\u001b[77G3\u001b[8;118H2\u001b[9;77H8\u001b[9;118H"] +[0.000, "o", "2\u001b[10;77H4\u001b[10;118H"] +[0.000, "o", "2\u001b[11;77H8\u001b[11;118H2\u001b[12;77H8\u001b[12;118H2\u001b[13;77H3\u001b[13;118H"] +[0.000, "o", "2\r\u001b[14d"] +[1.055, "o", "\u001b[2;77H9\u001b[2;118H3\u001b[3;77H2\u001b[3;118H3\u001b[4;77H7\u001b[4;118H3\u001b[5;77H7\u001b[5;118H3\u001b[6;77H5\u001b[6;118H"] +[0.000, "o", "3\u001b[7;76H40\u001b[7;118H3\u001b[8;77H4\u001b[8;118H3\u001b[9;77H9\u001b[9;118H3\u001b[10;77H5\u001b[10;118H3\u001b[11;77H9\u001b[11;118H"] +[0.000, "o", "3\u001b[12;77H"] +[0.000, "o", "9\u001b[12;118H"] +[0.000, "o", "3\u001b[13;77H4\u001b[13;118H"] +[0.000, "o", "3\r\u001b[14d"] +[1.055, "o", "\u001b[2;76H70\u001b[2;118H4\u001b[3;77H3\u001b[3;118H4\u001b[4;77H8\u001b[4;118H4\u001b[5;77H8\u001b[5;118H4\u001b[6;77H6\u001b[6;118H4\u001b[7;77H1\u001b[7;118H4\u001b[8;77H5\u001b[8;118H4\u001b[9;76H70\u001b[9;118H4\u001b[10;77H6\u001b[10;118H"] +[0.000, "o", "4\u001b[11;76H50\u001b[11;118H4\u001b[12;76H40\u001b[12;118H4\u001b[13;77H5\u001b[13;118H"] +[0.000, "o", "4\r\u001b[14d"] +[1.058, "o", "\u001b[2;77H1\u001b[2;118H5\u001b[3;77H4\u001b[3;118H5\u001b[4;77H9\u001b[4;118H5\u001b[5;77H9\u001b[5;118H5\u001b[6;25HTrue \u001b[6;46H"] +[0.000, "o", "True \u001b[6;60HEstablished 40\u001b[6;118H5\u001b[7;77H2\u001b[7;118H5\u001b[8;77H6\u001b[8;118H5\u001b[9;77H1\u001b[9;118H5\u001b[10;77H7\u001b[10;118H5\u001b[11;77H1\u001b[11;118H5\u001b[12;77H"] +[0.000, "o", "1\u001b[12;118H5\u001b[13;77H"] +[0.000, "o", "6\u001b[13;118H5\r\u001b[14d"] +[1.056, "o", "\u001b[2;77H2\u001b[2;118H6\u001b[3;77H5\u001b[3;118H6\u001b[4;76H70\u001b[4;118H6\u001b[5;76H70\u001b[5;118H6\u001b[6;77H1\u001b[6;118H"] +[0.000, "o", "6\u001b[7;77H3\u001b[7;118H6\u001b[8;77H7\u001b[8;118H6\u001b[9;77H2\u001b[9;118H6\u001b[10;77H8\u001b[10;118H"] +[0.000, "o", "6\u001b[11;77H2\u001b[11;118H"] +[0.000, "o", "6\u001b[12;77H2\u001b[12;118H"] +[0.000, "o", "6\u001b[13;77H7\u001b[13;118H"] +[0.000, "o", "6\r\u001b[14d"] +[1.061, "o", "\u001b[2;77H3\u001b[2;118H7\u001b[3;77H6\u001b[3;118H7\u001b[4;77H1\u001b[4;118H7\u001b[5;77H1\u001b[5;118H7\u001b[6;77H2\u001b[6;118H"] +[0.000, "o", "7\u001b[7;77H4\u001b[7;118H7\u001b[8;77H8\u001b[8;118H7\u001b[9;77H3\u001b[9;118H7\u001b[10;77H9\u001b[10;118H7\u001b[11;77H3\u001b[11;118H"] +[0.000, "o", "7\u001b[12;77H3\u001b[12;118H"] +[0.000, "o", "7\u001b[13;77H8\u001b[13;118H"] +[0.000, "o", "7\r\u001b[14d"] +[1.055, "o", "\u001b[2;77H4\u001b[2;118H8\u001b[3;77H7\u001b[3;118H8\u001b[4;77H2\u001b[4;118H8\u001b[5;77H2\u001b[5;118H8\u001b[6;77H3\u001b[6;118H8\u001b[7;77H5\u001b[7;118H8\u001b[8;77H9\u001b[8;118H"] +[0.000, "o", "8\u001b[9;77H4\u001b[9;118H8\u001b[10;25HTrue \u001b[10;46HTrue \u001b[10;60HEstablished\u001b[77G"] +[0.000, "o", "3\u001b[10;118H8\u001b[11;77H4\u001b[11;118H8\u001b[12;77H"] +[0.000, "o", "4\u001b[12;118H"] +[0.000, "o", "8\u001b[13;77H9\u001b[13;118H"] +[0.000, "o", "8\r\u001b[14d"] +[1.056, "o", "\u001b[2;25HTrue \u001b[2;46HTrue \u001b[2;60HEstablished 49\u001b[2;118H9\u001b[3;77H8\u001b[3;118H9\u001b[4;77H3\u001b[4;118H9\u001b[5;77H3\u001b[5;118H9\u001b[6;77H4\u001b[6;118H9\u001b[7;77H6\u001b[7;118H9\u001b[8;76H50\u001b[8;118H"] +[0.000, "o", "9\u001b[9;77H5\u001b[9;118H9\u001b[10;77H4\u001b[10;118H9\u001b[11;77H5\u001b[11;118H9\u001b[12;77H5\u001b[12;118H9\u001b[13;76H70\u001b[13;118H9\r\u001b[14d"] +[1.052, "o", "\u001b[2;76H50\u001b[2;117H50\u001b[3;77H9\u001b[3;117H50\u001b[4;77H4\u001b[4;117H50\u001b[5;77H4\u001b[5;117H50\u001b[6;77H"] +[0.000, "o", "5\u001b[6;117H50\u001b[7;77H7\u001b[7;117H50\u001b[8;77H1\u001b[8;117H50\u001b[9;77H6\u001b[9;117H50\u001b[10;77H"] +[0.000, "o", "5\u001b[10;117H"] +[0.000, "o", "50\u001b[11;77H"] +[0.000, "o", "6\u001b[11;117H"] +[0.000, "o", "50\u001b[12;77H"] +[0.000, "o", "6\u001b[12;117H50\u001b[13;77H1\u001b[13;117H"] +[0.000, "o", "50\r\u001b[14d"] +[1.055, "o", "\u001b[2;77H2\u001b[2;118H2\u001b[3;76H51\u001b[3;118H2\u001b[4;77H6\u001b[4;118H2\u001b[5;77H6\u001b[5;118H2\u001b[6;77H7\u001b[6;118H2\u001b[7;77H"] +[0.000, "o", "9\u001b[7;118H2\u001b[8;77H3\u001b[8;118H2\u001b[9;77H8\u001b[9;118H2\u001b[10;77H7\u001b[10;118H2\u001b[11;77H8\u001b[11;118H2\u001b[12;77H"] +[0.000, "o", "8\u001b[12;118H2\u001b[13;77H"] +[0.000, "o", "3\u001b[13;118H"] +[0.000, "o", "2\r\u001b[14d"] +[1.054, "o", "\u001b[2;77H3\u001b[2;118H3\u001b[3;77H2\u001b[3;118H3\u001b[4;77H7\u001b[4;118H3\u001b[5;77H7\u001b[5;118H3\u001b[6;77H8\u001b[6;118H3\u001b[7;25H"] +[0.000, "o", "True \u001b[7;46HTrue \u001b[7;60HEstablished\u001b[77G4\u001b[7;118H3\u001b[8;77H4\u001b[8;118H3\u001b[9;77H"] +[0.000, "o", "9\u001b[9;118H3\u001b[10;77H"] +[0.000, "o", "8\u001b[10;118H3\u001b[11;77H9\u001b[11;118H"] +[0.001, "o", "3\u001b[12;77H9\u001b[12;118H3\u001b[13;77H4\u001b[13;118H3\r\u001b[14d"] +[1.050, "o", "\u001b[2;77H4\u001b[2;118H4\u001b[3;77H3\u001b[3;118H4\u001b[4;77H8\u001b[4;118H4\u001b[5;77H8\u001b[5;118H4\u001b[6;77H"] +[0.000, "o", "9\u001b[6;118H4\u001b[7;77H5\u001b[7;118H4\u001b[8;77H5\u001b[8;118H4\u001b[9;76H80\u001b[9;118H4\u001b[10;77H9\u001b[10;118H4\u001b[11;25HTrue \u001b[11;46HTrue \u001b[11;60H"] +[0.000, "o", "Established\u001b[77G"] +[0.000, "o", "4\u001b[11;118H"] +[0.000, "o", "4\u001b[12;25H"] +[0.000, "o", "True \u001b[12;46HTrue \u001b[12;60HEstablished\u001b[77G"] +[0.000, "o", "5\u001b[12;118H"] +[0.000, "o", "4\u001b[13;77H"] +[0.000, "o", "5\u001b[13;118H4\r\u001b[14d"] +[1.056, "o", "\u001b[2;77H5\u001b[2;118H5\u001b[3;77H4\u001b[3;118H5\u001b[4;77H9\u001b[4;118H5\u001b[5;77H9\u001b[5;118H5\u001b[6;76H50\u001b[6;118H5\u001b[7;77H6\u001b[7;118H"] +[0.000, "o", "5\u001b[8;77H6\u001b[8;118H5\u001b[9;77H1\u001b[9;118H5\u001b[10;76H50\u001b[10;118H"] +[0.000, "o", "5\u001b[11;77H5\u001b[11;118H5\u001b[12;77H"] +[0.000, "o", "6\u001b[12;118H"] +[0.000, "o", "5\u001b[13;25HTrue \u001b[13;46H"] +[0.000, "o", "True \u001b[13;60HEstablished 4\u001b[13;118H"] +[0.000, "o", "5\r\u001b[14d"] +[1.053, "o", "\u001b[2;77H6\u001b[2;118H6\u001b[3;77H5\u001b[3;118H6\u001b[4;76H80\u001b[4;118H6\u001b[5;76H80\u001b[5;118H6\u001b[6;77H1\u001b[6;118H6\u001b[7;77H"] +[0.000, "o", "7\u001b[7;118H6\u001b[8;77H7\u001b[8;118H6\u001b[9;77H2\u001b[9;118H6\u001b[10;77H1\u001b[10;118H6\u001b[11;77H6\u001b[11;118H"] +[0.000, "o", "6\u001b[12;77H7\u001b[12;118H6\u001b[13;77H6\u001b[13;118H6\r\u001b[14d"] +[1.057, "o", "\u001b[2;77H7\u001b[2;118H7\u001b[3;77H6\u001b[3;118H7\u001b[4;77H1\u001b[4;118H7\u001b[5;77H1\u001b[5;118H7\u001b[6;77H2\u001b[6;118H7\u001b[7;77H8\u001b[7;118H7\u001b[8;77H8\u001b[8;118H"] +[0.000, "o", "7\u001b[9;77H3\u001b[9;118H7\u001b[10;77H2\u001b[10;118H7\u001b[11;77H7\u001b[11;118H"] +[0.000, "o", "7\u001b[12;77H8\u001b[12;118H7\u001b[13;77H7\u001b[13;118H7\r\u001b[14d"] +[1.053, "o", "\u001b[2;77H8\u001b[2;118H8\u001b[3;77H7\u001b[3;118H8\u001b[4;77H2\u001b[4;118H8\u001b[5;77H2\u001b[5;118H8\u001b[6;77H3\u001b[6;118H8\u001b[7;77H"] +[0.000, "o", "9\u001b[7;118H8\u001b[8;77H9\u001b[8;118H8\u001b[9;77H4\u001b[9;118H"] +[0.000, "o", "8\u001b[10;77H3\u001b[10;118H"] +[0.000, "o", "8\u001b[11;77H8\u001b[11;118H"] +[0.000, "o", "8\u001b[12;77H9\u001b[12;118H"] +[0.000, "o", "8\u001b[13;77H"] +[0.000, "o", "8\u001b[13;118H"] +[0.000, "o", "8\r\u001b[14d"] +[1.061, "o", "\u001b[2;77H9\u001b[2;118H9\u001b[3;77H8\u001b[3;118H9\u001b[4;77H3\u001b[4;118H9\u001b[5;77H3\u001b[5;118H9\u001b[6;77H4\u001b[6;118H"] +[0.000, "o", "9\u001b[7;76H50\u001b[7;118H9\u001b[8;76H60\u001b[8;118H9\u001b[9;77H5\u001b[9;118H9\u001b[10;77H4\u001b[10;118H9\u001b[11;77H9\u001b[11;118H"] +[0.000, "o", "9\u001b[12;76H50\u001b[12;118H"] +[0.000, "o", "9\u001b[13;77H9\u001b[13;118H"] +[0.000, "o", "9\r\u001b[14d"] +[1.058, "o", "\u001b[2;76H60\u001b[2;117H60\u001b[3;77H9\u001b[3;117H60\u001b[4;77H4\u001b[4;117H60\u001b[5;77H4\u001b[5;117H60\u001b[6;77H5\u001b[6;117H60\u001b[7;77H"] +[0.000, "o", "1\u001b[7;117H60\u001b[8;77H1\u001b[8;117H60\u001b[9;77H6\u001b[9;117H60\u001b[10;77H5\u001b[10;117H60\u001b[11;76H60\u001b[11;117H60\u001b[12;77H"] +[0.000, "o", "1\u001b[12;117H"] +[0.000, "o", "60\u001b[13;76H50\u001b[13;117H60\r\u001b[14d"] +[1.059, "o", "\u001b[2;77H1\u001b[2;118H1\u001b[3;76H60\u001b[3;118H1\u001b[4;77H5\u001b[4;118H1\u001b[5;77H5\u001b[5;118H1\u001b[6;77H6\u001b[6;118H"] +[0.000, "o", "1\u001b[7;77H2\u001b[7;118H1\u001b[8;77H2\u001b[8;118H1\u001b[9;77H7\u001b[9;118H1\u001b[10;77H6\u001b[10;118H1\u001b[11;77H"] +[0.000, "o", "1\u001b[11;118H"] +[0.000, "o", "1\u001b[12;77H2\u001b[12;118H"] +[0.000, "o", "1\u001b[13;77H"] +[0.000, "o", "1\u001b[13;118H"] +[0.000, "o", "1\r\u001b[14d"] +[1.053, "o", "\u001b[2;77H2\u001b[2;118H2\u001b[3;77H1\u001b[3;118H2\u001b[4;77H6\u001b[4;118H2\u001b[5;25HTrue \u001b[5;46HTrue \u001b[5;60H"] +[0.000, "o", "Established 51\u001b[5;118H2\u001b[6;77H7\u001b[6;118H2\u001b[7;77H3\u001b[7;118H2\u001b[8;77H3\u001b[8;118H"] +[0.000, "o", "2\u001b[9;77H8\u001b[9;118H2\u001b[10;77H7\u001b[10;118H"] +[0.000, "o", "2\u001b[11;77H"] +[0.000, "o", "2\u001b[11;118H2\u001b[12;77H3\u001b[12;118H"] +[0.000, "o", "2\u001b[13;77H"] +[0.000, "o", "2\u001b[13;118H"] +[0.000, "o", "2\r\u001b[14d"] +[1.056, "o", "\u001b[2;77H3\u001b[2;118H3\u001b[3;77H2\u001b[3;118H3\u001b[4;77H7\u001b[4;118H3\u001b[5;77H2\u001b[5;118H3\u001b[6;77H8\u001b[6;118H3\u001b[7;77H4\u001b[7;118H3\u001b[8;77H4\u001b[8;118H3\u001b[9;77H9\u001b[9;118H3\u001b[10;77H8\u001b[10;118H3\u001b[11;77H3\u001b[11;118H3\u001b[12;77H4\u001b[12;118H3\u001b[13;77H3\u001b[13;118H"] +[0.000, "o", "3\r\u001b[14d"] +[1.051, "o", "\u001b[2;77H4\u001b[2;118H4\u001b[3;77H3\u001b[3;118H4\u001b[4;77H8\u001b[4;118H4\u001b[5;77H3\u001b[5;118H4\u001b[6;77H"] +[0.000, "o", "9\u001b[6;118H4\u001b[7;77H5\u001b[7;118H4\u001b[8;77H5\u001b[8;118H4\u001b[9;76H"] +[0.000, "o", "90\u001b[9;118H4\u001b[10;77H9\u001b[10;118H4\u001b[11;77H"] +[0.000, "o", "4\u001b[11;118H"] +[0.000, "o", "4\u001b[12;77H5\u001b[12;118H4\u001b[13;77H4\u001b[13;118H4\r\u001b[14d"] +[1.055, "o", "\u001b[2;77H5\u001b[2;118H5\u001b[3;77H4\u001b[3;118H5\u001b[4;77H9\u001b[4;118H5\u001b[5;77H4\u001b[5;118H5\u001b[6;76H"] +[0.000, "o", "60\u001b[6;118H5\u001b[7;77H6\u001b[7;118H5\u001b[8;77H6\u001b[8;118H5\u001b[9;77H1\u001b[9;118H5\u001b[10;76H60\u001b[10;118H5\u001b[11;77H5\u001b[11;118H"] +[0.000, "o", "5\u001b[12;77H6\u001b[12;118H5\u001b[13;77H5\u001b[13;118H5\r\u001b[14d"] +[1.059, "o", "\u001b[2;77H6\u001b[2;118H6\u001b[3;77H5\u001b[3;118H6\u001b[4;76H90\u001b[4;118H6\u001b[5;77H5\u001b[5;118H6\u001b[6;77H1\u001b[6;118H6\u001b[7;77H7\u001b[7;118H"] +[0.000, "o", "6\u001b[8;77H7\u001b[8;118H6\u001b[9;77H2\u001b[9;118H6\u001b[10;77H1\u001b[10;118H"] +[0.000, "o", "6\u001b[11;77H6\u001b[11;118H6\u001b[12;77H7\u001b[12;118H"] +[0.000, "o", "6\u001b[13;77H6\u001b[13;118H"] +[0.000, "o", "6\r\u001b[14d"] +[0.719, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.548, "m", ""] +[0.412, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.800, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "1"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "n"] +[0.000, "o", "v"] +[0.000, "o", "e"] +[0.001, "o", "/"] +[0.000, "o", "l"] +[0.001, "o", "e"] +[0.000, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "n"] +[0.001, "o", "v"] +[0.000, "o", "e"] +[0.000, "o", "1"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.001, "o", "m"] +[0.005, "o", "\u001b[37D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m1\u001b[4m-\u001b[4mn\u001b[4mv\u001b[4me\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mn\u001b[4mv\u001b[4me\u001b[4m1\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.773, "o", "\r\r\n"] +[0.007, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m NetworkVirtualizationEdge\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-nve1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mhostReachability\u001b[0m:\u001b[32m BGP\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36msourceInterfaceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-lo1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmulticastGroups\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m l2\u001b[0m:\u001b[32m 224.0.0.2\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36manycastGateway\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m virtualMAC\u001b[0m:\u001b[32m 00:00:11:11:22:22\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.749, "m", ""] +[1.357, "o", "k"] +[0.000, "o", "\bku"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.000, "o", "y"] +[0.000, "o", " "] +[0.001, "o", "-"] +[0.000, "o", "k"] +[0.000, "o", " "] +[0.001, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "1"] +[0.000, "o", "1"] +[0.001, "o", "-"] +[0.000, "o", "n"] +[0.000, "o", "v"] +[0.002, "o", "\u001b[35D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m1\u001b[4m-\u001b[4mn\u001b[4mv\u001b[4me\u001b[24m"] +[1.264, "o", "\r\r\n"] +[0.083, "o", "networkvirtualizationedge.networking.metal.ironcore.dev/leaf1-nve1 created\r\n"] +[0.009, "o", "networkvirtualizationedge.networking.metal.ironcore.dev/leaf2-nve1 created\r\n"] +[0.006, "o", "networkvirtualizationedge.networking.metal.ironcore.dev/leaf3-nve1 created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.890, "o", "w"] +[0.000, "o", "\bwa"] +[0.001, "o", "t"] +[0.000, "o", "c"] +[0.000, "o", "h"] +[0.001, "o", " "] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "n"] +[0.000, "o", "v"] +[0.001, "o", "e"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.001, "o", "i"] +[0.000, "o", "d"] +[0.002, "o", "\u001b[28D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[23Ce"] +[1.900, "o", "\r\r\n"] +[0.004, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.054, "o", "\u001b[H\u001b[JNAME\u001b[1;14HDEVICE READY CONFIGURED OPERATIONAL SRCIF ANYCASTSRCIF HOSTREACHABILITY AGE\r\u001b[2dleaf1-nve1 leaf1 Unknown\u001b[2;102H"] +[0.000, "o", "4s\r\u001b[3dleaf2-nve1 leaf2\u001b[3;102H4s\r\u001b[4dleaf3-nve1 leaf3 Unknown\u001b[4;102H"] +[0.000, "o", "4s\r\u001b[5d"] +[1.059, "o", "\u001b[1;28H\u001b[2P\u001b[2;23HTrue True\u001b[2;44HTrue\u001b[2;58Hlo1\u001b[2;81HBGP\u001b[2;100H5s\u001b[K\u001b[3d\b\b"] +[0.000, "o", "5s\u001b[K\u001b[4;23HTrue True\u001b[4;44HTrue\u001b[4;58Hlo1\u001b[4;81HBGP\u001b[4;100H5s\u001b[K\r\u001b[5d"] +[1.055, "o", "\u001b[1;28H CONFIGURED OPERATIONAL SRCIF ANYCASTSRCIF HOSTREACHABILITY AGE\u001b[2;31H True\u001b[44G True\u001b[2;58H lo1\u001b[2;81H BGP\u001b[2;100H 6s\u001b[3;23HUnknown\u001b[3;100H "] +[0.000, "o", " 6s\u001b[4;31H True\u001b[44G True\u001b[4;58H lo1\u001b[4;81H BGP\u001b[4;100H 6s\r\u001b[5d"] +[1.051, "o", "\u001b[2;102H7\u001b[3d\b7\u001b[4d\b7\r\u001b[5d"] +[1.051, "o", "\u001b[2;102H8\u001b[3d\b8\u001b[4d\b8\r\u001b[5d"] +[1.051, "o", "\u001b[2;102H9\u001b[3d\b9\u001b[4d\b9\r\u001b[5d"] +[1.048, "o", "\u001b[1;28H\u001b[2P\u001b[2;31HTrue \u001b[44GTrue \u001b[2;58Hlo1 \u001b[2;81HBGP \u001b[2;100H10s\u001b[K\u001b[3;23HTrue True\u001b[3;44HTrue\u001b[3;58Hlo1\u001b[3;81HBGP\u001b[3;100H10"] +[0.000, "o", "s\u001b[K\u001b[4;31HTrue \u001b[44GTrue \u001b[4;58Hlo1 \u001b[4;81HBGP \u001b[4;100H10s\u001b[K\r\u001b[5d"] +[1.052, "o", "\u001b[2;101H1\u001b[3d\b1\u001b[4d\b"] +[0.000, "o", "1\r\u001b[5d"] +[1.055, "o", "\u001b[2;101H3\u001b[3d\b3\u001b[4d\b3\r\u001b[5d"] +[1.050, "o", "\u001b[2;101H4\u001b[3d\b4\u001b[4d\b4\r\u001b[5d"] +[1.053, "o", "\u001b[2;101H5\u001b[3d\b5\u001b[4d\b5\r\u001b[5d"] +[0.341, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.648, "m", ""] +[0.604, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.954, "o", "s"] +[0.000, "o", "\bss"] +[0.000, "o", "h"] +[0.001, "o", " "] +[0.000, "o", "h"] +[0.000, "o", "o"] +[0.001, "o", "s"] +[0.000, "o", "t"] +[0.001, "o", "\u001b[8D\u001b[32ms\u001b[32ms\u001b[32mh\u001b[39m\u001b[5C1"] +[0.749, "o", "\r\r\n"] +[1.053, "o", "host1: \u001b[6n"] +[1.170, "o", "cat /sys/class/net/bond0/bonding/slaves"] +[0.684, "o", "\r\n"] +[0.002, "o", "eth1 eth2\r\nhost1: \u001b[6n"] +[0.770, "m", ""] +[0.954, "o", "ip -d link show "] +[0.000, "o", "bond0.10"] +[0.788, "o", "\r\n"] +[0.002, "o", "4: bond0.10@bond0: mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000\r\n link/ether 00:00:00:00:00:01 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 0 maxmtu 65535 \r\n vlan protocol 802.1Q id 10 addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 \r\n"] +[0.002, "o", "host1: \u001b[6n"] +[0.878, "m", ""] +[1.103, "o", "ip addr show bond0.10"] +[0.911, "o", "\r\n"] +[0.003, "o", "4: bond0.10@bond0: mtu 1500 qdisc noqueue state UP group default qlen 1000\r\n link/ether 00:00:00:00:00:01 brd ff:ff:ff:ff:ff:ff\r\n inet 192.168.10.1/24 scope global bond0.10\r\n valid_lft forever preferred_lft forever\r\n inet6 fe80::200:ff:fe00:1/64 scope link \r\n valid_lft forever preferred_lft forever\r\nhost1: \u001b[6n"] +[1.537, "m", ""] +[1.562, "o", "Connection to i753012.d.c.eu-nl-1.cloud.sap closed.\r\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.324, "o", "s"] +[0.000, "o", "\bss"] +[0.000, "o", "h"] +[0.001, "o", " "] +[0.000, "o", "h"] +[0.001, "o", "o"] +[0.000, "o", "s"] +[0.000, "o", "t"] +[0.002, "o", "\u001b[8D\u001b[32ms\u001b[32ms\u001b[32mh\u001b[39m\u001b[5C2"] +[0.990, "o", "\r\r\n"] +[1.370, "o", "host2: \u001b[6n"] +[1.257, "o", "ip -d link show eth1.10"] +[0.850, "o", "\r\n"] +[0.003, "o", "3: eth1.10@eth1: mtu 9500 qdisc noqueue state UP mode DEFAULT group default qlen 1000\r\n link/ether 00:00:00:00:00:02 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 0 maxmtu 65535 \r\n vlan protocol 802.1Q id 10 addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 \r\nhost2: \u001b[6n"] +[1.103, "m", ""] +[1.401, "o", "ip addr show eth1.10"] +[0.859, "o", "\r\n"] +[0.002, "o", "3: eth1.10@eth1: mtu 9500 qdisc noqueue state UP group default qlen 1000\r\n link/ether 00:00:00:00:00:02 brd ff:ff:ff:ff:ff:ff\r\n inet 192.168.10.2/24 scope global eth1.10\r\n valid_lft forever preferred_lft forever\r\n inet6 fe80::200:ff:fe00:2/64 scope link \r\n valid_lft forever preferred_lft forever\r\n"] +[0.002, "o", "host2: \u001b[6n"] +[1.232, "m", ""] +[1.846, "o", "Connection to i753012.d.c.eu-nl-1.cloud.sap closed.\r\r\n"] +[0.001, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.419, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.696, "o", "y"] +[0.000, "o", "\byq"] +[0.001, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "1"] +[0.001, "o", "2"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.001, "o", "l"] +[0.000, "o", "a"] +[0.000, "o", "n"] +[0.001, "o", "/"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.001, "o", "a"] +[0.000, "o", "f"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "v"] +[0.000, "o", "l"] +[0.000, "o", "a"] +[0.001, "o", "n"] +[0.000, "o", "-"] +[0.000, "o", "1"] +[0.000, "o", "0"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.006, "o", "\u001b[41D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m2\u001b[4m-\u001b[4mv\u001b[4ml\u001b[4ma\u001b[4mn\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mv\u001b[4ml\u001b[4ma\u001b[4mn\u001b[4m-\u001b[4m1\u001b[4m0\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.789, "o", "\r\r\n"] +[0.043, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m VLAN\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-vlan-10\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mid\u001b[0m:\u001b[95m 10\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.929, "m", ""] +[1.155, "o", "k"] +[0.000, "o", "\bku"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.001, "o", "y"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "1"] +[0.000, "o", "2"] +[0.000, "o", "-"] +[0.001, "o", "v"] +[0.000, "o", "l"] +[0.000, "o", "a"] +[0.002, "o", "\u001b[36D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m2\u001b[4m-\u001b[4mv\u001b[4ml\u001b[4ma\u001b[4mn\u001b[24m"] +[1.179, "o", "\r\r\n"] +[0.117, "o", "vlan.networking.metal.ironcore.dev/leaf1-vlan-10 created\r\n"] +[0.006, "o", "vlan.networking.metal.ironcore.dev/leaf2-vlan-10 created\r\n"] +[0.005, "o", "vlan.networking.metal.ironcore.dev/leaf3-vlan-10 created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[1.688, "o", "w"] +[0.001, "o", "\bwa"] +[0.000, "o", "t"] +[0.001, "o", "c"] +[0.000, "o", "h"] +[0.001, "o", " "] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "g"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", " "] +[0.000, "o", "v"] +[0.001, "o", "l"] +[0.000, "o", "a"] +[0.000, "o", "n"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "o"] +[0.001, "o", " "] +[0.000, "o", "w"] +[0.000, "o", "i"] +[0.000, "o", "d"] +[0.002, "o", "\u001b[29D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[24Ce"] +[1.165, "o", "\r\r\n"] +[0.032, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.049, "o", "\u001b[H\u001b[JNAME\u001b[1;17HVLAN-ID ADMIN STATE DEVICE READY CONFIGURED OPERATIONAL AGE\r\u001b[2dleaf1-vlan-10 10\u001b[2;27HUp\u001b[2;41Hleaf1 False True\u001b[2;71HFalse\u001b[2;85H3s\r\u001b[3d"] +[0.000, "o", "leaf2-vlan-10 10\u001b[3;27HUp\u001b[3;41Hleaf2 False True\u001b[3;71HFalse\u001b[3;85H3s\r\u001b[4dleaf3-vlan-10 10\u001b[4;27HUp\u001b[4;41Hleaf3 False True\u001b[4;71HFalse\u001b[4;85H"] +[0.000, "o", "3s\r\u001b[5d"] +[1.050, "o", "\u001b[2;85H4\u001b[3d\b4\u001b[4d\b4\r\u001b[5d"] +[1.056, "o", "\u001b[2;85H5\u001b[3d\b5\u001b[4d\b5\r\u001b[5d"] +[1.054, "o", "\u001b[2;85H6\u001b[3d\b6\u001b[4d\b6\r\u001b[5d"] +[1.055, "o", "\u001b[2;85H7\u001b[3d\b7\u001b[4d\b7\r\u001b[5d"] +[1.053, "o", "\u001b[2;85H9\u001b[3d\b9\u001b[4d\b9\r\u001b[5d"] +[1.052, "o", "\u001b[2;85H10s\u001b[3;85H10s\u001b[4;85H10s\r\u001b[5d"] +[1.051, "o", "\u001b[2;86H1\u001b[3d\b1\u001b[4d\b1\r\u001b[5d"] +[1.050, "o", "\u001b[2;86H2\u001b[3d\b2\u001b[4d\b2\r\u001b[5d"] +[1.054, "o", "\u001b[2;86H3\u001b[3d\b3\u001b[4d\b3\r\u001b[5d"] +[1.049, "o", "\u001b[2;86H4\u001b[3d\b4\u001b[4d\b4\r\u001b[5d"] +[1.053, "o", "\u001b[2;86H5\u001b[3d\b5\u001b[4d\b5\r\u001b[5d"] +[1.051, "o", "\u001b[2;86H6\u001b[3d\b6\u001b[4d\b6\r\u001b[5d"] +[1.054, "o", "\u001b[2;86H7\u001b[3d\b7\u001b[4d\b7\r\u001b[5d"] +[1.052, "o", "\u001b[2;50HTrue \u001b[2;71HTrue \u001b[2;86H8\u001b[3d\b8\u001b[4d\b"] +[0.000, "o", "8\r\u001b[5d"] +[1.055, "o", "\u001b[2;86H9\u001b[3d\b9\u001b[4d\b9\r\u001b[5d"] +[1.053, "o", "\u001b[2;85H20\u001b[3d\b\b20\u001b[4d\b\b20\r\u001b[5d"] +[1.048, "o", "\u001b[2;86H1\u001b[3d\b1\u001b[4d\b"] +[0.000, "o", "1\r\u001b[5d"] +[1.053, "o", "\u001b[2;86H2\u001b[3d\b2\u001b[4d\b2\r\u001b[5d"] +[1.048, "o", "\u001b[2;86H3\u001b[3d\b3\u001b[4d\b3\r\u001b[5d"] +[1.049, "o", "\u001b[2;86H4\u001b[3d\b4\u001b[4d\b"] +[0.000, "o", "4\r\u001b[5d"] +[1.054, "o", "\u001b[2;86H5\u001b[3d\b5\u001b[4d\b5\r\u001b[5d"] +[1.051, "o", "\u001b[2;86H6\u001b[3d\b6\u001b[4d\b6\r\u001b[5d"] +[1.049, "o", "\u001b[2;86H7\u001b[3d\b7\u001b[4d\b7\r\u001b[5d"] +[1.053, "o", "\u001b[2;86H8\u001b[3;50HTrue \u001b[3;71HTrue \u001b[3;86H8\u001b[4d\b8\r\u001b[5d"] +[1.051, "o", "\u001b[2;85H30\u001b[3d\b\b30\u001b[4d\b\b30\r\u001b[5d"] +[0.906, "m", ""] +[0.147, "o", "\u001b[2;86H1\u001b[3d\b1\u001b[4d\b1\r\u001b[5d"] +[1.052, "o", "\u001b[2;86H2\u001b[3d\b2\u001b[4d\b2\r\u001b[5d"] +[1.052, "o", "\u001b[2;86H3\u001b[3d\b3\u001b[4d\b3\r\u001b[5d"] +[1.052, "o", "\u001b[2;86H4\u001b[3d\b4\u001b[4d\b4\r\u001b[5d"] +[1.049, "o", "\u001b[2;86H5\u001b[3d\b5\u001b[4d\b5\r\u001b[5d"] +[1.051, "o", "\u001b[2;86H6\u001b[3d\b6\u001b[4d\b6\r\u001b[5d"] +[1.052, "o", "\u001b[2;86H7\u001b[3d\b7\u001b[4d\b7\r\u001b[5d"] +[0.252, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.737, "m", ""] +[0.759, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.780, "o", "y"] +[0.001, "o", "\byq"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "1"] +[0.000, "o", "3"] +[0.001, "o", "-"] +[0.000, "o", "h"] +[0.000, "o", "o"] +[0.001, "o", "s"] +[0.000, "o", "t"] +[0.000, "o", "/"] +[0.000, "o", "l"] +[0.001, "o", "e"] +[0.000, "o", "a"] +[0.000, "o", "f"] +[0.001, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "h"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "1"] +[0.000, "o", "0"] +[0.000, "o", "."] +[0.001, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.001, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.000, "o", "/"] +[0.001, "o", "1"] +[0.000, "o", "3"] +[0.000, "o", "-"] +[0.000, "o", "h"] +[0.001, "o", "o"] +[0.000, "o", "s"] +[0.000, "o", "t"] +[0.001, "o", "/"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.000, "o", "p"] +[0.001, "o", "o"] +[0.000, "o", "1"] +[0.000, "o", "0"] +[0.001, "o", "."] +[0.000, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.006, "o", "\u001b[78D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m3\u001b[4m-\u001b[4mh\u001b[4mo\u001b[4ms\u001b[4mt\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4me\u001b[4mt\u001b[4mh\u001b[4m1\u001b[4m-\u001b[4m1\u001b[4m0\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m3\u001b[4m-\u001b[4mh\u001b[4mo\u001b[4ms\u001b[4mt\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mp\u001b[4mo\u001b[4m1\u001b[4m0\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.890, "o", "\r\r\n"] +[0.029, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m host\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1-eth1-10\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m eth1/10\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m Leaf1 to Host1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Physical\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mswitchport\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m mode\u001b[0m:\u001b[32m Trunk\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mnativeVlan\u001b[0m:\u001b[95m 1\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mallowedVlans\u001b[0m: [\u001b[95m10\u001b[0m]\r\n"] +[0.000, "o", "---\r\n\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m Interface\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m labels\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m networking.metal.ironcore.dev/role\u001b[0m:\u001b[32m host\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m leaf1-po-10\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mname\u001b[0m:\u001b[32m po10\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mdescription\u001b[0m:\u001b[32m vPC Leaf1 to Host1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36madminState\u001b[0m:\u001b[32m Up\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Aggregate\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mswitchport\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m mode\u001b[0m:\u001b[32m Trunk\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mnativeVlan\u001b[0m:\u001b[95m 1\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mallowedVlans\u001b[0m: [\u001b[95m10\u001b[0m]\u001b[36m\u001b[0m\r\n\u001b[36m aggregation\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m controlProtocol\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m mode\u001b[0m:\u001b[32m Active\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmemberInterfaceRefs\u001b[0m:\r\n -\u001b[36m name\u001b[0m:\u001b[32m leaf1-eth1-10\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmultichassis\u001b[0m:\u001b[36m\u001b[0m\r"] +[0.000, "o", "\r\n\u001b[36m id\u001b[0m:\u001b[95m 10\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.811, "m", ""] +[0.811, "o", "k"] +[0.000, "o", "\bku"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "a"] +[0.000, "o", "p"] +[0.000, "o", "p"] +[0.001, "o", "l"] +[0.000, "o", "y"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "s"] +[0.001, "o", "/"] +[0.000, "o", "1"] +[0.000, "o", "3"] +[0.000, "o", "-"] +[0.001, "o", "h"] +[0.000, "o", "o"] +[0.000, "o", "s"] +[0.002, "o", "\u001b[36D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m3\u001b[4m-\u001b[4mh\u001b[4mo\u001b[4ms\u001b[4mt\u001b[24m"] +[0.590, "o", "\r\r\n"] +[0.078, "o", "interface.networking.metal.ironcore.dev/leaf1-eth1-10 created\r\n"] +[0.004, "o", "interface.networking.metal.ironcore.dev/leaf1-po-10 created\r\n"] +[0.004, "o", "interface.networking.metal.ironcore.dev/leaf2-eth1-10 created\r\n"] +[0.006, "o", "interface.networking.metal.ironcore.dev/leaf2-po-10 created\r\n"] +[0.005, "o", "interface.networking.metal.ironcore.dev/leaf3-eth1-10 created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.948, "o", "w"] +[0.001, "o", "\bwa"] +[0.000, "o", "t"] +[0.000, "o", "c"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "g"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", " "] +[0.000, "o", "i"] +[0.000, "o", "n"] +[0.001, "o", "t"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.001, "o", "f"] +[0.000, "o", "a"] +[0.000, "o", "c"] +[0.000, "o", "e"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "n"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", "w"] +[0.000, "o", "o"] +[0.000, "o", "r"] +[0.000, "o", "k"] +[0.001, "o", "i"] +[0.000, "o", "n"] +[0.000, "o", "g"] +[0.000, "o", "."] +[0.001, "o", "m"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "a"] +[0.001, "o", "l"] +[0.000, "o", "."] +[0.000, "o", "i"] +[0.001, "o", "r"] +[0.000, "o", "o"] +[0.000, "o", "n"] +[0.000, "o", "c"] +[0.001, "o", "o"] +[0.000, "o", "r"] +[0.000, "o", "e"] +[0.001, "o", "."] +[0.000, "o", "d"] +[0.000, "o", "e"] +[0.001, "o", "v"] +[0.000, "o", "/"] +[0.000, "o", "r"] +[0.000, "o", "o"] +[0.001, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "="] +[0.001, "o", "h"] +[0.000, "o", "o"] +[0.000, "o", "s"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.000, "o", "o"] +[0.000, "o", " "] +[0.001, "o", "w"] +[0.000, "o", "i"] +[0.000, "o", "d"] +[0.002, "o", "\u001b[77D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[72Ce"] +[0.834, "o", "\r\r\n"] +[0.006, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.048, "o", "\u001b[H\u001b[JNAME\u001b[1;17HINTERFACE TYPE\u001b[1;41HADMIN STATE DESCRIPTION\u001b[1;76HMTU DEVICE READY CONFIGURED OPERATIONAL AGE\r\u001b[2dleaf1-eth1-10 eth1/10 Physical Up\u001b[2;55HLeaf1 to Host1\u001b[2;82H"] +[0.000, "o", "leaf1\u001b[2;128H2s\r\u001b[3dleaf1-po-10 po10\u001b[3;29HAggregate Up\u001b[3;55H"] +[0.000, "o", "vPC Leaf1 to Host1\u001b[3;82H"] +[0.000, "o", "leaf1\u001b[3;128H2s\r\u001b[4dleaf2-eth1-10 eth1/10 Physical Up\u001b[4;55H"] +[0.000, "o", "Leaf2 to Host1\u001b[4;82H"] +[0.000, "o", "leaf2 True\u001b[101GTrue\u001b[4;114HTrue\u001b[4;128H2s\r\u001b[5dleaf2-po-10 po10\u001b[5;29H"] +[0.000, "o", "Aggregate Up\u001b[5;55HvPC Leaf2 to Host1\u001b[5;82Hleaf2 Unknown\u001b[5;128H2s\r\u001b[6dleaf3-eth1-10 eth1/10 Physical Up\u001b[6;55HLeaf3 to Host2\u001b[6;82Hleaf3 True\u001b[101GTrue\u001b[6;114HTrue\u001b[6;128H"] +[0.000, "o", "2s\r\u001b[7d"] +[1.053, "o", "\u001b[2;128H3\u001b[3d\b3\u001b[4d\b3\u001b[5d\b"] +[0.000, "o", "3\u001b[6d\b3\r\u001b[7d"] +[1.052, "o", "\u001b[2;128H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b"] +[0.000, "o", "4\u001b[6d\b4\r\u001b[7d"] +[1.056, "o", "\u001b[2;91HUnknown Unknown\u001b[114GUnknown\u001b[128G5\u001b[3d\b"] +[0.000, "o", "5\u001b[4d\b5\u001b[5d\b"] +[0.000, "o", "5\u001b[6d\b5\r\u001b[7d"] +[1.052, "o", "\u001b[2;128H6\u001b[3d\b6\u001b[4d\b6\u001b[5;101HUnknown\u001b[114GUnknown\u001b[128G"] +[0.000, "o", "6\u001b[6d\b6\r\u001b[7d"] +[1.056, "o", "\u001b[2;128H7\u001b[3d\b7\u001b[4d\b"] +[0.000, "o", "7\u001b[5;91HFalse True \u001b[114GFalse \u001b[128G"] +[0.000, "o", "7\u001b[6d\b"] +[0.000, "o", "7\r\u001b[7d"] +[1.052, "o", "\u001b[2;128H8\u001b[3d\b8\u001b[4d\b8\u001b[5d\b"] +[0.000, "o", "8\u001b[6d\b8\r\u001b[7d"] +[1.051, "o", "\u001b[2;128H9\u001b[3d\b9\u001b[4d\b"] +[0.000, "o", "9\u001b[5d\b9\u001b[6d\b9\r\u001b[7d"] +[1.055, "o", "\u001b[2;128H10s\u001b[3;128H10s\u001b[4;128H10s\u001b[5;128H1"] +[0.000, "o", "0s\u001b[6;128H10s\r\u001b[7d"] +[1.055, "o", "\u001b[2;129H1\u001b[3d\b1\u001b[4d\b1\u001b[5d\b"] +[0.000, "o", "1\u001b[6d\b1\r\u001b[7d"] +[1.057, "o", "\u001b[1;96H\u001b[2P\u001b[2;91HTrue True True 12s\u001b[K\u001b[3;126H12s\u001b[K\u001b[4;99HTrue \u001b[112GTrue \u001b[4;126H12"] +[0.000, "o", "s\u001b[K\u001b[5;99HTrue \u001b[112GFalse \u001b[126G12s\u001b[K\u001b[6;99H"] +[0.000, "o", "True \u001b[112G"] +[0.000, "o", "True \u001b[6;126H12"] +[0.000, "o", "s\u001b[K\r\u001b[7d"] +[1.053, "o", "\u001b[2;127H3\u001b[3d\b3\u001b[4d\b"] +[0.000, "o", "3\u001b[5d\b3\u001b[6d\b3\r\u001b[7d"] +[1.057, "o", "\u001b[2;127H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b4\u001b[6d\b"] +[0.000, "o", "4\r\u001b[7d"] +[1.057, "o", "\u001b[2;127H5\u001b[3d\b5\u001b[4d\b5\u001b[5d\b"] +[0.000, "o", "5\u001b[6d\b5\r\u001b[7d"] +[1.053, "o", "\u001b[2;127H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b"] +[0.000, "o", "6\u001b[6d\b6\r\u001b[7d"] +[1.050, "o", "\u001b[2;127H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b"] +[0.000, "o", "7\u001b[6d\b7\r\u001b[7d"] +[1.055, "o", "\u001b[2;127H8\u001b[3d\b8\u001b[4d\b8\u001b[5d\b8\u001b[6d\b"] +[0.000, "o", "8\r\u001b[7d"] +[1.053, "o", "\u001b[2;126H20\u001b[3d\b\b20\u001b[4d\b\b20\u001b[5d\b\b"] +[0.000, "o", "20\u001b[6d\b\b20\r\u001b[7d"] +[1.054, "o", "\u001b[2;127H1\u001b[3d\b1\u001b[4d\b1\u001b[5d\b1\u001b[6d\b"] +[0.000, "o", "1\r\u001b[7d"] +[1.048, "o", "\u001b[2;127H2\u001b[3d\b2\u001b[4d\b"] +[0.000, "o", "2\u001b[5d\b2\u001b[6d\b2\r\u001b[7d"] +[1.051, "o", "\u001b[2;127H3\u001b[3d\b3\u001b[4d\b3\u001b[5d\b"] +[0.000, "o", "3\u001b[6d\b3\r\u001b[7d"] +[1.052, "o", "\u001b[2;127H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b"] +[0.000, "o", "4\u001b[6d\b4\r\u001b[7d"] +[1.052, "o", "\u001b[1;96H CONFIGURED OPERATIONAL AGE\u001b[2;99H True\u001b[112G True\u001b[2;126H 25s\u001b[3;91HUnknown Unknown\u001b[114GUnknown 25s\u001b[4;99H"] +[0.000, "o", " True\u001b[112G True\u001b[4;126H 25s\u001b[5;99H True\u001b[112G False\u001b[126G "] +[0.000, "o", "25s\u001b[6;99H True\u001b[112G True\u001b[6;126H 25s\r\u001b[7d"] +[1.047, "o", "\u001b[2;129H6\u001b[3d\b6\u001b[4;91HFalse\u001b[4;114HFalse\u001b[4;129H6\u001b[5d\b"] +[0.000, "o", "6\u001b[6d\b6\r\u001b[7d"] +[1.049, "o", "\u001b[2;129H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b"] +[0.000, "o", "7\u001b[6d\b7\r\u001b[7d"] +[1.053, "o", "\u001b[1;96H\u001b[2P\u001b[2;99HTrue \u001b[112GTrue \u001b[2;126H28s\u001b[K\u001b[3;91HFalse True False 28s\u001b[K\u001b[4;99H"] +[0.000, "o", "True \u001b[112GFalse \u001b[126G28"] +[0.000, "o", "s\u001b[K\u001b[5;99HTrue \u001b[112G"] +[0.000, "o", "False \u001b[126G"] +[0.000, "o", "28"] +[0.000, "o", "s\u001b[K\u001b[6;99H"] +[0.000, "o", "True \u001b[112G"] +[0.000, "o", "True \u001b[6;126H28"] +[0.000, "o", "s\u001b[K\r\u001b[7d"] +[1.051, "o", "\u001b[2;127H9\u001b[3d\b9\u001b[4d\b9\u001b[5d\b"] +[0.000, "o", "9\u001b[6d\b9\r\u001b[7d"] +[1.050, "o", "\u001b[2;126H30\u001b[3d\b\b30\u001b[4d\b\b30\u001b[5d\b\b30\u001b[6d\b\b"] +[0.000, "o", "30\r\u001b[7d"] +[1.053, "o", "\u001b[2;127H1\u001b[3d\b1\u001b[4;91HTrue \u001b[4;112HTrue \u001b[4;127H1\u001b[5d\b"] +[0.000, "o", "1\u001b[6d\b1\r\u001b[7d"] +[1.050, "o", "\u001b[2;127H2\u001b[3d\b2\u001b[4d\b2\u001b[5d\b"] +[0.000, "o", "2\u001b[6d\b2\r\u001b[7d"] +[1.049, "o", "\u001b[2;127H3\u001b[3d\b3\u001b[4d\b3\u001b[5;91HTrue \u001b[5;112HTrue \u001b[5;127H"] +[0.000, "o", "3\u001b[6d\b3\r\u001b[7d"] +[1.050, "o", "\u001b[2;127H4\u001b[3d\b4\u001b[4d\b4\u001b[5d\b"] +[0.000, "o", "4\u001b[6d\b4\r\u001b[7d"] +[1.050, "o", "\u001b[2;127H5\u001b[3d\b5\u001b[4d\b5\u001b[5d\b"] +[0.000, "o", "5\u001b[6d\b5\r\u001b[7d"] +[1.051, "o", "\u001b[2;127H6\u001b[3d\b6\u001b[4d\b6\u001b[5d\b6\u001b[6d\b"] +[0.000, "o", "6\r\u001b[7d"] +[1.063, "o", "\u001b[2;127H7\u001b[3d\b7\u001b[4d\b7\u001b[5d\b7\u001b[6d\b7\r\u001b[7d"] +[1.054, "o", "\u001b[2;127H8\u001b[3d\b8\u001b[4d\b"] +[0.000, "o", "8\u001b[5d\b8\u001b[6d\b8\r\u001b[7d"] +[1.054, "o", "\u001b[2;126H40\u001b[3;91HTrue \u001b[3;112HTrue \u001b[3;126H40\u001b[4d\b\b40\u001b[5d\b\b40\u001b[6d\b\b40\r\u001b[7d"] +[1.054, "o", "\u001b[2;127H1\u001b[3d\b1\u001b[4d\b1\u001b[5d\b"] +[0.000, "o", "1\u001b[6d\b1\r\u001b[7d"] +[0.663, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.884, "m", ""] +[0.797, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.676, "o", "y"] +[0.000, "o", "\byq"] +[0.001, "o", " "] +[0.000, "o", "."] +[0.000, "o", "/"] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "r"] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "1"] +[0.001, "o", "4"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.000, "o", "x"] +[0.001, "o", "l"] +[0.000, "o", "a"] +[0.000, "o", "n"] +[0.001, "o", "/"] +[0.000, "o", "l"] +[0.000, "o", "e"] +[0.000, "o", "a"] +[0.001, "o", "f"] +[0.000, "o", "1"] +[0.000, "o", "-"] +[0.001, "o", "v"] +[0.000, "o", "x"] +[0.000, "o", "l"] +[0.001, "o", "a"] +[0.000, "o", "n"] +[0.000, "o", "-"] +[0.001, "o", "1"] +[0.000, "o", "0"] +[0.000, "o", "0"] +[0.000, "o", "0"] +[0.001, "o", "1"] +[0.000, "o", "0"] +[0.000, "o", "."] +[0.001, "o", "y"] +[0.000, "o", "a"] +[0.000, "o", "m"] +[0.006, "o", "\u001b[47D\u001b[32my\u001b[32mq\u001b[39m \u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m4\u001b[4m-\u001b[4mv\u001b[4mx\u001b[4ml\u001b[4ma\u001b[4mn\u001b[4m/\u001b[4ml\u001b[4me\u001b[4ma\u001b[4mf\u001b[4m1\u001b[4m-\u001b[4mv\u001b[4mx\u001b[4ml\u001b[4ma\u001b[4mn\u001b[4m-\u001b[4m1\u001b[4m0\u001b[4m0\u001b[4m0\u001b[4m1\u001b[4m0\u001b[4m.\u001b[4my\u001b[4ma\u001b[4mm\u001b[4ml\u001b[24m"] +[0.626, "o", "\r\r\n"] +[0.008, "o", "\u001b[36mapiVersion\u001b[0m:\u001b[32m networking.metal.ironcore.dev/v1alpha1\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mkind\u001b[0m:\u001b[32m EVPNInstance\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mmetadata\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-vxlan-100010\u001b[0m\r\n\u001b[32m\u001b[0m\u001b[36mspec\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m deviceRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mvni\u001b[0m:\u001b[95m 100010\u001b[0m\r\n\u001b[95m \u001b[0m\u001b[36mtype\u001b[0m:\u001b[32m Bridged\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mmulticastGroupAddress\u001b[0m:\u001b[32m 239.1.1.100\u001b[0m\r\n\u001b[32m \u001b[0m\u001b[36mvlanRef\u001b[0m:\u001b[36m\u001b[0m\r\n\u001b[36m name\u001b[0m:\u001b[32m leaf1-vlan-10\u001b[0m\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.706, "m", ""] +[0.788, "o", "k"] +[0.001, "o", "\bku"] +[0.000, "o", "b"] +[0.001, "o", "e"] +[0.000, "o", "c"] +[0.000, "o", "t"] +[0.001, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "a"] +[0.000, "o", "p"] +[0.001, "o", "p"] +[0.000, "o", "l"] +[0.000, "o", "y"] +[0.001, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "k"] +[0.000, "o", " "] +[0.000, "o", "."] +[0.001, "o", "/"] +[0.000, "o", "k"] +[0.000, "o", "u"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", "n"] +[0.001, "o", "e"] +[0.000, "o", "t"] +[0.000, "o", "e"] +[0.001, "o", "s"] +[0.000, "o", "/"] +[0.000, "o", "1"] +[0.001, "o", "4"] +[0.000, "o", "-"] +[0.000, "o", "v"] +[0.001, "o", "x"] +[0.000, "o", "l"] +[0.000, "o", "a"] +[0.002, "o", "\u001b[37D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[10C\u001b[4m.\u001b[4m/\u001b[4mk\u001b[4mu\u001b[4mb\u001b[4me\u001b[4mr\u001b[4mn\u001b[4me\u001b[4mt\u001b[4me\u001b[4ms\u001b[4m/\u001b[4m1\u001b[4m4\u001b[4m-\u001b[4mv\u001b[4mx\u001b[4ml\u001b[4ma\u001b[4mn\u001b[24m"] +[0.609, "o", "\r\r\n"] +[0.079, "o", "evpninstance.networking.metal.ironcore.dev/leaf1-vxlan-100010 created\r\n"] +[0.006, "o", "evpninstance.networking.metal.ironcore.dev/leaf2-vxlan-100010 created\r\n"] +[0.005, "o", "evpninstance.networking.metal.ironcore.dev/leaf3-vxlan-100010 created\r\n"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.840, "o", "w"] +[0.000, "o", "\bwa"] +[0.001, "o", "t"] +[0.000, "o", "c"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.000, "o", "k"] +[0.001, "o", "u"] +[0.000, "o", "b"] +[0.000, "o", "e"] +[0.001, "o", "c"] +[0.000, "o", "t"] +[0.000, "o", "l"] +[0.001, "o", " "] +[0.000, "o", "g"] +[0.000, "o", "e"] +[0.000, "o", "t"] +[0.001, "o", " "] +[0.000, "o", "e"] +[0.000, "o", "v"] +[0.001, "o", "i"] +[0.000, "o", " "] +[0.000, "o", "-"] +[0.001, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.000, "o", "i"] +[0.001, "o", "d"] +[0.001, "o", "\u001b[28D\u001b[32mw\u001b[32ma\u001b[32mt\u001b[32mc\u001b[32mh\u001b[39m\u001b[23Ce"] +[1.125, "o", "\r\r\n"] +[0.004, "o", "\u001b(B\u001b)0\u001b[?1049h\u001b[1;91r\u001b[m\u000f\u001b[4l\u001b[?25l"] +[0.048, "o", "\u001b[H\u001b[JNAME\u001b[1;22HDEVICE TYPE\u001b[41GVNI\u001b[50GREADY AGE\r\u001b[2dleaf1-vxlan-100010 leaf1 Bridged 100010\u001b[2;58H2s\r\u001b[3d"] +[0.000, "o", "leaf2-vxlan-100010 leaf2 Bridged 100010\u001b[3;58H2s\r\u001b[4dleaf3-vxlan-100010 leaf3 Bridged 100010\u001b[4;58H"] +[0.000, "o", "2s\r\u001b[5d"] +[1.054, "o", "\u001b[2;58H3\u001b[3d\b3\u001b[4d\b3\r\u001b[5d"] +[1.052, "o", "\u001b[2;58H4\u001b[3d\b4\u001b[4d\b4\r\u001b[5d"] +[1.050, "o", "\u001b[1;55H AGE\u001b[2;50HUnknown 5s\u001b[3;50HUnknown 5s\u001b[4;50HUnknown 5s\r\u001b[5d"] +[1.050, "o", "\u001b[2;60H6\u001b[3d\b6\u001b[4d\b6\r\u001b[5d"] +[1.051, "o", "\u001b[1;55H\u001b[2P\u001b[2;50HTrue 7s\u001b[K\u001b[3;50HTrue 7s\u001b[K\u001b[4;50HTrue 7s\u001b[K\r\u001b[5d"] +[1.049, "o", "\u001b[2;58H8\u001b[3d\b8\u001b[4d\b8\r\u001b[5d"] +[1.051, "o", "\u001b[2;58H9\u001b[3d\b9\u001b[4d\b9\r\u001b[5d"] +[1.053, "o", "\u001b[2;58H10s\u001b[3;58H10s\u001b[4;58H10s\r\u001b[5d"] +[0.571, "o", "\u001b[91;1H\u001b[34h\u001b[?25h\u001b[?1049l\r\u001b[?1l\u001b>"] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.560, "m", ""] +[0.538, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.949, "o", "s"] +[0.000, "o", "\bss"] +[0.001, "o", "h"] +[0.000, "o", " "] +[0.000, "o", "h"] +[0.001, "o", "o"] +[0.000, "o", "s"] +[0.000, "o", "t"] +[0.001, "o", "\u001b[8D\u001b[32ms\u001b[32ms\u001b[32mh\u001b[39m\u001b[5C1"] +[0.640, "o", "\r\r\n"] +[1.007, "o", "host1: \u001b[6n"] +[1.347, "o", "ping 192.168.10.2"] +[0.824, "o", "\r\n"] +[0.002, "o", "PING 192.168.10.2 (192.168.10.2) 56(84) bytes of data.\r\n"] +[0.021, "o", "64 bytes from 192.168.10.2: icmp_seq=1 ttl=64 time=19.5 ms\r\n"] +[0.994, "o", "64 bytes from 192.168.10.2: icmp_seq=2 ttl=64 time=13.5 ms\r\n"] +[0.999, "o", "64 bytes from 192.168.10.2: icmp_seq=3 ttl=64 time=10.4 ms\r\n"] +[1.007, "o", "64 bytes from 192.168.10.2: icmp_seq=4 ttl=64 time=15.7 ms\r\n"] +[1.000, "o", "64 bytes from 192.168.10.2: icmp_seq=5 ttl=64 time=13.7 ms\r\n"] +[1.001, "o", "64 bytes from 192.168.10.2: icmp_seq=6 ttl=64 time=13.2 ms\r\n"] +[0.998, "o", "64 bytes from 192.168.10.2: icmp_seq=7 ttl=64 time=10.0 ms\r\n"] +[1.008, "o", "64 bytes from 192.168.10.2: icmp_seq=8 ttl=64 time=16.8 ms\r\n"] +[0.464, "o", "^C\r\n--- 192.168.10.2 ping statistics ---\r\n8 packets transmitted, 8 received, 0% packet loss, time 7010ms\r\nrtt min/avg/max/mdev = 10.022/14.103/19.541/2.981 ms\r\nhost1: \u001b[6n"] +[1.788, "m", ""] +[1.518, "o", "Connection to i753012.d.c.eu-nl-1.cloud.sap closed.\r\r\n"] +[0.660, "o", "\u001b[H\u001b[J\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[0.794, "o", "k"] +[0.000, "o", "\bku"] +[0.001, "o", "b"] +[0.000, "o", "e"] +[0.000, "o", "c"] +[0.001, "o", "t"] +[0.000, "o", "l"] +[0.000, "o", " "] +[0.001, "o", "g"] +[0.000, "o", "e"] +[0.001, "o", "t"] +[0.000, "o", " "] +[0.000, "o", "b"] +[0.000, "o", "g"] +[0.001, "o", "p"] +[0.000, "o", "p"] +[0.000, "o", "e"] +[0.001, "o", "e"] +[0.000, "o", "r"] +[0.000, "o", " "] +[0.001, "o", "-"] +[0.000, "o", "o"] +[0.000, "o", " "] +[0.000, "o", "w"] +[0.001, "o", "i"] +[0.000, "o", "d"] +[0.006, "o", "\u001b[26D\u001b[32mk\u001b[32mu\u001b[32mb\u001b[32me\u001b[32mc\u001b[32mt\u001b[32ml\u001b[39m\u001b[19Ce"] +[0.860, "o", "\r\r\n"] +[0.046, "o", "NAME DEVICE READY CONFIGURED OPERATIONAL SESSION STATE LAST ESTABLISHED ADVERTISED PREFIXES AGE\r\nleaf1-spine1 leaf1 True True True "] +[0.000, "o", " Established 40m 1 (L2vpnEvpn) 40m\r\nleaf1-spine2 leaf1 True True True "] +[0.000, "o", "Established "] +[0.000, "o", "40m "] +[0.000, "o", "1 (L2vpnEvpn) "] +[0.000, "o", " "] +[0.000, "o", "40m"] +[0.000, "o", "\r\n"] +[0.000, "o", "leaf2-spine1"] +[0.000, "o", " leaf2 True"] +[0.000, "o", " True "] +[0.000, "o", "True"] +[0.000, "o", " Established 41m 1 (L2vpnEvpn) 40m"] +[0.000, "o", "\r\nleaf2-spine2 leaf2 "] +[0.000, "o", "True"] +[0.000, "o", " "] +[0.000, "o", "True "] +[0.000, "o", " "] +[0.000, "o", "True Established "] +[0.000, "o", "40m 1 (L2vpnEvpn) 40m\r\nleaf3-spine1 leaf3 "] +[0.000, "o", "True True "] +[0.000, "o", " True Established "] +[0.000, "o", "40m 1 (L2vpnEvpn)"] +[0.000, "o", " 40m\r\nleaf3-spine2 leaf3 "] +[0.000, "o", "True "] +[0.000, "o", "True"] +[0.000, "o", " "] +[0.000, "o", "True "] +[0.000, "o", "Established 40m "] +[0.000, "o", " 1 (L2vpnEvpn)"] +[0.000, "o", " 40m"] +[0.000, "o", "\r\nspine1-leaf1 spine1"] +[0.000, "o", " True True "] +[0.000, "o", " True Established"] +[0.000, "o", " 40m 2 (L2vpnEvpn) "] +[0.000, "o", " 40m\r\nspine1-leaf2"] +[0.000, "o", " spine1 True"] +[0.000, "o", " True "] +[0.000, "o", "True "] +[0.000, "o", " Established "] +[0.000, "o", "41m 2 (L2vpnEvpn) "] +[0.000, "o", "40m\r\n"] +[0.000, "o", "spine1-leaf3"] +[0.000, "o", " "] +[0.000, "o", "spine1 True True"] +[0.000, "o", " "] +[0.000, "o", "True "] +[0.000, "o", "Established 40m"] +[0.000, "o", " "] +[0.000, "o", " 2 (L2vpnEvpn)"] +[0.000, "o", " 40m\r\nspine2-leaf1"] +[0.000, "o", " spine2 "] +[0.000, "o", "True True"] +[0.000, "o", " True "] +[0.000, "o", "Established"] +[0.000, "o", " "] +[0.000, "o", "40m "] +[0.000, "o", "2 (L2vpnEvpn) "] +[0.000, "o", "40m\r\nspine2-leaf2 spine2"] +[0.000, "o", " True"] +[0.000, "o", " True"] +[0.000, "o", " True"] +[0.000, "o", " "] +[0.000, "o", "Established 40m "] +[0.000, "o", " 2 (L2vpnEvpn) "] +[0.000, "o", " 40m\r\nspine2-leaf3 "] +[0.000, "o", "spine2 True"] +[0.000, "o", " "] +[0.000, "o", "True True "] +[0.000, "o", " Established 40m "] +[0.000, "o", " 2 (L2vpnEvpn) "] +[0.000, "o", " "] +[0.000, "o", "40m\r\n"] +[1.788, "m", ""] +[0.000, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J⚡ \u001b[K"] +[2.644, "o", "\r\r\n"] +[0.012, "x", "0"] diff --git a/docs/assets/evpn-vxlan-topology.png b/docs/assets/evpn-vxlan-topology.png new file mode 100644 index 000000000..4ec3c85c4 Binary files /dev/null and b/docs/assets/evpn-vxlan-topology.png differ diff --git a/docs/index.md b/docs/index.md index 614e7bcb6..0d88f0fbe 100644 --- a/docs/index.md +++ b/docs/index.md @@ -13,6 +13,9 @@ hero: - theme: brand text: Overview link: /overview/ + - theme: alt + text: Tutorials + link: /tutorials/ - theme: alt text: API Reference link: /api-reference/ diff --git a/docs/package-lock.json b/docs/package-lock.json index 2352b2494..536807551 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -4,6 +4,9 @@ "requires": true, "packages": { "": { + "dependencies": { + "asciinema-player": "^3.15.1" + }, "devDependencies": { "vitepress": "^1.6.4", "vitepress-plugin-mermaid": "^2.0.17" @@ -318,6 +321,15 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/runtime": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/types": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", @@ -1341,6 +1353,36 @@ "dev": true, "license": "MIT" }, + "node_modules/@solid-primitives/refs": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@solid-primitives/refs/-/refs-1.1.3.tgz", + "integrity": "sha512-aam02fjNKpBteewF/UliPSQCVJsIIGOLEWQOh+ll6R/QePzBOOBMcC4G+5jTaO75JuUS1d/14Q1YXT3X0Ow6iA==", + "license": "MIT", + "dependencies": { + "@solid-primitives/utils": "^6.4.0" + }, + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/@solid-primitives/transition-group": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@solid-primitives/transition-group/-/transition-group-1.1.2.tgz", + "integrity": "sha512-gnHS0OmcdjeoHN9n7Khu8KNrOlRc8a2weETDt2YT6o1zeW/XtUC6Db3Q9pkMU/9cCKdEmN4b0a/41MKAHRhzWA==", + "license": "MIT", + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/@solid-primitives/utils": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@solid-primitives/utils/-/utils-6.4.0.tgz", + "integrity": "sha512-AeGTBg8Wtkh/0s+evyLtP8piQoS4wyqqQaAFs2HJcFMMjYAtUgo+ZPduRXLjPlqKVc2ejeR544oeqpbn8Egn8A==", + "license": "MIT", + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, "node_modules/@types/d3": { "version": "7.4.3", "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", @@ -2051,6 +2093,17 @@ "node": ">= 14.0.0" } }, + "node_modules/asciinema-player": { + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/asciinema-player/-/asciinema-player-3.15.1.tgz", + "integrity": "sha512-agVYeNlPxthLyAb92l9AS7ypW0uhesqOuQzyR58Q4Sj+MvesQztZBgx86lHqNJkB8rQ6EP0LeA9czGytQUBpYw==", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.21.0", + "solid-js": "^1.3.0", + "solid-transition-group": "^0.2.3" + } + }, "node_modules/birpc": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", @@ -2183,7 +2236,6 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "dev": true, "license": "MIT" }, "node_modules/cytoscape": { @@ -3537,6 +3589,27 @@ "license": "MIT", "peer": true }, + "node_modules/seroval": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.5.1.tgz", + "integrity": "sha512-OwrZRZAfhHww0WEnKHDY8OM0U/Qs8OTfIDWhUD4BLpNJUfXK4cGmjiagGze086m+mhI+V2nD0gfbHEnJjb9STA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/seroval-plugins": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/seroval-plugins/-/seroval-plugins-1.5.1.tgz", + "integrity": "sha512-4FbuZ/TMl02sqv0RTFexu0SP6V+ywaIe5bAWCCEik0fk17BhALgwvUDVF7e3Uvf9pxmwCEJsRPmlkUE6HdzLAw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "seroval": "^1.0" + } + }, "node_modules/shiki": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/shiki/-/shiki-2.5.0.tgz", @@ -3554,6 +3627,34 @@ "@types/hast": "^3.0.4" } }, + "node_modules/solid-js": { + "version": "1.9.11", + "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.9.11.tgz", + "integrity": "sha512-WEJtcc5mkh/BnHA6Yrg4whlF8g6QwpmXXRg4P2ztPmcKeHHlH4+djYecBLhSpecZY2RRECXYUwIc/C2r3yzQ4Q==", + "license": "MIT", + "dependencies": { + "csstype": "^3.1.0", + "seroval": "~1.5.0", + "seroval-plugins": "~1.5.0" + } + }, + "node_modules/solid-transition-group": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/solid-transition-group/-/solid-transition-group-0.2.3.tgz", + "integrity": "sha512-iB72c9N5Kz9ykRqIXl0lQohOau4t0dhel9kjwFvx81UZJbVwaChMuBuyhiZmK24b8aKEK0w3uFM96ZxzcyZGdg==", + "license": "MIT", + "dependencies": { + "@solid-primitives/refs": "^1.0.5", + "@solid-primitives/transition-group": "^1.0.2" + }, + "engines": { + "node": ">=18.0.0", + "pnpm": ">=8.6.0" + }, + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", diff --git a/docs/package.json b/docs/package.json index 9abb4dd4c..2110b9d44 100644 --- a/docs/package.json +++ b/docs/package.json @@ -8,5 +8,8 @@ "docs:build": "vitepress build .", "docs:preview": "vitepress preview .", "fmt:fix": "prettier --write ." + }, + "dependencies": { + "asciinema-player": "^3.15.1" } } diff --git a/docs/tutorials/evpn-vxlan-fabric.md b/docs/tutorials/evpn-vxlan-fabric.md new file mode 100644 index 000000000..3933344a5 --- /dev/null +++ b/docs/tutorials/evpn-vxlan-fabric.md @@ -0,0 +1,617 @@ +# EVPN/VXLAN Fabric with Cisco Nexus 9000v + +| Component | Details | +| ---------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| **Vendor** | Cisco NX-OS | +| **Nodes** | 2 spines, 3 leaves, 2 hosts | +| **Image** | `vrnetlab/cisco_n9kv:9300-10.4.6` | +| **Containerlab** | [Containerlab Documentation](https://containerlab.dev/) | +| **Topology** | [topology.clab.yml](https://github.com/ironcore-dev/network-operator/blob/main/examples/cisco-n9k-evpn-vxlan/topology.clab.yml) | +| **Manifests** | [kubernetes/](https://github.com/ironcore-dev/network-operator/tree/main/examples/cisco-n9k-evpn-vxlan/kubernetes) | + +## Description + +A spine-leaf EVPN/VXLAN fabric demonstrating Layer 2 extension across a routed IP fabric. Features vPC multi-homing for high availability, OSPF underlay routing, and BGP EVPN overlay control plane. + +**Use cases:** + +- Data center fabric automation with declarative Kubernetes resources +- Multi-homed server connectivity with active-active forwarding +- VXLAN overlay network with multicast-based BUM traffic handling + +## Lab Environment + + + +EVPN/VXLAN Fabric Topology + +The lab consists of 7 nodes deployed via Containerlab: + +- **2 Spine switches** (spine1, spine2): Route reflectors for BGP EVPN +- **3 Leaf switches** (leaf1, leaf2, leaf3): VXLAN tunnel endpoints (VTEPs) +- **2 Host servers** (host1, host2): Linux endpoints with VLAN 10 connectivity + +**Network design:** + +- Underlay: OSPF Area 0.0.0.0, /31 point-to-point links +- Overlay: iBGP EVPN (ASN 65000), route reflector on spines +- VXLAN: VNI 100010 mapped to VLAN 10 for Layer 2 bridging +- Multi-homing: vPC domain between leaf1 and leaf2 for host1 + +## Deploying the Lab + +Deploy the Containerlab topology: + +```bash +cd examples/cisco-n9k-evpn-vxlan +containerlab deploy -t topology.clab.yml +``` + +Apply all Kubernetes resources: + +```bash +kubectl apply -k ./kubernetes +``` + +**Demo Walkthrough:** + + +
+
+ +## Configuration Resources + +The fabric configuration uses multiple Kubernetes Custom Resources, applied in sequence to build the complete EVPN/VXLAN topology. + +### 1. Device Registration + +Register network devices with the Network Operator. Each `Device` resource specifies the gNMI endpoint and credentials. + +> [!NOTE] +> Each network device in the topology requires a `Device` resource. The example below shows leaf1; the tutorial deploys 5 devices total (3 leaves, 2 spines). + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Device +metadata: + name: leaf1 +spec: + endpoint: + address: 192.168.5.2:50011 + secretRef: + name: fabric-credentials +``` + +```bash +kubectl apply -k ./kubernetes/01-devices +``` + +### 2. Loopback Interfaces + +Configure loopback interfaces for router IDs (lo0) and service addresses (lo1): + +- **lo0**: Router ID for OSPF and BGP on all switches +- **lo1**: VTEP source address on leaf switches, rendezvous point address on spine switches + +> [!NOTE] +> Each switch requires two loopback interfaces (lo0 and lo1). The example below shows leaf1's lo0; the tutorial creates 10 `Interface` resources across all 5 switches. + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-lo0 +spec: + deviceRef: + name: leaf1 + name: lo0 + description: Router-ID Leaf1 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.0.10/32 +``` + +```bash +kubectl apply -k ./kubernetes/02-loopbacks +``` + +### 3. vPC Keepalive + +Create dedicated VRF and Layer 3 link for vPC peer health monitoring between leaf1 and leaf2. + +> [!NOTE] +> Each vPC peer requires a dedicated `VRF` and physical `Interface` for keepalive. The example below shows leaf1's configuration; the tutorial creates 2 `VRF` and 2 `Interface` resources total for the vPC pair (leaf1 and leaf2). + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: VRF +metadata: + name: leaf1-vpc-keepalive +spec: + deviceRef: + name: leaf1 + name: VPC_KEEPALIVE + description: VRF for vPC Keepalive +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-eth1-30 +spec: + deviceRef: + name: leaf1 + name: eth1/30 + description: vPC Keepalive + adminState: Up + type: Physical + vrfRef: + name: leaf1-vpc-keepalive + ipv4: + addresses: + - 10.1.1.1/30 +``` + +```bash +kubectl apply -k ./kubernetes/03-vpc-keepalive +``` + +### 4. vPC Peer Link + +Configure port-channel between vPC peers using interfaces eth1/31-32 with LACP. + +> [!NOTE] +> Each vPC peer requires physical member interfaces (eth1/31, eth1/32) and a port-channel aggregate. The example below shows leaf1's configuration; the tutorial creates 6 `Interface` resources total: 4 physical members and 2 port-channels for the vPC pair (leaf1 and leaf2). + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-eth1-31 +spec: + deviceRef: + name: leaf1 + name: eth1/31 + description: vPC Peer-Link + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-eth1-32 +spec: + deviceRef: + name: leaf1 + name: eth1/32 + description: vPC Peer-Link + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-po1 +spec: + deviceRef: + name: leaf1 + name: po1 + description: vPC Peer-Link + adminState: Up + type: Aggregate + switchport: + mode: Trunk + nativeVlan: 1 + aggregation: + controlProtocol: + mode: Active + memberInterfaceRefs: + - name: leaf1-eth1-31 + - name: leaf1-eth1-32 +``` + +```bash +kubectl apply -k ./kubernetes/04-vpc-peerlink +``` + +### 5. vPC Domain + +Establish the vPC domain, enabling virtual port-channel switching for active-active multi-homing. + +> [!NOTE] +> Each vPC peer requires a `VPCDomain` resource to enable virtual port-channel switching. The example below shows leaf1; the tutorial creates 2 resources for the vPC pair (leaf1 and leaf2). + +```yaml +apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 +kind: VPCDomain +metadata: + name: leaf1-vpcdomain +spec: + deviceRef: + name: leaf1 + domainId: 1 + adminState: Up + peer: + adminState: Up + interfaceRef: + name: leaf1-po1 + switch: + enabled: true + gateway: + enabled: true + keepalive: + source: 10.1.1.1 + destination: 10.1.1.2 + vrfRef: + name: leaf1-vpc-keepalive +``` + +```bash +kubectl apply -k ./kubernetes/05-vpc-domain +``` + +### 6. Fabric Interconnects + +Configure routed point-to-point links between spine and leaf switches with IP unnumbered interfaces. + +> [!NOTE] +> Each spine-leaf link requires an `Interface` resource on both ends. The example below shows leaf1's uplink to spine1; with 3 leaves and 2 spines in a full mesh, the tutorial creates 12 interfaces total (2 uplinks per leaf, 3 downlinks per spine). + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-eth1-1 +spec: + deviceRef: + name: leaf1 + name: eth1/1 + description: Leaf1 to Spine1 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: leaf1-lo0 +``` + +```bash +kubectl apply -k ./kubernetes/06-interconnects +``` + +### 7. OSPF Underlay + +Deploy OSPF for IP reachability across the fabric. All interfaces participate in Area 0.0.0.0. + +> [!NOTE] +> Each switch requires an `OSPF` resource to participate in the underlay routing. The example below shows leaf1; the tutorial creates 5 resources across all switches (3 leaves, 2 spines). + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: OSPF +metadata: + name: leaf1-underlay +spec: + deviceRef: + name: leaf1 + instance: UNDERLAY + routerId: 10.0.0.10 + logAdjacencyChanges: true + interfaceRefs: + - name: leaf1-lo0 + area: 0.0.0.0 + passive: true + - name: leaf1-lo1 + area: 0.0.0.0 + passive: true + - name: leaf1-eth1-1 + area: 0.0.0.0 + - name: leaf1-eth1-2 + area: 0.0.0.0 +``` + +```bash +kubectl apply -k ./kubernetes/07-underlay +``` + +### 8. PIM Sparse Mode + +Enable PIM on fabric interfaces for multicast-based BUM traffic. Spines act as rendezvous points. + +> [!NOTE] +> Each switch requires a `PIM` resource for multicast routing. The example below shows leaf1; the tutorial creates 5 resources across all switches (3 leaves, 2 spines). The spine switches are additionally configured to serve as rendezvous points with their loopback lo1 address used as redundant anycast address. + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: PIM +metadata: + name: leaf1-pim +spec: + deviceRef: + name: leaf1 + rendezvousPoints: + - address: 10.0.0.100 + multicastGroups: + - 224.0.0.0/4 + interfaceRefs: + - name: leaf1-lo0 + mode: Sparse + - name: leaf1-lo1 + mode: Sparse + - name: leaf1-eth1-1 + mode: Sparse + - name: leaf1-eth1-2 + mode: Sparse +``` + +```bash +kubectl apply -k ./kubernetes/08-pim +``` + +### 9. BGP Router + +Configure BGP routing process with ASN 65000 and enable L2VPN EVPN address family. + +> [!NOTE] +> Each switch requires a `BGP` resource to configure its routing process. The example below shows leaf1; the tutorial creates 5 resources across all switches (3 leaves, 2 spines). + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGP +metadata: + name: leaf1-bgp +spec: + deviceRef: + name: leaf1 + asNumber: 65000 + routerId: 10.0.0.10 + addressFamilies: + ipv4Unicast: + enabled: true +``` + +```bash +kubectl apply -k ./kubernetes/09-bgp-router +``` + +### 10. BGP EVPN Peers + +Establish BGP EVPN peering with spine route reflectors using loopback addresses. + +> [!NOTE] +> Each BGP session requires a `BGPPeer` resource. The example below shows leaf1's peering with spine1; the tutorial creates 12 resources total: 3 leaves each peer with both spines (6 sessions), plus the 2 spines peer with each leaf (6 sessions). + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: leaf1-spine1 +spec: + deviceRef: + name: leaf1 + address: 10.0.0.1 + asNumber: 65000 + localAddress: + interfaceRef: + name: leaf1-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both +``` + +```bash +kubectl apply -k ./kubernetes/10-bgp-peers +``` + +### 11. NVE Interface + +Create the VXLAN tunnel endpoint (NVE) on leaf switches with BGP host reachability for Layer 2 bridging. + +> [!NOTE] +> Each leaf switch requires a `NetworkVirtualizationEdge` resource to act as a VXLAN tunnel endpoint. The example below shows leaf1; the tutorial creates 3 resources for all leaf switches. + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: NetworkVirtualizationEdge +metadata: + name: leaf1-nve1 +spec: + deviceRef: + name: leaf1 + adminState: Up + hostReachability: BGP + sourceInterfaceRef: + name: leaf1-lo1 + multicastGroups: + l2: 224.0.0.0/24 +``` + +```bash +kubectl apply -k ./kubernetes/11-nve +``` + +### 12. VLANs + +Create VLAN 10 on all leaf switches for host connectivity. + +> [!NOTE] +> Each leaf switch requires a `VLAN` resource for host connectivity. The example below shows VLAN 10 on leaf1; the tutorial creates this VLAN on all 3 leaf switches. + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: VLAN +metadata: + name: leaf1-vlan-10 +spec: + deviceRef: + name: leaf1 + id: 10 +``` + +```bash +kubectl apply -k ./kubernetes/12-vlan +``` + +### 13. Host Interfaces + +Configure access ports to hosts. Leaf1 and leaf2 use vPC port-channel to host1; leaf3 connects directly to host2. + +**Host network configuration:** + +- **host1**: Multi-homed with LACP bonding. Physical interfaces eth1 and eth2 are aggregated into bond0 (802.3ad mode), with VLAN subinterface bond0.10 tagged for VLAN 10 and assigned IP address 192.168.10.1/24. +- **host2**: Single-homed connection. Physical interface eth1 carries VLAN subinterface eth1.10 tagged for VLAN 10 and assigned IP address 192.168.10.2/24. + +> [!NOTE] +> Each host connection requires physical `Interface` resources. Multi-homed connections also require port-channel interfaces. The example below shows leaf1's vPC port-channel to host1; the tutorial creates 5 resources total: physical interfaces on each leaf plus vPC port-channels on leaf1 and leaf2. + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-eth1-10 +spec: + deviceRef: + name: leaf1 + name: eth1/10 + description: Leaf1 to Host1 + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 + allowedVlans: [10] +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-po-10 +spec: + deviceRef: + name: leaf1 + name: po10 + description: vPC Leaf1 to Host1 + adminState: Up + type: Aggregate + switchport: + mode: Trunk + nativeVlan: 1 + allowedVlans: [10] + aggregation: + controlProtocol: + mode: Active + memberInterfaceRefs: + - name: leaf1-eth1-10 + multichassis: + id: 10 +``` + +```bash +kubectl apply -k ./kubernetes/13-host +``` + +### 14. EVPN Instance + +Map VLAN 10 to VNI 100010, enabling Layer 2 extension across the VXLAN fabric. + +> [!NOTE] +> Each leaf switch requires an `EVPNInstance` resource to map VLANs to VNIs. The example below shows leaf1 mapping VLAN 10 to VNI 100010; the tutorial creates this mapping on all 3 leaf switches. + +```yaml +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: EVPNInstance +metadata: + name: leaf1-vxlan-100010 +spec: + deviceRef: + name: leaf1 + vni: 100010 + type: Bridged + multicastGroupAddress: 239.1.1.100 + vlanRef: + name: leaf1-vlan-10 +``` + +```bash +kubectl apply -k ./kubernetes/14-vxlan +``` + +## Verification + +Test Layer 2 connectivity across the VXLAN fabric: + +```bash +# From host1 (192.168.10.1), ping host2 (192.168.10.2) +ssh host1 +ping 192.168.10.2 +``` + +Check EVPN routes and VXLAN tunnels: + +```bash +ssh leaf1 +show nve peers +show bgp l2vpn evpn vni-id 100010 +show l2route evpn mac all +``` + +Verify vPC status: + +```bash +ssh leaf1 +show vpc brief +``` + +## Cleanup + +> [!WARNING] +> The `--cascade=foreground` flag is required for proper cleanup. This ensures that child resources (interfaces, VLANs, BGP configurations, etc.) are deleted first before the parent Device resources are removed. Without this flag, the cleanup may fail or leave orphaned configurations on the switches. + +```bash +kubectl delete -k ./kubernetes/ --cascade=foreground +containerlab destroy -t topology.clab.yml +``` diff --git a/docs/tutorials/index.md b/docs/tutorials/index.md new file mode 100644 index 000000000..c154c03ba --- /dev/null +++ b/docs/tutorials/index.md @@ -0,0 +1,19 @@ +# Tutorials + +Learn how to use the Network Operator through practical, hands-on examples. + +## Available Tutorials + +### [Building an EVPN/VXLAN Fabric with Cisco Nexus 9000v](/tutorials/evpn-vxlan-fabric) + +Learn how to configure a complete EVPN/VXLAN networking fabric on Cisco Nexus 9000v switches. This tutorial covers: + +- Spine-leaf architecture with 2 spines and 3 leaf switches +- vPC (Virtual Port Channel) for host multi-homing +- OSPF underlay for IP reachability +- BGP EVPN overlay for Layer 2 extension +- VXLAN data plane with multicast BUM traffic handling + +**Level**: Intermediate
+**Duration**: 60-90 minutes
+**Prerequisites**: Kubernetes cluster, Containerlab, Cisco Nexus 9000v image diff --git a/examples/cisco-n9k-evpn-vxlan/README.md b/examples/cisco-n9k-evpn-vxlan/README.md new file mode 100644 index 000000000..4de0820b3 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/README.md @@ -0,0 +1,5 @@ +# EVPN/VXLAN Fabric with Cisco Nexus 9000v + +This example demonstrates deploying a leaf-spine EVPN/VXLAN fabric with vPC multi-homing using the Network Operator. + +For detailed setup instructions and configuration explanations, see the [EVPN/VXLAN Fabric Tutorial](https://ironcore-dev.github.io/network-operator/tutorials/evpn-vxlan-fabric). diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/kustomization.yaml new file mode 100644 index 000000000..ae9905c82 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/kustomization.yaml @@ -0,0 +1,9 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - secret.yaml + - leaf1.yaml + - leaf2.yaml + - leaf3.yaml + - spine1.yaml + - spine2.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf1.yaml new file mode 100644 index 000000000..7eac47f5f --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf1.yaml @@ -0,0 +1,11 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Device +metadata: + labels: + networking.metal.ironcore.dev/role: evpn-leaf + name: leaf1 +spec: + endpoint: + address: 192.168.5.2:50011 + secretRef: + name: fabric-credentials diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf2.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf2.yaml new file mode 100644 index 000000000..432ad8a47 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf2.yaml @@ -0,0 +1,11 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Device +metadata: + labels: + networking.metal.ironcore.dev/role: evpn-leaf + name: leaf2 +spec: + endpoint: + address: 192.168.5.2:50012 + secretRef: + name: fabric-credentials diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf3.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf3.yaml new file mode 100644 index 000000000..b426aebc2 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/leaf3.yaml @@ -0,0 +1,11 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Device +metadata: + labels: + networking.metal.ironcore.dev/role: evpn-leaf + name: leaf3 +spec: + endpoint: + address: 192.168.5.2:50013 + secretRef: + name: fabric-credentials diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/secret.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/secret.yaml new file mode 100644 index 000000000..8d36691c0 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/secret.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: fabric-credentials +type: kubernetes.io/basic-auth +stringData: + username: admin + password: admin diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/spine1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/spine1.yaml new file mode 100644 index 000000000..1d602b447 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/spine1.yaml @@ -0,0 +1,11 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Device +metadata: + labels: + networking.metal.ironcore.dev/role: evpn-spine + name: spine1 +spec: + endpoint: + address: 192.168.5.2:50001 + secretRef: + name: fabric-credentials diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/spine2.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/spine2.yaml new file mode 100644 index 000000000..759277155 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/01-devices/spine2.yaml @@ -0,0 +1,11 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Device +metadata: + labels: + networking.metal.ironcore.dev/role: evpn-spine + name: spine2 +spec: + endpoint: + address: 192.168.5.2:50002 + secretRef: + name: fabric-credentials diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/kustomization.yaml new file mode 100644 index 000000000..79c10172a --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/kustomization.yaml @@ -0,0 +1,13 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-lo0.yaml + - leaf1-lo1.yaml + - leaf2-lo0.yaml + - leaf2-lo1.yaml + - leaf3-lo0.yaml + - leaf3-lo1.yaml + - spine1-lo0.yaml + - spine1-lo1.yaml + - spine2-lo0.yaml + - spine2-lo1.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf1-lo0.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf1-lo0.yaml new file mode 100644 index 000000000..8bfc74572 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf1-lo0.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-lo0 +spec: + deviceRef: + name: leaf1 + name: lo0 + description: Router-ID Leaf1 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.0.10/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf1-lo1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf1-lo1.yaml new file mode 100644 index 000000000..f47b2f295 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf1-lo1.yaml @@ -0,0 +1,15 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf1-lo1 +spec: + deviceRef: + name: leaf1 + name: lo1 + description: VTEP Leaf1 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.1.10/32 + - 10.1.0.10/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf2-lo0.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf2-lo0.yaml new file mode 100644 index 000000000..455160126 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf2-lo0.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf2-lo0 +spec: + deviceRef: + name: leaf2 + name: lo0 + description: Router-ID Leaf2 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.0.11/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf2-lo1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf2-lo1.yaml new file mode 100644 index 000000000..130b7d2e0 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf2-lo1.yaml @@ -0,0 +1,15 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf2-lo1 +spec: + deviceRef: + name: leaf2 + name: lo1 + description: VTEP Leaf2 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.1.11/32 + - 10.1.0.10/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf3-lo0.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf3-lo0.yaml new file mode 100644 index 000000000..83e3bd7a9 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf3-lo0.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf3-lo0 +spec: + deviceRef: + name: leaf3 + name: lo0 + description: Router-ID Leaf3 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.0.12/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf3-lo1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf3-lo1.yaml new file mode 100644 index 000000000..e81d0ce3f --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/leaf3-lo1.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: leaf3-lo1 +spec: + deviceRef: + name: leaf3 + name: lo1 + description: VTEP Leaf3 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.1.12/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine1-lo0.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine1-lo0.yaml new file mode 100644 index 000000000..152916d7a --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine1-lo0.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: spine1-lo0 +spec: + deviceRef: + name: spine1 + name: lo0 + description: Router-ID Spine1 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.0.1/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine1-lo1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine1-lo1.yaml new file mode 100644 index 000000000..19548f529 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine1-lo1.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: spine1-lo1 +spec: + deviceRef: + name: spine1 + name: lo1 + description: Anycast RP + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.0.100/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine2-lo0.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine2-lo0.yaml new file mode 100644 index 000000000..181929952 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine2-lo0.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: spine2-lo0 +spec: + deviceRef: + name: spine2 + name: lo0 + description: Router-ID Spine2 + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.0.2/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine2-lo1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine2-lo1.yaml new file mode 100644 index 000000000..6e43bf7b3 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/02-loopbacks/spine2-lo1.yaml @@ -0,0 +1,14 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + name: spine2-lo1 +spec: + deviceRef: + name: spine2 + name: lo1 + description: Anycast RP + adminState: Up + type: Loopback + ipv4: + addresses: + - 10.0.0.100/32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/kustomization.yaml new file mode 100644 index 000000000..fc9d023bb --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-vpc-keepalive.yaml + - leaf2-vpc-keepalive.yaml + - leaf1-eth1-30.yaml + - leaf2-eth1-30.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf1-eth1-30.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf1-eth1-30.yaml new file mode 100644 index 000000000..9eaeb0d66 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf1-eth1-30.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-keepalive + name: leaf1-eth1-30 +spec: + deviceRef: + name: leaf1 + name: eth1/30 + description: vPC Keepalive + adminState: Up + type: Physical + vrfRef: + name: leaf1-vpc-keepalive + ipv4: + addresses: + - 10.1.1.1/30 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf1-vpc-keepalive.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf1-vpc-keepalive.yaml new file mode 100644 index 000000000..5a037600d --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf1-vpc-keepalive.yaml @@ -0,0 +1,11 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: VRF +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-keepalive + name: leaf1-vpc-keepalive +spec: + deviceRef: + name: leaf1 + name: VPC_KEEPALIVE + description: VRF for vPC Keepalive diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf2-eth1-30.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf2-eth1-30.yaml new file mode 100644 index 000000000..fe03ef6e5 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf2-eth1-30.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-keepalive + name: leaf2-eth1-30 +spec: + deviceRef: + name: leaf2 + name: eth1/30 + description: vPC Keepalive + adminState: Up + type: Physical + vrfRef: + name: leaf2-vpc-keepalive + ipv4: + addresses: + - 10.1.1.2/30 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf2-vpc-keepalive.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf2-vpc-keepalive.yaml new file mode 100644 index 000000000..2d72cb150 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/03-vpc-keepalive/leaf2-vpc-keepalive.yaml @@ -0,0 +1,11 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: VRF +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-keepalive + name: leaf2-vpc-keepalive +spec: + deviceRef: + name: leaf2 + name: VPC_KEEPALIVE + description: VRF for vPC Keepalive diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/kustomization.yaml new file mode 100644 index 000000000..adf08a453 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/kustomization.yaml @@ -0,0 +1,10 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - spanning-tree-network.yaml + - leaf1-eth1-31.yaml + - leaf1-eth1-32.yaml + - leaf1-po1.yaml + - leaf2-eth1-31.yaml + - leaf2-eth1-32.yaml + - leaf2-po1.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-eth1-31.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-eth1-31.yaml new file mode 100644 index 000000000..7be34a343 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-eth1-31.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-peer-link + name: leaf1-eth1-31 +spec: + deviceRef: + name: leaf1 + providerConfigRef: + apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 + kind: InterfaceConfig + name: spanning-tree-network + name: eth1/31 + description: vPC Peer-Link + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-eth1-32.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-eth1-32.yaml new file mode 100644 index 000000000..2b55da5ab --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-eth1-32.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-peer-link + name: leaf1-eth1-32 +spec: + deviceRef: + name: leaf1 + providerConfigRef: + apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 + kind: InterfaceConfig + name: spanning-tree-network + name: eth1/32 + description: vPC Peer-Link + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-po1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-po1.yaml new file mode 100644 index 000000000..7882252d1 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf1-po1.yaml @@ -0,0 +1,26 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-peer-link + name: leaf1-po1 +spec: + deviceRef: + name: leaf1 + providerConfigRef: + apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 + kind: InterfaceConfig + name: spanning-tree-network + name: po1 + description: vPC Peer-Link + adminState: Up + type: Aggregate + switchport: + mode: Trunk + nativeVlan: 1 + aggregation: + controlProtocol: + mode: Active + memberInterfaceRefs: + - name: leaf1-eth1-31 + - name: leaf1-eth1-32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-eth1-31.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-eth1-31.yaml new file mode 100644 index 000000000..9420148da --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-eth1-31.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-peer-link + name: leaf2-eth1-31 +spec: + deviceRef: + name: leaf2 + providerConfigRef: + apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 + kind: InterfaceConfig + name: spanning-tree-network + name: eth1/31 + description: vPC Peer-Link + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-eth1-32.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-eth1-32.yaml new file mode 100644 index 000000000..821106f47 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-eth1-32.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-peer-link + name: leaf2-eth1-32 +spec: + deviceRef: + name: leaf2 + providerConfigRef: + apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 + kind: InterfaceConfig + name: spanning-tree-network + name: eth1/32 + description: vPC Peer-Link + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-po1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-po1.yaml new file mode 100644 index 000000000..d9a5d61cb --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/leaf2-po1.yaml @@ -0,0 +1,26 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: vpc-peer-link + name: leaf2-po1 +spec: + deviceRef: + name: leaf2 + providerConfigRef: + apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 + kind: InterfaceConfig + name: spanning-tree-network + name: po1 + description: vPC Peer-Link + adminState: Up + type: Aggregate + switchport: + mode: Trunk + nativeVlan: 1 + aggregation: + controlProtocol: + mode: Active + memberInterfaceRefs: + - name: leaf2-eth1-31 + - name: leaf2-eth1-32 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/spanning-tree-network.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/spanning-tree-network.yaml new file mode 100644 index 000000000..755df9fec --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/04-vpc-peerlink/spanning-tree-network.yaml @@ -0,0 +1,7 @@ +apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 +kind: InterfaceConfig +metadata: + name: spanning-tree-network +spec: + spanningTree: + portType: Network diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/kustomization.yaml new file mode 100644 index 000000000..954f6652b --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/kustomization.yaml @@ -0,0 +1,5 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-vpc-domain.yaml + - leaf2-vpc-domain.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/leaf1-vpc-domain.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/leaf1-vpc-domain.yaml new file mode 100644 index 000000000..e40e9e267 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/leaf1-vpc-domain.yaml @@ -0,0 +1,22 @@ +apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 +kind: VPCDomain +metadata: + name: leaf1-vpcdomain +spec: + deviceRef: + name: leaf1 + domainId: 1 + adminState: Up + peer: + adminState: Up + interfaceRef: + name: leaf1-po1 + switch: + enabled: true + gateway: + enabled: true + keepalive: + source: 10.1.1.1 + destination: 10.1.1.2 + vrfRef: + name: leaf1-vpc-keepalive diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/leaf2-vpc-domain.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/leaf2-vpc-domain.yaml new file mode 100644 index 000000000..cc6dfca9a --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/05-vpc-domain/leaf2-vpc-domain.yaml @@ -0,0 +1,22 @@ +apiVersion: nx.cisco.networking.metal.ironcore.dev/v1alpha1 +kind: VPCDomain +metadata: + name: leaf2-vpcdomain +spec: + deviceRef: + name: leaf2 + domainId: 1 + adminState: Up + peer: + adminState: Up + interfaceRef: + name: leaf2-po1 + switch: + enabled: true + gateway: + enabled: true + keepalive: + source: 10.1.1.2 + destination: 10.1.1.1 + vrfRef: + name: leaf2-vpc-keepalive diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/kustomization.yaml new file mode 100644 index 000000000..511e695b6 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/kustomization.yaml @@ -0,0 +1,15 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-eth1-1.yaml + - leaf1-eth1-2.yaml + - leaf2-eth1-1.yaml + - leaf2-eth1-2.yaml + - leaf3-eth1-1.yaml + - leaf3-eth1-2.yaml + - spine1-eth1-1.yaml + - spine1-eth1-2.yaml + - spine1-eth1-3.yaml + - spine2-eth1-1.yaml + - spine2-eth1-2.yaml + - spine2-eth1-3.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf1-eth1-1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf1-eth1-1.yaml new file mode 100644 index 000000000..2279a52d7 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf1-eth1-1.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: leaf1-eth1-1 +spec: + deviceRef: + name: leaf1 + name: eth1/1 + description: Leaf1 to Spine1 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: leaf1-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf1-eth1-2.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf1-eth1-2.yaml new file mode 100644 index 000000000..f663e4155 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf1-eth1-2.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: leaf1-eth1-2 +spec: + deviceRef: + name: leaf1 + name: eth1/2 + description: Leaf1 to Spine2 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: leaf1-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf2-eth1-1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf2-eth1-1.yaml new file mode 100644 index 000000000..390695146 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf2-eth1-1.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: leaf2-eth1-1 +spec: + deviceRef: + name: leaf2 + name: eth1/1 + description: Leaf2 to Spine1 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: leaf2-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf2-eth1-2.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf2-eth1-2.yaml new file mode 100644 index 000000000..ebb21d790 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf2-eth1-2.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: leaf2-eth1-2 +spec: + deviceRef: + name: leaf2 + name: eth1/2 + description: Leaf2 to Spine2 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: leaf2-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf3-eth1-1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf3-eth1-1.yaml new file mode 100644 index 000000000..ffa16d09c --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf3-eth1-1.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: leaf3-eth1-1 +spec: + deviceRef: + name: leaf3 + name: eth1/1 + description: Leaf3 to Spine1 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: leaf3-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf3-eth1-2.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf3-eth1-2.yaml new file mode 100644 index 000000000..897ff27a0 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/leaf3-eth1-2.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: leaf3-eth1-2 +spec: + deviceRef: + name: leaf3 + name: eth1/2 + description: Leaf3 to Spine2 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: leaf3-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-1.yaml new file mode 100644 index 000000000..a02e1229f --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-1.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: spine1-eth1-1 +spec: + deviceRef: + name: spine1 + name: eth1/1 + description: Spine1 to Leaf1 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: spine1-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-2.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-2.yaml new file mode 100644 index 000000000..fe50dcebe --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-2.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: spine1-eth1-2 +spec: + deviceRef: + name: spine1 + name: eth1/2 + description: Spine1 to Leaf2 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: spine1-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-3.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-3.yaml new file mode 100644 index 000000000..296771e0f --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine1-eth1-3.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: spine1-eth1-3 +spec: + deviceRef: + name: spine1 + name: eth1/3 + description: Spine1 to Leaf3 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: spine1-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-1.yaml new file mode 100644 index 000000000..19dce69dc --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-1.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: spine2-eth1-1 +spec: + deviceRef: + name: spine2 + name: eth1/1 + description: Spine2 to Leaf1 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: spine2-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-2.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-2.yaml new file mode 100644 index 000000000..89bf816d9 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-2.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: spine2-eth1-2 +spec: + deviceRef: + name: spine2 + name: eth1/2 + description: Spine2 to Leaf2 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: spine2-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-3.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-3.yaml new file mode 100644 index 000000000..6b90576c5 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/06-interconnects/spine2-eth1-3.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: fabric + name: spine2-eth1-3 +spec: + deviceRef: + name: spine2 + name: eth1/3 + description: Spine2 to Leaf3 + adminState: Up + type: Physical + mtu: 9216 + ipv4: + unnumbered: + interfaceRef: + name: spine2-lo0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/kustomization.yaml new file mode 100644 index 000000000..a1feecc5e --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-ospf.yaml + - leaf2-ospf.yaml + - leaf3-ospf.yaml + - spine1-ospf.yaml + - spine2-ospf.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf1-ospf.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf1-ospf.yaml new file mode 100644 index 000000000..f551d2ed1 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf1-ospf.yaml @@ -0,0 +1,21 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: OSPF +metadata: + name: leaf1-underlay +spec: + deviceRef: + name: leaf1 + instance: UNDERLAY + routerId: 10.0.0.10 + logAdjacencyChanges: true + interfaceRefs: + - name: leaf1-lo0 + area: 0.0.0.0 + passive: true + - name: leaf1-lo1 + area: 0.0.0.0 + passive: true + - name: leaf1-eth1-1 + area: 0.0.0.0 + - name: leaf1-eth1-2 + area: 0.0.0.0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf2-ospf.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf2-ospf.yaml new file mode 100644 index 000000000..e4872baaa --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf2-ospf.yaml @@ -0,0 +1,21 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: OSPF +metadata: + name: leaf2-underlay +spec: + deviceRef: + name: leaf2 + instance: UNDERLAY + routerId: 10.0.0.11 + logAdjacencyChanges: true + interfaceRefs: + - name: leaf2-lo0 + area: 0.0.0.0 + passive: true + - name: leaf2-lo1 + area: 0.0.0.0 + passive: true + - name: leaf2-eth1-1 + area: 0.0.0.0 + - name: leaf2-eth1-2 + area: 0.0.0.0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf3-ospf.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf3-ospf.yaml new file mode 100644 index 000000000..b9d4eadcd --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/leaf3-ospf.yaml @@ -0,0 +1,21 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: OSPF +metadata: + name: leaf3-underlay +spec: + deviceRef: + name: leaf3 + instance: UNDERLAY + routerId: 10.0.0.12 + logAdjacencyChanges: true + interfaceRefs: + - name: leaf3-lo0 + area: 0.0.0.0 + passive: true + - name: leaf3-lo1 + area: 0.0.0.0 + passive: true + - name: leaf3-eth1-1 + area: 0.0.0.0 + - name: leaf3-eth1-2 + area: 0.0.0.0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/spine1-ospf.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/spine1-ospf.yaml new file mode 100644 index 000000000..055ef06e4 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/spine1-ospf.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: OSPF +metadata: + name: spine1-underlay +spec: + deviceRef: + name: spine1 + instance: UNDERLAY + routerId: 10.0.0.1 + logAdjacencyChanges: true + interfaceRefs: + - name: spine1-lo0 + area: 0.0.0.0 + passive: true + - name: spine1-lo1 + area: 0.0.0.0 + passive: true + - name: spine1-eth1-1 + area: 0.0.0.0 + - name: spine1-eth1-2 + area: 0.0.0.0 + - name: spine1-eth1-3 + area: 0.0.0.0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/spine2-ospf.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/spine2-ospf.yaml new file mode 100644 index 000000000..30dad91ad --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/07-underlay/spine2-ospf.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: OSPF +metadata: + name: spine2-underlay +spec: + deviceRef: + name: spine2 + instance: UNDERLAY + routerId: 10.0.0.2 + logAdjacencyChanges: true + interfaceRefs: + - name: spine2-lo0 + area: 0.0.0.0 + passive: true + - name: spine2-lo1 + area: 0.0.0.0 + passive: true + - name: spine2-eth1-1 + area: 0.0.0.0 + - name: spine2-eth1-2 + area: 0.0.0.0 + - name: spine2-eth1-3 + area: 0.0.0.0 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/kustomization.yaml new file mode 100644 index 000000000..a6c178311 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-pim.yaml + - leaf2-pim.yaml + - leaf3-pim.yaml + - spine1-pim.yaml + - spine2-pim.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf1-pim.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf1-pim.yaml new file mode 100644 index 000000000..06a395449 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf1-pim.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: PIM +metadata: + name: leaf1-pim +spec: + deviceRef: + name: leaf1 + rendezvousPoints: + - address: 10.0.0.100 + multicastGroups: + - 224.0.0.0/4 + interfaceRefs: + - name: leaf1-lo0 + mode: Sparse + - name: leaf1-lo1 + mode: Sparse + - name: leaf1-eth1-1 + mode: Sparse + - name: leaf1-eth1-2 + mode: Sparse diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf2-pim.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf2-pim.yaml new file mode 100644 index 000000000..00dc213c9 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf2-pim.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: PIM +metadata: + name: leaf2-pim +spec: + deviceRef: + name: leaf2 + rendezvousPoints: + - address: 10.0.0.100 + multicastGroups: + - 224.0.0.0/4 + interfaceRefs: + - name: leaf2-lo0 + mode: Sparse + - name: leaf2-lo1 + mode: Sparse + - name: leaf2-eth1-1 + mode: Sparse + - name: leaf2-eth1-2 + mode: Sparse diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf3-pim.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf3-pim.yaml new file mode 100644 index 000000000..dcd5bc699 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/leaf3-pim.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: PIM +metadata: + name: leaf3-pim +spec: + deviceRef: + name: leaf3 + rendezvousPoints: + - address: 10.0.0.100 + multicastGroups: + - 224.0.0.0/4 + interfaceRefs: + - name: leaf3-lo0 + mode: Sparse + - name: leaf3-lo1 + mode: Sparse + - name: leaf3-eth1-1 + mode: Sparse + - name: leaf3-eth1-2 + mode: Sparse diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/spine1-pim.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/spine1-pim.yaml new file mode 100644 index 000000000..c88f1fac1 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/spine1-pim.yaml @@ -0,0 +1,25 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: PIM +metadata: + name: spine1-pim +spec: + deviceRef: + name: spine1 + rendezvousPoints: + - address: 10.0.0.100 + multicastGroups: + - 224.0.0.0/4 + anycastAddresses: + - 10.0.0.1 + - 10.0.0.2 + interfaceRefs: + - name: spine1-lo0 + mode: Sparse + - name: spine1-lo1 + mode: Sparse + - name: spine1-eth1-1 + mode: Sparse + - name: spine1-eth1-2 + mode: Sparse + - name: spine1-eth1-3 + mode: Sparse diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/spine2-pim.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/spine2-pim.yaml new file mode 100644 index 000000000..d9b581e71 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/08-pim/spine2-pim.yaml @@ -0,0 +1,25 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: PIM +metadata: + name: spine2-pim +spec: + deviceRef: + name: spine2 + rendezvousPoints: + - address: 10.0.0.100 + multicastGroups: + - 224.0.0.0/4 + anycastAddresses: + - 10.0.0.1 + - 10.0.0.2 + interfaceRefs: + - name: spine2-lo0 + mode: Sparse + - name: spine2-lo1 + mode: Sparse + - name: spine2-eth1-1 + mode: Sparse + - name: spine2-eth1-2 + mode: Sparse + - name: spine2-eth1-3 + mode: Sparse diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/kustomization.yaml new file mode 100644 index 000000000..d859aa259 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-bgp.yaml + - leaf2-bgp.yaml + - leaf3-bgp.yaml + - spine1-bgp.yaml + - spine2-bgp.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf1-bgp.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf1-bgp.yaml new file mode 100644 index 000000000..7a7be80b6 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf1-bgp.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGP +metadata: + name: leaf1-bgp +spec: + deviceRef: + name: leaf1 + asNumber: 65000 + routerId: 10.0.0.10 + addressFamilies: + ipv4Unicast: + enabled: true diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf2-bgp.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf2-bgp.yaml new file mode 100644 index 000000000..75d911bbd --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf2-bgp.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGP +metadata: + name: leaf2-bgp +spec: + deviceRef: + name: leaf2 + asNumber: 65000 + routerId: 10.0.0.11 + addressFamilies: + ipv4Unicast: + enabled: true diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf3-bgp.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf3-bgp.yaml new file mode 100644 index 000000000..174744fa6 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/leaf3-bgp.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGP +metadata: + name: leaf3-bgp +spec: + deviceRef: + name: leaf3 + asNumber: 65000 + routerId: 10.0.0.12 + addressFamilies: + ipv4Unicast: + enabled: true diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/spine1-bgp.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/spine1-bgp.yaml new file mode 100644 index 000000000..0900ad1b3 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/spine1-bgp.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGP +metadata: + name: spine1-bgp +spec: + deviceRef: + name: spine1 + asNumber: 65000 + routerId: 10.0.0.1 + addressFamilies: + ipv4Unicast: + enabled: true diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/spine2-bgp.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/spine2-bgp.yaml new file mode 100644 index 000000000..f8faf0a44 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/09-bgp-router/spine2-bgp.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGP +metadata: + name: spine2-bgp +spec: + deviceRef: + name: spine2 + asNumber: 65000 + routerId: 10.0.0.2 + addressFamilies: + ipv4Unicast: + enabled: true diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/kustomization.yaml new file mode 100644 index 000000000..fa668a12a --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-bgp-peers.yaml + - leaf2-bgp-peers.yaml + - leaf3-bgp-peers.yaml + - spine1-bgp-peers.yaml + - spine2-bgp-peers.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf1-bgp-peers.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf1-bgp-peers.yaml new file mode 100644 index 000000000..e25631b71 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf1-bgp-peers.yaml @@ -0,0 +1,33 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: leaf1-spine1 +spec: + deviceRef: + name: leaf1 + address: 10.0.0.1 + asNumber: 65000 + localAddress: + interfaceRef: + name: leaf1-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: leaf1-spine2 +spec: + deviceRef: + name: leaf1 + address: 10.0.0.2 + asNumber: 65000 + localAddress: + interfaceRef: + name: leaf1-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf2-bgp-peers.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf2-bgp-peers.yaml new file mode 100644 index 000000000..da0488094 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf2-bgp-peers.yaml @@ -0,0 +1,33 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: leaf2-spine1 +spec: + deviceRef: + name: leaf2 + address: 10.0.0.1 + asNumber: 65000 + localAddress: + interfaceRef: + name: leaf2-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: leaf2-spine2 +spec: + deviceRef: + name: leaf2 + address: 10.0.0.2 + asNumber: 65000 + localAddress: + interfaceRef: + name: leaf2-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf3-bgp-peers.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf3-bgp-peers.yaml new file mode 100644 index 000000000..da03db0e2 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/leaf3-bgp-peers.yaml @@ -0,0 +1,33 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: leaf3-spine1 +spec: + deviceRef: + name: leaf3 + address: 10.0.0.1 + asNumber: 65000 + localAddress: + interfaceRef: + name: leaf3-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: leaf3-spine2 +spec: + deviceRef: + name: leaf3 + address: 10.0.0.2 + asNumber: 65000 + localAddress: + interfaceRef: + name: leaf3-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/spine1-bgp-peers.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/spine1-bgp-peers.yaml new file mode 100644 index 000000000..0db1934cb --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/spine1-bgp-peers.yaml @@ -0,0 +1,53 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: spine1-leaf1 +spec: + deviceRef: + name: spine1 + address: 10.0.0.10 + asNumber: 65000 + localAddress: + interfaceRef: + name: spine1-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both + routeReflectorClient: true +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: spine1-leaf2 +spec: + deviceRef: + name: spine1 + address: 10.0.0.11 + asNumber: 65000 + localAddress: + interfaceRef: + name: spine1-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both + routeReflectorClient: true +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: spine1-leaf3 +spec: + deviceRef: + name: spine1 + address: 10.0.0.12 + asNumber: 65000 + localAddress: + interfaceRef: + name: spine1-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both + routeReflectorClient: true diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/spine2-bgp-peers.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/spine2-bgp-peers.yaml new file mode 100644 index 000000000..1e84b1ca7 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/10-bgp-peers/spine2-bgp-peers.yaml @@ -0,0 +1,53 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: spine2-leaf1 +spec: + deviceRef: + name: spine2 + address: 10.0.0.10 + asNumber: 65000 + localAddress: + interfaceRef: + name: spine2-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both + routeReflectorClient: true +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: spine2-leaf2 +spec: + deviceRef: + name: spine2 + address: 10.0.0.11 + asNumber: 65000 + localAddress: + interfaceRef: + name: spine2-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both + routeReflectorClient: true +--- +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: BGPPeer +metadata: + name: spine2-leaf3 +spec: + deviceRef: + name: spine2 + address: 10.0.0.12 + asNumber: 65000 + localAddress: + interfaceRef: + name: spine2-lo0 + addressFamilies: + l2vpnEvpn: + enabled: true + sendCommunity: Both + routeReflectorClient: true diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/kustomization.yaml new file mode 100644 index 000000000..b2544ce63 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-nve1.yaml + - leaf2-nve1.yaml + - leaf3-nve1.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf1-nve1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf1-nve1.yaml new file mode 100644 index 000000000..3c7432cb5 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf1-nve1.yaml @@ -0,0 +1,15 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: NetworkVirtualizationEdge +metadata: + name: leaf1-nve1 +spec: + deviceRef: + name: leaf1 + adminState: Up + hostReachability: BGP + sourceInterfaceRef: + name: leaf1-lo1 + multicastGroups: + l2: 224.0.0.0/24 + anycastGateway: + virtualMAC: 00:00:11:11:22:22 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf2-nve1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf2-nve1.yaml new file mode 100644 index 000000000..5b53f670f --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf2-nve1.yaml @@ -0,0 +1,15 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: NetworkVirtualizationEdge +metadata: + name: leaf2-nve1 +spec: + deviceRef: + name: leaf2 + adminState: Up + hostReachability: BGP + sourceInterfaceRef: + name: leaf2-lo1 + multicastGroups: + l2: 224.0.0.0/24 + anycastGateway: + virtualMAC: 00:00:11:11:22:22 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf3-nve1.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf3-nve1.yaml new file mode 100644 index 000000000..2460a17bb --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/11-nve/leaf3-nve1.yaml @@ -0,0 +1,15 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: NetworkVirtualizationEdge +metadata: + name: leaf3-nve1 +spec: + deviceRef: + name: leaf3 + adminState: Up + hostReachability: BGP + sourceInterfaceRef: + name: leaf3-lo1 + multicastGroups: + l2: 224.0.0.0/24 + anycastGateway: + virtualMAC: 00:00:11:11:22:22 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/kustomization.yaml new file mode 100644 index 000000000..0721d8b86 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-vlan-10.yaml + - leaf2-vlan-10.yaml + - leaf3-vlan-10.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf1-vlan-10.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf1-vlan-10.yaml new file mode 100644 index 000000000..068fafe6f --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf1-vlan-10.yaml @@ -0,0 +1,8 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: VLAN +metadata: + name: leaf1-vlan-10 +spec: + deviceRef: + name: leaf1 + id: 10 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf2-vlan-10.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf2-vlan-10.yaml new file mode 100644 index 000000000..276c9ee60 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf2-vlan-10.yaml @@ -0,0 +1,8 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: VLAN +metadata: + name: leaf2-vlan-10 +spec: + deviceRef: + name: leaf2 + id: 10 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf3-vlan-10.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf3-vlan-10.yaml new file mode 100644 index 000000000..f699d0add --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/12-vlan/leaf3-vlan-10.yaml @@ -0,0 +1,8 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: VLAN +metadata: + name: leaf3-vlan-10 +spec: + deviceRef: + name: leaf3 + id: 10 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/kustomization.yaml new file mode 100644 index 000000000..815444bc9 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-eth1-10.yaml + - leaf1-po10.yaml + - leaf2-eth1-10.yaml + - leaf2-po10.yaml + - leaf3-eth1-10.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf1-eth1-10.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf1-eth1-10.yaml new file mode 100644 index 000000000..c81256a34 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf1-eth1-10.yaml @@ -0,0 +1,17 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: host + name: leaf1-eth1-10 +spec: + deviceRef: + name: leaf1 + name: eth1/10 + description: Leaf1 to Host1 + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 + allowedVlans: [10] diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf1-po10.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf1-po10.yaml new file mode 100644 index 000000000..ccc0ff5dc --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf1-po10.yaml @@ -0,0 +1,24 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: host + name: leaf1-po-10 +spec: + deviceRef: + name: leaf1 + name: po10 + description: vPC Leaf1 to Host1 + adminState: Up + type: Aggregate + switchport: + mode: Trunk + nativeVlan: 1 + allowedVlans: [10] + aggregation: + controlProtocol: + mode: Active + memberInterfaceRefs: + - name: leaf1-eth1-10 + multichassis: + id: 10 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf2-eth1-10.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf2-eth1-10.yaml new file mode 100644 index 000000000..774606b26 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf2-eth1-10.yaml @@ -0,0 +1,17 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: host + name: leaf2-eth1-10 +spec: + deviceRef: + name: leaf2 + name: eth1/10 + description: Leaf2 to Host1 + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 + allowedVlans: [10] diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf2-po10.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf2-po10.yaml new file mode 100644 index 000000000..bd44c0160 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf2-po10.yaml @@ -0,0 +1,24 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: host + name: leaf2-po-10 +spec: + deviceRef: + name: leaf2 + name: po10 + description: vPC Leaf2 to Host1 + adminState: Up + type: Aggregate + switchport: + mode: Trunk + nativeVlan: 1 + allowedVlans: [10] + aggregation: + controlProtocol: + mode: Active + memberInterfaceRefs: + - name: leaf2-eth1-10 + multichassis: + id: 10 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf3-eth1-10.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf3-eth1-10.yaml new file mode 100644 index 000000000..088c72c63 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/13-host/leaf3-eth1-10.yaml @@ -0,0 +1,17 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: Interface +metadata: + labels: + networking.metal.ironcore.dev/role: host + name: leaf3-eth1-10 +spec: + deviceRef: + name: leaf3 + name: eth1/10 + description: Leaf3 to Host2 + adminState: Up + type: Physical + switchport: + mode: Trunk + nativeVlan: 1 + allowedVlans: [10] diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/kustomization.yaml new file mode 100644 index 000000000..eefdf9649 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - leaf1-vxlan-100010.yaml + - leaf2-vxlan-100010.yaml + - leaf3-vxlan-100010.yaml diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf1-vxlan-100010.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf1-vxlan-100010.yaml new file mode 100644 index 000000000..f8b60bb4d --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf1-vxlan-100010.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: EVPNInstance +metadata: + name: leaf1-vxlan-100010 +spec: + deviceRef: + name: leaf1 + vni: 100010 + type: Bridged + multicastGroupAddress: 239.1.1.100 + vlanRef: + name: leaf1-vlan-10 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf2-vxlan-100010.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf2-vxlan-100010.yaml new file mode 100644 index 000000000..6e35e0bbc --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf2-vxlan-100010.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: EVPNInstance +metadata: + name: leaf2-vxlan-100010 +spec: + deviceRef: + name: leaf2 + vni: 100010 + type: Bridged + multicastGroupAddress: 239.1.1.100 + vlanRef: + name: leaf2-vlan-10 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf3-vxlan-100010.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf3-vxlan-100010.yaml new file mode 100644 index 000000000..4e693fab9 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/14-vxlan/leaf3-vxlan-100010.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.metal.ironcore.dev/v1alpha1 +kind: EVPNInstance +metadata: + name: leaf3-vxlan-100010 +spec: + deviceRef: + name: leaf3 + vni: 100010 + type: Bridged + multicastGroupAddress: 239.1.1.100 + vlanRef: + name: leaf3-vlan-10 diff --git a/examples/cisco-n9k-evpn-vxlan/kubernetes/kustomization.yaml b/examples/cisco-n9k-evpn-vxlan/kubernetes/kustomization.yaml new file mode 100644 index 000000000..90e6b2bcc --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/kubernetes/kustomization.yaml @@ -0,0 +1,16 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- 01-devices +- 02-loopbacks +- 03-vpc-keepalive +- 04-vpc-peerlink +- 05-vpc-domain +- 06-interconnects +- 07-underlay +- 08-pim +- 09-bgp-router +- 10-bgp-peers +- 12-vlan +- 13-host +- 14-vxlan diff --git a/examples/cisco-n9k-evpn-vxlan/topology.clab.yml b/examples/cisco-n9k-evpn-vxlan/topology.clab.yml new file mode 100644 index 000000000..038cd0857 --- /dev/null +++ b/examples/cisco-n9k-evpn-vxlan/topology.clab.yml @@ -0,0 +1,124 @@ +name: evpn-vxlan-fabric +topology: + defaults: + kind: cisco_n9kv + kinds: + cisco_n9kv: + image: ${IMAGE:=vrnetlab/cisco_n9kv:9300-10.4.6} + linux: + image: ghcr.io/hellt/network-multitool + env: + PS1: '\h: ' + nodes: + spine1: + group: spine + startup-config: | + hostname spine1 + grpc port 9339 + interface Ethernet1/1-64 + shutdown + spine2: + group: spine + startup-config: | + hostname spine2 + grpc port 9339 + interface Ethernet1/1-64 + shutdown + leaf1: + group: leaf + startup-config: | + hostname leaf1 + grpc port 9339 + interface Ethernet1/1-64 + shutdown + stages: + create: + wait-for: + - node: spine1 + stage: healthy + - node: spine2 + stage: healthy + leaf2: + group: leaf + startup-config: | + hostname leaf2 + grpc port 9339 + interface Ethernet1/1-64 + shutdown + stages: + create: + wait-for: + - node: spine1 + stage: healthy + - node: spine2 + stage: healthy + leaf3: + group: leaf + startup-config: | + hostname leaf3 + grpc port 9339 + interface Ethernet1/1-64 + shutdown + stages: + create: + wait-for: + - node: spine1 + stage: healthy + - node: spine2 + stage: healthy + host1: + kind: linux + group: server + exec: + - ip link add name bond0 type bond + - ip link set dev bond0 address 00:00:00:00:00:01 + - echo 802.3ad >/sys/class/net/bond0/bonding/mode + - echo fast >/sys/class/net/bond0/bonding/lacp_rate + - ip link set dev eth1 down + - ip link set dev eth2 down + - ip link set dev eth1 master bond0 + - ip link set dev eth2 master bond0 + - ip link set dev eth1 up + - ip link set dev eth2 up + - ip link set dev bond0 up + - ip link add link bond0 name bond0.10 type vlan id 10 + - ip link set dev bond0.10 up + - ip addr add 192.168.10.1/24 dev bond0.10 + stages: + create: + wait-for: + - node: leaf1 + stage: healthy + - node: leaf2 + stage: healthy + host2: + kind: linux + group: server + exec: + - ip link set dev eth1 up + - ip link set eth1 address 00:00:00:00:00:02 + - ip link add link eth1 name eth1.10 type vlan id 10 + - ip link set dev eth1.10 up + - ip addr add 192.168.10.2/24 dev eth1.10 + stages: + create: + wait-for: + - node: leaf3 + stage: healthy + links: + # Spine 1 + - endpoints: ["spine1:eth1", "leaf1:eth1"] + - endpoints: ["spine1:eth2", "leaf2:eth1"] + - endpoints: ["spine1:eth3", "leaf3:eth1"] + # Spine 2 + - endpoints: ["spine2:eth1", "leaf1:eth2"] + - endpoints: ["spine2:eth2", "leaf2:eth2"] + - endpoints: ["spine2:eth3", "leaf3:eth2"] + # vPC + - endpoints: ["leaf1:eth30", "leaf2:eth30"] + - endpoints: ["leaf1:eth31", "leaf2:eth31"] + - endpoints: ["leaf1:eth32", "leaf2:eth32"] + # Host + - endpoints: ["leaf1:eth10", "host1:eth1"] + - endpoints: ["leaf2:eth10", "host1:eth2"] + - endpoints: ["leaf3:eth10", "host2:eth1"]