Add TLS support in Bulkomatic Perf test 74/72774/6
authorLuis Gomez <ecelgp@gmail.com>
Fri, 8 Jun 2018 01:23:07 +0000 (18:23 -0700)
committerLuis Gomez <ecelgp@gmail.com>
Fri, 8 Jun 2018 04:11:40 +0000 (21:11 -0700)
- Update MininetKeywords.Start_Mininet_MUltiple_controllers to
support TLS (protocol=ssl). Also speed up the KW by creating
extra mininet SSH connection, instead of using multiple
Utils.Run_Command_On_Mininet (this creates new session)

- Update 100K flow perf test to use TLS connections
(100K_Flows_100DPN_1Node_Perf_Test.robot).

- Remove "--switch ovsk,protocols=OpenFlow13" from suites
using MininetKeywords library as this is not required.

Change-Id: Ice4287bc7982cc23fada368b221bd42d72e5b3da
Signed-off-by: Luis Gomez <ecelgp@gmail.com>
20 files changed:
csit/configplans/openflowplugin-perf-bulkomatic.txt
csit/libraries/MininetKeywords.robot
csit/libraries/VtnCoKeywords.robot
csit/libraries/tls/cachain.crt [new file with mode: 0644]
csit/libraries/tls/default-openflow-connection-config.xml [new file with mode: 0644]
csit/libraries/tls/keystore.p12 [new file with mode: 0644]
csit/libraries/tls/switch.crt [new file with mode: 0644]
csit/libraries/tls/switch.key [new file with mode: 0644]
csit/libraries/tls/truststore.p12 [new file with mode: 0644]
csit/scripts/set_openflow_tls.sh [new file with mode: 0644]
csit/suites/didm/discovery/device_discovery.robot
csit/suites/openflowplugin/Clustering_Bulkomatic/010__Cluster_Reconcilliation_Multi_DPN.robot
csit/suites/openflowplugin/Clustering_Bulkomatic/020__Cluster_HA_Data_Recovery_BulkFlow_2Node_Cluster.robot
csit/suites/openflowplugin/Performance_Bulkomatic/100K_Flows_100DPN_1Node_Perf_Test.robot
csit/suites/openflowplugin/Performance_Bulkomatic/100K_Flows_100DPN_3Node_Cluster_Perf_Test.robot
csit/suites/openflowplugin/Performance_Restconf/100K_Flows_100DPN_1Node_Perf_Test.robot
csit/suites/openflowplugin/Performance_Restconf/100K_Flows_100DPN_3Node_Cluster_Perf_Test.robot
csit/suites/ovsdb/Southbound_Domain/040__Vxlan_Extension_Test.robot
csit/suites/unimgr/uni_legato/010_unimanager_epl.robot
csit/suites/unimgr/uni_legato/020_unimanager_eplan.robot

index 498785936a5ca3178629577471d13e8f2e131f05..c96c933ed39d5d22f654a1404fd0194ee57b6219 100644 (file)
@@ -1,2 +1,3 @@
 # Place the suites in run order:
 integration/test/csit/scripts/set_persistence_off.sh
+integration/test/csit/scripts/set_openflow_tls.sh
index c10f496f14f9ed8dd951bc87784862a6162add22..317db1bde9490b88fc89000ff11b09c5a114d256 100644 (file)
@@ -8,6 +8,9 @@ Resource          ClusterManagement.robot
 Variables         ../variables/Variables.py
 
 *** Variables ***
+${switch_private_key}    switch.key
+${switch_certificate}    switch.crt
+${controller_ca_list}    cachain.crt
 ${topology_file}    create_fullymesh.py
 ${topology_file_path}    MininetTopo/${topology_file}
 
@@ -18,9 +21,8 @@ Start Mininet Single Controller
     [Documentation]    Start Mininet with custom topology and connect to controller.
     Log    Clear any existing mininet
     Utils.Clean Mininet System    ${mininet}
-    ${mininet_conn_id}=    SSHLibrary.Open Connection    ${mininet}    prompt=${TOOLS_SYSTEM_PROMPT}    timeout=${timeout}
+    ${mininet_conn_id}=    SSHKeywords.Open_Connection_To_Tools_System
     Set Suite Variable    ${mininet_conn_id}
-    SSHKeywords.Flexible Mininet Login
     Run Keyword If    '${custom}' != '${EMPTY}'    Put File    ${custom}
     Log    Start mininet ${options} to ${controller}
     SSHLibrary.Write    sudo mn --controller 'remote,ip=${controller},port=${ofport}' ${options} --switch ovsk,protocols=OpenFlow${ofversion}
@@ -31,34 +33,37 @@ Start Mininet Single Controller
     [Return]    ${mininet_conn_id}
 
 Start Mininet Multiple Controllers
