Add L3 traffic management with Neutron routers
[nfvbench.git] / nfvbench / chain_runner.py
index 627e9ea..833373c 100644 (file)
@@ -78,7 +78,7 @@ class ChainRunner(object):
         # Note that in the case of EXT+ARP+VxLAN, the dest MACs need to be loaded
         # because ARP only operates on the dest VTEP IP not on the VM dest MAC
         if not config.l2_loopback and \
-           (config.service_chain != ChainType.EXT or config.no_arp or config.vxlan):
+                (config.service_chain != ChainType.EXT or config.no_arp or config.vxlan):
             gen_config.set_dest_macs(0, self.chain_manager.get_dest_macs(0))
             gen_config.set_dest_macs(1, self.chain_manager.get_dest_macs(1))
 
@@ -104,8 +104,8 @@ class ChainRunner(object):
         self.traffic_client.setup()
         if not self.config.no_traffic:
             # ARP is needed for EXT chain or VxLAN overlay unless disabled explicitly
-            if (self.config.service_chain == ChainType.EXT or self.config.vxlan) and \
-               not self.config.no_arp:
+            if (self.config.service_chain == ChainType.EXT or
+                    self.config.vxlan or self.config.l3_router) and not self.config.no_arp:
                 self.traffic_client.ensure_arp_successful()
             self.traffic_client.ensure_end_to_end()