Example #1
0
 def test_get_drop_percentage_first_run(self):
     samples = {
         'iface_name_1': {
             'in_packets': 1000,
             'out_packets': 1000,
             'Store-Forward_Avg_latency_ns': 20,
             'Store-Forward_Min_latency_ns': 15,
             'Store-Forward_Max_latency_ns': 25
         },
         'iface_name_2': {
             'in_packets': 1005,
             'out_packets': 1007,
             'Store-Forward_Avg_latency_ns': 20,
             'Store-Forward_Min_latency_ns': 15,
             'Store-Forward_Max_latency_ns': 25
         }
     }
     rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
     completed, samples = rfc2544_profile.get_drop_percentage(
         samples, 0, 1, 4, first_run=True)
     self.assertTrue(completed)
     self.assertEqual(66.9, samples['TxThroughput'])
     self.assertEqual(66.833, samples['RxThroughput'])
     self.assertEqual(0.099651, samples['DropPercentage'])
     self.assertEqual(33.45, rfc2544_profile.rate)
Example #2
0
 def test__ixia_traffic_generate(self, mock_upd_tracking_opts):
     traffic_generator = mock.Mock(
         autospec=trex_traffic_profile.TrexProfile)
     traffic_generator.networks = {
         "uplink_0": ["xe0"],
         "downlink_0": ["xe1"],
     }
     traffic_generator.client = \
         mock.Mock(return_value=True)
     traffic = {
         ixia_rfc2544.IXIARFC2544Profile.DOWNLINK: {
             'iload': 10
         },
         ixia_rfc2544.IXIARFC2544Profile.UPLINK: {
             'iload': 10
         }
     }
     ixia_obj = mock.MagicMock()
     r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
         self.TRAFFIC_PROFILE)
     r_f_c2544_profile.rate = 100
     result = r_f_c2544_profile._ixia_traffic_generate(
         traffic, ixia_obj, traffic_generator)
     self.assertIsNone(result)
     mock_upd_tracking_opts.assert_called_once_with(traffic_generator)
Example #3
0
 def test_get_drop_percentage_not_flow(self, *args):
     samples = {
         'iface_name_1': {
             'in_packets': 1000,
             'out_packets': 0,
             'Store-Forward_Avg_latency_ns': 20,
             'Store-Forward_Min_latency_ns': 15,
             'Store-Forward_Max_latency_ns': 25
         },
         'iface_name_2': {
             'in_packets': 1005,
             'out_packets': 0,
             'Store-Forward_Avg_latency_ns': 20,
             'Store-Forward_Min_latency_ns': 15,
             'Store-Forward_Max_latency_ns': 25
         }
     }
     rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
     rfc2544_profile.rate = 1000
     completed, samples = rfc2544_profile.get_drop_percentage(
         samples, 0.2, 1, 4)
     self.assertFalse(completed)
     self.assertEqual(0.0, samples['TxThroughput'])
     self.assertEqual(66.833, samples['RxThroughput'])
     self.assertEqual(100, samples['DropPercentage'])
     self.assertEqual(rfc2544_profile.rate, rfc2544_profile.max_rate)
Example #4
0
 def test__get_ip_and_mask_single(self):
     ip_range = '192.168.1.10'
     r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
         self.TRAFFIC_PROFILE)
     ip, mask = r_f_c2544_profile._get_ip_and_mask(ip_range)
     self.assertEqual('192.168.1.10', ip)
     self.assertIsNone(mask)
Example #5
0
 def test__get_fixed_and_mask_single(self):
     fixed_mask = 1234
     r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
         self.TRAFFIC_PROFILE)
     fixed, mask = r_f_c2544_profile._get_fixed_and_mask(fixed_mask)
     self.assertEqual(1234, fixed)
     self.assertEqual(0, mask)
Example #6
0
 def test__get_fixed_and_mask_range(self):
     fixed_mask = '8-48'
     r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
         self.TRAFFIC_PROFILE)
     fixed, mask = r_f_c2544_profile._get_fixed_and_mask(fixed_mask)
     self.assertEqual(8, fixed)
     self.assertEqual(48, mask)
