*** Settings *** Documentation Test suite to verify Outbound filtering functionality Suite Setup Setup SXP Environment Suite Teardown Clean SXP Environment Test Setup Setup Nodes Test Teardown Clean Nodes Library RequestsLibrary Library SSHLibrary Library ../../../libraries/Sxp.py Library ../../../libraries/Common.py Resource ../../../libraries/SxpLib.robot Resource ../../../libraries/Utils.robot Resource ../../../libraries/KarafKeywords.robot Resource ../../../variables/Variables.py *** Variables *** *** Test Cases *** Access List Filtering [Documentation] Test ACL filter behaviour during filter update ${peers} Add Peers 127.0.0.4 127.0.0.5 Add PeerGroup GROUP ${peers} ${entry1} Get Filter Entry 10 permit acl=10.10.10.0,0.0.0.255 ${entry2} Get Filter Entry 20 deny acl=10.10.0.0,0.0.255.0 ${entry3} Get Filter Entry 30 permit acl=10.0.0.0,0.255.255.0 ${entries} Combine Strings ${entry1} ${entry2} ${entry3} Add Filter GROUP outbound ${entries} Wait Until Keyword Succeeds 4 1 Check One Group 4-5 Delete Filter GROUP outbound ${entry1} Get Filter Entry 10 permit acl=10.20.0.0,0.0.255.255 ${entry2} Get Filter Entry 20 permit acl=10.10.0.0,0.0.255.0 ${entries} Combine Strings ${entry1} ${entry2} Add Filter GROUP outbound ${entries} Wait Until Keyword Succeeds 4 1 Check Two Group 4-5 Access List Sgt Filtering [Documentation] Test ACL and SGT filter behaviour during filter update ${peers} Add Peers 127.0.0.2 127.0.0.5 Add PeerGroup GROUP ${peers} ${entry1} Get Filter Entry 10 deny acl=10.10.20.0,0.0.0.255 ${entry2} Get Filter Entry 20 permit acl=10.10.0.0,0.0.255.0 ${entry3} Get Filter Entry 30 permit sgt=30 acl=10.10.10.0,0.0.0.255 ${entries} Combine Strings ${entry1} ${entry2} ${entry3} Add Filter GROUP outbound ${entries} Wait Until Keyword Succeeds 4 1 Check One Group 2-5 Delete Filter GROUP outbound ${entries} Get Filter Entry 10 permit esgt=20,40 acl=10.10.0.0,0.0.255.255 Add Filter GROUP outbound ${entries} Wait Until Keyword Succeeds 4 1 Check Two Group 2-5 Prefix List Filtering [Documentation] Test Prefix List filter behaviour during filter update ${peers} Add Peers 127.0.0.4 127.0.0.5 Add PeerGroup GROUP ${peers} ${entry1} Get Filter Entry 10 permit pl=10.10.10.0/24 ${entry2} Get Filter Entry 20 deny epl=10.10.0.0/16,le,24 ${entry3} Get Filter Entry 30 permit epl=10.0.0.0/8,le,24 ${entries} Combine Strings ${entry1} ${entry2} ${entry3} Add Filter GROUP outbound ${entries} Wait Until Keyword Succeeds 4 1 Check One Group 4-5 Delete Filter GROUP outbound ${entry1} Get Filter Entry 10 permit pl=10.20.0.0/16 ${entry2} Get Filter Entry 20 permit epl=10.10.0.0/16,le,24 ${entries} Combine Strings ${entry1} ${entry2} Add Filter GROUP outbound ${entries} Wait Until Keyword Succeeds 4 1 Check Two Group 4-5 Prefix List Sgt Filtering [Documentation] Test Prefix List and SGT filter behaviour during filter update ${peers} Add Peers 127.0.0.2 127.0.0.5 Add PeerGroup GROUP ${peers} ${entry1} Get Filter Entry 10 deny pl=10.10.20.0/24 ${entry2} Get Filter Entry 20 permit epl=10.10.0.0/16,le,24 ${entry3} Get Filter Entry 30 permit sgt=30 pl=10.10.10.0/24 ${entries} Combine Strings ${entry1} ${entry2} ${entry3} Add Filter GROUP outbound ${entries} Wait Until Keyword Succeeds 4 1 Check One Group 2-5 Delete Filter GROUP outbound ${entries} Get Filter Entry 10 permit esgt=20,40 pl=10.10.0.0/16 Add Filter GROUP outbound ${entries} Wait Until Keyword Succeeds 4 1 Check Two Group 2-5 *** Keywords *** Setup Nodes [Arguments] ${version}=version4 ${password}=none : FOR ${node} IN RANGE 1 5 \ Add Binding ${node}0 10.10.10.${node}0/32 127.0.0.${node} \ Add Binding ${node}0 10.10.${node}0.0/24 127.0.0.${node} \ Add Binding ${node}0 10.${node}0.0.0/16 127.0.0.${node} \ Add Binding ${node}0 ${node}0.0.0.0/8 127.0.0.${node} Add Connection ${version} both 127.0.0.1 64999 127.0.0.2 ${password} Add Connection ${version} both 127.0.0.2 64999 127.0.0.1 ${password} Wait Until Keyword Succeeds 15 4 Verify Connection ${version} both 127.0.0.2 Add Connection ${version} speaker 127.0.0.1 64999 127.0.0.3 ${password} Add Connection ${version} listener 127.0.0.3 64999 127.0.0.1 ${password} Wait Until Keyword Succeeds 15 4 Verify Connection ${version} listener 127.0.0.3 Add Connection ${version} both 127.0.0.1 64999 127.0.0.4 ${password} Add Connection ${version} both 127.0.0.4 64999 127.0.0.1 ${password} Wait Until Keyword Succeeds 15 4 Verify Connection ${version} both 127.0.0.4 Add Connection ${version} listener 127.0.0.1 64999 127.0.0.5 ${password} Add Connection ${version} speaker 127.0.0.5 64999 127.0.0.1 ${password} Wait Until Keyword Succeeds 15 4 Verify Connection ${version} speaker 127.0.0.5 Check One Group 4-5 [Documentation] Check if only bindings matching filter nodes 4 and 5 ... Database should contains only Bindings regarding to these matches: ... permit ACL 10.10.10.0 0.0.0.255 ... deny ACL 10.10.0.0 0.0.255.0 ... permit ACL 10.0.0.0 0.255.255.0 ... Info regarding filtering https://wiki.opendaylight.org/view/SXP:Beryllium:Developer_Guide : FOR ${node} IN RANGE 4 6 \ ${resp} Get Bindings Master Database 127.0.0.${node} \ Should Contain Binding ${resp} 10 10.10.10.10/32 sxp \ Should Contain Binding ${resp} 10 10.10.10.0/24 sxp \ Should Not Contain Binding ${resp} 10 10.10.0.0/16 sxp \ Should Contain Binding ${resp} 10 10.0.0.0/8 sxp \ Should Contain Binding ${resp} 20 10.10.10.20/32 sxp \ Should Not Contain Binding ${resp} 20 10.10.20.0/24 sxp \ Should Contain Binding ${resp} 20 10.20.0.0/16 sxp \ Should Not Contain Binding ${resp} 20 20.0.0.0/8 sxp \ Should Contain Binding ${resp} 30 10.10.10.30/32 sxp \ Should Not Contain Binding ${resp} 30 10.10.30.0/24 sxp \ Should Contain Binding ${resp} 30 10.30.0.0/16 sxp \ Should Not Contain Binding ${resp} 30 30.0.0.0/8 sxp ${resp} Get Bindings Master Database 127.0.0.2 Should Contain Binding ${resp} 10 10.10.10.10/32 sxp Should Contain Binding ${resp} 10 10.10.10.0/24 sxp Should Contain Binding ${resp} 10 10.10.0.0/16 sxp Should Contain Binding ${resp} 10 10.0.0.0/8 sxp Should Contain Binding ${resp} 30 10.10.10.30/32 sxp Should Contain Binding ${resp} 30 10.10.30.0/24 sxp Should Contain Binding ${resp} 30 10.30.0.0/16 sxp Should Contain Binding ${resp} 30 30.0.0.0/8 sxp Should Contain Binding ${resp} 40 10.10.10.40/32 sxp Should Contain Binding ${resp} 40 10.10.40.0/24 sxp Should Contain Binding ${resp} 40 10.40.0.0/16 sxp Should Contain Binding ${resp} 40 40.0.0.0/8 sxp Check Two Group 4-5 [Documentation] Check if only bindings matching filter nodes 4 and 5 ... Database should contains only Bindings regarding to these matches: ... permit ACL 10.20.0.0 0.0.255.255 ... permit ACL 10.10.0.0 0.0.255.0 ... Info regarding filtering https://wiki.opendaylight.org/view/SXP:Beryllium:Developer_Guide : FOR ${node} IN RANGE 4 6 \ ${resp} Get Bindings Master Database 127.0.0.${node} \ Should Not Contain Binding ${resp} 10 10.10.10.10/32 sxp \ Should Contain Binding ${resp} 10 10.10.10.0/24 sxp \ Should Contain Binding ${resp} 10 10.10.0.0/16 sxp \ Should Not Contain Binding ${resp} 10 10.0.0.0/8 sxp \ Should Not Contain Binding ${resp} 20 10.10.10.20/32 sxp \ Should Contain Binding ${resp} 20 10.10.20.0/24 sxp \ Should Contain Binding ${resp} 20 10.20.0.0/16 sxp \ Should Not Contain Binding ${resp} 20 20.0.0.0/8 sxp \ Should Not Contain Binding ${resp} 30 10.10.10.30/32 sxp \ Should Contain Binding ${resp} 30 10.10.30.0/24 sxp \ Should Not Contain Binding ${resp} 30 10.30.0.0/16 sxp \ Should Not Contain Binding ${resp} 30 30.0.0.0/8 sxp ${resp} Get Bindings Master Database 127.0.0.2 Should Contain Binding ${resp} 10 10.10.10.10/32 sxp Should Contain Binding ${resp} 10 10.10.10.0/24 sxp Should Contain Binding ${resp} 10 10.10.0.0/16 sxp Should Contain Binding ${resp} 10 10.0.0.0/8 sxp Should Contain Binding ${resp} 30 10.10.10.30/32 sxp Should Contain Binding ${resp} 30 10.10.30.0/24 sxp Should Contain Binding ${resp} 30 10.30.0.0/16 sxp Should Contain Binding ${resp} 30 30.0.0.0/8 sxp Should Contain Binding ${resp} 40 10.10.10.40/32 sxp Should Contain Binding ${resp} 40 10.10.40.0/24 sxp Should Contain Binding ${resp} 40 10.40.0.0/16 sxp Should Contain Binding ${resp} 40 40.0.0.0/8 sxp Check One Group 2-5 [Documentation] Check if only bindings matching filter nodes 2 and 5 ... Database should contains only Bindings regarding to these matches: ... deny ACL 10.10.20.0 0.0.0.255 ... permit ACL 10.10.0.0 0.0.255.0 ... permit SGT 30 ACL 10.10.10.0 0.0.0.255 ... Info regarding filtering https://wiki.opendaylight.org/view/SXP:Beryllium:Developer_Guide @{list} Create List 127.0.0.2 127.0.0.5 : FOR ${node} IN @{list} \ ${resp} Get Bindings Master Database ${node} \ Should Not Contain Binding ${resp} 10 10.10.10.10/32 sxp \ Should Contain Binding ${resp} 10 10.10.10.0/24 sxp \ Should Contain Binding ${resp} 10 10.10.0.0/16 sxp \ Should Not Contain Binding ${resp} 10 10.0.0.0/8 sxp \ Should Contain Binding ${resp} 30 10.10.10.30/32 sxp \ Should Contain Binding ${resp} 30 10.10.30.0/24 sxp \ Should Not Contain Binding ${resp} 30 10.30.0.0/16 sxp \ Should Not Contain Binding ${resp} 30 30.0.0.0/8 sxp \ Should Not Contain Binding ${resp} 40 10.10.10.40/32 sxp \ Should Contain Binding ${resp} 40 10.10.40.0/24 sxp \ Should Not Contain Binding ${resp} 40 10.40.0.0/16 sxp \ Should Not Contain Binding ${resp} 40 40.0.0.0/8 sxp ${resp} Get Bindings Master Database 127.0.0.4 Should Contain Binding ${resp} 10 10.10.10.10/32 sxp Should Contain Binding ${resp} 10 10.10.10.0/24 sxp Should Contain Binding ${resp} 10 10.10.0.0/16 sxp Should Contain Binding ${resp} 10 10.0.0.0/8 sxp Should Contain Binding ${resp} 20 10.10.10.20/32 sxp Should Contain Binding ${resp} 20 10.10.20.0/24 sxp Should Contain Binding ${resp} 20 10.20.0.0/16 sxp Should Contain Binding ${resp} 20 20.0.0.0/8 sxp Should Contain Binding ${resp} 30 10.10.10.30/32 sxp Should Contain Binding ${resp} 30 10.10.30.0/24 sxp Should Contain Binding ${resp} 30 10.30.0.0/16 sxp Should Contain Binding ${resp} 30 30.0.0.0/8 sxp Check Two Group 2-5 [Documentation] Check if only bindings matching filter nodes 2 and 5 ... Database should contains only Bindings regarding to these matches: ... permit SGT 20,40 ACL 10.10.0.0 0.0.255.255 ... Info regarding filtering https://wiki.opendaylight.org/view/SXP:Beryllium:Developer_Guide @{list} Create List 127.0.0.2 127.0.0.5 : FOR ${node} IN @{list} \ ${resp} Get Bindings Master Database ${node} \ Should Not Contain Binding ${resp} 10 10.10.10.10/32 sxp \ Should Not Contain Binding ${resp} 10 10.10.10.0/24 sxp \ Should Not Contain Binding ${resp} 10 10.10.0.0/16 sxp \ Should Not Contain Binding ${resp} 10 10.0.0.0/8 sxp \ Should Contain Binding ${resp} 30 10.10.10.30/32 sxp \ Should Contain Binding ${resp} 30 10.10.30.0/24 sxp \ Should Not Contain Binding ${resp} 30 10.30.0.0/16 sxp \ Should Not Contain Binding ${resp} 30 30.0.0.0/8 sxp \ Should Contain Binding ${resp} 40 10.10.10.40/32 sxp \ Should Contain Binding ${resp} 40 10.10.40.0/24 sxp \ Should Not Contain Binding ${resp} 40 10.40.0.0/16 sxp \ Should Not Contain Binding ${resp} 40 40.0.0.0/8 sxp ${resp} Get Bindings Master Database 127.0.0.4 Should Contain Binding ${resp} 10 10.10.10.10/32 sxp Should Contain Binding ${resp} 10 10.10.10.0/24 sxp Should Contain Binding ${resp} 10 10.10.0.0/16 sxp Should Contain Binding ${resp} 10 10.0.0.0/8 sxp Should Contain Binding ${resp} 20 10.10.10.20/32 sxp Should Contain Binding ${resp} 20 10.10.20.0/24 sxp Should Contain Binding ${resp} 20 10.20.0.0/16 sxp Should Contain Binding ${resp} 20 20.0.0.0/8 sxp Should Contain Binding ${resp} 30 10.10.10.30/32 sxp Should Contain Binding ${resp} 30 10.10.30.0/24 sxp Should Contain Binding ${resp} 30 10.30.0.0/16 sxp Should Contain Binding ${resp} 30 30.0.0.0/8 sxp Clean Nodes Clean Connections 127.0.0.1 Clean Connections 127.0.0.2 Clean Connections 127.0.0.3 Clean Connections 127.0.0.4 Clean Connections 127.0.0.5 Clean Peer Groups 127.0.0.1 Clean Bindings 127.0.0.1 Clean Bindings 127.0.0.2 Clean Bindings 127.0.0.3 Clean Bindings 127.0.0.4 Clean Bindings 127.0.0.5