[Bug 274156] ic->ic_vhtcaps check in ieee80211_setupcurchan

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 29 Sep 2023 12:45:26 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274156

            Bug ID: 274156
           Summary: ic->ic_vhtcaps check in ieee80211_setupcurchan
           Product: Base System
           Version: 13.2-RELEASE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: wireless
          Assignee: wireless@FreeBSD.org
          Reporter: misha@freebsd.org

https://github.com/freebsd/freebsd-src/blob/main/sys/net80211/ieee80211_node.c#L807

this code checks ic->ic_vhtcaps and proceeds only if it's non-zero, but I
wasn't able to find any mandatory non-zero vht caps, which must be always
present, IEEE80211_VHTCAP_MAX_MPDU_LENGTH_3895, which is the "default" is zero
itself and doesn't influence the variable

this means that if a driver doesn't set the variable to at least something
non-zero (for example non-default ampdu) - it will never get connected with
11ac, although it can be capable of doing it

code snippet:

        /*
         * VHT promotion - this will at least promote to VHT20/40
         * based on what HT has done; it may further promote the
         * channel to VHT80 or above.
         */
        if (ic->ic_vhtcaps != 0) {
                int flags = getvhtadjustflags(ic);
                if (flags > ieee80211_vhtchanflags(c))
                        c = ieee80211_vht_adjust_channel(ic, c, flags);
        }

-- 
You are receiving this mail because:
You are the assignee for the bug.