Creating Device configuration snippets [CREATED] h1: initial,routing [CREATED] h2: initial,routing [CREATED] dut: initial,isis,bgp,sr [CREATED] pe2: initial,isis,bgp,sr [CREATED] p1: initial,isis,sr [CREATED] p2: initial,isis,sr Checking Are lab devices ready to be configured? [INFO] Checking SSH server(s) on dut [SSH] SSH server on node dut (device cisco8000v) is ready after 170.4 seconds Config Deploying device configurations [INFO] Executing initial configuration for node h1 (namespace clab- ml-17-h1) [INFO] Executing initial configuration for node h2 (namespace clab- ml-17-h2) [INFO] Executing initial configuration for node pe2 [INFO] Executing initial configuration for node p1 [INFO] Executing initial configuration for node p2 [INFO] Executing routing configuration for node h1 (namespace clab- ml-17-h1) [INFO] Executing routing configuration for node h2 (namespace clab- ml-17-h2) [INFO] Executing isis configuration for node p1 [INFO] Executing isis configuration for node p2 [INFO] Executing isis configuration for node pe2 [INFO] Executing bgp configuration for node pe2 [INFO] Executing sr configuration for node pe2 [INFO] Executing sr configuration for node p1 [INFO] Executing sr configuration for node p2 [INFO] Starting Ansible playbook to deploy the rest of the configurations [WARNING]: Found variable using reserved name: hosts PLAY [Deploy initial device configuration] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [dut] TASK [Normalize config on bridge-like devices] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [dut] TASK [Find configuration template for normalize] ******************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [dut] TASK [Deploy normalize configuration] ****************************************** skipping: [dut] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut TASK [Figure out whether to deploy the module initial on current device] ******* ok: [dut] TASK [Find configuration template for initial] ********************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "initial configuration for dut\n=========================================\nhostname dut\n!\ndomain lookup disable\n!\nlldp\n no management enable\n!\ndomain ipv4 host h1 172.16.0.1\ndomain ipv4 host h2 172.16.1.2\ndomain ipv4 host pe2 10.0.0.4\ndomain ipv4 host p1 10.0.0.5\ndomain ipv4 host p2 10.0.0.6\n!\ninterface Loopback0\n no shutdown\n ipv4 address 10.0.0.3 255.255.255.255\n!\ninterface FourHundredGigE0/0/0/0\n no shutdown\n description dut -> h1 [stub]\n ipv4 address 172.16.0.3 255.255.255.0\n!\ninterface FourHundredGigE0/0/0/1\n no shutdown\n description dut -> p1\n ipv4 address 10.1.0.1 255.255.255.252\n!\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/iosxr.yml for dut TASK [iosxr_config: deploying initial from /work/netlab_cicd/node_files/dut/initial] *** [WARNING]: To ensure idempotency and correct diff the input configuration lines should be similar to how they appear if present in the running configuration on device including the indentation changed: [dut] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [dut] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut => (item=routing) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut => (item=isis) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut => (item=bgp) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut => (item=sr) TASK [Figure out whether to deploy the module routing on current device] ******* ok: [dut] TASK [Find configuration template for routing] ********************************* skipping: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [dut] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [dut] TASK [Deploy routing configuration] ******************************************** skipping: [dut] TASK [Figure out whether to deploy the module isis on current device] ********** ok: [dut] TASK [Find configuration template for isis] ************************************ ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for isis] ******************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "isis configuration for dut\n=========================================\n!\n!\nrouter isis Gandalf\n\n log adjacency changes\n lsp-gen-interval initial-wait 50 secondary-wait 100 maximum-wait 500\n is-type level-2-only\n net 49.0001.0000.0000.0003.00\n!\n address-family ipv4 unicast\n metric-style wide\n spf-interval initial-wait 50 secondary-wait 100 maximum-wait 500\n!\n!\n interface Loopback0\n address-family ipv4\n!\n interface FourHundredGigE0/0/0/1\n point-to-point\n address-family ipv4\n\n" } TASK [Deploy isis configuration] *********************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/iosxr.yml for dut TASK [iosxr_config: deploying isis from /work/netlab_cicd/node_files/dut/isis] *** changed: [dut] TASK [Figure out whether to deploy the module bgp on current device] *********** ok: [dut] TASK [Find configuration template for bgp] ************************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for bgp] ********************* ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "bgp configuration for dut\n=========================================\n!\n!\nrouter bgp 65001\n bgp unsafe-ebgp-policy\n bgp scan-time 5\n bgp update-delay 5\n bgp router-id 10.0.0.3\n\n!\n address-family ipv4 unicast\n bgp scan-time 5\n!\n network 172.16.0.0/24\n!\n!\n neighbor 10.0.0.4\n remote-as 65001\n description pe2\n update-source Loopback0\n address-family ipv4 unicast\n next-hop-self\n\n" } TASK [Deploy bgp configuration] ************************************************ included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/iosxr.yml for dut TASK [iosxr_config: deploying bgp from /work/netlab_cicd/node_files/dut/bgp] *** changed: [dut] TASK [Figure out whether to deploy the module sr on current device] ************ ok: [dut] TASK [Find configuration template for sr] ************************************** ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for sr] ********************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "sr configuration for dut\n=========================================\nrouter isis Gandalf\n address-family ipv4 unicast\n metric-style wide\n segment-routing mpls sr-prefer\n exit\n interface Loopback0\n address-family ipv4 unicast\n prefix-sid index 3\n" } TASK [Deploy sr configuration] ************************************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/iosxr.yml for dut TASK [iosxr_config: deploying sr from /work/netlab_cicd/node_files/dut/sr] ***** changed: [dut] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* dut : ok=36 changed=4 unreachable=0 failed=0 skipped=12 rescued=0 ignored=0 Results of configuration script deployments ================================================================================ h1 Script: initial,routing h2 Script: initial,routing pe2 Script: initial,isis,bgp,sr p1 Script: initial,isis,sr p2 Script: initial,isis,sr The tested device (DUT) is a PE-router. It runs IS-IS and SR-MPLS and has an IBGP session with another PE-router. It has to perform IP-to-MPLS encapsulation to get the traffic across the BGP-free MPLS core. The validation test checks end-to-end connectivity across a BGP-free MPLS core between a set of linux hosts attached to the PE-routers.