Преглед изворни кода

qcacld-3.0: Enable packet tracker for non performance builds

Enable the packet tracker feature for non performance builds
by enabling the macro QCA_PKT_PROTO_TRACE and set the
default packet tracker log level to dump the DHCP, EAPOL
and management packet details. The necessary log level can
be modified using the ini 'gEnableDebugLog' entry either at
compile time or at run time using the IOCTL 'setDbgLvl'.
The logs are dumped using the same IOCTL 'setDbgLvl'.

e.g.,
To enable all the packet trace features
- iwpriv wlan0 setDbgLvl 0x0f
To dump the packet trace
- iwpriv wlan0 setDbgLvl 9999

Change-Id: I4fe82e0091517f0614baedf620976dd37b94a974
CRs-Fixed: 998642
Chandrasekaran, Manishekar пре 9 година
родитељ
комит
b2d9fa14f4
3 измењених фајлова са 35 додато и 3 уклоњено
  1. 26 1
      Kbuild
  2. 4 0
      Kconfig
  3. 5 2
      core/hdd/inc/wlan_hdd_cfg.h

+ 26 - 1
Kbuild

@@ -41,6 +41,31 @@ ifeq ($(KERNEL_BUILD), 0)
 	CONFIG_MOBILE_ROUTER := y
 	endif
 
+	# As per target team, build is done as follows:
+	# Defconfig : build with default flags
+	# Slub      : defconfig  + CONFIG_SLUB_DEBUG=y +
+	#	      CONFIG_SLUB_DEBUG_ON=y + CONFIG_PAGE_POISONING=y
+	# Perf      : Using appropriate msmXXXX-perf_defconfig
+	#
+	# Shipment builds (user variants) should not have any debug feature
+	# enabled. This is identified using 'TARGET_BUILD_VARIANT'. Slub builds
+	# are identified using the CONFIG_SLUB_DEBUG_ON configuration. Since
+	# there is no other way to identify defconfig builds, QCOMs internal
+	# representation of perf builds (identified using the string 'perf'),
+	# is used to identify if the build is a slub or defconfig one. This
+	# way no critical debug feature will be enabled for perf and shipment
+	# builds. Other OEMs are also protected using the TARGET_BUILD_VARIANT
+	# config.
+	ifneq ($(TARGET_BUILD_VARIANT),user)
+		ifeq ($(CONFIG_SLUB_DEBUG_ON),y)
+			CONFIG_PKT_PROTO_TRACE := y
+		else
+			ifeq ($(findstring perf,$(KERNEL_DEFCONFIG)),)
+				CONFIG_PKT_PROTO_TRACE := y
+			endif
+		endif
+	endif
+
 	#Flag to enable Legacy Fast Roaming2(LFR2)
 	CONFIG_QCACLD_WLAN_LFR2 := y
 	#Flag to enable Legacy Fast Roaming3(LFR3)
@@ -979,7 +1004,7 @@ CDEFINES +=	-DQCA_LL_LEGACY_TX_FLOW_CONTROL
 endif
 endif
 
-ifeq ($(CONFIG_DEBUG_LL),y)
+ifeq ($(CONFIG_PKT_PROTO_TRACE), y)
 CDEFINES +=    	-DQCA_PKT_PROTO_TRACE
 endif
 

+ 4 - 0
Kconfig

@@ -119,4 +119,8 @@ config QCACLD_WLAN_LFR2
 	bool "Enable the WLAN Legacy Fast Roaming feature Version 2"
 	default n
 
+config PKT_PROTO_TRACE
+	bool "Enable packet trace feature"
+	default n
+
 endif # QCA_CLD_WLAN

+ 5 - 2
core/hdd/inc/wlan_hdd_cfg.h

@@ -2121,15 +2121,18 @@ typedef enum {
 
 /*
  * Connection related log Enable/Disable.
- * 0x1 - Enable mgmt pkt logs (no probe req/rsp).
+ * 0x1 - Enable mgmt pkt logs (excpet probe req/rsp, beacons).
  * 0x2 - Enable EAPOL pkt logs.
  * 0x4 - Enable DHCP pkt logs.
+ * 0x8 - Enable mgmt action frames logs.
  * 0x0 - Disable all the above connection related logs.
+ *
+ * The default value of 0x0F will enable all the above logs.
  */
 #define CFG_ENABLE_DEBUG_CONNECT_ISSUE             "gEnableDebugLog"
 #define CFG_ENABLE_DEBUG_CONNECT_ISSUE_MIN         (0)
 #define CFG_ENABLE_DEBUG_CONNECT_ISSUE_MAX         (0xFF)
-#define CFG_ENABLE_DEBUG_CONNECT_ISSUE_DEFAULT     (0)
+#define CFG_ENABLE_DEBUG_CONNECT_ISSUE_DEFAULT     (0x0F)
 
 /* This will be used only for debugging purpose, will be removed after sometime */
 #define CFG_ENABLE_RX_THREAD                       "gEnableRxThread"