EHT: Add operating channel width configuration
Add new configuration options to configure EHT operating channel width and center frequency. Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com> Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
This commit is contained in:
parent
8dcc2139ff
commit
8db3881c76
4 changed files with 46 additions and 0 deletions
|
@ -4701,6 +4701,10 @@ static int hostapd_config_fill(struct hostapd_config *conf,
|
||||||
#ifdef CONFIG_IEEE80211BE
|
#ifdef CONFIG_IEEE80211BE
|
||||||
} else if (os_strcmp(buf, "ieee80211be") == 0) {
|
} else if (os_strcmp(buf, "ieee80211be") == 0) {
|
||||||
conf->ieee80211be = atoi(pos);
|
conf->ieee80211be = atoi(pos);
|
||||||
|
} else if (os_strcmp(buf, "eht_oper_chwidth") == 0) {
|
||||||
|
conf->eht_oper_chwidth = atoi(pos);
|
||||||
|
} else if (os_strcmp(buf, "eht_oper_centr_freq_seg0_idx") == 0) {
|
||||||
|
conf->eht_oper_centr_freq_seg0_idx = atoi(pos);
|
||||||
#endif /* CONFIG_IEEE80211BE */
|
#endif /* CONFIG_IEEE80211BE */
|
||||||
} else {
|
} else {
|
||||||
wpa_printf(MSG_ERROR,
|
wpa_printf(MSG_ERROR,
|
||||||
|
|
|
@ -1000,6 +1000,15 @@ wmm_ac_vo_acm=0
|
||||||
#disable_11be: Boolean (0/1) to disable EHT for a specific BSS
|
#disable_11be: Boolean (0/1) to disable EHT for a specific BSS
|
||||||
#disable_11be=0
|
#disable_11be=0
|
||||||
|
|
||||||
|
# EHT operating channel information; see matching he_* parameters for details.
|
||||||
|
# The field eht_oper_centr_freq_seg0_idx field is used to indicate center
|
||||||
|
# frequency of 40, 80, and 160 MHz bandwidth operation.
|
||||||
|
# In the 6 GHz band, eht_oper_chwidth is ignored and the channel width is
|
||||||
|
# derived from the configured operating class (IEEE P802.11be/D1.5,
|
||||||
|
# Annex E.1 - Country information and operating classes).
|
||||||
|
#eht_oper_chwidth
|
||||||
|
#eht_oper_centr_freq_seg0_idx
|
||||||
|
|
||||||
##### IEEE 802.1X-2004 related configuration ##################################
|
##### IEEE 802.1X-2004 related configuration ##################################
|
||||||
|
|
||||||
# Require IEEE 802.1X authorization
|
# Require IEEE 802.1X authorization
|
||||||
|
|
|
@ -1117,11 +1117,19 @@ struct hostapd_config {
|
||||||
#endif /* CONFIG_AIRTIME_POLICY */
|
#endif /* CONFIG_AIRTIME_POLICY */
|
||||||
|
|
||||||
int ieee80211be;
|
int ieee80211be;
|
||||||
|
#ifdef CONFIG_IEEE80211BE
|
||||||
|
u8 eht_oper_chwidth;
|
||||||
|
u8 eht_oper_centr_freq_seg0_idx;
|
||||||
|
#endif /* CONFIG_IEEE80211BE */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static inline u8 hostapd_get_oper_chwidth(struct hostapd_config *conf)
|
static inline u8 hostapd_get_oper_chwidth(struct hostapd_config *conf)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_IEEE80211BE
|
||||||
|
if (conf->ieee80211be)
|
||||||
|
return conf->eht_oper_chwidth;
|
||||||
|
#endif /* CONFIG_IEEE80211BE */
|
||||||
#ifdef CONFIG_IEEE80211AX
|
#ifdef CONFIG_IEEE80211AX
|
||||||
if (conf->ieee80211ax)
|
if (conf->ieee80211ax)
|
||||||
return conf->he_oper_chwidth;
|
return conf->he_oper_chwidth;
|
||||||
|
@ -1132,6 +1140,10 @@ static inline u8 hostapd_get_oper_chwidth(struct hostapd_config *conf)
|
||||||
static inline void
|
static inline void
|
||||||
hostapd_set_oper_chwidth(struct hostapd_config *conf, u8 oper_chwidth)
|
hostapd_set_oper_chwidth(struct hostapd_config *conf, u8 oper_chwidth)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_IEEE80211BE
|
||||||
|
if (conf->ieee80211be)
|
||||||
|
conf->eht_oper_chwidth = oper_chwidth;
|
||||||
|
#endif /* CONFIG_IEEE80211BE */
|
||||||
#ifdef CONFIG_IEEE80211AX
|
#ifdef CONFIG_IEEE80211AX
|
||||||
if (conf->ieee80211ax)
|
if (conf->ieee80211ax)
|
||||||
conf->he_oper_chwidth = oper_chwidth;
|
conf->he_oper_chwidth = oper_chwidth;
|
||||||
|
@ -1142,6 +1154,10 @@ hostapd_set_oper_chwidth(struct hostapd_config *conf, u8 oper_chwidth)
|
||||||
static inline u8
|
static inline u8
|
||||||
hostapd_get_oper_centr_freq_seg0_idx(struct hostapd_config *conf)
|
hostapd_get_oper_centr_freq_seg0_idx(struct hostapd_config *conf)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_IEEE80211BE
|
||||||
|
if (conf->ieee80211be)
|
||||||
|
return conf->eht_oper_centr_freq_seg0_idx;
|
||||||
|
#endif /* CONFIG_IEEE80211BE */
|
||||||
#ifdef CONFIG_IEEE80211AX
|
#ifdef CONFIG_IEEE80211AX
|
||||||
if (conf->ieee80211ax)
|
if (conf->ieee80211ax)
|
||||||
return conf->he_oper_centr_freq_seg0_idx;
|
return conf->he_oper_centr_freq_seg0_idx;
|
||||||
|
@ -1153,6 +1169,10 @@ static inline void
|
||||||
hostapd_set_oper_centr_freq_seg0_idx(struct hostapd_config *conf,
|
hostapd_set_oper_centr_freq_seg0_idx(struct hostapd_config *conf,
|
||||||
u8 oper_centr_freq_seg0_idx)
|
u8 oper_centr_freq_seg0_idx)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_IEEE80211BE
|
||||||
|
if (conf->ieee80211be)
|
||||||
|
conf->eht_oper_centr_freq_seg0_idx = oper_centr_freq_seg0_idx;
|
||||||
|
#endif /* CONFIG_IEEE80211BE */
|
||||||
#ifdef CONFIG_IEEE80211AX
|
#ifdef CONFIG_IEEE80211AX
|
||||||
if (conf->ieee80211ax)
|
if (conf->ieee80211ax)
|
||||||
conf->he_oper_centr_freq_seg0_idx = oper_centr_freq_seg0_idx;
|
conf->he_oper_centr_freq_seg0_idx = oper_centr_freq_seg0_idx;
|
||||||
|
|
|
@ -765,6 +765,19 @@ int hostapd_ctrl_iface_status(struct hostapd_data *hapd, char *buf,
|
||||||
return len;
|
return len;
|
||||||
len += ret;
|
len += ret;
|
||||||
|
|
||||||
|
#ifdef CONFIG_IEEE80211BE
|
||||||
|
if (iface->conf->ieee80211be && !hapd->conf->disable_11be) {
|
||||||
|
ret = os_snprintf(buf + len, buflen - len,
|
||||||
|
"eht_oper_chwidth=%d\n"
|
||||||
|
"eht_oper_centr_freq_seg0_idx=%d\n",
|
||||||
|
iface->conf->eht_oper_chwidth,
|
||||||
|
iface->conf->eht_oper_centr_freq_seg0_idx);
|
||||||
|
if (os_snprintf_error(buflen - len, ret))
|
||||||
|
return len;
|
||||||
|
len += ret;
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_IEEE80211BE */
|
||||||
|
|
||||||
#ifdef CONFIG_IEEE80211AX
|
#ifdef CONFIG_IEEE80211AX
|
||||||
if (iface->conf->ieee80211ax && !hapd->conf->disable_11ax) {
|
if (iface->conf->ieee80211ax && !hapd->conf->disable_11ax) {
|
||||||
ret = os_snprintf(buf + len, buflen - len,
|
ret = os_snprintf(buf + len, buflen - len,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue