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': '',
215 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
216 self.assertIsNotNone(opnfv_vnf.generate_script(self.VNFD))
217 opnfv_vnf.lb_config = 'HW'
218 self.assertIsNotNone(opnfv_vnf.generate_script(self.VNFD))
220 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
221 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
222 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
223 def test_generate_script_data(self, mock_open, mock_os, ConfigParser):
224 topology_file = mock.Mock()
225 config_tpl = mock.Mock()
226 tmp_file = mock.Mock()
227 vnfd_mock = mock.MagicMock()
228 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
229 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
231 opnfv_vnf.start_core = 0
232 opnfv_vnf.update_write_parser = mock.MagicMock()
233 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
234 opnfv_vnf.vnf_type = 'ACL'
235 opnfv_vnf.generate_link_config = mock.Mock()
236 opnfv_vnf.generate_arp_config = mock.Mock()
237 opnfv_vnf.generate_arp_config6 = mock.Mock()
238 opnfv_vnf.generate_action_config = mock.Mock()
239 opnfv_vnf.generate_rule_config = mock.Mock()
240 self.assertIsNotNone(opnfv_vnf.generate_script_data())
242 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
243 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
244 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
245 def test_generate_rule_config(self, mock_open, mock_os, ConfigParser):
246 topology_file = mock.Mock()
247 config_tpl = mock.Mock()
248 tmp_file = mock.Mock()
249 vnfd_mock = mock.MagicMock()
250 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
251 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
253 opnfv_vnf.start_core = 0
254 opnfv_vnf.update_write_parser = mock.MagicMock()
255 opnfv_vnf.generate_script_data = \
256 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
257 'arp_config6': '', 'actions': '',
259 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
260 opnfv_vnf.get_port_pairs = mock.Mock()
261 opnfv_vnf.vnf_type = 'ACL'
262 opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
263 opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
264 opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
265 opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
266 opnfv_vnf.txrx_pipeline = ''
267 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
268 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
270 self.assertIsNotNone(opnfv_vnf.generate_rule_config())
271 opnfv_vnf.rules = 'new'
272 self.assertIsNotNone(opnfv_vnf.generate_rule_config())
274 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
275 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
276 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
277 def test_generate_action_config(self, mock_open, mock_os, ConfigParser):
278 topology_file = mock.Mock()
279 config_tpl = mock.Mock()
280 tmp_file = mock.Mock()
281 vnfd_mock = mock.MagicMock()
282 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
283 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
285 opnfv_vnf.start_core = 0
286 opnfv_vnf.update_write_parser = mock.MagicMock()
287 opnfv_vnf.generate_script_data = \
288 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
289 'arp_config6': '', 'actions': '',
291 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
292 opnfv_vnf.get_port_pairs = mock.Mock()
293 opnfv_vnf.vnf_type = 'VFW'
294 opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
295 opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
296 opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
297 opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
298 opnfv_vnf.txrx_pipeline = ''
300 self.assertIsNotNone(opnfv_vnf.generate_action_config())
302 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
303 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
304 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
305 def test_generate_arp_config6(self, mock_open, mock_os, ConfigParser):
306 topology_file = mock.Mock()
307 config_tpl = mock.Mock()
308 tmp_file = mock.Mock()
309 vnfd_mock = mock.MagicMock()
310 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
311 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
313 opnfv_vnf.start_core = 0
314 opnfv_vnf.update_write_parser = mock.MagicMock()
315 opnfv_vnf.generate_script_data = \
316 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
317 'arp_config6': '', 'actions': '',
319 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
320 opnfv_vnf.get_port_pairs = mock.Mock()
321 opnfv_vnf.vnf_type = 'VFW'
322 opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
323 opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
324 opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
325 opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
326 opnfv_vnf.txrx_pipeline = ''
328 opnfv_vnf.interfaces = mock.MagicMock()
329 opnfv_vnf.get_ports_gateway6 = mock.Mock()
330 self.assertIsNotNone(opnfv_vnf.generate_arp_config6())
332 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
333 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
334 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
335 def test_generate_arp_config(self, mock_open, mock_os, ConfigParser):
336 topology_file = mock.Mock()
337 config_tpl = mock.Mock()
338 tmp_file = mock.Mock()
339 vnfd_mock = mock.MagicMock()
340 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
341 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
343 opnfv_vnf.start_core = 0
344 opnfv_vnf.update_write_parser = mock.MagicMock()
345 opnfv_vnf.generate_script_data = \
346 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
347 'arp_config6': '', 'actions': '',
349 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
350 opnfv_vnf.get_port_pairs = mock.Mock()
351 opnfv_vnf.vnf_type = 'VFW'
352 opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
353 opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
354 opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
355 opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
356 opnfv_vnf.txrx_pipeline = ''
358 opnfv_vnf.interfaces = mock.MagicMock()
359 opnfv_vnf.get_ports_gateway6 = mock.Mock()
360 self.assertIsNotNone(opnfv_vnf.generate_arp_config())
362 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
363 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
364 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
365 def test_get_ports_gateway(self, mock_open, mock_os, ConfigParser):
366 topology_file = mock.Mock()
367 config_tpl = mock.Mock()
368 tmp_file = mock.Mock()
369 vnfd_mock = mock.MagicMock()
370 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
371 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
373 opnfv_vnf.start_core = 0
374 opnfv_vnf.update_write_parser = mock.MagicMock()
375 opnfv_vnf.generate_script_data = \
376 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
377 'arp_config6': '', 'actions': '',
379 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
380 opnfv_vnf.get_port_pairs = mock.Mock()
381 opnfv_vnf.vnf_type = 'VFW'
382 opnfv_vnf.txrx_pipeline = ''
384 opnfv_vnf.interfaces = mock.MagicMock()
385 opnfv_vnf.get_ports_gateway6 = mock.Mock()
386 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
387 self.assertIsNotNone(opnfv_vnf.get_ports_gateway('xe0'))
389 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
390 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
391 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
392 def test_get_ports_gateway6(self, mock_open, mock_os, ConfigParser):
393 topology_file = mock.Mock()
394 config_tpl = mock.Mock()
395 tmp_file = mock.Mock()
396 vnfd_mock = mock.MagicMock()
397 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
398 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
400 opnfv_vnf.start_core = 0
401 opnfv_vnf.update_write_parser = mock.MagicMock()
402 opnfv_vnf.generate_script_data = \
403 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
404 'arp_config6': '', 'actions': '',
406 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
407 opnfv_vnf.get_port_pairs = mock.Mock()
408 opnfv_vnf.vnf_type = 'VFW'
409 opnfv_vnf.txrx_pipeline = ''
411 opnfv_vnf.interfaces = mock.MagicMock()
412 opnfv_vnf.get_ports_gateway6 = mock.Mock()
413 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
414 self.assertIsNotNone(opnfv_vnf.get_ports_gateway6('xe0'))
416 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
417 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
418 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
419 def test_get_netmask_gateway(self, mock_open, mock_os, ConfigParser):
420 topology_file = mock.Mock()
421 config_tpl = mock.Mock()
422 tmp_file = mock.Mock()
423 vnfd_mock = mock.MagicMock()
424 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
425 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
427 opnfv_vnf.start_core = 0
428 opnfv_vnf.update_write_parser = mock.MagicMock()
429 opnfv_vnf.generate_script_data = \
430 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
431 'arp_config6': '', 'actions': '',
433 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
434 opnfv_vnf.get_port_pairs = mock.Mock()
435 opnfv_vnf.vnf_type = 'VFW'
436 opnfv_vnf.txrx_pipeline = ''
438 opnfv_vnf.interfaces = mock.MagicMock()
439 opnfv_vnf.get_ports_gateway6 = mock.Mock()
440 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
441 self.assertIsNotNone(opnfv_vnf.get_netmask_gateway('xe0'))
443 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
444 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
445 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
446 def test_get_netmask_gateway6(self, mock_open, mock_os, ConfigParser):
447 topology_file = mock.Mock()
448 config_tpl = mock.Mock()
449 tmp_file = mock.Mock()
450 vnfd_mock = mock.MagicMock()
451 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
452 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
454 opnfv_vnf.start_core = 0
455 opnfv_vnf.update_write_parser = mock.MagicMock()
456 opnfv_vnf.generate_script_data = \
457 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
458 'arp_config6': '', 'actions': '',
460 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
461 opnfv_vnf.get_port_pairs = mock.Mock()
462 opnfv_vnf.vnf_type = 'VFW'
463 opnfv_vnf.txrx_pipeline = ''
465 opnfv_vnf.interfaces = mock.MagicMock()
466 opnfv_vnf.get_ports_gateway6 = mock.Mock()
467 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
468 self.assertIsNotNone(opnfv_vnf.get_netmask_gateway6('xe0'))
470 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
471 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
472 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
473 def test_generate_link_config(self, mock_open, mock_os, ConfigParser):
474 topology_file = mock.Mock()
475 config_tpl = mock.Mock()
476 tmp_file = mock.Mock()
477 vnfd_mock = mock.MagicMock()
479 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
480 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
482 opnfv_vnf.start_core = 0
483 opnfv_vnf.update_write_parser = mock.MagicMock()
484 opnfv_vnf.generate_script_data = \
485 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
486 'arp_config6': '', 'actions': '',
488 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
489 opnfv_vnf.get_port_pairs = mock.Mock()
490 opnfv_vnf.vnf_type = 'VFW'
491 opnfv_vnf.txrx_pipeline = ''
493 opnfv_vnf.get_ports_gateway6 = mock.Mock()
494 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
495 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
496 opnfv_vnf.all_ports = ['32', '1', '987']
497 opnfv_vnf.validate_ip_and_prefixlen = mock.Mock(return_value=('10.20.30.40', 16))
499 result = opnfv_vnf.generate_link_config()
500 self.assertEqual(len(result.splitlines()), 9)
502 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
503 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
504 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
505 def test_generate_config(self, mock_open, mock_os, ConfigParser):
506 topology_file = mock.Mock()
507 config_tpl = mock.Mock()
508 tmp_file = mock.Mock()
509 vnfd_mock = mock.MagicMock()
510 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
511 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
513 opnfv_vnf.start_core = 0
514 opnfv_vnf.update_write_parser = mock.MagicMock()
515 opnfv_vnf.generate_script_data = \
516 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
517 'arp_config6': '', 'actions': '',
519 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
520 opnfv_vnf.txrx_pipeline = ''
522 opnfv_vnf.get_ports_gateway6 = mock.Mock()
523 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
524 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
525 opnfv_vnf.generate_lb_to_port_pair_mapping = mock.Mock()
526 opnfv_vnf.generate_config_data = mock.Mock()
527 opnfv_vnf.write_parser = mock.MagicMock()
528 opnfv_vnf.is_openstack = True
529 self.assertIsNone(opnfv_vnf.generate_config())
530 opnfv_vnf.is_openstack = False
531 self.assertIsNone(opnfv_vnf.generate_config())
533 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
534 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
535 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
536 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
537 def test_get_config_tpl_data(self, mock_open, mock_os, ConfigParser,
539 topology_file = mock.Mock()
540 config_tpl = mock.Mock()
541 tmp_file = mock.Mock()
542 vnfd_mock = mock.MagicMock()
543 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
545 opnfv_vnf.start_core = 0
546 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
547 opnfv_vnf.txrx_pipeline = ''
549 opnfv_vnf.write_parser = mock.MagicMock()
550 opnfv_vnf.read_parser = mock.MagicMock()
551 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
552 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=True)
553 opnfv_vnf.read_parser.get = mock.Mock(return_value='filename')
555 self.assertIsNotNone(opnfv_vnf.get_config_tpl_data('filename'))
557 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
558 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
559 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
560 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
561 def test_get_txrx_tpl_data(self, mock_open, mock_os, ConfigParser,
563 topology_file = mock.Mock()
564 config_tpl = mock.Mock()
565 tmp_file = mock.Mock()
566 vnfd_mock = mock.MagicMock()
567 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
569 opnfv_vnf.start_core = 0
570 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
571 opnfv_vnf.txrx_pipeline = ''
573 opnfv_vnf.write_parser = mock.MagicMock()
574 opnfv_vnf.read_parser = mock.MagicMock()
575 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
576 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=True)
577 opnfv_vnf.read_parser.get = mock.Mock(return_value='filename')
579 self.assertIsNotNone(opnfv_vnf.get_txrx_tpl_data('filename'))
581 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
582 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
583 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
584 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
585 def test_init_write_parser_template(self, mock_open, mock_os, ConfigParser,
587 topology_file = mock.Mock()
588 config_tpl = mock.Mock()
589 tmp_file = mock.Mock()
590 vnfd_mock = mock.MagicMock()
591 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
593 opnfv_vnf.start_core = 0
594 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
595 opnfv_vnf.txrx_pipeline = ''
597 opnfv_vnf.write_parser = mock.MagicMock()
598 opnfv_vnf.read_parser = mock.MagicMock()
599 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
600 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=True)
601 opnfv_vnf.read_parser.get = mock.Mock(return_value='filename')
603 self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
604 opnfv_vnf.write_parser.add_section = mock.MagicMock()
605 opnfv_vnf.read_parser.item = mock.Mock(return_value=[1, 2, 3])
606 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=False)
607 opnfv_vnf.write_parser.set = mock.Mock()
608 self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
610 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
611 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
612 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
613 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
614 def test_init_write_parser_template_2(self, mock_open, mock_os, ConfigParser,
616 topology_file = mock.Mock()
617 config_tpl = mock.Mock()
618 tmp_file = mock.Mock()
619 vnfd_mock = mock.MagicMock()
620 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
622 opnfv_vnf.start_core = 0
623 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
624 opnfv_vnf.txrx_pipeline = ''
626 opnfv_vnf.write_parser = mock.MagicMock()
627 opnfv_vnf.read_parser = mock.MagicMock()
628 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
629 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
630 opnfv_vnf.write_parser.set = mock.Mock()
631 opnfv_vnf.read_parser.items = mock.MagicMock()
632 self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
634 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
635 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
636 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
637 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
638 def test_update_write_parser(self, mock_open, mock_os, ConfigParser,
640 topology_file = mock.Mock()
641 config_tpl = mock.Mock()
642 tmp_file = mock.Mock()
643 vnfd_mock = mock.MagicMock()
644 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
646 opnfv_vnf.start_core = 0
647 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
648 opnfv_vnf.txrx_pipeline = ''
650 opnfv_vnf.write_parser = mock.MagicMock()
651 opnfv_vnf.read_parser = mock.MagicMock()
652 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
653 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
654 opnfv_vnf.write_parser.set = mock.Mock()
655 opnfv_vnf.write_parser.add_section = mock.Mock()
656 opnfv_vnf.read_parser.items = mock.MagicMock()
657 opnfv_vnf.pipeline_counter = 0
658 self.assertIsNone(opnfv_vnf.update_write_parser({'filename': 1}))
660 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
661 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
662 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
663 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
664 def test_get_worker_threads(self, mock_open, mock_os, ConfigParser,
666 topology_file = mock.Mock()
667 config_tpl = mock.Mock()
668 tmp_file = mock.Mock()
669 vnfd_mock = mock.MagicMock()
670 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
672 opnfv_vnf.start_core = 0
673 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
674 opnfv_vnf.txrx_pipeline = ''
676 opnfv_vnf.write_parser = mock.MagicMock()
677 opnfv_vnf.read_parser = mock.MagicMock()
678 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
679 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
680 opnfv_vnf.write_parser.set = mock.Mock()
681 opnfv_vnf.write_parser.add_section = mock.Mock()
682 opnfv_vnf.read_parser.items = mock.MagicMock()
683 opnfv_vnf.pipeline_counter = 0
684 opnfv_vnf.worker_config = '1t'
685 result = opnfv_vnf.get_worker_threads(1)
686 self.assertEqual(1, result)
687 opnfv_vnf.worker_config = '2t'
688 result = opnfv_vnf.get_worker_threads(2)
689 self.assertEqual(2, result)
690 opnfv_vnf.worker_config = '2t'
691 result = opnfv_vnf.get_worker_threads(3)
692 self.assertEqual(2, result)
694 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
695 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
696 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
697 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
698 def test_generate_next_core_id(self, mock_open, mock_os, ConfigParser,
700 topology_file = mock.Mock()
701 config_tpl = mock.Mock()
702 tmp_file = mock.Mock()
703 vnfd_mock = mock.MagicMock()
704 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
706 opnfv_vnf.start_core = 0
707 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
708 opnfv_vnf.txrx_pipeline = ''
710 opnfv_vnf.write_parser = mock.MagicMock()
711 opnfv_vnf.read_parser = mock.MagicMock()
712 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
713 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
714 opnfv_vnf.write_parser.set = mock.Mock()
715 opnfv_vnf.write_parser.add_section = mock.Mock()
716 opnfv_vnf.read_parser.items = mock.MagicMock()
717 opnfv_vnf.pipeline_counter = 0
718 opnfv_vnf.worker_config = '1t'
719 opnfv_vnf.start_core = 0
720 result = opnfv_vnf.generate_next_core_id()
721 self.assertEqual(None, result)
722 opnfv_vnf.worker_config = '2t'
723 opnfv_vnf.start_core = 'a'
724 self.assertRaises(ValueError, opnfv_vnf.generate_next_core_id)
725 opnfv_vnf.worker_config = '2t'
726 opnfv_vnf.start_core = 1
727 result = opnfv_vnf.generate_next_core_id()
728 self.assertEqual(None, result)
730 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
731 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
732 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
733 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
734 def test_generate_lb_to_port_pair_mapping(self, mock_open, mock_os, ConfigParser,
736 topology_file = mock.Mock()
737 config_tpl = mock.Mock()
738 tmp_file = mock.Mock()
739 vnfd_mock = VnfdHelper(self.VNFD_0)
740 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
742 opnfv_vnf.start_core = 0
743 opnfv_vnf.txrx_pipeline = ''
745 opnfv_vnf.write_parser = mock.MagicMock()
746 opnfv_vnf.read_parser = mock.MagicMock()
747 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
748 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
749 opnfv_vnf.write_parser.set = mock.Mock()
750 opnfv_vnf.write_parser.add_section = mock.Mock()
751 opnfv_vnf.read_parser.items = mock.MagicMock()
752 opnfv_vnf.pipeline_counter = 0
753 opnfv_vnf.worker_config = '1t'
754 opnfv_vnf.start_core = 0
755 opnfv_vnf.lb_count = 1
756 opnfv_vnf._port_pairs = PortPairs(vnfd_mock.interfaces)
757 opnfv_vnf.port_pair_list = opnfv_vnf._port_pairs.port_pair_list
758 result = opnfv_vnf.generate_lb_to_port_pair_mapping()
759 self.assertEqual(None, result)
760 result = opnfv_vnf.set_priv_to_pub_mapping()
761 self.assertEqual('(0,1)', result)
763 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
764 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
765 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
766 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
767 def test_set_priv_que_handler(self, mock_open, mock_os, ConfigParser,
769 topology_file = mock.Mock()
770 config_tpl = mock.Mock()
771 tmp_file = mock.Mock()
772 vnfd_mock = VnfdHelper(self.VNFD_0)
773 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
775 opnfv_vnf.start_core = 0
776 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
777 opnfv_vnf.port_pairs = [("xe0", "xe1")]
778 opnfv_vnf.txrx_pipeline = ''
780 opnfv_vnf.write_parser = mock.MagicMock()
781 opnfv_vnf.read_parser = mock.MagicMock()
782 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
783 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
784 opnfv_vnf.write_parser.set = mock.Mock()
785 opnfv_vnf.write_parser.add_section = mock.Mock()
786 opnfv_vnf.read_parser.items = mock.MagicMock()
787 opnfv_vnf.pipeline_counter = 0
788 opnfv_vnf.worker_config = '1t'
789 opnfv_vnf.start_core = 0
790 opnfv_vnf.lb_count = 1
791 result = opnfv_vnf.set_priv_que_handler()
792 self.assertEqual(None, result)
794 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
795 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
796 def test_generate_arp_route_tbl(self, *_):
797 topology_file = mock.Mock()
798 config_tpl = mock.Mock()
799 tmp_file = mock.Mock()
800 vnfd_mock = mock.MagicMock()
801 vnfd_mock.port_num.side_effect = ['32', '1', '987']
802 vnfd_mock.find_interface.side_effect = [
804 'virtual-interface': {
805 'dst_ip': '10.20.30.40',
810 'virtual-interface': {
811 'dst_ip': '10.200.30.40',
816 'virtual-interface': {
817 'dst_ip': '10.20.3.40',
823 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
824 opnfv_vnf.all_ports = [3, 2, 5]
826 expected = '(0a141000,fffff000,32,0a141e28) (0ac81e00,ffffff00,1,0ac81e28) ' \
827 '(0a000000,ff000000,987,0a140328)'
828 result = opnfv_vnf.generate_arp_route_tbl()
829 self.assertEqual(result, expected)
831 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
832 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
833 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
834 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
835 def test_generate_arpicmp_data(self, mock_open, mock_os, ConfigParser,
837 topology_file = mock.Mock()
838 config_tpl = mock.Mock()
839 tmp_file = mock.Mock()
840 vnfd_mock = mock.MagicMock()
841 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
843 opnfv_vnf.start_core = 0
844 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
845 opnfv_vnf.port_pairs = [("xe0", "xe1")]
846 opnfv_vnf.txrx_pipeline = ''
848 opnfv_vnf.write_parser = mock.MagicMock()
849 opnfv_vnf.read_parser = mock.MagicMock()
850 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
851 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
852 opnfv_vnf.write_parser.set = mock.Mock()
853 opnfv_vnf.write_parser.add_section = mock.Mock()
854 opnfv_vnf.read_parser.items = mock.MagicMock()
855 opnfv_vnf.pipeline_counter = 0
856 opnfv_vnf.worker_config = '1t'
857 opnfv_vnf.start_core = 0
858 opnfv_vnf.lb_count = 1
859 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
860 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
861 result = opnfv_vnf.generate_arpicmp_data()
862 self.assertIsNotNone(result)
863 opnfv_vnf.nfv_type = 'ovs'
864 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
865 result = opnfv_vnf.generate_arpicmp_data()
866 self.assertIsNotNone(result)
867 opnfv_vnf.nfv_type = 'openstack'
868 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
869 result = opnfv_vnf.generate_arpicmp_data()
870 self.assertIsNotNone(result)
871 opnfv_vnf.lb_config = 'HW'
872 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
873 result = opnfv_vnf.generate_arpicmp_data()
874 self.assertIsNotNone(result)
876 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
877 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
878 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
879 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
880 def test_generate_final_txrx_data(self, mock_open, mock_os, ConfigParser,
882 topology_file = mock.Mock()
883 config_tpl = mock.Mock()
884 tmp_file = mock.Mock()
885 vnfd_mock = mock.MagicMock()
886 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
888 opnfv_vnf.start_core = 0
889 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
890 opnfv_vnf.port_pairs = [("xe0", "xe1")]
891 opnfv_vnf.txrx_pipeline = ''
893 opnfv_vnf.write_parser = mock.MagicMock()
894 opnfv_vnf.read_parser = mock.MagicMock()
895 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
896 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
897 opnfv_vnf.write_parser.set = mock.Mock()
898 opnfv_vnf.write_parser.add_section = mock.Mock()
899 opnfv_vnf.read_parser.items = mock.MagicMock()
900 opnfv_vnf.pipeline_counter = 0
901 opnfv_vnf.worker_config = '1t'
902 opnfv_vnf.start_core = 0
903 opnfv_vnf.lb_count = 1
904 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
905 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
906 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
907 opnfv_vnf.ports_len = 2
908 opnfv_vnf.lb_index = 1
909 opnfv_vnf.pktq_out_os = [1, 2]
910 result = opnfv_vnf.generate_final_txrx_data()
911 self.assertIsNotNone(result)
912 opnfv_vnf.nfv_type = 'openstack'
913 opnfv_vnf.pktq_out_os = [1, 2]
914 opnfv_vnf.lb_index = 1
915 result = opnfv_vnf.generate_final_txrx_data()
916 self.assertIsNotNone(result)
918 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
919 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
920 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
921 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
922 def test_generate_initial_txrx_data(self, mock_open, mock_os,
923 ConfigParser, OrderedDict):
924 topology_file = mock.Mock()
925 config_tpl = mock.Mock()
926 tmp_file = mock.Mock()
927 vnfd_mock = mock.MagicMock()
928 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
930 opnfv_vnf.start_core = 0
931 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
932 opnfv_vnf.port_pairs = [("xe0", "xe1")]
933 opnfv_vnf.txrx_pipeline = ''
935 opnfv_vnf.write_parser = mock.MagicMock()
936 opnfv_vnf.read_parser = mock.MagicMock()
937 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
938 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
939 opnfv_vnf.write_parser.set = mock.Mock()
940 opnfv_vnf.write_parser.add_section = mock.Mock()
941 opnfv_vnf.read_parser.items = mock.MagicMock()
942 opnfv_vnf.pipeline_counter = 0
943 opnfv_vnf.worker_config = '1t'
944 opnfv_vnf.start_core = 0
945 opnfv_vnf.lb_count = 1
946 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
947 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
948 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
949 opnfv_vnf.lb_index = 1
950 opnfv_vnf.ports_len = 2
951 result = opnfv_vnf.generate_initial_txrx_data()
952 self.assertIsNotNone(result)
953 opnfv_vnf.nfv_type = 'openstack'
954 opnfv_vnf.pktq_out_os = [1, 2]
955 result = opnfv_vnf.generate_initial_txrx_data()
956 self.assertIsNotNone(result)
957 opnfv_vnf.nfv_type = 'ovs'
958 opnfv_vnf.init_ovs = False
959 opnfv_vnf.ovs_pktq_out = ''
960 opnfv_vnf.pktq_out_os = [1, 2]
961 opnfv_vnf.lb_index = 1
962 result = opnfv_vnf.generate_initial_txrx_data()
963 self.assertIsNotNone(result)
964 opnfv_vnf.nfv_type = 'ovs'
965 opnfv_vnf.init_ovs = True
966 opnfv_vnf.pktq_out_os = [1, 2]
967 opnfv_vnf.ovs_pktq_out = ''
968 opnfv_vnf.lb_index = 1
969 result = opnfv_vnf.generate_initial_txrx_data()
970 self.assertIsNotNone(result)
972 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
973 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
974 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
975 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
976 def test_generate_lb_data(self, mock_open, mock_os, ConfigParser,
978 topology_file = mock.Mock()
979 config_tpl = mock.Mock()
980 tmp_file = mock.Mock()
981 vnfd_mock = mock.MagicMock()
982 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
984 opnfv_vnf.start_core = 0
985 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
986 opnfv_vnf.port_pairs = [("xe0", "xe1")]
987 opnfv_vnf.txrx_pipeline = ''
989 opnfv_vnf.write_parser = mock.MagicMock()
990 opnfv_vnf.read_parser = mock.MagicMock()
991 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
992 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
993 opnfv_vnf.write_parser.set = mock.Mock()
994 opnfv_vnf.write_parser.add_section = mock.Mock()
995 opnfv_vnf.read_parser.items = mock.MagicMock()
996 opnfv_vnf.pipeline_counter = 0
997 opnfv_vnf.worker_config = '1t'
998 opnfv_vnf.start_core = 0
999 opnfv_vnf.lb_count = 1
1000 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
1001 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
1002 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1003 opnfv_vnf.lb_index = 1
1004 opnfv_vnf.ports_len = 2
1005 opnfv_vnf.prv_que_handler = 0
1006 result = opnfv_vnf.generate_lb_data()
1007 self.assertIsNotNone(result)
1009 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
1010 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
1011 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
1012 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
1013 def test_generate_vnf_data(self, mock_open, mock_os, ConfigParser,
1015 topology_file = mock.Mock()
1016 config_tpl = mock.Mock()
1017 tmp_file = mock.Mock()
1018 vnfd_mock = mock.MagicMock()
1019 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
1020 opnfv_vnf.socket = 0
1021 opnfv_vnf.start_core = 0
1022 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
1023 opnfv_vnf.port_pairs = [("xe0", "xe1")]
1024 opnfv_vnf.txrx_pipeline = ''
1025 opnfv_vnf.rules = ''
1026 opnfv_vnf.write_parser = mock.MagicMock()
1027 opnfv_vnf.read_parser = mock.MagicMock()
1028 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
1029 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
1030 opnfv_vnf.write_parser.set = mock.Mock()
1031 opnfv_vnf.write_parser.add_section = mock.Mock()
1032 opnfv_vnf.read_parser.items = mock.MagicMock()
1033 opnfv_vnf.pipeline_counter = 0
1034 opnfv_vnf.worker_config = '1t'
1035 opnfv_vnf.start_core = 0
1036 opnfv_vnf.lb_count = 1
1037 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
1038 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
1039 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1040 opnfv_vnf.lb_index = 1
1041 opnfv_vnf.ports_len = 1
1042 opnfv_vnf.pktq_out = ['1', '2']
1043 opnfv_vnf.vnf_tpl = {'public_ip_port_range': '98164810',
1044 'vnf_set': '(2,4,5)'}
1045 opnfv_vnf.prv_que_handler = 0
1046 result = opnfv_vnf.generate_vnf_data()
1047 self.assertIsNotNone(result)
1048 opnfv_vnf.lb_config = 'HW'
1050 result = opnfv_vnf.generate_vnf_data()
1051 self.assertIsNotNone(result)
1052 opnfv_vnf.lb_config = 'HW'
1054 opnfv_vnf.vnf_type = 'ACL'
1055 result = opnfv_vnf.generate_vnf_data()
1056 self.assertIsNotNone(result)
1058 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
1059 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
1060 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
1061 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
1062 def test_generate_config_data(self, mock_open, mock_os, ConfigParser,
1064 topology_file = mock.Mock()
1065 config_tpl = mock.Mock()
1066 tmp_file = mock.Mock()
1067 vnfd_mock = VnfdHelper(self.VNFD_0)
1068 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
1069 opnfv_vnf.socket = 0
1070 opnfv_vnf.start_core = 0
1071 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
1072 opnfv_vnf.port_pairs = [("xe0", "xe1")]
1073 opnfv_vnf.txrx_pipeline = ''
1074 opnfv_vnf.rules = ''
1075 opnfv_vnf.write_parser = mock.MagicMock()
1076 opnfv_vnf.read_parser = mock.MagicMock()
1077 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
1078 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
1079 opnfv_vnf.write_parser.set = mock.Mock()
1080 opnfv_vnf.write_parser.add_section = mock.Mock()
1081 opnfv_vnf.read_parser.items = mock.MagicMock()
1082 opnfv_vnf.pipeline_counter = 0
1083 opnfv_vnf.worker_config = '1t'
1084 opnfv_vnf.start_core = 0
1085 opnfv_vnf.lb_count = 1
1086 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
1087 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
1088 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1089 opnfv_vnf.lb_index = 1
1090 opnfv_vnf.ports_len = 1
1091 opnfv_vnf.pktq_out = ['1', '2']
1092 opnfv_vnf.prv_que_handler = 0
1093 opnfv_vnf.init_write_parser_template = mock.Mock()
1094 opnfv_vnf.arpicmp_tpl = mock.MagicMock()
1095 opnfv_vnf.txrx_tpl = mock.MagicMock()
1096 opnfv_vnf.loadb_tpl = mock.MagicMock()
1097 opnfv_vnf.vnf_tpl = {'public_ip_port_range': '98164810 (1,65535)',
1098 'vnf_set': "(2,4,5)"}
1099 opnfv_vnf.generate_vnf_data = mock.Mock(return_value={})
1100 opnfv_vnf.update_write_parser = mock.Mock()
1101 result = opnfv_vnf.generate_config_data()
1102 self.assertIsNone(result)
1103 opnfv_vnf.generate_final_txrx_data = mock.Mock()
1104 opnfv_vnf.update_write_parser = mock.Mock()
1105 result = opnfv_vnf.generate_config_data()
1106 self.assertIsNone(result)
1107 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1108 opnfv_vnf.lb_index = 1
1109 opnfv_vnf.ports_len = 1
1110 opnfv_vnf.pktq_out = ['1', '2']
1111 opnfv_vnf.prv_que_handler = 0
1112 opnfv_vnf.init_write_parser_template = mock.Mock()
1113 opnfv_vnf.arpicmp_tpl = mock.MagicMock()
1114 opnfv_vnf.txrx_tpl = mock.MagicMock()
1115 opnfv_vnf.loadb_tpl = mock.MagicMock()
1116 opnfv_vnf.vnf_type = 'CGNAPT'
1117 opnfv_vnf.update_timer = mock.Mock()
1118 opnfv_vnf.port_pair_list = [("xe0", "xe1"), ("xe0", "xe2")]
1119 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1120 opnfv_vnf.generate_arpicmp_data = mock.Mock()
1121 result = opnfv_vnf.generate_config_data()
1122 self.assertIsNone(result)
1124 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
1125 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
1126 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
1127 @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
1128 def test_init_eal(self, mock_open, mock_os, ConfigParser,
1130 topology_file = mock.Mock()
1131 config_tpl = mock.Mock()
1132 tmp_file = mock.Mock()
1133 vnfd_mock = mock.MagicMock()
1134 opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
1135 opnfv_vnf.socket = 0
1136 opnfv_vnf.start_core = 0
1137 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
1138 opnfv_vnf.port_pairs = [("xe0", "xe1")]
1139 opnfv_vnf.txrx_pipeline = ''
1140 opnfv_vnf.rules = ''
1141 opnfv_vnf.write_parser = mock.MagicMock()
1142 opnfv_vnf.read_parser = mock.MagicMock()
1143 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
1144 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
1145 opnfv_vnf.write_parser.set = mock.Mock()
1146 opnfv_vnf.write_parser.add_section = mock.Mock()
1147 opnfv_vnf.read_parser.items = mock.MagicMock()
1148 opnfv_vnf.pipeline_counter = 0
1149 opnfv_vnf.worker_config = '1t'
1150 opnfv_vnf.start_core = 0
1151 opnfv_vnf.lb_count = 1
1152 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
1153 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
1154 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1155 opnfv_vnf.lb_index = 1
1156 opnfv_vnf.ports_len = 1
1157 opnfv_vnf.pktq_out = ['1', '2']
1158 opnfv_vnf.prv_que_handler = 0
1159 opnfv_vnf.init_write_parser_template = mock.Mock()
1160 opnfv_vnf.arpicmp_tpl = mock.MagicMock()
1161 opnfv_vnf.txrx_tpl = mock.MagicMock()
1162 opnfv_vnf.loadb_tpl = mock.MagicMock()
1163 opnfv_vnf.vnf_tpl = {'public_ip_port_range': '98164810 (1,65535)'}
1164 opnfv_vnf.generate_vnf_data = mock.Mock(return_value={})
1165 opnfv_vnf.update_write_parser = mock.Mock()
1166 opnfv_vnf.tmp_file = "/tmp/config"
1167 result = opnfv_vnf.init_eal()
1168 self.assertIsNone(result)