[RFC1/2] 11ac changes - VHT IEs in beacons

Jouni Malinen j
Sat Jun 9 02:19:07 PDT 2012


On Mon, Jun 04, 2012 at 07:13:16AM +0000, Mahesh Palivela wrote:
> I had modified hostapd code to include VHT IEs as part of 11ac changes.
> Please review and let me know your comments.
> 
> Signed of by: Mahesh Palivela

Please read the CONTRIBUTIONS file (*) and use the Signed-hostap: line
with correct format.

(*)
http://w1.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=CONTRIBUTIONS


>  src/drivers/driver_nl80211.c |   12 ++++
>  src/drivers/nl80211_copy.h   |    6 ++

I cannot take changes to nl80211_copy.h before they have been included
in the wireless-testing.git include/linux/nl80211.h. If you want to get
the other parts of the 802.11ac changes into hostapd first, it could be
useful to split the patch into two pieces and leave these nl80211
changes waiting for the kernel changes to get approved.

> diff --git a/hostapd/Makefile b/hostapd/Makefile
> @@ -173,6 +173,10 @@ ifdef CONFIG_WNM
>  CFLAGS += -DCONFIG_WNM
>  endif
>  
> +ifdef CONFIG_IEEE80211AC
> +CFLAGS += -DCONFIG_IEEE80211AC
> +endif

This could be in the same ifdef block with the change below to keep
related entries next to each other.

> @@ -757,6 +761,10 @@ ifdef CONFIG_IEEE80211N
>  OBJS += ../src/ap/ieee802_11_ht.o
>  endif
>  
> +ifdef CONFIG_IEEE80211AC
> +OBJS += ../src/ap/ieee802_11_vht.o
> +endif

This new file is added in a separate patch which would result in build
failure if this were to be applied first.. Please add the new file and
the Makefile entry in the same patch.

> diff --git a/hostapd/hostapd.conf b/hostapd/hostapd.conf
> @@ -99,13 +99,13 @@ ssid=test
> -hw_mode=g
> +hw_mode=a

> -channel=1
> +channel=36

Please don't change these values.

> @@ -416,6 +416,133 @@ wmm_ac_vo_acm=0
> +# ieee80211ac: Whether IEEE 802.11ac (VHT) is enabled
> +# 0 = disabled (default)
> +# 1 = enabled
> +# Note: You will also need to enable WMM for full VHT functionality.
> +ieee80211ac=1

This should be commented out by default in the example configuration
file.

> +# vht_capab: VHT capabilities (list of flags)
> +#
> +# maxMpduLength: [MAX-MPDU-7991] [MAX-MPDU-11454]
> +# Indicates maximum MPDU length
> +# 0 = 3895 octets (default)
> +# 1 = 7991 octets
> +# 2 = 11454 octets
> +# 3 = reserved
...

While this style is used with ht_capab, I'm not sure where this is
really the most convenient way for managing the configuration file.. As
such, separate items like vht_max_mpdu_len here could be more
convenient.

> +# 0 = 160Mhz & 80+80 channel widths are not supported (default)

"160Mhz" --> "160 MHz"

> +vht_capab=[SHORT-GI-80][HTC-VHT]
> +vht_oper_chwidth=1

These needs to be commented out by default.

> diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h
> @@ -359,6 +359,7 @@ struct hostapd_bss_config {
>  	int tdls;
>  	int disable_11n;
> +    int disable_11ac;

Please use consistent indentation (one tab instead of four spaces).

> diff --git a/src/ap/beacon.c b/src/ap/beacon.c
> @@ -253,6 +253,11 @@ static u8 * hostapd_gen_probe_resp(struct hostapd_data *hapd,
>  	pos = hostapd_eid_ht_operation(hapd, pos);
>  #endif /* CONFIG_IEEE80211N */
>  
> +#ifdef CONFIG_IEEE80211AC
> +	pos = hostapd_eid_vht_capabilities(hapd, pos);
> +	pos = hostapd_eid_vht_operation(hapd, pos);
> +#endif /* CONFIG_IEEE80211AC */
> +
>  	pos = hostapd_eid_ext_capab(hapd, pos);

The VHT elements are not in the correct location - they should be after
all the non-vendor specific elements in the current implementation
(i.e., after hostapd_eid_roaming_consortium).

> @@ -583,6 +588,11 @@ void ieee802_11_set_beacon(struct hostapd_data *hapd)
>  	tailpos = hostapd_eid_ht_operation(hapd, tailpos);
>  #endif /* CONFIG_IEEE80211N */
>  
> +#ifdef CONFIG_IEEE80211AC
> +	tailpos = hostapd_eid_vht_capabilities(hapd, tailpos);
> +	tailpos = hostapd_eid_vht_operation(hapd, tailpos);
> +#endif /* CONFIG_IEEE80211AC */
> +
>  	tailpos = hostapd_eid_ext_capab(hapd, tailpos);

Same here for Beacon frame.

> diff --git a/src/common/ieee802_11_defs.h b/src/common/ieee802_11_defs.h
> @@ -238,6 +238,15 @@
> +#define WLAN_EID_VHT_EXTENDED_POWER_CONSTRAINT 196

That does not match with P802.11ac/D3.0 (196 = Channel Switch Wrapper).

> @@ -550,6 +559,24 @@ struct ieee80211_ht_operation {
> +struct ieee80211_vht_tx_power_envelope {
> +    u8 vht_max_tx_power;
> +    u8 vht_chan_center_freq_segment;
> +    u8 vht_segment_chan_width;
> +} STRUCT_PACKED;

This does not match with P802.11ac/D3.0.

-- 
Jouni Malinen                                            PGP id EFC895FA



More information about the Hostap mailing list