Check For Elements On Karaf Command Output Message
[Arguments] ${cmd} ${elements} ${controller}=${ODL_SYSTEM_IP} ${karaf_port}=${KARAF_SHELL_PORT} ${timeout}=5
[Documentation] Will execute the command using Issue Command On Karaf Console then check for the given elements
- ... in the command output message
+ ... in the command output message
${output} Issue Command On Karaf Console ${cmd} ${controller} ${karaf_port} ${timeout}
: FOR ${i} IN @{elements}
\ Should Contain ${output} ${i}
: FOR ${node} IN @{node_list}
\ ${node_id}= Get From Dictionary ${node} node-id
\ ${node_uuid}= Replace String ${node_id} ovsdb://uuid/ ${EMPTY}
- # Since bridges are also listed as nodes, but will not have the extra "ovsdb:connection-info data, we need to
- # use "Run Keyword And Ignore Error" below.
+ \ # Since bridges are also listed as nodes, but will not have the extra "ovsdb:connection-info data, we need to
+ \ # use "Run Keyword And Ignore Error" below.
\ ${status} ${connection_info} Run Keyword And Ignore Error Get From Dictionary ${node} ovsdb:connection-info
\ ${status} ${remote_ip} Run Keyword And Ignore Error Get From Dictionary ${connection_info} remote-ip
\ ${uuid}= Set Variable If '${remote_ip}' == '${ovs_system_ip}' ${node_uuid} ${uuid}
Write pingpair ${host1} ${host2}
Read Until mininet>
-
Ping Pair Hosts Hbase
[Arguments] ${pattern}
[Documentation] Ping between h1 and h2 and check Hbase
[Arguments] ${pattern}
[Documentation] Iperf between h1 and h2 and check Cassandra
Ping Pair Hosts h1 h2
- ${query_output}= Issue Command On Karaf Console tsdr:list NETFLOW | wc -l
+ ${query_output}= Issue Command On Karaf Console tsdr:list NETFLOW | wc -l
Should Match Regexp ${query_output} ${pattern}
Stop Tsdr Suite
${metric_count}= Get From List ${split_line} 3
[Return] ${metric_count}
-
Form Portstats Query Pattern
[Arguments] ${metric} ${node} ${port} ${attribute}
[Documentation] Used for geneating openflow metrics Queries for Cassandra.
${output}= Run Command On Remote System ${ODL_SYSTEM_IP} cat ${CASSANDRA_DB_PATH}${val_table}|grep "${pattern}"
[Return] ${output}
-
Verify Metric Val File
[Documentation] Returns Value for metric matching particular keya,keyb
@{metricval}= Read File and Return Split Lines ${CASSANDRA_DB_PATH}${temp_metric_val}
[Return] ${contents}
Grep From File
-
[Arguments] ${file} ${pattern}
[Documentation] Use cat to grep from the file and return the output
${output}= Run Command On Remote System ${ODL_SYSTEM_IP} cat ${file} | ${pattern}
Bringup Netflow
[Documentation] Brings up basic netflow setup .
Verify Feature Is Installed odl-tsdr-netflow-statistics-collector
- Wait Until Keyword Succeeds 24x 10 sec Check Karaf Log Has Messages NetFlow Data Colletor Initialized
+ Wait Until Keyword Succeeds 24x 10 sec Check Karaf Log Has Messages NetFlow Data Colletor Initialized
Start Tsdr Suite
Ping All Hosts
Configure Netflow
-
Collect Data from SNMP Agent
[Arguments] ${SNMP_IP}=127.0.0.1 ${SNMP_AGENT_COMM}=${SNMP_COMMUNITY}
[Documentation] Poll for SNMP Agent OID
\ ${ifOperStatus}= Get From Dictionary ${OPER_STATUS} ${ifOperStatus1}
\ Append To List ${SNMP_ENTRY} grep NID=${SNMP_IP} | grep DC=SNMPINTERFACES | grep MN=IfOutDiscards | grep RK=ifIndex:${ifindex},ifName:Iso88023Csmacd,SnmpMetric:IfOutDiscards
\ Append To List ${SNMP_VALUES} ${ifOutDiscards}
- \ Append To List ${SNMP_ENTRY} grep NID=${SNMP_IP} | grep DC=SNMPINTERFACES | grep MN=IfInDiscards | grep RK=ifIndex:${ifindex},ifName:Iso88023Csmacd,SnmpMetric:IfInDiscards
+ \ Append To List ${SNMP_ENTRY} grep NID=${SNMP_IP} | grep DC=SNMPINTERFACES | grep MN=IfInDiscards | grep RK=ifIndex:${ifindex},ifName:Iso88023Csmacd,SnmpMetric:IfInDiscards
\ Append To List ${SNMP_VALUES} ${ifInDiscards}
\ Append To List ${SNMP_ENTRY} grep NID=${SNMP_IP} | grep DC=SNMPINTERFACES | grep MN=IfInOctets | grep RK=ifIndex:${ifindex},ifName:Iso88023Csmacd,SnmpMetric:IfInOctets
\ Append To List ${SNMP_VALUES} ${ifInOctets}
\ Append To List ${SNMP_ENTRY} grep NID=${SNMP_IP} | grep DC=SNMPINTERFACES | grep MN=IfOperStatus | grep RK=ifIndex:${ifindex},ifName:Iso88023Csmacd,SnmpMetric:IfOperStatus
\ Append To List ${SNMP_VALUES} ${ifOperStatus}
[Return] ${SNMP_ENTRY} ${SNMP_VALUES}
-
*** Settings ***
-Documentation Unimgr keywords defination that will be used in Unimgr suite.
-Library OperatingSystem
-Library SSHLibrary
-Library String
-Resource ../../../libraries/OVSDB.robot
-Resource ../../../libraries/Utils.robot
-Variables ../../../variables/Variables.py
+Documentation Unimgr keywords defination that will be used in Unimgr suite.
+Library OperatingSystem
+Library SSHLibrary
+Library String
+Resource ../../../libraries/OVSDB.robot
+Resource ../../../libraries/Utils.robot
+Variables ../../../variables/Variables.py
*** Variables ***
${Bridge_Name} ovsbr0
Setup Unimgr Test Environment
[Documentation] Establish the Opendayligh session and prepair the Mininet VMs
Create Session session http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
- Prepair Unimgr Test Environment ${TOOLS_SYSTEM_IP}
- Prepair Unimgr Test Environment ${TOOLS_SYSTEM_2_IP}
+ Prepair Unimgr Test Environment ${TOOLS_SYSTEM_IP}
+ Prepair Unimgr Test Environment ${TOOLS_SYSTEM_2_IP}
Prepair Unimgr Test Environment
[Arguments] ${Mininet_IP}
Run Command On Remote System ${Mininet_IP} sudo ovs-vsctl del-br ${Bridge_Name}
Run Command On Remote System ${Mininet_IP} sudo ovs-vsctl set-manager ptcp:${OVSDBPORT}
${stdout}= Run Command On Remote System ${Mininet_IP} sudo ovs-vsctl show
- Should Contain ${stdout} "ptcp:${OVSDBPORT}"
+ Should Contain ${stdout} "ptcp:${OVSDBPORT}"
Get Add Uni Json
[Arguments] ${IP-Address} ${MAC-Address}
${Json} OperatingSystem.Get File ${UniMgr_Variables_DIR}/add_evc.json
${temp} Replace String ${Json} {uni1-ip} ${UNI1-IP}
${evcJson} Replace String ${temp} {uni2-ip} ${UNI2-IP}
- [Return] ${evcJson}
\ No newline at end of file
+ [Return] ${evcJson}
${DUMPFLOWS_OF10} dpctl dump-flows -O OpenFlow10
${DUMPFLOWS_OF13} dpctl dump-flows -O OpenFlow13
${index} 7
-@{inet_actions} nw_src=10.0.0.1 nw_dst=10.0.0.3
+@{inet_actions} nw_src=10.0.0.1 nw_dst=10.0.0.3
@{BRIDGE1_DATAFLOW} "reason":"PORTMAPPED" "virtual-node-path":{"bridge-name":"vBridge1","tenant-name":"Tenant1","interface-name":"if2"}
@{BRIDGE2_DATAFLOW} "reason":"PORTMAPPED" "virtual-node-path":{"bridge-name":"vBridge2","tenant-name":"Tenant1","interface-name":"if3"}
${vlanmap_bridge1} 200
${policy_id} 1
${in_port} 1
${dscp_action} set_field:32->nw_tos_shifted
-${dscp_flow} mod_nw_tos:128
-@{icmp_action} nw_src=10.0.0.1 nw_dst=10.0.0.3
+${dscp_flow} mod_nw_tos:128
+@{icmp_action} nw_src=10.0.0.1 nw_dst=10.0.0.3
@{PATHPOLICY_ATTR} "id":1 "port-desc":"openflow:4,2,s4-eth2"
${custom} ${CURDIR}/${CREATE_PATHPOLICY_TOPOLOGY_FILE_PATH}
Should Be Equal As Strings ${resp.status_code} 200
Verify Flow Entries for Flowfilter
- [Arguments] ${dumpflows} @{flowfilter_actions}
+ [Arguments] ${dumpflows} @{flowfilter_actions}
[Documentation] Verify switch flow entry using flowfilter for a vtn
- ${booleanValue}= Run Keyword And Return Status Verify Actions on Flow Entry ${dumpflows} @{flowfilter_actions}
+ ${booleanValue}= Run Keyword And Return Status Verify Actions on Flow Entry ${dumpflows} @{flowfilter_actions}
Should Be Equal As Strings ${booleanValue} True
Verify Removed Flow Entry for Inet Drop Flowfilter
- [Arguments] ${dumpflows} @{flowfilter_actions}
+ [Arguments] ${dumpflows} @{flowfilter_actions}
[Documentation] Verify removed switch flow entry using flowfilter drop for a vtn
- ${booleanValue}= Run Keyword And Return Status Verify Actions on Flow Entry ${dumpflows} @{flowfilter_actions}
+ ${booleanValue}= Run Keyword And Return Status Verify Actions on Flow Entry ${dumpflows} @{flowfilter_actions}
Should Be Equal As Strings ${booleanValue} True
Verify Actions on Flow Entry
- [Arguments] ${dumpflows} @{flowfilter_actions}
+ [Arguments] ${dumpflows} @{flowfilter_actions}
[Documentation] check flow action elements by giving dumpflows in mininet
write ${dumpflows}
${result} Read Until mininet>
${THE_SECOND_IRD_RESOURCE_ID} world
${RESOURCE_IN_FIRST_IRD} test-model-networkmap
${RESOURCE_IN_SECOND_IRD} test-model-filtered-costmap
-${BASE_URL}
-${RANDOM_CONTEXT_ID}
+${BASE_URL} ${EMPTY}
+${RANDOM_CONTEXT_ID} ${EMPTY}
*** Test Cases ***
Check the simple IRD information
Add one IRD configuration entry in one IRD instance
[Documentation] Add one IRD configuration entry in an IRD whose name is hello. Link IRD entry to one existed resource.
- Wait Until Keyword Succeeds 5s 1s Add An IRD Configuration Entry ${THE_FIRST_IRD_RESOURCE_ID} ${DEFAULT_CONTEXT_ID} ${RESOURCE_IN_FIRST_IRD} ${BASE_URL}
- Wait Until Keyword Succeeds 5s 1s Add An IRD Configuration Entry ${THE_SECOND_IRD_RESOURCE_ID} ${DEFAULT_CONTEXT_ID} ${RESOURCE_IN_SECOND_IRD} ${BASE_URL}
+ Wait Until Keyword Succeeds 5s 1s Add An IRD Configuration Entry ${THE_FIRST_IRD_RESOURCE_ID} ${DEFAULT_CONTEXT_ID} ${RESOURCE_IN_FIRST_IRD}
+ ... ${BASE_URL}
+ Wait Until Keyword Succeeds 5s 1s Add An IRD Configuration Entry ${THE_SECOND_IRD_RESOURCE_ID} ${DEFAULT_CONTEXT_ID} ${RESOURCE_IN_SECOND_IRD}
+ ... ${BASE_URL}
*** Keywords ***
Check GET Response Code Equals 200
[Arguments] ${uri_without_ip_port}
- ${resp} RequestsLibrary.Get Request session ${uri_without_ip_port}
+ ${resp} RequestsLibrary.Get Request session ${uri_without_ip_port}
Should Be Equal As Strings ${resp.status_code} 200
Create An IRD
Add An IRD Configuration Entry
[Arguments] ${IRD_id} ${context_id} ${resource_id} ${base_url}
${body} Set Variable {"ird-configuration-entry":{"entry-id":"${resource_id}","instance":"/alto-resourcepool:context[alto-resourcepool:context-id='${context_id}']/alto-resourcepool:resource[alto-resourcepool:resource-id='${resource_id}']","path":"${base_url}/${resource_id}"}}
- ${resp} RequestsLibrary.Put Request session /${ALTO_CONFIG_IRD_INSTANCE_CONFIG}/${IRD_id}/ird-configuration-entry/${resource_id} data=${body}
+ ${resp} RequestsLibrary.Put Request session /${ALTO_CONFIG_IRD_INSTANCE_CONFIG}/${IRD_id}/ird-configuration-entry/${resource_id} data=${body}
should Be Equal As Strings ${resp.status_code} 200
*** Test Cases ***
Initialize Nodes
- Setup Nodes ${GBPSFCs} ${CURDIR}/init_scripts
+ Setup Nodes ${GBPSFCs} ${CURDIR}/init_scripts
*** Settings ***
Documentation Waiting for manager and switch connections.
+Suite Setup Start Connections
+Suite Teardown Close Connections
Library SSHLibrary
Resource ../../../../../libraries/GBP/ConnUtils.robot
Resource ../../../../../libraries/GBP/OpenFlowUtils.robot
Resource ../Variables.robot
Resource ../Connections.robot
-Suite Setup Start Connections
-Suite Teardown Close Connections
*** Testcases ***
-
Wait For Manager Connected on GBPSFC2
Switch Connection GPSFC2_CONNECTION
- Wait Until Keyword Succeeds 2 min 3s Manager is Connected
+ Wait Until Keyword Succeeds 2 min 3s Manager is Connected
Wait For Manager Connected on GBPSFC4
Switch Connection GPSFC4_CONNECTION
- Wait Until Keyword Succeeds 4x 5s Manager is Connected
+ Wait Until Keyword Succeeds 4x 5s Manager is Connected
Put Service Functions
[Documentation] Register Service Functions to ODL
${json_to_edit} OperatingSystem.Get File ${SF_FILE}
- ${edited_json} Replace String ${json_to_edit} _SF1 ${GBPSFC3}
- ${edited_json} Replace String ${edited_json} _SF2 ${GBPSFC5}
+ ${edited_json} Replace String ${json_to_edit} _SF1 ${GBPSFC3}
+ ${edited_json} Replace String ${edited_json} _SF2 ${GBPSFC5}
Add Elements To URI And Verify ${SF_PATH} ${edited_json} ${HEADERS_YANG_JSON}
Put Service Function Forwarders
[Documentation] Register Service Function Forwarders to ODL
${json_to_edit} OperatingSystem.Get File ${SFF_FILE}
- ${edited_json} Replace String ${json_to_edit} _SFF1 ${GBPSFC2}
- ${edited_json} Replace String ${edited_json} _SFF2 ${GBPSFC4}
+ ${edited_json} Replace String ${json_to_edit} _SFF1 ${GBPSFC2}
+ ${edited_json} Replace String ${edited_json} _SFF2 ${GBPSFC4}
Add Elements To URI And Verify ${SFF_PATH} ${edited_json} ${HEADERS_YANG_JSON}
-
Wait For Manager and Switch Connected on GBPSFC2
[Documentation] Making sure that manager is connected for further processing.
SSHLibrary.Open Connection ${GBPSFC2}
Utils.Flexible Mininet Login
- Wait Until Keyword Succeeds 2min 3s Manager and Switch Connected sw_name=sw2
+ Wait Until Keyword Succeeds 2min 3s Manager and Switch Connected sw_name=sw2
SSHLibrary.Close Connection
Wait For Manager and Switch Connected on GBPSFC4
[Documentation] Making sure that manager is connected for further processing.
SSHLibrary.Open Connection ${GBPSFC4}
Utils.Flexible Mininet Login
- Wait Until Keyword Succeeds 2min 3s Manager and Switch Connected sw_name=sw4
+ Wait Until Keyword Succeeds 2min 3s Manager and Switch Connected sw_name=sw4
SSHLibrary.Close Connection
Put Service Function Chains
Put Tunnels
[Documentation] Send tunnel augmentation to ODL
${json_to_edit} OperatingSystem.Get File ${TUNNELS_FILE}
- ${edited_json} Replace String ${json_to_edit} _CLASSIFIER1 ${GBPSFC1}
- ${edited_json} Replace String ${edited_json} _CLASSIFIER2 ${GBPSFC6}
+ ${edited_json} Replace String ${json_to_edit} _CLASSIFIER1 ${GBPSFC1}
+ ${edited_json} Replace String ${edited_json} _CLASSIFIER2 ${GBPSFC6}
Add Elements To URI And Verify ${TUNNELS_PATH} ${edited_json} ${HEADERS_YANG_JSON}
Put Tenant
Register Endpoints
[Documentation] Endpoints registration
- @{endpoint_files} = OperatingSystem.List Files In Directory ${ENDPOINTS_SYMM_DIR} vethl*.*json absolute
- :FOR ${endpoint_file} IN @{endpoint_files}
+ @{endpoint_files} = OperatingSystem.List Files In Directory ${ENDPOINTS_SYMM_DIR} vethl*.*json absolute
+ : FOR ${endpoint_file} IN @{endpoint_files}
\ Post Elements To URI From File ${ENDPOINT_REG_PATH} ${endpoint_file} ${HEADERS_YANG_JSON}
${resp} RequestsLibrary.Get Request session ${ENDPOINTS_OPER_PATH}
- Log ${resp.content}
\ No newline at end of file
+ Log ${resp.content}
*** Settings ***
-Documentation Documentation Waiting for flows to appear on switches.
+Documentation Documentation Waiting for flows to appear on switches.
+Suite Setup Start Connections
+Suite Teardown Close Connections
Library SSHLibrary
Resource ../../../../../libraries/Utils.robot
Resource ../../../../../libraries/GBP/ConnUtils.robot
Variables ../../../../../variables/Variables.py
Resource ../Variables.robot
Resource ../Connections.robot
-Suite Setup Start Connections
-Suite Teardown Close Connections
*** Testcases ***
-
Wait For Flows on GBPSFC1
[Documentation] Waiting for flows to appear on OVS switch.
Switch Connection GPSFC1_CONNECTION
[Documentation] Waiting for flows to appear on OVS switch.
Switch Connection GPSFC6_CONNECTION
Wait For Flows On Switch ${GBPSFC6} sw6
-
*** Settings ***
-Documentation Deep icmp traffic inspection.
-... Nodes are located on the same VM in different subnets and are members of the same EPG.
+Documentation Deep icmp traffic inspection.
+... Nodes are located on the same VM in different subnets and are members of the same EPG.
+Suite Setup Start Connections
+Suite Teardown Close Connections
Library SSHLibrary
Resource ../../../../../libraries/GBP/OpenFlowUtils.robot
Resource ../Variables.robot
Resource ../Connections.robot
-Suite Setup Start Connections
-Suite Teardown Close Connections
*** Variables ***
*** Testcases ***
-
Ping Once from h35_2 to h36_2
[Documentation] Test icmp request.
- Set Test Variables client_name=h35_2 client_ip=10.0.35.2 server_name=h36_2 server_ip=10.0.36.2
- ... ether_type=0x0800 proto=1
+ Set Test Variables client_name=h35_2 client_ip=10.0.35.2 server_name=h36_2 server_ip=10.0.36.2 ether_type=0x0800 proto=1
Switch Connection GPSFC1_CONNECTION
Ping from Docker ${CLIENT_NAME} ${SERVER_IP}
Find ICMP Req from h35_2 to h36_2 on GBPSFC6
[Documentation] Inspecting icmp req on GBPSFC1.
Switch Connection GPSFC1_CONNECTION
- ${flow} Inspect Classifier Outbound in_port=4 out_port=6 eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
- ... inner_dst_ip=${SERVER_IP} proto=${PROTO}
+ ${flow} Inspect Classifier Outbound in_port=4 out_port=6 eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP}
+ ... proto=${PROTO}
Find ICMP Resp from h36_2 to h35_2 on GBPSFC6
[Documentation] Inspecting icmp resp on GBPSFC1.
Switch Connection GPSFC1_CONNECTION
- ${flow} Inspect Classifier Outbound in_port=6 out_port=4 eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
- ... inner_dst_ip=${CLIENT_IP} proto=${PROTO}
+ ${flow} Inspect Classifier Outbound in_port=6 out_port=4 eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP}
+ ... proto=${PROTO}
Stop Endless Ping from h35_2 to h36_2
[Documentation] Stoping of endless pinging after traffic inspection finishes.
Switch Connection GPSFC1_CONNECTION
- Stop Endless Ping from Docker to Address ${CLIENT_NAME} ${SERVER_IP}
-
-
+ Stop Endless Ping from Docker to Address ${CLIENT_NAME} ${SERVER_IP}
*** Settings ***
-Documentation Deep icmp traffic inspection.
-... Nodes are located on the same VM in the same subnet and are members of the same EPG.
+Documentation Deep icmp traffic inspection.
+... Nodes are located on the same VM in the same subnet and are members of the same EPG.
+Suite Setup Start Connections
+Suite Teardown Close Connections
Library SSHLibrary
Resource ../../../../../libraries/GBP/OpenFlowUtils.robot
Resource ../Variables.robot
Resource ../Connections.robot
-Suite Setup Start Connections
-Suite Teardown Close Connections
*** Variables ***
*** Testcases ***
-
Ping Once from h35_2 to h35_3
[Documentation] Test icmp request.
- Set Test Variables client_name=h35_2 client_ip=10.0.35.2 server_name=h35_3 server_ip=10.0.35.3
- ... ether_type=0x0800 proto=1
+ Set Test Variables client_name=h35_2 client_ip=10.0.35.2 server_name=h35_3 server_ip=10.0.35.3 ether_type=0x0800 proto=1
Switch Connection GPSFC1_CONNECTION
Ping from Docker ${CLIENT_NAME} ${SERVER_IP}
Find ICMP Req from h35_2 to h35_3 on GBPSFC6
[Documentation] Inspecting icmp req on GBPSFC1.
Switch Connection GPSFC1_CONNECTION
- ${flow} Inspect Classifier Outbound in_port=4 out_port=5 eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
- ... inner_dst_ip=${SERVER_IP} proto=${PROTO}
+ ${flow} Inspect Classifier Outbound in_port=4 out_port=5 eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP}
+ ... proto=${PROTO}
Find ICMP Resp from h35_3 to h35_2 on GBPSFC6
[Documentation] Inspecting icmp resp on GBPSFC1.
Switch Connection GPSFC1_CONNECTION
- ${flow} Inspect Classifier Outbound in_port=5 out_port=4 eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
- ... inner_dst_ip=${CLIENT_IP} proto=${PROTO}
+ ${flow} Inspect Classifier Outbound in_port=5 out_port=4 eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP}
+ ... proto=${PROTO}
Stop Endless Ping from h35_2 to h35_3
[Documentation] Stoping of endless pinging after traffic inspection finishes.
Switch Connection GPSFC1_CONNECTION
- Stop Endless Ping from Docker to Address ${CLIENT_NAME} ${SERVER_IP}
-
-
+ Stop Endless Ping from Docker to Address ${CLIENT_NAME} ${SERVER_IP}
*** Settings ***
-Documentation Deep icmp traffic inspection.
-... Nodes are located on the same VM, in different subnets and are members of the same EPG.
+Documentation Deep icmp traffic inspection.
+... Nodes are located on the same VM, in different subnets and are members of the same EPG.
+Suite Setup Start Connections
+Suite Teardown Close Connections
Library SSHLibrary
Resource ../../../../../libraries/GBP/OpenFlowUtils.robot
Resource ../Variables.robot
Resource ../Connections.robot
-Suite Setup Start Connections
-Suite Teardown Close Connections
*** Variables ***
*** Testcases ***
-
Ping from h36_4 to h35_4
[Documentation] Test icmp request.
- Set Test Variables client_name=h36_4 client_ip=10.0.36.4 server_name=h35_4 server_ip=10.0.35.4
- ... ether_type=0x0800 proto=1
+ Set Test Variables client_name=h36_4 client_ip=10.0.36.4 server_name=h35_4 server_ip=10.0.35.4 ether_type=0x0800 proto=1
Switch Connection GPSFC6_CONNECTION
Ping from Docker ${CLIENT_NAME} ${SERVER_IP}
Find ICMP Req from h36_4 to h35_4 on GBPSFC6
[Documentation] Inspecting icmp req on GBPSFC6.
Switch Connection GPSFC6_CONNECTION
- ${flow} Inspect Classifier Outbound in_port=6 out_port=4 eth_type=0x0800 inner_src_ip=${CLIENT_IP}
- ... inner_dst_ip=${SERVER_IP} proto=${PROTO}
+ ${flow} Inspect Classifier Outbound in_port=6 out_port=4 eth_type=0x0800 inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP}
+ ... proto=${PROTO}
Find ICMP Resp from h35_4 to h36_4 on GBPSFC6
[Documentation] Inspecting icmp resp on GBPSFC6.
Switch Connection GPSFC6_CONNECTION
- ${flow} Inspect Classifier Outbound in_port=4 out_port=6 eth_type=0x0800 inner_src_ip=${SERVER_IP}
- ... inner_dst_ip=${CLIENT_IP} proto=${PROTO}
+ ${flow} Inspect Classifier Outbound in_port=4 out_port=6 eth_type=0x0800 inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP}
+ ... proto=${PROTO}
Stop Endless Ping from h36_4 to h35_4
[Documentation] Stoping of endless pinging after traffic inspection finishes.
Switch Connection GPSFC6_CONNECTION
- Stop Endless Ping from Docker to Address ${CLIENT_NAME} ${SERVER_IP}
-
-
+ Stop Endless Ping from Docker to Address ${CLIENT_NAME} ${SERVER_IP}
*** Settings ***
-Documentation Deep icmp traffic inspection.
-... Nodes are located on different VMs in different subnets and are members of different EPGs.
+Documentation Deep icmp traffic inspection.
+... Nodes are located on different VMs in different subnets and are members of different EPGs.
+Suite Setup Start Connections
+Suite Teardown Close Connections
Library SSHLibrary
Resource ../../../../../libraries/GBP/OpenFlowUtils.robot
Resource ../Variables.robot
Resource ../Connections.robot
-Suite Setup Start Connections
-Suite Teardown Close Connections
*** Variables ***
*** Testcases ***
-
Ping from h36_5 to h35_2
[Documentation] Test icmp request.
- Set Test Variables client_name=h36_5 client_ip=10.0.36.5 server_name=h35_2 server_ip=10.0.35.2
- ... ether_type=0x0800 proto=1 vxlan_port=3
+ Set Test Variables client_name=h36_5 client_ip=10.0.36.5 server_name=h35_2 server_ip=10.0.35.2 ether_type=0x0800 proto=1
+ ... vxlan_port=3
Switch Connection GPSFC6_CONNECTION
Ping from Docker ${CLIENT_NAME} ${SERVER_IP}
Find ICMP Req from h36_5 to h35_2 on GBPSFC6
[Documentation] Inspecting icmp req on GBPSFC6.
Switch Connection GPSFC6_CONNECTION
- ${flow} Inspect Classifier Outbound in_port=7 out_port=${VXLAN_PORT} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
- ... inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC1} proto=${PROTO}
+ ${flow} Inspect Classifier Outbound in_port=7 out_port=${VXLAN_PORT} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP}
+ ... next_hop_ip=${GBPSFC1} proto=${PROTO}
Find ICMP Req from h36_5 to h35_2 on GBPSFC1
[Documentation] Inspecting icmp req on GBPSFC1.
Switch Connection GPSFC1_CONNECTION
- Inspect Classifier Inbound in_port=${VXLAN_PORT} out_port=4 eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP}
- ... outer_src_ip=${GBPSFC6} outer_dst_ip=${GBPSFC1} proto=${PROTO}
+ Inspect Classifier Inbound in_port=${VXLAN_PORT} out_port=4 eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP} outer_src_ip=${GBPSFC6}
+ ... outer_dst_ip=${GBPSFC1} proto=${PROTO}
Find ICMP Resp from h35_2 to h36_5 on GBPSFC1
[Documentation] Inspecting icmp resp on GBPSFC1.
Switch Connection GPSFC1_CONNECTION
- ${flow} Inspect Classifier Outbound in_port=4 out_port=${VXLAN_PORT} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
- ... inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC6} proto=${PROTO}
+ ${flow} Inspect Classifier Outbound in_port=4 out_port=${VXLAN_PORT} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP}
+ ... next_hop_ip=${GBPSFC6} proto=${PROTO}
Find ICMP Resp from h35_2 to h36_5 on GBPSFC6
[Documentation] Inspecting icmp resp on GBPSFC6.
Switch Connection GPSFC6_CONNECTION
- Inspect Classifier Inbound in_port=${VXLAN_PORT} out_port=7 eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP}
- ... outer_src_ip=${GBPSFC1} outer_dst_ip=${GBPSFC6} proto=${PROTO}
+ Inspect Classifier Inbound in_port=${VXLAN_PORT} out_port=7 eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP} outer_src_ip=${GBPSFC1}
+ ... outer_dst_ip=${GBPSFC6} proto=${PROTO}
Stop Endless Ping from h36_5 to h35_2
[Documentation] Stoping of endless pinging after traffic inspection finishes.
Switch Connection GPSFC6_CONNECTION
- Stop Endless Ping from Docker to Address ${CLIENT_NAME} ${SERVER_IP}
-
-
+ Stop Endless Ping from Docker to Address ${CLIENT_NAME} ${SERVER_IP}
*** Settings ***
-Documentation Deep inspection of HTTP traffic on symmetric chain.
-... Nodes are located on the same VM.
+Documentation Deep inspection of HTTP traffic on symmetric chain.
+... Nodes are located on the same VM.
+Suite Setup Start Connections
+Suite Teardown Close Connections
Library SSHLibrary
Resource ../../../../../libraries/GBP/OpenFlowUtils.robot
Resource ../Variables.robot
Resource ../Connections.robot
-Suite Setup Start Connections
-Suite Teardown Close Connections
*** Variables ***
*** Testcases ***
-
Start HTTP on h36_2 on Port 80
[Documentation] Starting HTTP service on docker container.
- Set Test Variables client_name=h35_2 client_ip=10.0.35.2 server_name=h36_2 server_ip=10.0.36.2
- ... service_port=80 ether_type=0x0800 proto=6 vxlan_gpe_port=2
+ Set Test Variables client_name=h35_2 client_ip=10.0.35.2 server_name=h36_2 server_ip=10.0.36.2 service_port=80 ether_type=0x0800
+ ... proto=6 vxlan_gpe_port=2
Switch Connection GPSFC1_CONNECTION
Start HTTP Service on Docker ${SERVER_NAME} ${SERVICE_PORT}
Curl h36_2 from h35_2
- [Documentation] Test HTTP request from a docker container to serving docker container.
- Curl from Docker ${CLIENT_NAME} ${SERVER_IP} service_port=${SERVICE_PORT}
+ [Documentation] Test HTTP request from a docker container to serving docker container.
+ Curl from Docker ${CLIENT_NAME} ${SERVER_IP} service_port=${SERVICE_PORT}
Start Endless Curl on h35_2 on port 80
[Documentation] Starting endless HTTP session for traffic inspection.
- Start Endless Curl from Docker ${CLIENT_NAME} ${SERVER_IP} ${SERVICE_PORT} sleep=1
+ Start Endless Curl from Docker ${CLIENT_NAME} ${SERVER_IP} ${SERVICE_PORT} sleep=1
On GBPSFC1 Send HTTP req h35_2-h36_2 to GBPSFC2
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC1_CONNECTION
- ${flow} Inspect Classifier Outbound in_port=4 out_port=${VXLAN_GPE_PORT} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
- ... inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC2} nsi=255 proto=${PROTO} dst_port=${SERVICE_PORT}
+ ${flow} Inspect Classifier Outbound in_port=4 out_port=${VXLAN_GPE_PORT} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP}
+ ... next_hop_ip=${GBPSFC2} nsi=255 proto=${PROTO} dst_port=${SERVICE_PORT}
${nsp_35_2-nsp_36_2} GET NSP Value From Flow ${flow}
Set Global Variable ${NSP_path1} ${nsp_35_2-nsp_36_2}
On GBPSFC2 Send HTTP req h35_2-h36_2 to GBPSFC3
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC2_CONNECTION
- Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC1} outer_dst_ip=${GBPSFC2} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC3} nsp=${NSP_path1} nsi=255 proto=${PROTO}
+ Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC1} outer_dst_ip=${GBPSFC2} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
+ ... inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC3} nsp=${NSP_path1} nsi=255 proto=${PROTO}
On GBPSFC3 Send HTTP req h35_2-h36_2 to GBPSFC2
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC3_CONNECTION
- Inspect Service Function in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC2} outer_dst_ip=${GBPSFC3} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC2} nsp=${NSP_path1} received_nsi=255
+ Inspect Service Function in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC2} outer_dst_ip=${GBPSFC3} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
+ ... inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC2} nsp=${NSP_path1} received_nsi=255
On GBPSFC2 Send HTTP req h35_2-h36_2 to GBPSFC4
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC2_CONNECTION
- Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC3} outer_dst_ip=${GBPSFC2} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC4} nsp=${NSP_path1} nsi=254 proto=${PROTO}
+ Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC3} outer_dst_ip=${GBPSFC2} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
+ ... inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC4} nsp=${NSP_path1} nsi=254 proto=${PROTO}
On GBPSFC4 Send HTTP req h35_2-h36_2 to GBPSFC5
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC4_CONNECTION
- Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC2} outer_dst_ip=${GBPSFC4} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC5} nsp=${NSP_path1} nsi=254 proto=${PROTO}
+ Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC2} outer_dst_ip=${GBPSFC4} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
+ ... inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC5} nsp=${NSP_path1} nsi=254 proto=${PROTO}
On GBPSFC5 Send HTTP req h35_2-h36_2 to GBPSFC4
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC5_CONNECTION
- Inspect Service Function in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC4} outer_dst_ip=${GBPSFC5} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC4} nsp=${NSP_path1} received_nsi=254
+ Inspect Service Function in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC4} outer_dst_ip=${GBPSFC5} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
+ ... inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC4} nsp=${NSP_path1} received_nsi=254
On GBPSFC4 Send HTTP req h35_2-h36_2 to GBPSFC1
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC4_CONNECTION
- Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC5} outer_dst_ip=${GBPSFC4} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC1} nsp=${NSP_path1} nsi=253 proto=${PROTO}
+ Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC5} outer_dst_ip=${GBPSFC4} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
+ ... inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC1} nsp=${NSP_path1} nsi=253 proto=${PROTO}
On GBPSFC1 Send HTTP req h35_2-h36_2 to h36_2
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC1_CONNECTION
- Inspect Classifier Inbound in_port=${VXLAN_GPE_PORT} out_port=6 eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP}
- ... outer_src_ip=${GBPSFC4} outer_dst_ip=${GBPSFC1} nsp=${NSP_path1} nsi=253 proto=${PROTO}
+ Inspect Classifier Inbound in_port=${VXLAN_GPE_PORT} out_port=6 eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP} outer_src_ip=${GBPSFC4}
+ ... outer_dst_ip=${GBPSFC1} nsp=${NSP_path1} nsi=253 proto=${PROTO}
On GBPSFC1 Send HTTP resp h36_2-h35_2 to GBPSFC4
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC1_CONNECTION
- ${flow} Inspect Classifier Outbound in_port=6 out_port=${VXLAN_GPE_PORT} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
- ... inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC4} nsi=255 proto=${PROTO} src_port=${SERVICE_PORT}
+ ${flow} Inspect Classifier Outbound in_port=6 out_port=${VXLAN_GPE_PORT} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP}
+ ... next_hop_ip=${GBPSFC4} nsi=255 proto=${PROTO} src_port=${SERVICE_PORT}
${nsp_36_2-nsp_35_2} GET NSP Value From Flow ${flow}
Set Global Variable ${NSP_path2} ${nsp_36_2-nsp_35_2}
On GBPSFC4 Send HTTP resp h36_2-h35_2 to GBPSFC5
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC4_CONNECTION
- Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC1} outer_dst_ip=${GBPSFC4} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC5} nsp=${NSP_path2} nsi=255 proto=${PROTO}
+ Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC1} outer_dst_ip=${GBPSFC4} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
+ ... inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC5} nsp=${NSP_path2} nsi=255 proto=${PROTO}
On GBPSFC5 Send HTTP resp h36_2-h35_2 to GBPSFC4
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC5_CONNECTION
- Inspect Service Function in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC4} outer_dst_ip=${GBPSFC5} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC4} nsp=${NSP_path2} received_nsi=255
+ Inspect Service Function in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC4} outer_dst_ip=${GBPSFC5} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
+ ... inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC4} nsp=${NSP_path2} received_nsi=255
On GBPSFC4 Send HTTP resp h36_2-h35_2 to GBPSFC2
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC4_CONNECTION
- Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC5} outer_dst_ip=${GBPSFC4} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC2} nsp=${NSP_path2} nsi=254 proto=${PROTO}
+ Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC5} outer_dst_ip=${GBPSFC4} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
+ ... inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC2} nsp=${NSP_path2} nsi=254 proto=${PROTO}
On GBPSFC2 Send HTTP resp h36_2-h35_2 to GBPSFC3
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC2_CONNECTION
- Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC4} outer_dst_ip=${GBPSFC2} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC3} nsp=${NSP_path2} nsi=254 proto=${PROTO}
+ Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC4} outer_dst_ip=${GBPSFC2} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
+ ... inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC3} nsp=${NSP_path2} nsi=254 proto=${PROTO}
On GBPSFC3 Send HTTP resp h36_2-h35_2 to GBPSFC2
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC3_CONNECTION
- Inspect Service Function in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC2} outer_dst_ip=${GBPSFC3} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC2} nsp=${NSP_path2} received_nsi=254
+ Inspect Service Function in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC2} outer_dst_ip=${GBPSFC3} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
+ ... inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC2} nsp=${NSP_path2} received_nsi=254
On GBPSFC2 Send HTTP resp h36_2-h35_2 to GBPSFC1
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC2_CONNECTION
- Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC3} outer_dst_ip=${GBPSFC2} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC1} nsp=${NSP_path2} nsi=253 proto=${PROTO}
+ Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC3} outer_dst_ip=${GBPSFC2} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
+ ... inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC1} nsp=${NSP_path2} nsi=253 proto=${PROTO}
On GBPSFC1 Send HTTP resp h36_2-h35_2 to h35_2
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC1_CONNECTION
- Inspect Classifier Inbound in_port=${VXLAN_GPE_PORT} out_port=4 eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP}
- ... outer_src_ip=${GBPSFC2} outer_dst_ip=${GBPSFC1} nsp=${NSP_path2} nsi=253 proto=${PROTO}
+ Inspect Classifier Inbound in_port=${VXLAN_GPE_PORT} out_port=4 eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP} outer_src_ip=${GBPSFC2}
+ ... outer_dst_ip=${GBPSFC1} nsp=${NSP_path2} nsi=253 proto=${PROTO}
Compare NSPs
[Documentation] Verifying that different paths were taken.
Stop HTTP on h36_2 on Port 80
[Documentation] Stopping HTTP service on the docker container.
Stop HTTP Service on Docker ${SERVER_NAME}
-
*** Settings ***
-Documentation Deep inspection of HTTP traffic on symmetric chain.
-... Nodes are located on different VMs.
+Documentation Deep inspection of HTTP traffic on symmetric chain.
+... Nodes are located on different VMs.
+Suite Setup Start Connections
+Suite Teardown Close Connections
Library SSHLibrary
Resource ../../../../../libraries/GBP/OpenFlowUtils.robot
Resource ../Variables.robot
Resource ../Connections.robot
-Suite Setup Start Connections
-Suite Teardown Close Connections
*** Variables ***
*** Testcases ***
-
Start HTTP on h36_4 on Port 80
[Documentation] Starting HTTP service on docker container.
- Set Test Variables client_name=h35_3 client_ip=10.0.35.3 server_name=h36_4 server_ip=10.0.36.4
- ... service_port=80 ether_type=0x0800 proto=6 vxlan_gpe_port=2
+ Set Test Variables client_name=h35_3 client_ip=10.0.35.3 server_name=h36_4 server_ip=10.0.36.4 service_port=80 ether_type=0x0800
+ ... proto=6 vxlan_gpe_port=2
Switch Connection GPSFC6_CONNECTION
Start HTTP Service on Docker ${SERVER_NAME} ${SERVICE_PORT}
Curl h36_4 from h35_3
- [Documentation] Test HTTP request from a docker container to serving docker container.
+ [Documentation] Test HTTP request from a docker container to serving docker container.
Switch Connection GPSFC1_CONNECTION
Curl from Docker ${CLIENT_NAME} ${SERVER_IP} service_port=${SERVICE_PORT}
On GBPSFC1 Send HTTP req h35_3-h36_4 to GBPSFC2
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC1_CONNECTION
- ${flow} Inspect Classifier Outbound in_port=5 out_port=${VXLAN_GPE_PORT} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
- ... inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC2} nsi=255 proto=${PROTO} dst_port=${SERVICE_PORT}
+ ${flow} Inspect Classifier Outbound in_port=5 out_port=${VXLAN_GPE_PORT} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP}
+ ... next_hop_ip=${GBPSFC2} nsi=255 proto=${PROTO} dst_port=${SERVICE_PORT}
${nsp_35_3-nsp_36_4} GET NSP Value From Flow ${flow}
Set Global Variable ${NSP_path1} ${nsp_35_3-nsp_36_4}
On GBPSFC2 Send HTTP req h35_3-h36_4 to GBPSFC3
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC2_CONNECTION
- Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC1} outer_dst_ip=${GBPSFC2} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC3} nsp=${NSP_path1} nsi=255 proto=${PROTO}
+ Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC1} outer_dst_ip=${GBPSFC2} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
+ ... inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC3} nsp=${NSP_path1} nsi=255 proto=${PROTO}
On GBPSFC3 Send HTTP req h35_3-h36_4 to GBPSFC2
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC3_CONNECTION
- Inspect Service Function in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC2} outer_dst_ip=${GBPSFC3} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC2} nsp=${NSP_path1} received_nsi=255
+ Inspect Service Function in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC2} outer_dst_ip=${GBPSFC3} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
+ ... inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC2} nsp=${NSP_path1} received_nsi=255
On GBPSFC2 Send HTTP req h35_3-h36_4 to GBPSFC4
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC2_CONNECTION
- Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC3} outer_dst_ip=${GBPSFC2} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC4} nsp=${NSP_path1} nsi=254 proto=${PROTO}
+ Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC3} outer_dst_ip=${GBPSFC2} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
+ ... inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC4} nsp=${NSP_path1} nsi=254 proto=${PROTO}
On GBPSFC4 Send HTTP req h35_3-h36_4 to GBPSFC5
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC4_CONNECTION
- Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC2} outer_dst_ip=${GBPSFC4} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC5} nsp=${NSP_path1} nsi=254 proto=${PROTO}
+ Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC2} outer_dst_ip=${GBPSFC4} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
+ ... inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC5} nsp=${NSP_path1} nsi=254 proto=${PROTO}
On GBPSFC5 Send HTTP req h35_3-h36_4 to GBPSFC4
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC5_CONNECTION
- Inspect Service Function in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC4} outer_dst_ip=${GBPSFC5} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC4} nsp=${NSP_path1} received_nsi=254
+ Inspect Service Function in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC4} outer_dst_ip=${GBPSFC5} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
+ ... inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC4} nsp=${NSP_path1} received_nsi=254
On GBPSFC4 Send HTTP req h35_3-h36_4 to GBPSFC6
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC4_CONNECTION
- Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC5} outer_dst_ip=${GBPSFC4} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC6} nsp=${NSP_path1} nsi=253 proto=${PROTO}
+ Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC5} outer_dst_ip=${GBPSFC4} eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP}
+ ... inner_dst_ip=${SERVER_IP} next_hop_ip=${GBPSFC6} nsp=${NSP_path1} nsi=253 proto=${PROTO}
On GBPSFC6 Send HTTP req h35_3-h36_4 to h36_4
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC6_CONNECTION
- Inspect Classifier Inbound in_port=${VXLAN_GPE_PORT} out_port=6 eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP}
- ... outer_src_ip=${GBPSFC4} outer_dst_ip=${GBPSFC6} nsp=${NSP_path1} nsi=253 proto=${PROTO}
+ Inspect Classifier Inbound in_port=${VXLAN_GPE_PORT} out_port=6 eth_type=${ETHER_TYPE} inner_src_ip=${CLIENT_IP} inner_dst_ip=${SERVER_IP} outer_src_ip=${GBPSFC4}
+ ... outer_dst_ip=${GBPSFC6} nsp=${NSP_path1} nsi=253 proto=${PROTO}
On GBPSFC6 Send HTTP resp h36_4-h35_3 to GBPSFC4
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC6_CONNECTION
- ${flow} Inspect Classifier Outbound in_port=6 out_port=${VXLAN_GPE_PORT} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
- ... inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC4} nsi=255 proto=${PROTO} src_port=${SERVICE_PORT}
+ ${flow} Inspect Classifier Outbound in_port=6 out_port=${VXLAN_GPE_PORT} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP}
+ ... next_hop_ip=${GBPSFC4} nsi=255 proto=${PROTO} src_port=${SERVICE_PORT}
${nsp_36_4-nsp_35_3} GET NSP Value From Flow ${flow}
Set Global Variable ${NSP_path2} ${nsp_36_4-nsp_35_3}
On GBPSFC4 Send HTTP resp h36_4-h35_3 to GBPSFC5
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC4_CONNECTION
- Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC6} outer_dst_ip=${GBPSFC4} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC5} nsp=${NSP_path2} nsi=255 proto=${PROTO}
+ Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC6} outer_dst_ip=${GBPSFC4} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
+ ... inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC5} nsp=${NSP_path2} nsi=255 proto=${PROTO}
On GBPSFC5 Send HTTP resp h36_4-h35_3 to GBPSFC4
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC5_CONNECTION
- Inspect Service Function in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC4} outer_dst_ip=${GBPSFC5} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC4} nsp=${NSP_path2} received_nsi=255
+ Inspect Service Function in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC4} outer_dst_ip=${GBPSFC5} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
+ ... inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC4} nsp=${NSP_path2} received_nsi=255
On GBPSFC4 Send HTTP resp h36_4-h35_3 to GBPSFC2
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC4_CONNECTION
- Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC5} outer_dst_ip=${GBPSFC4} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC2} nsp=${NSP_path2} nsi=254 proto=${PROTO}
+ Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC5} outer_dst_ip=${GBPSFC4} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
+ ... inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC2} nsp=${NSP_path2} nsi=254 proto=${PROTO}
On GBPSFC2 Send HTTP resp h36_4-h35_3 to GBPSFC3
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC2_CONNECTION
- Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC4} outer_dst_ip=${GBPSFC2} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC3} nsp=${NSP_path2} nsi=254 proto=${PROTO}
+ Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC4} outer_dst_ip=${GBPSFC2} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
+ ... inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC3} nsp=${NSP_path2} nsi=254 proto=${PROTO}
On GBPSFC3 Send HTTP resp h36_4-h35_3 to GBPSFC2
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC3_CONNECTION
- Inspect Service Function in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC2} outer_dst_ip=${GBPSFC3} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC2} nsp=${NSP_path2} received_nsi=254
+ Inspect Service Function in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC2} outer_dst_ip=${GBPSFC3} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
+ ... inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC2} nsp=${NSP_path2} received_nsi=254
On GBPSFC2 Send HTTP resp h36_4-h35_3 to GBPSFC1
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC2_CONNECTION
- Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC3} outer_dst_ip=${GBPSFC2} eth_type=${ETHER_TYPE}
- ... inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC1} nsp=${NSP_path2} nsi=253 proto=${PROTO}
+ Inspect Service Function Forwarder in_port=${VXLAN_GPE_PORT} out_port=${VXLAN_GPE_PORT} outer_src_ip=${GBPSFC3} outer_dst_ip=${GBPSFC2} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP}
+ ... inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC1} nsp=${NSP_path2} nsi=253 proto=${PROTO}
On GBPSFC1 Send HTTP resp h36_4-h35_3 to h35_3
[Documentation] HTTP traffic inspection.
Switch Connection GPSFC1_CONNECTION
- Inspect Classifier Inbound in_port=${VXLAN_GPE_PORT} out_port=5 eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP}
- ... outer_src_ip=${GBPSFC2} outer_dst_ip=${GBPSFC1} nsp=${NSP_path2} nsi=253 proto=${PROTO}
+ Inspect Classifier Inbound in_port=${VXLAN_GPE_PORT} out_port=5 eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP} outer_src_ip=${GBPSFC2}
+ ... outer_dst_ip=${GBPSFC1} nsp=${NSP_path2} nsi=253 proto=${PROTO}
Compare NSPs
[Documentation] Verifying that different paths were taken.
[Documentation] Stopping HTTP service on the docker container.
Switch Connection GPSFC6_CONNECTION
Stop HTTP Service on Docker ${SERVER_NAME}
-
Resource ../Variables.robot
*** Test Cases ***
-
Delete Service Function Paths
[Documentation] Delete Service Function Paths from ODL
[Tags] GBPSFCTEAR
[Documentation] Delete OVSDB topology from ODL
[Tags] GBPSFCTEAR
${resp} RequestsLibrary.Get Request session ${TOPOLOGY_PATH}
- Run Keyword If ${resp.status_code} == 200
- ... Remove All Elements At URI And Verify ${TOPOLOGY_PATH}
+ Run Keyword If ${resp.status_code} == 200 Remove All Elements At URI And Verify ${TOPOLOGY_PATH}
Resource ../Variables.robot
Resource ../GBPSFC_6node.robot
-
*** Variables ***
-${timeout} = 10s
-
+${timeout} 10s
*** Test Cases ***
Teardown Suite
Log Teardown suite in symetric-chain
- :FOR ${GBPSFC} IN @{GBPSFCs}
+ : FOR ${GBPSFC} IN @{GBPSFCs}
\ GBPSFC_6node.Teardown Node ${GBPSFC} ${CURDIR} timeout=${timeout}
Delete Bridge Via Rest Call And Verify In Old Owner After Recover
[Documentation] This request will delete the bridge node from the config data store and operational data store.
Delete Bridge Via Rest Call And Verify ${original_cluster_list} ${original_owner}
-
-
Init Variables Master
[Documentation] Sets variables specific to latest(master) version
- Set Suite Variable ${SFC_API} /restconf/config/service-function:service-functions
+ Set Suite Variable ${SFC_API} /restconf/config/service-function:service-functions
Set Suite Variable ${SFC_FUNCTIONS_FILE} ${CURDIR}/../../../variables/sfc/master/service-functions.json
Init Variables Lithium
[Documentation] Sets variables specific to Lithium version
- Set Suite Variable ${SFC_API} /restconf/config/service-function:service-functions
+ Set Suite Variable ${SFC_API} /restconf/config/service-function:service-functions
Set Suite Variable ${SFC_FUNCTIONS_FILE} ${CURDIR}/../../../variables/sfc/lithium/service-functions.json
Variables ../../../variables/Variables.py
*** Variables ***
-${IP_1} 10.0.0.1
-${IP_2} 10.0.0.2
-${NODE_ID} 127.0.0.1
+${IP_1} 10.0.0.1
+${IP_2} 10.0.0.2
+${NODE_ID} 127.0.0.1
${engine_type} 11
-${engine_id} 11
-${nexthop} 0
-${port} 0
-${prot} 1
-${int1} 1
-${int2} 2
-${version} 5
-*** Test Cases ***
-
-
+${engine_id} 11
+${nexthop} 0
+${port} 0
+${prot} 1
+${int1} 1
+${int2} 2
+${version} 5
+*** Test Cases ***
Verifying TSDR Data Store For Netflow Entries
[Documentation] Verify the Cassandra Data store to check if Netflow data is stored.
- Copy TSDR tables val_table=metriclog
+ Copy TSDR tables val_table=metriclog
${metric_log}= Verify the Metrics Syslog on Cassandra Client grep DC=NETFLOW
Should Contain ${metric_log} srcAddr=${IP_2}
${netflow}= Create Temporary Key Info srcAddr=${IP_2} val_table=metriclog
Should Contain ${netflow} srcAS=0
Should Contain ${netflow} dstMask=0
Should Contain ${netflow} srcMask=0
-
${netflow}= Create Temporary Key Info srcAddr=${IP_1} val_table=metriclog
Should Contain ${netflow} srcAddr=${IP_1}
Should Contain ${netflow} dstAddr=${IP_2}
Should Contain ${netflow} dstMask=0
Should Contain ${netflow} srcMask=0
-
*** Keywords ***
Initialize Netflow
[Documentation] Initialize Netflow setup and start collecting the netflow samples.
Bringup Netflow
Initialize Cassandra Tables Metricval val_table=metriclog
Wait Until Keyword Succeeds 36x 5 sec Ping Pair Hosts Cassandra \\d{2}
-
-
-
-
Variables ../../../variables/Variables.py
*** Variables ***
-${IP_1} 10.0.0.1
-${IP_2} 10.0.0.2
-${NODE_ID} 127.0.0.1
+${IP_1} 10.0.0.1
+${IP_2} 10.0.0.2
+${NODE_ID} 127.0.0.1
${engine_type} 11
-${engine_id} 11
-${nextHop} 0
-${port} 0
-${protocol} 1
-${int1} 1
-${int2} 2
-${version} 5
-*** Test Cases ***
-
+${engine_id} 11
+${nextHop} 0
+${port} 0
+${protocol} 1
+${int1} 1
+${int2} 2
+${version} 5
+*** Test Cases ***
Verification of Full Record Text for Netflow Dumps
[Documentation] Verify the Netflow Record Text Hbase client
${out}= Query the Data from HBaseClient scan 'NETFLOW',{ COLUMNS => 'c1' , LIMIT => 10, FILTER => "ValueFilter( =, 'regexstring:srcAddr=${IP_2}' )" }
Should Contain ${out} engine_id
Should Contain ${out} input=${int2}
Should Contain ${out} output=${int1}
-
${out}= Query the Data from HBaseClient scan 'NETFLOW',{ COLUMNS => 'c1' , LIMIT => 10, FILTER => "ValueFilter( =, 'regexstring:srcAddr=${IP_1}' )" }
Should Contain ${out} srcAddr=${IP_1}
Should Contain ${out} dstAddr=${IP_2}
Should Contain ${out} engine_id
Should Contain ${out} input=${int1}
Should Contain ${out} output=${int2}
-
${out}= Query the Data from HBaseClient scan 'NETFLOW'
Should Contain ${out} sysUpTime
Should Contain ${out} flow_sequence
Should Contain ${out} dstMask=0
Should Contain ${out} srcMask=0
-
-
Verification of Metric Record for Netflow Dumps
[Documentation] Verify the Netflow Metric Record Hbase client
${out}= Query the Data from HBaseClient scan 'NETFLOW',{ COLUMNS => 'c1:dstAddr' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${IP_1}' )" }
Should Contain ${out} value=${IP_2}
${out}= Query the Data from HBaseClient scan 'NETFLOW',{ COLUMNS => 'c1:input' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${int1}' )" }
Should Contain ${out} value=${int1}
-
${out}= Query the Data from HBaseClient scan 'NETFLOW',{ COLUMNS => 'c1:output' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${int2}' )" }
Should Contain ${out} value=${int2}
-
${out}= Query the Data from HBaseClient scan 'NETFLOW',{ COLUMNS => 'c1:input' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${int2}' )" }
Should Contain ${out} value=${int2}
-
${out}= Query the Data from HBaseClient scan 'NETFLOW',{ COLUMNS => 'c1:output' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${int1}' )" }
Should Contain ${out} value=${int1}
-
${out}= Query the Data from HBaseClient scan 'NETFLOW',{ COLUMNS => 'c1:flowDuration' , LIMIT => 10}
Should Contain ${out} flowDuration
-
${out}= Query the Data from HBaseClient scan 'NETFLOW',{ COLUMNS => 'c1:nextHop' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${nextHop}' )" }
Should Contain ${out} value=${nextHop}
-
${out}= Query the Data from HBaseClient scan 'NETFLOW',{ COLUMNS => 'c1:version' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${version}' )" }
Should Contain ${out} value=${version}
-
${out}= Query the Data from HBaseClient scan 'NETFLOW',{ COLUMNS => 'c1:protocol' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${protocol}' )" }
Should Contain ${out} value=${protocol}
-
*** Keywords ***
Initialize Netflow
[Documentation] Initialize Netflow setup and start collecting the netflow samples.
Query the Data from HBaseClient truncate 'NETFLOW'
Bringup Netflow
Wait Until Keyword Succeeds 36x 5 sec Ping Pair Hosts Hbase \\d{2} row
-
-
-
-
Variables ../../../variables/Variables.py
*** Variables ***
-${IP_1} 10.0.0.1
-${IP_2} 10.0.0.2
-${NODE_ID} 127.0.0.1
+${IP_1} 10.0.0.1
+${IP_2} 10.0.0.2
+${NODE_ID} 127.0.0.1
${engine_type} 11
-${engine_id} 11
-${nexthop} 0
-${port} 0
-${prot} 1
-${int1} 1
-${int2} 2
-${version} 5
-*** Test Cases ***
-
+${engine_id} 11
+${nexthop} 0
+${port} 0
+${prot} 1
+${int1} 1
+${int2} 2
+${version} 5
+*** Test Cases ***
Verification of Full Record Text for Netflow Dumps
[Documentation] Verify the Netflow Record Text Hbase client
- ${out}= Issue Command On Karaf Console tsdr:list NETFLOW | grep srcAddr=${IP_2}
+ ${out}= Issue Command On Karaf Console tsdr:list NETFLOW | grep srcAddr=${IP_2}
Should Contain ${out} srcPort=${port}
Should Contain ${out} srcAddr=${IP_2}
Should Contain ${out} dstAddr=${IP_1}
Should Contain ${out} engine_id
Should Contain ${out} input=${int2}
Should Contain ${out} output=${int1}
-
- ${out}= Issue Command On Karaf Console tsdr:list NETFLOW | grep srcAddr=${IP_1}
+ ${out}= Issue Command On Karaf Console tsdr:list NETFLOW | grep srcAddr=${IP_1}
Should Contain ${out} srcAddr=${IP_1}
Should Contain ${out} dstAddr=${IP_2}
Should Contain ${out} dstPort=${port}
[Documentation] Initialize Mininet topology and check if netflow data is getting collected
Bringup Netflow
Wait Until Keyword Succeeds 36x 5 sec Ping Pair Hosts HSQLDB 2\\d+
-
-
-
-
Resource ../../../libraries/UnimgrKeywords.robot
*** Variables ***
-${DEFAULT_LINUX_PROMPT}
+${DEFAULT_LINUX_PROMPT} ${EMPTY}
${Mininet1_IP} ${TOOLS_SYSTEM_IP}
${Mininet2_IP} ${TOOLS_SYSTEM_2_IP}
-${UNI1_MAC} 68:5b:35:bb:f8:3e
-${UNI2_MAC} 52:7b:25:cb:a7:3c
+${UNI1_MAC} 68:5b:35:bb:f8:3e
+${UNI2_MAC} 52:7b:25:cb:a7:3c
${Evc_topo_API} topology/unimgr:evc/link/evc:%2F%2F1
${Uni_topo_API} topology/unimgr:uni/node/uni:%2F%2F
${UniMgr_variables_DIR} ${CURDIR}/../../../variables/unimgr
-
*** Test Cases ***
Create source and destination UNIs at the OVS instances using Restconf API
[Documentation] Create source and destination UNIs
${elements} Create List ${Mininet1_IP} ${Mininet2_IP}
Wait Until Keyword Succeeds 16s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/unimgr:uni/ ${elements}
-
Update UNI Speed
[Documentation] Update the Unis source and destenation speed
[Tags] UniMgr UNIs Speed
${elements} Create List speed-10G
Wait Until Keyword Succeeds 16s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/unimgr:uni/ ${elements}
-
Create EVC tunnel between the Unis
[Documentation] Create EVC between Unis
[Tags] UniMgr EVC Create
${elements} Create List speed-1G
Wait Until Keyword Succeeds 16s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/unimgr:evc/ ${elements}
-
Delete EVC tunnel between the Unis
[Documentation] Delete EVC
[Tags] UniMgr EVC Delete
Resource ../../../libraries/UnimgrKeywords.robot
*** Variables ***
-${DEFAULT_LINUX_PROMPT}
+${DEFAULT_LINUX_PROMPT} ${EMPTY}
${Mininet1_IP} ${TOOLS_SYSTEM_IP}
${Mininet2_IP} ${TOOLS_SYSTEM_2_IP}
-${UNI1_MAC} 68:5b:35:bb:f8:3e
-${UNI2_MAC} 52:7b:25:cb:a7:3c
+${UNI1_MAC} 68:5b:35:bb:f8:3e
+${UNI2_MAC} 52:7b:25:cb:a7:3c
*** Test Cases ***
Create source and destination UNIs at the OVS instances using Restconf API
Check For Elements On Karaf Command Output Message uni-remove ${Mininet2_IP} ${elements}
${elements} Create List No uni found
Wait Until Keyword Succeeds 16s 2s Check For Elements On Karaf Command Output Message uni-show ${Mininet1_IP} ${elements}
- Wait Until Keyword Succeeds 16s 2s Check For Elements On Karaf Command Output Message uni-show ${Mininet2_IP} ${elements}
\ No newline at end of file
+ Wait Until Keyword Succeeds 16s 2s Check For Elements On Karaf Command Output Message uni-show ${Mininet2_IP} ${elements}
*** Variables ***
${flowconditiondata} "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","protocol":1,"destination-network":"10.0.0.3/32"},"index":"1"}]
-
${flowfilterInetdata} "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.3/32"}}],"index": "1"}]
-
${flowfilterInetdropdata} "vtn-flow-filter":[{"condition":"cond_1","vtn-drop-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.3/32"}}],"index": "1"}]
-
${flowfilterIcmpCodedata} "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.3/32"}}],"index": "1"}]
-
${flowfilterTpsrcTpdstdata} "vtn-flow-filter": [{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-port-src-action": {"port": "5"}},{"order": "2","vtn-set-port-dst-action": {"port": "10"}}],"index": "1"}]
-
-${flowfilterDscpdata} "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-inet-dscp-action": {"dscp":"32"}}],"index":"1"}]
-
-${flowfiltervlanpcp} "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"3","vtn-set-icmp-code-action":{"code":"1"}},{"order":"4","vtn-set-vlan-pcp-action":{"vlan-pcp":"3"}}],"index":"1"}]
+${flowfilterDscpdata} "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-inet-dscp-action": {"dscp":"32"}}],"index":"1"}]
+${flowfiltervlanpcp} "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"3","vtn-set-icmp-code-action":{"code":"1"}},{"order":"4","vtn-set-vlan-pcp-action":{"vlan-pcp":"3"}}],"index":"1"}]
*** Test Cases ***
Check if switch1 detected
Add a vbr flowfilter with inet4src and inet4dst
[Documentation] Create a flowfilter with inet4 and Verify ping
- Add a vbr flowfilter Tenant1 vBridge1 ${flowfilterInetdata}
+ Add a vbr flowfilter Tenant1 vBridge1 ${flowfilterInetdata}
Wait_Until_Keyword_Succeeds 20s 1s Mininet Ping Should Succeed h1 h3
Verify inet4src and inet4dst of vbr flowfilter
Verify icmp action for vtn flowfilter
[Documentation] Verify actions in Flow Enties for icmp code and type
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${DUMPFLOWS_OF10} @{icmp_action}
+ Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${DUMPFLOWS_OF10} @{icmp_action}
Add a vbr flowfilter with Icmp code
[Documentation] Create a flowfilter with icmp code and Verify ping
Verify icmp action for vbrif flowfilter
[Documentation] Verify actions in Flow Enties for icmp code and type
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${DUMPFLOWS_OF10} @{icmp_action}
+ Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${DUMPFLOWS_OF10} @{icmp_action}
Add a flowfilter with tpsrc and tpdst
[Documentation] Create a flowfilter with tpsrc and tpdst and Verify ping
Verify dscp action for vtn flowfilter
[Documentation] Verify actions in Flow Enties for dscp
- Wait_Until_Keyword_Succeeds 20s 1s Verify flowactions ${dscp_flow} ${DUMPFLOWS_OF10}
+ Wait_Until_Keyword_Succeeds 20s 1s Verify flowactions ${dscp_flow} ${DUMPFLOWS_OF10}
Add a vbr flowfilter with dscp
[Documentation] Create a flowfilter with dscp and Verify ping
Verify dscp action for vbr flowfilter
[Documentation] Verify actions in Flow Enties for dscp
- Wait_Until_Keyword_Succeeds 20s 1s Verify flowactions ${dscp_flow} ${DUMPFLOWS_OF10}
+ Wait_Until_Keyword_Succeeds 20s 1s Verify flowactions ${dscp_flow} ${DUMPFLOWS_OF10}
Add a vbrif flowfilter with dscp
[Documentation] Create a flowfilter with dscp and Verify ping
Verify dscp action for vbrif flowfilter
[Documentation] Verify actions in Flow Enties for dscp
- Wait_Until_Keyword_Succeeds 20s 1s Verify flowactions ${dscp_flow} ${DUMPFLOWS_OF10}
+ Wait_Until_Keyword_Succeeds 20s 1s Verify flowactions ${dscp_flow} ${DUMPFLOWS_OF10}
Add a flowfilter with vlanpcp
[Documentation] Create a flowfilter with vlanpcp and Verify ping
Resource ../../../libraries/VtnMaKeywords.robot
*** Variables ***
-${flowconditiondata} "vtn-flow-match":[{"vtn-ether-match":{"destination-address":"ba:bd:0f:e3:a8:c8","ether-type":"2048","source-address":"ca:9e:58:0c:1e:f0","vlan-id": "1"},"vtn-inet-match":{"source-network":"10.0.0.1/32","protocol":1,"destination-network":"10.0.0.2/32"},"index":"1"}]
+${flowconditiondata} "vtn-flow-match":[{"vtn-ether-match":{"destination-address":"ba:bd:0f:e3:a8:c8","ether-type":"2048","source-address":"ca:9e:58:0c:1e:f0","vlan-id": "1"},"vtn-inet-match":{"source-network":"10.0.0.1/32","protocol":1,"destination-network":"10.0.0.2/32"},"index":"1"}]
${pathmapdata} {"input":{"tenant-name":"Tenant_path","path-map-list":[{"condition":"flowcond_path","policy":"1","index": "1","idle-timeout":"300","hard-timeout":"0"}]}}
${pathpolicydata} {"input":{"operation":"SET","id": "1","default-cost": "10000","vtn-path-cost": [{"port-desc":"openflow:1,3,s1-eth3","cost":"1000"},{"port-desc":"openflow:4,2,s4-eth2","cost":"1000"},{"port-desc":"openflow:3,3,s3-eth3","cost":"100000"}]}}
${flowconditiondata} "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","protocol":1,"destination-network":"10.0.0.3/32"},"index":"1"}]
*** Test Cases ***
-
Add a flowcondition in restconfig
[Documentation] Create a flowcondition cond_1 using restconfig api
Add a flowcondition cond_1 ${flowconditiondata}
*** Variables ***
${flowconditiondata} "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","protocol":1,"destination-network":"10.0.0.3/32"},"index":"1"}]
-
${flowfilterInetdata} "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.3/32"}}],"index": "1"}]
-
${flowfilterInetdropdata} "vtn-flow-filter":[{"condition":"cond_1","vtn-drop-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.3/32"}}],"index": "1"}]
-
${flowfilterIcmpCodedata} "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.3/32"}}],"index": "1"}]
-
${flowfilterTpsrcTpdstdata} "vtn-flow-filter": [{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-port-src-action": {"port": "5"}},{"order": "2","vtn-set-port-dst-action": {"port": "10"}}],"index": "1"}]
-
-${flowfilterDscpdata} "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-inet-dscp-action": {"dscp":"32"}}],"index":"1"}]
-
-${flowfiltervlanpcp} "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"3","vtn-set-icmp-code-action":{"code":"1"}},{"order":"4","vtn-set-vlan-pcp-action":{"vlan-pcp":"3"}}],"index":"1"}]
+${flowfilterDscpdata} "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-inet-dscp-action": {"dscp":"32"}}],"index":"1"}]
+${flowfiltervlanpcp} "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"3","vtn-set-icmp-code-action":{"code":"1"}},{"order":"4","vtn-set-vlan-pcp-action":{"vlan-pcp":"3"}}],"index":"1"}]
*** Test Cases ***
Check if switch1 detected
Add a vbr flowfilter with inet4src and inet4dst
[Documentation] Create a flowfilter with inet4 and Verify ping
- Add a vbr flowfilter Tenant1 vBridge1 ${flowfilterInetdata}
+ Add a vbr flowfilter Tenant1 vBridge1 ${flowfilterInetdata}
Wait_Until_Keyword_Succeeds 20s 1s Mininet Ping Should Succeed h1 h3
Verify inet4src and inet4dst of vbr flowfilter
Verify icmp action for vtn flowfilter
[Documentation] Verify actions in Flow Enties for icmp code and type
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${DUMPFLOWS_OF13} @{icmp_action}
+ Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${DUMPFLOWS_OF13} @{icmp_action}
Add a vbr flowfilter with Icmp code
[Documentation] Create a flowfilter with icmp code and Verify ping
Verify icmp action for vbrif flowfilter
[Documentation] Verify actions in Flow Enties for icmp code and type
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${DUMPFLOWS_OF13} @{icmp_action}
+ Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${DUMPFLOWS_OF13} @{icmp_action}
Add a flowfilter with tpsrc and tpdst
[Documentation] Create a flowfilter with tpsrc and tpdst and Verify ping
Verify dscp action for vtn flowfilter
[Documentation] Verify actions in Flow Enties for dscp
- Wait_Until_Keyword_Succeeds 20s 1s Verify flowactions ${dscp_action} ${DUMPFLOWS_OF13}
+ Wait_Until_Keyword_Succeeds 20s 1s Verify flowactions ${dscp_action} ${DUMPFLOWS_OF13}
Add a vbr flowfilter with dscp
[Documentation] Create a flowfilter with dscp and Verify ping
Verify dscp action for vbr flowfilter
[Documentation] Verify actions in Flow Enties for dscp
- Wait_Until_Keyword_Succeeds 20s 1s Verify flowactions ${dscp_action} ${DUMPFLOWS_OF13}
+ Wait_Until_Keyword_Succeeds 20s 1s Verify flowactions ${dscp_action} ${DUMPFLOWS_OF13}
Add a vbrif flowfilter with dscp
[Documentation] Create a flowfilter with dscp and Verify ping
Verify dscp action for vbrif flowfilter
[Documentation] Verify actions in Flow Enties for dscp
- Wait_Until_Keyword_Succeeds 20s 1s Verify flowactions ${dscp_action} ${DUMPFLOWS_OF13}
+ Wait_Until_Keyword_Succeeds 20s 1s Verify flowactions ${dscp_action} ${DUMPFLOWS_OF13}
Add a flowfilter with vlanpcp
[Documentation] Create a flowfilter with vlanpcp and Verify ping
Verify Removed Flow Entry For Inet After Drop Action
[Documentation] Verify no flows between the hosts after drop
[Tags] exclude
- Verify Removed Flow Entry for Inet Drop Flowfilter @{inet_actions} ${DUMPFLOWS_OF13}
+ Verify Removed Flow Entry for Inet Drop Flowfilter @{inet_actions} ${DUMPFLOWS_OF13}
Delete a flowcondition
[Documentation] Delete a flowcondition
Resource ../../../libraries/VtnMaKeywords.robot
*** Variables ***
-${flowconditiondata} "vtn-flow-match":[{"vtn-ether-match":{"destination-address":"ba:bd:0f:e3:a8:c8","ether-type":"2048","source-address":"ca:9e:58:0c:1e:f0","vlan-id": "1"},"vtn-inet-match":{"source-network":"10.0.0.1/32","protocol":1,"destination-network":"10.0.0.2/32"},"index":"1"}]
+${flowconditiondata} "vtn-flow-match":[{"vtn-ether-match":{"destination-address":"ba:bd:0f:e3:a8:c8","ether-type":"2048","source-address":"ca:9e:58:0c:1e:f0","vlan-id": "1"},"vtn-inet-match":{"source-network":"10.0.0.1/32","protocol":1,"destination-network":"10.0.0.2/32"},"index":"1"}]
${pathmapdata} {"input":{"tenant-name":"Tenant_path","path-map-list":[{"condition":"flowcond_path","policy":"1","index": "1","idle-timeout":"300","hard-timeout":"0"}]}}
${pathpolicydata} {"input":{"operation":"SET","id": "1","default-cost": "10000","vtn-path-cost": [{"port-desc":"openflow:1,3,s1-eth3","cost":"1000"},{"port-desc":"openflow:4,2,s4-eth2","cost":"1000"},{"port-desc":"openflow:3,3,s3-eth3","cost":"100000"}]}}
Verify flowEntryBeforePathPolicy
[Documentation] Checking Flows on switch s1 and s3
- Wait_Until_Keyword_Succeeds 20s 1s Verify flowEntryPathPolicy OF13 ${in_port} ${out_before_pathpolicy}
+ Wait_Until_Keyword_Succeeds 20s 1s Verify flowEntryPathPolicy OF13 ${in_port} ${out_before_pathpolicy}
Add a flowcondition flowcond_path
[Documentation] Create a flowcondition flowcond_path