Modify flowfilter and pathpolicy robot files for VTN Manager RESTCONF 07/31707/15
authorKarthik.S <siva-karthik@hcl.com>
Mon, 21 Dec 2015 20:38:40 +0000 (02:08 +0530)
committerGerrit Code Review <gerrit@opendaylight.org>
Sat, 9 Jan 2016 01:38:10 +0000 (01:38 +0000)
    * Removed Force tags "exclude" in 010__vtn_manager_flowfilter.robot and 010__vtn_manager_pathpolicy.robot(OF10 and OF13)files and
    * Renamed pathpolicy robot file as 020_vtn_pathmap_pathpolicy.robot
    * Modify test case to work for RESTCONF feature, earlier test was written for RESTAPI spec.
    * Modify VtnMaKeyword.robot file for flowfilter and pathmap, pathpolicy functioanlities.

Change-Id: I26ceea5e2bee7dafd5701c1e7c321a4cd8f5dddf
Signed-off-by: Karthik.S <siva-karthik@hcl.com>
csit/libraries/VtnMaKeywords.robot
csit/suites/vtn/VTN_Mgr_OF10/010__vtn_manager_flowfilter.robot
csit/suites/vtn/VTN_Mgr_OF10/010__vtn_manager_pathpolicy.robot [deleted file]
csit/suites/vtn/VTN_Mgr_OF10/020__vtn_pathmap_pathpolicy.robot [new file with mode: 0644]
csit/suites/vtn/VTN_Mgr_OF13/010__vtn_manager_flowfilter.robot
csit/suites/vtn/VTN_Mgr_OF13/010__vtn_manager_pathpolicy.robot [deleted file]
csit/suites/vtn/VTN_Mgr_OF13/020__vtn_pathmap_pathpolicy.robot [new file with mode: 0644]

index e5fdc0c61e5c27f3a359befb1cbd6af9d331a126..b3d8b4922f4e6b8defdef3e405b7a36c22700781 100644 (file)
@@ -23,10 +23,15 @@ ${vlanmap_bridge1}    200
 ${vlanmap_bridge2}    300
 @{VLANMAP_BRIDGE1_DATAFLOW}    "reason":"VLANMAPPED"    "virtual-node-path":{"bridge-name":"vBridge1_vlan","tenant-name":"Tenant1","vlan-map-id":"ANY.200"}
 @{VLANMAP_BRIDGE2_DATAFLOW}    "reason":"VLANMAPPED"    "virtual-node-path":{"bridge-name":"vBridge2_vlan","tenant-name":"Tenant1","vlan-map-id":"ANY.300"}
-${in_port}        1
 ${out_before_pathpolicy}    output:2
 ${out_after_pathpolicy}    output:3
-${flowcond_restconfigdata}    {"input":{"operation":"SET","present":"false","name":"cond_1","vtn-flow-match":[{"vtn-ether-match":{"destination-address":"ba:bd:0f:e3:a8:c8","ether-type":"2048","source-address":"ca:9e:58:0c:1e:f0","vlan-id": "1"},"vtn-inet-match":{"source-network":"10.0.0.1/32","protocol":1,"destination-network":"10.0.0.2/32"},"index":"1"}]}}
+${pathpolicy_topo_13}    sudo mn --controller=remote,ip=${CONTROLLER} --custom topo-3sw-2host_multipath.py --topo pathpolicytopo --switch ovsk,protocols=OpenFlow13
+${pathpolicy_topo_10}    sudo mn --controller=remote,ip=${CONTROLLER} --custom topo-3sw-2host_multipath.py --topo pathpolicytopo --switch ovsk,protocols=OpenFlow10
+@{PATHMAP_ATTR}    "index":"1"    "condition":"flowcond_path"    "policy":"1"
+${policy_id}      1
+${in_port}        1
+@{PATHPOLICY_ATTR}    "id":1    "port-desc":"openflow:4,2,s4-eth2"
+${custom}         ${CURDIR}/${CREATE_PATHPOLICY_TOPOLOGY_FILE_PATH}
 
 *** Keywords ***
 Start SuiteVtnMa
@@ -104,6 +109,21 @@ Verify Data Flows
     ...    ELSE IF    '${vBridge_name}' == 'vBridge1_vlan'    DataFlowsForBridge    ${resp}    @{VLANMAP_BRIDGE1_DATAFLOW}
     ...    ELSE    DataFlowsForBridge    ${resp}    @{VLANMAP_BRIDGE2_DATAFLOW}
 
+Start PathSuiteVtnMaTest
+    [Documentation]    Start VTN Manager Test Suite and Mininet
+    Start SuiteVtnMaTest
+    Start Mininet    ${MININET}    ${pathpolicy_topo_13}    ${custom}
+
+Start PathSuiteVtnMaTestOF10
+    [Documentation]    Start VTN Manager Test Suite and Mininet in Open Flow 10 Specification
+    Start SuiteVtnMaTest
+    Start Mininet    ${MININET}    ${pathpolicy_topo_10}    ${custom}
+
+Stop PathSuiteVtnMaTest
+    [Documentation]    Cleanup/Shutdown work at the completion of all tests.
+    Delete All Sessions
+    Stop Mininet    ${mininet_conn_id}
+
 DataFlowsForBridge
     [Arguments]    ${resp}    @{BRIDGE_DATAFLOW}
     [Documentation]    Verify whether the required attributes exists.
@@ -135,10 +155,16 @@ Get a pathpolicy
     : FOR    ${pathpolicyElement}    IN    @{PATHPOLICY_ATTR}
     \    should Contain    ${resp.content}    ${pathpolicyElement}
 
+Delete a pathmap
+    [Arguments]    ${tenant_path}
+    [Documentation]    Remove a pathmap for a vtn
+    ${resp}=    RequestsLibrary.Post Request    session    restconf/operations/vtn-path-map:remove-path-map    data={"input":{"tenant-name":"${tenant_path}","map-index":["${policy_id}"]}}
+    Should Be Equal As Strings    ${resp.status_code}    200
+
 Delete a pathpolicy
-    [Arguments]    ${path_id}
+    [Arguments]   ${policy_id}
     [Documentation]    Delete a pathpolicy for a vtn
-    ${resp}=    RequestsLibrary.Post Request    session    restconf/operations/vtn-path-policy:remove-path-policy    data={"input": {"id": "${path_id}"}}
+    ${resp}=    RequestsLibrary.Post Request    session    restconf/operations/vtn-path-policy:remove-path-policy    data={"input":{"id":"${policy_id}"}}
     Should Be Equal As Strings    ${resp.status_code}    200
 
 Verify flowEntryPathPolicy
@@ -249,19 +275,19 @@ Verify macaddress
 Add a vtn flowfilter
     [Arguments]    ${vtn_name}    ${vtnflowfilter_data}
     [Documentation]    Create a flowfilter for a vtn
-    ${resp}=    RequestsLibrary.Post Request    session    restconf/operations/vtn-flow-filter:set-flow-filter    data=${vtnflowfilter_data}
+    ${resp}=    RequestsLibrary.Post Request    session    restconf/operations/vtn-flow-filter:set-flow-filter   data={"input": {"tenant-name": "${vtn_name}",${vtnflowfilter_data}}}
     Should Be Equal As Strings    ${resp.status_code}    200
 
 Add a vbr flowfilter
     [Arguments]    ${vtn_name}    ${vBridge_name}    ${vbrflowfilter_data}
     [Documentation]    Create a flowfilter for a vbr
-    ${resp}=    RequestsLibrary.Post Request    session    restconf/operations/vtn-flow-filter:set-flow-filter    data=${vbrflowfilter_data}
+    ${resp}=    RequestsLibrary.Post Request    session    restconf/operations/vtn-flow-filter:set-flow-filter    data={"input": {"tenant-name": "${vtn_name}", "bridge-name": "${vBridge_name}", ${vbrflowfilter_data}}}
     Should Be Equal As Strings    ${resp.status_code}    200
 
 Add a vbrif flowfilter
     [Arguments]    ${vtn_name}    ${vBridge_name}    ${interface_name}    ${vbrif_flowfilter_data}
     [Documentation]    Create a flowfilter for a vbrif
