From 0f3a2ec6d0f6af4de19878ead2330514b51afaf0 Mon Sep 17 00:00:00 2001 From: Rodolfo Alonso Hernandez Date: Tue, 24 Jul 2018 15:11:37 +0100 Subject: IxNetwork IPv4 mask format is x.x.x.x When updating the IP packet in IxNextgen library, the IPv4 mask should be defined in the following format: x.x.x.x This mask defines the number of lower bits used to generate a random IP. For example: - mask length: 16 - mask string: 0.0.255.255 JIRA: YARDSTICK-1351 Change-Id: Ie3cbf0205aac83aea8d7f665bc068e8566238055 Signed-off-by: Rodolfo Alonso Hernandez --- yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py | 7 +++++-- .../tests/unit/network_services/libs/ixia_libs/test_ixnet_api.py | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py b/yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py index 9058fa78c..a840feade 100644 --- a/yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py +++ b/yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import ipaddress import logging import IxNetwork @@ -397,15 +398,17 @@ class IxNextgen(object): # pragma: no cover :param field: (str) field name, e.g.: scrIp, dstIp :param ip_address: (str) IP address :param seed: (int) seed length - :param mask: (str) IP address mask + :param mask: (int) IP address mask length :param count: (int) number of random IPs to generate """ field_descriptor = self._get_field_in_stack_item(ip_descriptor, field) + random_mask = str(ipaddress.IPv4Address( + 2**(ipaddress.IPV4LENGTH - mask) - 1).compressed) self.ixnet.setMultiAttribute(field_descriptor, '-seed', seed, '-fixedBits', ip_address, - '-randomMask', mask, + '-randomMask', random_mask, '-valueType', 'random', '-countValue', count) self.ixnet.commit() diff --git a/yardstick/tests/unit/network_services/libs/ixia_libs/test_ixnet_api.py b/yardstick/tests/unit/network_services/libs/ixia_libs/test_ixnet_api.py index 458ea0f12..dd43a64a5 100644 --- a/yardstick/tests/unit/network_services/libs/ixia_libs/test_ixnet_api.py +++ b/yardstick/tests/unit/network_services/libs/ixia_libs/test_ixnet_api.py @@ -405,10 +405,10 @@ class TestIxNextgen(unittest.TestCase): with mock.patch.object(ixnet_gen, '_get_field_in_stack_item', return_value='field_desc'): ixnet_gen._update_ipv4_address(mock.ANY, mock.ANY, '192.168.1.1', - 100, '255.255.255.0', 25) + 100, 26, 25) ixnet_gen.ixnet.setMultiAttribute.assert_called_once_with( 'field_desc', '-seed', 100, '-fixedBits', '192.168.1.1', - '-randomMask', '255.255.255.0', '-valueType', 'random', + '-randomMask', '0.0.0.63', '-valueType', 'random', '-countValue', 25) def test_update_ip_packet(self): -- cgit 1.2.3-korg