wlan-ap-Telecominfraproject/feeds/qca/iw/patches/618-01-wifi-iw-Removing-the-unassigned-identifiers.patch
John Crispin 008ca9618d
Some checks failed
Build OpenWrt/uCentral images / build (cig_wf186h) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cig_wf186w) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cig_wf188n) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cig_wf189) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cig_wf196) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cybertan_eww631-a1) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cybertan_eww631-b1) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap101) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap102) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap104) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap105) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap111) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap112) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_oap101) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_oap101-6e) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_oap101e) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_oap101e-6e) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4x) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4x_2) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4x_3) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4x_w) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4xe) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4xi) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4xi_w) (push) Has been cancelled
Build OpenWrt/uCentral images / build (indio_um-305ax) (push) Has been cancelled
Build OpenWrt/uCentral images / build (sercomm_ap72tip) (push) Has been cancelled
Build OpenWrt/uCentral images / build (sonicfi_rap630c-311g) (push) Has been cancelled
Build OpenWrt/uCentral images / build (sonicfi_rap630w-211g) (push) Has been cancelled
Build OpenWrt/uCentral images / build (sonicfi_rap630w-311g) (push) Has been cancelled
Build OpenWrt/uCentral images / build (udaya_a6-id2) (push) Has been cancelled
Build OpenWrt/uCentral images / build (udaya_a6-od2) (push) Has been cancelled
Build OpenWrt/uCentral images / build (wallys_dr5018) (push) Has been cancelled
Build OpenWrt/uCentral images / build (wallys_dr6018) (push) Has been cancelled
Build OpenWrt/uCentral images / build (wallys_dr6018-v4) (push) Has been cancelled
Build OpenWrt/uCentral images / build (yuncore_ax820) (push) Has been cancelled
Build OpenWrt/uCentral images / build (yuncore_ax840) (push) Has been cancelled
Build OpenWrt/uCentral images / build (yuncore_fap640) (push) Has been cancelled
Build OpenWrt/uCentral images / build (yuncore_fap650) (push) Has been cancelled
Build OpenWrt/uCentral images / build (yuncore_fap655) (push) Has been cancelled
Build OpenWrt/uCentral images / trigger-testing (push) Has been cancelled
Build OpenWrt/uCentral images / create-x64_vm-ami (push) Has been cancelled
ipq95xx: import ath12.4-cs kernel and drivers
Signed-off-by: John Crispin <john@phrozen.org>
2024-10-20 09:25:13 +02:00

885 lines
32 KiB
Diff

