mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 00:24:41 -04:00
qcacld-3.0: Add check to find IPV6 mcast packet
Propagation from qcacld-2.0 to qcacld-3.0. 1) Add check to find IPV6 mcast packet embedded in a link layer unicast packet in wma_wow_wake_up_stats. 2) Add extra length check for IPV4 packets. Change-Id: Ic2af69032262237b8751019817ae181913346818 CRs-Fixed: 1049254
This commit is contained in:
parent
4574e28362
commit
11a08c08db
1 changed files with 13 additions and 9 deletions
|
|
@ -2449,14 +2449,16 @@ static void wma_wow_wake_up_stats(tp_wma_handle wma, uint8_t *data,
|
|||
case WOW_REASON_PATTERN_MATCH_FOUND:
|
||||
if (WMA_BCAST_MAC_ADDR == *data) {
|
||||
wma->wow_bcast_wake_up_count++;
|
||||
if (qdf_nbuf_data_is_icmp_pkt(data))
|
||||
if (len >= WMA_IPV4_PROTO_GET_MIN_LEN &&
|
||||
qdf_nbuf_data_is_icmp_pkt(data))
|
||||
wma->wow_icmpv4_count++;
|
||||
else if ((len > WMA_ICMP_V6_TYPE_OFFSET) &&
|
||||
qdf_nbuf_data_is_icmpv6_pkt(data))
|
||||
wma->wow_icmpv6_count++;
|
||||
} else if (WMA_MCAST_IPV4_MAC_ADDR == *data) {
|
||||
wma->wow_ipv4_mcast_wake_up_count++;
|
||||
if (WMA_ICMP_PROTOCOL == *(data + WMA_IPV4_PROTOCOL))
|
||||
if (len >= WMA_IPV4_PROTO_GET_MIN_LEN &&
|
||||
WMA_ICMP_PROTOCOL == *(data + WMA_IPV4_PROTOCOL))
|
||||
wma->wow_icmpv4_count++;
|
||||
} else if (WMA_MCAST_IPV6_MAC_ADDR == *data) {
|
||||
wma->wow_ipv6_mcast_wake_up_count++;
|
||||
|
|
@ -2466,13 +2468,15 @@ static void wma_wow_wake_up_stats(tp_wma_handle wma, uint8_t *data,
|
|||
WMA_LOGA("ICMP_V6 data len %d", len);
|
||||
} else {
|
||||
wma->wow_ucast_wake_up_count++;
|
||||
if (qdf_nbuf_data_is_ipv4_pkt(data)) {
|
||||
if (qdf_nbuf_data_is_ipv4_mcast_pkt(data))
|
||||
wma->wow_ipv4_mcast_wake_up_count++;
|
||||
if (WMA_ICMP_PROTOCOL ==
|
||||
*(data + WMA_IPV4_PROTOCOL))
|
||||
wma->wow_icmpv4_count++;
|
||||
} else if ((len > WMA_ICMP_V6_TYPE_OFFSET) &&
|
||||
if (qdf_nbuf_data_is_ipv4_mcast_pkt(data))
|
||||
wma->wow_ipv4_mcast_wake_up_count++;
|
||||
else if (qdf_nbuf_data_is_ipv6_mcast_pkt(data))
|
||||
wma->wow_ipv6_mcast_wake_up_count++;
|
||||
|
||||
if (len >= WMA_IPV4_PROTO_GET_MIN_LEN &&
|
||||
qdf_nbuf_data_is_icmp_pkt(data))
|
||||
wma->wow_icmpv4_count++;
|
||||
else if (len > WMA_ICMP_V6_TYPE_OFFSET &&
|
||||
qdf_nbuf_data_is_icmpv6_pkt(data))
|
||||
wma->wow_icmpv6_count++;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue