On 11.09.24 17:25, Johannes Berg wrote:
On Wed, 2024-09-11 at 20:51 +0530, Karthikeyan Periyasamy wrote:
ieee80211_link_reserve_chanctx() calls
ieee80211_can_create_new_chanctx() with radio_idx (-1) to calculate the
max channel (ieee80211_max_num_channels) after the iface combination
check (cfg80211_iter_combinations) passed for the global iface
combination. Here the expectation is number of channel context is less
than the number of different channel. So in multi-radio advertisement,
each radio support atleast one channel, so totally multiple different
channels advertised in the global iface combination to pass this
ieee80211_max_num_channels().
So maybe that's broken then, I dunno. You should figure it out with
Felix I guess.
The intent was, and clearly it has to be, that the global combinations
are something that can be handled regardless of radio information, to be
backward compatible with existing uses. Therefore, it cannot be
something where you say two channels and radar detection on both because
that would imply being able to use channels 36 and 40 with 20 MHz at the
same time with radar detection, which isn't actually possible.
In this case, the "two channels" is only possible with also two radios,
which has to rely on the per-radio advertisement, and the global one has
to be just one channel for radar detection.
We still need the part of the patch that calls the validation on each
radio, but it shouldn't be different from the global one. If you could
make that patch I'd appreciate it.
It's implemented the way we discussed it back when this topic came up.
Legacy user space gets the ifcomb data from the first radio for
compatibility. The actual global ifcomb data is reported in a new attribute.
- Felix