From 37ed7d2d58727f843e257bb1883222e412042482 Mon Sep 17 00:00:00 2001 From: Tomas Cechvala Date: Sun, 6 Dec 2015 18:47:36 +0100 Subject: [PATCH] Test cases for GBP-SFC integration demo Asymmetric demo scenario. Change-Id: Ib92bc83ee254a8fe0c64617dbc2a0e8baa720322 Signed-off-by: Tomas Cechvala --- .../GBPSFC/6-node/Connections.robot | 38 ++++ .../GBPSFC/6-node/GBPSFC_6node.robot | 57 +++++ .../GBPSFC/6-node/Variables.robot | 76 +++++++ .../GBPSFC/6-node/__init__.robot | 42 ++++ .../demo-asymmetric-chain/000_setup.robot | 7 + .../005_wait_for_connections.robot | 19 ++ .../demo-asymmetric-chain/010_set_odl.robot | 65 +++--- .../015_wait_for_flows.robot | 45 ++++ .../031_track_icmp_h35_2_h36_2.robot | 43 ++++ .../032_track_icmp_h35_2_h35_3.robot | 43 ++++ .../033_track_icmp_h35_4_h36_4.robot | 43 ++++ .../034_track_icmp_h36_5_h35_2.robot | 55 +++++ .../035_track_curl_h35_2_h36_2.robot | 94 ++++++++ .../036_track_curl_h35_3_h36_4.robot | 103 +++++++++ .../demo-asymmetric-chain/998_clean_odl.robot | 24 +- .../demo-asymmetric-chain/999_teardown.robot | 18 ++ .../init_scripts/infrastructure_config.py | 64 ++++++ .../init_scripts/sf-flows.sh | 18 ++ .../demo-symmetric-chain/010_set_odl.robot | 77 ------- .../demo-symmetric-chain/998_clean_odl.robot | 59 ----- csit/testplans/groupbasedpolicy-6node.txt | 2 + .../lithium/tenants.json | 0 .../lithium/vethl-h35_2.json | 0 .../lithium/vethl-h35_3.json | 0 .../lithium/vethl-h35_4.json | 0 .../lithium/vethl-h35_5.json | 0 .../lithium/vethl-h36_2.json | 0 .../lithium/vethl-h36_3.json | 0 .../lithium/vethl-h36_4.json | 0 .../lithium/vethl-h36_5.json | 0 .../demo-asymmetric-chain/master/tenants.json | 205 ++++++++++++++++++ .../master/vethl-h35_2.json | 0 .../master/vethl-h35_3.json | 0 .../master/vethl-h35_4.json | 0 .../master/vethl-h35_5.json | 0 .../master/vethl-h36_2.json | 0 .../master/vethl-h36_3.json | 0 .../master/vethl-h36_4.json | 0 .../master/vethl-h36_5.json | 0 .../service_function_chains.json | 0 .../service_function_paths.json | 0 .../demo-symmetric-chain/lithium/tenants.json | 0 .../lithium/vethl-h35_2.json | 0 .../lithium/vethl-h35_3.json | 0 .../lithium/vethl-h35_4.json | 0 .../lithium/vethl-h35_5.json | 0 .../lithium/vethl-h36_2.json | 0 .../lithium/vethl-h36_3.json | 0 .../lithium/vethl-h36_4.json | 0 .../lithium/vethl-h36_5.json | 0 .../demo-symmetric-chain/master/tenants.json | 0 .../master/vethl-h35_2.json | 0 .../master/vethl-h35_3.json | 0 .../master/vethl-h35_4.json | 0 .../master/vethl-h35_5.json | 0 .../master/vethl-h36_2.json | 0 .../master/vethl-h36_3.json | 0 .../master/vethl-h36_4.json | 0 .../master/vethl-h36_5.json | 0 .../service_function_chains.json | 0 .../service_function_paths.json | 0 .../lithium}/service_function_forwarders.json | 0 .../master/service_function_forwarders.json | 80 +++++++ .../service_functions.json | 0 .../tunnels.json | 0 .../demo-asymmetric-chain/master/tenants.json | 201 ----------------- .../service_function_forwarders.json | 84 ------- .../service_functions.json | 36 --- .../gbp/demo-symmetric-chain/tunnels.json | 40 ---- 69 files changed, 1091 insertions(+), 547 deletions(-) create mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/Connections.robot create mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/GBPSFC_6node.robot create mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/Variables.robot create mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/__init__.robot create mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/000_setup.robot create mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/005_wait_for_connections.robot create mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/015_wait_for_flows.robot create mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/031_track_icmp_h35_2_h36_2.robot create mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/032_track_icmp_h35_2_h35_3.robot create mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/033_track_icmp_h35_4_h36_4.robot create mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/034_track_icmp_h36_5_h35_2.robot create mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/035_track_curl_h35_2_h36_2.robot create mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/036_track_curl_h35_3_h36_4.robot create mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/999_teardown.robot create mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/init_scripts/infrastructure_config.py create mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/init_scripts/sf-flows.sh delete mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-symmetric-chain/010_set_odl.robot delete mode 100644 csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-symmetric-chain/998_clean_odl.robot create mode 100644 csit/testplans/groupbasedpolicy-6node.txt rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/lithium/tenants.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/lithium/vethl-h35_2.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/lithium/vethl-h35_3.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/lithium/vethl-h35_4.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/lithium/vethl-h35_5.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/lithium/vethl-h36_2.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/lithium/vethl-h36_3.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/lithium/vethl-h36_4.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/lithium/vethl-h36_5.json (100%) create mode 100644 csit/variables/gbp/6node/demo-asymmetric-chain/master/tenants.json rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/master/vethl-h35_2.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/master/vethl-h35_3.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/master/vethl-h35_4.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/master/vethl-h35_5.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/master/vethl-h36_2.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/master/vethl-h36_3.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/master/vethl-h36_4.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/master/vethl-h36_5.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/service_function_chains.json (100%) rename csit/variables/gbp/{ => 6node}/demo-asymmetric-chain/service_function_paths.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/lithium/tenants.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/lithium/vethl-h35_2.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/lithium/vethl-h35_3.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/lithium/vethl-h35_4.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/lithium/vethl-h35_5.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/lithium/vethl-h36_2.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/lithium/vethl-h36_3.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/lithium/vethl-h36_4.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/lithium/vethl-h36_5.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/master/tenants.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/master/vethl-h35_2.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/master/vethl-h35_3.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/master/vethl-h35_4.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/master/vethl-h35_5.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/master/vethl-h36_2.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/master/vethl-h36_3.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/master/vethl-h36_4.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/master/vethl-h36_5.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/service_function_chains.json (100%) rename csit/variables/gbp/{ => 6node}/demo-symmetric-chain/service_function_paths.json (100%) rename csit/variables/gbp/{demo-asymmetric-chain => 6node/lithium}/service_function_forwarders.json (100%) create mode 100644 csit/variables/gbp/6node/master/service_function_forwarders.json rename csit/variables/gbp/{demo-asymmetric-chain => 6node}/service_functions.json (100%) rename csit/variables/gbp/{demo-asymmetric-chain => 6node}/tunnels.json (100%) delete mode 100644 csit/variables/gbp/demo-asymmetric-chain/master/tenants.json delete mode 100644 csit/variables/gbp/demo-symmetric-chain/service_function_forwarders.json delete mode 100644 csit/variables/gbp/demo-symmetric-chain/service_functions.json delete mode 100644 csit/variables/gbp/demo-symmetric-chain/tunnels.json diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/Connections.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/Connections.robot new file mode 100644 index 0000000000..d895cef689 --- /dev/null +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/Connections.robot @@ -0,0 +1,38 @@ +*** Settings *** +Library SSHLibrary +Resource ../../../../libraries/Utils.robot +Resource ../../../../libraries/GBP/ConnUtils.robot +Variables ../../../../variables/Variables.py +Resource Variables.robot + +*** Keywords *** + +Start Connections + [Documentation] Establishes connections to remote VMs. + SSHLibrary.Open Connection ${GBPSFC1} alias=GPSFC1_CONNECTION + Utils.Flexible Mininet Login + SSHLibrary.Open Connection ${GBPSFC2} alias=GPSFC2_CONNECTION + Utils.Flexible Mininet Login + SSHLibrary.Open Connection ${GBPSFC3} alias=GPSFC3_CONNECTION + Utils.Flexible Mininet Login + SSHLibrary.Open Connection ${GBPSFC4} alias=GPSFC4_CONNECTION + Utils.Flexible Mininet Login + SSHLibrary.Open Connection ${GBPSFC5} alias=GPSFC5_CONNECTION + Utils.Flexible Mininet Login + SSHLibrary.Open Connection ${GBPSFC6} alias=GPSFC6_CONNECTION + Utils.Flexible Mininet Login + +Close Connections + [Documentation] Closes connections to remote VMs. + Switch Connection GPSFC1_CONNECTION + SSHLibrary.Close Connection + Switch Connection GPSFC2_CONNECTION + SSHLibrary.Close Connection + Switch Connection GPSFC3_CONNECTION + SSHLibrary.Close Connection + Switch Connection GPSFC4_CONNECTION + SSHLibrary.Close Connection + Switch Connection GPSFC5_CONNECTION + SSHLibrary.Close Connection + Switch Connection GPSFC6_CONNECTION + SSHLibrary.Close Connection diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/GBPSFC_6node.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/GBPSFC_6node.robot new file mode 100644 index 0000000000..1d4ed2d544 --- /dev/null +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/GBPSFC_6node.robot @@ -0,0 +1,57 @@ +*** Settings *** +Library SSHLibrary +Resource Variables.robot +Resource ../../../../libraries/Utils.robot +Resource ../../../../libraries/GBP/ConnUtils.robot +Variables ../../../../variables/Variables.py + +*** Keywords *** + +Setup Node + [Documentation] Configures underlying infrastructure composed of Docker containers and OVS switches on remote VM. + ... Python and Bash scripts are used. + [Arguments] ${GBPSFC} ${sw_index} ${suite_dir} ${timeout}=10s + ConnUtils.Connect and Login ${GBPSFC} timeout=${timeout} + SSHLibrary.Put File ${suite_dir}/* ${VM_HOME_FOLDER}${/}${VM_SCRIPTS_FOLDER}/ mode=0755 + ${stdout} ${stderr} ${rc} Execute in VE python ${VM_HOME_FOLDER}${/}${VM_SCRIPTS_FOLDER}/infrastructure_launch.py ${ODL} ${sw_index} + ... timeout=${timeout} + Should Be Equal As Numbers ${rc} 0 + ${stderr} Set Variable + # Flows for GBPSFC3 and GBPSFC5 have to be written manually. + # GBPSFC2 is SFF for GBPSFC3 and GBPSFC4 is SFF for GBPSFC5 + Run Keyword If "${GBPSFC}" == "${GBPSFC3}" + ... Write SF Flows ${GBPSFC2} ${stderr} + ... ELSE IF "${GBPSFC}" == "${GBPSFC5}" + ... Write SF Flows ${GBPSFC4} ${stderr} + Should Be Empty ${stderr} + SSHLibrary.Close Connection + +Write SF Flows + [Documentation] Writes flows to SF node. SFF for given SF has to be specified in arguments. + [Arguments] ${SFF} ${stderr} + ${stderr} SSHLibrary.Execute Command ${VM_HOME_FOLDER}${/}${VM_SCRIPTS_FOLDER}/sf-flows.sh ${SFF} + ... return_stderr=True return_stdout=False + +Teardown Node + [Documentation] Clears underlying infrastructure composed of Docker containers and OVS switches from remote VM. + ... Python and Bash scripts are used. + [Arguments] ${GBPSFC} ${suite_dir} ${timeout}=3s + ConnUtils.Connect and Login ${GBPSFC} timeout=${timeout} + ${stderr} SSHLibrary.Execute Command rm ${VM_HOME_FOLDER}${/}${VM_SCRIPTS_FOLDER}/infrastructure_config.py + ... return_stderr=True return_stdout=False + Should Be Empty ${stderr} + ${stderr} SSHLibrary.Execute Command rm ${VM_HOME_FOLDER}${/}${VM_SCRIPTS_FOLDER}/sf-flows.sh + ... return_stderr=True return_stdout=False + Should Be Empty ${stderr} + ${stderr} SSHLibrary.Execute Command ${VM_HOME_FOLDER}${/}${VM_SCRIPTS_FOLDER}/clean-demo.sh + ... return_stderr=True return_stdout=False + Should Be Empty ${stderr} + SSHLibrary.Close Connection + +Setup Nodes + [Arguments] ${GBPSFCs} ${init_scripts_dir} + ${sw_index} Set Variable 0 + :FOR ${GBPSFC} IN @{GBPSFCs} + \ Setup Node ${GBPSFC} ${sw_index} ${init_scripts_dir} timeout=10s + \ ${sw_index} Evaluate ${sw_index} + 1 + diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/Variables.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/Variables.robot new file mode 100644 index 0000000000..fff9bf4384 --- /dev/null +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/Variables.robot @@ -0,0 +1,76 @@ +*** Settings *** +Documentation Global variables for GBPSFC 6node topology. Some variables are release specific and their value depend on +... ODL_VERSION variable which contains release name and is defined in Jenkins job. Keywords for setting release specific +... data are located in this file. +Variables ../../../../variables/Variables.py + +*** Variables *** +${VM_HOME_FOLDER} = ${WORKSPACE} +${VM_SCRIPTS_FOLDER} = scripts +${ODL} = ${ODL_SYSTEM_IP} +${GBPSFC1} = ${TOOLS_SYSTEM_IP} +${GBPSFC2} = ${TOOLS_SYSTEM_2_IP} +${GBPSFC3} = ${TOOLS_SYSTEM_3_IP} +${GBPSFC4} = ${TOOLS_SYSTEM_4_IP} +${GBPSFC5} = ${TOOLS_SYSTEM_5_IP} +${GBPSFC6} = ${TOOLS_SYSTEM_6_IP} +@{GBPSFCs} = ${GBPSFC1} ${GBPSFC2} ${GBPSFC3} +... ${GBPSFC4} ${GBPSFC5} ${GBPSFC6} +${OF_OVERLAY_CONFIG_PATH} /restconf/config/ofoverlay:of-overlay-config +${TOPOLOGY_PATH} ${CONFIG_TOPO_API}/topology/ovsdb:1 +${SF_PATH} /restconf/config/service-function:service-functions +${SF_FILE} ${CURDIR}/../../../../variables/gbp/6node/service_functions.json +${SFF_PATH} /restconf/config/service-function-forwarder:service-function-forwarders +${SFF_FILE} ${CURDIR}/../../../../variables/gbp/6node/service_function_forwarders.json +${SFC_PATH} /restconf/config/service-function-chain:service-function-chains +${TUNNELS_PATH} ${CONFIG_NODES_API} +${TUNNELS_FILE} ${CURDIR}/../../../../variables/gbp/6node/tunnels.json +${SFC_ASYMM_FILE} ${CURDIR}/../../../../variables/gbp/6node/demo-asymmetric-chain/service_function_chains.json +${SFC_SYMM_FILE} ${CURDIR}/../../../../variables/gbp/6node/demo-symmetric-chain/service_function_chains.json +${SFP_PATH} /restconf/config/service-function-path:service-function-paths +${SFP_ASYMM_FILE} ${CURDIR}/../../../../variables/gbp/6node/demo-asymmetric-chain/service_function_paths.json +${SFP_SYMM_FILE} ${CURDIR}/../../../../variables/gbp/6node/demo-symmetric-chain/service_function_paths.json +${ENDPOINT_REG_PATH} ${GBP_REGEP_API} +${ENDPOINT_UNREG_PATH} ${GBP_UNREGEP_API} +${ENDPOINTS_OPER_PATH} /restconf/operational/endpoint:endpoints + +*** Keywords *** +Set Test Variables + [Documentation] Sets variables used in 6node test cases. + [Arguments] ${client_ip} ${client_name} ${server_ip} ${server_name} + ... ${ether_type} ${proto} ${service_port}=${EMPTY} ${vxlan_port}=${EMPTY} ${vxlan_gpe_port}=${EMPTY} + Set Global Variable ${CLIENT_IP} ${client_ip} + Set Global Variable ${CLIENT_NAME} ${client_name} + Set Global Variable ${SERVER_IP} ${server_ip} + Set Global Variable ${SERVER_NAME} ${server_name} + Set Global Variable ${SERVICE_PORT} ${service_port} + Set Global Variable ${ETHER_TYPE} ${ether_type} + Set Global Variable ${PROTO} ${proto} + Set Global Variable ${VXLAN_PORT} ${vxlan_port} + Set Global Variable ${VXLAN_GPE_PORT} ${vxlan_gpe_port} + +Set ODL Variables + [Documentation] Initialize ODL version specific variables + log ${ODL_VERSION} + Run Keyword If "${ODL_VERSION}" == "stable-lithium" or "${ODL_VERSION}" == "stable/lithium" Set ODL Variables Lithium + ... ELSE Set ODL Variables Master + +Set ODL Variables Master + [Documentation] Sets variables specific to latest(master) version + Set Global Variable ${GBP_TENANT_ID} tenant-red + Set Global Variable ${TENANT_PATH} ${GBP_TENANTS_API}/tenant/${GBP_TENANT_ID} + Set Global Variable ${TENANT_ASYMM_FILE} ${CURDIR}/../../../../variables/gbp/6node/demo-asymmetric-chain/master/tenants.json + Set Global Variable ${TENANT_SYMM_FILE} ${CURDIR}/../../../../variables/gbp/6node/demo-symmetric-chain/master/tenants.json + Set Global Variable ${SFF_FILE} ${CURDIR}/../../../../variables/gbp/6node/master/service_function_forwarders.json + Set Global Variable ${ENDPOINTS_ASYMM_DIR} ${CURDIR}/../../../../variables/gbp/6node/demo-asymmetric-chain/master/ + Set Global Variable ${ENDPOINTS_SYMM_DIR} ${CURDIR}/../../../../variables/gbp/6node/demo-symmetric-chain/master/ + +Set ODL Variables Lithium + [Documentation] Sets variables specific to Lithium version + Set Global Variable ${GBP_TENANT_ID} f5c7d344-d1c7-4208-8531-2c2693657e12 + Set Global Variable ${TENANT_PATH} ${GBP_TENANTS_API}/tenant/${GBP_TENANT_ID} + Set Global Variable ${TENANT_ASYMM_FILE} ${CURDIR}/../../../../variables/gbp/6node/demo-asymmetric-chain/lithium/tenants.json + Set Global Variable ${TENANT_SYMM_FILE} ${CURDIR}/../../../../variables/gbp/6node/demo-symmetric-chain/lithium/tenants.json + Set Global Variable ${SFF_FILE} ${CURDIR}/../../../../variables/gbp/6node/lithium/service_function_forwarders.json + Set Global Variable ${ENDPOINTS_ASYMM_DIR} ${CURDIR}/../../../../variables/gbp/6node/demo-asymmetric-chain/lithium/ + Set Global Variable ${ENDPOINTS_SYMM_DIR} ${CURDIR}/../../../../variables/gbp/6node/demo-symmetric-chain/lithium/ diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/__init__.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/__init__.robot new file mode 100644 index 0000000000..40aa164976 --- /dev/null +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/__init__.robot @@ -0,0 +1,42 @@ +*** Settings *** +Documentation Setup/teardown for GBPSFC 6-node topology +Suite Setup Setup Everything +Suite Teardown Teardown Everything +Library SSHLibrary +Library RequestsLibrary +Resource ../../../../libraries/Utils.robot +Resource ../../../../libraries/GBP/ConnUtils.robot +Resource Variables.robot +Variables ../../../../variables/Variables.py + + + +*** Variables *** +${timeout} = 10s + + +*** Keywords *** +Setup Everything + [Documentation] Initial setup of remote VM. Copying of scripts and installation python packages to virtual env if missing. + Create Session session http://${ODL}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} + Wait Until Keyword Succeeds 10x 30 s Get Data From URI + ... session ${OF_OVERLAY_CONFIG_PATH} headers=${headers} + Delete All Sessions + :FOR ${GBPSFC} IN @{GBPSFCs} + \ ConnUtils.Connect and Login ${GBPSFC} timeout=${timeout} + # TODO if something extra needs to be installed, please do it in virt-env + \ ${stderr} SSHLibrary.Execute Command virtualenv --system-site-packages ${VE_DIR} return_stdout=False return_stderr=True return_rc=False + \ Should Be Empty ${stderr} + \ SSHLibrary.Put File ${CURDIR}/../../common_scripts/* ${VM_HOME_FOLDER}${/}${VM_SCRIPTS_FOLDER}/ mode=0755 + \ ${stdout} ${stderr} ${rc} ConnUtils.Execute in VE pip freeze | grep ipaddr -q || pip install ipaddr timeout=${timeout} + \ Should Be Equal As Numbers ${rc} 0 + \ SSHLibrary.Close Connection + Set ODL Variables + +Teardown Everything + [Documentation] Clearing remote VM - removing copied scripts. + Log stop_suite_in_6_node + :FOR ${GBPSFC} IN @{GBPSFCs} + \ ConnUtils.Connect and Login ${GBPSFC} timeout=${timeout} + \ SSHLibrary.Execute Command sudo rm -rf ${VM_HOME_FOLDER}${/}${VM_SCRIPTS_FOLDER} + \ SSHLibrary.Close Connection diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/000_setup.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/000_setup.robot new file mode 100644 index 0000000000..7f08c82414 --- /dev/null +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/000_setup.robot @@ -0,0 +1,7 @@ +*** Settings *** +Resource ../Variables.robot +Resource ../GBPSFC_6node.robot + +*** Test Cases *** +Initialize Nodes + Setup Nodes ${GBPSFCs} ${CURDIR}/init_scripts diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/005_wait_for_connections.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/005_wait_for_connections.robot new file mode 100644 index 0000000000..5668be30a4 --- /dev/null +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/005_wait_for_connections.robot @@ -0,0 +1,19 @@ +*** Settings *** +Documentation Waiting for manager and switch 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 For Manager Connected on GBPSFC4 + Switch Connection GPSFC4_CONNECTION + Wait Until Keyword Succeeds 2 min 3s Manager is Connected diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/010_set_odl.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/010_set_odl.robot index 549973cb38..aca76c4cb0 100644 --- a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/010_set_odl.robot +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/010_set_odl.robot @@ -7,71 +7,62 @@ Library OperatingSystem Variables ../../../../../variables/Variables.py Resource ../../../../../libraries/Utils.robot Resource ../Variables.robot - -*** Variables *** -${GBP_TENANT_ID} f5c7d344-d1c7-4208-8531-2c2693657e12 -${TENANT_PATH} /restconf/config/policy:tenants/tenant/${GBP_TENANT_ID} -${TENANT_FILE} ${CURDIR}/../../../../../variables/gbp/demo-asymmetric-chain/tenants.json -${TUNNELS_PATH} /restconf/config/opendaylight-inventory:nodes -${TUNNELS_FILE} ${CURDIR}/../../../../../variables/gbp/demo-asymmetric-chain/tunnels.json -${ENDPOINTS_PATH} /restconf/operations/endpoint:register-endpoint -${SF_PATH} /restconf/config/service-function:service-functions -${SF_FILE} ${CURDIR}/../../../../../variables/gbp/demo-asymmetric-chain/service_functions.json -${SFF_PATH} /restconf/config/service-function-forwarder:service-function-forwarders -${SFF_FILE} ${CURDIR}/../../../../../variables/gbp/demo-asymmetric-chain/service_function_forwarders.json -${SFC_PATH} /restconf/config/service-function-chain:service-function-chains -${SFC_FILE} ${CURDIR}/../../../../../variables/gbp/demo-asymmetric-chain/service_function_chains.json -${SFP_PATH} /restconf/config/service-function-path:service-function-paths -${SFP_FILE} ${CURDIR}/../../../../../variables/gbp/demo-asymmetric-chain/service_function_paths.json -${h35_2_FILE} ${CURDIR}/../../../../../variables/gbp/demo-asymmetric-chain/vethl-h35_2.json -${h35_3_FILE} ${CURDIR}/../../../../../variables/gbp/demo-asymmetric-chain/vethl-h35_3.json -${h35_4_FILE} ${CURDIR}/../../../../../variables/gbp/demo-asymmetric-chain/vethl-h35_4.json -${h35_5_FILE} ${CURDIR}/../../../../../variables/gbp/demo-asymmetric-chain/vethl-h35_5.json -${h36_2_FILE} ${CURDIR}/../../../../../variables/gbp/demo-asymmetric-chain/vethl-h36_2.json -${h36_3_FILE} ${CURDIR}/../../../../../variables/gbp/demo-asymmetric-chain/vethl-h36_3.json -${h36_4_FILE} ${CURDIR}/../../../../../variables/gbp/demo-asymmetric-chain/vethl-h36_4.json -${h36_5_FILE} ${CURDIR}/../../../../../variables/gbp/demo-asymmetric-chain/vethl-h36_5.json -@{ENDPOINT_FILES} ${h35_2_FILE} ${h35_3_FILE} ${h35_4_FILE} ${h35_5_FILE} ${h36_2_FILE} ${h36_3_FILE} ${h36_4_FILE} -... ${h36_5_FILE} +Resource ../../../../../libraries/GBP/OpenFlowUtils.robot *** Test Cases *** 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} ${resp} RequestsLibrary.Put session ${SF_PATH} ${edited_json} ${HEADERS} Should Be Equal As Strings ${resp.status_code} 200 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} ${resp} RequestsLibrary.Put session ${SFF_PATH} ${edited_json} ${HEADERS} Should Be Equal As Strings ${resp.status_code} 200 +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 + 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 + SSHLibrary.Close Connection + Put Service Function Chains [Documentation] Register Service Function Chains to ODL - Add Elements To URI From File ${SFC_PATH} ${SFC_FILE} + Add Elements To URI From File ${SFC_PATH} ${SFC_ASYMM_FILE} Put Service Function Paths [Documentation] Register Service Function Paths to ODL - Add Elements To URI From File ${SFP_PATH} ${SFP_FILE} + Add Elements To URI From File ${SFP_PATH} ${SFP_ASYMM_FILE} 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} ${resp} RequestsLibrary.Put session ${TUNNELS_PATH} ${edited_json} ${HEADERS} Should Be Equal As Strings ${resp.status_code} 200 Put Tenant [Documentation] Send Tenant Data to ODL - Add Elements To URI From File ${TENANT_PATH} ${TENANT_FILE} + Add Elements To URI From File ${TENANT_PATH} ${TENANT_ASYMM_FILE} Register Endpoints [Documentation] Endpoints registration - : FOR ${endpoint_file} IN @{ENDPOINT_FILES} - \ Post Elements To URI From File ${ENDPOINTS_PATH} ${endpoint_file} + @{endpoint_files} = OperatingSystem.List Files In Directory ${ENDPOINTS_ASYMM_DIR} vethl*.*json absolute + :FOR ${endpoint_file} IN @{endpoint_files} + \ Post Elements To URI From File ${ENDPOINT_REG_PATH} ${endpoint_file} ${HEADERS_YANG_JSON} + diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/015_wait_for_flows.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/015_wait_for_flows.robot new file mode 100644 index 0000000000..6011f49384 --- /dev/null +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/015_wait_for_flows.robot @@ -0,0 +1,45 @@ +*** Settings *** +Documentation Documentation Waiting for flows to appear on switches. +Library SSHLibrary +Resource ../../../../../libraries/Utils.robot +Resource ../../../../../libraries/GBP/ConnUtils.robot +Resource ../../../../../libraries/GBP/DockerUtils.robot +Resource ../../../../../libraries/GBP/OpenFlowUtils.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 + Wait For Flows On Switch ${GBPSFC1} sw1 + +Wait For Flows on GBPSFC2 + [Documentation] Waiting for flows to appear on OVS switch. + Switch Connection GPSFC2_CONNECTION + Wait For Flows On Switch ${GBPSFC2} sw2 + +Wait For Flows on GBPSFC3 + [Documentation] Waiting for flows to appear on OVS switch. + Switch Connection GPSFC3_CONNECTION + Wait For Flows On Switch ${GBPSFC3} sw3 + +Wait For Flows on GBPSFC4 + [Documentation] Waiting for flows to appear on OVS switch. + Switch Connection GPSFC4_CONNECTION + Wait For Flows On Switch ${GBPSFC4} sw4 + +Wait For Flows on GBPSFC5 + [Documentation] Waiting for flows to appear on OVS switch. + Switch Connection GPSFC5_CONNECTION + Wait For Flows On Switch ${GBPSFC5} sw5 + +Wait For Flows on GBPSFC6 + [Documentation] Waiting for flows to appear on OVS switch. + Switch Connection GPSFC6_CONNECTION + Wait For Flows On Switch ${GBPSFC6} sw6 + diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/031_track_icmp_h35_2_h36_2.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/031_track_icmp_h35_2_h36_2.robot new file mode 100644 index 0000000000..c9aafcc711 --- /dev/null +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/031_track_icmp_h35_2_h36_2.robot @@ -0,0 +1,43 @@ +*** Settings *** +Documentation Deep icmp traffic inspection. +... Nodes are located on the same VM in different subnets and are members of the same EPG. +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 + Switch Connection GPSFC1_CONNECTION + Ping from Docker ${CLIENT_NAME} ${SERVER_IP} + +Start Endless Ping from h35_2 to h36_2 + [Documentation] Starting of endless pinging for traffic inspection. + Start Endless 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} + +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} + +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} + + diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/032_track_icmp_h35_2_h35_3.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/032_track_icmp_h35_2_h35_3.robot new file mode 100644 index 0000000000..8722c8e2ea --- /dev/null +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/032_track_icmp_h35_2_h35_3.robot @@ -0,0 +1,43 @@ +*** Settings *** +Documentation Deep icmp traffic inspection. +... Nodes are located on the same VM in the same subnet and are members of the same EPG. +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 + Switch Connection GPSFC1_CONNECTION + Ping from Docker ${CLIENT_NAME} ${SERVER_IP} + +Start Endless Ping from h35_2 to h35_3 + [Documentation] Starting of endless pinging for traffic inspection. + Start Endless 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} + +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} + +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} + + diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/033_track_icmp_h35_4_h36_4.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/033_track_icmp_h35_4_h36_4.robot new file mode 100644 index 0000000000..5e35a18981 --- /dev/null +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/033_track_icmp_h35_4_h36_4.robot @@ -0,0 +1,43 @@ +*** Settings *** +Documentation Deep icmp traffic inspection. +... Nodes are located on the same VM, in different subnets and are members of the same EPG. +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 + Switch Connection GPSFC6_CONNECTION + Ping from Docker ${CLIENT_NAME} ${SERVER_IP} + +Start Endless Ping from h36_4 to h35_4 + [Documentation] Starting of endless pinging for traffic inspection. + Start Endless 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} + +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} + +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} + + diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/034_track_icmp_h36_5_h35_2.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/034_track_icmp_h36_5_h35_2.robot new file mode 100644 index 0000000000..74b64122f2 --- /dev/null +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/034_track_icmp_h36_5_h35_2.robot @@ -0,0 +1,55 @@ +*** Settings *** +Documentation Deep icmp traffic inspection. +... Nodes are located on different VMs in different subnets and are members of different EPGs. +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 + Switch Connection GPSFC6_CONNECTION + Ping from Docker ${CLIENT_NAME} ${SERVER_IP} + +Start Endless Ping from h36_5 to h35_2 + [Documentation] Starting of endless pinging for traffic inspection. + Start Endless 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} + +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} + +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} + +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} + +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} + + diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/035_track_curl_h35_2_h36_2.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/035_track_curl_h35_2_h36_2.robot new file mode 100644 index 0000000000..071e529cc7 --- /dev/null +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/035_track_curl_h35_2_h36_2.robot @@ -0,0 +1,94 @@ +*** Settings *** +Documentation Deep inspection of HTTP traffic on asymmetric chain. +... Nodes are located on the same VM. +Library SSHLibrary +Resource ../../../../../libraries/GBP/OpenFlowUtils.robot +Resource ../../../../../libraries/GBP/ConnUtils.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 + 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} + +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 + +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} + ${nsp_35_2-nsp_36_2} GET NSP Value From Flow ${flow} + Set Global Variable ${NSP} ${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} 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} 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} 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} 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} 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} 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} nsi=253 proto=${PROTO} + +On GBPSFC1 Send HTTP resp h36_2-h35_2 to h35_2 + [Documentation] HTTP traffic inspection. + 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} src_port=${SERVICE_PORT} + +Stop Endless Curl on h36_2 on port 80 + [Documentation] Stopping endless HTTP session after traffic inspection finishes. + Stop Endless Curl from Docker ${CLIENT_NAME} + +Stop HTTP on h36_2 on Port 80 + [Documentation] Stopping HTTP service on the docker container. + Stop HTTP Service on Docker ${SERVER_NAME} + diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/036_track_curl_h35_3_h36_4.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/036_track_curl_h35_3_h36_4.robot new file mode 100644 index 0000000000..bfae4ed869 --- /dev/null +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/036_track_curl_h35_3_h36_4.robot @@ -0,0 +1,103 @@ +*** Settings *** +Documentation Deep inspection of HTTP traffic on asymmetric chain. +... Nodes are located on different VMs. +Library SSHLibrary +Resource ../../../../../libraries/GBP/OpenFlowUtils.robot +Resource ../../../../../libraries/GBP/ConnUtils.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 vxlan_port=3 + Switch Connection GPSFC6_CONNECTION + Start HTTP Service on Docker ${SERVER_NAME} ${SERVICE_PORT} + +Curl h36_2 from h35_3 + [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} + +Start Endless Curl on h35_3 on port 80 + [Documentation] Starting endless HTTP session for traffic inspection. + Start Endless Curl from Docker ${CLIENT_NAME} ${SERVER_IP} ${SERVICE_PORT} sleep=1 + +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} + ${nsp_35_3-nsp_36_4} GET NSP Value From Flow ${flow} + Set Global Variable ${NSP} ${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} 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} 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} 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} 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} 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} 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} nsi=253 proto=${PROTO} + +On GBPSFC6 Send HTTP resp h36_4-h35_3 to GBPSFC1 + [Documentation] HTTP traffic inspection. + Switch Connection GPSFC6_CONNECTION + ${flow} Inspect Classifier Outbound in_port=6 out_port=${VXLAN_PORT} eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP} + ... inner_dst_ip=${CLIENT_IP} next_hop_ip=${GBPSFC1} proto=${PROTO} src_port=${SERVICE_PORT} + +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_PORT} out_port=5 eth_type=${ETHER_TYPE} inner_src_ip=${SERVER_IP} inner_dst_ip=${CLIENT_IP} + ... outer_src_ip=${GBPSFC6} outer_dst_ip=${GBPSFC1} proto=${PROTO} + +Stop Endless Curl on h36_2 on port 80 + [Documentation] Stopping endless HTTP session after traffic inspection finishes. + Switch Connection GPSFC1_CONNECTION + Stop Endless Curl from Docker ${CLIENT_NAME} + +Stop HTTP on h36_2 on Port 80 + [Documentation] Stopping HTTP service on the docker container. + Switch Connection GPSFC6_CONNECTION + Stop HTTP Service on Docker ${SERVER_NAME} + diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/998_clean_odl.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/998_clean_odl.robot index 9d3591fc8c..d59ac3bfde 100644 --- a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/998_clean_odl.robot +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/998_clean_odl.robot @@ -9,25 +9,16 @@ Library json Variables ../../../../../variables/Variables.py Resource ../../../../../libraries/Utils.robot Resource ../../../../../libraries/GBP/RestconfUtils.robot - -*** Variables *** -${GBP_TENENT_ID} f5c7d344-d1c7-4208-8531-2c2693657e12 -${TENANT_PATH} /restconf/config/policy:tenants/tenant/${GBP_TENENT_ID} -${TUNNELS_PATH} /restconf/config/opendaylight-inventory:nodes -${OPER_ENDPOINTS_PATH} /restconf/operational/endpoint:endpoints -${UNREG_ENDPOINTS_PATH} /restconf/operations/endpoint:unregister-endpoint -${SF_PATH} /restconf/config/service-function:service-functions -${SFF_PATH} /restconf/config/service-function-forwarder:service-function-forwarders -${SFC_PATH} /restconf/config/service-function-chain:service-function-chains -${SFP_PATH} /restconf/config/service-function-path:service-function-paths -${OPER_NODES} /restconf/operational/opendaylight-inventory:nodes/ +Resource ../Variables.robot *** Test Cases *** + Delete Service Function Paths [Documentation] Delete Service Function Paths from ODL [Tags] GBPSFCTEAR Remove All Elements At URI And Verify ${SFP_PATH} + Delete Service Function Chains [Documentation] Delete Service Function Chains from ODL [Tags] GBPSFCTEAR @@ -56,4 +47,11 @@ Delete Tenant Unregister Endpoints [Documentation] Unregister Endpoints Endpoints from ODL [Tags] GBPSFCTEAR - Unregister Endpoints ${OPER_ENDPOINTS_PATH} + RestconfUtils.Unregister Endpoints + +Delete OVSDB Topology If Present + [Documentation] Delete OVSDB topology from ODL + [Tags] GBPSFCTEAR + ${resp} RequestsLibrary.Get session ${TOPOLOGY_PATH} + Run Keyword If ${resp.status_code} == 200 + ... Remove All Elements At URI And Verify ${TOPOLOGY_PATH} diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/999_teardown.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/999_teardown.robot new file mode 100644 index 0000000000..4e0cfed933 --- /dev/null +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/999_teardown.robot @@ -0,0 +1,18 @@ +*** Settings *** +Library SSHLibrary +Resource ../../../../../libraries/Utils.robot +Resource ../../../../../libraries/GBP/ConnUtils.robot +Variables ../../../../../variables/Variables.py +Resource ../Variables.robot +Resource ../GBPSFC_6node.robot + + +*** Variables *** +${timeout} = 10s + + +*** Test Cases *** +Teardown Suite + Log Teardown suite in asymetric-chain + :FOR ${GBPSFC} IN @{GBPSFCs} + \ GBPSFC_6node.Teardown Node ${GBPSFC} ${CURDIR} timeout=${timeout} diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/init_scripts/infrastructure_config.py b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/init_scripts/infrastructure_config.py new file mode 100644 index 0000000000..46a7deff26 --- /dev/null +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/init_scripts/infrastructure_config.py @@ -0,0 +1,64 @@ +# Config for switches, tunnelIP is the local IP address. +switches = [{'name': 'sw1', + 'type': 'gbp', + 'dpid': '1'}, + {'name': 'sw2', + 'type': 'sff', + 'dpid': '2'}, + {'name': 'sw3', + 'type': 'sf', + 'dpid': '3'}, + {'name': 'sw4', + 'type': 'sff', + 'dpid': '4'}, + {'name': 'sw5', + 'type': 'sf', + 'dpid': '5'}, + {'name': 'sw6', + 'type': 'gbp', + 'dpid': '6'}, + {'name': 'sw7', + 'type': 'none', + 'dpid': '7'}, + {'name': 'sw8', + 'type': 'none', + 'dpid': '8'} + ] + +defaultContainerImage = 'alagalah/odlpoc_ovs230' + +# Note that tenant name and endpointGroup name come from policy_config.py + +hosts = [{'name': 'h35_2', + 'mac': '00:00:00:00:35:02', + 'ip': '10.0.35.2/24', + 'switch': 'sw1'}, + {'name': 'h35_3', + 'ip': '10.0.35.3/24', + 'mac': '00:00:00:00:35:03', + 'switch': 'sw1'}, + {'name': 'h35_4', + 'ip': '10.0.35.4/24', + 'mac': '00:00:00:00:35:04', + 'switch': 'sw6'}, + {'name': 'h35_5', + 'ip': '10.0.35.5/24', + 'mac': '00:00:00:00:35:05', + 'switch': 'sw6'}, + {'name': 'h36_2', + 'ip': '10.0.36.2/24', + 'mac': '00:00:00:00:36:02', + 'switch': 'sw1'}, + {'name': 'h36_3', + 'ip': '10.0.36.3/24', + 'mac': '00:00:00:00:36:03', + 'switch': 'sw1'}, + {'name': 'h36_4', + 'ip': '10.0.36.4/24', + 'mac': '00:00:00:00:36:04', + 'switch': 'sw6'}, + {'name': 'h36_5', + 'ip': '10.0.36.5/24', + 'mac': '00:00:00:00:36:05', + 'switch': 'sw6'} + ] diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/init_scripts/sf-flows.sh b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/init_scripts/sf-flows.sh new file mode 100644 index 0000000000..0c7fc960fd --- /dev/null +++ b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-asymmetric-chain/init_scripts/sf-flows.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +set -e + +SFF_IP=$1 +SFF_HEX=$(printf '%02X' ${SFF_IP//./ }) +SFF_HEX=0x$SFF_HEX +sw=$(sudo ovs-vsctl show | egrep -E 'Bridge.*sw' | awk '{print $2}' | sed -e 's/^"//' -e 's/"$//') + +if [ $sw = "sw3" ] || [ $sw = "sw5" ] ; then + # delete NORMAL, if present + sudo ovs-ofctl --strict del-flows $sw priority=0 + sudo ovs-ofctl add-flow $sw "priority=1000,nsi=255 actions=move:NXM_NX_NSH_C1[]->NXM_NX_NSH_C1[],move:NXM_NX_NSH_C2[]->NXM_NX_NSH_C2[],move:NXM_NX_TUN_ID[0..31]->NXM_NX_TUN_ID[0..31],load:$SFF_HEX->NXM_NX_TUN_IPV4_DST[],set_nsi:254,IN_PORT" -OOpenFlow13 + sudo ovs-ofctl add-flow $sw "priority=1000,nsi=254 actions=move:NXM_NX_NSH_C1[]->NXM_NX_NSH_C1[],move:NXM_NX_NSH_C2[]->NXM_NX_NSH_C2[],move:NXM_NX_TUN_ID[0..31]->NXM_NX_TUN_ID[0..31],load:$SFF_HEX->NXM_NX_TUN_IPV4_DST[],set_nsi:253,IN_PORT" -OOpenFlow13 +else + echo "Invalid SF for this demo"; + exit +fi diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-symmetric-chain/010_set_odl.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-symmetric-chain/010_set_odl.robot deleted file mode 100644 index 064adb6cce..0000000000 --- a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-symmetric-chain/010_set_odl.robot +++ /dev/null @@ -1,77 +0,0 @@ -*** Settings *** -Documentation Test suite for setting up infrastructure for demo-symmetric-chain -Suite Setup Create Session session http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} -Suite Teardown Delete All Sessions -Library RequestsLibrary -Library OperatingSystem -Variables ../../../../../variables/Variables.py -Resource ../../../../../libraries/Utils.robot -Resource ../Variables.robot - -*** Variables *** -${GBP_TENANT_ID} f5c7d344-d1c7-4208-8531-2c2693657e12 -${TENANT_PATH} /restconf/config/policy:tenants/tenant/${GBP_TENANT_ID} -${TENANT_FILE} ${CURDIR}/../../../../../variables/gbp/demo-symmetric-chain/tenants.json -${TUNNELS_PATH} /restconf/config/opendaylight-inventory:nodes -${TUNNELS_FILE} ${CURDIR}/../../../../../variables/gbp/demo-symmetric-chain/tunnels.json -${ENDPOINTS_PATH} /restconf/operations/endpoint:register-endpoint -${SF_PATH} /restconf/config/service-function:service-functions -${SF_FILE} ${CURDIR}/../../../../../variables/gbp/demo-symmetric-chain/service_functions.json -${SFF_PATH} /restconf/config/service-function-forwarder:service-function-forwarders -${SFF_FILE} ${CURDIR}/../../../../../variables/gbp/demo-symmetric-chain/service_function_forwarders.json -${SFC_PATH} /restconf/config/service-function-chain:service-function-chains -${SFC_FILE} ${CURDIR}/../../../../../variables/gbp/demo-symmetric-chain/service_function_chains.json -${SFP_PATH} /restconf/config/service-function-path:service-function-paths -${SFP_FILE} ${CURDIR}/../../../../../variables/gbp/demo-symmetric-chain/service_function_paths.json -${h35_2_FILE} ${CURDIR}/../../../../../variables/gbp/demo-symmetric-chain/vethl-h35_2.json -${h35_3_FILE} ${CURDIR}/../../../../../variables/gbp/demo-symmetric-chain/vethl-h35_3.json -${h35_4_FILE} ${CURDIR}/../../../../../variables/gbp/demo-symmetric-chain/vethl-h35_4.json -${h35_5_FILE} ${CURDIR}/../../../../../variables/gbp/demo-symmetric-chain/vethl-h35_5.json -${h36_2_FILE} ${CURDIR}/../../../../../variables/gbp/demo-symmetric-chain/vethl-h36_2.json -${h36_3_FILE} ${CURDIR}/../../../../../variables/gbp/demo-symmetric-chain/vethl-h36_3.json -${h36_4_FILE} ${CURDIR}/../../../../../variables/gbp/demo-symmetric-chain/vethl-h36_4.json -${h36_5_FILE} ${CURDIR}/../../../../../variables/gbp/demo-symmetric-chain/vethl-h36_5.json -@{ENDPOINT_FILES} ${h35_2_FILE} ${h35_3_FILE} ${h35_4_FILE} ${h35_5_FILE} ${h36_2_FILE} ${h36_3_FILE} ${h36_4_FILE} -... ${h36_5_FILE} - -*** Test Cases *** -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} - ${resp} RequestsLibrary.Put session ${SF_PATH} ${edited_json} ${HEADERS} - Should Be Equal As Strings ${resp.status_code} 200 - -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} - ${resp} RequestsLibrary.Put session ${SFF_PATH} ${edited_json} ${HEADERS} - Should Be Equal As Strings ${resp.status_code} 200 - -Put Service Function Chains - [Documentation] Register Service Function Chains to ODL - Add Elements To URI From File ${SFC_PATH} ${SFC_FILE} - -Put Service Function Paths - [Documentation] Register Service Function Paths to ODL - Add Elements To URI From File ${SFP_PATH} ${SFP_FILE} - -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} - ${resp} RequestsLibrary.Put session ${TUNNELS_PATH} ${edited_json} ${HEADERS} - Should Be Equal As Strings ${resp.status_code} 200 - -Put Tenant - [Documentation] Send Tenant Data to ODL - Add Elements To URI From File ${TENANT_PATH} ${TENANT_FILE} - -Register Endpoints - [Documentation] Endpoints registration - : FOR ${endpoint_file} IN @{ENDPOINT_FILES} - \ Post Elements To URI From File ${ENDPOINTS_PATH} ${endpoint_file} diff --git a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-symmetric-chain/998_clean_odl.robot b/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-symmetric-chain/998_clean_odl.robot deleted file mode 100644 index d5f41aed34..0000000000 --- a/csit/suites/groupbasedpolicy/GBPSFC/6-node/demo-symmetric-chain/998_clean_odl.robot +++ /dev/null @@ -1,59 +0,0 @@ -*** Settings *** -Documentation Test suite for cleaning up / unregister infrastructure constructs like endpoints for demo-symmetric-chain -Suite Setup Create Session session http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} -Suite Teardown Delete All Sessions -Library RequestsLibrary -Library OperatingSystem -Library Collections -Library json -Variables ../../../../../variables/Variables.py -Resource ../../../../../libraries/Utils.robot -Resource ../../../../../libraries/GBP/RestconfUtils.robot - -*** Variables *** -${GBP_TENENT_ID} f5c7d344-d1c7-4208-8531-2c2693657e12 -${TENANT_PATH} /restconf/config/policy:tenants/tenant/${GBP_TENENT_ID} -${TUNNELS_PATH} /restconf/config/opendaylight-inventory:nodes -${OPER_ENDPOINTS_PATH} /restconf/operational/endpoint:endpoints -${UNREG_ENDPOINTS_PATH} /restconf/operations/endpoint:unregister-endpoint -${SF_PATH} /restconf/config/service-function:service-functions -${SFF_PATH} /restconf/config/service-function-forwarder:service-function-forwarders -${SFC_PATH} /restconf/config/service-function-chain:service-function-chains -${SFP_PATH} /restconf/config/service-function-path:service-function-paths -${OPER_NODES} /restconf/operational/opendaylight-inventory:nodes/ - -*** Test Cases *** -Delete Service Function Paths - [Documentation] Delete Service Function Paths from ODL - [Tags] GBPSFCTEAR - Remove All Elements At URI And Verify ${SFP_PATH} - -Delete Service Function Chains - [Documentation] Delete Service Function Chains from ODL - [Tags] GBPSFCTEAR - Remove All Elements At URI And Verify ${SFC_PATH} - -Delete Service Functions - [Documentation] Delete Service Function from ODL - [Tags] GBPSFCTEAR - Remove All Elements At URI And Verify ${SF_PATH} - -Delete Service Function Forwarders - [Documentation] Delete Service Function Forwarders from ODL - [Tags] GBPSFCTEAR - Remove All Elements At URI And Verify ${SFF_PATH} - -Delete Tunnels - [Documentation] Delete Tenant from ODL - [Tags] GBPSFCTEAR - Remove All Elements At URI And Verify ${TUNNELS_PATH} - -Delete Tenant - [Documentation] Delete Tenant from ODL - [Tags] GBPSFCTEAR - Remove All Elements At URI And Verify ${TENANT_PATH} - -Unregister Endpoints - [Documentation] Unregister Endpoints Endpoints from ODL - [Tags] GBPSFCTEAR - Unregister Endpoints ${OPER_ENDPOINTS_PATH} diff --git a/csit/testplans/groupbasedpolicy-6node.txt b/csit/testplans/groupbasedpolicy-6node.txt new file mode 100644 index 0000000000..9dd759bbee --- /dev/null +++ b/csit/testplans/groupbasedpolicy-6node.txt @@ -0,0 +1,2 @@ +# Place the suites in run order: +integration/test/csit/suites/groupbasedpolicy/GBPSFC/6-node \ No newline at end of file diff --git a/csit/variables/gbp/demo-asymmetric-chain/lithium/tenants.json b/csit/variables/gbp/6node/demo-asymmetric-chain/lithium/tenants.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/lithium/tenants.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/lithium/tenants.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/lithium/vethl-h35_2.json b/csit/variables/gbp/6node/demo-asymmetric-chain/lithium/vethl-h35_2.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/lithium/vethl-h35_2.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/lithium/vethl-h35_2.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/lithium/vethl-h35_3.json b/csit/variables/gbp/6node/demo-asymmetric-chain/lithium/vethl-h35_3.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/lithium/vethl-h35_3.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/lithium/vethl-h35_3.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/lithium/vethl-h35_4.json b/csit/variables/gbp/6node/demo-asymmetric-chain/lithium/vethl-h35_4.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/lithium/vethl-h35_4.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/lithium/vethl-h35_4.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/lithium/vethl-h35_5.json b/csit/variables/gbp/6node/demo-asymmetric-chain/lithium/vethl-h35_5.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/lithium/vethl-h35_5.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/lithium/vethl-h35_5.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/lithium/vethl-h36_2.json b/csit/variables/gbp/6node/demo-asymmetric-chain/lithium/vethl-h36_2.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/lithium/vethl-h36_2.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/lithium/vethl-h36_2.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/lithium/vethl-h36_3.json b/csit/variables/gbp/6node/demo-asymmetric-chain/lithium/vethl-h36_3.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/lithium/vethl-h36_3.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/lithium/vethl-h36_3.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/lithium/vethl-h36_4.json b/csit/variables/gbp/6node/demo-asymmetric-chain/lithium/vethl-h36_4.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/lithium/vethl-h36_4.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/lithium/vethl-h36_4.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/lithium/vethl-h36_5.json b/csit/variables/gbp/6node/demo-asymmetric-chain/lithium/vethl-h36_5.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/lithium/vethl-h36_5.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/lithium/vethl-h36_5.json diff --git a/csit/variables/gbp/6node/demo-asymmetric-chain/master/tenants.json b/csit/variables/gbp/6node/demo-asymmetric-chain/master/tenants.json new file mode 100644 index 0000000000..3450997d60 --- /dev/null +++ b/csit/variables/gbp/6node/demo-asymmetric-chain/master/tenants.json @@ -0,0 +1,205 @@ +{ + "tenant":[ + { + "id":"tenant-red", + "name":"DockerTenant", + "forwarding-context":{ + "l2-flood-domain":[ + { + "id":"flood-domain-1", + "parent":"bridge-domain1" + }, + { + "id":"flood-domain-2", + "parent":"bridge-domain1" + } + ], + "l3-context":[ + { + "id":"l3-context-vrf-red" + } + ], + "l2-bridge-domain":[ + { + "id":"bridge-domain1", + "parent":"l3-context-vrf-red" + } + ], + "subnet":[ + { + "id":"subnet-10.0.36.0/24", + "virtual-router-ip":"10.0.36.1", + "parent":"flood-domain-2", + "ip-prefix":"10.0.36.1/24" + }, + { + "id":"subnet-10.0.35.0/24", + "virtual-router-ip":"10.0.35.1", + "parent":"flood-domain-1", + "ip-prefix":"10.0.35.1/24" + } + ] + }, + "policy":{ + "endpoint-group":[ + { + "id":"webservers", + "name":"webservers", + "provider-named-selector":[ + { + "name":"webservers-clients-icmp-http-contract", + "contract":[ + "icmp-http-contract" + ] + } + ] + }, + { + "id":"clients", + "name":"clients", + "consumer-named-selector":[ + { + "name":"webservers-clients-icmp-http-contract", + "contract":[ + "icmp-http-contract" + ] + } + ] + } + ], + "subject-feature-instances":{ + "classifier-instance":[ + { + "name":"icmp", + "classifier-definition-id":"Classifier-IP-Protocol", + "parameter-value":[ + { + "name":"proto", + "int-value":1 + } + ] + }, + { + "name":"http-dest", + "classifier-definition-id":"Classifier-L4", + "parameter-value":[ + { + "int-value":"6", + "name":"proto" + }, + { + "int-value":"80", + "name":"destport" + } + ] + }, + { + "name":"http-src", + "classifier-definition-id":"Classifier-L4", + "parameter-value":[ + { + "int-value":"6", + "name":"proto" + }, + { + "int-value":"80", + "name":"sourceport" + } + ] + } + ], + "action-instance":[ + { + "name":"chain1", + "action-definition-id":"Action-Chain", + "parameter-value":[ + { + "name":"sfc-chain-name", + "string-value":"SFCGBP" + } + ] + }, + { + "name":"allow1", + "action-definition-id":"Action-Allow" + } + ] + }, + "contract":[ + { + "id":"icmp-http-contract", + "subject":[ + { + "name":"icmp-subject", + "rule":[ + { + "name":"allow-icmp-rule", + "order":0, + "classifier-ref":[ + { + "name":"icmp", + "instance-name":"icmp" + } + ], + "action-ref":[ + { + "name":"allow1", + "order":0 + } + ] + } + ] + }, + { + "name":"http-subject", + "rule":[ + { + "name":"http-chain-rule", + "classifier-ref":[ + { + "name":"http-dest", + "instance-name":"http-dest", + "direction":"in" + } + ], + "action-ref":[ + { + "name":"chain1", + "order":0 + } + ] + }, + { + "name":"http-out-rule", + "classifier-ref":[ + { + "name":"http-src", + "instance-name":"http-src", + "direction":"out" + } + ], + "action-ref":[ + { + "name":"allow1", + "order":0 + } + ] + } + ] + } + ], + "clause":[ + { + "name":"icmp-http-clause", + "subject-refs":[ + "icmp-subject", + "http-subject" + ] + } + ] + } + ] + } + } + ] +} \ No newline at end of file diff --git a/csit/variables/gbp/demo-asymmetric-chain/master/vethl-h35_2.json b/csit/variables/gbp/6node/demo-asymmetric-chain/master/vethl-h35_2.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/master/vethl-h35_2.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/master/vethl-h35_2.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/master/vethl-h35_3.json b/csit/variables/gbp/6node/demo-asymmetric-chain/master/vethl-h35_3.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/master/vethl-h35_3.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/master/vethl-h35_3.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/master/vethl-h35_4.json b/csit/variables/gbp/6node/demo-asymmetric-chain/master/vethl-h35_4.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/master/vethl-h35_4.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/master/vethl-h35_4.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/master/vethl-h35_5.json b/csit/variables/gbp/6node/demo-asymmetric-chain/master/vethl-h35_5.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/master/vethl-h35_5.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/master/vethl-h35_5.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/master/vethl-h36_2.json b/csit/variables/gbp/6node/demo-asymmetric-chain/master/vethl-h36_2.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/master/vethl-h36_2.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/master/vethl-h36_2.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/master/vethl-h36_3.json b/csit/variables/gbp/6node/demo-asymmetric-chain/master/vethl-h36_3.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/master/vethl-h36_3.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/master/vethl-h36_3.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/master/vethl-h36_4.json b/csit/variables/gbp/6node/demo-asymmetric-chain/master/vethl-h36_4.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/master/vethl-h36_4.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/master/vethl-h36_4.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/master/vethl-h36_5.json b/csit/variables/gbp/6node/demo-asymmetric-chain/master/vethl-h36_5.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/master/vethl-h36_5.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/master/vethl-h36_5.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/service_function_chains.json b/csit/variables/gbp/6node/demo-asymmetric-chain/service_function_chains.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/service_function_chains.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/service_function_chains.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/service_function_paths.json b/csit/variables/gbp/6node/demo-asymmetric-chain/service_function_paths.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/service_function_paths.json rename to csit/variables/gbp/6node/demo-asymmetric-chain/service_function_paths.json diff --git a/csit/variables/gbp/demo-symmetric-chain/lithium/tenants.json b/csit/variables/gbp/6node/demo-symmetric-chain/lithium/tenants.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/lithium/tenants.json rename to csit/variables/gbp/6node/demo-symmetric-chain/lithium/tenants.json diff --git a/csit/variables/gbp/demo-symmetric-chain/lithium/vethl-h35_2.json b/csit/variables/gbp/6node/demo-symmetric-chain/lithium/vethl-h35_2.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/lithium/vethl-h35_2.json rename to csit/variables/gbp/6node/demo-symmetric-chain/lithium/vethl-h35_2.json diff --git a/csit/variables/gbp/demo-symmetric-chain/lithium/vethl-h35_3.json b/csit/variables/gbp/6node/demo-symmetric-chain/lithium/vethl-h35_3.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/lithium/vethl-h35_3.json rename to csit/variables/gbp/6node/demo-symmetric-chain/lithium/vethl-h35_3.json diff --git a/csit/variables/gbp/demo-symmetric-chain/lithium/vethl-h35_4.json b/csit/variables/gbp/6node/demo-symmetric-chain/lithium/vethl-h35_4.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/lithium/vethl-h35_4.json rename to csit/variables/gbp/6node/demo-symmetric-chain/lithium/vethl-h35_4.json diff --git a/csit/variables/gbp/demo-symmetric-chain/lithium/vethl-h35_5.json b/csit/variables/gbp/6node/demo-symmetric-chain/lithium/vethl-h35_5.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/lithium/vethl-h35_5.json rename to csit/variables/gbp/6node/demo-symmetric-chain/lithium/vethl-h35_5.json diff --git a/csit/variables/gbp/demo-symmetric-chain/lithium/vethl-h36_2.json b/csit/variables/gbp/6node/demo-symmetric-chain/lithium/vethl-h36_2.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/lithium/vethl-h36_2.json rename to csit/variables/gbp/6node/demo-symmetric-chain/lithium/vethl-h36_2.json diff --git a/csit/variables/gbp/demo-symmetric-chain/lithium/vethl-h36_3.json b/csit/variables/gbp/6node/demo-symmetric-chain/lithium/vethl-h36_3.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/lithium/vethl-h36_3.json rename to csit/variables/gbp/6node/demo-symmetric-chain/lithium/vethl-h36_3.json diff --git a/csit/variables/gbp/demo-symmetric-chain/lithium/vethl-h36_4.json b/csit/variables/gbp/6node/demo-symmetric-chain/lithium/vethl-h36_4.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/lithium/vethl-h36_4.json rename to csit/variables/gbp/6node/demo-symmetric-chain/lithium/vethl-h36_4.json diff --git a/csit/variables/gbp/demo-symmetric-chain/lithium/vethl-h36_5.json b/csit/variables/gbp/6node/demo-symmetric-chain/lithium/vethl-h36_5.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/lithium/vethl-h36_5.json rename to csit/variables/gbp/6node/demo-symmetric-chain/lithium/vethl-h36_5.json diff --git a/csit/variables/gbp/demo-symmetric-chain/master/tenants.json b/csit/variables/gbp/6node/demo-symmetric-chain/master/tenants.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/master/tenants.json rename to csit/variables/gbp/6node/demo-symmetric-chain/master/tenants.json diff --git a/csit/variables/gbp/demo-symmetric-chain/master/vethl-h35_2.json b/csit/variables/gbp/6node/demo-symmetric-chain/master/vethl-h35_2.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/master/vethl-h35_2.json rename to csit/variables/gbp/6node/demo-symmetric-chain/master/vethl-h35_2.json diff --git a/csit/variables/gbp/demo-symmetric-chain/master/vethl-h35_3.json b/csit/variables/gbp/6node/demo-symmetric-chain/master/vethl-h35_3.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/master/vethl-h35_3.json rename to csit/variables/gbp/6node/demo-symmetric-chain/master/vethl-h35_3.json diff --git a/csit/variables/gbp/demo-symmetric-chain/master/vethl-h35_4.json b/csit/variables/gbp/6node/demo-symmetric-chain/master/vethl-h35_4.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/master/vethl-h35_4.json rename to csit/variables/gbp/6node/demo-symmetric-chain/master/vethl-h35_4.json diff --git a/csit/variables/gbp/demo-symmetric-chain/master/vethl-h35_5.json b/csit/variables/gbp/6node/demo-symmetric-chain/master/vethl-h35_5.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/master/vethl-h35_5.json rename to csit/variables/gbp/6node/demo-symmetric-chain/master/vethl-h35_5.json diff --git a/csit/variables/gbp/demo-symmetric-chain/master/vethl-h36_2.json b/csit/variables/gbp/6node/demo-symmetric-chain/master/vethl-h36_2.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/master/vethl-h36_2.json rename to csit/variables/gbp/6node/demo-symmetric-chain/master/vethl-h36_2.json diff --git a/csit/variables/gbp/demo-symmetric-chain/master/vethl-h36_3.json b/csit/variables/gbp/6node/demo-symmetric-chain/master/vethl-h36_3.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/master/vethl-h36_3.json rename to csit/variables/gbp/6node/demo-symmetric-chain/master/vethl-h36_3.json diff --git a/csit/variables/gbp/demo-symmetric-chain/master/vethl-h36_4.json b/csit/variables/gbp/6node/demo-symmetric-chain/master/vethl-h36_4.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/master/vethl-h36_4.json rename to csit/variables/gbp/6node/demo-symmetric-chain/master/vethl-h36_4.json diff --git a/csit/variables/gbp/demo-symmetric-chain/master/vethl-h36_5.json b/csit/variables/gbp/6node/demo-symmetric-chain/master/vethl-h36_5.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/master/vethl-h36_5.json rename to csit/variables/gbp/6node/demo-symmetric-chain/master/vethl-h36_5.json diff --git a/csit/variables/gbp/demo-symmetric-chain/service_function_chains.json b/csit/variables/gbp/6node/demo-symmetric-chain/service_function_chains.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/service_function_chains.json rename to csit/variables/gbp/6node/demo-symmetric-chain/service_function_chains.json diff --git a/csit/variables/gbp/demo-symmetric-chain/service_function_paths.json b/csit/variables/gbp/6node/demo-symmetric-chain/service_function_paths.json similarity index 100% rename from csit/variables/gbp/demo-symmetric-chain/service_function_paths.json rename to csit/variables/gbp/6node/demo-symmetric-chain/service_function_paths.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/service_function_forwarders.json b/csit/variables/gbp/6node/lithium/service_function_forwarders.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/service_function_forwarders.json rename to csit/variables/gbp/6node/lithium/service_function_forwarders.json diff --git a/csit/variables/gbp/6node/master/service_function_forwarders.json b/csit/variables/gbp/6node/master/service_function_forwarders.json new file mode 100644 index 0000000000..eb54237f50 --- /dev/null +++ b/csit/variables/gbp/6node/master/service_function_forwarders.json @@ -0,0 +1,80 @@ +{ + "service-function-forwarders":{ + "service-function-forwarder":[ + { + "name":"SFF1", + "service-node":"OVSDB2", + "service-function-forwarder-ovs:ovs-bridge":{ + "bridge-name":"sw2" + }, + "service-function-dictionary":[ + { + "name":"firewall-72", + "sff-sf-data-plane-locator":{ + "sf-dpl-name":"2", + "sff-dpl-name":"sfc-tun2" + } + } + ], + "sff-data-plane-locator":[ + { + "name":"sfc-tun2", + "data-plane-locator":{ + "transport":"service-locator:vxlan-gpe", + "port":6633, + "ip":"_SFF1" + }, + "service-function-forwarder-ovs:ovs-options":{ + "remote-ip":"flow", + "dst-port":"6633", + "key":"flow", + "nsp":"flow", + "nsi":"flow", + "nshc1":"flow", + "nshc2":"flow", + "nshc3":"flow", + "nshc4":"flow" + } + } + ] + }, + { + "name":"SFF2", + "service-node":"OVSDB2", + "service-function-forwarder-ovs:ovs-bridge":{ + "bridge-name":"sw4" + }, + "service-function-dictionary":[ + { + "name":"dpi-74", + "sff-sf-data-plane-locator":{ + "sf-dpl-name":"3", + "sff-dpl-name":"sfc-tun4" + } + } + ], + "sff-data-plane-locator":[ + { + "name":"sfc-tun4", + "data-plane-locator":{ + "transport":"service-locator:vxlan-gpe", + "port":6633, + "ip":"_SFF2" + }, + "service-function-forwarder-ovs:ovs-options":{ + "remote-ip":"flow", + "dst-port":"6633", + "key":"flow", + "nsp":"flow", + "nsi":"flow", + "nshc1":"flow", + "nshc2":"flow", + "nshc3":"flow", + "nshc4":"flow" + } + } + ] + } + ] + } +} \ No newline at end of file diff --git a/csit/variables/gbp/demo-asymmetric-chain/service_functions.json b/csit/variables/gbp/6node/service_functions.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/service_functions.json rename to csit/variables/gbp/6node/service_functions.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/tunnels.json b/csit/variables/gbp/6node/tunnels.json similarity index 100% rename from csit/variables/gbp/demo-asymmetric-chain/tunnels.json rename to csit/variables/gbp/6node/tunnels.json diff --git a/csit/variables/gbp/demo-asymmetric-chain/master/tenants.json b/csit/variables/gbp/demo-asymmetric-chain/master/tenants.json deleted file mode 100644 index c2100b6c4c..0000000000 --- a/csit/variables/gbp/demo-asymmetric-chain/master/tenants.json +++ /dev/null @@ -1,201 +0,0 @@ -{ - "tenant": [ - { - "id": "tenant-red", - "l2-flood-domain": [ - { - "id": "flood-domain-1", - "parent": "bridge-domain1" - }, - { - "id": "flood-domain-2", - "parent": "bridge-domain1" - } - ], - "name": "DockerTenant", - "l3-context": [ - { - "id": "l3-context-vrf-red" - } - ], - "l2-bridge-domain": [ - { - "id": "bridge-domain1", - "parent": "l3-context-vrf-red" - } - ], - "subnet": [ - { - "id": "subnet-10.0.36.0/24", - "virtual-router-ip": "10.0.36.1", - "parent": "flood-domain-2", - "ip-prefix": "10.0.36.1/24" - }, - { - "id": "subnet-10.0.35.0/24", - "virtual-router-ip": "10.0.35.1", - "parent": "flood-domain-1", - "ip-prefix": "10.0.35.1/24" - } - ], - "endpoint-group": [ - { - "id": "webservers", - "name": "webservers", - "provider-named-selector": [ - { - "name": "webservers-clients-icmp-http-contract", - "contract": [ - "icmp-http-contract" - ] - } - ] - }, - { - "id": "clients", - "name": "clients", - "consumer-named-selector": [ - { - "name": "webservers-clients-icmp-http-contract", - "contract": [ - "icmp-http-contract" - ] - } - ] - } - ], - "subject-feature-instances": { - "classifier-instance": [ - { - "name": "icmp", - "classifier-definition-id": "Classifier-IP-Protocol", - "parameter-value": [ - { - "name": "proto", - "int-value": 1 - } - ] - }, - { - "name": "http-dest", - "classifier-definition-id": "Classifier-L4", - "parameter-value": [ - { - "int-value": "6", - "name": "proto" - }, - { - "int-value": "80", - "name": "destport" - } - ] - }, - { - "name": "http-src", - "classifier-definition-id": "Classifier-L4", - "parameter-value": [ - { - "int-value": "6", - "name": "proto" - }, - { - "int-value": "80", - "name": "sourceport" - } - ] - } - ], - "action-instance": [ - { - "name": "chain1", - "action-definition-id": "Action-Chain", - "parameter-value": [ - { - "name": "sfc-chain-name", - "string-value": "SFCGBP" - } - ] - }, - { - "name": "allow1", - "action-definition-id": "Action-Allow" - } - ] - }, - "contract": [ - { - "id": "icmp-http-contract", - "subject": [ - { - "name": "icmp-subject", - "rule": [ - { - "name": "allow-icmp-rule", - "order": 0, - "classifier-ref": [ - { - "name": "icmp", - "instance-name": "icmp" - } - ], - "action-ref": [ - { - "name": "allow1", - "order": 0 - } - ] - } - ] - }, - { - "name": "http-subject", - "rule": [ - { - "name": "http-chain-rule", - "classifier-ref": [ - { - "name": "http-dest", - "instance-name": "http-dest", - "direction": "in" - } - ], - "action-ref": [ - { - "name": "chain1", - "order": 0 - } - ] - }, - { - "name": "http-out-rule", - "classifier-ref": [ - { - "name": "http-src", - "instance-name": "http-src", - "direction": "out" - } - ], - "action-ref": [ - { - "name": "allow1", - "order": 0 - } - ] - } - ] - } - ], - "clause": [ - { - "name": "icmp-http-clause", - "subject-refs": [ - "icmp-subject", - "http-subject" - ] - } - ] - } - ] - } - ] -} diff --git a/csit/variables/gbp/demo-symmetric-chain/service_function_forwarders.json b/csit/variables/gbp/demo-symmetric-chain/service_function_forwarders.json deleted file mode 100644 index 1da7b4802d..0000000000 --- a/csit/variables/gbp/demo-symmetric-chain/service_function_forwarders.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "service-function-forwarders": { - "service-function-forwarder": [ - { - "name": "SFF1", - "service-node": "OVSDB2", - "service-function-forwarder-ovs:ovs-bridge": { - "bridge-name": "sw2" - }, - "service-function-dictionary": [ - { - "name": "firewall-72", - "type": "service-function-type:firewall", - "sff-sf-data-plane-locator": { - "port": 6633, - "ip": "_SFF1", - "transport": "service-locator:vxlan-gpe" - } - } - ], - "sff-data-plane-locator": [ - { - "name": "sfc-tun2", - "data-plane-locator": { - "transport": "service-locator:vxlan-gpe", - "port": 6633, - "ip": "_SFF1" - }, - "service-function-forwarder-ovs:ovs-options": { - "remote-ip": "flow", - "dst-port": "6633", - "key": "flow", - "nsp": "flow", - "nsi": "flow", - "nshc1": "flow", - "nshc2": "flow", - "nshc3": "flow", - "nshc4": "flow" - } - } - ] - }, - { - "name": "SFF2", - "service-node": "OVSDB2", - "service-function-forwarder-ovs:ovs-bridge": { - "bridge-name": "sw4" - }, - "service-function-dictionary": [ - { - "name": "dpi-74", - "type": "service-function-type:dpi", - "sff-sf-data-plane-locator": { - "port": 6633, - "ip": "_SFF2", - "transport": "service-locator:vxlan-gpe" - } - } - ], - "sff-data-plane-locator": [ - { - "name": "sfc-tun4", - "data-plane-locator": { - "transport": "service-locator:vxlan-gpe", - "port": 6633, - "ip": "_SFF2" - }, - "service-function-forwarder-ovs:ovs-options": { - "remote-ip": "flow", - "dst-port": "6633", - "key": "flow", - "nsp": "flow", - "nsi": "flow", - "nshc1": "flow", - "nshc2": "flow", - "nshc3": "flow", - "nshc4": "flow" - } - } - ] - } - ] - } -} \ No newline at end of file diff --git a/csit/variables/gbp/demo-symmetric-chain/service_functions.json b/csit/variables/gbp/demo-symmetric-chain/service_functions.json deleted file mode 100644 index f3c0d76506..0000000000 --- a/csit/variables/gbp/demo-symmetric-chain/service_functions.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "service-functions": { - "service-function": [ - { - "name": "firewall-72", - "ip-mgmt-address": "_SF1", - "type": "service-function-type:firewall", - "nsh-aware": "true", - "sf-data-plane-locator": [ - { - "name": "2", - "port": 6633, - "ip": "_SF1", - "transport": "service-locator:vxlan-gpe", - "service-function-forwarder": "SFF1" - } - ] - }, - { - "name": "dpi-74", - "ip-mgmt-address": "_SF2", - "type": "service-function-type:dpi", - "nsh-aware": "true", - "sf-data-plane-locator": [ - { - "name": "3", - "port": 6633, - "ip": "_SF2", - "transport": "service-locator:vxlan-gpe", - "service-function-forwarder": "SFF2" - } - ] - } - ] - } -} \ No newline at end of file diff --git a/csit/variables/gbp/demo-symmetric-chain/tunnels.json b/csit/variables/gbp/demo-symmetric-chain/tunnels.json deleted file mode 100644 index c7a2181584..0000000000 --- a/csit/variables/gbp/demo-symmetric-chain/tunnels.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "opendaylight-inventory:nodes": { - "node": [ - { - "id": "openflow:1", - "ofoverlay:tunnel": [ - { - "tunnel-type": "overlay:tunnel-type-vxlan-gpe", - "node-connector-id": "openflow:1:1", - "ip": "_CLASSIFIER1", - "port": 6633 - }, - { - "tunnel-type": "overlay:tunnel-type-vxlan", - "node-connector-id": "openflow:1:2", - "ip": "_CLASSIFIER1", - "port": 4789 - } - ] - }, - { - "id": "openflow:6", - "ofoverlay:tunnel": [ - { - "tunnel-type": "overlay:tunnel-type-vxlan-gpe", - "node-connector-id": "openflow:6:1", - "ip": "_CLASSIFIER2", - "port": 6633 - }, - { - "tunnel-type": "overlay:tunnel-type-vxlan", - "node-connector-id": "openflow:6:2", - "ip": "_CLASSIFIER2", - "port": 4789 - } - ] - } - ] - } -} -- 2.36.6