-    ${resp}=    RequestsLibrary.Post Request    session    restconf/operations/vtn-flow-filter:set-flow-filter    data=${vbrif_flowfilter_data}
+    ${resp}=    RequestsLibrary.Post Request    session     restconf/operations/vtn-flow-filter:set-flow-filter    data={"input": {"tenant-name": ${vtn_name}, "bridge-name": "${vBridge_name}","interface-name":"${interface_name}",${vbrif_flowfilter_data}}}
     Should Be Equal As Strings    ${resp.status_code}    200
 
 Verify Flow Entry for Inet Flowfilter
@@ -294,8 +320,8 @@ Get flowconditions
 
 Get flowcondition
     [Arguments]    ${flowcond_name}    ${retrieve}
-    [Documentation]    Retrieve the flowcondition by name and to check the removed flowcondition added "retrieve" argument to differentiate the status code, since
-    ...    after removing flowcondition name the status will be different compare to status code when the flowcondition name is present.
+    [Documentation]    Retrieve the flowcondition by name and to check the removed flowcondition we added "retrieve" argument to differentiate the status code,
+    ...    since after removing flowcondition name the status will be different compare to status code when the flowcondition name is present.
     ${resp}=    RequestsLibrary.Get Request    session    restconf/operational/vtn-flow-condition:vtn-flow-conditions/vtn-flow-condition/${flowcond_name}
     Run Keyword If    '${retrieve}' == 'retrieve'    Should Be Equal As Strings    ${resp.status_code}    200
     ...    ELSE    Should Not Be Equal As Strings    ${resp.status_code}    200
@@ -303,5 +329,5 @@ Get flowcondition
 Remove flowcondition
     [Arguments]    ${flowcond_name}
     [Documentation]    Remove the flowcondition by name
-    ${resp}=    RequestsLibrary.Post Request    session    restconf/operations/vtn-flow-condition:remove-flow-condition    {"input": {"name": "${flowcond_name}"}}
+    ${resp}=    RequestsLibrary.Post Request    session    restconf/operations/vtn-flow-condition:remove-flow-condition    data={"input":{"name":"${flowcond_name}"}}
     Should Be Equal As Strings    ${resp.status_code}    200
index 65d33bfb715e21313bdbbb6fad1738134c232df1..86c0225ab7eee23fdbf1b521a6205d22c60d0333 100644 (file)
@@ -2,19 +2,20 @@
 Documentation     Test suite for VTN Manager using OF10
 Suite Setup       Start SuiteVtnMaTest
 Suite Teardown    Stop SuiteVtnMaTest
-Force Tags        exclude
 Resource          ../../../libraries/VtnMaKeywords.robot
 
 *** Variables ***
-${flowfilterInetdata}    {"index":1,"condition":"cond1","filterType":{"pass":{}},"actions":[{"inet4src":{"address":"10.0.0.1"}},{"inet4dst":{"address":"10.0.0.3"}}]}
-${flowfilterInetdropdata}    {"index":1,"condition":"cond1","filterType":{"drop":{}},"actions":[{"inet4src":{"address":"10.0.0.1"}},{"inet4dst":{"address":"10.0.0.3"}}]}
-${flowfilterIcmpCodedata}    {"index":2,"condition":"cond1","filterType":{"pass":{}},"actions":[{"icmpcode":{"code":9}}]}
-${flowfilterTpsrcTpdstdata}    {"index":3,"condition":"cond1","filterType":{"pass":{}},"actions":[{"tpsrc":{"port":"5"}},{"tpdst":{"port":"10"}}]}
-${flowfilterDscpdata}    {"index":6,"condition":"cond1","filterType":{"pass":{}},"actions":[{"dscp": {"dscp": 10}}]}
-${macmap_data}    {"machost": [{"address": "0e:d5:e3:40:a3:f0", "vlan": "0"},{"address": "9a:dd:b0:8a:de:2f", "vlan": "0"}]}
-${flowfiltervlanpcp}    {"index":7,"condition":"cond1","filterType":{"pass":{}},"actions":[{"inet4src":{"address":"10.0.0.1"}},{"inet4dst":{"address":"10.0.0.3"}},{"icmpcode":{"code":1}},{"vlanpcp":{"priority":3}}]}
-${vtn_flowfilterInetdata}    {"index":8,"condition":"cond1","filterType":{"pass":{}},"actions":[{"inet4src":{"address":"10.0.0.1"}},{"inet4dst":{"address":"10.0.0.3"}}]}
-${vbr_flowfilterInetdata}    {"index":9,"condition":"cond1","filterType":{"pass":{}},"actions":[{"inet4src":{"address":"10.0.0.1"}},{"inet4dst":{"address":"10.0.0.3"}}]}
+${flowfilterInetdata}    "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.3/32"}}],"index": "1"}]
+
+${flowfilterInetdropdata}    "vtn-flow-filter":[{"condition":"cond_1","vtn-drop-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.3/32"}}],"index": "1"}]
+
+${flowfilterIcmpCodedata}    "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action":[{ "order":"1","vtn-set-icmp-code-action":{"code":"9"}}],"index":"2"}]
+
+${flowfilterTpsrcTpdstdata}    "vtn-flow-filter": [{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-port-src-action": {"port": "5"}},{"order": "2","vtn-set-port-dst-action": {"port": "10"}}],"index": "3"}]
+
+${flowfilterDscpdata}   "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-inet-dscp-action": {"dscp":"10"}}],"index":"6"}]
+
+${flowfiltervlanpcp}   "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.1/32"}},{"order":"2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.3/32"}},{"order":"3","vtn-set-icmp-code-action":{"code":"1"}},{"order":"4","vtn-set-vlan-pcp-action":{"vlan-pcp":"3"}}],"index":"3"}]
 
 *** Test Cases ***
 Check if switch1 detected
@@ -31,104 +32,79 @@ Check if switch3 detected
 
 Add a vtn Tenant1
     [Documentation]    Add a vtn Tenant1
-    Add a vtn    Tenant1    {"idleTimeout": "200","hardTimeout": "600","description": "Virtual Tenant1 for Hackfest network"}
+    Add a vtn    Tenant1
 
 Add a vBridge vBridge1
     [Documentation]    Add a vBridge vBridge1 in vtn Tenant1
-    Add a vBridge    Tenant1    vBridge1    {"ageInterval": "300","description": "vBridge1 for Tenant1"}
+    Add a vBridge    Tenant1    vBridge1
 
 Add a interface If1
     [Documentation]    Add a interface if1 into vBridge vBridge1
-    Add a interface    Tenant1    vBridge1    if1    {"enabled": "true","description": "Interface1 for vBridge1 for Tenant1"}
+    Add a interface    Tenant1    vBridge1    if1
 
 Add a interface if2
     [Documentation]    Add a interface if2 into vBridge vBridge1
-    Add a interface    Tenant1    vBridge1    if2    {"enabled": "true","description": "Interface2 for vBridge1 for Tenant1"}
+    Add a interface    Tenant1    vBridge1    if2
 
 Add a portmap for interface if1
     [Documentation]    Create a portmap on Interface if1 of vBridge1
-    ${node}    Create Dictionary    type=OF    id=00:00:00:00:00:00:00:02
-    ${port}    Create Dictionary    name=s2-eth1
-    ${portmap_data}    Create Dictionary    node=${node}    port=${port}
-    Add a portmap    Tenant1    vBridge1    if1    ${portmap_data}
+    Add a portmap    Tenant1    vBridge1    if1    openflow:2    s2-eth1
 
 Add a portmap for interface if2
     [Documentation]    Create a portmap on Interface if2 of vBridge1
