/* * Verify the chanspec is using a legal set of parameters, i.e. that the * chanspec specified a band, bw, ctl_sb and channel and that the * combination could be legal given any set of circumstances. * RETURNS: TRUE is the chanspec is malformed, false if it looks good. */ bool wf_chspec_malformed(chanspec_t chanspec) { /* must be 2G or 5G band */ if (!CHSPEC_IS5G(chanspec) && !CHSPEC_IS2G(chanspec)) return TRUE; /* must be 20 or 40 bandwidth */ if (!CHSPEC_IS40(chanspec) && !CHSPEC_IS20(chanspec)) return TRUE; /* 20MHZ b/w must have no ctl sb, 40 must have a ctl sb */ if (CHSPEC_IS20(chanspec)) { if (!CHSPEC_SB_NONE(chanspec)) return TRUE; } else { if (!CHSPEC_SB_UPPER(chanspec) && !CHSPEC_SB_LOWER(chanspec)) return TRUE; } return FALSE; }
bool wf_chspec_malformed(chanspec_t chanspec) { if (!CHSPEC_IS5G(chanspec) && !CHSPEC_IS2G(chanspec)) return TRUE; if (!CHSPEC_IS40(chanspec) && !CHSPEC_IS20(chanspec)) return TRUE; if (CHSPEC_IS20(chanspec)) { if (!CHSPEC_SB_NONE(chanspec)) return TRUE; } else { if (!CHSPEC_SB_UPPER(chanspec) && !CHSPEC_SB_LOWER(chanspec)) return TRUE; } return FALSE; }
bool wf_chspec_malformed(chanspec_t chanspec) { DHD_MYTRACE(("%s-%s\n", __FILE__, __FUNCTION__)); if (!CHSPEC_IS5G(chanspec) && !CHSPEC_IS2G(chanspec)) return TRUE; if (!CHSPEC_IS40(chanspec) && !CHSPEC_IS20(chanspec)) return TRUE; if (CHSPEC_IS20_UNCOND(chanspec)) { if (!CHSPEC_SB_NONE(chanspec)) return TRUE; } else { if (!CHSPEC_SB_UPPER(chanspec) && !CHSPEC_SB_LOWER(chanspec)) return TRUE; } return FALSE; }