-    [Arguments]    ${mininet}    ${controller_index_list}=${EMPTY}    ${options}=--topo tree,1    ${custom}=${EMPTY}    ${ofversion}=13    ${ofport}=${ODL_OF_PORT}
-    ...    ${timeout}=${DEFAULT_TIMEOUT}
+    [Arguments]    ${mininet}=${TOOLS_SYSTEM_IP}    ${controller_index_list}=${EMPTY}    ${options}=--topo tree,1    ${custom}=${EMPTY}    ${ofversion}=13    ${ofport}=${ODL_OF_PORT}
+    ...    ${protocol}=tcp    ${timeout}=${DEFAULT_TIMEOUT}
     [Documentation]    Start Mininet with custom topology and connect to list of controllers in ${controller_index_list} or all if no list is provided.
     ${index_list} =    ClusterManagement.List Indices Or All    given_list=${controller_index_list}
     Log    Clear any existing mininet
     Utils.Clean Mininet System    ${mininet}
-    ${mininet_conn_id}=    SSHLibrary.Open Connection    ${mininet}    prompt=${TOOLS_SYSTEM_PROMPT}    timeout=${timeout}
+    ${mininet_conn_id}=    SSHKeywords.Open_Connection_To_Tools_System
     Set Suite Variable    ${mininet_conn_id}
-    SSHKeywords.Flexible Mininet Login
     Run Keyword If    '${custom}' != '${EMPTY}'    Put File    ${custom}
+    Run Keyword If    '${protocol}' == 'ssl'    Install Certificates In Mininet
     Log    Start mininet ${options}
     SSHLibrary.Write    sudo mn ${options}
     SSHLibrary.Read Until    mininet>
     Log    Create controller configuration
     ${controller_opt}=    Set Variable
     : FOR    ${index}    IN    @{index_list}
-    \    ${controller_opt}=    Catenate    ${controller_opt}    ${SPACE}tcp:${ODL_SYSTEM_${index}_IP}:${ofport}
+    \    ${controller_opt}=    Catenate    ${controller_opt}    ${SPACE}${protocol}:${ODL_SYSTEM_${index}_IP}:${ofport}
     \    Log    ${controller_opt}
-    Log    Find Number of OVS bridges
-    ${num_bridges}    Utils.Run Command On Mininet    ${mininet}    sudo ovs-vsctl show | grep Bridge | wc -l
+    Log    Open extra SSH connection to configure the OVS bridges
+    SSHKeywords.Open_Connection_To_Tools_System
+    ${num_bridges}    SSHLibrary.Execute Command    sudo ovs-vsctl show | grep Bridge | wc -l
     ${num_bridges}=    Convert To Integer    ${num_bridges}
     Log    Configure OVS controllers ${controller_opt} in all bridges
     : FOR    ${i}    IN RANGE    1    ${num_bridges+1}
-    \    ${bridge}=    Utils.Run Command On Mininet    ${mininet}    sudo ovs-vsctl show | grep Bridge | cut -c 12- | sort | head -${i} | tail -1
-    \    OVSDB.Set Controller In OVS Bridge    ${mininet}    ${bridge}    ${controller_opt}    ${ofversion}
+    \    ${bridge}=    SSHLibrary.Execute Command    sudo ovs-vsctl show | grep Bridge | cut -c 12- | sort | head -${i} | tail -1
+    \    SSHLibrary.Execute Command    sudo ovs-vsctl set bridge ${bridge} protocols=OpenFlow${ofversion}
+    \    SSHLibrary.Execute Command    sudo ovs-vsctl set-controller ${bridge} ${controller_opt}
     Log    Check OVS configuratiom
-    SSHLibrary.Write    sh ovs-vsctl show
-    SSHLibrary.Read Until    mininet>
+    ${output}=    SSHLibrary.Execute Command    sudo ovs-vsctl show
+    Log    ${output}
+    SSHLibrary.Close Connection
     [Return]    ${mininet_conn_id}
 
 Start Mininet Multiple Hosts
@@ -196,3 +201,15 @@ Get Mininet Hosts
     \    ${h}=    String.Get Lines Matching Regexp    ${item}    h[0-9]*
     \    Run Keyword If    '${h}' != '${EMPTY}'    Append To List    ${host_list}    ${h}
     [Return]    ${host_list}
+
+Install Certificates In Mininet
+    [Documentation]    Copy and install certificates in simulator.
+    Comment    Copy Certificates
+    SSHLibrary.Put File    ${CURDIR}/tls/${switch_private_key}    .
+    SSHLibrary.Put File    ${CURDIR}/tls/${switch_certificate}    .
+    SSHLibrary.Put File    ${CURDIR}/tls/${controller_ca_list}    .
+    Comment    Install Certificates
+    SSHLibrary.Execute Command    sudo mv ${switch_private_key} /etc/openvswitch && sudo mv ${switch_certificate} /etc/openvswitch && sudo mv ${controller_ca_list} /etc/openvswitch
+    SSHLibrary.Execute Command    sudo ovs-vsctl set-ssl /etc/openvswitch/${switch_private_key} /etc/openvswitch/${switch_certificate} /etc/openvswitch/${controller_ca_list}
+    ${std_out}=    SSHLibrary.Execute Command    .    sudo ovs-vsctl get-ssl
+    Log    ${std_out}
index 83363f557f05d45f0c005b617de07832932e3d55..a657bc569372da4b4329ae8364de940b073b43db 100644 (file)
@@ -13,7 +13,7 @@ Resource          ./Utils.robot
 Resource          ./MininetKeywords.robot
 
 *** variable ***