-    ${node}    Create Dictionary    type=OF    id=00:00:00:00:00:00:00:03
-    ${port}    Create Dictionary    name=s3-eth1
-    ${portmap_data}    Create Dictionary    node=${node}    port=${port}
-    Add a portmap    Tenant1    vBridge1    if2    ${portmap_data}
+    Add a portmap    Tenant1    vBridge1    if2    openflow:3    s3-eth1
 
 Ping h1 to h3
     [Documentation]    Ping h1 to h3, verify no packet loss
-    Mininet Ping Should Succeed    h1    h3
+    Wait_Until_Keyword_Succeeds    20s    1s    Mininet Ping Should Succeed    h1    h3
 
 Add a vBridge vBridge2
     [Documentation]    Add a vBridge vBridge2 in vtn Tenant1
-    Add a vBridge    Tenant1    vBridge2    {}
+    Add a vBridge    Tenant1    vBridge2
 
 Add a interface If3
     [Documentation]    Add a interface if3 into vBrdige vBridge1
-    Add a interface    Tenant1    vBridge1    if3    {}
+    Add a interface    Tenant1    vBridge1    if3
 
 Add a interface if4
     [Documentation]    Add a interface if4 into vBrdige vBridge1
-    Add a interface    Tenant1    vBridge1    if4    {}
+    Add a interface    Tenant1    vBridge1    if4
 
 Add a portmap for interface if3
     [Documentation]    Create a portmap on Interface if3 of vBridge1
-    ${node}    Create Dictionary    type=OF    id=00:00:00:00:00:00:00:02
-    ${port}    Create Dictionary    name=s2-eth2
-    ${portmap_data}    Create Dictionary    node=${node}    port=${port}
-    Add a portmap    Tenant1    vBridge1    if3    ${portmap_data}
+    Add a portmap    Tenant1    vBridge1    if3    openflow:2    s2-eth2
 
 Add a portmap for interface if4
     [Documentation]    Create a portmap on Interface if4 of vBridge1
-    ${node}    Create Dictionary    type=OF    id=00:00:00:00:00:00:00:03
-    ${port}    Create Dictionary    name=s3-eth2
-    ${portmap_data}    Create Dictionary    node=${node}    port=${port}
-    Add a portmap    Tenant1    vBridge1    if4    ${portmap_data}
+    Add a portmap    Tenant1    vBridge1    if4    openflow:3    s3-eth2
 
 Ping h2 to h4
     [Documentation]    Ping h2 to h4, verify no packet loss
-    Mininet Ping Should Succeed    h2    h4
-
-Add a macmap
-    [Documentation]    Create a macmap on vBridge vBridge1
-    Add a macmap    Tenant1    vBridge1    ${macmap_data}
+    Wait_Until_Keyword_Succeeds    20s    1s    Mininet Ping Should Succeed    h2    h4
 
-Get flow
-    [Documentation]    Get flow of a vtn Tenant1
-    Get flow    Tenant1
-
-Add a flowcondition cond1
-    [Documentation]    Create a flowcondition cond1
-    ${inet4}=    Create Dictionary    src=10.0.0.1    dst=10.0.0.3
-    ${inetMatch}=    Create Dictionary    inet4=${inet4}
-    ${matchElement}=    Create Dictionary    index=1    inetMatch=${inetMatch}
-    @{matchlist}    Create List    ${matchElement}
-    ${flowcond_data}=    Create Dictionary    name=cond1    match=${matchlist}
-    Add a flowcondition    cond1    ${flowcond_data}
+Add a flowcondition
+    [Documentation]    Create a flowcondition cond_1 using restconfig api
+    Add a flowcondition    cond_1
 
 Add a flowfilter with inet4src and inet4dst
     [Documentation]    Create a flowfilter with inet4 and Verify ping
-    Add a flowfilter    Tenant1    vBridge1    if1    ${flowfilterInetdata}    ${index}
-    Mininet Ping Should Succeed    h1    h3
+    Add a vbrif flowfilter    Tenant1    vBridge1    if1    ${flowfilterInetdata}
+    Wait_Until_Keyword_Succeeds    20s   1s    Mininet Ping Should Succeed    h1    h3
 
 Add a flowfilter with Icmp code
     [Documentation]    Create a flowfilter with icmp code and Verify ping
-    Update a flowfilter    Tenant1    vBridge1    if1    ${flowfilterIcmpCodedata}    ${index}
-    Mininet Ping Should Succeed    h1    h3
+    Add a vbrif flowfilter    Tenant1    vBridge1    if1    ${flowfilterIcmpCodedata}
+    Wait_Until_Keyword_Succeeds    20s   1s    Mininet Ping Should Succeed    h1    h3
 
 Add a flowfilter with tpsrc and tpdst
     [Documentation]    Create a flowfilter with tpsrc and tpdst and Verify ping
-    Update a flowfilter    Tenant1    vBridge1    if1    ${flowfilterTpsrcTpdstdata}    ${index}
-    Mininet Ping Should Succeed    h1    h3
+    Add a vbrif flowfilter    Tenant1    vBridge1    if1    ${flowfilterTpsrcTpdstdata}
+    Wait_Until_Keyword_Succeeds    20s   1s    Mininet Ping Should Succeed    h1    h3
 
 Add a flowfilter with dscp
     [Documentation]    Create a flowfilter with dscp and Verify ping
-    Update a flowfilter    Tenant1    vBridge1    if1    ${flowfilterDscpdata}    ${index}
-    Mininet Ping Should Succeed    h1    h3
+    Add a vbrif flowfilter    Tenant1    vBridge1    if1    ${flowfilterDscpdata}
+    Wait_Until_Keyword_Succeeds    20s   1s    Mininet Ping Should Succeed    h1    h3
 
 Verify Flow Entry for Inet Flowfilter
     [Documentation]    Verify Flow Entry for Inet Flowfilter
@@ -136,32 +112,29 @@ Verify Flow Entry for Inet Flowfilter
 
 Add a flowfilter with vlanpcp
     [Documentation]    Create a flowfilter with vlanpcp and Verify ping
-    Update a flowfilter    Tenant1    vBridge1    if1    ${flowfiltervlanpcp}    ${index}
-    Mininet Ping Should Succeed    h1    h3
+    Add a vbrif flowfilter    Tenant1    vBridge1    if1    ${flowfiltervlanpcp}
+    Wait_Until_Keyword_Succeeds    20s   1s    Mininet Ping Should Succeed    h1    h3
 
 Add a flowfilter_vtn with inet4src and inet4dst
     [Documentation]    Create a vtn_flowfilter with inet4 and Verify ping
-    Add a flowfilter_vtn    Tenant1    ${vtn_flowfilterInetdata}    ${index}
-    Mininet Ping Should Succeed    h1    h3
+    Add a vtn flowfilter    Tenant1    ${flowfilterInetdata}
+    Wait_Until_Keyword_Succeeds    20s   1s    Mininet Ping Should Succeed    h1    h3
 
 Add a flowfilter_vbr with inet4src and inet4dst
     [Documentation]    Create a vbr_flowfilter with inet4 and Verify ping
-    Add a flowfilter_vbr    Tenant1    vBridge1    ${vbr_flowfilterInetdata}    ${index}
-    Mininet Ping Should Succeed    h1    h3
+    Add a vbr flowfilter    Tenant1    vBridge1    ${flowfilterInetdata}
+    Wait_Until_Keyword_Succeeds    20s   1s    Mininet Ping Should Succeed    h1    h3
 
 Add a flowfilter with inet4 for drop
     [Documentation]    Create a flowfilter with inet4 for drop action and Verify no pinging
