qcacld-3.0: Add new vendor command to get link properties

qcacld-2.0 to qcacld-3.0 propagation

Add support in driver for a new vendor command to get
the link properties nss, rate flags and operating
frequency.

Change-Id: Ie3b8d5b2c3886055d303441c5d8b2f2a0a2719bd
CRs-Fixed: 834199
diff --git a/core/hdd/src/wlan_hdd_cfg80211.h b/core/hdd/src/wlan_hdd_cfg80211.h
index 28fc309..df5e5aa 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.h
+++ b/core/hdd/src/wlan_hdd_cfg80211.h
@@ -245,6 +245,7 @@
  * @QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION: set wifi config
  * @QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_CONFIGURATION: get wifi config
  * @QCA_NL80211_VENDOR_SUBCMD_GET_LOGGER_FEATURE_SET: get logging features
+ * @QCA_NL80211_VENDOR_SUBCMD_LINK_PROPERTIES: get link properties
  * @QCA_NL80211_VENDOR_SUBCMD_TRIGGER_SCAN: venodr scan command
  * @QCA_NL80211_VENDOR_SUBCMD_SCAN_DONE: vendor scan complete
  */
@@ -346,6 +347,9 @@
 	QCA_NL80211_VENDOR_SUBCMD_DCC_UPDATE_NDL = 99,
 	QCA_NL80211_VENDOR_SUBCMD_DCC_STATS_EVENT = 100,
 
+	/* subcommand to get link properties */
+	QCA_NL80211_VENDOR_SUBCMD_LINK_PROPERTIES = 101,
+
 	/* DBS subcommands */
 	QCA_NL80211_VENDOR_SUBCMD_GET_PREFERRED_FREQ_LIST = 103,
 	QCA_NL80211_VENDOR_SUBCMD_SET_PROBABLE_OPER_CHANNEL = 104,
@@ -604,6 +608,8 @@
  * @QCA_WLAN_VENDOR_ATTR_STATS_EXT: Ext stats attribute which is used by
  *	QCA_NL80211_VENDOR_SUBCMD_STATS_EXT
  * @QCA_WLAN_VENDOR_ATTR_IFINDEX: After IFINDEX
+ * @QCA_WLAN_VENDOR_ATTR_MAC_ADDR: MAC Address attribute which is used by
+ *	QCA_NL80211_VENDOR_SUBCMD_LINK_PROPERTIES
  * @QCA_WLAN_VENDOR_ATTR_FEATURE_FLAGS: Supported Features
  * @QCA_WLAN_VENDOR_ATTR_AFTER_LAST: After last
  * @QCA_WLAN_VENDOR_ATTR_MAX: Max value
@@ -614,6 +620,7 @@
 	QCA_WLAN_VENDOR_ATTR_NAN = 2,
 	QCA_WLAN_VENDOR_ATTR_STATS_EXT = 3,
 	QCA_WLAN_VENDOR_ATTR_IFINDEX = 4,
+	QCA_WLAN_VENDOR_ATTR_MAC_ADDR = 6,
 	QCA_WLAN_VENDOR_ATTR_FEATURE_FLAGS = 7,
 	QCA_WLAN_VENDOR_ATTR_CONCURRENCY_CAPA = 9,
 	QCA_WLAN_VENDOR_ATTR_MAX_CONCURRENT_CHANNELS_2_4_BAND = 10,
@@ -1805,6 +1812,31 @@
 };
 
 /**
+ * enum qca_wlan_vendor_attr_link_properties - link properties
+ *
+ * @QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_INVALID: Invalid initial value
+ * @QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_NSS: Unsigned 8-bit value to
+ *	specify the number of spatial streams negotiated
+ * @QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_RATE_FLAGS: Unsigned 8-bit value
+ *	to specify negotiated rate flags i.e. ht, vht and channel width
+ * @QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_FREQ: Unsigned 32bit value to
+ *	specify the operating frequency
+ * @QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_AFTER_LAST: after last
+ * @QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_MAX: max value
+ */
+enum qca_wlan_vendor_attr_link_properties {
+	QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_INVALID = 0,
+	QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_NSS = 1,
+	QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_RATE_FLAGS = 2,
+	QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_FREQ = 3,
+
+	/* KEEP LAST */
+	QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_AFTER_LAST,
+	QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_MAX =
+		QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_AFTER_LAST - 1,
+};
+
+/**
  * enum qca_wlan_vendor_features - vendor device/driver features
  * @QCA_WLAN_VENDOR_FEATURE_KEY_MGMT_OFFLOAD: Device supports key
  * management offload, a mechanism where the station's firmware