diff --git a/neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_tun.py b/neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_tun.py index eed5eac0b4b..706c00394e7 100644 --- a/neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_tun.py +++ b/neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_tun.py @@ -229,6 +229,10 @@ class OVSTunnelBridge(ovs_bridge.OVSAgentBridge, n_bits=32), ofpp.OFPActionSetField(arp_sha=mac), ofpp.OFPActionSetField(arp_spa=ip), + ofpp.NXActionRegMove(src_field='eth_src', + dst_field='eth_dst', + n_bits=48), + ofpp.OFPActionSetField(eth_src_nxm=mac), ofpp.OFPActionOutput(ofp.OFPP_IN_PORT, 0)] self.install_apply_actions(table_id=constants.ARP_RESPONDER, priority=1, diff --git a/neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/test_br_tun.py b/neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/test_br_tun.py index ae6a78625fa..6c10c725be1 100644 --- a/neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/test_br_tun.py +++ b/neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/test_br_tun.py @@ -402,6 +402,10 @@ class OVSTunnelBridgeTest(ovs_bridge_test_base.OVSBridgeTestBase, src_field='arp_spa'), ofpp.OFPActionSetField(arp_sha=mac), ofpp.OFPActionSetField(arp_spa=ip), + ofpp.NXActionRegMove(src_field='eth_src', + dst_field='eth_dst', + n_bits=48), + ofpp.OFPActionSetField(eth_src_nxm=mac), ofpp.OFPActionOutput(ofp.OFPP_IN_PORT, 0), ]), ],