-    Add a flowfilter for drop    Tenant1    vBridge1    if1    ${flowfilterInetdropdata}    ${index}
-    Mininet Ping Should Not Succeed    h1    h3
-
-Verify Removed Flow Entry For Inet After Drop Action
-    [Documentation]    Verify no flows between the hosts after drop
-    Verify Removed Flow Entry for Inet Drop Flowfilter
+    [Tags]    exclude
+    Add a vbrif flowfilter    Tenant1    vBridge1    if1    ${flowfilterInetdropdata}
+    Wait_Until_Keyword_Succeeds    20s   1s    Mininet Ping Should Not Succeed    h1    h3
 
 Delete a flowcondition
     [Documentation]    Delete a flowcondition
-    Delete a flowcondition    cond1
+    Remove flowcondition    cond_1
 
 Delete a vtn Tenant1
-    [Documentation]    Delete vtn Tenant1
+    [Documentation]    Delete vtn Tenant1
     Delete a vtn    Tenant1
diff --git a/csit/suites/vtn/VTN_Mgr_OF10/010__vtn_manager_pathpolicy.robot b/csit/suites/vtn/VTN_Mgr_OF10/010__vtn_manager_pathpolicy.robot
deleted file mode 100644 (file)
index b30a4e5..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-*** Settings ***
-Documentation     Test suite for VTN Manager using OF10
-Suite Setup       Start PathSuiteVtnMaTestOF10
-Suite Teardown    Stop PathSuiteVtnMaTest
-Force Tags        exclude
-Resource          ../../../libraries/VtnMaKeywords.robot
-
-*** Variables ***
-${pathmapdata}    {"index": 1,"condition":"flowcond_path","policy":1,"idleTimeout": 300,"hardTimeout": 0}
-${pathpolicydata}    {"id": 1,"default": 100000,"cost": [{"location": {"node": {"type": "OF","id": "00:00:00:00:00:00:00:01"},"port": {"type": "OF","id": "3","name": "s1-eth3"}},"cost": 1000},{"location": {"node": {"type": "OF","id": "00:00:00:00:00:00:00:04"},"port": {"type": "OF","id": "2","name": "s4-eth2"}},"cost": 1000},{"location": {"node": {"type": "OF", "id": "00:00:00:00:00:00:00:03"},"port": {"type": "OF","id": "3","name": "s3-eth3"}},"cost": 100000}]}
-
-*** Test Cases ***
-Check if switch1 detected
-    [Documentation]    Check if openflow:1 is detected
-    BuiltIn.Wait_Until_Keyword_Succeeds    12    3    Fetch vtn switch inventory    openflow:1
-
-Check if switch2 detected
-    [Documentation]    Check if openflow:2 is detected
-    BuiltIn.Wait_Until_Keyword_Succeeds    3    1    Fetch vtn switch inventory    openflow:2
-
-Check if switch3 detected
-    [Documentation]    Check if openflow:3 is detected
-    BuiltIn.Wait_Until_Keyword_Succeeds    3    1    Fetch vtn switch inventory    openflow:3
-
-Check if switch4 detected
-    [Documentation]    Check if openflow:4 is detected
-    BuiltIn.Wait_Until_Keyword_Succeeds    3    1    Fetch vtn switch inventory    openflow:4
-
-Add a vtn Tenant_path
-    [Documentation]    Add a vtn Tenant_path
-    Add a vtn    Tenant_path    {"idleTimeout": "200","hardTimeout": "600","description": "Virtual Tenant_path for Hackfest network"}
-
-Add a vBridge vBridge1
-    [Documentation]    Add a vBridge vBridge1 in vtn Tenant_path
-    Add a vBridge    Tenant_path    vBridge1    {"ageInterval": "300","description": "vBridge1 for Tenant_path"}
-
-Add a interface If1_path
-    [Documentation]    Add a interface if1_path into vBrdige vBridge1
-    Add a interface    Tenant_path    vBridge1    if1_path    {}
-
-Add a portmap for interface if1_path
-    [Documentation]    Create a portmap on Interface if1 of vBridge1
-    ${node}    Create Dictionary    type=OF    id=00:00:00:00:00:00:00:01
-    ${port}    Create Dictionary    name=s1-eth1    type=OF    id=1
-    ${portmap_data}    Create Dictionary    node=${node}    port=${port}
-    Add a portmap    Tenant_path    vBridge1    if1_path    ${portmap_data}
-
-Add a interface If2_path
-    [Documentation]    Add a interface if2_path into vBrdige vBridge1
-    Add a interface    Tenant_path    vBridge1    if2_path    {}
-
-Add a portmap for interface if2_path
-    [Documentation]    Create a portmap on Interface if2_path of vBridge1
-    ${node}    Create Dictionary    type=OF    id=00:00:00:00:00:00:00:03
-    ${port}    Create Dictionary    name=s3-eth3    type=OF    id=3
-    ${portmap_data}    Create Dictionary    node=${node}    port=${port}
-    Add a portmap    Tenant_path    vBridge1    if2_path    ${portmap_data}
-
-Ping h1 to h2 before path policy
-    [Documentation]    Ping h1 to h2, verify no packet loss
-    Mininet Ping Should Succeed    h1    h2
-
-Verify flowEntryBeforePathPolicy
-    [Documentation]    Checking Flows on switch s1 and s3
-    Verify flowEntryPathPolicy    OF10    ${in_port}    ${out_before_pathpolicy}
-
-Add a flowcondition flowcond_path
-    [Documentation]    Create a flowcondition flowcond_path
-    ${inet4}=    Create Dictionary    src=10.0.0.1    dst=10.0.0.2    protocol=1
-    ${inetMatch}=    Create Dictionary    inet4=${inet4}
-    ${ethernet}=    Create Dictionary    src=ca:9e:58:0c:1e:f0    dst=ba:bd:0f:e3:a8:c8    type=2048
-    ${matchElement}=    Create Dictionary    index=1    ethernet=${ethernet}    inetMatch=${inetMatch}
-    @{matchlist}    Create List    ${matchElement}
-    ${flowcond_data}=    Create Dictionary    name=flowcond_path    match=${matchlist}
-    Add a flowcondition    flowcond_path    ${flowcond_data}
-
-Add a pathmap
-    [Documentation]    Create a pathmap in the vtn
-    Add a pathmap    ${pathmapdata}
-
-Get a pathmap
-    [Documentation]    Retrieve a pathmap in the vtn
-    Get a pathmap
-
-Add a pathpolicy
-    [Documentation]    Create a pathpolicy in the vtn
-    Add a pathpolicy    ${pathpolicydata}
-
-Get a pathpolicy
-    [Documentation]    Retrieve a pathpolicy in the vtn
-    Get a pathpolicy
-
-Ping h1 to h2 after path policy
-    [Documentation]    Ping h1 to h2, verify no packet loss
-    Mininet Ping Should Succeed    h1    h2
-
-Verify flowEntryAfterPathPolicy
-    [Documentation]    Checking Flows on switch s1 and s3
-    Verify flowEntryPathPolicy    OF10    ${in_port}    ${out_after_pathpolicy}
-
-Delete a pathmap
-    [Documentation]    Delete a pathmap
-    Delete a pathmap
-
-Get a pathmap after delete
-    [Documentation]    Retrieve a pathmap in the vtn after delete to check whether it is deleted properly
-    Get a pathmap after delete
-
-Delete a pathpolicy
-    [Documentation]    Delete a pathpolicy
-    Delete a pathpolicy
-
-Get a pathpolicy after delete
-    [Documentation]    Retrieve a pathpolicy in the vtn after delete to check whether it is deleted properly
-    Get a pathpolicy after delete
-
-Delete a flowcondition
-    [Documentation]    Delete a flowcondition
-    Delete a flowcondition    flowcond_path
-
-Delete a vtn Tenant_path
-    [Documentation]    Delete a vtn Tenant_path
-    Delete a vtn    Tenant_path
diff --git a/csit/suites/vtn/VTN_Mgr_OF10/020__vtn_pathmap_pathpolicy.robot b/csit/suites/vtn/VTN_Mgr_OF10/020__vtn_pathmap_pathpolicy.robot
new file mode 100644 (file)
index 0000000..08123f7
--- /dev/null
@@ -0,0 +1,102 @@
+*** Settings ***
+Documentation     Test suite for VTN Manager PathPolicy using OF10
+Suite Setup       Start PathSuiteVtnMaTestOF10
+Suite Teardown    Stop PathSuiteVtnMaTest
+Resource          ../../../libraries/VtnMaKeywords.robot
+
+*** Variables ***
+${pathmapdata}    {"input":{"tenant-name":"Tenant_path","path-map-list":[{"condition":"flowcond_path","policy":"1","index": "1","idle-timeout":"300","hard-timeout":"0"}]}}
+
+${pathpolicydata}    {"input":{"operation":"SET","id": "1","default-cost": "10000","vtn-path-cost": [{"port-desc":"openflow:1,3,s1-eth3","cost":"1000"},{"port-desc":"openflow:4,2,s4-eth2","cost":"1000"},{"port-desc":"openflow:3,3,s3-eth3","cost":"100000"}]}} 
+
+
+*** Test Cases ***
+Check if switch1 detected
+    [Documentation]    Check if openflow:1 is detected
+    BuiltIn.Wait_Until_Keyword_Succeeds    12    3    Fetch vtn switch inventory    openflow:1
+
+Check if switch2 detected
+    [Documentation]    Check if openflow:2 is detected
+    BuiltIn.Wait_Until_Keyword_Succeeds    3    1    Fetch vtn switch inventory    openflow:2
+
+Check if switch3 detected
+    [Documentation]    Check if openflow:3 is detected
+    BuiltIn.Wait_Until_Keyword_Succeeds    3    1    Fetch vtn switch inventory    openflow:3
+
+Check if switch4 detected
+    [Documentation]    Check if openflow:4 is detected
+    BuiltIn.Wait_Until_Keyword_Succeeds    3    1    Fetch vtn switch inventory    openflow:4
+
+Add a vtn Tenant_path
+    [Documentation]    Add a vtn Tenant_path
+    Add a vtn    Tenant_path
+
+Add a vBridge vBridge1
+    [Documentation]    Add a vBridge vBridge1 in vtn Tenant_path
+    Add a vBridge    Tenant_path    vBridge1
+
+Add a interface If1_path
+    [Documentation]    Add a interface if1_path into vBrdige vBridge1
+    Add a interface    Tenant_path    vBridge1    if1_path
+
+Add a portmap for interface if1_path
+    [Documentation]    Create a portmap on Interface if1 of vBridge1
+    Add a portmap    Tenant_path    vBridge1    if1_path    openflow:1    s1-eth1
+
+Add a interface If2_path
+    [Documentation]    Add a interface if2_path into vBrdige vBridge1
+    Add a interface    Tenant_path    vBridge1    if2_path
+
+Add a portmap for interface if2_path
+    [Documentation]    Create a portmap on Interface if2_path of vBridge1
+    Add a portmap    Tenant_path    vBridge1    if2_path    openflow:3    s3-eth3
+
+Ping h1 to h2 before path policy
+    [Documentation]    Ping h1 to h2, verify no packet loss
+    Wait_Until_Keyword_Succeeds    20s    1s    Mininet Ping Should Succeed    h1    h2
+
+Verify flowEntryBeforePathPolicy
+    [Documentation]    Checking Flows on switch s1 and s3
+    [Tags]    exclude
+    Verify flowEntryPathPolicy    OF10    ${in_port}    ${out_before_pathpolicy}
+
+Add a flowcondition flowcond_path
+    [Documentation]    Create a flowcondition flowcond_path
+    Add a flowcondition    flowcond_path
+
+Add a pathmap
+    [Documentation]    Create a pathmap in the vtn
+    Add a pathmap    ${pathmapdata}
+
+Add a pathpolicy
+    [Documentation]    Create a pathpolicy in the vtn
+    Add a pathpolicy    ${pathpolicydata}
+
+Get a pathpolicy
+    [Documentation]    Retrieve a pathpolicy in the vtn
+    Get a pathpolicy    ${policy_id}
+
+Ping h1 to h2 after path policy
+    [Documentation]    Ping h1 to h2, verify no packet loss
+    Wait_Until_Keyword_Succeeds    20s    1s    Mininet Ping Should Succeed    h1    h2
+
+Verify flowEntryAfterPathPolicy
+    [Documentation]    Checking Flows on switch s1 and s3
+    [Tags]    exclude
+    Verify flowEntryPathPolicy    OF10    ${in_port}    ${out_after_pathpolicy}
+
+Delete a pathmap
+    [Documentation]    Delete a pathmap
+    Delete a pathmap    Tenant_path
+
+Delete a pathpolicy
+   [Documentation]    Delete a pathpolicy
+   Delete a pathpolicy    ${policy_id}
+
+Delete a flowcondition
+    [Documentation]    Delete a flowcondition
+    Remove flowcondition    flowcond_path
+
+Delete a vtn Tenant_path
+    [Documentation]    Delete a vtn Tenant_path
+    Delete a vtn    Tenant_path
index 33017248ea9784bd71e14adb261da49c02af3b88..77295c63f272283cd773692df32711185cb6c585 100644 (file)
@@ -2,19 +2,20 @@
 Documentation     Test suite for VTN Manager using OF13
 Suite Setup       Start SuiteVtnMaTest
 Suite Teardown    Stop SuiteVtnMaTest