Example #7
0
 def test_get_drop_percentage_first_run(self):
     samples = {
         'iface_name_1': {
             'InPackets': 1000,
             'OutPackets': 1000,
             'InBytes': 64000,
             'OutBytes': 64000,
             'LatencyAvg': 20,
             'LatencyMin': 15,
             'LatencyMax': 25
         },
         'iface_name_2': {
             'InPackets': 1005,
             'OutPackets': 1007,
             'InBytes': 64320,
             'OutBytes': 64448,
             'LatencyAvg': 20,
             'LatencyMin': 15,
             'LatencyMax': 25
         }
     }
     rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
     rfc2544_profile._get_next_rate = mock.Mock(return_value=50.0)
     completed, samples = rfc2544_profile.get_drop_percentage(
         samples, 0, 1, 4, 0.1, first_run=True)
     self.assertTrue(completed)
     self.assertEqual(66.9, samples['TxThroughput'])
     self.assertEqual(66.833, samples['RxThroughput'])
     self.assertEqual(0.099651, samples['DropPercentage'])
     self.assertEqual(33.45, rfc2544_profile.rate)
Example #8
0
    def test__get_ixia_traffic_profile_default_args(self):
        r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
            self.TRAFFIC_PROFILE)

        expected = {}
        result = r_f_c2544_profile._get_ixia_traffic_profile({})
        self.assertDictEqual(result, expected)
Example #9
0
 def test_get_drop_percentage_not_flow(self, *args):
     samples = {
         'iface_name_1': {
             'InPackets': 1000,
             'OutPackets': 0,
             'InBytes': 64000,
             'OutBytes': 0,
             'LatencyAvg': 20,
             'LatencyMin': 15,
             'LatencyMax': 25
         },
         'iface_name_2': {
             'InPackets': 1005,
             'OutPackets': 0,
             'InBytes': 64320,
             'OutBytes': 0,
             'LatencyAvg': 20,
             'LatencyMin': 15,
             'LatencyMax': 25
         }
     }
     rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
     rfc2544_profile.rate = 1000
     rfc2544_profile._get_next_rate = mock.Mock(return_value=50.0)
     completed, samples = rfc2544_profile.get_drop_percentage(
         samples, 0.2, 1, 4, 0.1)
     self.assertFalse(completed)
     self.assertEqual(0.0, samples['TxThroughput'])
     self.assertEqual(66.833, samples['RxThroughput'])
     self.assertEqual(100, samples['DropPercentage'])
     self.assertEqual(rfc2544_profile.rate, rfc2544_profile.max_rate)
Example #10
0
    def test_update_traffic_profile(self):
        traffic_generator = mock.Mock(
            autospec=trex_traffic_profile.TrexProfile)
        traffic_generator.networks = {
            "uplink_0": ["xe0"],  # private, one value for intfs
            "downlink_0": ["xe1", "xe2"],  # public, two values for intfs
            "downlink_1": ["xe3"],  # not in TRAFFIC PROFILE
            "tenant_0": ["xe4"],  # not public or private
        }

        ports_expected = [8, 3, 5]
        traffic_generator.vnfd_helper.port_num.side_effect = ports_expected
        traffic_generator.client.return_value = True

        traffic_profile = copy.deepcopy(self.TRAFFIC_PROFILE)
        traffic_profile.update({
            "uplink_0": ["xe0"],
            "downlink_0": ["xe1", "xe2"],
        })

        r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(traffic_profile)
        r_f_c2544_profile.full_profile = {}
        r_f_c2544_profile.get_streams = mock.Mock()

        self.assertIsNone(
            r_f_c2544_profile.update_traffic_profile(traffic_generator))
        self.assertEqual(r_f_c2544_profile.ports, ports_expected)
Example #11
0
 def test__get_ip_and_mask_range(self):
     ip_range = '1.2.0.2-1.2.255.254'
     r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
         self.TRAFFIC_PROFILE)
     ip, mask = r_f_c2544_profile._get_ip_and_mask(ip_range)
     self.assertEqual('1.2.0.2', ip)
     self.assertEqual(16, mask)
Example #12
0
 def test_get_drop_percentage_completed(self):
     samples = {
         'iface_name_1': {
             'in_packets': 1000,
             'out_packets': 1000,
             'Store-Forward_Avg_latency_ns': 20,
             'Store-Forward_Min_latency_ns': 15,
             'Store-Forward_Max_latency_ns': 25
         },
         'iface_name_2': {
             'in_packets': 1005,
             'out_packets': 1007,
             'Store-Forward_Avg_latency_ns': 23,
             'Store-Forward_Min_latency_ns': 13,
             'Store-Forward_Max_latency_ns': 28
         }
     }
     rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
     completed, samples = rfc2544_profile.get_drop_percentage(
         samples, 0, 1, 4)
     self.assertTrue(completed)
     self.assertEqual(66.9, samples['TxThroughput'])
     self.assertEqual(66.833, samples['RxThroughput'])
     self.assertEqual(0.099651, samples['DropPercentage'])
     self.assertEqual(21.5, samples['latency_ns_avg'])
     self.assertEqual(14.0, samples['latency_ns_min'])
     self.assertEqual(26.5, samples['latency_ns_max'])
