3 # Copyright (c) 2016-2017 Intel Corporation
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
18 from __future__ import absolute_import
19 from __future__ import division
25 from yardstick.network_services.helpers.samplevnf_helper import MultiPortConfig, PortPairs
26 from yardstick.network_services.vnf_generic.vnf.base import VnfdHelper
29 class TestPortPairs(unittest.TestCase):
30 def test_port_pairs_list(self):
31 vnfd = TestMultiPortConfig.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
32 interfaces = vnfd['vdu'][0]['external-interface']
33 port_pairs = PortPairs(interfaces)
34 self.assertEqual(port_pairs.port_pair_list, [("xe0", "xe1")])
36 def test_valid_networks(self):
37 vnfd = TestMultiPortConfig.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
38 interfaces = vnfd['vdu'][0]['external-interface']
39 port_pairs = PortPairs(interfaces)
40 self.assertEqual(port_pairs.valid_networks, [("uplink_0", "downlink_0")])
42 def test_all_ports(self):
43 vnfd = TestMultiPortConfig.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
44 interfaces = vnfd['vdu'][0]['external-interface']
45 port_pairs = PortPairs(interfaces)
46 self.assertEqual(set(port_pairs.all_ports), {"xe0", "xe1"})
48 def test_uplink_ports(self):
49 vnfd = TestMultiPortConfig.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
50 interfaces = vnfd['vdu'][0]['external-interface']
51 port_pairs = PortPairs(interfaces)
52 self.assertEqual(port_pairs.uplink_ports, ["xe0"])
54 def test_downlink_ports(self):
55 vnfd = TestMultiPortConfig.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
56 interfaces = vnfd['vdu'][0]['external-interface']
57 port_pairs = PortPairs(interfaces)
58 self.assertEqual(port_pairs.downlink_ports, ["xe1"])
61 class TestMultiPortConfig(unittest.TestCase):
63 VNFD_0 = {'short-name': 'VpeVnf',
66 [{'network': '152.16.100.20',
67 'netmask': '255.255.255.0',
68 'gateway': '152.16.100.20',
70 {'network': '152.16.40.20',
71 'netmask': '255.255.255.0',
72 'gateway': '152.16.40.20',
74 'description': 'VPE approximation using DPDK',
75 'name': 'vpevnf-baremetal',
77 [{'network': '0064:ff9b:0:0:0:0:9810:6414',
79 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
81 {'network': '0064:ff9b:0:0:0:0:9810:2814',
83 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
85 'id': 'vpevnf-baremetal',
90 'dst_mac': '00:00:00:00:00:04',
91 'vpci': '0000:05:00.0',
92 'local_ip': '152.16.100.19',
93 'type': 'PCI-PASSTHROUGH',
94 'netmask': '255.255.255.0',
96 'bandwidth': '10 Gbps',
98 'dst_ip': '152.16.100.20',
100 'local_iface_name': 'eth0',
101 'local_mac': '00:00:00:00:00:02',
102 'vld_id': 'uplink_0',
104 'vnfd-connection-point-ref': 'xe0',
106 {'virtual-interface':
108 'dst_mac': '00:00:00:00:00:03',
109 'vpci': '0000:05:00.1',
110 'local_ip': '152.16.40.19',
111 'type': 'PCI-PASSTHROUGH',
113 'netmask': '255.255.255.0',
115 'bandwidth': '10 Gbps',
116 'dst_ip': '152.16.40.20',
118 'local_iface_name': 'eth1',
119 'local_mac': '00:00:00:00:00:01',
120 'vld_id': 'downlink_0',
122 'vnfd-connection-point-ref': 'xe1',
125 'description': 'Vpe approximation using DPDK',
127 {'vdu-id': 'vpevnf-baremetal',
133 {'kpi': ['packets_in', 'packets_fwd', 'packets_dropped']},
134 'connection-point': [{'type': 'VPORT', 'name': 'xe0'},
135 {'type': 'VPORT', 'name': 'xe1'}],
136 'id': 'AclApproxVnf', 'name': 'VPEVnfSsh'}
139 'vnfd:vnfd-catalog': {
146 def test_validate_ip_and_prefixlen(self):
147 ip_addr, prefix_len = MultiPortConfig.validate_ip_and_prefixlen('10.20.30.40', '16')
148 self.assertEqual(ip_addr, '10.20.30.40')
149 self.assertEqual(prefix_len, 16)
151 ip_addr, prefix_len = MultiPortConfig.validate_ip_and_prefixlen('::1', '40')
152 self.assertEqual(ip_addr, '0000:0000:0000:0000:0000:0000:0000:0001')
153 self.assertEqual(prefix_len, 40)
155 def test_validate_ip_and_prefixlen_negative(self):
156 with self.assertRaises(AttributeError):
157 MultiPortConfig.validate_ip_and_prefixlen('', '')
159 with self.assertRaises(AttributeError):
160 MultiPortConfig.validate_ip_and_prefixlen('10.20.30.400', '16')
162 with self.assertRaises(AttributeError):
163 MultiPortConfig.validate_ip_and_prefixlen('10.20.30.40', '33')
165 with self.assertRaises(AttributeError):
166 MultiPortConfig.validate_ip_and_prefixlen('::1', '129')
168 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
169 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
170 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
171 def test___init__(self, mock_open, mock_os, ConfigParser):
172 topology_file = mock.Mock()
173 config_tpl = mock.Mock()
174 tmp_file = mock.Mock()
175 vnfd_mock = mock.MagicMock()
176 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
177 self.assertEqual(0, opnfv_vnf.swq)
178 mock_os.path = mock.MagicMock()
179 mock_os.path.isfile = mock.Mock(return_value=False)
180 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
181 self.assertEqual(0, opnfv_vnf.swq)
183 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
184 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
185 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
186 def test_update_timer(self, mock_open, mock_os, ConfigParser):
187 topology_file = mock.Mock()
188 config_tpl = mock.Mock()
189 tmp_file = mock.Mock()
190 vnfd_mock = mock.MagicMock()
191 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
192 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
194 opnfv_vnf.start_core = 0
195 opnfv_vnf.update_write_parser = mock.MagicMock()
196 self.assertEqual(None, opnfv_vnf.update_timer())
198 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
199 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
200 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
201 def test_generate_script(self, mock_open, mock_os, ConfigParser):
202 topology_file = mock.Mock()
203 config_tpl = mock.Mock()
204 tmp_file = mock.Mock()
205 vnfd_mock = VnfdHelper(self.VNFD_0)
206 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
207 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
209 opnfv_vnf.start_core = 0
210 opnfv_vnf.update_write_parser = mock.MagicMock()
211 opnfv_vnf.generate_script_data = \
212 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
213 'arp_config6': '', 'actions': '',
214 'arp_route_tbl': '', 'arp_route_tbl6': '',
216 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
217 self.assertIsNotNone(opnfv_vnf.generate_script(self.VNFD))
218 opnfv_vnf.lb_config = 'HW'
219 self.assertIsNotNone(opnfv_vnf.generate_script(self.VNFD))
221 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
222 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
223 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
224 def test_generate_script_data(self, mock_open, mock_os, ConfigParser):
225 topology_file = mock.Mock()
226 config_tpl = mock.Mock()
227 tmp_file = mock.Mock()
228 vnfd_mock = mock.MagicMock()
229 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
230 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
232 opnfv_vnf.start_core = 0
233 opnfv_vnf.update_write_parser = mock.MagicMock()
234 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
235 opnfv_vnf.vnf_type = 'ACL'
236 opnfv_vnf.generate_link_config = mock.Mock()
237 opnfv_vnf.generate_arp_config = mock.Mock()
238 opnfv_vnf.generate_arp_config6 = mock.Mock()
239 opnfv_vnf.generate_action_config = mock.Mock()
240 opnfv_vnf.generate_rule_config = mock.Mock()
241 self.assertIsNotNone(opnfv_vnf.generate_script_data())
243 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
244 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
245 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
246 def test_generate_rule_config(self, mock_open, mock_os, ConfigParser):
247 topology_file = mock.Mock()
248 config_tpl = mock.Mock()
249 tmp_file = mock.Mock()
250 vnfd_mock = mock.MagicMock()
251 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
252 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
254 opnfv_vnf.start_core = 0
255 opnfv_vnf.update_write_parser = mock.MagicMock()
256 opnfv_vnf.generate_script_data = \
257 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
258 'arp_config6': '', 'actions': '',
260 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
261 opnfv_vnf.get_port_pairs = mock.Mock()
262 opnfv_vnf.vnf_type = 'ACL'
263 opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
264 opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
265 opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
266 opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
267 opnfv_vnf.txrx_pipeline = ''
268 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
269 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
271 self.assertIsNotNone(opnfv_vnf.generate_rule_config())
272 opnfv_vnf.rules = 'new'
273 self.assertIsNotNone(opnfv_vnf.generate_rule_config())
275 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
276 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
277 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
278 def test_generate_action_config(self, mock_open, mock_os, ConfigParser):
279 topology_file = mock.Mock()
280 config_tpl = mock.Mock()
281 tmp_file = mock.Mock()
282 vnfd_mock = mock.MagicMock()
283 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
284 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
286 opnfv_vnf.start_core = 0
287 opnfv_vnf.update_write_parser = mock.MagicMock()
288 opnfv_vnf.generate_script_data = \
289 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
290 'arp_config6': '', 'actions': '',
292 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
293 opnfv_vnf.get_port_pairs = mock.Mock()
294 opnfv_vnf.vnf_type = 'VFW'
295 opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
296 opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
297 opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
298 opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
299 opnfv_vnf.txrx_pipeline = ''
301 self.assertIsNotNone(opnfv_vnf.generate_action_config())
303 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
304 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
305 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
306 def test_generate_arp_config6(self, mock_open, mock_os, ConfigParser):
307 topology_file = mock.Mock()
308 config_tpl = mock.Mock()
309 tmp_file = mock.Mock()
310 vnfd_mock = mock.MagicMock()
311 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
312 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
314 opnfv_vnf.start_core = 0
315 opnfv_vnf.update_write_parser = mock.MagicMock()
316 opnfv_vnf.generate_script_data = \
317 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
318 'arp_config6': '', 'actions': '',
320 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
321 opnfv_vnf.get_port_pairs = mock.Mock()
322 opnfv_vnf.vnf_type = 'VFW'
323 opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
324 opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
325 opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
326 opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
327 opnfv_vnf.txrx_pipeline = ''
329 opnfv_vnf.interfaces = mock.MagicMock()
330 opnfv_vnf.get_ports_gateway6 = mock.Mock()
331 self.assertIsNotNone(opnfv_vnf.generate_arp_config6())
333 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
334 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
335 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
336 def test_generate_arp_config(self, mock_open, mock_os, ConfigParser):
337 topology_file = mock.Mock()
338 config_tpl = mock.Mock()
339 tmp_file = mock.Mock()
340 vnfd_mock = mock.MagicMock()
341 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
342 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
344 opnfv_vnf.start_core = 0
345 opnfv_vnf.update_write_parser = mock.MagicMock()
346 opnfv_vnf.generate_script_data = \
347 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
348 'arp_config6': '', 'actions': '',
350 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
351 opnfv_vnf.get_port_pairs = mock.Mock()
352 opnfv_vnf.vnf_type = 'VFW'
353 opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
354 opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
355 opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
356 opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
357 opnfv_vnf.txrx_pipeline = ''
359 opnfv_vnf.interfaces = mock.MagicMock()
360 opnfv_vnf.get_ports_gateway6 = mock.Mock()
361 self.assertIsNotNone(opnfv_vnf.generate_arp_config())
363 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
364 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
365 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
366 def test_get_ports_gateway(self, mock_open, mock_os, ConfigParser):
367 topology_file = mock.Mock()
368 config_tpl = mock.Mock()
369 tmp_file = mock.Mock()
370 vnfd_mock = mock.MagicMock()
371 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
372 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
374 opnfv_vnf.start_core = 0
375 opnfv_vnf.update_write_parser = mock.MagicMock()
376 opnfv_vnf.generate_script_data = \
377 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
378 'arp_config6': '', 'actions': '',
380 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
381 opnfv_vnf.get_port_pairs = mock.Mock()
382 opnfv_vnf.vnf_type = 'VFW'
383 opnfv_vnf.txrx_pipeline = ''
385 opnfv_vnf.interfaces = mock.MagicMock()
386 opnfv_vnf.get_ports_gateway6 = mock.Mock()
387 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
388 self.assertIsNotNone(opnfv_vnf.get_ports_gateway('xe0'))
390 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
391 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
392 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
393 def test_get_ports_gateway6(self, mock_open, mock_os, ConfigParser):
394 topology_file = mock.Mock()
395 config_tpl = mock.Mock()
396 tmp_file = mock.Mock()
397 vnfd_mock = mock.MagicMock()
398 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
399 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
401 opnfv_vnf.start_core = 0
402 opnfv_vnf.update_write_parser = mock.MagicMock()
403 opnfv_vnf.generate_script_data = \
404 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
405 'arp_config6': '', 'actions': '',
407 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
408 opnfv_vnf.get_port_pairs = mock.Mock()
409 opnfv_vnf.vnf_type = 'VFW'
410 opnfv_vnf.txrx_pipeline = ''
412 opnfv_vnf.interfaces = mock.MagicMock()
413 opnfv_vnf.get_ports_gateway6 = mock.Mock()
414 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
415 self.assertIsNotNone(opnfv_vnf.get_ports_gateway6('xe0'))
417 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
418 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
419 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
420 def test_get_netmask_gateway(self, mock_open, mock_os, ConfigParser):
421 topology_file = mock.Mock()
422 config_tpl = mock.Mock()
423 tmp_file = mock.Mock()
424 vnfd_mock = mock.MagicMock()
425 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
426 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
428 opnfv_vnf.start_core = 0
429 opnfv_vnf.update_write_parser = mock.MagicMock()
430 opnfv_vnf.generate_script_data = \
431 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
432 'arp_config6': '', 'actions': '',
434 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
435 opnfv_vnf.get_port_pairs = mock.Mock()
436 opnfv_vnf.vnf_type = 'VFW'
437 opnfv_vnf.txrx_pipeline = ''
439 opnfv_vnf.interfaces = mock.MagicMock()
440 opnfv_vnf.get_ports_gateway6 = mock.Mock()
441 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
442 self.assertIsNotNone(opnfv_vnf.get_netmask_gateway('xe0'))
444 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
445 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
446 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
447 def test_get_netmask_gateway6(self, mock_open, mock_os, ConfigParser):
448 topology_file = mock.Mock()
449 config_tpl = mock.Mock()
450 tmp_file = mock.Mock()
451 vnfd_mock = mock.MagicMock()
452 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
453 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
455 opnfv_vnf.start_core = 0
456 opnfv_vnf.update_write_parser = mock.MagicMock()
457 opnfv_vnf.generate_script_data = \
458 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
459 'arp_config6': '', 'actions': '',
461 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
462 opnfv_vnf.get_port_pairs = mock.Mock()
463 opnfv_vnf.vnf_type = 'VFW'
464 opnfv_vnf.txrx_pipeline = ''
466 opnfv_vnf.interfaces = mock.MagicMock()
467 opnfv_vnf.get_ports_gateway6 = mock.Mock()
468 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
469 self.assertIsNotNone(opnfv_vnf.get_netmask_gateway6('xe0'))
471 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
472 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
473 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
474 def test_generate_link_config(self, mock_open, mock_os, ConfigParser):
475 topology_file = mock.Mock()
476 config_tpl = mock.Mock()
477 tmp_file = mock.Mock()
478 vnfd_mock = mock.MagicMock()
480 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
481 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
483 opnfv_vnf.start_core = 0
484 opnfv_vnf.update_write_parser = mock.MagicMock()
485 opnfv_vnf.generate_script_data = \
486 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
487 'arp_config6': '', 'actions': '',
489 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
490 opnfv_vnf.get_port_pairs = mock.Mock()
491 opnfv_vnf.vnf_type = 'VFW'
492 opnfv_vnf.txrx_pipeline = ''
494 opnfv_vnf.get_ports_gateway6 = mock.Mock()
495 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
496 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
497 opnfv_vnf.all_ports = ['32', '1', '987']
498 opnfv_vnf.validate_ip_and_prefixlen = mock.Mock(return_value=('10.20.30.40', 16))
500 result = opnfv_vnf.generate_link_config()
501 self.assertEqual(len(result.splitlines()), 9)
503 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
504 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
505 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
506 def test_generate_config(self, mock_open, mock_os, ConfigParser):
507 topology_file = mock.Mock()
508 config_tpl = mock.Mock()
509 tmp_file = mock.Mock()
510 vnfd_mock = mock.MagicMock()
511 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
512 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
514 opnfv_vnf.start_core = 0
515 opnfv_vnf.update_write_parser = mock.MagicMock()
516 opnfv_vnf.generate_script_data = \
517 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
518 'arp_config6': '', 'actions': '',
520 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
521 opnfv_vnf.txrx_pipeline = ''
523 opnfv_vnf.get_ports_gateway6 = mock.Mock()
524 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
525 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
526 opnfv_vnf.generate_lb_to_port_pair_mapping = mock.Mock()
527 opnfv_vnf.generate_config_data = mock.Mock()
528 opnfv_vnf.write_parser = mock.MagicMock()
529 opnfv_vnf.is_openstack = True
530 self.assertIsNone(opnfv_vnf.generate_config())
531 opnfv_vnf.is_openstack = False
532 self.assertIsNone(opnfv_vnf.generate_config())
534 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
535 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
536 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
537 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
538 def test_get_config_tpl_data(self, mock_open, mock_os, ConfigParser,
540 topology_file = mock.Mock()
541 config_tpl = mock.Mock()
542 tmp_file = mock.Mock()
543 vnfd_mock = mock.MagicMock()
544 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
546 opnfv_vnf.start_core = 0
547 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
548 opnfv_vnf.txrx_pipeline = ''
550 opnfv_vnf.write_parser = mock.MagicMock()
551 opnfv_vnf.read_parser = mock.MagicMock()
552 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
553 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=True)
554 opnfv_vnf.read_parser.get = mock.Mock(return_value='filename')
556 self.assertIsNotNone(opnfv_vnf.get_config_tpl_data('filename'))
558 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
559 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
560 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
561 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
562 def test_get_txrx_tpl_data(self, mock_open, mock_os, ConfigParser,
564 topology_file = mock.Mock()
565 config_tpl = mock.Mock()
566 tmp_file = mock.Mock()
567 vnfd_mock = mock.MagicMock()
568 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
570 opnfv_vnf.start_core = 0
571 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
572 opnfv_vnf.txrx_pipeline = ''
574 opnfv_vnf.write_parser = mock.MagicMock()
575 opnfv_vnf.read_parser = mock.MagicMock()
576 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
577 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=True)
578 opnfv_vnf.read_parser.get = mock.Mock(return_value='filename')
580 self.assertIsNotNone(opnfv_vnf.get_txrx_tpl_data('filename'))
582 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
583 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
584 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
585 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
586 def test_init_write_parser_template(self, mock_open, mock_os, ConfigParser,
588 topology_file = mock.Mock()
589 config_tpl = mock.Mock()
590 tmp_file = mock.Mock()
591 vnfd_mock = mock.MagicMock()
592 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
594 opnfv_vnf.start_core = 0
595 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
596 opnfv_vnf.txrx_pipeline = ''
598 opnfv_vnf.write_parser = mock.MagicMock()
599 opnfv_vnf.read_parser = mock.MagicMock()
600 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
601 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=True)
602 opnfv_vnf.read_parser.get = mock.Mock(return_value='filename')
604 self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
605 opnfv_vnf.write_parser.add_section = mock.MagicMock()
606 opnfv_vnf.read_parser.item = mock.Mock(return_value=[1, 2, 3])
607 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=False)
608 opnfv_vnf.write_parser.set = mock.Mock()
609 self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
611 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
612 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
613 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
614 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
615 def test_init_write_parser_template_2(self, mock_open, mock_os, ConfigParser,
617 topology_file = mock.Mock()
618 config_tpl = mock.Mock()
619 tmp_file = mock.Mock()
620 vnfd_mock = mock.MagicMock()
621 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
623 opnfv_vnf.start_core = 0
624 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
625 opnfv_vnf.txrx_pipeline = ''
627 opnfv_vnf.write_parser = mock.MagicMock()
628 opnfv_vnf.read_parser = mock.MagicMock()
629 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
630 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
631 opnfv_vnf.write_parser.set = mock.Mock()
632 opnfv_vnf.read_parser.items = mock.MagicMock()
633 self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
635 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
636 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
637 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
638 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
639 def test_update_write_parser(self, mock_open, mock_os, ConfigParser,
641 topology_file = mock.Mock()
642 config_tpl = mock.Mock()
643 tmp_file = mock.Mock()
644 vnfd_mock = mock.MagicMock()
645 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
647 opnfv_vnf.start_core = 0
648 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
649 opnfv_vnf.txrx_pipeline = ''
651 opnfv_vnf.write_parser = mock.MagicMock()
652 opnfv_vnf.read_parser = mock.MagicMock()
653 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
654 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
655 opnfv_vnf.write_parser.set = mock.Mock()
656 opnfv_vnf.write_parser.add_section = mock.Mock()
657 opnfv_vnf.read_parser.items = mock.MagicMock()
658 opnfv_vnf.pipeline_counter = 0
659 self.assertIsNone(opnfv_vnf.update_write_parser({'filename': 1}))
661 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
662 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
663 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
664 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
665 def test_get_worker_threads(self, mock_open, mock_os, ConfigParser,
667 topology_file = mock.Mock()
668 config_tpl = mock.Mock()
669 tmp_file = mock.Mock()
670 vnfd_mock = mock.MagicMock()
671 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
673 opnfv_vnf.start_core = 0
674 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
675 opnfv_vnf.txrx_pipeline = ''
677 opnfv_vnf.write_parser = mock.MagicMock()
678 opnfv_vnf.read_parser = mock.MagicMock()
679 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
680 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
681 opnfv_vnf.write_parser.set = mock.Mock()
682 opnfv_vnf.write_parser.add_section = mock.Mock()
683 opnfv_vnf.read_parser.items = mock.MagicMock()
684 opnfv_vnf.pipeline_counter = 0
685 opnfv_vnf.worker_config = '1t'
686 result = opnfv_vnf.get_worker_threads(1)
687 self.assertEqual(1, result)
688 opnfv_vnf.worker_config = '2t'
689 result = opnfv_vnf.get_worker_threads(2)
690 self.assertEqual(2, result)
691 opnfv_vnf.worker_config = '2t'
692 result = opnfv_vnf.get_worker_threads(3)
693 self.assertEqual(2, result)
695 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
696 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
697 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
698 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
699 def test_generate_next_core_id(self, mock_open, mock_os, ConfigParser,
701 topology_file = mock.Mock()
702 config_tpl = mock.Mock()
703 tmp_file = mock.Mock()
704 vnfd_mock = mock.MagicMock()
705 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
707 opnfv_vnf.start_core = 0
708 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
709 opnfv_vnf.txrx_pipeline = ''
711 opnfv_vnf.write_parser = mock.MagicMock()
712 opnfv_vnf.read_parser = mock.MagicMock()
713 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
714 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
715 opnfv_vnf.write_parser.set = mock.Mock()
716 opnfv_vnf.write_parser.add_section = mock.Mock()
717 opnfv_vnf.read_parser.items = mock.MagicMock()
718 opnfv_vnf.pipeline_counter = 0
719 opnfv_vnf.worker_config = '1t'
720 opnfv_vnf.start_core = 0
721 result = opnfv_vnf.generate_next_core_id()
722 self.assertEqual(None, result)
723 opnfv_vnf.worker_config = '2t'
724 opnfv_vnf.start_core = 'a'
725 self.assertRaises(ValueError, opnfv_vnf.generate_next_core_id)
726 opnfv_vnf.worker_config = '2t'
727 opnfv_vnf.start_core = 1
728 result = opnfv_vnf.generate_next_core_id()
729 self.assertEqual(None, result)
731 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
732 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
733 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
734 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
735 def test_generate_lb_to_port_pair_mapping(self, mock_open, mock_os, ConfigParser,
737 topology_file = mock.Mock()
738 config_tpl = mock.Mock()
739 tmp_file = mock.Mock()
740 vnfd_mock = VnfdHelper(self.VNFD_0)
741 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
743 opnfv_vnf.start_core = 0
744 opnfv_vnf.txrx_pipeline = ''
746 opnfv_vnf.write_parser = mock.MagicMock()
747 opnfv_vnf.read_parser = mock.MagicMock()
748 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
749 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
750 opnfv_vnf.write_parser.set = mock.Mock()
751 opnfv_vnf.write_parser.add_section = mock.Mock()
752 opnfv_vnf.read_parser.items = mock.MagicMock()
753 opnfv_vnf.pipeline_counter = 0
754 opnfv_vnf.worker_config = '1t'
755 opnfv_vnf.start_core = 0
756 opnfv_vnf.lb_count = 1
757 opnfv_vnf._port_pairs = PortPairs(vnfd_mock.interfaces)
758 opnfv_vnf.port_pair_list = opnfv_vnf._port_pairs.port_pair_list
759 result = opnfv_vnf.generate_lb_to_port_pair_mapping()
760 self.assertEqual(None, result)
761 result = opnfv_vnf.set_priv_to_pub_mapping()
762 self.assertEqual('(0,1)', result)
764 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
765 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
766 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
767 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
768 def test_set_priv_que_handler(self, mock_open, mock_os, ConfigParser,
770 topology_file = mock.Mock()
771 config_tpl = mock.Mock()
772 tmp_file = mock.Mock()
773 vnfd_mock = VnfdHelper(self.VNFD_0)
774 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
776 opnfv_vnf.start_core = 0
777 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
778 opnfv_vnf.port_pairs = [("xe0", "xe1")]
779 opnfv_vnf.txrx_pipeline = ''
781 opnfv_vnf.write_parser = mock.MagicMock()
782 opnfv_vnf.read_parser = mock.MagicMock()
783 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
784 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
785 opnfv_vnf.write_parser.set = mock.Mock()
786 opnfv_vnf.write_parser.add_section = mock.Mock()
787 opnfv_vnf.read_parser.items = mock.MagicMock()
788 opnfv_vnf.pipeline_counter = 0
789 opnfv_vnf.worker_config = '1t'
790 opnfv_vnf.start_core = 0
791 opnfv_vnf.lb_count = 1
792 result = opnfv_vnf.set_priv_que_handler()
793 self.assertEqual(None, result)
795 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
796 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
797 def test_generate_arp_route_tbl(self, *_):
798 topology_file = mock.Mock()
799 config_tpl = mock.Mock()
801 vnfd_mock = mock.MagicMock()
802 vnfd_mock.port_num.side_effect = ['32', '1', '987']
803 vnfd_mock.find_interface.side_effect = [
805 'virtual-interface': {
806 'dst_ip': '10.20.30.40',
811 'virtual-interface': {
812 'dst_ip': '10.200.30.40',
817 'virtual-interface': {
818 'dst_ip': '10.20.3.40',
824 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
825 opnfv_vnf.all_ports = [3, 2, 5]
827 expected = 'routeadd net 32 10.20.30.40 0xfffff000\n' \
828 'routeadd net 1 10.200.30.40 0xffffff00\n' \
829 'routeadd net 987 10.20.3.40 0xff000000'
830 result = opnfv_vnf.generate_arp_route_tbl()
831 self.assertEqual(result, expected)
833 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
834 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
835 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
836 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
837 def test_generate_arpicmp_data(self, mock_open, mock_os, ConfigParser,
839 topology_file = mock.Mock()
840 config_tpl = mock.Mock()
841 tmp_file = mock.Mock()
842 vnfd_mock = mock.MagicMock()
843 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
845 opnfv_vnf.start_core = 0
846 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
847 opnfv_vnf.port_pairs = [("xe0", "xe1")]
848 opnfv_vnf.txrx_pipeline = ''
850 opnfv_vnf.write_parser = mock.MagicMock()
851 opnfv_vnf.read_parser = mock.MagicMock()
852 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
853 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
854 opnfv_vnf.write_parser.set = mock.Mock()
855 opnfv_vnf.write_parser.add_section = mock.Mock()
856 opnfv_vnf.read_parser.items = mock.MagicMock()
857 opnfv_vnf.pipeline_counter = 0
858 opnfv_vnf.worker_config = '1t'
859 opnfv_vnf.start_core = 0
860 opnfv_vnf.lb_count = 1
861 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
862 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
863 result = opnfv_vnf.generate_arpicmp_data()
864 self.assertIsNotNone(result)
865 opnfv_vnf.nfv_type = 'ovs'
866 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
867 result = opnfv_vnf.generate_arpicmp_data()
868 self.assertIsNotNone(result)
869 opnfv_vnf.nfv_type = 'openstack'
870 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
871 result = opnfv_vnf.generate_arpicmp_data()
872 self.assertIsNotNone(result)
873 opnfv_vnf.lb_config = 'HW'
874 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
875 result = opnfv_vnf.generate_arpicmp_data()
876 self.assertIsNotNone(result)
878 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
879 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
880 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
881 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
882 def test_generate_final_txrx_data(self, mock_open, mock_os, ConfigParser,
884 topology_file = mock.Mock()
885 config_tpl = mock.Mock()
886 tmp_file = mock.Mock()
887 vnfd_mock = mock.MagicMock()
888 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
890 opnfv_vnf.start_core = 0
891 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
892 opnfv_vnf.port_pairs = [("xe0", "xe1")]
893 opnfv_vnf.txrx_pipeline = ''
895 opnfv_vnf.write_parser = mock.MagicMock()
896 opnfv_vnf.read_parser = mock.MagicMock()
897 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
898 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
899 opnfv_vnf.write_parser.set = mock.Mock()
900 opnfv_vnf.write_parser.add_section = mock.Mock()
901 opnfv_vnf.read_parser.items = mock.MagicMock()
902 opnfv_vnf.pipeline_counter = 0
903 opnfv_vnf.worker_config = '1t'
904 opnfv_vnf.start_core = 0
905 opnfv_vnf.lb_count = 1
906 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
907 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
908 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
909 opnfv_vnf.ports_len = 2
910 opnfv_vnf.lb_index = 1
911 opnfv_vnf.pktq_out_os = [1, 2]
912 result = opnfv_vnf.generate_final_txrx_data()
913 self.assertIsNotNone(result)
914 opnfv_vnf.nfv_type = 'openstack'
915 opnfv_vnf.pktq_out_os = [1, 2]
916 opnfv_vnf.lb_index = 1
917 result = opnfv_vnf.generate_final_txrx_data()
918 self.assertIsNotNone(result)
920 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
921 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
922 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
923 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
924 def test_generate_initial_txrx_data(self, mock_open, mock_os,
925 ConfigParser, OrderedDict):
926 topology_file = mock.Mock()
927 config_tpl = mock.Mock()
928 tmp_file = mock.Mock()
929 vnfd_mock = mock.MagicMock()
930 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
932 opnfv_vnf.start_core = 0
933 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
934 opnfv_vnf.port_pairs = [("xe0", "xe1")]
935 opnfv_vnf.txrx_pipeline = ''
937 opnfv_vnf.write_parser = mock.MagicMock()
938 opnfv_vnf.read_parser = mock.MagicMock()
939 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
940 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
941 opnfv_vnf.write_parser.set = mock.Mock()
942 opnfv_vnf.write_parser.add_section = mock.Mock()
943 opnfv_vnf.read_parser.items = mock.MagicMock()
944 opnfv_vnf.pipeline_counter = 0
945 opnfv_vnf.worker_config = '1t'
946 opnfv_vnf.start_core = 0
947 opnfv_vnf.lb_count = 1
948 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
949 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
950 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
951 opnfv_vnf.lb_index = 1
952 opnfv_vnf.ports_len = 2
953 result = opnfv_vnf.generate_initial_txrx_data()
954 self.assertIsNotNone(result)
955 opnfv_vnf.nfv_type = 'openstack'
956 opnfv_vnf.pktq_out_os = [1, 2]
957 result = opnfv_vnf.generate_initial_txrx_data()
958 self.assertIsNotNone(result)
959 opnfv_vnf.nfv_type = 'ovs'
960 opnfv_vnf.init_ovs = False
961 opnfv_vnf.ovs_pktq_out = ''
962 opnfv_vnf.pktq_out_os = [1, 2]
963 opnfv_vnf.lb_index = 1
964 result = opnfv_vnf.generate_initial_txrx_data()
965 self.assertIsNotNone(result)
966 opnfv_vnf.nfv_type = 'ovs'
967 opnfv_vnf.init_ovs = True
968 opnfv_vnf.pktq_out_os = [1, 2]
969 opnfv_vnf.ovs_pktq_out = ''
970 opnfv_vnf.lb_index = 1
971 result = opnfv_vnf.generate_initial_txrx_data()
972 self.assertIsNotNone(result)
974 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
975 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
976 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
977 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
978 def test_generate_lb_data(self, mock_open, mock_os, ConfigParser,
980 topology_file = mock.Mock()
981 config_tpl = mock.Mock()
982 tmp_file = mock.Mock()
983 vnfd_mock = mock.MagicMock()
984 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
986 opnfv_vnf.start_core = 0
987 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
988 opnfv_vnf.port_pairs = [("xe0", "xe1")]
989 opnfv_vnf.txrx_pipeline = ''
991 opnfv_vnf.write_parser = mock.MagicMock()
992 opnfv_vnf.read_parser = mock.MagicMock()
993 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
994 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
995 opnfv_vnf.write_parser.set = mock.Mock()
996 opnfv_vnf.write_parser.add_section = mock.Mock()
997 opnfv_vnf.read_parser.items = mock.MagicMock()
998 opnfv_vnf.pipeline_counter = 0
999 opnfv_vnf.worker_config = '1t'
1000 opnfv_vnf.start_core = 0
1001 opnfv_vnf.lb_count = 1
1002 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
1003 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
1004 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1005 opnfv_vnf.lb_index = 1
1006 opnfv_vnf.ports_len = 2
1007 opnfv_vnf.prv_que_handler = 0
1008 result = opnfv_vnf.generate_lb_data()
1009 self.assertIsNotNone(result)
1011 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
1012 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
1013 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
1014 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
1015 def test_generate_vnf_data(self, mock_open, mock_os, ConfigParser,
1017 topology_file = mock.Mock()
1018 config_tpl = mock.Mock()
1019 tmp_file = mock.Mock()
1020 vnfd_mock = mock.MagicMock()
1021 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
1022 opnfv_vnf.socket = 0
1023 opnfv_vnf.start_core = 0
1024 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
1025 opnfv_vnf.port_pairs = [("xe0", "xe1")]
1026 opnfv_vnf.txrx_pipeline = ''
1027 opnfv_vnf.rules = ''
1028 opnfv_vnf.write_parser = mock.MagicMock()
1029 opnfv_vnf.read_parser = mock.MagicMock()
1030 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
1031 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
1032 opnfv_vnf.write_parser.set = mock.Mock()
1033 opnfv_vnf.write_parser.add_section = mock.Mock()
1034 opnfv_vnf.read_parser.items = mock.MagicMock()
1035 opnfv_vnf.pipeline_counter = 0
1036 opnfv_vnf.worker_config = '1t'
1037 opnfv_vnf.start_core = 0
1038 opnfv_vnf.lb_count = 1
1039 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
1040 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
1041 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1042 opnfv_vnf.lb_index = 1
1043 opnfv_vnf.ports_len = 1
1044 opnfv_vnf.pktq_out = ['1', '2']
1045 opnfv_vnf.vnf_tpl = {'public_ip_port_range': '98164810',
1046 'vnf_set': '(2,4,5)'}
1047 opnfv_vnf.prv_que_handler = 0
1048 result = opnfv_vnf.generate_vnf_data()
1049 self.assertIsNotNone(result)
1050 opnfv_vnf.lb_config = 'HW'
1052 result = opnfv_vnf.generate_vnf_data()
1053 self.assertIsNotNone(result)
1054 opnfv_vnf.lb_config = 'HW'
1056 opnfv_vnf.vnf_type = 'ACL'
1057 result = opnfv_vnf.generate_vnf_data()
1058 self.assertIsNotNone(result)
1060 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
1061 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
1062 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
1063 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
1064 def test_generate_config_data(self, mock_open, mock_os, ConfigParser,
1066 topology_file = mock.Mock()
1067 config_tpl = mock.Mock()
1068 tmp_file = mock.Mock()
1069 vnfd_mock = VnfdHelper(self.VNFD_0)
1070 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
1071 opnfv_vnf.socket = 0
1072 opnfv_vnf.start_core = 0
1073 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
1074 opnfv_vnf.port_pairs = [("xe0", "xe1")]
1075 opnfv_vnf.txrx_pipeline = ''
1076 opnfv_vnf.rules = ''
1077 opnfv_vnf.write_parser = mock.MagicMock()
1078 opnfv_vnf.read_parser = mock.MagicMock()
1079 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
1080 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
1081 opnfv_vnf.write_parser.set = mock.Mock()
1082 opnfv_vnf.write_parser.add_section = mock.Mock()
1083 opnfv_vnf.read_parser.items = mock.MagicMock()
1084 opnfv_vnf.pipeline_counter = 0
1085 opnfv_vnf.worker_config = '1t'
1086 opnfv_vnf.start_core = 0
1087 opnfv_vnf.lb_count = 1
1088 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
1089 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
1090 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1091 opnfv_vnf.lb_index = 1
1092 opnfv_vnf.ports_len = 1
1093 opnfv_vnf.pktq_out = ['1', '2']
1094 opnfv_vnf.prv_que_handler = 0
1095 opnfv_vnf.init_write_parser_template = mock.Mock()
1096 opnfv_vnf.arpicmp_tpl = mock.MagicMock()
1097 opnfv_vnf.txrx_tpl = mock.MagicMock()
1098 opnfv_vnf.loadb_tpl = mock.MagicMock()
1099 opnfv_vnf.vnf_tpl = {'public_ip_port_range': '98164810 (1,65535)',
1100 'vnf_set': "(2,4,5)"}
1101 opnfv_vnf.generate_vnf_data = mock.Mock(return_value={})
1102 opnfv_vnf.update_write_parser = mock.Mock()
1103 result = opnfv_vnf.generate_config_data()
1104 self.assertIsNone(result)
1105 opnfv_vnf.generate_final_txrx_data = mock.Mock()
1106 opnfv_vnf.update_write_parser = mock.Mock()
1107 result = opnfv_vnf.generate_config_data()
1108 self.assertIsNone(result)
1109 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1110 opnfv_vnf.lb_index = 1
1111 opnfv_vnf.ports_len = 1
1112 opnfv_vnf.pktq_out = ['1', '2']
1113 opnfv_vnf.prv_que_handler = 0
1114 opnfv_vnf.init_write_parser_template = mock.Mock()
1115 opnfv_vnf.arpicmp_tpl = mock.MagicMock()
1116 opnfv_vnf.txrx_tpl = mock.MagicMock()
1117 opnfv_vnf.loadb_tpl = mock.MagicMock()
1118 opnfv_vnf.vnf_type = 'CGNAPT'
1119 opnfv_vnf.update_timer = mock.Mock()
1120 opnfv_vnf.port_pair_list = [("xe0", "xe1"), ("xe0", "xe2")]
1121 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1122 opnfv_vnf.generate_arpicmp_data = mock.Mock()
1123 result = opnfv_vnf.generate_config_data()
1124 self.assertIsNone(result)
1126 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
1127 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
1128 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
1129 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
1130 def test_init_eal(self, mock_open, mock_os, ConfigParser,
1132 topology_file = mock.Mock()
1133 config_tpl = mock.Mock()
1134 tmp_file = mock.Mock()
1135 vnfd_mock = mock.MagicMock()
1136 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
1137 opnfv_vnf.socket = 0
1138 opnfv_vnf.start_core = 0
1139 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
1140 opnfv_vnf.port_pairs = [("xe0", "xe1")]
1141 opnfv_vnf.txrx_pipeline = ''
1142 opnfv_vnf.rules = ''
1143 opnfv_vnf.write_parser = mock.MagicMock()
1144 opnfv_vnf.read_parser = mock.MagicMock()
1145 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
1146 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
1147 opnfv_vnf.write_parser.set = mock.Mock()
1148 opnfv_vnf.write_parser.add_section = mock.Mock()
1149 opnfv_vnf.read_parser.items = mock.MagicMock()
1150 opnfv_vnf.pipeline_counter = 0
1151 opnfv_vnf.worker_config = '1t'
1152 opnfv_vnf.start_core = 0
1153 opnfv_vnf.lb_count = 1
1154 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
1155 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
1156 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1157 opnfv_vnf.lb_index = 1
1158 opnfv_vnf.ports_len = 1
1159 opnfv_vnf.pktq_out = ['1', '2']
1160 opnfv_vnf.prv_que_handler = 0
1161 opnfv_vnf.init_write_parser_template = mock.Mock()
1162 opnfv_vnf.arpicmp_tpl = mock.MagicMock()
1163 opnfv_vnf.txrx_tpl = mock.MagicMock()
1164 opnfv_vnf.loadb_tpl = mock.MagicMock()
1165 opnfv_vnf.vnf_tpl = {'public_ip_port_range': '98164810 (1,65535)'}
1166 opnfv_vnf.generate_vnf_data = mock.Mock(return_value={})
1167 opnfv_vnf.update_write_parser = mock.Mock()
1168 opnfv_vnf.tmp_file = "/tmp/config"
1169 result = opnfv_vnf.init_eal()
1170 self.assertIsNone(result)