[DESIGN RFC v3] AP Architecture for Wi-Fi-8 Multi-AP Coordination (MAPC)

Johannes Berg johannes at sipsolutions.net
Mon Jan 12 11:12:08 PST 2026


Hi,

I wish you guys (generally Qualcomm, not you personally) could finish
one thing before opening yet another ;-)

Couple of quick comments:

> +---------------------------------------------------------------+
> >                WLAN Driver (e.g., ath12k)                     |
> >                                                               |
> >   +----------------------+    +---------------------------+   |
> >   |   MAPC Peer Mgmt     |    | MAPC Policy Config Mgmt   |   |
> >   +----------------------+    +---------------------------+   |
> >                                                               |
> >                 +---------------------------+                 |
> >                 | MAPC Event Gen/Notify     |                 |
> >                 +---------------------------+                 |
> +---------------------------------------------------------------+

I think you need to do a lot more to explain why this is in firmware?

> +--------------------------------------------------------------------+
> >                        UHR AP-1                                    |
> >  +---------+       +---------+       +---------+       +---------+ | +---------+
> >  |         |       |         |       |         |       |         | | |         |
> >  | hostapd |       | cfg80211|       | mac80211|       |  wlan   | | |  UHR    |
> >  |         |       |         |       |         |       | driver  | | |  AP-2   |
> >  +----+----+       +----+----+       +----+----+       +----+----+ | +----+----+
> >       |                 |                 |                 |      |      |
> >  +----+---------------+ |                 |                 |      |      |
> >  | init hostapd & HW  | |                 |                 |      |      |
> >  | MAPC support update| |                 |                 |      |      |
> >  +----+---------------+ |  MAPC Discovery |                 |      |      |
> >       |                 |    Request      |                 |      |      |
> >       |                 |(MAPC capability)|                 |      |      |
> >       +-----------------+-----------------+-----------------+------|------>
> >       |                 |  MAPC Discovery |                 |      |      |
> >       |                 |    Response     |                 |      |      |
> >       |                 |(MAPC capability)|                 |      |      |
> >       <-----------------+-----------------+-----------------+------|------+

Those are action frames just going between the hostapd instances (or
similar), why does the firmware need to create an event to hostapd
itself?

> +--------------------------------------------------------------------+            
> >                           UHR AP-1                                 |            
> >  +---------+       +---------+       +---------+       +---------+ | +---------+
> >  |         |       |         |       |         |       |         | | |         |
> >  | hostapd |       | cfg80211|       | mac80211|       |  wlan   | | |  UHR    |
> >  |         |       |         |       |         |       | driver  | | |  AP-2   |
> >  +----+----+       +----+----+       +----+----+       +----+----+ | +----+----+
> >       |                 |                 |                 |      |      |     
> >       |                 |                 |  +--------------+-----+|      |     
> >       |                 |                 |  | Notify hostapd to  ||      |     
> >       |                 |                 |  |    Trigger MAPC    ||      |     
> >       |                 |                 |  |    Negotiation     ||      |     
> >       |                 |                 |  +--------------+-----+|      |     
> >       |  NL80211_CMD_MAPC_NEGOTIATION_TRIGGER(scheme-id,action)    |      |     
> >       <-----------------+-----------------+-----------------+      |      |   

Here, why? What does this do in FW?


> >   
> >  +----+---------------+ |                 |                 |      |      |     
> >  |parse scheme-id &   | |                 |                 |      |      |     
> >  |action. Init MAPC   | |MAPC Negotiation |                 |      |      |     
> >  |    Negotiation     | |     Request     |                 |      |      |     
> >  +----+---------------+(scheme params & APID1               |      |      |     
> >       |              Optype:ESTABLISHMENT/UPDATE)           |      |      |     
> >       +-----------------+-----------------+-----------------+------+------>     

Hostapd parses something the ... FW gave it? That seems odd. We should
give it in a decent data structure format, if this is at all sensible, I
have no idea.

>           New notifications from cfg80211 to user space:
>           - NL80211_CMD_MAPC_NEGOTIATION_TRIGGER
>             Direction: kernel to user space.
>             Source: cfg80211 on behalf of the WLAN driver/firmware.
>             Purpose: Provide a hint to hostapd that MAPC Negotiation
>             Request should be triggered on this interface. For each 
>             MAPC scheme, the driver/firmware may request establishment,
>             update, or teardown of an agreement. hostapd is expected
>             to apply policy and iterate over the locally known MAPC
>             peers for this interface.
> 
>             Attributes:
>             - NL80211_ATTR_MAPC_SCHEMES (nested)
>               Contains one or more per-scheme MAPC negotiation hints. Each
>               nested entry includes:
>               - NL80211_ATTR_MAPC_SCHEME_TYPE
>                 Identifies the MAPC scheme (e.g., Co-BF, Co-SR, Co-TDMA,
> 				Co-RTWT, Co-CR).
>               - NL80211_ATTR_MAPC_ACTION
>                 Requested negotiation action for this scheme:
>                 - NL80211_MAPC_ACTION_ESTABLISH: establish new agreement(s).
>                 - NL80211_MAPC_ACTION_UPDATE: update existing agreement(s).
>                 - NL80211_MAPC_ACTION_TEARDOWN: teardown existing agreement(s).

Why do you always want to let firmware be in control of everything?
Seems at least for some of this you'd really want the upper layers to
control it for purposes of coordination? How does the FW even know which
other AP it can coordinate with, isn't that something a network
controller would determine?

>       (C) mac80211
>           Two design options are considered for representing MAPC peers in
>           mac80211:
> 
>           Option-A(Preferred): Reuse existing station management infra
>           - Allocate standard station objects (struct sta_info / struct
>             ieee80211_sta) to represent MAPC peers, and call the WLAN driver.
>           - Use a subset of the existing mac80211 station states (NOTEXIST,
>             NONE, AUTH) to represent a MAPC stations.

I'd say AUTH doesn't work, for purposes of key management etc. you
really want this to be in AUTHORIZED state.

>           Option-B: Define lightweight MAPC peer/station management
>           infra

But that doesn't seem better either really.

johannes



More information about the ath12k mailing list