Example #13
0
    def test_get_drop_percentage_resolution(self):
        rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
        rfc2544_profile._get_next_rate = mock.Mock(return_value=0.1)
        samples = {
            'iface_name_1': {
                'InPackets': 1000,
                'OutPackets': 1000,
                'InBytes': 64000,
                'OutBytes': 64000,
                'LatencyAvg': 20,
                'LatencyMin': 15,
                'LatencyMax': 25
            },
            'iface_name_2': {
                'InPackets': 1005,
                'OutPackets': 1007,
                'InBytes': 64320,
                'OutBytes': 64448,
                'LatencyAvg': 20,
                'LatencyMin': 15,
                'LatencyMax': 25
            }
        }
        rfc2544_profile.rate = 0.19
        completed, _ = rfc2544_profile.get_drop_percentage(
            samples, 0, 0.05, 4, 0.1)
        self.assertTrue(completed)

        samples = {
            'iface_name_1': {
                'InPackets': 1000,
                'OutPackets': 1000,
                'InBytes': 64000,
                'OutBytes': 64000,
                'LatencyAvg': 20,
                'LatencyMin': 15,
                'LatencyMax': 25
            },
            'iface_name_2': {
                'InPackets': 1005,
                'OutPackets': 1007,
                'InBytes': 64320,
                'OutBytes': 64448,
                'LatencyAvg': 20,
                'LatencyMin': 15,
                'LatencyMax': 25
            }
        }
        rfc2544_profile.rate = 0.5
        completed, _ = rfc2544_profile.get_drop_percentage(
            samples, 0, 0.05, 4, 0.1)
        self.assertFalse(completed)
Example #14
0
 def test__get_framesize_IMIX_traffic(self):
     traffic_profile = {
         'uplink_0': {
             'ipv4': {
                 'outer_l2': {
                     'framesize': {
                         '64B': 50,
                         '128B': 50
                     }
                 }
             }
         },
         'downlink_0': {
             'ipv4': {
                 'outer_l2': {
                     'framesize': {
                         '64B': 50,
                         '128B': 50
                     }
                 }
             }
         },
         'uplink_1': {
             'ipv4': {
                 'outer_l2': {
                     'framesize': {
                         '64B': 50,
                         '128B': 50
                     }
                 }
             }
         },
         'downlink_1': {
             'ipv4': {
                 'outer_l2': {
                     'framesize': {
                         '64B': 50,
                         '128B': 50
                     }
                 }
             }
         }
     }
     rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
     rfc2544_profile.params = traffic_profile
     result = rfc2544_profile._get_framesize()
     self.assertEqual(result, 'IMIX')
Example #15
0
    def test_execute_traffic_not_first_run(self):
        rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
        rfc2544_profile.first_run = False
        rfc2544_profile.max_rate = 70
        rfc2544_profile.min_rate = 0
        with mock.patch.object(rfc2544_profile, '_get_ixia_traffic_profile') \
                as mock_get_tp, \
                mock.patch.object(rfc2544_profile, '_ixia_traffic_generate') \
                as mock_tgenerate:
            mock_get_tp.return_value = 'fake_tprofile'
            rfc2544_profile.full_profile = mock.ANY
            output = rfc2544_profile.execute_traffic(mock.ANY,
                                                     ixia_obj=mock.ANY)

        self.assertFalse(output)
        self.assertEqual(35.0, rfc2544_profile.rate)
        mock_get_tp.assert_called_once()
        mock_tgenerate.assert_called_once()
Example #16
0
    def test_execute_traffic_first_run(self):
        rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
        rfc2544_profile.first_run = True
        rfc2544_profile.rate = 50
        traffic_gen = mock.Mock()
        traffic_gen.rfc_helper.iteration.value = 0
        with mock.patch.object(rfc2544_profile, '_get_ixia_traffic_profile') \
                as mock_get_tp, \
                mock.patch.object(rfc2544_profile, '_ixia_traffic_generate') \
                as mock_tgenerate:
            mock_get_tp.return_value = 'fake_tprofile'
            output = rfc2544_profile.execute_traffic(traffic_gen,
                                                     ixia_obj=mock.ANY)

        self.assertTrue(output)
        self.assertFalse(rfc2544_profile.first_run)
        self.assertEqual(50, rfc2544_profile.max_rate)
        self.assertEqual(0, rfc2544_profile.min_rate)
        mock_get_tp.assert_called_once()
        mock_tgenerate.assert_called_once()
