]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Extend QCA vendor command to include more parameters for netdev events
authorKrunalsinh Padhar <quic_kpadhar@quicinc.com>
Wed, 16 Aug 2023 19:29:17 +0000 (12:29 -0700)
committerJouni Malinen <j@w1.fi>
Thu, 17 Aug 2023 15:26:21 +0000 (18:26 +0300)
Extend enum qca_wlan_vendor_attr_mlo_peer_prim_netdev_event to add MLD
MAC address, the number of links, and link info. Link info contains
ifindex and MAC address of each link of a non-AP MLD that was negotiated
in ML association.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
src/common/qca-vendor.h

index 3773368c4aafc63504874913458ddf777c06c2d7..7fbae2c319aac30583ba202d28345a2c7293088a 100644 (file)
@@ -920,7 +920,9 @@ enum qca_radiotap_vendor_ids {
  *     In some implementations, MLO has multiple netdevs out of which one
  *     netdev is designated as primary to provide a unified interface to the
  *     bridge. In those implementations this event is sent on every MLO peer
- *     connection.
+ *     connection. User applications on an AP MLD will use this event to get
+ *     info for all the links from non-AP MLD that were negotiated to be used
+ *     for the ML association.
  *
  *     The attributes used with this event are defined in
  *     enum qca_wlan_vendor_attr_mlo_peer_prim_netdev_event.
@@ -15110,12 +15112,25 @@ enum qca_wlan_vendor_attr_sr {
  * MLD MAC address of the peer.
  * @QCA_WLAN_VENDOR_ATTR_MLO_PEER_PRIM_NETDEV_EVENT_PRIM_IFINDEX: u32 attribute,
  * used to pass ifindex of the primary netdev.
+ * @QCA_WLAN_VENDOR_ATTR_MLO_PEER_PRIM_NETDEV_EVENT_MLD_IFINDEX: u32 attribute,
+ * used to pass ifindex of the MLD netdev.
+ * @QCA_WLAN_VENDOR_ATTR_MLO_PEER_PRIM_NETDEV_EVENT_NUM_LINKS: u8 attribute,
+ * used to indicate the number of links that the non-AP MLD negotiated to be
+ * used in the ML connection.
+ * @QCA_WLAN_VENDOR_ATTR_MLO_PEER_PRIM_NETDEV_EVENT_LINK_INFO: Nested
+ * attribute, contains information regarding links of the non-AP MLD.
+ * User applications need to know all the links of a non-AP MLD that are
+ * participating in the ML association. The possible attributes inside this
+ * attribute are defined in enum qca_wlan_vendor_attr_mlo_link_info.
  */
 enum qca_wlan_vendor_attr_mlo_peer_prim_netdev_event {
        QCA_WLAN_VENDOR_ATTR_MLO_PEER_PRIM_NETDEV_EVENT_INVALID = 0,
        QCA_WLAN_VENDOR_ATTR_MLO_PEER_PRIM_NETDEV_EVENT_MACADDR = 1,
        QCA_WLAN_VENDOR_ATTR_MLO_PEER_PRIM_NETDEV_EVENT_MLD_MAC_ADDR = 2,
        QCA_WLAN_VENDOR_ATTR_MLO_PEER_PRIM_NETDEV_EVENT_PRIM_IFINDEX = 3,
+       QCA_WLAN_VENDOR_ATTR_MLO_PEER_PRIM_NETDEV_EVENT_MLD_IFINDEX = 4,
+       QCA_WLAN_VENDOR_ATTR_MLO_PEER_PRIM_NETDEV_EVENT_NUM_LINKS = 5,
+       QCA_WLAN_VENDOR_ATTR_MLO_PEER_PRIM_NETDEV_EVENT_LINK_INFO = 6,
 
        /* keep last */
        QCA_WLAN_VENDOR_ATTR_MLO_PEER_PRIM_NETDEV_EVENT_AFTER_LAST,
@@ -15123,6 +15138,27 @@ enum qca_wlan_vendor_attr_mlo_peer_prim_netdev_event {
        QCA_WLAN_VENDOR_ATTR_MLO_PEER_PRIM_NETDEV_EVENT_AFTER_LAST - 1,
 };
 
+/**
+ * enum qca_wlan_vendor_attr_mlo_link_info - Defines attributes for
+ * non-AP MLD link parameters used by the attribute
+ * %QCA_WLAN_VENDOR_ATTR_MLO_PEER_PRIM_NETDEV_EVENT_LINK_INFO.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_MLO_LINK_INFO_IFINDEX: u32 attribute, used
+ * to pass the netdev ifindex of the non-AP MLD link.
+ * @QCA_WLAN_VENDOR_ATTR_MLO_LINK_INFO_MACADDR: 6 byte MAC address of
+ * the non-AP MLD link.
+ */
+enum qca_wlan_vendor_attr_mlo_link_info {
+       QCA_WLAN_VENDOR_ATTR_MLO_LINK_INFO_INVALID = 0,
+       QCA_WLAN_VENDOR_ATTR_MLO_LINK_INFO_IFINDEX = 1,
+       QCA_WLAN_VENDOR_ATTR_MLO_LINK_INFO_MACADDR = 2,
+
+       /* keep last */
+       QCA_WLAN_VENDOR_ATTR_MLO_LINK_INFO_AFTER_LAST,
+       QCA_WLAN_VENDOR_ATTR_MLO_LINK_INFO_MAX =
+       QCA_WLAN_VENDOR_ATTR_MLO_LINK_INFO_AFTER_LAST - 1,
+};
+
 /**
  * enum qca_wlan_vendor_attr_afc_freq_psd_info: This enum is used with
  * nested attributes QCA_WLAN_VENDOR_ATTR_AFC_RESP_FREQ_PSD_INFO and