Skip to content

Commit

Permalink
Treat ARP requestsas VM's requests if VRF is different when compared …
Browse files Browse the repository at this point in the history
…to VIF's VRF

This issue is valid only for unicast ARP request packets. As multicast ARP
request packets are always handled in Multicast Composite nexthop and as
they are  never subjected to GRO, this issue is not observed for
multicast ARP packets.
When an unicast ARP request is received on Fabric interface it is treated as ARP
reqest for VM if there is a label attached to it. Due to the changes in
GRO, post GRO, the label is not going to be present in fmd. So ARP
packets are treated as if they are meant for fabric network. This is
resulting in unicast ARP requests never being answered.

As a fix, if the VRF of fmd is different from VIF's VRF, these packets
are treated as VM's ARP packets.

Change-Id: I013b83c38642697c81e32460be936154e42a067e
closes-bug: #1570180
  • Loading branch information
divakardhar committed Apr 21, 2016
1 parent 02f49b2 commit d5c774a
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion dp-core/vr_interface.c
Expand Up @@ -963,7 +963,10 @@ eth_mac_request(struct vr_interface *vif, struct vr_packet *pkt,
if (vif_mode_xconnect(vif))
return MR_XCONNECT;

if (fmd->fmd_label >= 0)
/*
* If there is a label or if the vrf is different, it is meant for VM's
*/
if ((fmd->fmd_label >= 0) || (fmd->fmd_dvrf != vif->vif_vrf))
return vm_mac_request(vif, pkt, fmd, dmac);

if (pkt->vp_type == VP_TYPE_ARP) {
Expand Down

0 comments on commit d5c774a

Please sign in to comment.