On 5/21/2025 3:22 PM, Johannes Berg wrote: > On Wed, 2025-05-21 at 15:03 +0530, Roopni Devanathan wrote: >>> >>> The internal "all radios" (and otherwise invalid) value is _never_ part >>> of the API. Quoting myself: >>> >>>> In the userspace API we have an attribute that can be in [0, n_radios-1] >>>> or unspecified if no specific radio is intended, which is how it'll work >>>> with existing userspace anyway. >>> >>> So no, regardless of the value (and I still think -1 is better), this >>> define simply doesn't belong to the nl80211 API. >>> >> I am not sure where to define NL80211_WIPHY_RADIO_ID_DEFAULT other than in nl80211. >> Can you point out to your expectation? > > There are different APIs involved, right? Externally, nl80211, which > doesn't know about this. Internally, cfg80211 and mac80211, though it > stands to reason that since they're necessarily layered, mac80211 API > can (and does) use cfg80211 definitions a lot - but of course not the > other way around. > > I'm not even sure we really _need_ such a define, we probably have a lot > of places that just hardcode -1 (e.g. invalid link), but if you want > one, given the above, it would live in cfg80211, right? > Okay, understood. If I can directly assign -1 as default value to radio_id, then I can cut down this definition entirely. I can re-write radio_id declaration in nl80211_set_wiphy() as: s8 radio_id = -1; instead of u8 radio_id = NL80211_WIPHY_RADIO_ID_DEFAULT; This will solve the whole problem. Is that alright? > johannes