-${vlan_topo}      --custom vlan_vtn_test.py --topo vlantopo --switch ovsk,protocols=OpenFlow13
+${vlan_topo}      --custom vlan_vtn_test.py --topo vlantopo
 ${vtn_coordinator_nexus_path}    https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/vtn/distribution.vtn-coordinator
 ${vtn_dist}       distribution.vtn-coordinator
 
diff --git a/csit/libraries/tls/cachain.crt b/csit/libraries/tls/cachain.crt
new file mode 100644 (file)
index 0000000..c782e80
--- /dev/null
@@ -0,0 +1,95 @@
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFXjCCA0YCAQEwDQYJKoZIhvcNAQELBQAwdTELMAkGA1UEBhMCVVMxCzAJBgNV
+BAgMAkNBMRIwEAYDVQQHDAlQYWxvIEFsdG8xGDAWBgNVBAoMD0x1bWluYSBOZXR3
+b3JrczENMAsGA1UECwwEUm9vdDEcMBoGA1UEAwwTUm9vdCBDQSBDZXJ0aWZpY2F0
+ZTAeFw0xODA1MjQwMjU0MjFaFw0yMzA1MjMwMjU0MjFaMHUxCzAJBgNVBAYTAlVT
+MQswCQYDVQQIDAJDQTESMBAGA1UEBwwJUGFsbyBBbHRvMRgwFgYDVQQKDA9MdW1p
+bmEgTmV0d29ya3MxDTALBgNVBAsMBEludDExHDAaBgNVBAMME0ludDEgQ0EgY2Vy
+dGlmaWNhdGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCs8aGBWyGh
+B7jdfNHipWPxRdOB1q/cafg/h5FfJ8ytWHX8oFRqecbjiDjMXL/40oGOJC8z44Ah
+6R6PBSnhhlvmJhKJBE1lUOVRvpYNGeaD8Nh8sqr32ZE+9Ie/ddAqAwTpuWy2hH4N
+svGZvSjqXS0GM/0BVEGXRVO8NSkVdESOdBScHmAn3flB6lQIteVpgsyfPrfd1rVY
+cXY4nW8nJTlyTXUgmYzCkUVOnMKl0u3nj2d4wXOWedZ3MMkonL0Vv9ode41HHQk5
+aQuRLDj6ShJm/H5Sa+40W7JfIc5lAkTZQJ7ore1uaRZcI8/2XS4tztnSYFfnyRwD
+uoiGPXq7Brrgj0SRWQXF0pgAw3Pon2Az7IhVbL/dpoEce49yFxg8lTjQKm41P9oE
+cElgLqwtfL00kLcAk9kp6+xG2Hs9bmO3BZ23+mj8NQhPybuL95D0MaXawtH0YHBw
+jh0u7EQoU1D9HARnQU/SgGyWa9Q1scHbcHSbPT9i3i0cBjoQKWSDGLJjah82Wbe8
+xoeJrZsO8ILtDL4/uEBkEO0E3Bjopi6DXOvXc5WUPeqU9tmUBfxHDjrL0T2ykywQ
+S8KF9AxN1ggnKfShYtvC0tfOhzClgWiU60f41nTzgmiXAZmYKqqErVzcfxBAnNzD
+evuVwuXJ75nAne849wO2oqnDA5m6PBPokwIDAQABMA0GCSqGSIb3DQEBCwUAA4IC
+AQBbKXvGjO9tkJ6cdJsML6zyfS5iKmm55PcDd/NdtyoFbpp+FuGB7b4ejqo0KqIF
+EVsROxdd7RLcxvbt5K9/90+RVC13jleoXSOs7jwtOUkPEBsqCez9CLZ9PxeZrk5l
+mUjspoNWZUiaWJ8wHePfRDLYXeSnyOdJpEXLvokfiGW0atUoaANybAal7BAh1/GM
+CXYgUGoAhqzBTsddACDeMFuveLf63GCY1ZeEmYB5S2Wzy82lObbAQMX9pZsGXMSe
+g+bAO0u6/Ym22YzMmdVQ9FiCuaOJtmEPis8VDoE+5F3+eRQtu1SuYO0LUSnLiGYV
+jP60zMUurULzfTJk+W970iF5foIFSZNVuyxm5NvQfBJiU3BQES14RzV2TXooRmNj
+xAnYeE0P8JcV5Hop2n52aDgm1U/684pTCJpDvpRCDWgKc8HkqkRrR3tl9S0Fwl5M
+8VMqYJnpU0k4crOOMEgg/KgVAy9eXlPWPLOmcB08vQAT/ifv1Euod//OF9kW78gi
+oAlAo7PIeQHd+RczpN3fb5CVBqY+jAAfHQ0ORe663jUlCPACMiWEyorEnD3yQMf7
+YGW5DaKTmXBH85XiXtvtQlOGzaW9k4O72ixg+2gX/aA8hbOFCkZq85UHRpdPw+TI
+0xLZWPcE4cTtdwPzo7ZKmgWJpmPTj4GbjIf+RFtM44Zlrg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFXjCCA0YCAQEwDQYJKoZIhvcNAQELBQAwdTELMAkGA1UEBhMCVVMxCzAJBgNV
+BAgMAkNBMRIwEAYDVQQHDAlQYWxvIEFsdG8xGDAWBgNVBAoMD0x1bWluYSBOZXR3
+b3JrczENMAsGA1UECwwESW50MTEcMBoGA1UEAwwTSW50MSBDQSBjZXJ0aWZpY2F0
+ZTAeFw0xODA1MjQwMjU4MzBaFw0yMzA1MjMwMjU4MzBaMHUxCzAJBgNVBAYTAlVT
+MQswCQYDVQQIDAJDQTESMBAGA1UEBwwJUGFsbyBBbHRvMRgwFgYDVQQKDA9MdW1p
+bmEgTmV0d29ya3MxDTALBgNVBAsMBEludDIxHDAaBgNVBAMME0ludDIgQ0EgQ2Vy
+dGlmaWNhdGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvvXkcFFoo
+H48LaABMfP6OU4rwOtiBvwj6LfXpvPMSAyzBPEyTYdAeZhMppL4Sfn4kWcqacXji
+2TM4fzMhHfzu+IbrvzpqDGcjHAMXcb0K8HkAj2/6gwq31jV2qnNwt2LV9rEvuPrK
+G/ZPb56pbbV+M2VoqLrHrpq3W+U2j8yVqe2FOGohrMfsPZP95axqvMo/6SnP8GSi
+Z0tAR9ThifwO9s1ua96nmzrylWKYcXcFP+aCfKMZBR71W6VSfbEPjzfe6PfGwTCz
+takD75nL0Dpuci9XfbbleRLkZgIlMM6InpkQoyIvhhQzal28WUJMwYtMMYgzSV/C
++lGZFMUI1lKXQLQkgqYDzoXT7Ul1Oa/YrGM9BoymfASccs3s7FoDy1lYa5CLYQRy
+4MIJELfuJPvBJjxoB+royGHqu40BsAMvuDpQ5x/O5h+fdRYcg9RD5JG+BHrlE33Q
+yn5hlEsgTvN99mx9zCi5bnYVrKAthRdhC9vCu3NyTG2MVTnmTytNog3l4E/BdPyR
+BXAI1rfLnHiBR02Oztaf9nvrQPF0bb/ot9IEhD1RZb+T+0UvwKxQGsz0e5pnvdn/
+aQxp13kufusDEIXJnp54opiDDGVW/P+CI8lpoQx6fIu0KY4+WlRYWmtnYhyv66ty
+Z7RB6a4M1QPqmg8MFmI8+bERwKxXiBaWsQIDAQABMA0GCSqGSIb3DQEBCwUAA4IC
+AQBS/mrXpRMCwX8vkvZyZ7QgNU2OCEJaRvE9OxSNtfvQnZYFIDjIcYgA9BSWjFiw
+XD6kUocKYpoESxHLmnqG7kTs3uXVi8y3dNSZna+0BGtE3gj+9fTYtQ7z6rjcxjqj
+xqDPCE8zAeyGPIQ2a85YJ8mWtez/LCkl2D6WFeZU73onCvzQ1cJKGQfpNfO6Je6o
+dmMXGrZYELhU57ErU6vwbA3+Hm1o32YPdQE/0Yb4Wlle68v71fdvyZAAVsZn51Df
+j845mh1LySN1HkwN/lC24V6PwPxdKFwKjQcPYEdrb0cVNyE7HZnmmtCjKygQDhRv
+ttdyaihVUrDFCty6wuxeTfFTEDRT/mU05+LvXBVTJ7VOgyf3wGiCV6IsWV06WYLj
+1lMDlRhogukUgCvMbKseVHYena8EgrczCqnjAalaTZtxrRcY0/vNF1s4N6QfzMrm
+mGKScwIYNtWUv4cdsDcvBeDbWeeNAWRYWalSbPXqPvRlhDpyYhHnGTDmZoMuVZp2
+9sZpoJdiVaByjLU4f7U9wMz0bDB0JWmOUhP2VS0j80plZ6MXMEoc2okUTvdO78y0
+oTSmmVQRRtG2Qd2/l9tLDs0opb4VgVkI5LNwemAO/jGwz1/nSnO7phL8weBc8OMa
+9CdMU0JhN3S0da4/cf4biv2y3afdvjCq6MEAKvKNFYSjQQ==
+-----END CERTIFICATE-----
diff --git a/csit/libraries/tls/default-openflow-connection-config.xml b/csit/libraries/tls/default-openflow-connection-config.xml
new file mode 100644 (file)
index 0000000..8532f14
--- /dev/null
@@ -0,0 +1,18 @@
+<switch-connection-config xmlns="urn:opendaylight:params:xml:ns:yang:openflow:switch:connection:config">
+  <instance-name>openflow-switch-connection-provider-default-impl</instance-name>
+  <port>6653</port>
+  <transport-protocol>TLS</transport-protocol>
+  <group-add-mod-enabled>false</group-add-mod-enabled>
+  <channel-outbound-queue-size>1024</channel-outbound-queue-size>
+  <tls>
+     <keystore>etc/keystore.p12</keystore>
+     <keystore-type>PKCS12</keystore-type>
+     <keystore-path-type>PATH</keystore-path-type>
+     <keystore-password>opendaylight</keystore-password>
+     <truststore>etc/truststore.p12</truststore>
+     <truststore-type>PKCS12</truststore-type>
+     <truststore-path-type>PATH</truststore-path-type>
+     <truststore-password>opendaylight</truststore-password>
+     <certificate-password>opendaylight</certificate-password>
+  </tls>
+</switch-connection-config>
diff --git a/csit/libraries/tls/keystore.p12 b/csit/libraries/tls/keystore.p12
new file mode 100644 (file)
index 0000000..db93c36
Binary files /dev/null and b/csit/libraries/tls/keystore.p12 differ
diff --git a/csit/libraries/tls/switch.crt b/csit/libraries/tls/switch.crt
new file mode 100644 (file)
index 0000000..bfba60d
--- /dev/null
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIEXzCCAkcCAQEwDQYJKoZIhvcNAQELBQAwdTELMAkGA1UEBhMCVVMxCzAJBgNV
+BAgMAkNBMRIwEAYDVQQHDAlQYWxvIEFsdG8xGDAWBgNVBAoMD0x1bWluYSBOZXR3
+b3JrczENMAsGA1UECwwESW50MjEcMBoGA1UEAwwTSW50MiBDQSBDZXJ0aWZpY2F0
+ZTAeFw0xODA1MjUwMzQzMDNaFw0yMzA1MjQwMzQzMDNaMHYxCzAJBgNVBAYTAlVT
+MQswCQYDVQQIDAJDQTESMBAGA1UEBwwJUGFsbyBBbHRvMRgwFgYDVQQKDA9MdW1p
+bmEgTmV0d29ya3MxDzANBgNVBAsMBlN3aXRjaDEbMBkGA1UEAwwSU3dpdGNoIENl
+cnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5R1xgvq2
+rpQBz9DdpuD2bDMyMWwkHQlZzLhlNWrTnNWtJITY/N7CjqlMdqizT9P7qSQHc66J
+6DE0Dcy+GGd5opoy8MwgDEUqc3Lmg+SLd9sJugzuw89My1pM4B5G26Vhmen1LGJE
+jP8hV6wIhCNAkwotPWC82I7OHKA9UgZQ89YVQUh13B2GPhNPzhXc7HsQRUnoYeQf
+THU4pBchEdQkuVgTDtHEPWdtUUDFDe53mMSq1JyJBU+wCNZF4/+KQy27IK0pDLik
+0stsC7wGz15+rtlhCDM3/HrF8GUaHWredGMyU6PgjyqwDvF3dGqAex5on2dn+teF
+AFixm/InrKyVfwIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQATsPT7c5eFMru9a1+u
+xf5QPQUQSdkN99Y/nodVricebc0K9fZ+ik/vQwwkWAy7JOpSvTvyrPM3rspNdIhg
++chUZwthFPgI4ZxxpSkz2w8mG/yq/+hehECjJg+13BQi/MDofUB5qc7HCzvyqTHv
+PL/QFiFgXAxQOdY5c8Vvo1fShRSeQGn+6k5UJyY70/7GfLZytZtCf7E2bUlkBE9Z
+IIS+yowuo/vl84OnbKvMdvllXuL9sDVWu1hEXlmIDqJaedZL8gExDuacdJBPz+KV
+a9PWLfLVE0kLQpBevJwa99iZdgLH+zlfxdRuw7+zURav1MVqfKPPxf2ee5q+fRX/
+67xnHPGF79eComRkDyLLvJgeHfSI738qNfiuuMamsuwVGM4HuZcJcX6LSVPCAWlu
+CewB+/ugRh5Bh9OAIA85Kgk5Ykgk/FEkUnrCmOqUb7ZipNQgcfLztGGN2Y9QcsHE
+/z90tFIlq6YblFevOaGazUjOp5ApJyg4oa8FDlseVnF36cJawr4/9hsChhpUw3wB
+Wilei7XfisYdwCgoF6oGacVmm2BKCJt2niPPk1EoYWxgKceGBmc9+VNiCpvYcSYf
+iaBsrTnjVJRycbntllssPnK/izLhmXl5rRp5h4ZPirBBnbJoza1DcoaxFYJxEe9R
+d2lGbP581ke1t4glkeChI0ao4g==
+-----END CERTIFICATE-----
diff --git a/csit/libraries/tls/switch.key b/csit/libraries/tls/switch.key
new file mode 100644 (file)
index 0000000..cd2a657
--- /dev/null
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEA5R1xgvq2rpQBz9DdpuD2bDMyMWwkHQlZzLhlNWrTnNWtJITY
+/N7CjqlMdqizT9P7qSQHc66J6DE0Dcy+GGd5opoy8MwgDEUqc3Lmg+SLd9sJugzu
+w89My1pM4B5G26Vhmen1LGJEjP8hV6wIhCNAkwotPWC82I7OHKA9UgZQ89YVQUh1
+3B2GPhNPzhXc7HsQRUnoYeQfTHU4pBchEdQkuVgTDtHEPWdtUUDFDe53mMSq1JyJ
+BU+wCNZF4/+KQy27IK0pDLik0stsC7wGz15+rtlhCDM3/HrF8GUaHWredGMyU6Pg
+jyqwDvF3dGqAex5on2dn+teFAFixm/InrKyVfwIDAQABAoIBAHtXU3FwqQHoueT3
+iyu4ddCf6wiCMBrVmttD9XBBVzRaL8C2J95RyallaL2EaiuycguHUt+q+aDfRCed
+rkSTB/9KRdwt957DaWwHUiN02MQoTd8z8SHGqo/ayAHrKrg6GwXx1kQTjtXcz0VU
+Xq1MEQpXcy1Us7Vdg4YTmY9byR7Kf4dqQWVTL5I9VyNmJnYUJBz5ZmHRyX89Zc2K
+pOYYUqO1ZwS/qcM2r6knPUyexVU9cgi/S/3F1RZBQos/aUSl6c+yrXHH7JXDSSHj
+wsDduw/uNKz/Nd3YCYGUD4uBT51KPfe4kRmkHOLjsBw6Yc0FLLLmr33TKKnffSWb
+RVSmuzECgYEA+BToRX1mqLgVLWNoosi6C4vpaa2cJzSoU+4WMBj1iQ5HqA3wNv9t
+5cMUc2GbM22dwqC3DhjoAnz2UnOhoxUCTFB2WI2DeLiIXQ0LtpT+s7AeCjJt+F1W
+Q2dnq+4gKWnPK6uodbrISxrMwQP6hi/lzG4t7tI/hDjc5a5v6RG7HkcCgYEA7G2O
+55Z5Aifw0R89qqod5O1n/OKPEZNxok3gW8hlzep+/MLwStI/mhajVEO6pK5SIvBa
+2S3EwmC4fn1kRwDIKOeAnyrGG9vNj/vq7iETfw5O/N21nN5WCXpx3Borqj9LWQUH
+kLCpT5s+4L4Sx/LV6meMMG18LDEbxwPGRTG80wkCgYEAn5NzRR/A5U5j8Oo86FkN
+s1ewMNYH2AA7NqGzjATCDAMvfJ5aokXzvxOZGA708kPUctlGZr8GnnMbTzYqBukA
+rW4kchm1M/YfYRt/KVb170eeSxjdPCFt17WwLhvifEEfjgvBNNmM9SKsCowwnhg5
+TSKiUTjUuoyJKwTl35oULwkCgYA6PYLGabrFXTFlUlzOfbl/ezvyf5zep4OGh8iM
+04DAiNNfUGYBCGnCe3EggM6pYoe5M5wtg6jEeS75ecoJ85da/CwjCVZj5nFs1pG4
+t00mL1Al2jeyvNJU42TI42l+NrlI5IRIkDwk8Ak9M5VMy/UGGRvfkhjUigRdsgBV
+azsogQKBgQDpyW2pjNzIsP3/taQn7E4O621ESlTLdvF9DoBH6lo6iYQsup3hhaDl
+EhXubxZAkZjigQmpriU2vwo7NoyXduDIPPZ+zkGUlULyc8UGcFL0givy6wJq9JIC
+ARzWxzo5tR20Is5njvgZYT56wTMx3feIa2nzPCqHD4htzdW6oFfYFA==
+-----END RSA PRIVATE KEY-----
diff --git a/csit/libraries/tls/truststore.p12 b/csit/libraries/tls/truststore.p12
new file mode 100644 (file)
index 0000000..461bb56
Binary files /dev/null and b/csit/libraries/tls/truststore.p12 differ
diff --git a/csit/scripts/set_openflow_tls.sh b/csit/scripts/set_openflow_tls.sh
new file mode 100644 (file)
index 0000000..266c190
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+for i in `seq 1 ${NUM_ODL_SYSTEM}`
+do
+        CONTROLLERIP=ODL_SYSTEM_${i}_IP
+        echo "Set OpenFlow TLS on ${!CONTROLLERIP}"
+        ssh ${!CONTROLLERIP} "mkdir -p /tmp/${BUNDLEFOLDER}/etc/opendaylight/datastore/initial/config/"
+        scp ${WORKSPACE}/test/csit/libraries/tls/default-openflow-connection-config.xml ${!CONTROLLERIP}:/tmp/${BUNDLEFOLDER}/etc/opendaylight/datastore/initial/config/
+        scp ${WORKSPACE}/test/csit/libraries/tls/keystore.p12 ${!CONTROLLERIP}:/tmp/${BUNDLEFOLDER}/etc
+        scp ${WORKSPACE}/test/csit/libraries/tls/truststore.p12 ${!CONTROLLERIP}:/tmp/${BUNDLEFOLDER}/etc
+done
index a9c48e9091557e3cbbd4c527b964550e48b3b40d..db7f3bd019cca838786343748c9c3d597c99f1c8 100644 (file)
@@ -92,7 +92,7 @@ Setup DIDM Environment
     Wait For Karaf Log    ${message}
     Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
     Log    Start device
