|
@@ -603,6 +603,15 @@
|
|
|
* The attributes used with this command are defined in
|
|
|
* enum qca_wlan_vendor_attr_secure_ranging_ctx.
|
|
|
*
|
|
|
+ * @QCA_NL80211_VENDOR_SUBCMD_COAP_OFFLOAD: This vendor subcommand is used to
|
|
|
+ * enable/disable offload processing in firmware during system/runtime
|
|
|
+ * suspend for CoAP messages (see RFC7252: The Constrained Application
|
|
|
+ * Protocol) and fetch information of the CoAP messages cached during
|
|
|
+ * offload processing.
|
|
|
+ *
|
|
|
+ * The attributes used with this command are defined in
|
|
|
+ * enum qca_wlan_vendor_attr_coap_offload.
|
|
|
+ *
|
|
|
* @QCA_NL80211_VENDOR_SUBCMD_SCS_RULE_CONFIG: Subcommand to configure
|
|
|
* (add, remove, or change) a Stream Classification Service (SCS) rule.
|
|
|
*
|
|
@@ -854,6 +863,7 @@ enum qca_nl80211_vendor_subcmds {
|
|
|
QCA_NL80211_VENDOR_SUBCMD_DRIVER_READY = 214,
|
|
|
QCA_NL80211_VENDOR_SUBCMD_PASN = 215,
|
|
|
QCA_NL80211_VENDOR_SUBCMD_SECURE_RANGING_CONTEXT = 216,
|
|
|
+ QCA_NL80211_VENDOR_SUBCMD_COAP_OFFLOAD = 217,
|
|
|
QCA_NL80211_VENDOR_SUBCMD_SCS_RULE_CONFIG = 218,
|
|
|
};
|
|
|
|
|
@@ -13471,6 +13481,403 @@ enum qca_wlan_vendor_attr_secure_ranging_ctx {
|
|
|
QCA_WLAN_VENDOR_ATTR_SECURE_RANGING_CTX_AFTER_LAST - 1,
|
|
|
};
|
|
|
|
|
|
+/**
|
|
|
+ * enum qca_wlan_vendor_attr_coap_offload_filter - Attributes used
|
|
|
+ * inside %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_FILTER
|
|
|
+ * nested attribute. The packets that match a filter will be replied with
|
|
|
+ * attributes configured in %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_DEST_IPV4:
|
|
|
+ * u32 attribute. Destination IPv4 address in network byte order, the
|
|
|
+ * IPv4 packets with different address will be filtered out.
|
|
|
+ * This attribute is optional.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_DEST_IPV4_IS_BC:
|
|
|
+ * Flag attribute. If it's present, indicates that
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_DEST_IPV4 is a broadcast
|
|
|
+ * address; while if not, indicates that the address is a unicast/multicast
|
|
|
+ * address.
|
|
|
+ * This attribute is optional.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_DEST_IPV6:
|
|
|
+ * NLA_BINARY attribute, length is 16 bytes.
|
|
|
+ * Destination IPv6 address in network byte order, the IPv6 packets
|
|
|
+ * with different destination address will be filtered out.
|
|
|
+ * This attribute is optional.
|
|
|
+ *
|
|
|
+ * At least one of %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_DEST_IPV4 and
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_DEST_IPV6 must be configured.
|
|
|
+ * Packets on both IPv4 and IPv6 will be processed if both are configured.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_DEST_PORT:
|
|
|
+ * u16 attribute. Destination UDP port, the packets with different destination
|
|
|
+ * UDP port will be filtered out.
|
|
|
+ * This attribute is mandatory.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_MATCH_OFFSET:
|
|
|
+ * u32 attribute. Represents the offset (in UDP payload) of the data
|
|
|
+ * to be matched.
|
|
|
+ * This attribute is mandatory.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_MATCH_DATA:
|
|
|
+ * NLA_BINARY attribute, the maximum allowed size is 16 bytes.
|
|
|
+ * Binary data that is compared bit-by-bit against the data (specified
|
|
|
+ * by %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_MATCH_OFFSET) in UDP
|
|
|
+ * payload, the packets don't match will be filtered out.
|
|
|
+ * This attribute is mandatory.
|
|
|
+ */
|
|
|
+enum qca_wlan_vendor_attr_coap_offload_filter {
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_INVALID = 0,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_DEST_IPV4 = 1,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_DEST_IPV4_IS_BC = 2,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_DEST_IPV6 = 3,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_DEST_PORT = 4,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_MATCH_OFFSET = 5,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_MATCH_DATA = 6,
|
|
|
+
|
|
|
+ /* keep last */
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_AFTER_LAST,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_MAX =
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_FILTER_AFTER_LAST - 1,
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * enum qca_wlan_vendor_attr_coap_offload_reply - Attributes used
|
|
|
+ * inside %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY nested attribute.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_SRC_IPV4:
|
|
|
+ * u32 attribute. Source address (in network byte order) for replying
|
|
|
+ * the matching broadcast/multicast IPv4 packets.
|
|
|
+ * This attribute is optional.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_SRC_IPV6:
|
|
|
+ * NLA_BINARY attribute, length is 16 bytes.
|
|
|
+ * Source address (in network byte order) for replying the matching
|
|
|
+ * multicast IPv6 packets.
|
|
|
+ * This attribute is optional.
|
|
|
+ *
|
|
|
+ * For broadcast/multicast offload reply, one of
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_SRC_IPV4 and
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_SRC_IPV6 or both must be
|
|
|
+ * configured according to version of the IP address(es) configured in
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_FILTER;
|
|
|
+ * while for unicast case, firmware will take the destination IP address
|
|
|
+ * in the received matching packet as the source address for replying.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_FILTER:
|
|
|
+ * Nested attribute. Filter for the received UDP packets, only the matching
|
|
|
+ * packets will be replied and cached.
|
|
|
+ * See enum qca_wlan_vendor_attr_coap_offload_filter for list of supported
|
|
|
+ * attributes.
|
|
|
+ * This attribute is mandatory.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_MSG:
|
|
|
+ * NLA_BINARY attribute, the maximum allowed size is 1152 bytes.
|
|
|
+ * CoAP message (UDP payload) to be sent upon receiving matching packets.
|
|
|
+ * Firmware is responsible for adding any necessary protocol headers.
|
|
|
+ * This attribute is mandatory.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_CACHE_EXPTIME:
|
|
|
+ * u32 attribute. Expiration time in milliseconds of the cached CoAP messages.
|
|
|
+ * A cached message will be dropped by firmware if it's expired.
|
|
|
+ * This attribute is optional. A default value of 40000 will be used in the
|
|
|
+ * absence of it.
|
|
|
+ */
|
|
|
+enum qca_wlan_vendor_attr_coap_offload_reply {
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_INVALID = 0,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_SRC_IPV4 = 1,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_SRC_IPV6 = 2,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_FILTER = 3,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_MSG = 4,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_CACHE_EXPTIME = 5,
|
|
|
+
|
|
|
+ /* keep last */
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_AFTER_LAST,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_MAX =
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY_AFTER_LAST - 1,
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * enum qca_wlan_vendor_attr_coap_offload_tx_ipv4 - Represents parameters for
|
|
|
+ * CoAP message (UDP) transmitting on IPv4.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV4_SRC_ADDR:
|
|
|
+ * u32 attribute. Source address (in network byte order) for transmitting
|
|
|
+ * packets on IPv4.
|
|
|
+ * This attribute is mandatory.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV4_SRC_PORT:
|
|
|
+ * u16 attribute. Source UDP port.
|
|
|
+ * This attribute is optional, a random port is taken if it's not present.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV4_DEST_ADDR:
|
|
|
+ * u32 attribute. Destination IPv4 address (in network byte order).
|
|
|
+ * This attribute is mandatory.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV4_DEST_IS_BC:
|
|
|
+ * Flag attribute. If it's present, indicates that
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV4_DEST_ADDR is a broadcast
|
|
|
+ * address; while if not, indicates that the address is unicast/multicast
|
|
|
+ * address.
|
|
|
+ * This attribute is optional.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV4_DEST_PORT:
|
|
|
+ * u16 attribute. Destination UDP port.
|
|
|
+ * This attribute is mandatory.
|
|
|
+ */
|
|
|
+enum qca_wlan_vendor_attr_coap_offload_tx_ipv4 {
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV4_INVALID = 0,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV4_SRC_ADDR = 1,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV4_SRC_PORT = 2,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV4_DEST_ADDR = 3,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV4_DEST_IS_BC = 4,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV4_DEST_PORT = 5,
|
|
|
+
|
|
|
+ /* keep last */
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV4_AFTER_LAST,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV4_MAX =
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV4_AFTER_LAST - 1,
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * enum qca_wlan_vendor_attr_coap_offload_tx_ipv6 - Represents parameters for
|
|
|
+ * CoAP message (UDP) transmitting on IPv6.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV6_SRC_ADDR:
|
|
|
+ * NLA_BINARY attribute, length is 16 bytes.
|
|
|
+ * Source address (in network byte order) for transmitting packets on IPv6.
|
|
|
+ * This attribute is mandatory.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV6_SRC_PORT:
|
|
|
+ * u16 attribute. Source UDP port.
|
|
|
+ * This attribute is optional, a random port is taken if it's not present.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV6_DEST_ADDR:
|
|
|
+ * NLA_BINARY attribute, length is 16 bytes.
|
|
|
+ * Destination IPv6 address (in network byte order).
|
|
|
+ * This attribute is mandatory.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV6_DEST_PORT:
|
|
|
+ * u16 attribute. Destination UDP port.
|
|
|
+ * This attribute is mandatory.
|
|
|
+ */
|
|
|
+enum qca_wlan_vendor_attr_coap_offload_tx_ipv6 {
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV6_INVALID = 0,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV6_SRC_ADDR = 1,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV6_SRC_PORT = 2,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV6_DEST_ADDR = 3,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV6_DEST_PORT = 4,
|
|
|
+
|
|
|
+ /* keep last */
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV6_AFTER_LAST,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV6_MAX =
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_TX_IPV6_AFTER_LAST - 1,
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * enum qca_wlan_vendor_attr_coap_offload_periodic_tx - Attributes used
|
|
|
+ * inside %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX nested attribute.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX_IPV4:
|
|
|
+ * Nested attribute. The IPv4 source/destination address/port for offload
|
|
|
+ * transmitting. See enum qca_wlan_vendor_attr_coap_offload_tx_ipv4 for the list
|
|
|
+ * of supported attributes.
|
|
|
+ * This attribute is optional.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX_IPV6:
|
|
|
+ * Nested attribute. The IPv6 source/destination address/port for offload
|
|
|
+ * transmitting. See enum qca_wlan_vendor_attr_coap_offload_tx_ipv6 for the list
|
|
|
+ * of supported attributes.
|
|
|
+ * This attribute is optional.
|
|
|
+ *
|
|
|
+ * At least one of %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX_IPV4 and
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX_IPV6 must be configured.
|
|
|
+ * Firmware will transmit the packets on both IPv4 and IPv6 if both are
|
|
|
+ * configured.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX_PERIOD:
|
|
|
+ * u32 attribute. Period in milliseconds for the periodic transmitting.
|
|
|
+ * This attribute is mandatory.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX_MSG:
|
|
|
+ * NLA_BINARY attribute, the maximum allowed size is 1152 bytes.
|
|
|
+ * CoAP message (UDP payload) to be periodically transmitted. Firmware
|
|
|
+ * is responsible for adding any necessary protocol headers.
|
|
|
+ * This attribute is mandatory.
|
|
|
+ */
|
|
|
+enum qca_wlan_vendor_attr_coap_offload_periodic_tx {
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX_INVALID = 0,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX_IPV4 = 1,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX_IPV6 = 2,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX_PERIOD = 3,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX_MSG = 4,
|
|
|
+
|
|
|
+ /* keep last */
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX_AFTER_LAST,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX_MAX =
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX_AFTER_LAST - 1,
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * enum qca_wlan_vendor_attr_coap_offload_cache_info - Attributes used
|
|
|
+ * inside %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHES nested attribute.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHE_INFO_TS:
|
|
|
+ * u64 attribute. Received time (since system booted in microseconds) of
|
|
|
+ * the cached CoAP message.
|
|
|
+ * This attribute is mandatory.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHE_INFO_SRC_IPV4:
|
|
|
+ * u32 attribute. Source IPv4 address (in network byte order) of the cached
|
|
|
+ * CoAP message.
|
|
|
+ * This attribute is optional.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHE_INFO_SRC_IPV6:
|
|
|
+ * NLA_BINARY attribute, length is 16 bytes.
|
|
|
+ * Source IPv6 address (in network byte order) of the cached CoAP message.
|
|
|
+ * This attribute is optional.
|
|
|
+ *
|
|
|
+ * At most and at least one of
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHE_INFO_SRC_IPV4 and
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHE_INFO_SRC_IPV6 is given for
|
|
|
+ * an entry.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHE_INFO_MSG:
|
|
|
+ * NLA_BINARY attribute, the maximum allowed size is 1152 bytes.
|
|
|
+ * The cached CoAP message (UDP payload). If the actual message size is
|
|
|
+ * greater than the maximum size, it will be truncated and leaving only
|
|
|
+ * the first 1152 bytes.
|
|
|
+ * This attribute is mandatory.
|
|
|
+ */
|
|
|
+enum qca_wlan_vendor_attr_coap_offload_cache_info {
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHE_INFO_INVALID = 0,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHE_INFO_TS = 1,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHE_INFO_SRC_IPV4 = 2,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHE_INFO_SRC_IPV6 = 3,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHE_INFO_MSG = 4,
|
|
|
+
|
|
|
+ /* keep last */
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHE_INFO_AFTER_LAST,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHE_INFO_MAX =
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHE_INFO_AFTER_LAST - 1,
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * enum qca_wlan_vendor_coap_offload_action - Actions for
|
|
|
+ * vendor command QCA_NL80211_VENDOR_SUBCMD_COAP_OFFLOAD.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_COAP_OFFLOAD_ACTION_REPLY_ENABLE:
|
|
|
+ * Enable CoAP offload reply.
|
|
|
+ * If it's enabled, firmware will start offload processing on each suspend
|
|
|
+ * and stop on each resume.
|
|
|
+ *
|
|
|
+ * Offload reply on match works as follows:
|
|
|
+ * Reply the packets that match the filter with the given CoAP
|
|
|
+ * message (with necessary protocol headers), increase the CoAP message
|
|
|
+ * ID in the given CoAP message by one for the next use after each successful
|
|
|
+ * transmission, and try to store the information of the received packet,
|
|
|
+ * including the received time, source IP address, and CoAP message (UDP
|
|
|
+ * payload).
|
|
|
+ *
|
|
|
+ * Firmware has a limit to the maximum stored entries, it takes the source IP
|
|
|
+ * address as the key of an entry, and keeps at most one entry for each key.
|
|
|
+ * A packet won't be stored if no entry for the same key is present and the
|
|
|
+ * total number of the existing unexpired entries reaches the maximum value.
|
|
|
+ *
|
|
|
+ * If any configured item is changed, user space should disable offload reply
|
|
|
+ * first and then issue a new enable request.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_COAP_OFFLOAD_ACTION_REPLY_DISABLE:
|
|
|
+ * Disable CoAP offload reply and return information of any cached CoAP
|
|
|
+ * messages.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_COAP_OFFLOAD_ACTION_PERIODIC_TX_ENABLE:
|
|
|
+ * Enable CoAP offload periodic transmitting.
|
|
|
+ * If it's enabled, firmware will start offload periodic transmitting on
|
|
|
+ * each suspend and stop on each resume.
|
|
|
+ *
|
|
|
+ * Offload periodic transmitting works as follows:
|
|
|
+ * Send the given CoAP message (with necessary protocol headers) with the given
|
|
|
+ * source/destination IP address/UDP port periodically based on the given
|
|
|
+ * period and increase the CoAP message ID in the given CoAP message by one
|
|
|
+ * for the next use after each successful transmission.
|
|
|
+ *
|
|
|
+ * If any configured item is changed, user space should disable offload
|
|
|
+ * periodic transmitting first and then issue a new enable request.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_COAP_OFFLOAD_ACTION_PERIODIC_TX_DISABLE:
|
|
|
+ * Disable CoAP offload periodic transmitting.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_COAP_OFFLOAD_ACTION_CACHE_GET:
|
|
|
+ * Get information of the CoAP messages cached during offload reply
|
|
|
+ * processing. The cache is cleared after retrieval.
|
|
|
+ */
|
|
|
+enum qca_wlan_vendor_coap_offload_action {
|
|
|
+ QCA_WLAN_VENDOR_COAP_OFFLOAD_ACTION_REPLY_ENABLE = 0,
|
|
|
+ QCA_WLAN_VENDOR_COAP_OFFLOAD_ACTION_REPLY_DISABLE = 1,
|
|
|
+ QCA_WLAN_VENDOR_COAP_OFFLOAD_ACTION_PERIODIC_TX_ENABLE = 2,
|
|
|
+ QCA_WLAN_VENDOR_COAP_OFFLOAD_ACTION_PERIODIC_TX_DISABLE = 3,
|
|
|
+ QCA_WLAN_VENDOR_COAP_OFFLOAD_ACTION_CACHE_GET = 4,
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * enum qca_wlan_vendor_attr_coap_offload - Used by the
|
|
|
+ * vendor command QCA_NL80211_VENDOR_SUBCMD_COAP_OFFLOAD.
|
|
|
+ * This is used to set parameters for CoAP offload processing, or get
|
|
|
+ * cached CoAP messages from firmware.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_ACTION:
|
|
|
+ * u32 attribute. Action to take in this vendor command.
|
|
|
+ * See enum qca_wlan_vendor_coap_offload_action for supported actions.
|
|
|
+ * This attribute is mandatory.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REQ_ID:
|
|
|
+ * u32 attribute. Represents the Request ID for the CoAP offload
|
|
|
+ * configuration, which can help to identify the user entity starting
|
|
|
+ * the CoAP offload processing and accordingly stop the respective
|
|
|
+ * ones/get the cached CoAP messages with the matching ID.
|
|
|
+ * This attribute is mandatory.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY:
|
|
|
+ * Nested attribute. Parameters for offload reply.
|
|
|
+ * See enum qca_wlan_vendor_attr_coap_offload_reply for the list of
|
|
|
+ * supported attributes.
|
|
|
+ * This attribute is mandatory if %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_ACTION
|
|
|
+ * is QCA_WLAN_VENDOR_COAP_OFFLOAD_ACTION_REPLY_ENABLE, and is ignored
|
|
|
+ * otherwise.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX:
|
|
|
+ * Nested attribute. Parameters for offload periodic transmitting.
|
|
|
+ * See enum qca_wlan_vendor_attr_coap_offload_periodic_tx for the list of
|
|
|
+ * supported attributes.
|
|
|
+ * This attribute is mandatory if %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_ACTION is
|
|
|
+ * QCA_WLAN_VENDOR_COAP_OFFLOAD_ACTION_PERIODIC_TX_ENABLE, and is ignored
|
|
|
+ * otherwise.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHES:
|
|
|
+ * Array of nested attributes. Information of the cached CoAP messages,
|
|
|
+ * where each entry is taken from
|
|
|
+ * enum qca_wlan_vendor_attr_coap_offload_cache_info.
|
|
|
+ * This attribute is used for reporting the cached CoAP messages
|
|
|
+ * in reply for command in which %QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_ACTION
|
|
|
+ * is QCA_WLAN_VENDOR_COAP_OFFLOAD_ACTION_CACHE_GET or
|
|
|
+ * QCA_WLAN_VENDOR_COAP_OFFLOAD_ACTION_REPLY_DISABLE. It means there is no
|
|
|
+ * cached item if this attribute is not present.
|
|
|
+ */
|
|
|
+enum qca_wlan_vendor_attr_coap_offload {
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_INVALID = 0,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_ACTION = 1,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REQ_ID = 2,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_REPLY = 3,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_PERIODIC_TX = 4,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_CACHES = 5,
|
|
|
+
|
|
|
+ /* keep last */
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_AFTER_LAST,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_MAX =
|
|
|
+ QCA_WLAN_VENDOR_ATTR_COAP_OFFLOAD_AFTER_LAST - 1,
|
|
|
+};
|
|
|
+
|
|
|
/**
|
|
|
* enum qca_wlan_vendor_attr_scs_rule_config - Used by the vendor command
|
|
|
* QCA_NL80211_VENDOR_SUBCMD_SCS_RULE_CONFIG to configure Stream Classification
|