ACTION_TEMPLATE = """\
p action add {0} accept
-p action add {0} fwd
+p action add {0} fwd {0}
p action add {0} count
"""
FW_ACTION_TEMPLATE = """\
p action add {0} accept
-p action add {0} fwd
+p action add {0} fwd {0}
p action add {0} count
p action add {0} conntrack
"""
return
try:
- self.start_core = 'h{}'.format(int(self.start_core))
+ self.start_core = '{}h'.format(int(self.start_core))
except ValueError:
self.start_core = int(self.start_core[:-1]) + 1
@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
'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):