Example #17
0
 def test_get_drop_percentage_completed(self):
     samples = {
         'iface_name_1': {
             'RxThroughput': 10,
             'TxThroughput': 10,
             'in_packets': 1000,
             'out_packets': 1000
         },
         'iface_name_2': {
             'RxThroughput': 11,
             'TxThroughput': 13,
             'in_packets': 1005,
             'out_packets': 1007
         }
     }
     rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
     completed, samples = rfc2544_profile.get_drop_percentage(samples, 0, 1)
     self.assertTrue(completed)
     self.assertEqual(23.0, samples['TxThroughput'])
     self.assertEqual(21.0, samples['RxThroughput'])
     self.assertEqual(0.1, samples['DropPercentage'])
Example #18
0
 def test_get_drop_percentage_completed(self):
     samples = {
         'iface_name_1': {
             'InPackets': 1000,
             'OutPackets': 1000,
             'InBytes': 64000,
             'OutBytes': 64000,
             'LatencyAvg': 20,
             'LatencyMin': 15,
             'LatencyMax': 25
         },
         'iface_name_2': {
             'InPackets': 1005,
             'OutPackets': 1007,
             'InBytes': 64320,
             'OutBytes': 64448,
             'LatencyAvg': 23,
             'LatencyMin': 13,
             'LatencyMax': 28
         }
     }
     rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
     rfc2544_profile.rate = 100.0
     rfc2544_profile._get_next_rate = mock.Mock(return_value=100.0)
     rfc2544_profile._get_framesize = mock.Mock(return_value='64B')
     completed, samples = rfc2544_profile.get_drop_percentage(
         samples, 0, 1, 4, 0.1)
     self.assertTrue(completed)
     self.assertEqual(66.9, samples['TxThroughput'])
     self.assertEqual(66.833, samples['RxThroughput'])
     self.assertEqual(0.099651, samples['DropPercentage'])
     self.assertEqual(21.5, samples['LatencyAvg'])
     self.assertEqual(13.0, samples['LatencyMin'])
     self.assertEqual(28.0, samples['LatencyMax'])
     self.assertEqual(100.0, samples['Rate'])
     self.assertEqual('64B', samples['PktSize'])
Example #19
0
 def test_get_drop_percentage_not_flow(self, *args):
     samples = {
         'iface_name_1': {
             'RxThroughput': 0,
             'TxThroughput': 10,
             'in_packets': 1000,
             'out_packets': 0
         },
         'iface_name_2': {
             'RxThroughput': 0,
             'TxThroughput': 13,
             'in_packets': 1005,
             'out_packets': 0
         }
     }
     rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
     rfc2544_profile.rate = 1000
     completed, samples = rfc2544_profile.get_drop_percentage(
         samples, 0.2, 1)
     self.assertFalse(completed)
     self.assertEqual(23.0, samples['TxThroughput'])
     self.assertEqual(0, samples['RxThroughput'])
     self.assertEqual(100, samples['DropPercentage'])
     self.assertEqual(rfc2544_profile.rate, rfc2544_profile.max_rate)
Example #20
0
 def test__update_traffic_tracking_options(self):
     mock_traffic_gen = mock.Mock()
     rfc2544_profile = ixia_rfc2544.IXIARFC2544Profile(self.TRAFFIC_PROFILE)
     rfc2544_profile._update_traffic_tracking_options(mock_traffic_gen)
     mock_traffic_gen.update_tracking_options.assert_called_once()