From fec96953395a15f1cef9fdc34f110554fd34935c Mon Sep 17 00:00:00 2001
From: Nagarajan Maran <quic_nmaran@quicinc.com>
Date: Fri, 22 Dec 2023 16:13:49 +0530
Subject: [PATCH] wifi: iw: Removing the unassigned identifiers and their
functionalities.
Removing the unassigned identifiers and the functionalities associated
with them.
Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
---
defqmap.c | 81 --------------
iw.h | 135 ------------------------
sawf.c | 292 ---------------------------------------------------
sawf_stats.c | 53 ----------
telemetry.c | 172 ------------------------------
5 files changed, 733 deletions(-)
diff --git a/defqmap.c b/defqmap.c
index e12dac0a29a2..d3dbeb7b9632 100644
--- a/defqmap.c
+++ b/defqmap.c
@@ -40,36 +40,7 @@ static int handle_default_q_map_req(struct nl80211_state *state,
struct nl_msg *msg, int argc, char **argv,
enum id_input id)
{
- struct nlattr *defqmap_attr;
- char *end;
- unsigned long value;
- char macaddr[MAC_ADDR_LEN] = {0};
-
- if (argc < 2 || argc > 2 || (argc%2) != 0)
- goto err;
-
- nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_QCA);
- nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD,
- QCA_NL80211_VENDOR_SUBCMD_SAWF_DEF_Q_MAP);
-
- defqmap_attr = nla_nest_start(msg, NL80211_ATTR_VENDOR_DATA);
- if (!defqmap_attr)
- return -ENOBUFS;
-
- errno = 0;
- value = strtoul(argv[0], &end, 10);
- if (*end != '\0' || value > MAX_RANGE(uint8_t) || errno == ERANGE)
- goto err;
-
- strlcpy(macaddr, argv[1], MAC_ADDR_LEN);
-
- nla_put_u8(msg, QCA_WLAN_VENDOR_ATTR_SAWF_DEF_Q_MAP_SVC_ID, value);
- nla_put(msg, QCA_WLAN_VENDOR_ATTR_SAWF_DEF_Q_MAP_MAC_ADDR, MAC_ADDR_LEN, macaddr);
-
- nla_nest_end(msg, defqmap_attr);
return 0;
-err:
- return -EINVAL;
}
COMMAND(defqmap, map, "<service_id> <macaddr>", NL80211_CMD_VENDOR, 0, CIB_NETDEV, handle_default_q_map_req, ".");
@@ -78,68 +49,16 @@ static int handle_default_q_unmap_req(struct nl80211_state *state,
struct nl_msg *msg, int argc, char **argv,
enum id_input id)
{
- struct nlattr *defqmap_attr;
- char *end;
- unsigned long value;
- char macaddr[MAC_ADDR_LEN] = {0};
-
- if (argc < 2 || argc > 2 || (argc%2) != 0)
- goto err;
-
- nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_QCA);
- nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD,
- QCA_NL80211_VENDOR_SUBCMD_SAWF_DEF_Q_UNMAP);
-
- defqmap_attr = nla_nest_start(msg, NL80211_ATTR_VENDOR_DATA);
- if (!defqmap_attr)
- return -ENOBUFS;
-
- errno = 0;
- value = strtoul(argv[0], &end, 10);
- if (*end != '\0' || value > MAX_RANGE(uint8_t) || errno == ERANGE)
- goto err;
-
- strlcpy(macaddr, argv[1], MAC_ADDR_LEN);
-
- nla_put_u8(msg, QCA_WLAN_VENDOR_ATTR_SAWF_DEF_Q_MAP_SVC_ID, value);
- nla_put(msg, QCA_WLAN_VENDOR_ATTR_SAWF_DEF_Q_MAP_MAC_ADDR, MAC_ADDR_LEN, macaddr);
-
- nla_nest_end(msg, defqmap_attr);
return 0;
-err:
- return -EINVAL;
}
COMMAND(defqmap, unmap, "<service_id> <macaddr>", NL80211_CMD_VENDOR, 0, CIB_NETDEV, handle_default_q_unmap_req, ".");
-
static int handle_default_q_map_report(struct nl80211_state *state,
struct nl_msg *msg, int argc, char **argv,
enum id_input id)
{
- struct nlattr *defqmap_attr;
- char macaddr[MAC_ADDR_LEN] = {0};
-
- if (argc < 1 || argc > 1)
- goto err;
-
- nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_QCA);
- nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD,
- QCA_NL80211_VENDOR_SUBCMD_SAWF_DEF_Q_MAP_REP);
-
- defqmap_attr = nla_nest_start(msg, NL80211_ATTR_VENDOR_DATA);
- if (!defqmap_attr)
- return -ENOBUFS;
-
- errno = 0;
- strlcpy(macaddr, argv[0], MAC_ADDR_LEN);
-
- nla_put(msg, QCA_WLAN_VENDOR_ATTR_SAWF_DEF_Q_MAP_MAC_ADDR, MAC_ADDR_LEN, macaddr);
-
- nla_nest_end(msg, defqmap_attr);
return 0;
-err:
- return -EINVAL;
}
COMMAND(defqmap, report, "<macaddr>", NL80211_CMD_VENDOR, 0, CIB_NETDEV, handle_default_q_map_report, ".");
diff --git a/iw.h b/iw.h
index 00172695e062..1327c7f5f1ee 100644
--- a/iw.h
+++ b/iw.h
@@ -70,18 +70,6 @@ enum id_input {
};
enum qca_nl80211_vendor_subcmds {
- QCA_NL80211_VENDOR_SUBCMD_ROAM_EVENTS = 203,
- QCA_NL80211_VENDOR_SUBCMD_SVC_CREATE = 204,
- QCA_NL80211_VENDOR_SUBCMD_SVC_DISABLE = 205,
- QCA_NL80211_VENDOR_SUBCMD_SVC_VIEW = 206,
- QCA_NL80211_VENDOR_SUBCMD_SAWF_DEF_Q_MAP = 207,
- QCA_NL80211_VENDOR_SUBCMD_SAWF_DEF_Q_UNMAP = 208,
- QCA_NL80211_VENDOR_SUBCMD_SAWF_DEF_Q_MAP_REP = 209,
- QCA_NL80211_VENDOR_SUBCMD_TELEMETRY_SLA_THERSHOLD_CFG = 210,
- QCA_NL80211_VENDOR_SUBCMD_TELEMETRY_SLA_SAMPLES_COLLECTION_CFG = 211,
- QCA_NL80211_VENDOR_SUBCMD_TELEMETRY_SLA_BREACH_DETECTION_CFG = 212,
- QCA_NL80211_VENDOR_SUBCMD_SAWF_STREAMING_STATS = 213,
- QCA_NL80211_VENDOR_SUBCMD_SAWF_SLA_BREACH = 214,
QCA_NL80211_VENDOR_SUBCMD_TELEMETRY_GETSTATS = 334,
};
/* Attributes for data used by
@@ -97,129 +85,6 @@ enum qca_wlan_vendor_attr_config {
QCA_WLAN_VENDOR_ATTR_CONFIG_AFTER_LAST - 1,
};
-enum ath12k_vendor_attr_sawf_streaming {
- QCA_WLAN_VENDOR_ATTR_SAWF_STREAMING_INVALID = 0,
- QCA_WLAN_VENDOR_ATTR_SAWF_STREAMING_BASIC_STATS = 1,
- QCA_WLAN_VENDOR_ATTR_SAWF_STREAMING_EXTND_STATS = 2,
- QCA_WLAN_VENDOR_ATTR_MLO_LINK_ID = 3,
- /* keep last */
- QCA_WLAN_VENDOR_ATTR_SAWF_STREAMING_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_SAWF_STREAMING_MAX =
- QCA_WLAN_VENDOR_ATTR_SAWF_STREAMING_AFTER_LAST - 1,
-};
-
-enum ath12k_vendor_attr_sawf_def_q_map {
- QCA_WLAN_VENDOR_ATTR_SAWF_DEF_Q_MAP_INVALID = 0,
- QCA_WLAN_VENDOR_ATTR_SAWF_DEF_Q_MAP_SVC_ID = 1,
- QCA_WLAN_VENDOR_ATTR_SAWF_DEF_Q_MAP_MAC_ADDR = 2,
-
- QCA_WLAN_VENDOR_ATTR_SAWF_DEF_Q_MAP_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_SAWF_DEF_Q_MAP_MAX =
- QCA_WLAN_VENDOR_ATTR_SAWF_DEF_Q_MAP_AFTER_LAST - 1,
-};
-
-enum qca_wlan_vendor_sawf_attr_config {
- QCA_WLAN_VENDOR_ATTR_SAWF_SERVICE_CLASSES = 1,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_ID,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_APP_NAME,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MIN_TP,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MAX_TP,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_BURST_SIZE,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_INTERVAL,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_DELAY_BOUND,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MSDU_TTL,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_PRIO,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_TID,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MSDU_RATE_LOSS,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_SVC_INTERVAL,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MIN_TPUT,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MAX_LATENCY,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_BURST_SIZE,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_OFDMA_DISABLE,
- QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MU_MIMO_DISABLE,
-
- /* keep last */
- QCA_WLAN_VENDOR_SAWF_ATTR_CONFIG_AFTER_LAST,
- QCA_WLAN_VENDOR_SAWF_ATTR_CONFIG_MAX =
- QCA_WLAN_VENDOR_SAWF_ATTR_CONFIG_AFTER_LAST - 1,
-};
-
-enum qca_wlan_vendor_attr_telemetry_sawf_sla_samples_config {
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_MOVING_AVG_PKT = 1,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_MOVING_AVG_WIN,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_NUM_PKT,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_TIME_SEC,
-
- /* keep last */
- QCA_WLAN_VENDOR_TELEMETRY_SLA_SAMPLES_CFG_ATTR_AFTER_LAST,
- QCA_WLAN_VENDOR_TELEMETRY_SLA_SAMPLES_CFG_ATTR_CONFIG_MAX =
- QCA_WLAN_VENDOR_TELEMETRY_SLA_SAMPLES_CFG_ATTR_AFTER_LAST - 1,
-};
-
-enum qca_wlan_vendor_attr_telemetry_sawf_sla_detect_config {
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_DETECTION_PARAM = 1,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_DETECT_MIN_TP,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_DETECT_MAX_TP,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_DETECT_BURST_SIZE,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_DETECT_INTERVAL,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_DETECT_DELAY_BOUND,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_DETECT_MSDU_TTL,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_DETECT_MSDU_RATE_LOSS,
-
- /* keep last */
- QCA_WLAN_VENDOR_TELEMETRY_SLA_DETECT_AFTER_LAST,
- QCA_WLAN_VENDOR_TELEMETRY_SLA_DETECT_ATTR_CONFIG_MAX =
- QCA_WLAN_VENDOR_TELEMETRY_SLA_DETECT_AFTER_LAST - 1,
-
-};
-
-enum qca_wlan_vendor_attr_telemetry_sawf_sla_thershold_config {
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_THERSHOLD_SVC_ID = 1,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_THERSHOLD_MIN_TP,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_THERSHOLD_MAX_TP,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_THERSHOLD_BURST_SIZE,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_THERSHOLD_INTERVAL,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_THERSHOLD_DELAY_BOUND,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_THERSHOLD_MSDU_TTL,
- QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_THERSHOLD_MSDU_RATE_LOSS,
-
- /* keep last */
- QCA_WLAN_VENDOR_TELEMETRY_SLA_THERSHOLD_CFG_AFTER_LAST,
- QCA_WLAN_VENDOR_TELEMETRY_SLA_THERSHOLD_CFG_ATTR_CONFIG_MAX =
- QCA_WLAN_VENDOR_TELEMETRY_SLA_THERSHOLD_CFG_AFTER_LAST - 1,
-};
-
-/**
- * enum qca_wlan_vendor_attr_sawf_sla_params - This enum defines
- * attributes required for QCA_NL80211_VENDOR_SUBCMD_SAWF_SLA_BREACH
- * Used to send sla clear event to driver.
- *
- * @QCA_WLAN_VENDOR_ATTR_SLA_PEER_MAC: Unsigned 8-bit array
- * of size 6, representing peer mac address.
- * @QCA_WLAN_VENDOR_ATTR_SLA_SVC_ID: Unsigned 8-bit representing service ID
- * @QCA_WLAN_VENDOR_ATTR_SLA_PARAM: Unsigned 8-bit indicaing service class
- * from qca_vendor_attr_sla_param_type
- * @QCA_WLAN_VENDOR_ATTR_SLA_PEER_MLD_MAC: Unsigned 8-bit array
- * of size 6, representing peer mld mac address. Filled only for ML capable
- * peers
- * @QCA_WLAN_VENDOR_ATTR_SLA_AC: Unsigned 8-bit representing AC for breach
- *
- */
-enum qca_wlan_vendor_attr_sawf_sla_params {
- QCA_WLAN_VENDOR_ATTR_SLA_INVALID = 0,
- QCA_WLAN_VENDOR_ATTR_SLA_PEER_MAC = 1,
- QCA_WLAN_VENDOR_ATTR_SLA_SVC_ID = 2,
- QCA_WLAN_VENDOR_ATTR_SLA_PARAM = 3,
- QCA_WLAN_VENDOR_ATTR_SLA_SET_CLEAR = 4,
- QCA_WLAN_VENDOR_ATTR_SLA_PEER_MLD_MAC = 5,
- QCA_WLAN_VENDOR_ATTR_SLA_AC = 6,
-
- /* Keep last */
- QCA_WLAN_VENDOR_ATTR_SLA_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_SLA_MAX =
- QCA_WLAN_VENDOR_ATTR_SLA_AFTER_LAST - 1
-};
-
#define HANDLER_RET_USAGE 1
#define HANDLER_RET_DONE 3
diff --git a/sawf.c b/sawf.c
index 2fe2be08c86f..653e15b86a36 100644
--- a/sawf.c
+++ b/sawf.c
@@ -50,139 +50,7 @@ static int handle_service_class_create(struct nl80211_state *state,
struct nl_msg *msg, int argc,
char **argv, enum id_input id)
{
- struct nlattr *service_class;
- char app_name[APP_NAME_MAX_BYTES];
- int parsed = 0, param_count;
- char *end;
- unsigned long value;
- char service_check[MAX_OPTIONAL_STRINGS][MAX_STRING_SIZE] = {"min_tput",
- "max_tput",
- "burst_size",
- "service_interval",
- "delay_bound",
- "msdu_ttl",
- "priority",
- "tid",
- "msdu_loss",
- "ul_service_interval",
- "ul_min_tput",
- "ul_max_latency",
- "ul_burst_size",
- "ul_ofdma_disable",
- "ul_mu_mimo_disable"};
-
- if (argc < SVC_CREATE_MIN_ARGUMENTS || argc > SVC_CREATE_MAX_ARGUMENTS ||
- (argc % SVC_CREATE_MIN_ARGUMENTS) != 0)
- goto err;
-
- nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_QCA);
- nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD,
- QCA_NL80211_VENDOR_SUBCMD_SVC_CREATE);
-
- service_class = nla_nest_start(msg, NL80211_ATTR_VENDOR_DATA);
- if (!service_class)
- return -ENOBUFS;
-
- errno = 0;
- value = strtoul(argv[0], &end, 10);
- if (*end != '\0' || value > MAX_RANGE(uint8_t) || errno == ERANGE)
- goto err;
-
- strlcpy(app_name, argv[1], APP_NAME_MAX_BYTES);
-
- nla_put_u8(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_ID, value);
- nla_put(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_APP_NAME, sizeof(app_name), app_name);
-
- parsed += 2;
-
- for (errno = 0; parsed < argc; parsed += 2, errno = 0) {
- value = strtoul(argv[parsed + 1], &end, 10);
- if (*end != '\0' || value > MAX_RANGE(uint32_t) || errno == ERANGE)
- goto err;
-
- for (param_count = 0; param_count < MAX_OPTIONAL_STRINGS;
- param_count++) {
- if (!strcmp(argv[parsed], service_check[param_count]))
- break;
- }
-
- if (param_count == MAX_OPTIONAL_STRINGS)
- goto err;
-
- switch (param_count + QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MIN_TP) {
- case QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MIN_TP:
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MIN_TP, value);
- break;
- case QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MAX_TP:
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MAX_TP, value);
- break;
- case QCA_WLAN_VENDOR_ATTR_SAWF_SVC_BURST_SIZE:
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_BURST_SIZE, value);
- break;
- case QCA_WLAN_VENDOR_ATTR_SAWF_SVC_INTERVAL:
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_INTERVAL, value);
- break;
- case QCA_WLAN_VENDOR_ATTR_SAWF_SVC_DELAY_BOUND:
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_DELAY_BOUND,
- value);
- break;
- case QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MSDU_TTL:
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MSDU_TTL, value);
- break;
- case QCA_WLAN_VENDOR_ATTR_SAWF_SVC_PRIO:
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_PRIO, value);
- break;
- case QCA_WLAN_VENDOR_ATTR_SAWF_SVC_TID:
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_TID, value);
- break;
- case QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MSDU_RATE_LOSS:
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MSDU_RATE_LOSS,
- value);
- break;
- case QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_SVC_INTERVAL:
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_SVC_INTERVAL,
- value);
- break;
- case QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MIN_TPUT:
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MIN_TPUT,
- value);
- break;
- case QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MAX_LATENCY:
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MAX_LATENCY,
- value);
- break;
- case QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_BURST_SIZE:
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_BURST_SIZE,
- value);
- break;
- case QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_OFDMA_DISABLE:
- nla_put_u8(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_OFDMA_DISABLE,
- value);
- break;
- case QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MU_MIMO_DISABLE:
- nla_put_u8(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MU_MIMO_DISABLE,
- value);
- break;
- }
- }
-
- nla_nest_end(msg, service_class);
return 0;
-err:
- printf("Invalid SAWF service class command format: Usage\n");
- printf("\t iw phy <phyname> service_class create <service_id> <app_name> ");
- printf("[min_tput <min_thruput_rate>] [max_tput <max_thruput_rate>] ");
- printf("[burst_size <burst_size>] [service_interval <service_interval>] ");
- printf("[delay_bound <delay_bound>] [msdu_ttl <msdu_ttl>] ");
- printf("[priority <priority>] [tid <tid>] [msdu_loss <msdu_rate_loss>]\n");
- printf("[ul_service_interval <ul_service_interval>]\n");
- printf("[ul_min_tput <ul_min_tput>]\n");
- printf("[ul_max_latency <ul_max_latency>]\n");
- printf("[ul_burst_size <ul_burst_size>]\n");
- printf("[ul_ofdma_disable <ul_ofdma_disable>]\n");
- printf("[ul_mu_mimo_disable <ul_mu_mimo_disable>]\n");
-
- return -EINVAL;
}
COMMAND(service_class, create, "<service_id> <app_name> [min_tput <min_thruput_rate>]"
@@ -200,35 +68,7 @@ static int handle_service_class_disable(struct nl80211_state *state,
struct nl_msg *msg, int argc,
char **argv, enum id_input id)
{
- struct nlattr *service_class;
- unsigned long value;
- char *end;
-
- if (argc != SVC_DISABLE_MAX_ARGUMENTS)
- goto err;
-
- errno = 0;
- value = strtoul(argv[0], &end, 10);
- if (*end != '\0' || value > MAX_RANGE(uint8_t) || errno == ERANGE)
- goto err;
-
- nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_QCA);
- nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD,
- QCA_NL80211_VENDOR_SUBCMD_SVC_DISABLE);
-
- service_class = nla_nest_start(msg, NL80211_ATTR_VENDOR_DATA);
- if (!service_class)
- return -ENOBUFS;
-
- nla_put_u8(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_ID, value);
-
- nla_nest_end(msg, service_class);
return 0;
-
-err:
- printf("Invalid SAWF service class command format: Usage\n");
- printf("\t iw phy <phyname> service_class disable <service_id>\n");
- return -EINVAL;
}
COMMAND(service_class, disable, "<service_id>", NL80211_CMD_VENDOR, 0, CIB_PHY,
@@ -236,106 +76,6 @@ COMMAND(service_class, disable, "<service_id>", NL80211_CMD_VENDOR, 0, CIB_PHY,
static int print_sawf_service_classes(struct nl_msg *msg, void *arg)
{
- struct nlattr *tb_msg[NL80211_ATTR_MAX + 1];
- struct nlattr *sawf_service_classes;
- struct nlattr *sawf_service_class;
- struct nlattr *attrs[QCA_WLAN_VENDOR_SAWF_ATTR_CONFIG_MAX + 1];
- struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg));
- int sawf_service_classes_len = 0;
- char *app_name = NULL;
- static struct nla_policy sawf_policy[QCA_WLAN_VENDOR_SAWF_ATTR_CONFIG_MAX + 1] = {
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_ID] = {.type = NLA_U8},
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_APP_NAME] = {.type = NLA_STRING},
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MIN_TP] = {.type = NLA_U32},
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MAX_TP] = {.type = NLA_U32},
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_BURST_SIZE] = {.type = NLA_U32},
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_INTERVAL] = {.type = NLA_U32},
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_DELAY_BOUND] = {.type = NLA_U32},
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MSDU_TTL] = {.type = NLA_U32},
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_PRIO] = {.type = NLA_U32},
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_TID] = {.type = NLA_U32},
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MSDU_RATE_LOSS] = {.type = NLA_U32},
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_SVC_INTERVAL] = {.type = NLA_U32},
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MIN_TPUT] = {.type = NLA_U32},
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MAX_LATENCY] = {.type = NLA_U32},
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_BURST_SIZE] = {.type = NLA_U32},
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_OFDMA_DISABLE] = {.type = NLA_U8},
- [QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MU_MIMO_DISABLE] = {.type = NLA_U8},
- };
-
- nla_parse(tb_msg, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0),
- genlmsg_attrlen(gnlh, 0), NULL);
-
- if (tb_msg[NL80211_ATTR_VENDOR_DATA]) {
- sawf_service_classes = nla_data(tb_msg[NL80211_ATTR_VENDOR_DATA]);
- sawf_service_classes_len = nla_len(tb_msg[NL80211_ATTR_VENDOR_DATA]);
- }
- else
- return NL_SKIP;
-
- if (nla_type(sawf_service_classes) != QCA_WLAN_VENDOR_ATTR_SAWF_SERVICE_CLASSES )
- return NL_SKIP;
-
- nla_for_each_nested(sawf_service_class, sawf_service_classes,
- sawf_service_classes_len) {
- nla_parse_nested(attrs,
- QCA_WLAN_VENDOR_SAWF_ATTR_CONFIG_MAX,
- sawf_service_class, sawf_policy);
-
- printf("***********************************\n");
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_ID])
- printf("Service ID\t: %u\n",
- nla_get_u8(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_ID]));
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_APP_NAME]) {
- app_name = nla_data(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_APP_NAME]);
- printf("App Name\t: %s\n", app_name);
- }
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MIN_TP])
- printf("Min throughput\t: %u\n",
- nla_get_u32(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MIN_TP]));
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MAX_TP])
- printf("Max throughput\t: %u\n",
- nla_get_u32(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MAX_TP]));
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_BURST_SIZE])
- printf("Burst Size\t: %u\n",
- nla_get_u32(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_BURST_SIZE]));
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_INTERVAL])
- printf("Service Interval: %u\n",
- nla_get_u32(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_INTERVAL]));
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_DELAY_BOUND])
- printf("Delay Bound\t: %u\n",
- nla_get_u32(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_DELAY_BOUND]));
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MSDU_TTL])
- printf("MSDU TTL\t: %u\n",
- nla_get_u32(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MSDU_TTL]));
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_PRIO])
- printf("Priority\t: %u\n",
- nla_get_u32(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_PRIO]));
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_TID])
- printf("TID\t\t: %u\n",
- nla_get_u32(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_TID]));
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MSDU_RATE_LOSS])
- printf("MSDU Loss Rate\t: %u\n",
- nla_get_u32(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_MSDU_RATE_LOSS]));
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_SVC_INTERVAL])
- printf("UL service interval\t: %u\n",
- nla_get_u32(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_SVC_INTERVAL]));
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MIN_TPUT])
- printf("UL min throughput\t: %u\n",
- nla_get_u32(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MIN_TPUT]));
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MAX_LATENCY])
- printf("UL max latency\t: %u\n",
- nla_get_u32(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MAX_LATENCY]));
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_BURST_SIZE])
- printf("UL burst size\t: %u\n",
- nla_get_u32(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_BURST_SIZE]));
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_OFDMA_DISABLE])
- printf("UL ofdma disable\t: %u\n",
- nla_get_u8(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_OFDMA_DISABLE]));
- if (attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MU_MIMO_DISABLE])
- printf("UL mu mimo disable\t: %u\n",
- nla_get_u8(attrs[QCA_WLAN_VENDOR_ATTR_SAWF_SVC_UL_MU_MIMO_DISABLE]));
- }
return NL_SKIP;
}
@@ -343,39 +83,7 @@ static int handle_service_class_dump(struct nl80211_state *state,
struct nl_msg *msg, int argc,
char **argv, enum id_input id)
{
- struct nlattr *service_class;
- unsigned long value = 0;
- char *end;
-
- if (argc > SVC_VIEW_MAX_ARGUMENTS) {
- goto err;
- }
- else if (argc == SVC_VIEW_MAX_ARGUMENTS) {
- errno = 0;
- value = strtoul(argv[0], &end, 10);
- if (*end != '\0' || value > MAX_RANGE(uint8_t) || errno == ERANGE)
- goto err;
- }
-
- nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_QCA);
- nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD,
- QCA_NL80211_VENDOR_SUBCMD_SVC_VIEW);
-
- service_class = nla_nest_start(msg, NL80211_ATTR_VENDOR_DATA);
- if (!service_class)
- return -ENOBUFS;
-
- if (argc)
- nla_put_u8(msg, QCA_WLAN_VENDOR_ATTR_SAWF_SVC_ID, value);
-
- nla_nest_end(msg, service_class);
-
- register_handler(print_sawf_service_classes, NULL);
return 0;
-err:
- printf("Invalid SAWF service class command format: Usage\n");
- printf("\t iw phy <phyname> service_class view [<service_id>]\n");
- return -EINVAL;
}
COMMAND(service_class, view, "[<service_id>]", NL80211_CMD_VENDOR, NLM_F_DUMP, CIB_PHY,
diff --git a/sawf_stats.c b/sawf_stats.c
index 13323e6d3cad..e922daba0600 100644
--- a/sawf_stats.c
+++ b/sawf_stats.c
@@ -44,60 +44,7 @@ static int handle_streaming_stats(struct nl80211_state *state,
struct nl_msg *msg, int argc, char **argv,
enum id_input id)
{
- struct nlattr *stats;
- unsigned long value;
- uint8_t basic_stats = 0, extnd_stats = 0, link_id;
- char *end;
-
- if (argc < STREAMING_STATS_MIN_ARGUMENTS ||
- argc > STREAMING_STATS_MAX_ARGUMENTS)
- goto err;
-
- errno = 0;
- value = strtoul(argv[0], &end, 10);
- if (*end != '\0' || value > STREAMING_STATS_MAX_VALUE || errno == ERANGE)
- goto err;
- argc--;
-
- nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_QCA);
- nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD,
- QCA_NL80211_VENDOR_SUBCMD_SAWF_STREAMING_STATS);
-
- stats = nla_nest_start(msg, NL80211_ATTR_VENDOR_DATA);
- if (!stats)
- return -ENOBUFS;
-
- if (value & STREAMING_STATS_BASIC_EN_EXTND_DIS)
- basic_stats = 1;
- if (value & STREAMING_STATS_BASIC_DIS_EXTND_EN)
- extnd_stats = 1;
-
- nla_put_u8(msg, QCA_WLAN_VENDOR_ATTR_SAWF_STREAMING_BASIC_STATS, basic_stats);
- nla_put_u8(msg, QCA_WLAN_VENDOR_ATTR_SAWF_STREAMING_EXTND_STATS, extnd_stats);
-
- if (argc) {
- argc--;
- if (!strcmp(argv[1], "-l") || !argc)
- goto err;
- errno = 0;
- link_id = strtoul(argv[2], &end, 10);
- if (*end != '\0' || value > MAX_MLD_LINK || errno == ERANGE) {
- goto err;
- }
- nla_put_u8(msg, QCA_WLAN_VENDOR_ATTR_MLO_LINK_ID, link_id);
- }
-
- nla_nest_end(msg, stats);
return 0;
-
-err:
- printf("Invalid SAWF streaming stats command format: Usage\n");
- printf("iw dev <devname> streaming_stats configure <value> [-l <link_id>]\n");
- printf("\t value: 0 - Disable both Basic and Extended stats\n");
- printf("\t value: 1 - Enable Basic and Disable Extended stats\n");
- printf("\t value: 2 - Disable Basic and Enable Extended stats\n");
- printf("\t value: 3 - Enable both Basic and Extended stats\n");
- return -EINVAL;
}
COMMAND(streaming_stats, handle, "<value> [-l <link_id>]", NL80211_CMD_VENDOR, 0, CIB_NETDEV, handle_streaming_stats, ".");
diff --git a/telemetry.c b/telemetry.c
index 827ccb269b94..48b9f656f2ef 100644
--- a/telemetry.c
+++ b/telemetry.c
@@ -89,43 +89,7 @@ static int handle_telemetry_sawf_sla_samples_colletion_cfg
(struct nl80211_state *state, struct nl_msg *msg,
int argc, char **argv, enum id_input id)
{
- struct nlattr *telemetry_cfg;
- char *end;
- struct telemetry_sawf_generic_param telemetry_param;
-
- if (argc != TELEMETRY_SLA_SAMPLES_CONFIG_NUM_OF_PARAMS)
- goto err;
-
- telemetry_param.moving_avg_pkt = strtoul(argv[0], &end, 10);
- telemetry_param.moving_avg_win = strtoul(argv[1], &end, 10);
- telemetry_param.sla_num_pkt = strtoul(argv[2], &end, 10);
- telemetry_param.sla_time_sec = strtoul(argv[3], &end, 10);
-
- nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_QCA);
- nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD,
- QCA_NL80211_VENDOR_SUBCMD_TELEMETRY_SLA_SAMPLES_COLLECTION_CFG);
-
- telemetry_cfg = nla_nest_start(msg, NL80211_ATTR_VENDOR_DATA);
- if (!telemetry_cfg)
- return -ENOBUFS;
-
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_MOVING_AVG_PKT,
- telemetry_param.moving_avg_pkt);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_MOVING_AVG_WIN,
- telemetry_param.moving_avg_win);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_NUM_PKT,
- telemetry_param.sla_num_pkt);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_TIME_SEC,
- telemetry_param.sla_time_sec);
-
- nla_nest_end(msg, telemetry_cfg);
-
return 0;
-
-err:
- printf("invalid telemetry sla samples configuration command format: Usage\n");
- printf("\t iw phy <phyname> telemetry sla_samples_cfg <moving_avg_pkt> <moving_avg_window> <sla_num_pkt> <sla_time_sec>\n");
- return -EINVAL;
}
COMMAND(telemetry, sla_samples_cfg, "<moving_avg_pkt> <moving_avg_window>"
@@ -136,56 +100,7 @@ static int handle_telemetry_sawf_sla_thershold_cfg(struct nl80211_state *state,
struct nl_msg *msg, int argc, char **argv,
enum id_input id)
{
- struct nlattr *telemetry_cfg;
- char *end;
- struct telemetry_sawf_sla_thershold sla_thershold_cfg;
-
- if (argc != TELEMETRY_SLA_THERSHOLD_CONFIG_NUM_OF_PARAMS)
- goto err;
-
- nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_QCA);
- nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD,
- QCA_NL80211_VENDOR_SUBCMD_TELEMETRY_SLA_THERSHOLD_CFG);
-
- telemetry_cfg = nla_nest_start(msg, NL80211_ATTR_VENDOR_DATA);
- if (!telemetry_cfg)
- return -ENOBUFS;
-
- sla_thershold_cfg.svc_id = strtoul(argv[0], &end, 10);
- sla_thershold_cfg.min_throughput_rate = strtoul(argv[1], &end, 10);
- sla_thershold_cfg.max_throughput_rate = strtoul(argv[2], &end, 10);
- sla_thershold_cfg.burst_size = strtoul(argv[3], &end, 10);
- sla_thershold_cfg.service_interval = strtoul(argv[4], &end, 10);
- sla_thershold_cfg.delay_bound = strtoul(argv[5], &end, 10);
- sla_thershold_cfg.msdu_ttl = strtoul(argv[6], &end, 10);
- sla_thershold_cfg.msdu_rate_loss = strtoul(argv[7], &end, 10);
-
-
- nla_put_u8(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_THERSHOLD_SVC_ID,
- sla_thershold_cfg.svc_id);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_THERSHOLD_MIN_TP,
- sla_thershold_cfg.min_throughput_rate);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_THERSHOLD_MAX_TP,
- sla_thershold_cfg.max_throughput_rate);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_THERSHOLD_BURST_SIZE,
- sla_thershold_cfg.burst_size);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_THERSHOLD_INTERVAL,
- sla_thershold_cfg.service_interval);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_THERSHOLD_DELAY_BOUND,
- sla_thershold_cfg.delay_bound);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_THERSHOLD_MSDU_TTL,
- sla_thershold_cfg.msdu_ttl);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_THERSHOLD_MSDU_RATE_LOSS,
- sla_thershold_cfg.msdu_rate_loss);
- nla_nest_end(msg, telemetry_cfg);
return 0;
-
-err:
- printf("invalid telemetry sla thershold configuration command format: Usage\n");
- printf("\t iw phy <phyname> telemetry sla_thershold <service_id> ");
- printf(" <min_throughput_rate> <max_throughput_rate> <burst_size> <service_interval> ");
- printf(" <delay_bound> <msdu_ttl> <msdu_rate_loss> \n");
- return -EINVAL;
}
COMMAND(telemetry, sla_thershold, "<service_id> <min_throughput_rate> <max_throughput_rate>"
@@ -197,66 +112,7 @@ static int handle_telemetry_sawf_sla_detection_cfg(struct nl80211_state *state,
struct nl_msg *msg, int argc, char **argv,
enum id_input id)
{
- struct nlattr *telemetry_cfg;
- char *end;
- struct telemetry_sawf_sla_detect_param telemetry_param;
-
- if (argc != TELEMETRY_SLA_DETECTION_CONFIG_NUM_OF_PARAMS)
- goto err;
-
- if (streq(argv[0], "num_packet"))
- telemetry_param.sla_detect = SLA_DETECT_NUM_PACKET;
-
- if (streq(argv[0], "per_second"))
- telemetry_param.sla_detect = SLA_DETECT_PER_SECOND;
-
- if (streq(argv[0], "moving_avg"))
- telemetry_param.sla_detect = SLA_DETECT_MOV_AVG;
-
- if (streq(argv[0], "num_second"))
- telemetry_param.sla_detect = SLA_DETECT_NUM_SECOND;
-
- telemetry_param.min_throughput_rate = strtoul(argv[1], &end, 10);
- telemetry_param.max_throughput_rate = strtoul(argv[2], &end, 10);
- telemetry_param.burst_size = strtoul(argv[3], &end, 10);
- telemetry_param.service_interval = strtoul(argv[4], &end, 10);
- telemetry_param.delay_bound = strtoul(argv[5], &end, 10);
- telemetry_param.msdu_ttl = strtoul(argv[6], &end, 10);
- telemetry_param.msdu_rate_loss = strtoul(argv[7], &end, 10);
-
-
- nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_QCA);
- nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD,
- QCA_NL80211_VENDOR_SUBCMD_TELEMETRY_SLA_BREACH_DETECTION_CFG);
-
- telemetry_cfg = nla_nest_start(msg, NL80211_ATTR_VENDOR_DATA);
- if (!telemetry_cfg)
- return -ENOBUFS;
-
- nla_put_u8(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_DETECTION_PARAM,
- telemetry_param.sla_detect);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_DETECT_MIN_TP,
- telemetry_param.min_throughput_rate);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_DETECT_MAX_TP,
- telemetry_param.max_throughput_rate);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_DETECT_BURST_SIZE,
- telemetry_param.burst_size);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_DETECT_INTERVAL,
- telemetry_param.service_interval);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_DETECT_DELAY_BOUND,
- telemetry_param.delay_bound);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_DETECT_MSDU_TTL,
- telemetry_param.msdu_ttl);
- nla_put_u32(msg, QCA_WLAN_VENDOR_ATTR_TELEMETRY_SLA_DETECT_MSDU_RATE_LOSS,
- telemetry_param.msdu_rate_loss);
- nla_nest_end(msg, telemetry_cfg);
-
return 0;
-
-err:
- printf("invalid telemetry sla breach detection configuration command format: Usage\n");
- printf("\t iw phy <phyname> telemetry sla_detection_cfg <detection_option> <min_throughput_rate> <max_throughput_rate> <burst_size> <service_interval> <delay_bound> <msdu_ttl> <msdu_rate_loss>\n");
- return -EINVAL;
}
COMMAND(telemetry, sla_detection_cfg, "<detection_option> <min_throughput_rate>"
@@ -271,35 +127,7 @@ static int handle_telemetry_sla_clear_stats(struct nl80211_state *state,
struct nl_msg *msg, int argc, char **argv,
enum id_input id)
{
- struct nlattr *sla_clear;
- unsigned char mac_addr[MAC_ADDR_LEN];
-
- if (argc != TELEMETRY_SLA_CLEAR_STATS_MAX_ARG)
- goto err;
-
- if (mac_addr_a2n(mac_addr, argv[0])) {
- printf("Invalid MAC address\n");
- return -EINVAL;
- }
-
- nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_QCA);
- nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD,
- QCA_NL80211_VENDOR_SUBCMD_SAWF_SLA_BREACH);
-
- sla_clear = nla_nest_start(msg, NL80211_ATTR_VENDOR_DATA);
- if (!sla_clear)
- return -ENOBUFS;
-
- if (nla_put(msg, QCA_WLAN_VENDOR_ATTR_SLA_PEER_MAC,
- ETH_ALEN, mac_addr))
- return -ENOBUFS;
-
- nla_nest_end(msg, sla_clear);
return NL_OK;
-err:
- printf("Invalid telemetry sla clear stats, command format: Usage\n");
- printf("\t iw dev <devname> telemetry sla_clear_stats <peer_mac>\n");
- return NL_STOP;
}
COMMAND(telemetry, sla_clear_stats, "<peer_mac>", NL80211_CMD_VENDOR, 0, CIB_NETDEV,
handle_telemetry_sla_clear_stats, ".");
--
2.17.1