]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
QCA vendor command for mDNS offload
authorAditya Kodukula <akodukul@codeaurora.org>
Wed, 28 Jul 2021 22:40:28 +0000 (15:40 -0700)
committerJouni Malinen <j@w1.fi>
Thu, 29 Jul 2021 17:07:52 +0000 (20:07 +0300)
Define a new vendor command for enabling/disabling mDNS offload.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
src/common/qca-vendor.h

index 209b396388acac3bfbe891a2b3823fdc6a8f295f..d34f9892dee91044343d6a48ba3ec01a8031de9a 100644 (file)
@@ -719,6 +719,10 @@ enum qca_radiotap_vendor_ids {
  *     to get DFS radar history from the driver to userspace. The driver
  *     returns QCA_WLAN_VENDOR_ATTR_RADAR_HISTORY_ENTRIES attribute with an
  *     array of nested entries.
+ *
+ * @QCA_NL80211_VENDOR_SUBCMD_MDNS_OFFLOAD: Userspace can use this command to
+ *     enable/disable mDNS offload to the firmware. The attributes used with
+ *     this command are defined in enum qca_wlan_vendor_attr_mdns_offload.
  */
 enum qca_nl80211_vendor_subcmds {
        QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
@@ -908,6 +912,7 @@ enum qca_nl80211_vendor_subcmds {
        QCA_NL80211_VENDOR_SUBCMD_CONCURRENT_MULTI_STA_POLICY = 197,
        QCA_NL80211_VENDOR_SUBCMD_USABLE_CHANNELS = 198,
        QCA_NL80211_VENDOR_SUBCMD_GET_RADAR_HISTORY = 199,
+       QCA_NL80211_VENDOR_SUBCMD_MDNS_OFFLOAD = 200,
 };
 
 enum qca_wlan_vendor_attr {
@@ -11151,4 +11156,59 @@ enum qca_wlan_vendor_attr_radar_history {
        QCA_WLAN_VENDOR_ATTR_RADAR_HISTORY_LAST - 1,
 };
 
+/**
+ * enum qca_wlan_vendor_attr_mdns_offload - Attributes used by
+ * %QCA_NL80211_VENDOR_SUBCMD_MDNS_OFFLOAD vendor command.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_ENABLE: Required (flag)
+ * Enable mDNS offload. This attribute is mandatory to enable
+ * mDNS offload feature. If this attribute is not present, mDNS offload
+ * is disabled.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_TABLE: Nested attribute containing
+ * one or more %QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_ENTRY attributes. This
+ * attribute is mandatory when enabling the feature, and not required when
+ * disabling the feature.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_ENTRY: Nested attribute containing
+ * the following attributes:
+ *     %QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_FQDN
+ *     %QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_ANSWER_RESOURCE_RECORDS_COUNT
+ *     %QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_ANSWER_PAYLOAD
+ *
+ * @QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_FQDN: Required Null terminated string
+ * attribute. It consists of a hostname and ".local" as the domain name.
+ * The character set is limited to UTF-8 encoding. The maximum allowed size
+ * is 64 bytes. It is used to compare the domain in the "QU" query.
+ * Only 1 FQDN is supported per vdev.
+ * For example: myphone.local
+ *
+ * @QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_ANSWER_RESOURCE_RECORDS_COUNT: Required
+ * u16 attribute. It specifies the total number of resource records present
+ * in the answer section of the answer payload. This attribute is needed by the
+ * firmware to populate the mDNS response frame for mDNS queries without having
+ * to parse the answer payload.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_ANSWER_PAYLOAD: Required binary blob
+ * attribute sent by the mdnsResponder from userspace. It contains resource
+ * records of various types (e.g., A, AAAA, PTR, TXT) and service list. This
+ * payload is passed down to the firmware and is transmitted in response to
+ * mDNS queries.
+ * The maximum supported size of the answer payload is 1500 bytes.
+ */
+enum qca_wlan_vendor_attr_mdns_offload {
+       QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_INVALID = 0,
+       QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_ENABLE = 1,
+       QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_TABLE = 2,
+       QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_ENTRY = 3,
+       QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_FQDN = 4,
+       QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_ANSWER_RESOURCE_RECORDS_COUNT = 5,
+       QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_ANSWER_PAYLOAD = 6,
+
+       /* keep last */
+       QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_AFTER_LAST,
+       QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_MAX =
+       QCA_WLAN_VENDOR_ATTR_MDNS_OFFLOAD_AFTER_LAST - 1,
+};
+
 #endif /* QCA_VENDOR_H */