Example #21
0
    def test_get_ixia_traffic_profile(self):
        traffic_generator = mock.Mock(
            autospec=trex_traffic_profile.TrexProfile)
        traffic_generator.my_ports = [0, 1]
        traffic_generator.uplink_ports = [-1]
        traffic_generator.downlink_ports = [1]
        traffic_generator.client = \
            mock.Mock(return_value=True)
        STATIC_TRAFFIC = {
            ixia_rfc2544.IXIARFC2544Profile.UPLINK: {
                "id": 1,
                "bidir": "False",
                "duration": 60,
                "iload": "100",
                "outer_l2": {
                    "dstmac": "00:00:00:00:00:03",
                    "framesPerSecond": True,
                    "framesize": 64,
                    "srcmac": "00:00:00:00:00:01"
                },
                "outer_l3": {
                    "dscp": 0,
                    "dstip4": "152.16.40.20",
                    "proto": "udp",
                    "srcip4": "152.16.100.20",
                    "ttl": 32
                },
                "outer_l3v4": {
                    "dscp": 0,
                    "dstip4": "152.16.40.20",
                    "proto": "udp",
                    "srcip4": "152.16.100.20",
                    "ttl": 32,
                    "count": "1"
                },
                "outer_l3v6": {
                    "dscp": 0,
                    "dstip4": "152.16.100.20",
                    "proto": "udp",
                    "srcip4": "152.16.40.20",
                    "ttl": 32,
                },
                "outer_l4": {
                    "dstport": "2001",
                    "srcport": "1234",
                    "count": "1"
                },
                "traffic_type": "continuous"
            },
            ixia_rfc2544.IXIARFC2544Profile.DOWNLINK: {
                "id": 2,
                "bidir": "False",
                "duration": 60,
                "iload": "100",
                "outer_l2": {
                    "dstmac": "00:00:00:00:00:04",
                    "framesPerSecond": True,
                    "framesize": 64,
                    "srcmac": "00:00:00:00:00:01"
                },
                "outer_l3": {
                    "count": 1024,
                    "dscp": 0,
                    "dstip4": "152.16.100.20",
                    "proto": "udp",
                    "srcip4": "152.16.40.20",
                    "ttl": 32
                },
                "outer_l3v4": {
                    "dscp": 0,
                    "dstip4": "152.16.100.20",
                    "proto": "udp",
                    "srcip4": "152.16.40.20",
                    "ttl": 32,
                },
                "outer_l3v6": {
                    "dscp": 0,
                    "dstip4": "152.16.100.20",
                    "proto": "udp",
                    "srcip4": "152.16.40.20",
                    "ttl": 32,
                },
                "outer_l4": {
                    "dstport": "1234",
                    "srcport": "2001",
                    "count": "1"
                },
                "traffic_type": "continuous"
            }
        }
        ixia_rfc2544.STATIC_TRAFFIC = STATIC_TRAFFIC

        r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
            self.TRAFFIC_PROFILE)
        r_f_c2544_profile.rate = 100
        mac = {
            "src_mac_0": "00:00:00:00:00:01",
            "src_mac_1": "00:00:00:00:00:02",
            "src_mac_2": "00:00:00:00:00:02",
            "dst_mac_0": "00:00:00:00:00:03",
            "dst_mac_1": "00:00:00:00:00:04",
            "dst_mac_2": "00:00:00:00:00:04"
        }
        result = r_f_c2544_profile._get_ixia_traffic_profile(self.PROFILE, mac)
        self.assertIsNotNone(result)