-    ${mininet_topo_opt}=    Set Variable    --topo linear,1 --switch ovsk,protocols=OpenFlow13
+    ${mininet_topo_opt}=    Set Variable    --topo linear,1
     ${mininet_conn_id}=    Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_IP}    ${mininet_topo_opt}
     Wait Until Keyword Succeeds    11s    1s    Check DIDM Registered With Device
     Set Suite Variable    ${mininet_conn_id}
index b2f6893976e3cd8ce8fc16c5db07f0ef855db619..1a86a7cf54e7558760875bdd019a67bfbbd5ac30 100644 (file)
@@ -47,7 +47,7 @@ Get Inventory Follower and Leader Before Cluster Restart
 
 Start Mininet Connect To Follower Node1
     [Documentation]    Start mininet with connection to Follower Node1.
-    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_${Follower_Node_1}_IP}    --topo linear,${switch_count} --switch ovsk,protocols=OpenFlow13
+    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_${Follower_Node_1}_IP}    --topo linear,${switch_count}
     Set Suite Variable    ${mininet_conn_id}
 
 Add Bulk Flow From Follower
@@ -69,7 +69,7 @@ Stop Mininet Connected To Follower Node1 and Exit
 
 Start Mininet Reconnect To Follower Node1
     [Documentation]    Start mininet with reconnection to follower node1.
