- self.engine.create_vpp_exec_config(container_vat_template, \
- mid1=mid1, sid1=sid1, if_name=if_name, \
- socket1='memif-{c.name}-{sid}'. \
- format(c=self.engine.container, sid=sid1))
- else:
- raise RuntimeError('Container topology {topology} not implemented'.
- format(topology=chain_topology))
+ self.engine.create_vpp_exec_config(
+ container_vat_template,
+ mid1=mid1, sid1=sid1, if_name=if_name,
+ socket1='{dir}/memif-{c.name}-{sid}'.
+ format(c=self.engine.container, sid=sid1, dir=guest_dir))
+ elif chain_topology == 'chain_functional':
+ memif_rx_mode = 'interrupt'
+ self.engine.create_vpp_startup_config_func_dev()
+ self.engine.create_vpp_exec_config(
+ container_vat_template,
+ mid1=mid1, mid2=mid2, sid1=sid1, sid2=sid2,
+ socket1='{dir}/memif-{c.name}-{sid}'.
+ format(c=self.engine.container, sid=sid1, dir=guest_dir),
+ socket2='{dir}/memif-{c.name}-{sid}'.
+ format(c=self.engine.container, sid=sid2, dir=guest_dir),
+ rx_mode=memif_rx_mode)
+ elif chain_topology == 'chain_ip4':
+ self.engine.create_vpp_startup_config()
+ vif1_mac = kwargs['tg_if1_mac'] \
+ if (mid1 - 1) % kwargs['nodes'] + 1 == 1 \
+ else '52:54:00:00:{0:02X}:02'.format(mid1-1)
+ vif2_mac = kwargs['tg_if2_mac'] \
+ if (mid2 - 1) % kwargs['nodes'] + 1 == kwargs['nodes'] \
+ else '52:54:00:00:{0:02X}:01'.format(mid2+1)
+ self.engine.create_vpp_exec_config(
+ container_vat_template,
+ mid1=mid1, mid2=mid2, sid1=sid1, sid2=sid2,
+ socket1='{dir}/memif-{c.name}-{sid}'.
+ format(c=self.engine.container, sid=sid1, dir=guest_dir),
+ socket2='{dir}/memif-{c.name}-{sid}'.
+ format(c=self.engine.container, sid=sid2, dir=guest_dir),
+ mac1='52:54:00:00:{0:02X}:01'.format(mid1),
+ mac2='52:54:00:00:{0:02X}:02'.format(mid2),
+ vif1_mac=vif1_mac, vif2_mac=vif2_mac)
+ else:
+ raise RuntimeError('Container topology {topology} not '
+ 'implemented'.
+ format(topology=chain_topology))