-Force Tags        exclude
 Resource          ../../../libraries/VtnMaKeywords.robot
 
 *** Variables ***
-${flowfilterInetdata}    {"index":1,"condition":"cond1","filterType":{"pass":{}},"actions":[{"inet4src":{"address":"10.0.0.1"}},{"inet4dst":{"address":"10.0.0.3"}}]}
-${flowfilterInetdropdata}    {"index":1,"condition":"cond1","filterType":{"drop":{}},"actions":[{"inet4src":{"address":"10.0.0.1"}},{"inet4dst":{"address":"10.0.0.3"}}]}
-${flowfilterIcmpCodedata}    {"index":2,"condition":"cond1","filterType":{"pass":{}},"actions":[{"icmpcode":{"code":9}}]}
-${flowfilterTpsrcTpdstdata}    {"index":3,"condition":"cond1","filterType":{"pass":{}},"actions":[{"tpsrc":{"port":"5"}},{"tpdst":{"port":"10"}}]}
-${flowfilterDscpdata}    {"index":6,"condition":"cond1","filterType":{"pass":{}},"actions":[{"dscp": {"dscp": 10}}]}
-${macmap_data}    {"machost": [{"address": "0e:d5:e3:40:a3:f0", "vlan": "0"},{"address": "9a:dd:b0:8a:de:2f", "vlan": "0"}]}
-${flowfiltervlanpcp}    {"index":7,"condition":"cond1","filterType":{"pass":{}},"actions":[{"inet4src":{"address":"10.0.0.1"}},{"inet4dst":{"address":"10.0.0.3"}},{"icmpcode":{"code":1}},{"vlanpcp":{"priority":3}}]}
-${vtn_flowfilterInetdata}    {"index":8,"condition":"cond1","filterType":{"pass":{}},"actions":[{"inet4src":{"address":"10.0.0.1"}},{"inet4dst":{"address":"10.0.0.3"}}]}
-${vbr_flowfilterInetdata}    {"index":9,"condition":"cond1","filterType":{"pass":{}},"actions":[{"inet4src":{"address":"10.0.0.1"}},{"inet4dst":{"address":"10.0.0.3"}}]}
+${flowfilterInetdata}    "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.3/32"}}],"index": "1"}]
+
+${flowfilterInetdropdata}    "vtn-flow-filter":[{"condition":"cond_1","vtn-drop-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.3/32"}}],"index": "1"}]
+
+${flowfilterIcmpCodedata}    "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action":[{ "order":"1","vtn-set-icmp-code-action":{"code":"9"}}],"index":"2"}]
+
+${flowfilterTpsrcTpdstdata}    "vtn-flow-filter": [{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-port-src-action": {"port": "5"}},{"order": "2","vtn-set-port-dst-action": {"port": "10"}}],"index": "3"}]
+
+${flowfilterDscpdata}   "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-inet-dscp-action": {"dscp":"10"}}],"index":"6"}]
+
+${flowfiltervlanpcp}   "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.1/32"}},{"order":"2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.3/32"}},{"order":"3","vtn-set-icmp-code-action":{"code":"1"}},{"order":"4","vtn-set-vlan-pcp-action":{"vlan-pcp":"3"}}],"index":"3"}]
 
 *** Test Cases ***
 Check if switch1 detected