-    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_${Follower_Node_1}_IP}    --topo linear,${switch_count} --switch ovsk,protocols=OpenFlow13
+    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_${Follower_Node_1}_IP}    --topo linear,${switch_count}
     Set Suite Variable    ${mininet_conn_id}
 
 Verify Flows In Switch Reconnected To Follower Node1
@@ -83,7 +83,7 @@ Stop Mininet Connected To Follower Node1
 
 Start Mininet Connect To Follower Node2
     [Documentation]    Start mininet with connection to follower node2.
-    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_${Follower_Node_2}_IP}    --topo linear,${switch_count} --switch ovsk,protocols=OpenFlow13
+    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_${Follower_Node_2}_IP}    --topo linear,${switch_count}
     Set Suite Variable    ${mininet_conn_id}
 
 Verify Flows In Switch Connected To Follower Node2
@@ -97,7 +97,7 @@ Stop Mininet Connected To Follower Node2
 
 Start Mininet Connect To Inventory Leader
     [Documentation]    Start mininet with connection to inventroy leader.
-    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_${Inventory_Leader}_IP}    --topo linear,${switch_count} --switch ovsk,protocols=OpenFlow13
+    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_${Inventory_Leader}_IP}    --topo linear,${switch_count}
     Set Suite Variable    ${mininet_conn_id}
 
 Verify Flows In Switch Connected To Leader
