*** Settings *** Documentation Test suite to verify PeerSequence filtering functionality Suite Setup Setup SXP Environment 6 Suite Teardown Clean SXP Environment 6 Test Teardown Clean Nodes Library RequestsLibrary Library SSHLibrary Library ../../../libraries/Sxp.py Library ../../../libraries/Common.py Resource ../../../libraries/SxpLib.robot Resource ../../../variables/Variables.py *** Variables *** *** Test Cases *** Peer Sequence Filtering [Documentation] Test PeerSequence filter behaviour [Tags] SXP Filtering ${peers} Add Peers 127.0.0.2 Add PeerGroup GROUP ${peers} ${entry1} Get Filter Entry 10 permit ps=le,0 ${entries} Combine Strings ${entry1} Add Filter GROUP outbound ${entries} Setup Nodes Wait Until Keyword Succeeds 4 1 Check PeerSequence One Delete Filter GROUP outbound ${entry1} Get Filter Entry 10 permit ps=le,1 ${entries} Combine Strings ${entry1} Add Filter GROUP outbound ${entries} Wait Until Keyword Succeeds 4 1 Check PeerSequence Two Delete Filter GROUP outbound ${entry1} Get Filter Entry 10 permit ps=le,2 ${entries} Combine Strings ${entry1} Add Filter GROUP outbound ${entries} Wait Until Keyword Succeeds 4 1 Check PeerSequence Three Delete Filter GROUP outbound ${entry1} Get Filter Entry 10 deny ps=eq,1 ${entry2} Get Filter Entry 20 permit ps=ge,0 ${entries} Combine Strings ${entry1} ${entry2} Add Filter GROUP outbound ${entries} Wait Until Keyword Succeeds 4 1 Check PeerSequence Mix Delete Filter GROUP outbound Inbound PL Combinations Filtering [Documentation] Test PeerSequence filter combined with PrefixList filter [Tags] SXP Filtering @{scopes} Create List inbound inbound-discarding : FOR ${scope} IN @{scopes} \ Add PeerGroup GROUP \ ${entry1} Get Filter Entry 10 permit ps=le,1 \ ${entries} Combine Strings ${entry1} \ Add Filter GROUP ${scope} ${entries} \ Setup Nodes Inbound Test \ ${peers} Add Peers 127.0.0.2 \ Add PeerGroup GROUP2 ${peers} \ ${entry1} Get Filter Entry 10 permit pl=1.1.0.0/16 \ ${entries} Combine Strings ${entry1} \ Add Filter GROUP2 ${scope} ${entries} \ Wait Until Keyword Succeeds 4 1 Check Inbound PL Combinations Filtering \ Clean Nodes Inbound ACL Combinations Filtering [Documentation] Test PeerSequence filter combined with ACL filter [Tags] SXP Filtering @{scopes} Create List inbound inbound-discarding : FOR ${scope} IN @{scopes} \ ${peers} Add Peers 127.0.0.2 \ Add PeerGroup GROUP2 ${peers} \ ${entry1} Get Filter Entry 10 permit ps=le,2 \ ${entries} Combine Strings ${entry1} \ Add Filter GROUP2 ${scope} ${entries} \ Setup Nodes Inbound Test \ ${entry1} Get Filter Entry 10 permit acl=1.1.1.0,0.0.0.255 \ ${entries} Combine Strings ${entry1} \ Add Filter GROUP2 ${scope} ${entries} \ ${peers} Add Peers 127.0.0.5 \ Add PeerGroup GROUP5 ${peers} \ ${entry1} Get Filter Entry 10 permit sgt=40 \ ${entries} Combine Strings ${entry1} \ Add Filter GROUP5 ${scope} ${entries} \ Wait Until Keyword Succeeds 4 1 Check Inbound ACL Combinations Filtering \ Clean Nodes Outbound PL Combinations Filtering [Documentation] Test PeerSequence filter combined with PrefixList filter [Tags] SXP Filtering Add PeerGroup GROUP ${entry1} Get Filter Entry 10 permit pl=1.1.1.0/24 ${entries} Combine Strings ${entry1} Add Filter GROUP outbound ${entries} Setup Nodes Outbound Test ${peers} Add Peers 127.0.0.2 Add PeerGroup GROUP2 ${peers} ${entry1} Get Filter Entry 10 permit ps=le,1 ${entries} Combine Strings ${entry1} Add Filter GROUP2 outbound ${entries} Wait Until Keyword Succeeds 4 1 Check Outbound PL Combinations Filtering Outbound ACL Combinations Filtering [Documentation] Test PeerSequence filter combined with ACL filter [Tags] SXP Filtering Add PeerGroup GROUP ${entry1} Get Filter Entry 10 permit ps=eq,0 ${entry2} Get Filter Entry 20 permit ps=ge,2 ${entries} Combine Strings ${entry1} ${entry2} Add Filter GROUP outbound ${entries} Setup Nodes Outbound Test ${peers} Add Peers 127.0.0.2 Add PeerGroup GROUP2 ${peers} ${entry1} Get Filter Entry 10 permit acl=1.1.0.0,0.0.255.255 ${entries} Combine Strings ${entry1} Add Filter GROUP2 outbound ${entries} Wait Until Keyword Succeeds 4 1 Check Outbound ACL Combinations Filtering *** Keywords *** Setup Nodes [Arguments] ${version}=version4 ${password}=none [Documentation] Setup Topology for PeerSequence tests Add Binding 10 10.10.10.10/32 127.0.0.1 Add Binding 10 10.10.10.0/24 127.0.0.1 Add Binding 10 10.10.0.0/16 127.0.0.1 Add Binding 10 10.0.0.0/8 127.0.0.1 : FOR ${node} IN RANGE 2 6 \ 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} listener 127.0.0.1 64999 127.0.0.2 ${password} Add Connection ${version} speaker 127.0.0.2 64999 127.0.0.1 ${password} Wait Until Keyword Succeeds 15 1 Verify Connection ${version} speaker 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 1 Verify Connection ${version} listener 127.0.0.3 Add Connection ${version} speaker 127.0.0.3 64999 127.0.0.4 ${password} Add Connection ${version} listener 127.0.0.4 64999 127.0.0.3 ${password} Wait Until Keyword Succeeds 15 1 Verify Connection ${version} listener 127.0.0.4 ... 64999 127.0.0.3 Add Connection ${version} speaker 127.0.0.4 64999 127.0.0.5 ${password} Add Connection ${version} listener 127.0.0.5 64999 127.0.0.4 ${password} Wait Until Keyword Succeeds 15 1 Verify Connection ${version} listener 127.0.0.5 ... 64999 127.0.0.4 Setup Nodes Inbound Test [Arguments] ${version}=version4 ${password}=none [Documentation] Setup Topology for inbound PeerSequence and other filters tests : FOR ${node} IN RANGE 2 6 \ Add Binding ${node}0 1.1.1.${node}/32 127.0.0.${node} \ Add Binding ${node}0 1.1.${node}.0/24 127.0.0.${node} \ Add Binding ${node}0 1.${node}.0.0/16 127.0.0.${node} \ Add Binding ${node}0 ${node}.0.0.0/8 127.0.0.${node} Add Connection ${version} speaker 127.0.0.1 64999 127.0.0.2 ${password} Add Connection ${version} listener 127.0.0.2 64999 127.0.0.1 ${password} Wait Until Keyword Succeeds 15 1 Verify Connection ${version} listener 127.0.0.2 Add Connection ${version} speaker 127.0.0.1 64999 127.0.0.5 ${password} Add Connection ${version} listener 127.0.0.5 64999 127.0.0.1 ${password} Wait Until Keyword Succeeds 15 1 Verify Connection ${version} listener 127.0.0.5 Add Connection ${version} both 127.0.0.3 64999 127.0.0.2 ${password} Add Connection ${version} both 127.0.0.2 64999 127.0.0.3 ${password} Wait Until Keyword Succeeds 15 1 Verify Connection ${version} both 127.0.0.2 ... 64999 127.0.0.3 Add Connection ${version} both 127.0.0.3 64999 127.0.0.4 ${password} Add Connection ${version} both 127.0.0.4 64999 127.0.0.3 ${password} Wait Until Keyword Succeeds 15 1 Verify Connection ${version} both 127.0.0.4 ... 64999 127.0.0.3 Add Connection ${version} both 127.0.0.4 64999 127.0.0.5 ${password} Add Connection ${version} both 127.0.0.5 64999 127.0.0.4 ${password} Wait Until Keyword Succeeds 15 1 Verify Connection ${version} both 127.0.0.5 ... 64999 127.0.0.4 Setup Nodes Outbound Test [Arguments] ${version}=version4 ${password}=none [Documentation] Setup Topology for outbound PeerSequence and other filters tests Add Binding 10 1.1.1.1/32 127.0.0.1 Add Binding 10 1.1.1.0/24 127.0.0.1 Add Binding 10 1.1.0.0/16 127.0.0.1 Add Binding 10 1.0.0.0/8 127.0.0.1 : FOR ${node} IN RANGE 3 6 \ Add Binding ${node}0 1.1.1.${node}/32 127.0.0.${node} \ Add Binding ${node}0 1.1.${node}.0/24 127.0.0.${node} \ Add Binding ${node}0 1.${node}.0.0/16 127.0.0.${node} \ Add Binding ${node}0 ${node}.0.0.0/8 127.0.0.${node} Add Connection ${version} listener 127.0.0.1 64999 127.0.0.2 ${password} Add Connection ${version} speaker 127.0.0.2 64999 127.0.0.1 ${password} Wait Until Keyword Succeeds 15 1 Verify Connection ${version} speaker 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 1 Verify Connection ${version} listener 127.0.0.3 Add Connection ${version} speaker 127.0.0.1 64999 127.0.0.4 ${password} Add Connection ${version} listener 127.0.0.4 64999 127.0.0.1 ${password} Wait Until Keyword Succeeds 15 1 Verify Connection ${version} listener 127.0.0.4 Add Connection ${version} both 127.0.0.4 64999 127.0.0.5 ${password} Add Connection ${version} both 127.0.0.5 64999 127.0.0.4 ${password} Wait Until Keyword Succeeds 15 1 Verify Connection ${version} both 127.0.0.5 ... 64999 127.0.0.4 Check PeerSequence One [Documentation] Node 127.0.0.2 should contain only bindings with peer sequence lower or equals 1 ${resp} Get Bindings 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 : FOR ${node} IN RANGE 3 6 \ Should Not Contain Binding ${resp} ${node}0 10.10.10.${node}0/32 \ Should Not Contain Binding ${resp} ${node}0 10.10.${node}0.0/24 \ Should Not Contain Binding ${resp} ${node}0 10.${node}0.0.0/16 \ Should Not Contain Binding ${resp} ${node}0 ${node}0.0.0.0/8 Check PeerSequence Two [Documentation] Node 127.0.0.2 should contain only bindings with peer sequence lower or equals 2 ${resp} Get Bindings 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 : FOR ${node} IN RANGE 4 6 \ Should Not Contain Binding ${resp} ${node}0 10.10.10.${node}0/32 \ Should Not Contain Binding ${resp} ${node}0 10.10.${node}0.0/24 \ Should Not Contain Binding ${resp} ${node}0 10.${node}0.0.0/16 \ Should Not Contain Binding ${resp} ${node}0 ${node}0.0.0.0/8 Check PeerSequence Three [Documentation] Node 127.0.0.2 should contain only bindings with peer sequence lower or equals 3 ${resp} Get Bindings 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 Should Not Contain Binding ${resp} 50 10.10.10.50/32 Should Not Contain Binding ${resp} 50 10.10.50.0/24 Should Not Contain Binding ${resp} 50 10.50.0.0/16 Should Not Contain Binding ${resp} 50 50.0.0.0/8 Check PeerSequence Mix [Documentation] Node 127.0.0.2 should not contain bindings with peer sequence 1 ${resp} Get Bindings 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 Not Contain Binding ${resp} 30 10.10.10.30/32 sxp Should Not 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 Contain Binding ${resp} 40 10.40.0.0/16 sxp Should Contain Binding ${resp} 40 40.0.0.0/8 sxp Should Contain Binding ${resp} 50 10.10.10.50/32 Should Contain Binding ${resp} 50 10.10.50.0/24 Should Contain Binding ${resp} 50 10.50.0.0/16 Should Contain Binding ${resp} 50 50.0.0.0/8 Check Inbound PL Combinations Filtering [Documentation] Node 127.0.0.1 should containt bindings with peer sequence lower than 1 and pl 1.1.0.0/16 ${resp} Get Bindings 127.0.0.1 Should Contain Binding ${resp} 20 1.1.1.2/32 sxp Should Contain Binding ${resp} 20 1.1.2.0/24 sxp Should Not Contain Binding ${resp} 20 1.2.0.0/16 sxp Should Not Contain Binding ${resp} 20 2.0.0.0/8 sxp Should Not Contain Binding ${resp} 30 1.1.1.3/32 sxp Should Not Contain Binding ${resp} 30 1.1.3.0/24 sxp Should Not Contain Binding ${resp} 30 1.3.0.0/16 sxp Should Not Contain Binding ${resp} 30 3.0.0.0/8 sxp Should Not Contain Binding ${resp} 40 1.1.1.4/32 sxp Should Not Contain Binding ${resp} 40 1.1.4.0/24 sxp Should Not Contain Binding ${resp} 40 1.4.0.0/16 sxp Should Not Contain Binding ${resp} 40 4.0.0.0/8 sxp Should Contain Binding ${resp} 50 1.1.1.5/32 sxp Should Contain Binding ${resp} 50 1.1.5.0/24 sxp Should Contain Binding ${resp} 50 1.5.0.0/16 sxp Should Contain Binding ${resp} 50 5.0.0.0/8 sxp Check Inbound ACL Combinations Filtering [Documentation] Node 127.0.0.1 should containt bindings with peer sequence lower than 2 and acl 1.1.1.0 0.0.0.255 ${resp} Get Bindings 127.0.0.1 Should Contain Binding ${resp} 20 1.1.1.2/32 sxp Should Not Contain Binding ${resp} 20 1.1.2.0/24 sxp Should Not Contain Binding ${resp} 20 1.2.0.0/16 sxp Should Not Contain Binding ${resp} 20 2.0.0.0/8 sxp Should Contain Binding ${resp} 30 1.1.1.3/32 sxp Should Not Contain Binding ${resp} 30 1.1.3.0/24 sxp Should Not Contain Binding ${resp} 30 1.3.0.0/16 sxp Should Not Contain Binding ${resp} 30 3.0.0.0/8 sxp Should Contain Binding ${resp} 40 1.1.1.4/32 sxp Should Contain Binding ${resp} 40 1.1.4.0/24 sxp Should Contain Binding ${resp} 40 1.4.0.0/16 sxp Should Contain Binding ${resp} 40 4.0.0.0/8 sxp Should Not Contain Binding ${resp} 50 1.1.1.5/32 sxp Should Not Contain Binding ${resp} 50 1.1.5.0/24 sxp Should Not Contain Binding ${resp} 50 1.5.0.0/16 sxp Should Not Contain Binding ${resp} 50 5.0.0.0/8 sxp Check Outbound PL Combinations Filtering [Documentation] Node 127.0.0.2 should containt bindings with peer sequence lower than 1 and pl 1.1.1.0/24 ${resp} Get Bindings 127.0.0.2 Should Contain Binding ${resp} 10 1.1.1.1/32 sxp Should Contain Binding ${resp} 10 1.1.1.0/24 sxp Should Not Contain Binding ${resp} 10 1.1.0.0/16 sxp Should Not Contain Binding ${resp} 10 1.0.0.0/8 sxp Should Contain Binding ${resp} 30 1.1.1.3/32 sxp Should Not Contain Binding ${resp} 30 1.1.3.0/24 sxp Should Not Contain Binding ${resp} 30 1.3.0.0/16 sxp Should Not Contain Binding ${resp} 30 3.0.0.0/8 sxp Should Contain Binding ${resp} 40 1.1.1.4/32 sxp Should Not Contain Binding ${resp} 40 1.1.4.0/24 sxp Should Not Contain Binding ${resp} 40 1.4.0.0/16 sxp Should Not Contain Binding ${resp} 40 4.0.0.0/8 sxp Should Not Contain Binding ${resp} 50 1.1.1.5/32 sxp Should Not Contain Binding ${resp} 50 1.1.5.0/24 sxp Should Not Contain Binding ${resp} 50 1.5.0.0/16 sxp Should Not Contain Binding ${resp} 50 5.0.0.0/8 sxp Check Outbound ACL Combinations Filtering [Documentation] Node 127.0.0.2 should containt bindings with peer sequence equals to 0 or greter than 2 and acl 1.1.0.0 0.0.255.255 ${resp} Get Bindings 127.0.0.2 Should Contain Binding ${resp} 10 1.1.1.1/32 sxp Should Contain Binding ${resp} 10 1.1.1.0/24 sxp Should Contain Binding ${resp} 10 1.1.0.0/16 sxp Should Not Contain Binding ${resp} 10 1.0.0.0/8 sxp Should Not Contain Binding ${resp} 30 1.1.1.3/32 sxp Should Not Contain Binding ${resp} 30 1.1.3.0/24 sxp Should Not Contain Binding ${resp} 30 1.3.0.0/16 sxp Should Not Contain Binding ${resp} 30 3.0.0.0/8 sxp Should Not Contain Binding ${resp} 40 1.1.1.4/32 sxp Should Not Contain Binding ${resp} 40 1.1.4.0/24 sxp Should Not Contain Binding ${resp} 40 1.4.0.0/16 sxp Should Not Contain Binding ${resp} 40 4.0.0.0/8 sxp Should Contain Binding ${resp} 50 1.1.1.5/32 sxp Should Contain Binding ${resp} 50 1.1.5.0/24 sxp Should Not Contain Binding ${resp} 50 1.5.0.0/16 sxp Should Not Contain Binding ${resp} 50 5.0.0.0/8 sxp Clean Nodes 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 Clean Peer Groups 127.0.0.1 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