wlan: Support for IPV6 Unicast/Multicast Filtering
Adding IOCTL command to configure Firmware for either IPV6 MC and UC
Filtering or IPV6 MC only filtering.
CRs-Fixed: 499283
Change-Id: Ia21ec8c28d5e255459e5d4b507ee6edfaf813d5d
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 9f565d4..c02fb76 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -1999,6 +1999,39 @@
}
}
#endif
+#ifdef WLAN_FEATURE_PACKET_FILTERING
+ else if (strncmp(command, "ENABLE_PKTFILTER_IPV6", 21) == 0)
+ {
+ tANI_U8 filterType = 0;
+ tANI_U8 *value = command;
+
+ /* Move pointer to ahead of ENABLE_PKTFILTER_IPV6<delimiter> */
+ value = value + 22;
+
+ /* Convert the value from ascii to integer */
+ ret = kstrtou8(value, 10, &filterType);
+ if (ret < 0)
+ {
+ /* If the input value is greater than max value of datatype,
+ * then also kstrtou8 fails
+ */
+ VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
+ "%s: kstrtou8 failed range ", __func__);
+ ret = -EINVAL;
+ goto exit;
+ }
+
+ if (filterType != 0 && filterType != 1)
+ {
+ VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
+ "%s: Accepted Values are 0 and 1 ", __func__);
+ ret = -EINVAL;
+ goto exit;
+ }
+ wlan_hdd_setIPv6Filter(WLAN_HDD_GET_CTX(pAdapter), filterType,
+ pAdapter->sessionId);
+ }
+#endif
else {
hddLog( VOS_TRACE_LEVEL_WARN, "%s: Unsupported GUI command %s",
__func__, command);