Delete outdated comments
[integration/test.git] / csit / suites / sxp / filtering / 010_Inbound_Filtering.robot
1 *** Settings ***
2 Documentation     Test suite to verify Inbound filtering functionality
3 Suite Setup       Setup SXP Environment
4 Suite Teardown    Clean SXP Environment
5 Test Setup        Setup Topology Complex
6 Test Teardown     Clean Nodes
7 Library           RequestsLibrary
8 Library           SSHLibrary
9 Library           ../../../libraries/Sxp.py
10 Library           ../../../libraries/Common.py
11 Resource          ../../../libraries/SxpLib.robot
12 Resource          ../../../libraries/Utils.robot
13 Resource          ../../../libraries/KarafKeywords.robot
14 Resource          ../../../variables/Variables.py
15
16 *** Variables ***
17
18 *** Test Cases ***
19 Access List Filtering
20     [Documentation]     Test ACL filter behaviour during filter update
21     ${peers}         Add Peers      127.0.0.2       127.0.0.4
22     Add PeerGroup    GROUP      ${peers}
23
24     ${entry1}       Get Filter Entry    10  permit      acl=10.10.10.0,0.0.0.255
25     ${entry2}       Get Filter Entry    20  permit      acl=10.0.0.0,0.254.0.0
26     ${entries}      Combine Strings     ${entry1}     ${entry2}
27     Add Filter    GROUP    inbound      ${entries}
28     Wait Until Keyword Succeeds  4   1   Check One Group 4-2
29     Delete Filter   GROUP    inbound
30     ${entries}       Get Filter Entry    10    permit      acl=10.0.0.0,0.255.255.255
31     Add Filter    GROUP    inbound      ${entries}
32     Wait Until Keyword Succeeds  4   1   Check Two Group 4-2
33     Delete Filter   GROUP    inbound
34     ${entries}       Get Filter Entry    10    deny      acl=10.0.0.0,0.255.255.255
35     Add Filter    GROUP    inbound      ${entries}
36     Wait Until Keyword Succeeds  4   1   Check Three Group 4-2
37
38 Access List Sgt Filtering
39     [Documentation]     Test ACL and SGT filter behaviour during filter update
40     ${peers}         Add Peers      127.0.0.3       127.0.0.5
41     Add PeerGroup    GROUP      ${peers}
42
43     ${entry1}       Get Filter Entry    10  permit      sgt=30  acl=10.10.10.0,0.0.0.255
44     ${entry2}       Get Filter Entry    20  permit      sgt=50  acl=10.0.0.0,0.254.0.0
45     ${entries}      Combine Strings     ${entry1}     ${entry2}
46     Add Filter    GROUP    inbound      ${entries}
47     Wait Until Keyword Succeeds  4   1   Check One Group 5-3
48     Delete Filter   GROUP    inbound
49     ${entries}       Get Filter Entry    10    permit      esgt=20,40   acl=10.0.0.0,0.255.255.255
50     Add Filter    GROUP    inbound      ${entries}
51     Wait Until Keyword Succeeds  4   1   Check Two Group 5-3
52
53 Prefix List Filtering
54     [Documentation]     Test Prefix List filter behaviour during filter update
55     ${peers}         Add Peers      127.0.0.2       127.0.0.4
56     Add PeerGroup    GROUP      ${peers}
57
58     ${entry1}       Get Filter Entry    10  permit      pl=10.10.10.0/24
59     ${entry2}       Get Filter Entry    20  permit      epl=10.0.0.0/8,le,16
60     ${entries}      Combine Strings     ${entry1}     ${entry2}
61     Add Filter    GROUP    inbound      ${entries}
62     Wait Until Keyword Succeeds  4   1   Check One Group 4-2
63     Delete Filter   GROUP    inbound
64     ${entries}       Get Filter Entry    10    permit      pl=10.0.0.0/8
65     Add Filter    GROUP    inbound      ${entries}
66     Wait Until Keyword Succeeds  4   1   Check Two Group 4-2
67     Delete Filter   GROUP    inbound
68     ${entries}       Get Filter Entry    10    deny      pl=10.0.0.0/8
69     Add Filter    GROUP    inbound      ${entries}
70     Wait Until Keyword Succeeds  4   1   Check Three Group 4-2
71
72 Prefix List Sgt Filtering
73     [Documentation]     Test Prefix List and SGT filter behaviour during filter update
74     ${peers}         Add Peers      127.0.0.3       127.0.0.5
75     Add PeerGroup    GROUP      ${peers}
76     ${entry1}       Get Filter Entry    10  permit      sgt=30  pl=10.10.10.0/24
77     ${entry2}       Get Filter Entry    20  permit      pl=10.50.0.0/16
78     ${entries}      Combine Strings     ${entry1}     ${entry2}
79     Add Filter    GROUP    inbound      ${entries}
80     Wait Until Keyword Succeeds  4   1   Check One Group 5-3
81     Delete Filter   GROUP    inbound
82     ${entries}       Get Filter Entry   10  permit      esgt=20,40  pl=10.0.0.0/8
83     Add Filter    GROUP    inbound      ${entries}
84     Wait Until Keyword Succeeds  4   1   Check Two Group 5-3
85
86
87 *** Keywords ***
88 Check One Group 4-2
89     [Documentation]     Check if only bindings matching filter from node 4 and 2 are propagated to SXP-DB other nodes
90     ...                 Database should contains only Bindings regarding to these matches:
91     ...                 permit ACL 10.10.10.0 0.0.0.255
92     ...                 permit ACL 10.0.0.0 0.254.0.0
93     ...                 Info regarding filtering https://wiki.opendaylight.org/view/SXP:Beryllium:Developer_Guide
94     ${resp}    Get Bindings Master Database    127.0.0.5
95     Should Contain Binding      ${resp}    10    10.10.10.10/32    sxp
96     Should Contain Binding      ${resp}    10    10.10.10.0/24    sxp
97     Should Contain Binding      ${resp}    10    10.10.0.0/16    sxp
98     Should Contain Binding      ${resp}    10    10.0.0.0/8    sxp
99     Should Contain Binding      ${resp}    20    10.10.10.20/32    sxp
100     Should Not Contain Binding  ${resp}    20    10.10.20.0/24    sxp
101     Should Contain Binding      ${resp}    20    10.20.0.0/16    sxp
102     Should Not Contain Binding  ${resp}    20    20.0.0.0/8    sxp
103     Should Contain Binding      ${resp}    30    10.10.10.30/32    sxp
104     Should Contain Binding      ${resp}    30    10.10.30.0/24    sxp
105     Should Contain Binding      ${resp}    30    10.30.0.0/16    sxp
106     Should Contain Binding      ${resp}    30    30.0.0.0/8    sxp
107     Should Contain Binding      ${resp}    40    10.10.10.40/32    sxp
108     Should Not Contain Binding  ${resp}    40    10.10.40.0/24    sxp
109     Should Contain Binding      ${resp}    40    10.40.0.0/16    sxp
110     Should Not Contain Binding  ${resp}    40    40.0.0.0/8    sxp
111
112     ${resp}    Get Bindings Master Database    127.0.0.3
113     Should Contain Binding      ${resp}    50    10.10.10.50/32    sxp
114     Should Contain Binding      ${resp}    50    10.10.50.0/24    sxp
115     Should Contain Binding      ${resp}    50    10.50.0.0/16    sxp
116     Should Contain Binding      ${resp}    50    50.0.0.0/8    sxp
117
118 Check Two Group 4-2
119     [Documentation]     Check if only bindings matching filter from node 4 and 2 are propagated to SXP-DB of other nodes
120     ...                 Database should contains only Bindings regarding to these matches:
121     ...                 permit ACL 10.0.0.0 0.255.255.255
122     ...                 Info regarding filtering https://wiki.opendaylight.org/view/SXP:Beryllium:Developer_Guide
123     ${resp}    Get Bindings Master Database    127.0.0.5
124     Should Contain Binding      ${resp}    10    10.10.10.10/32    sxp
125     Should Contain Binding      ${resp}    10    10.10.10.0/24    sxp
126     Should Contain Binding      ${resp}    10    10.10.0.0/16    sxp
127     Should Contain Binding      ${resp}    10    10.0.0.0/8    sxp
128     Should Contain Binding      ${resp}    20    10.10.10.20/32    sxp
129     Should Contain Binding      ${resp}    20    10.10.20.0/24    sxp
130     Should Contain Binding      ${resp}    20    10.20.0.0/16    sxp
131     Should Not Contain Binding  ${resp}    20    20.0.0.0/8    sxp
132     Should Contain Binding      ${resp}    30    10.10.10.30/32    sxp
133     Should Contain Binding      ${resp}    30    10.10.30.0/24    sxp
134     Should Contain Binding      ${resp}    30    10.30.0.0/16    sxp
135     Should Contain Binding      ${resp}    30    30.0.0.0/8    sxp
136     Should Contain Binding      ${resp}    40    10.10.10.40/32    sxp
137     Should Contain Binding      ${resp}    40    10.10.40.0/24    sxp
138     Should Contain Binding      ${resp}    40    10.40.0.0/16    sxp
139     Should Not Contain Binding  ${resp}    40    40.0.0.0/8    sxp
140
141     ${resp}    Get Bindings Master Database    127.0.0.3
142     Should Contain Binding      ${resp}    50    10.10.10.50/32    sxp
143     Should Contain Binding      ${resp}    50    10.10.50.0/24    sxp
144     Should Contain Binding      ${resp}    50    10.50.0.0/16    sxp
145     Should Contain Binding      ${resp}    50    50.0.0.0/8    sxp
146
147 Check Three Group 4-2
148     [Documentation]     Check if only bindings matching filter from node 4 and 2 are propagated to SXP-DB of other nodes
149     ...                 Database should contains only Bindings regarding to these matches:
150     ...                 deny ACL 10.0.0.0 0.255.255.255
151     ...                 Info regarding filtering https://wiki.opendaylight.org/view/SXP:Beryllium:Developer_Guide
152     ${resp}    Get Bindings Master Database    127.0.0.5
153     Should Contain Binding      ${resp}    10    10.10.10.10/32    sxp
154     Should Contain Binding      ${resp}    10    10.10.10.0/24    sxp
155     Should Contain Binding      ${resp}    10    10.10.0.0/16    sxp
156     Should Contain Binding      ${resp}    10    10.0.0.0/8    sxp
157     Should Not Contain Binding  ${resp}    20    10.10.10.20/32    sxp
158     Should Not Contain Binding  ${resp}    20    10.10.20.0/24    sxp
159     Should Not Contain Binding  ${resp}    20    10.20.0.0/16    sxp
160     Should Not Contain Binding  ${resp}    20    20.0.0.0/8    sxp
161     Should Contain Binding      ${resp}    30    10.10.10.30/32    sxp
162     Should Contain Binding      ${resp}    30    10.10.30.0/24    sxp
163     Should Contain Binding      ${resp}    30    10.30.0.0/16    sxp
164     Should Contain Binding      ${resp}    30    30.0.0.0/8    sxp
165     Should Not Contain Binding  ${resp}    40    10.10.10.40/32    sxp
166     Should Not Contain Binding  ${resp}    40    10.10.40.0/24    sxp
167     Should Not Contain Binding  ${resp}    40    10.40.0.0/16    sxp
168     Should Not Contain Binding  ${resp}    40    40.0.0.0/8    sxp
169
170 Check One Group 5-3
171     [Documentation]     Check if only bindings matching filter from node 5 and 3 are propagated to SXP-DB of other nodes
172     ...                 Database should contains only Bindings regarding to these matches:
173     ...                 permit SGT 30 ACL 10.10.10.0 0.0.0.255
174     ...                 permit SGT 50 ACL 10.0.0.0 0.254.0.0
175     ...                 Info regarding filtering https://wiki.opendaylight.org/view/SXP:Beryllium:Developer_Guide
176     ${resp}    Get Bindings Master Database    127.0.0.4
177     Should Contain Binding      ${resp}    10    10.10.10.10/32    sxp
178     Should Contain Binding      ${resp}    10    10.10.10.0/24    sxp
179     Should Contain Binding      ${resp}    10    10.10.0.0/16    sxp
180     Should Contain Binding      ${resp}    10    10.0.0.0/8    sxp
181     Should Contain Binding      ${resp}    20    10.10.10.20/32    sxp
182     Should Contain Binding      ${resp}    20    10.10.20.0/24    sxp
183     Should Contain Binding      ${resp}    20    10.20.0.0/16    sxp
184     Should Contain Binding      ${resp}    20    20.0.0.0/8    sxp
185     Should Contain Binding      ${resp}    30    10.10.10.30/32    sxp
186     Should Not Contain Binding  ${resp}    30    10.10.30.0/24    sxp
187     Should Not Contain Binding  ${resp}    30    10.30.0.0/16    sxp
188     Should Not Contain Binding  ${resp}    30    30.0.0.0/8    sxp
189     Should Not Contain Binding  ${resp}    50    10.10.10.50/32    sxp
190     Should Not Contain Binding  ${resp}    50    10.10.50.0/24    sxp
191     Should Contain Binding      ${resp}    50    10.50.0.0/16    sxp
192     Should Not Contain Binding  ${resp}    50    50.0.0.0/8    sxp
193
194     ${resp}    Get Bindings Master Database    127.0.0.2
195     Should Contain Binding      ${resp}    40    10.10.10.40/32    sxp
196     Should Contain Binding      ${resp}    40    10.10.40.0/24    sxp
197     Should Contain Binding      ${resp}    40    10.40.0.0/16    sxp
198     Should Contain Binding      ${resp}    40    40.0.0.0/8    sxp
199
200
201 Check Two Group 5-3
202     [Documentation]     Check if only bindings matching filter from node 5 and 3 are propagated to SXP-DB of other nodes
203     ...                 Database should contains only Bindings regarding to these matches:
204     ...                 permit ESGT 20,40 ACL 10.0.0.0 0.255.255.255
205     ...                 Info regarding filtering https://wiki.opendaylight.org/view/SXP:Beryllium:Developer_Guide
206     ${resp}    Get Bindings Master Database    127.0.0.4
207     Should Contain Binding      ${resp}    10    10.10.10.10/32    sxp
208     Should Contain Binding      ${resp}    10    10.10.10.0/24    sxp
209     Should Contain Binding      ${resp}    10    10.10.0.0/16    sxp
210     Should Contain Binding      ${resp}    10    10.0.0.0/8    sxp
211     Should Contain Binding      ${resp}    20    10.10.10.20/32    sxp
212     Should Contain Binding      ${resp}    20    10.10.20.0/24    sxp
213     Should Contain Binding      ${resp}    20    10.20.0.0/16    sxp
214     Should Contain Binding      ${resp}    20    20.0.0.0/8    sxp
215     Should Contain Binding      ${resp}    30    10.10.10.30/32    sxp
216     Should Contain Binding      ${resp}    30    10.10.30.0/24    sxp
217     Should Contain Binding      ${resp}    30    10.30.0.0/16    sxp
218     Should Not Contain Binding  ${resp}    30    30.0.0.0/8    sxp
219     Should Not Contain Binding  ${resp}    50    10.10.10.50/32    sxp
220     Should Not Contain Binding  ${resp}    50    10.10.50.0/24    sxp
221     Should Not Contain Binding  ${resp}    50    10.50.0.0/16    sxp
222     Should Not Contain Binding  ${resp}    50    50.0.0.0/8    sxp
223
224     ${resp}    Get Bindings Master Database    127.0.0.2
225     Should Contain Binding      ${resp}    40    10.10.10.40/32    sxp
226     Should Contain Binding      ${resp}    40    10.10.40.0/24    sxp
227     Should Contain Binding      ${resp}    40    10.40.0.0/16    sxp
228     Should Contain Binding      ${resp}    40    40.0.0.0/8    sxp
229
230 Clean Nodes
231     Clean Connections    127.0.0.1
232     Clean Connections    127.0.0.2
233     Clean Connections    127.0.0.3
234     Clean Connections    127.0.0.4
235     Clean Connections    127.0.0.5
236     Clean Peer Groups    127.0.0.1
237     Clean Bindings       127.0.0.1
238     Clean Bindings       127.0.0.2
239     Clean Bindings       127.0.0.3
240     Clean Bindings       127.0.0.4
241     Clean Bindings       127.0.0.5