index aa2e36011ca0491bc93897213daeda19931f5f9f..9ae5d195b3fb06e44f9d82e40eb687f2f44082a4 100644 (file)
@@ -65,7 +65,7 @@ Check Shard Status For Leader After PreLeader Shutdown
 
 Start Mininet Connect To Follower Node1
     [Documentation]    Start mininet with connection to Follower Node1
-    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_${Follower_Node_1}_IP}    --topo linear,${switch_count} --switch ovsk,protocols=OpenFlow13
+    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_${Follower_Node_1}_IP}    --topo linear,${switch_count}
     Set Suite Variable    ${mininet_conn_id}
 
 Add Bulk Flow From Follower
@@ -136,7 +136,7 @@ Check Shards Status After Follower Shutdown
 
 Start Mininet Connect To Follower Node
     [Documentation]    Start mininet with connection to Follower Node1.
-    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_${Follower_Node_1}_IP}    --topo linear,${switch_count} --switch ovsk,protocols=OpenFlow13
+    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_${Follower_Node_1}_IP}    --topo linear,${switch_count}
     Set Suite Variable    ${mininet_conn_id}
 
 Add Bulk Flow From Follower Node1
index 85aa8edd72aa9ec5362ae65cb7d154561beb57e9..eddceec684bfa08f3748d0f79a7fb16d8b23f1ea 100644 (file)
@@ -11,6 +11,7 @@ Resource          ../../../libraries/ClusterOpenFlow.robot
 Variables         ../../../variables/Variables.py
 
 *** Variables ***
