go.ligato.io/vpp-agent/v3@v3.5.0/tests/robot/suites/crud/inter_vrf_routing_crud.robot (about) 1 *** Settings *** 2 3 Library OperatingSystem 4 Library String 5 #Library RequestsLibrary 6 7 Resource ../../variables/${VARIABLES}_variables.robot 8 Resource ../../libraries/all_libs.robot 9 Resource ../../libraries/pretty_keywords.robot 10 11 Force Tags crud IPv4 12 Suite Setup Run Keywords Discard old results Test Setup 13 Suite Teardown Test Teardown 14 15 *** Variables *** 16 ${VARIABLES}= common 17 ${ENV}= common 18 ${WAIT_TIMEOUT}= 20s 19 ${SYNC_SLEEP}= 2s 20 ${FINAL_SLEEP}= 1s 21 ${IP_1}= 10.1.1.1 22 ${IP_2}= 10.1.1.2 23 ${IP_3}= 10.1.2.1 24 ${IP_4}= 10.1.2.2 25 ${IP_5}= 10.1.3.1 26 ${IP_6}= 10.1.3.2 27 ${NET1}= 10.1.1.0 28 ${NET2}= 10.1.2.0 29 ${NET3}= 10.1.3.0 30 31 *** Test Cases *** 32 # Non default VRF table 2 used in Agent VPP Node agent_vpp_2 33 Start Two Agents And Then Configure With Default And Non Default VRF 34 Add Agent VPP Node agent_vpp_1 35 Add Agent VPP Node agent_vpp_2 36 37 Create Master memif0 on agent_vpp_1 with IP ${IP_1}, MAC 02:f1:be:90:00:00, key 1 and m0.sock socket 38 Create Slave memif0 on agent_vpp_2 with IP ${IP_2}, MAC 02:f1:be:90:00:02, key 1 and m0.sock socket 39 40 Create VRF Table node=agent_vpp_1 id=1 protocol=ipv4 41 Create VRF Table node=agent_vpp_1 id=2 protocol=ipv4 42 Create VRF Table node=agent_vpp_2 id=1 protocol=ipv4 43 Create VRF Table node=agent_vpp_2 id=2 protocol=ipv4 44 45 Create Master memif1 on agent_vpp_1 with VRF 2, IP ${IP_3}, MAC 02:f1:be:90:02:00, key 1 and m1.sock socket 46 Create Slave memif1 on agent_vpp_2 with VRF 2, IP ${IP_4}, MAC 02:f1:be:90:02:02, key 1 and m1.sock socket 47 48 Create Master memif2 on agent_vpp_1 with VRF 1, IP ${IP_5}, MAC 02:f1:be:90:04:00, key 1 and m2.sock socket 49 Create Slave memif2 on agent_vpp_2 with VRF 1, IP ${IP_6}, MAC 02:f1:be:90:04:02, key 1 and m2.sock socket 50 51 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} List of interfaces On agent_vpp_1 Should Contain Interface memif1/1 52 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} List of interfaces On agent_vpp_2 Should Contain Interface memif1/1 53 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} List of interfaces On agent_vpp_1 Should Contain Interface memif2/1 54 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} List of interfaces On agent_vpp_2 Should Contain Interface memif2/1 55 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} List of interfaces On agent_vpp_1 Should Contain Interface memif3/1 56 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} List of interfaces On agent_vpp_2 Should Contain Interface memif3/1 57 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} IP Fib Table 0 On agent_vpp_1 Should Contain Route With IP ${IP_1}/32 58 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} IP Fib Table 2 On agent_vpp_1 Should Contain Route With IP ${IP_3}/32 59 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} IP Fib Table 0 On agent_vpp_2 Should Contain Route With IP ${IP_2}/32 60 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} IP Fib Table 2 On agent_vpp_2 Should Contain Route With IP ${IP_4}/32 61 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} IP Fib Table 1 On agent_vpp_1 Should Contain Route With IP ${IP_5}/32 62 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} IP Fib Table 1 On agent_vpp_2 Should Contain Route With IP ${IP_6}/32 63 64 Create Route For Inter Vrf Routing 65 Create Route On agent_vpp_1 With IP ${NET2}/24 With Next Hop ${IP_2} And Vrf Id 0 66 Create Route On agent_vpp_1 With IP ${NET1}/24 With Next Hop ${IP_4} And Vrf Id 2 67 Create Route On agent_vpp_2 With IP ${NET2}/24 With Next Hop VRF 2 From Vrf Id 0 And Type 1 68 Create Route On agent_vpp_2 With IP ${NET1}/24 With Next Hop VRF 0 From Vrf Id 2 And Type 1 69 70 Config Done 71 No Operation 72 73 Check Inter VRF Routing 74 Show IP Fib On agent_vpp_1 75 IP Fib Table 0 On agent_vpp_1 Should Contain Route With IP ${NET2}/24 76 IP Fib Table 0 On agent_vpp_1 Should Contain Vrf ipv4 via ${IP_2} memif1/1 77 Show IP Fib On agent_vpp_2 78 IP Fib Table 2 On agent_vpp_2 Should Contain Route With IP ${NET1}/24 79 IP Fib Table 2 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv4-VRF: 80 IP Fib Table 0 On agent_vpp_2 Should Contain Route With IP ${NET2}/24 81 IP Fib Table 0 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv4-VRF: 82 83 Create Next Route For Inter Vrf Routing 84 Create Route On agent_vpp_2 With IP ${NET3}/24 With Next Hop VRF 1 From Vrf Id 0 And Type 1 85 Create Route On agent_vpp_2 With IP ${NET3}/24 With Next Hop VRF 1 From Vrf Id 2 And Type 1 86 Create Route On agent_vpp_2 With IP ${NET1}/24 With Next Hop VRF 0 From Vrf Id 1 And Type 1 87 Create Route On agent_vpp_2 With IP ${NET2}/24 With Next Hop VRF 2 From Vrf Id 1 And Type 1 88 89 Check Inter VRF Routing Again 90 Show IP Fib On agent_vpp_1 91 IP Fib Table 0 On agent_vpp_1 Should Contain Route With IP ${NET2}/24 92 IP Fib Table 0 On agent_vpp_1 Should Contain Vrf ipv4 via ${IP_2} memif1/1 93 Show IP Fib On agent_vpp_2 94 IP Fib Table 2 On agent_vpp_2 Should Contain Route With IP ${NET1}/24 95 IP Fib Table 2 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv4-VRF: 96 IP Fib Table 0 On agent_vpp_2 Should Contain Route With IP ${NET2}/24 97 IP Fib Table 0 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv4-VRF: 98 99 IP Fib Table 2 On agent_vpp_2 Should Contain Route With IP ${NET3}/24 100 IP Fib Table 2 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv4-VRF: 101 IP Fib Table 0 On agent_vpp_2 Should Contain Route With IP ${NET3}/24 102 IP Fib Table 0 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv4-VRF: 103 104 IP Fib Table 1 On agent_vpp_2 Should Contain Route With IP ${NET1}/24 105 IP Fib Table 1 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv4-VRF: 106 IP Fib Table 1 On agent_vpp_2 Should Contain Route With IP ${NET2}/24 107 IP Fib Table 1 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv4-VRF: 108 109 Delete Route VRF 1 110 Delete Route agent_vpp_2 1 ${NET1} 24 111 Delete Route agent_vpp_2 1 ${NET2} 24 112 Delete Route agent_vpp_2 0 ${NET3} 24 113 Delete Route agent_vpp_2 2 ${NET3} 24 114 115 Check State After Delete 116 Show IP Fib On agent_vpp_1 117 IP Fib Table 0 On agent_vpp_1 Should Contain Route With IP ${NET2}/24 118 IP Fib Table 0 On agent_vpp_1 Should Contain Vrf ipv4 via ${IP_2} memif1/1 119 Show IP Fib On agent_vpp_2 120 IP Fib Table 2 On agent_vpp_2 Should Contain Route With IP ${NET1}/24 121 IP Fib Table 2 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv4-VRF: 122 IP Fib Table 0 On agent_vpp_2 Should Contain Route With IP ${NET2}/24 123 IP Fib Table 0 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv4-VRF: 124 125 ${status1}= Run Keyword And Return Status IP Fib Table 2 On agent_vpp_2 Should Contain Route With IP ${NET3}/24 126 Should Not Be True ${status1} 127 128 ${status2}= Run Keyword And Return Status IP Fib Table 0 On agent_vpp_2 Should Contain Route With IP ${NET3}/24 129 Should Not Be True ${status2} 130 131 ${status3}= Run Keyword And Return Status IP Fib Table 1 On agent_vpp_2 Should Contain Route With IP ${NET1}/24 132 Should Not Be True ${status3} 133 134 ${status4}= Run Keyword And Return Status IP Fib Table 1 On agent_vpp_2 Should Contain Route With IP ${NET2}/24 135 Should Not Be True ${status4} 136 137 ${status5}= Run Keyword And Return Status IP Fib Table 1 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv4-VRF: 138 Should Not Be True ${status5} 139 140 Update Inter Vrf Route 141 Create Route On agent_vpp_2 With IP ${NET1}/24 With Next Hop VRF 0 From Vrf Id 1 And Type 1 142 Create Route On agent_vpp_2 With IP ${NET1}/24 With Next Hop VRF 2 From Vrf Id 1 And Type 1 143 144 Check Route After Update 145 Show IP Fib On agent_vpp_2 146 IP Fib Table 1 On agent_vpp_2 Should Contain Route With IP ${NET1}/24 147 IP Fib Table 1 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv4-VRF:2 148 149 #can use in debug 150 #Check Route With Ping 151 # Ping On agent_vpp_1 With IP ${IP_4}, Source memif1/1 152 # Ping On agent_vpp_1 With IP ${IP_4}, Source memif2/1 153 # Ping On agent_vpp_1 With IP ${IP_3}, Source memif1/1 154 # 155 156 Final Sleep For Manual Checking 157 Sleep ${FINAL_SLEEP} 158 159 *** Keywords *** 160 List of interfaces On ${node} Should Contain Interface ${int} 161 ${out}= vpp_term: Show Interfaces ${node} 162 Should Match Regexp ${out} ${int} 163 164 IP Fib Table ${table_id} On ${node} Should Contain Vrf ${inter_vrf_string} 165 ${out}= vpp_term: Show IP Fib Table ${node} ${table_id} 166 Should Contain ${out} ${inter_vrf_string} 167 168 IP6 Fib Table ${table_id} On ${node} Should Contain Vrf ${inter_vrf_string} 169 ${out}= vpp_term: Show IP6 Fib Table ${node} ${table_id} 170 Should Contain ${out} ${inter_vrf_string}