Example #22
0
    def test_get_ixia_traffic_profile_v6(self, *args):
        traffic_generator = mock.Mock(
            autospec=trex_traffic_profile.TrexProfile)
        traffic_generator.my_ports = [0, 1]
        traffic_generator.uplink_ports = [-1]
        traffic_generator.downlink_ports = [1]
        traffic_generator.client = \
            mock.Mock(return_value=True)
        STATIC_TRAFFIC = {
            ixia_rfc2544.IXIARFC2544Profile.UPLINK: {
                "id": 1,
                "bidir": "False",
                "duration": 60,
                "iload": "100",
                "outer_l2": {
                    "dstmac": "00:00:00:00:00:03",
                    "framesPerSecond": True,
                    "framesize": 64,
                    "srcmac": "00:00:00:00:00:01"
                },
                "outer_l3": {
                    "dscp": 0,
                    "dstip4": "152.16.40.20",
                    "proto": "udp",
                    "srcip4": "152.16.100.20",
                    "ttl": 32
                },
                "outer_l3v4": {
                    "dscp": 0,
                    "dstip4": "152.16.40.20",
                    "proto": "udp",
                    "srcip4": "152.16.100.20",
                    "ttl": 32
                },
                "outer_l3v6": {
                    "count": 1024,
                    "dscp": 0,
                    "dstip4": "152.16.100.20",
                    "proto": "udp",
                    "srcip4": "152.16.40.20",
                    "ttl": 32
                },
                "outer_l4": {
                    "dstport": "2001",
                    "srcport": "1234"
                },
                "traffic_type": "continuous"
            },
            ixia_rfc2544.IXIARFC2544Profile.DOWNLINK: {
                "id": 2,
                "bidir": "False",
                "duration": 60,
                "iload": "100",
                "outer_l2": {
                    "dstmac": "00:00:00:00:00:04",
                    "framesPerSecond": True,
                    "framesize": 64,
                    "srcmac": "00:00:00:00:00:01"
                },
                "outer_l3": {
                    "count": 1024,
                    "dscp": 0,
                    "dstip4": "152.16.100.20",
                    "proto": "udp",
                    "srcip4": "152.16.40.20",
                    "ttl": 32
                },
                "outer_l3v4": {
                    "count": 1024,
                    "dscp": 0,
                    "dstip4": "152.16.100.20",
                    "proto": "udp",
                    "srcip4": "152.16.40.20",
                    "ttl": 32
                },
                "outer_l3v6": {
                    "count": 1024,
                    "dscp": 0,
                    "dstip4": "152.16.100.20",
                    "proto": "udp",
                    "srcip4": "152.16.40.20",
                    "ttl": 32
                },
                "outer_l4": {
                    "dstport": "1234",
                    "srcport": "2001"
                },
                "traffic_type": "continuous"
            }
        }
        ixia_rfc2544.STATIC_TRAFFIC = STATIC_TRAFFIC

        r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(
            self.TRAFFIC_PROFILE)
        r_f_c2544_profile.rate = 100
        mac = {
            "src_mac_0": "00:00:00:00:00:01",
            "src_mac_1": "00:00:00:00:00:02",
            "src_mac_2": "00:00:00:00:00:02",
            "dst_mac_0": "00:00:00:00:00:03",
            "dst_mac_1": "00:00:00:00:00:04",
            "dst_mac_2": "00:00:00:00:00:04"
        }
        profile_data = {
            'description': 'Traffic profile to run RFC2544',
            'name': 'rfc2544',
            'traffic_profile': {
                'traffic_type': 'IXIARFC2544Profile',
                'frame_rate': 100
            },
            ixia_rfc2544.IXIARFC2544Profile.DOWNLINK: {
                'ipv4': {
                    'outer_l2': {
                        'framesize': {
                            '64B': '100',
                            '1518B': '0',
                            '128B': '0',
                            '1400B': '0',
                            '256B': '0',
                            '373b': '0',
                            '570B': '0'
                        }
                    },
                    'outer_l3v4': {
                        'dstip4': '1.1.1.1-1.15.255.255',
                        'proto': 'udp',
                        'count': '1',
                        'srcip4': '90.90.1.1-90.105.255.255',
                        'dscp': 0,
                        'ttl': 32
                    },
                    'outer_l3v6': {
                        'dstip6': '1.1.1.1-1.15.255.255',
                        'proto': 'udp',
                        'count': '1',
                        'srcip6': '90.90.1.1-90.105.255.255',
                        'dscp': 0,
                        'ttl': 32
                    },
                    'outer_l4': {
                        'srcport': '2001',
                        'dsrport': '1234'
                    }
                }
            },
            ixia_rfc2544.IXIARFC2544Profile.UPLINK: {
                'ipv4': {
                    'outer_l2': {
                        'framesize': {
                            '64B': '100',
                            '1518B': '0',
                            '128B': '0',
                            '1400B': '0',
                            '256B': '0',
                            '373b': '0',
                            '570B': '0'
                        }
                    },
                    'outer_l3v4': {
                        'dstip4': '9.9.1.1-90.105.255.255',
                        'proto': 'udp',
                        'count': '1',
                        'srcip4': '1.1.1.1-1.15.255.255',
                        'dscp': 0,
                        'ttl': 32
                    },
                    'outer_l3v6': {
                        'dstip6': '9.9.1.1-90.105.255.255',
                        'proto': 'udp',
                        'count': '1',
                        'srcip6': '1.1.1.1-1.15.255.255',
                        'dscp': 0,
                        'ttl': 32
                    },
                    'outer_l4': {
                        'dstport': '2001',
                        'srcport': '1234'
                    }
                }
            },
            'schema': 'isb:traffic_profile:0.1'
        }
        result = r_f_c2544_profile._get_ixia_traffic_profile(profile_data, mac)
        self.assertIsNotNone(result)
Example #23
0
 def test__init__(self):
     t_profile_data = copy.deepcopy(self.TRAFFIC_PROFILE)
     t_profile_data['traffic_profile']['frame_rate'] = 12345678
     r_f_c2544_profile = ixia_rfc2544.IXIARFC2544Profile(t_profile_data)
     self.assertEqual(12345678, r_f_c2544_profile.rate)