+${enable_openflow_tls}    True
 ${operation_timeout}    250s
 ${oper_ds_timeout}    400s
 ${mininet_timeout}    120s
@@ -37,10 +38,14 @@ Initialize Variables
     BuiltIn.Set Suite Variable    ${temp_json_config_del}
 
 Start Mininet And verify Switches
-    [Documentation]    Start mininet.
-    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_IP}    --topo linear,${switch_count} --switch ovsk,protocols=OpenFlow13
+    [Documentation]    Start mininet, controller OF port 6653 should be enabled for TLS while port 6633 should be for TCP.
+    ${ofport}    Set Variable If    '${enable_openflow_tls}' == 'True'    6653    6633
+    ${protocol}    Set Variable If    '${enable_openflow_tls}' == 'True'    ssl    tcp
+    ${mininet_conn_id}=    MininetKeywords.Start Mininet Multiple Controllers    options=--topo linear,${switch_count}    ofport=${ofport}    protocol=${protocol}
     BuiltIn.Set Suite Variable    ${mininet_conn_id}
     BuiltIn.Wait Until Keyword Succeeds    ${mininet_timeout}    2s    ClusterOpenFlow.Verify_Switch_Connections_Running_On_Member    ${switch_count}    1
+    Comment    Fail the entire suite if switches cannot connect
+    [Teardown]    Run Keyword If Test Failed    Fatal Error
 
 Add Bulk Flow
     [Documentation]    100K Flows (1K Flows per DPN) in 100 DPN added and verify it gets applied.
