summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimanshu Agarwal <himanaga@codeaurora.org>2017-01-24 21:34:16 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2017-02-07 09:13:18 -0800
commit8a68b91de40919d863a09247baef1f98f91c4a2d (patch)
treeb007a451a309e029fc41f34a590b26f1eea1c77c
parentd09814ad7acaff5672f8a051a78d6de9a47d1c9d (diff)
qcacld-2.0: Add support to dump ICMPV6 RS and RA in wow wakeup stats
Add support to dump information for ICMPV6 RS and RA packets in wow wakeup stats. Change-Id: I1a2852189664fff31e29b487d7a8c66ee83931c5 CRs-Fixed: 1115364
-rw-r--r--CORE/SERVICES/COMMON/adf/adf_nbuf.c8
-rw-r--r--CORE/SERVICES/COMMON/adf/adf_nbuf.h6
-rw-r--r--CORE/SERVICES/WMA/wma.c12
3 files changed, 25 insertions, 1 deletions
diff --git a/CORE/SERVICES/COMMON/adf/adf_nbuf.c b/CORE/SERVICES/COMMON/adf/adf_nbuf.c
index c184a339ea09..503b5a3c1231 100644
--- a/CORE/SERVICES/COMMON/adf/adf_nbuf.c
+++ b/CORE/SERVICES/COMMON/adf/adf_nbuf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2016 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2017 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -753,6 +753,12 @@ __adf_nbuf_data_get_icmpv6_subtype(uint8_t *data)
case ICMPV6_RESPONSE:
proto_subtype = ADF_PROTO_ICMPV6_RES;
break;
+ case ICMPV6_RS:
+ proto_subtype = ADF_PROTO_ICMPV6_RS;
+ break;
+ case ICMPV6_RA:
+ proto_subtype = ADF_PROTO_ICMPV6_RA;
+ break;
case ICMPV6_NS:
proto_subtype = ADF_PROTO_ICMPV6_NS;
break;
diff --git a/CORE/SERVICES/COMMON/adf/adf_nbuf.h b/CORE/SERVICES/COMMON/adf/adf_nbuf.h
index 048a34075f91..1a5c20ecc0a6 100644
--- a/CORE/SERVICES/COMMON/adf/adf_nbuf.h
+++ b/CORE/SERVICES/COMMON/adf/adf_nbuf.h
@@ -178,6 +178,8 @@ struct mon_rx_status {
#define ICMPV6_SUBTYPE_OFFSET 54
#define ICMPV6_REQUEST 0x80
#define ICMPV6_RESPONSE 0x81
+#define ICMPV6_RS 0x85
+#define ICMPV6_RA 0x86
#define ICMPV6_NS 0x87
#define ICMPV6_NA 0x88
#define ADF_NBUF_IPA_CHECK_MASK 0x80000000
@@ -219,6 +221,8 @@ enum adf_proto_type {
* @ADF_PROTO_ICMP_RES - icmp response
* @ADF_PROTO_ICMPV6_REQ - icmpv6 request
* @ADF_PROTO_ICMPV6_RES - icmpv6 response
+ * @ADF_PROTO_ICMPV6_RS - icmpv6 rs packet
+ * @ADF_PROTO_ICMPV6_RA - icmpv6 ra packet
* @ADF_PROTO_ICMPV6_NS - icmpv6 ns packet
* @ADF_PROTO_ICMPV6_NA - icmpv6 na packet
* @ADF_PROTO_IPV4_UDP - ipv4 udp
@@ -253,6 +257,8 @@ enum adf_proto_subtype {
ADF_PROTO_ICMP_RES,
ADF_PROTO_ICMPV6_REQ,
ADF_PROTO_ICMPV6_RES,
+ ADF_PROTO_ICMPV6_RS,
+ ADF_PROTO_ICMPV6_RA,
ADF_PROTO_ICMPV6_NS,
ADF_PROTO_ICMPV6_NA,
ADF_PROTO_IPV4_UDP,
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index c1ea9e032203..358819e289df 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -22616,6 +22616,14 @@ wma_pkt_proto_subtype_to_string(enum adf_proto_subtype proto_subtype)
return "ICMPV6 REQUEST";
case ADF_PROTO_ICMPV6_RES:
return "ICMPV6 RESPONSE";
+ case ADF_PROTO_ICMPV6_RS:
+ return "ICMPV6 RS";
+ case ADF_PROTO_ICMPV6_RA:
+ return "ICMPV6 RA";
+ case ADF_PROTO_ICMPV6_NS:
+ return "ICMPV6 NS";
+ case ADF_PROTO_ICMPV6_NA:
+ return "ICMPV6 NA";
case ADF_PROTO_IPV4_UDP:
return "IPV4 UDP Packet";
case ADF_PROTO_IPV4_TCP:
@@ -22808,6 +22816,10 @@ static void wma_wow_parse_data_pkt_buffer(uint8_t *data,
case ADF_PROTO_ICMPV6_REQ:
case ADF_PROTO_ICMPV6_RES:
+ case ADF_PROTO_ICMPV6_RS:
+ case ADF_PROTO_ICMPV6_RA:
+ case ADF_PROTO_ICMPV6_NS:
+ case ADF_PROTO_ICMPV6_NA:
WMA_LOGD("WOW Wakeup: %s rcvd",
wma_pkt_proto_subtype_to_string(proto_subtype));
if (buf_len >= WMA_IPV6_PKT_INFO_GET_MIN_LEN) {