@@ -31,104 +32,89 @@ Check if switch3 detected
 
 Add a vtn Tenant1
     [Documentation]    Add a vtn Tenant1
-    Add a vtn    Tenant1    {"idleTimeout": "200","hardTimeout": "600","description": "Virtual Tenant1 for Hackfest network"}
+    Add a vtn    Tenant1
 
 Add a vBridge vBridge1
     [Documentation]    Add a vBridge vBridge1 in vtn Tenant1
-    Add a vBridge    Tenant1    vBridge1    {"ageInterval": "300","description": "vBridge1 for Tenant1"}
+    Add a vBridge    Tenant1    vBridge1
 
 Add a interface If1
     [Documentation]    Add a interface if1 into vBridge vBridge1
-    Add a interface    Tenant1    vBridge1    if1    {"enabled": "true","description": "Interface1 for vBridge1 for Tenant1"}
+    Add a interface    Tenant1    vBridge1    if1
 
 Add a interface if2
     [Documentation]    Add a interface if2 into vBridge vBridge1
-    Add a interface    Tenant1    vBridge1    if2    {"enabled": "true","description": "Interface2 for vBridge1 for Tenant1"}
+    Add a interface    Tenant1    vBridge1    if2
 
 Add a portmap for interface if1
     [Documentation]    Create a portmap on Interface if1 of vBridge1
-    ${node}    Create Dictionary    type=OF    id=00:00:00:00:00:00:00:02
-    ${port}    Create Dictionary    name=s2-eth1
-    ${portmap_data}    Create Dictionary    node=${node}    port=${port}
-    Add a portmap    Tenant1    vBridge1    if1    ${portmap_data}
+    Add a portmap    Tenant1    vBridge1    if1    openflow:2    s2-eth1
 
 Add a portmap for interface if2
     [Documentation]    Create a portmap on Interface if2 of vBridge1
-    ${node}    Create Dictionary    type=OF    id=00:00:00:00:00:00:00:03
-    ${port}    Create Dictionary    name=s3-eth1
-    ${portmap_data}    Create Dictionary    node=${node}    port=${port}
-    Add a portmap    Tenant1    vBridge1    if2    ${portmap_data}
+    Add a portmap    Tenant1    vBridge1    if2    openflow:3    s3-eth1
 
 Ping h1 to h3
     [Documentation]    Ping h1 to h3, verify no packet loss
-    Mininet Ping Should Succeed    h1    h3
+    Wait_Until_Keyword_Succeeds    20s    1s    Mininet Ping Should Succeed    h1    h3
 
 Add a vBridge vBridge2
     [Documentation]    Add a vBridge vBridge2 in vtn Tenant1
-    Add a vBridge    Tenant1    vBridge2    {}
+    Add a vBridge    Tenant1    vBridge2
 
 Add a interface If3
     [Documentation]    Add a interface if3 into vBrdige vBridge1
-    Add a interface    Tenant1    vBridge1    if3    {}
+    Add a interface    Tenant1    vBridge1    if3
 
 Add a interface if4
     [Documentation]    Add a interface if4 into vBrdige vBridge1
-    Add a interface    Tenant1    vBridge1    if4    {}
+    Add a interface    Tenant1    vBridge1    if4
 
 Add a portmap for interface if3
     [Documentation]    Create a portmap on Interface if3 of vBridge1
-    ${node}    Create Dictionary    type=OF    id=00:00:00:00:00:00:00:02
-    ${port}    Create Dictionary    name=s2-eth2
-    ${portmap_data}    Create Dictionary    node=${node}    port=${port}
-    Add a portmap    Tenant1    vBridge1    if3    ${portmap_data}
+    Add a portmap    Tenant1    vBridge1    if3    openflow:2    s2-eth2
 
 Add a portmap for interface if4
     [Documentation]    Create a portmap on Interface if4 of vBridge1
-    ${node}    Create Dictionary    type=OF    id=00:00:00:00:00:00:00:03
-    ${port}    Create Dictionary    name=s3-eth2
-    ${portmap_data}    Create Dictionary    node=${node}    port=${port}
-    Add a portmap    Tenant1    vBridge1    if4    ${portmap_data}
+    Add a portmap    Tenant1    vBridge1    if4    openflow:3    s3-eth2
 
 Ping h2 to h4
     [Documentation]    Ping h2 to h4, verify no packet loss
-    Mininet Ping Should Succeed    h2    h4
+    Wait_Until_Keyword_Succeeds    20s    1s    Mininet Ping Should Succeed    h2    h4
+
+Add a flowcondition
+    [Documentation]    Create a flowcondition cond_1 using restconfig api
+    Add a flowcondition    cond_1
 
 Add a macmap
     [Documentation]    Create a macmap on vBridge vBridge1
+    [Tags]    exclude
     Add a macmap    Tenant1    vBridge1    ${macmap_data}
 
 Get flow
     [Documentation]    Get flow of a vtn Tenant1
+    [Tags]    exclude
     Get flow    Tenant1
 
-Add a flowcondition cond1
-    [Documentation]    Create a flowcondition cond1
-    ${inet4}=    Create Dictionary    src=10.0.0.1    dst=10.0.0.3
-    ${inetMatch}=    Create Dictionary    inet4=${inet4}
-    ${matchElement}=    Create Dictionary    index=1    inetMatch=${inetMatch}
-    @{matchlist}    Create List    ${matchElement}
-    ${flowcond_data}=    Create Dictionary    name=cond1    match=${matchlist}
-    Add a flowcondition    cond1    ${flowcond_data}
-
 Add a flowfilter with inet4src and inet4dst
     [Documentation]    Create a flowfilter with inet4 and Verify ping
-    Add a flowfilter    Tenant1    vBridge1    if1    ${flowfilterInetdata}    ${index}
-    Mininet Ping Should Succeed    h1    h3
+    Add a vbrif flowfilter    Tenant1    vBridge1    if1    ${flowfilterInetdata}
+    Wait_Until_Keyword_Succeeds    20s   1s    Mininet Ping Should Succeed    h1    h3
 
 Add a flowfilter with Icmp code
     [Documentation]    Create a flowfilter with icmp code and Verify ping
-    Update a flowfilter    Tenant1    vBridge1    if1    ${flowfilterIcmpCodedata}    ${index}
-    Mininet Ping Should Succeed    h1    h3
+    Add a vbrif flowfilter    Tenant1    vBridge1    if1    ${flowfilterIcmpCodedata}
+    Wait_Until_Keyword_Succeeds    20s   1s    Mininet Ping Should Succeed    h1    h3
 
 Add a flowfilter with tpsrc and tpdst
     [Documentation]    Create a flowfilter with tpsrc and tpdst and Verify ping
-    Update a flowfilter    Tenant1    vBridge1    if1    ${flowfilterTpsrcTpdstdata}    ${index}
-    Mininet Ping Should Succeed    h1    h3
+    Add a vbrif flowfilter    Tenant1    vBridge1    if1    ${flowfilterTpsrcTpdstdata}
+    Wait_Until_Keyword_Succeeds    20s   1s    Mininet Ping Should Succeed    h1    h3
 
 Add a flowfilter with dscp
     [Documentation]    Create a flowfilter with dscp and Verify ping
-    Update a flowfilter    Tenant1    vBridge1    if1    ${flowfilterDscpdata}    ${index}
-    Mininet Ping Should Succeed    h1    h3
+    Add a vbrif flowfilter    Tenant1    vBridge1    if1    ${flowfilterDscpdata}
+    Wait_Until_Keyword_Succeeds    20s   1s    Mininet Ping Should Succeed    h1    h3
 
 Verify Flow Entry for Inet Flowfilter
     [Documentation]    Verify Flow Entry for Inet Flowfilter
@@ -136,31 +122,33 @@ Verify Flow Entry for Inet Flowfilter
 
 Add a flowfilter with vlanpcp
     [Documentation]    Create a flowfilter with vlanpcp and Verify ping
-    Update a flowfilter    Tenant1    vBridge1    if1    ${flowfiltervlanpcp}    ${index}
-    Mininet Ping Should Succeed    h1    h3
+    Add a vbrif flowfilter    Tenant1    vBridge1    if1    ${flowfiltervlanpcp}
+    Wait_Until_Keyword_Succeeds    20s   1s    Mininet Ping Should Succeed    h1    h3
 
 Add a flowfilter_vtn with inet4src and inet4dst
     [Documentation]    Create a vtn_flowfilter with inet4 and Verify ping
-    Add a flowfilter_vtn    Tenant1    ${vtn_flowfilterInetdata}    ${index}
-    Mininet Ping Should Succeed    h1    h3
+    Add a vtn flowfilter    Tenant1    ${flowfilterInetdata}
+    Wait_Until_Keyword_Succeeds    20s   1s    Mininet Ping Should Succeed    h1    h3
 
 Add a flowfilter_vbr with inet4src and inet4dst
     [Documentation]    Create a vbr_flowfilter with inet4 and Verify ping
-    Add a flowfilter_vbr    Tenant1    vBridge1    ${vbr_flowfilterInetdata}    ${index}
-    Mininet Ping Should Succeed    h1    h3
+    Add a vbr flowfilter    Tenant1    vBridge1    ${flowfilterInetdata}
+    Wait_Until_Keyword_Succeeds    20s   1s    Mininet Ping Should Succeed    h1    h3
 
 Add a flowfilter with inet4 for drop
     [Documentation]    Create a flowfilter with inet4 for drop action and Verify no pinging
-    Add a flowfilter for drop    Tenant1    vBridge1    if1    ${flowfilterInetdropdata}    ${index}
-    Mininet Ping Should Not Succeed    h1    h3
+    [Tags]    exclude
+    Add a vbrif flowfilter    Tenant1    vBridge1    if1    ${flowfilterInetdropdata}
+    Wait_Until_Keyword_Succeeds    20s   1s    Mininet Ping Should Not Succeed    h1    h3
 
 Verify Removed Flow Entry For Inet After Drop Action
     [Documentation]    Verify no flows between the hosts after drop
+    [Tags]    exclude
     Verify Removed Flow Entry for Inet Drop Flowfilter
 
 Delete a flowcondition
     [Documentation]    Delete a flowcondition
-    Delete a flowcondition    cond1
+    Remove flowcondition    cond_1
 
 Delete a vtn Tenant1
     [Documentation]    Delete a vtn Tenant1