index ca7e11874385b3105caa246ef1848e8bbabccac5..d5f6bb20b39786080925db7e075130210ddd6934 100644 (file)
@@ -52,7 +52,7 @@ Get Inventory Config Shard Follower And Leader
 
 Start Mininet Connect To Follower Node1
     [Documentation]    Start mininet with connection to follower node1.
-    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_${Follower_Node_1}_IP}    --topo linear,${switch_count} --switch ovsk,protocols=OpenFlow13
+    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_${Follower_Node_1}_IP}    --topo linear,${switch_count}
     BuiltIn.Set Suite Variable    ${mininet_conn_id}
     BuiltIn.Wait Until Keyword Succeeds    ${mininet_timeout}    2s    ClusterOpenFlow.Verify_Switch_Connections_Running_On_Member    ${switch_count}    ${Inventory_Leader}
 
index bc3e5bdb9b36771c14e2b1191152d9e04a70be5d..bd4f339020704ee62a7612b8e63e3bdd8ecbeacd 100644 (file)
@@ -35,7 +35,7 @@ Initialize Variables
 
 Start Mininet And verify Switches
     [Documentation]    Start mininet.
-    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_IP}    --topo linear,${switch_count} --switch ovsk,protocols=OpenFlow13
+    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_IP}    --topo linear,${switch_count}
     BuiltIn.Set Suite Variable    ${mininet_conn_id}
     BuiltIn.Wait Until Keyword Succeeds    ${mininet_timeout}    2s    ClusterOpenFlow.Verify_Switch_Connections_Running_On_Member    ${switch_count}    1
 
index 8d081d63337a57adf0609e281963eb5b3cb57f25..998b14fe9b96a2827319b758d8030c93d667fffe 100644 (file)
@@ -50,7 +50,7 @@ Get Inventory Config Shard Follower And Leader
 
 Start Mininet Connect To Follower Node1
     [Documentation]    Start mininet with connection to follower node1.
-    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_${Follower_Node_1}_IP}    --topo linear,${switch_count} --switch ovsk,protocols=OpenFlow13
+    ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller    ${TOOLS_SYSTEM_IP}    ${ODL_SYSTEM_${Follower_Node_1}_IP}    --topo linear,${switch_count}
     BuiltIn.Set Suite Variable    ${mininet_conn_id}
     BuiltIn.Wait Until Keyword Succeeds    ${mininet_timeout}    2s    ClusterOpenFlow.Verify_Switch_Connections_Running_On_Member    ${switch_count}    ${Inventory_Leader}
 
index 61a1f6cb11dabcc9fd8c7c212828c05fe12d38e6..ea2faa7f82709c16251d295070b5b4ad6aff2bfa 100644 (file)
@@ -13,8 +13,8 @@ Resource          ../../../variables/Variables.robot
 
 *** Variables ***
 @{NODE_LIST}      ${OVSDB_NODE_PORT}    ovsdb://${TOOLS_SYSTEM_IP}:${OVSDB_NODE_PORT}    ${TOOLS_SYSTEM_IP}    ${OVSDB_NODE_PORT}    ovsdb://${TOOLS_SYSTEM_2_IP}:${OVSDB_NODE_PORT}    ${TOOLS_SYSTEM_2_IP}
-${MN_OPTS_S1}     --switch=ovsk,protocols=OpenFlow13 --custom ovsdb.py --topo host,1
-${MN_OPTS_S2}     --switch=ovsk,protocols=OpenFlow13 --custom ovsdb.py --topo host,2
+${MN_OPTS_S1}     --custom ovsdb.py --topo host,1
+${MN_OPTS_S2}     --custom ovsdb.py --topo host,2
 
 *** Test Cases ***
 Make the OVS instance to listen for connection
index cdee4244e20d41e5a0837489f9f3c7012b0b0757..e8df6d938b534a00e0940f87ffb4d29ead81bf36 100644 (file)
@@ -13,7 +13,7 @@ Resource          ../../../variables/Variables.robot
 
 *** Variables ***
 ${UniMgr_variables_DIR}    ${CURDIR}/../../../variables/unimgr
-${options}        --topo single,2 --switch ovsk,protocols=OpenFlow13
+${options}        --topo single,2
 
 *** Test Cases ***
 Check no connectivity before creating service
index 1d0857ead1b140dc836ede6aab59c66aa6792df5..a1fb1cf46347b10619a1588ed8ea397b43df29a8 100644 (file)
@@ -13,7 +13,7 @@ Resource          ../../../variables/Variables.robot
 
 *** Variables ***
 ${UniMgr_variables_DIR}    ${CURDIR}/../../../variables/unimgr
-${options}        --topo single,5 --switch ovsk,protocols=OpenFlow13
+${options}        --topo single,5
 
 *** Test Cases ***
 Check no connectivity before creating service