return ver2
-def get_filter_entry(seq, entry_type, sgt="", esgt="", acl="", eacl="", pl="", epl=""):
+def get_filter_entry(seq, entry_type, sgt="", esgt="", acl="", eacl="", pl="", epl="", ps=""):
"""Generate xml containing FilterEntry data
:param seq: Sequence of entry
:type pl: string
:param epl: ExtendedPrefixList matches to be added to entry
:type epl: string
+ :param ps: PeerSequence matches to be added to entry
+ :type ps: string
:returns: String containing xml data for request
"""
elif eacl:
args = eacl.split(',')
entries += add_eacl_entry_xml(args[0], args[1], args[2], args[3])
+ if ps:
+ args = ps.split(',')
+ entries += add_ps_entry_xml(args[0], args[1])
# Wrap entries in ACL/PrefixList according to specified values
if pl or epl:
return add_pl_entry_default_xml(seq, entry_type, entries)
+ elif ps:
+ return add_ps_entry_default_xml(seq, entry_type, entries)
return add_acl_entry_default_xml(seq, entry_type, entries)
return templ.substitute({'ip': ip, 'mask': mask, 'amask': amask, 'wmask': wmask})
+def add_ps_entry_default_xml(seq, entry_type, ps_entries):
+ """Generate xml containing PeerSequence data
+
+ :param seq: Sequence of PrefixList entry
+ :type seq: string
+ :param entry_type: Entry type (permit/deny)
+ :type entry_type: string
+ :param ps_entries: XML data containing PeerSequence entries
+ :type ps_entries: string
+ :returns: String containing xml data for request
+
+ """
+ templ = Template('''
+ <peer-sequence-entry xmlns="urn:opendaylight:sxp:controller">
+ <entry-type>$entry_type</entry-type>
+ <entry-seq>$seq</entry-seq>$ps_entries
+ </peer-sequence-entry>''')
+ return templ.substitute({'seq': seq, 'entry_type': entry_type, 'ps_entries': ps_entries})
+
+
def add_pl_entry_default_xml(seq, entry_type, pl_entries):
"""Generate xml containing PrefixList data
return templ.substitute({'prefix': prefix, 'mask': mask, 'op': op})
+def add_ps_entry_xml(op, length):
+ """Generate xml containing Extended PrefixList data
+
+ :param op: PrefixList option (ge/le/eq)
+ :type op: string
+ :param length: PeerSequence length
+ :type length: string
+ :returns: String containing xml data for request
+
+ """
+ templ = Template('''
+ <peer-sequence-length>$length</peer-sequence-length>
+ <peer-sequence-range>$op</peer-sequence-range>
+ ''')
+ return templ.substitute({'length': length, 'op': op})
+
+
def parse_peer_groups(groups_json):
"""Parse JSON string into Array of PeerGroups
return data
-def get_bindings_from_node_xml(ip, range):
+def get_bindings_from_node_xml(ip, binding_range):
"""Generate xml for Get Bindings request
- :param range: All or only Local bindings
- :type ip: string
+ :param binding_range: All or only Local bindings
+ :type binding_range: string
:param ip: Ipv4 address of node
:type ip: string
:returns: String containing xml data for request
<requested-node xmlns="urn:opendaylight:sxp:controller">$ip</requested-node>
<bindings-range xmlns="urn:opendaylight:sxp:controller">$range</bindings-range>
</input>''')
- data = templ.substitute({'ip': ip, 'range': range})
+ data = templ.substitute({'ip': ip, 'range': binding_range})
return data
--- /dev/null
+*** Settings ***
+Documentation Test suite to verify Outbound filtering functionality
+Suite Setup Setup SXP Environment
+Suite Teardown Clean SXP Environment
+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 ***
+Peer Sequence Filtering
+ [Documentation] Test PeerSequence filter behaviour
+ ${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
+ ${peers} Add Peers 127.0.0.2
+ Add PeerGroup GROUP ${peers}
+ ${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
+ ${peers} Add Peers 127.0.0.2
+ Add PeerGroup GROUP ${peers}
+ ${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
+ ${peers} Add Peers 127.0.0.2
+ Add PeerGroup GROUP ${peers}
+ ${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
+ @{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
+ @{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
+ 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
+ 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 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