diff --git a/csit/suites/vtn/VTN_Mgr_OF13/010__vtn_manager_pathpolicy.robot b/csit/suites/vtn/VTN_Mgr_OF13/010__vtn_manager_pathpolicy.robot
deleted file mode 100644 (file)
index 83f0d78..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-*** Settings ***
-Documentation     Test suite for VTN Manager PathPolicy using OF13
-Suite Setup       Start PathSuiteVtnMaTest
-Suite Teardown    Stop PathSuiteVtnMaTest
-Force Tags        exclude
-Resource          ../../../libraries/VtnMaKeywords.robot
-
-*** Variables ***
-${pathmapdata}    {"index": 1,"condition":"flowcond_path","policy":1,"idleTimeout": 300,"hardTimeout": 0}
-${pathpolicydata}    {"id": 1,"default": 100000,"cost": [{"location": {"node": {"type": "OF","id": "00:00:00:00:00:00:00:01"},"port": {"type": "OF","id": "3","name": "s1-eth3"}},"cost": 1000},{"location": {"node": {"type": "OF","id": "00:00:00:00:00:00:00:04"},"port": {"type": "OF","id": "2","name": "s4-eth2"}},"cost": 1000},{"location": {"node": {"type": "OF", "id": "00:00:00:00:00:00:00:03"},"port": {"type": "OF","id": "3","name": "s3-eth3"}},"cost": 100000}]}
-
-*** Test Cases ***
-Check if switch1 detected
-    [Documentation]    Check if openflow:1 is detected
-    BuiltIn.Wait_Until_Keyword_Succeeds    12    3    Fetch vtn switch inventory    openflow:1
-
-Check if switch2 detected
-    [Documentation]    Check if openflow:2 is detected
-    BuiltIn.Wait_Until_Keyword_Succeeds    3    1    Fetch vtn switch inventory    openflow:2
-
-Check if switch3 detected
-    [Documentation]    Check if openflow:3 is detected
-    BuiltIn.Wait_Until_Keyword_Succeeds    3    1    Fetch vtn switch inventory    openflow:3
-
-Check if switch4 detected
-    [Documentation]    Check if openflow:4 is detected
-    BuiltIn.Wait_Until_Keyword_Succeeds    3    1    Fetch vtn switch inventory    openflow:4
-
-Add a vtn Tenant_path
-    [Documentation]    Add a vtn Tenant_path
-    Add a vtn    Tenant_path    {"idleTimeout": "200","hardTimeout": "600","description": "Virtual Tenant_path for Hackfest network"}
-
-Add a vBridge vBridge1
-    [Documentation]    Add a vBridge vBridge1 in vtn Tenant_path
-    Add a vBridge    Tenant_path    vBridge1    {"ageInterval": "300","description": "vBridge1 for Tenant_path"}
-
-Add a interface If1_path
-    [Documentation]    Add a interface if1_path into vBrdige vBridge1
-    Add a interface    Tenant_path    vBridge1    if1_path    {}
-
-Add a portmap for interface if1_path
-    [Documentation]    Create a portmap on Interface if1 of vBridge1
-    ${node}    Create Dictionary    type=OF    id=00:00:00:00:00:00:00:01
-    ${port}    Create Dictionary    name=s1-eth1    type=OF    id=1
-    ${portmap_data}    Create Dictionary    node=${node}    port=${port}
-    Add a portmap    Tenant_path    vBridge1    if1_path    ${portmap_data}
-
-Add a interface If2_path
-    [Documentation]    Add a interface if2_path into vBrdige vBridge1
-    Add a interface    Tenant_path    vBridge1    if2_path    {}
-
-Add a portmap for interface if2_path
-    [Documentation]    Create a portmap on Interface if2_path of vBridge1
-    ${node}    Create Dictionary    type=OF    id=00:00:00:00:00:00:00:03
-    ${port}    Create Dictionary    name=s3-eth3    type=OF    id=3
-    ${portmap_data}    Create Dictionary    node=${node}    port=${port}
-    Add a portmap    Tenant_path    vBridge1    if2_path    ${portmap_data}
-
-Ping h1 to h2 before path policy
-    [Documentation]    Ping h1 to h2, verify no packet loss
-    Mininet Ping Should Succeed    h1    h2
-
-Verify flowEntryBeforePathPolicy
-    [Documentation]    Checking Flows on switch s1 and s3
-    Verify flowEntryPathPolicy    OF13    ${in_port}    ${out_before_pathpolicy}
-
-Add a flowcondition flowcond_path
-    [Documentation]    Create a flowcondition flowcond_path
-    ${inet4}=    Create Dictionary    src=10.0.0.1    dst=10.0.0.2    protocol=1
-    ${inetMatch}=    Create Dictionary    inet4=${inet4}
-    ${ethernet}=    Create Dictionary    src=ca:9e:58:0c:1e:f0    dst=ba:bd:0f:e3:a8:c8    type=2048
-    ${matchElement}=    Create Dictionary    index=1    ethernet=${ethernet}    inetMatch=${inetMatch}
-    @{matchlist}    Create List    ${matchElement}
-    ${flowcond_data}=    Create Dictionary    name=flowcond_path    match=${matchlist}
-    Add a flowcondition    flowcond_path    ${flowcond_data}
-
-Add a pathmap
-    [Documentation]    Create a pathmap in the vtn
-    Add a pathmap    ${pathmapdata}
-
-Get a pathmap
-    [Documentation]    Retrieve a pathmap in the vtn
-    Get a pathmap
-
-Add a pathpolicy
-    [Documentation]    Create a pathpolicy in the vtn
-    Add a pathpolicy    ${pathpolicydata}
-
-Get a pathpolicy
-    [Documentation]    Retrieve a pathpolicy in the vtn
-    Get a pathpolicy
-
-Ping h1 to h2 after path policy
-    [Documentation]    Ping h1 to h2, verify no packet loss
-    Mininet Ping Should Succeed    h1    h2
-
-Verify flowEntryAfterPathPolicy
-    [Documentation]    Checking Flows on switch s1 and s3
-    Verify flowEntryPathPolicy    OF13    ${in_port}    ${out_after_pathpolicy}
-
-Delete a pathmap
-    [Documentation]    Delete a pathmap
-    Delete a pathmap
-
-Get a pathmap after delete
-    [Documentation]    Retrieve a pathmap in the vtn after delete to check whether it is deleted properly
-    Get a pathmap after delete
-
-Delete a pathpolicy
-    [Documentation]    Delete a pathpolicy
-    Delete a pathpolicy
-
-Get a pathpolicy after delete
-    [Documentation]    Retrieve a pathpolicy in the vtn after delete to check whether it is deleted properly
-    Get a pathpolicy after delete
-
-Delete a flowcondition
-    [Documentation]    Delete a flowcondition
-    Delete a flowcondition    flowcond_path
-
-Delete a vtn Tenant_path
-    [Documentation]    Delete a vtn Tenant_path
-    Delete a vtn    Tenant_path
diff --git a/csit/suites/vtn/VTN_Mgr_OF13/020__vtn_pathmap_pathpolicy.robot b/csit/suites/vtn/VTN_Mgr_OF13/020__vtn_pathmap_pathpolicy.robot
new file mode 100644 (file)
index 0000000..1598137
--- /dev/null
@@ -0,0 +1,100 @@
+*** Settings ***
+Documentation     Test suite for VTN Manager PathPolicy using OF13
+Suite Setup       Start PathSuiteVtnMaTest
+Suite Teardown    Stop PathSuiteVtnMaTest
+Resource          ../../../libraries/VtnMaKeywords.robot
+
+*** Variables ***
+${pathmapdata}    {"input":{"tenant-name":"Tenant_path","path-map-list":[{"condition":"flowcond_path","policy":"1","index": "1","idle-timeout":"300","hard-timeout":"0"}]}}
+
+${pathpolicydata}    {"input":{"operation":"SET","id": "1","default-cost": "10000","vtn-path-cost": [{"port-desc":"openflow:1,3,s1-eth3","cost":"1000"},{"port-desc":"openflow:4,2,s4-eth2","cost":"1000"},{"port-desc":"openflow:3,3,s3-eth3","cost":"100000"}]}} 
+
+
+*** Test Cases ***
+Check if switch1 detected
+    [Documentation]    Check if openflow:1 is detected
+    BuiltIn.Wait_Until_Keyword_Succeeds    12    3    Fetch vtn switch inventory    openflow:1
+
+Check if switch2 detected
+    [Documentation]    Check if openflow:2 is detected
+    BuiltIn.Wait_Until_Keyword_Succeeds    3    1    Fetch vtn switch inventory    openflow:2
+
+Check if switch3 detected
+    [Documentation]    Check if openflow:3 is detected
+    BuiltIn.Wait_Until_Keyword_Succeeds    3    1    Fetch vtn switch inventory    openflow:3
+
+Check if switch4 detected
+    [Documentation]    Check if openflow:4 is detected
+    BuiltIn.Wait_Until_Keyword_Succeeds    3    1    Fetch vtn switch inventory    openflow:4
+
+Add a vtn Tenant_path
+    [Documentation]    Add a vtn Tenant_path
+    Add a vtn    Tenant_path
+
+Add a vBridge vBridge1
+    [Documentation]    Add a vBridge vBridge1 in vtn Tenant_path
+    Add a vBridge    Tenant_path    vBridge1
+
+Add a interface If1_path
+    [Documentation]    Add a interface if1_path into vBrdige vBridge1
+    Add a interface    Tenant_path    vBridge1    if1_path
+
+Add a portmap for interface if1_path
+    [Documentation]    Create a portmap on Interface if1 of vBridge1
+    Add a portmap    Tenant_path    vBridge1    if1_path    openflow:1    s1-eth1
+
+Add a interface If2_path
+    [Documentation]    Add a interface if2_path into vBrdige vBridge1
+    Add a interface    Tenant_path    vBridge1    if2_path
+
+Add a portmap for interface if2_path
+    [Documentation]    Create a portmap on Interface if2_path of vBridge1
+    Add a portmap    Tenant_path    vBridge1    if2_path    openflow:3    s3-eth3
+
+Ping h1 to h2 before path policy
+    [Documentation]    Ping h1 to h2, verify no packet loss
+    Wait_Until_Keyword_Succeeds    20s    1s    Mininet Ping Should Succeed    h1    h2
+
+Verify flowEntryBeforePathPolicy
+    [Documentation]    Checking Flows on switch s1 and s3
+    Verify flowEntryPathPolicy    OF13    ${in_port}    ${out_before_pathpolicy}
+
+Add a flowcondition flowcond_path
+    [Documentation]    Create a flowcondition flowcond_path
+    Add a flowcondition    flowcond_path
+
+Add a pathmap
+    [Documentation]    Create a pathmap in the vtn
+    Add a pathmap    ${pathmapdata}
+
+Add a pathpolicy
+    [Documentation]    Create a pathpolicy in the vtn
+    Add a pathpolicy    ${pathpolicydata}
+
+Get a pathpolicy
+    [Documentation]    Retrieve a pathpolicy in the vtn
+    Get a pathpolicy    ${policy_id}
+
+Ping h1 to h2 after path policy
+    [Documentation]    Ping h1 to h2, verify no packet loss
+    Wait_Until_Keyword_Succeeds    20s    1s    Mininet Ping Should Succeed    h1    h2
+
+Verify flowEntryAfterPathPolicy
+    [Documentation]    Checking Flows on switch s1 and s3
+    Verify flowEntryPathPolicy    OF13    ${in_port}    ${out_after_pathpolicy}
+
+Delete a pathmap
+    [Documentation]    Delete a pathmap
+    Delete a pathmap    Tenant_path
+
+Delete a pathpolicy
+   [Documentation]    Delete a pathpolicy
+   Delete a pathpolicy    ${policy_id}
+
+Delete a flowcondition
+    [Documentation]    Delete a flowcondition
+    Remove flowcondition    flowcond_path
+
+Delete a vtn Tenant_path
+    [Documentation]    Delete vtn Tenant_path
+    Delete a vtn    Tenant_path