Regulatory Domain Support

(NOTE: This section is a work in progress.)


FreeBSD's net80211 stack has basic regulatory domain support, enforcing restrictions on frequency, operating modes, transmission power and general behaviour.

The regulatory domain database is in an XML file - /etc/regdomain.xml. This is used by ifconfig(8) to view and manipulate regulatory domain settings.

Some drivers (eg if_ath(9)) impose further restrictions. This may include limits on transmission power due to number of physical radios in a MIMO setup, channel, channel edges and transmission rate. The former may be regulatory related, but per-transmission rate limits are a hardware limitation - exceeding these will cause distortion and hardware damage.

Country codes and SKUs


Regulatory Entries

SKUs and Country entries contain multiple regulatory entries. Each regulatory entry contains:

There are also a set of flags describing the operational parameters:

There may be multiple regulatory entries with the same frequency but differing channel widths and operational flags. The regulatory support code searches the list of frequencies for the first match on both frequency range and operational flags.

There are then a set of regulatory parameters for the given regulatory entry:

And also, a set of flags which control behaviour:


To view the current list of regulatory domains and SKUs:

 # ifconfig wlan0 list countries 

To set the current country:

 # ifconfig wlan0 country <countryname> 

Please note the country name is not the ISO country code but is the full country specification from list countries. For example, country AU will not set Australia, but will set Austria.

To view the current regulatory domain frequency and operating modes:

 # ifconfig wlan0 list regdomain 

To view the current limits on per-channel TX power:

 # ifconfig wlan0 list txpower 

See Also

WiFi/RegulatoryDomainSupport (last edited 2018-04-05T23:25:25+0000 by MateuszPiotrowski)