Skip to content

Commit

Permalink
No source IP lookup for ARP requests from BMS
Browse files Browse the repository at this point in the history
For the packets from VM to an ECMP destination we are forcing the
packets to be L3 routed. When ARP request comes for that VM from one of
the ECMP sources, though we have the stiching for VM's IP we give
Vhost's MAC to route the packets as packets need to be routed in this
direction as well. This functioanlity is added with the fix for the bug
1472796.
But the fix for the above bug should not handle the ARP request coming
from BMS (in TSN) as TSN is never a gateway for BMS. Such ARP request
should be flooded. So the fix is to not force the L3 if ARP request is
from BMS.

Change-Id: Ib2626f27a89d34cd98b04e6084aac12ca8eb4ac9
closes-bug: #1485804
  • Loading branch information
divakardhar committed Aug 26, 2015
1 parent d2713e3 commit cfb0524
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion dp-core/vr_proto_ip.c
Expand Up @@ -1014,7 +1014,15 @@ vm_arp_request(struct vr_interface *vif, struct vr_packet *pkt,
rt.rtr_req.rtr_prefix_len = 32;
rt.rtr_req.rtr_mac = mac;

if (!vr_grat_arp(sarp)) {
/*
* If ARP request is coming from other compute nodes, and if that
* particular compute node is part of ECMP, we need to route these
* packets though we have stiched mac for VM, as packets from VM to
* that ECMP are routed packets
* ARP requests from Tor have to be flooded so that required nodes
* will answer that
*/
if ((fmd->fmd_src != TOR_SOURCE) && !vr_grat_arp(sarp)) {
*(uint32_t *)rt.rtr_req.rtr_prefix = (sarp->arp_spa);
vr_inet_route_lookup(fmd->fmd_dvrf, &rt);

Expand Down

0 comments on commit cfb0524

Please sign in to comment.