Creating Device configuration snippets [CREATED] dut: initial,ospf,bgp [CREATED] rc: initial,routing,ospf,bgp,frr-community [CREATED] r2: initial,ospf,bgp [CREATED] x1: initial,bgp Checking Are lab devices ready to be configured? [INFO] Checking SSH server(s) on dut [SSH] SSH server on node dut (device nxos) is ready after 330.0 seconds [INFO] Checking lab devices with an Ansible playbook [WARNING]: Found variable using reserved name: hosts PLAY [Wait for SSH servers] **************************************************** PLAY [Wait for device-specific conditions] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [dut] TASK [Find device readiness script] ******************************************** ok: [dut] TASK [Wait for device to become ready] ***************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/readiness-check/nxos.yml for dut TASK [Wait for Eth1/1 to appear] *********************************************** ok: [dut] PLAY RECAP ********************************************************************* dut : ok=4 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 Config Deploying device configurations [INFO] Executing initial configuration for node rc [INFO] Executing initial configuration for node r2 [INFO] Executing initial configuration for node x1 [INFO] Executing routing configuration for node rc [INFO] Executing ospf configuration for node r2 [INFO] Executing bgp configuration for node x1 [INFO] Executing ospf configuration for node rc [INFO] Executing bgp configuration for node r2 [INFO] Executing bgp configuration for node rc [INFO] Executing frr-community configuration for node rc [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!\nno ip domain-lookup\n!\nfeature lldp\n!\nusername vagrant password vagrant\n!\nip host r2 10.0.0.2\nip host rc 10.0.0.10\nip host x1 10.0.0.3\n!\n!\ninterface mgmt0\n no lldp transmit\n no lldp receive\n!\ninterface loopback0\n no shutdown\n ip address 10.0.0.1/32\n!\ninterface Ethernet1/1\n no shutdown\n no switchport\n mac-address caf0.0001.0001\n description dut -> r2\n mtu 1500\n ip address 10.1.0.1/30\n!\ninterface Ethernet1/2\n no shutdown\n no switchport\n mac-address caf0.0001.0002\n description dut -> x1 [external]\n mtu 1500\n ip address 10.1.0.9/30\n!\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/nxos.yml for dut TASK [nxos_config: deploying initial from /work/netlab_cicd/cisco_c/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=ospf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut => (item=bgp) 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 ospf on current device] ********** ok: [dut] TASK [Find configuration template for ospf] ************************************ ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for ospf] ******************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "ospf configuration for dut\n=========================================\nfeature ospf\n!\nrouter ospf 1\n router-id 10.0.0.1\n timers throttle spf 100 200 500\n timers throttle lsa 0 100 500\n!\ninterface loopback0\n ip router ospf 1 area 0.0.0.0\n!\ninterface Ethernet1/1\n! dut -> r2\n ip router ospf 1 area 0.0.0.0\n ip ospf network point-to-point\n ip ospf hello-interval 1\n ip ospf dead-interval 3\n!\n" } TASK [Deploy ospf configuration] *********************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/nxos.yml for dut TASK [nxos_config: deploying ospf from /work/netlab_cicd/cisco_c/node_files/dut/ospf] *** 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!\nfeature bgp\n!\nrouter bgp 65000\n router-id 10.0.0.1\n cluster-id 10.0.0.1\n!\n address-family ipv4 unicast\n!\n network 10.0.0.1/32\n!\n neighbor 10.0.0.10 remote-as 65000\n description rc\n update-source loopback0\n address-family ipv4 unicast\n next-hop-self\n route-reflector-client\n send-community both\n!\n neighbor 10.0.0.2 remote-as 65000\n description r2\n update-source loopback0\n address-family ipv4 unicast\n next-hop-self\n route-reflector-client\n send-community both\n!\n neighbor 10.1.0.10 remote-as 65101\n description x1\n address-family ipv4 unicast\n send-community standard\n!\n!\n" } TASK [Deploy bgp configuration] ************************************************ included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/nxos.yml for dut TASK [nxos_config: deploying bgp from /work/netlab_cicd/cisco_c/node_files/dut/bgp] *** changed: [dut] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* dut : ok=29 changed=3 unreachable=0 failed=0 skipped=11 rescued=0 ignored=0 Results of configuration script deployments ================================================================================ rc Script: initial,routing,ospf,bgp,frr-community r2 Script: initial,ospf,bgp x1 Script: initial,bgp Use this topology to test the BGP community propagation. The device under test is a BGP route reflector that should propagate standard and extended communities to IBGP neighbors but only standard communities to EBGP neighbors (the default setting). Three BGP communities are attached to the prefix advertised by RC: a standard one, an extended one, and a long one (standard communitiy using 4-octet AS)