Skip to content

Commit

Permalink
Flooding Garp packet from fabric interface
Browse files Browse the repository at this point in the history
In the allowed address pair scenario, to trap the Garp packets from VM,
the route is marked with T flag. But if the Gratuitous packet is from
fabric interface the packet needs to be given to VM's rather getting
trapped to Agent. Right now for all Garp packets, the route flag is
considered and if T is set, it is trapped to agent. This is leading to
Garp not getting flooded to VM's.

As a fix, Garp packets from fabric are always flooded.

Change-Id: I3731ae74df92c03edc0c95502d5984455992179c
closes-bug: #1478662
  • Loading branch information
divakardhar committed Aug 3, 2015
1 parent 13ed9d0 commit 163b8c0
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions dp-core/vr_proto_ip.c
Expand Up @@ -981,6 +981,13 @@ vm_arp_request(struct vr_interface *vif, struct vr_packet *pkt,

sarp = (struct vr_arp *)pkt_data(pkt);

/*
* Garp coming from other compute nodes can be just flooded without
* considering the route information
*/
if (vr_grat_arp(sarp) && vif_is_fabric(pkt->vp_if))
return MR_FLOOD;

memset(&rt, 0, sizeof(rt));
rt.rtr_req.rtr_vrf_id = fmd->fmd_dvrf;
rt.rtr_req.rtr_family = AF_INET;
Expand All @@ -1006,6 +1013,7 @@ vm_arp_request(struct vr_interface *vif, struct vr_packet *pkt,
rt.rtr_nh = NULL;
}


*(uint32_t *)rt.rtr_req.rtr_prefix = (sarp->arp_dpa);
vr_inet_route_lookup(fmd->fmd_dvrf, &rt);

Expand Down

0 comments on commit 163b8c0

Please sign in to comment.