Selaa lähdekoodia

qcacld-3.0: Make grat ARP KA source/target addresses the same

According to RFC 5227, both the source and target addresses in a
gratuitous ARP packet should be the same. When enabling gratuitous ARP
keepalive, set both source and target addresses to the host's IPv4
address.

Change-Id: If467cc7d93adb67f88539ebed727689b61d42089
CRs-Fixed: 2004770
Dustin Brown 8 vuotta sitten
vanhempi
sitoutus
6b4643dd58
1 muutettua tiedostoa jossa 4 lisäystä ja 1 poistoa
  1. 4 1
      core/hdd/src/wlan_hdd_power.c

+ 4 - 1
core/hdd/src/wlan_hdd_power.c

@@ -744,7 +744,6 @@ static int hdd_set_grat_arp_keepalive(hdd_adapter_t *adapter)
 	hdd_station_ctx_t *sta_ctx;
 	tSirKeepAliveReq req = {
 		.packetType = SIR_KEEP_ALIVE_UNSOLICIT_ARP_RSP,
-		.destIpv4Addr = {0xff, 0xff, 0xff, 0xff},
 		.dest_macaddr = QDF_MAC_ADDR_BROADCAST_INITIALIZER,
 	};
 
@@ -771,6 +770,10 @@ static int hdd_set_grat_arp_keepalive(hdd_adapter_t *adapter)
 		return exit_code;
 	}
 
+	/* according to RFC5227, sender/target ip address should be the same */
+	qdf_mem_copy(&req.destIpv4Addr, &req.hostIpv4Addr,
+		     sizeof(req.destIpv4Addr));
+
 	qdf_copy_macaddr(&req.bssid, &sta_ctx->conn_info.bssId);
 	req.timePeriod = hdd_ctx->config->infraStaKeepAlivePeriod;
 	req.sessionId = adapter->sessionId;