|
@@ -56,7 +56,7 @@ hdd_connectivity_log_attr_table[WLAN_TAG_MAX] = {
|
|
|
[WLAN_DISASSOC_RX] = QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DISASSOC_RX,
|
|
|
[WLAN_DISASSOC_TX] = QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DISASSOC_TX,
|
|
|
[WLAN_DISCONN_BMISS] =
|
|
|
- QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_BEACON_LOSS_DISCONN,
|
|
|
+ QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_BEACON_LOSS_DISCONN,
|
|
|
[WLAN_ROAM_SCAN_START] = QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_SCAN_START,
|
|
|
[WLAN_ROAM_SCAN_DONE] = QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_SCAN_DONE,
|
|
|
[WLAN_ROAM_SCORE_CURR_AP] =
|
|
@@ -91,93 +91,608 @@ static const struct connectivity_log_attr
|
|
|
connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
|
|
[QCA_WLAN_VENDOR_ATTR_DIAG_MAX] = {
|
|
|
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_CONNECTING] = {
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t), GET_ATTR_OFFSET(log_subtype)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t), GET_ATTR_OFFSET(timestamp_us)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(vdev_id)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_SSID, NLA_BINARY, GET_ATTR_OFFSET(conn_info.ssid_len), GET_ATTR_OFFSET(conn_info.ssid)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE, GET_ATTR_OFFSET(bssid)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID_HINT, NLA_BINARY, sizeof(uint8_t), GET_ATTR_OFFSET(conn_info.bssid_hint)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_FREQ, NLA_U16, sizeof(uint16_t), GET_ATTR_OFFSET(conn_info.freq)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_FREQ_HINT, NLA_U16, sizeof(uint16_t), GET_ATTR_OFFSET(conn_info.freq_hint)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_PAIRWISE_SUITE, NLA_U32, sizeof(uint32_t), GET_ATTR_OFFSET(conn_info.pairwise)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_AKM, NLA_U32, sizeof(uint32_t), GET_ATTR_OFFSET(conn_info.akm)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_GROUP_SUITE, NLA_U32, sizeof(uint32_t), GET_ATTR_OFFSET(conn_info.group)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_GROUP_MGMT_SUITE, NLA_U32, sizeof(uint32_t), GET_ATTR_OFFSET(conn_info.group_mgmt)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_AUTH_ALGO, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(conn_info.auth_type)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_BT_COEX_ACTIVE, NLA_FLAG, sizeof(uint8_t), GET_ATTR_OFFSET(conn_info.is_bt_coex_active)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_SSID, NLA_BINARY,
|
|
|
+ GET_ATTR_OFFSET(conn_info.ssid_len), GET_ATTR_OFFSET(conn_info.ssid)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE,
|
|
|
+ GET_ATTR_OFFSET(bssid)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID_HINT, NLA_BINARY, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(conn_info.bssid_hint)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FREQ, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(conn_info.freq)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FREQ_HINT, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(conn_info.freq_hint)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_PAIRWISE_SUITE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(conn_info.pairwise)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_AKM, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(conn_info.akm)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_GROUP_SUITE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(conn_info.group)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_GROUP_MGMT_SUITE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(conn_info.group_mgmt)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_AUTH_ALGO, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(conn_info.auth_type)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BT_COEX_ACTIVE, NLA_FLAG, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(conn_info.is_bt_coex_active)},
|
|
|
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
},
|
|
|
|
|
|
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_CONNECTING_FAIL] = {
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t), GET_ATTR_OFFSET(log_subtype)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t), GET_ATTR_OFFSET(timestamp_us)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(vdev_id)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE, GET_ATTR_OFFSET(bssid)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_FREQ, NLA_U16, sizeof(uint16_t), GET_ATTR_OFFSET(conn_info.freq)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE,
|
|
|
+ GET_ATTR_OFFSET(bssid)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FREQ, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(conn_info.freq)},
|
|
|
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
},
|
|
|
|
|
|
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_AUTH_REQ] = {
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t), GET_ATTR_OFFSET(log_subtype)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t), GET_ATTR_OFFSET(timestamp_us)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(vdev_id)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE, GET_ATTR_OFFSET(bssid)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_RSSI, NLA_U16, sizeof(uint16_t), GET_ATTR_OFFSET(pkt_info.rssi)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_AUTH_ALGO, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(pkt_info.auth_algo)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_AUTH_FRAME_TYPE, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(pkt_info.auth_type)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_SEQUENCE_NUMBER, NLA_U16, sizeof(uint16_t), GET_ATTR_OFFSET(pkt_info.seq_num)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(pkt_info.frame_status_code)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_FRAME_TX_STATUS, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(pkt_info.tx_status)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_IS_RETRY_FRAME, NLA_FLAG, sizeof(uint8_t), GET_ATTR_OFFSET(pkt_info.is_retry_frame)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE,
|
|
|
+ GET_ATTR_OFFSET(bssid)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_RSSI, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.rssi)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_AUTH_ALGO, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.auth_algo)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_AUTH_FRAME_TYPE, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.auth_type)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_SEQUENCE_NUMBER, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.seq_num)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.frame_status_code)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FRAME_TX_STATUS, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.tx_status)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_IS_RETRY_FRAME, NLA_FLAG, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.is_retry_frame)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
},
|
|
|
|
|
|
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_AUTH_RESP] = {
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t), GET_ATTR_OFFSET(log_subtype)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t), GET_ATTR_OFFSET(timestamp_us)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(vdev_id)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE, GET_ATTR_OFFSET(bssid)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_AUTH_ALGO, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(pkt_info.auth_algo)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_AUTH_FRAME_TYPE, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(pkt_info.auth_type)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_SEQUENCE_NUMBER, NLA_U16, sizeof(uint16_t), GET_ATTR_OFFSET(pkt_info.seq_num)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(pkt_info.frame_status_code)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE,
|
|
|
+ GET_ATTR_OFFSET(bssid)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_AUTH_ALGO, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.auth_algo)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_AUTH_FRAME_TYPE, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.auth_type)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_SEQUENCE_NUMBER, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.seq_num)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.frame_status_code)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ASSOC_REQ] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE,
|
|
|
+ GET_ATTR_OFFSET(bssid)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_RSSI, NLA_S32, sizeof(int32_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.rssi)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_SEQUENCE_NUMBER, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.seq_num)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FRAME_TX_STATUS, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.tx_status)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_IS_RETRY_FRAME, NLA_FLAG, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.is_retry_frame)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ASSOC_RESP] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE,
|
|
|
+ GET_ATTR_OFFSET(bssid)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_SEQUENCE_NUMBER, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.seq_num)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.frame_status_code)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DEAUTH_RX] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE,
|
|
|
+ GET_ATTR_OFFSET(bssid)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_RSSI, NLA_S32, sizeof(int32_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.rssi)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_SEQUENCE_NUMBER, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.seq_num)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.frame_status_code)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DEAUTH_TX] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE,
|
|
|
+ GET_ATTR_OFFSET(bssid)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_RSSI, NLA_S32, sizeof(int32_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.rssi)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_SEQUENCE_NUMBER, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.seq_num)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.frame_status_code)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DISASSOC_RX] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE,
|
|
|
+ GET_ATTR_OFFSET(bssid)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_RSSI, NLA_S32, sizeof(int32_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.rssi)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_SEQUENCE_NUMBER, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.seq_num)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.frame_status_code)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DISASSOC_TX] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE,
|
|
|
+ GET_ATTR_OFFSET(bssid)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_RSSI, NLA_S32, sizeof(int32_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.rssi)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_SEQUENCE_NUMBER, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.seq_num)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.frame_status_code)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_BEACON_LOSS_DISCONN] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE,
|
|
|
+ GET_ATTR_OFFSET(bssid)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_RSSI, NLA_S32, sizeof(int32_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.rssi)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_REASON_CODE, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(conn_info.conn_status)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_SCAN_START] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_TRIGGER_REASON, NLA_U8,
|
|
|
+ sizeof(uint8_t), GET_ATTR_OFFSET(roam_trig.trigger_reason)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_TRIGGER_SUB_REASON, NLA_U8,
|
|
|
+ sizeof(uint8_t), GET_ATTR_OFFSET(roam_trig.trigger_sub_reason)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_RSSI, NLA_S32, sizeof(int32_t),
|
|
|
+ GET_ATTR_OFFSET(roam_trig.current_rssi)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_CU, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(roam_trig.cu_load)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_SCAN_TYPE, NLA_FLAG, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(roam_trig.is_full_scan)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_RSSI_THRESHOLD, NLA_U32,
|
|
|
+ sizeof(uint8_t), GET_ATTR_OFFSET(roam_trig.rssi_threshold)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_SCAN_DONE] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_AP_COUNT, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(roam_scan.cand_ap_count)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_FREQ_LIST, NLA_NESTED, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(roam_scan.scan_freq)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_SCORE_CURR_AP] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE,
|
|
|
+ GET_ATTR_OFFSET(ap.cand_bssid)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FREQ, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(ap.freq)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_RSSI, NLA_S32, sizeof(int32_t),
|
|
|
+ GET_ATTR_OFFSET(ap.rssi)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_CU, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(ap.cu_load)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_SCORE, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(ap.total_score)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_SCORE_CAND_AP] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_AP_RANK, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(ap.idx)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_CU, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(ap.cu_load)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE,
|
|
|
+ GET_ATTR_OFFSET(ap.cand_bssid)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FREQ, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(ap.freq)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_RSSI, NLA_S32, sizeof(int32_t),
|
|
|
+ GET_ATTR_OFFSET(ap.rssi)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_SCORE, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(ap.total_score)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_AP_ETP, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(ap.etp)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_RESULT] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_CANCEL] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_BTM_QUERY] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BTM_TOKEN, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(btm_info.token)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BTM_QUERY_REASON, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(btm_info.reason)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_BTM_REQ] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BTM_TOKEN, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(btm_info.token)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BTM_MODE, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(btm_info.mode)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BTM_DISASSOC_TIMER, NLA_U32,
|
|
|
+ sizeof(uint32_t), GET_ATTR_OFFSET(btm_info.disassoc_timer)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BTM_VALIDITY_INTERVAL, NLA_U32,
|
|
|
+ sizeof(uint32_t), GET_ATTR_OFFSET(btm_info.disassoc_timer)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BTM_CANDIDATE_LIST_COUNT, NLA_U8,
|
|
|
+ sizeof(uint8_t), GET_ATTR_OFFSET(btm_info.candidate_list_count)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_BTM_WTC] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_REASON_CODE, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(btm_info.reason)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BTM_WTC_SUB_REASON_CODE, NLA_U8,
|
|
|
+ sizeof(uint8_t), GET_ATTR_OFFSET(btm_info.sub_reason)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BTM_WTC_DURATION, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(btm_info.wtc_duration)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_BTM_REQ_CANDI] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE,
|
|
|
+ GET_ATTR_OFFSET(btm_cand.bssid)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BTM_PREFERENCE, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(btm_cand.preference)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_BTM_RESP] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BTM_TOKEN, NLA_U16, sizeof(uint16_t),
|
|
|
+ GET_ATTR_OFFSET(btm_info.token)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BTM_STATUS_CODE, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(btm_info.btm_status_code)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BTM_DELAY, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(btm_info.btm_delay)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_BSSID, NLA_BINARY, QDF_MAC_ADDR_SIZE,
|
|
|
+ GET_ATTR_OFFSET(btm_info.target_bssid)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
},
|
|
|
|
|
|
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DHCP_DISCOVER] = {
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t), GET_ATTR_OFFSET(log_subtype)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t), GET_ATTR_OFFSET(timestamp_us)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(vdev_id)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_FRAME_TX_STATUS, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FRAME_TX_STATUS, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.tx_status)},
|
|
|
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
},
|
|
|
|
|
|
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DHCP_OFFER] = {
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t), GET_ATTR_OFFSET(log_subtype)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t), GET_ATTR_OFFSET(timestamp_us)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
},
|
|
|
|
|
|
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DHCP_REQUEST] = {
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t), GET_ATTR_OFFSET(log_subtype)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t), GET_ATTR_OFFSET(timestamp_us)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(vdev_id)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_FRAME_TX_STATUS, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FRAME_TX_STATUS, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.tx_status)},
|
|
|
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
},
|
|
|
|
|
|
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DHCP_ACK] = {
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t), GET_ATTR_OFFSET(log_subtype)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t), GET_ATTR_OFFSET(timestamp_us)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
},
|
|
|
|
|
|
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DHCP_NACK] = {
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t), GET_ATTR_OFFSET(log_subtype)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t), GET_ATTR_OFFSET(timestamp_us)},
|
|
|
- {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t), GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAPOL_M1] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAPOL_M2] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FRAME_TX_STATUS, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.tx_status)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAPOL_M3] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAPOL_M4] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FRAME_TX_STATUS, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.tx_status)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_GTK_M1] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_GTK_M2] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FRAME_TX_STATUS, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.tx_status)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
|
|
+ sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAP_REQUEST] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EAP_TYPE, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.eap_type)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EAP_LEN, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.eap_len)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAP_RESPONSE] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EAP_TYPE, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.eap_type)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EAP_LEN, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(pkt_info.eap_len)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAP_SUCCESS] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
+ },
|
|
|
+
|
|
|
+ [QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAP_FAILURE] = {
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
|
|
+ GET_ATTR_OFFSET(log_subtype)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_TIMESTAMP, NLA_U64, sizeof(uint64_t),
|
|
|
+ GET_ATTR_OFFSET(timestamp_us)},
|
|
|
+ {QCA_WLAN_VENDOR_ATTR_DIAG_VDEV_ID, NLA_U8, sizeof(uint8_t),
|
|
|
+ GET_ATTR_OFFSET(vdev_id)},
|
|
|
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
|
|
},
|
|
|
};
|
|
@@ -291,6 +806,18 @@ wlan_hdd_get_connectivity_log_tlv_len(struct wlan_log_record *rec)
|
|
|
if (attr_id == QCA_WLAN_VENDOR_ATTR_DIAG_MAX)
|
|
|
break;
|
|
|
|
|
|
+ if (attr_id == QCA_WLAN_VENDOR_ATTR_DIAG_FREQ &&
|
|
|
+ !rec->conn_info.freq)
|
|
|
+ continue;
|
|
|
+
|
|
|
+ if (attr_id == QCA_WLAN_VENDOR_ATTR_DIAG_FREQ_HINT &&
|
|
|
+ !rec->conn_info.freq_hint)
|
|
|
+ continue;
|
|
|
+
|
|
|
+ if (attr_id == QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP &&
|
|
|
+ !rec->fw_timestamp_us)
|
|
|
+ continue;
|
|
|
+
|
|
|
len += connectivity_attr_table[log_event_type][j].attribute_length;
|
|
|
}
|
|
|
|
|
@@ -315,10 +842,13 @@ wlan_hdd_put_connectivity_logging_data(struct sk_buff *skb,
|
|
|
struct wlan_log_record *rec,
|
|
|
uint8_t attribute_id)
|
|
|
{
|
|
|
+ int errno = 0;
|
|
|
+
|
|
|
switch (attribute_id) {
|
|
|
case QCA_WLAN_VENDOR_ATTR_DIAG_SSID:
|
|
|
- nla_put(skb, attribute_id, rec->conn_info.ssid_len,
|
|
|
- rec->conn_info.ssid);
|
|
|
+ errno = nla_put(skb, attribute_id, rec->conn_info.ssid_len,
|
|
|
+ rec->conn_info.ssid);
|
|
|
+
|
|
|
break;
|
|
|
case QCA_WLAN_VENDOR_ATTR_DIAG_BSSID:
|
|
|
if (qdf_is_macaddr_zero(&rec->bssid) ||
|
|
@@ -340,6 +870,9 @@ wlan_hdd_put_connectivity_logging_data(struct sk_buff *skb,
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
+ if (errno)
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
+
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
|
|
|
@@ -348,6 +881,7 @@ wlan_hdd_fill_connectivity_logging_data(struct sk_buff *skb,
|
|
|
struct wlan_log_record *rec)
|
|
|
{
|
|
|
uint8_t i, val8, attr_val8;
|
|
|
+ uint16_t attr_id;
|
|
|
enum qca_vendor_attr_diag_event_type evt_type;
|
|
|
struct connectivity_log_attr attr;
|
|
|
QDF_STATUS status;
|
|
@@ -366,6 +900,21 @@ wlan_hdd_fill_connectivity_logging_data(struct sk_buff *skb,
|
|
|
*/
|
|
|
for (i = 1; i < QCA_WLAN_VENDOR_ATTR_DIAG_MAX; i++) {
|
|
|
attr = connectivity_attr_table[evt_type][i];
|
|
|
+ attr_id = attr.attribute_id;
|
|
|
+ if (attr_id == QCA_WLAN_VENDOR_ATTR_DIAG_MAX)
|
|
|
+ break;
|
|
|
+
|
|
|
+ if (attr_id == QCA_WLAN_VENDOR_ATTR_DIAG_FREQ &&
|
|
|
+ !rec->conn_info.freq)
|
|
|
+ continue;
|
|
|
+
|
|
|
+ if (attr_id == QCA_WLAN_VENDOR_ATTR_DIAG_FREQ_HINT &&
|
|
|
+ !rec->conn_info.freq_hint)
|
|
|
+ continue;
|
|
|
+
|
|
|
+ if (attr_id == QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP &&
|
|
|
+ !rec->fw_timestamp_us)
|
|
|
+ continue;
|
|
|
|
|
|
switch (attr.attribute_type) {
|
|
|
case NLA_U8:
|