Add fixes for heat deployed UDP_Replay and TRex
[yardstick.git] / yardstick / network_services / helpers / samplevnf_helper.py
index ae54510..9d89d41 100644 (file)
@@ -229,10 +229,15 @@ class MultiPortConfig(object):
     @staticmethod
     def get_port_pairs(interfaces):
         port_pair_list = []
-        networks = defaultdict(list)
+        networks = {}
         for private_intf in interfaces:
             vintf = private_intf['virtual-interface']
-            networks[vintf['vld_id']].append(vintf)
+            try:
+                vld_id = vintf['vld_id']
+            except KeyError:
+                pass
+            else:
+                networks.setdefault(vld_id, []).append(vintf)
 
         for name, net in networks.items():
             # partition returns a tuple
@@ -333,10 +338,20 @@ class MultiPortConfig(object):
             'nd_route_tbl': "(0100::,64,0,::1)"
         }
         self.pktq_out_os = swq_out_str.split(' ')
-        # why?
+        # HWLB is a run to complition. So override the pktq_in/pktq_out
         if self.lb_config == self.HW_LB:
-            arpicmp_data['pktq_in'] = swq_in_str
             self.swq = 0
+            swq_in_str = \
+                self.make_range_str('SWQ{}', self.swq,
+                                    offset=(self.lb_count * self.worker_threads))
+            arpicmp_data['pktq_in'] = swq_in_str
+            # WA: Since port_pairs will not be populated during arp pipeline
+            self.port_pairs = self.port_pair_list
+            port_iter = \
+                self.make_port_pairs_iter(self.float_x_plus_one_tenth_of_y, [self.mul])
+            pktq_out = self.make_str('TXQ{}', port_iter)
+            arpicmp_data['pktq_out'] = pktq_out
+
         return arpicmp_data
 
     def generate_final_txrx_data(self):