Gleb/others doing this: you have 4 days to figure out what's wrong
with things, or I'm backing all of this work out.



On 7 August 2015 at 08:52, O. Hartmann <ohart...@zedat.fu-berlin.de> wrote:
> Am Thu, 6 Aug 2015 18:13:55 +0300
> Gleb Smirnoff <gleb...@freebsd.org> schrieb:
>>   Hi!
>>   As part of the "opaque ifnet project" [1], all 802.11 (WiFi) drivers
>> undergo change of not being an interface anymore. Historically in FreeBSD
>> 802.11 stack, 802.11 devices called if_attach() and created an interface.
>> Later this was generalized and real functioning interface is created by
>> net80211 stack. However, remnant of parent interface remained. If you
>> are running Intel Centrino wireless, then you got iwn0 interface and
>> wlan0 interface. However, the former doesn't do anything. You can't
>> assign addresses to it or modify any of it parameters. Or you can
>> modify them, but that affects nothing.
>> This superfluous ifnet on the list entangles the net80211 stack and
>> also is on the way of [1]. So, decision was made to remove it. I
>> already did preparatory commits back in May, and now it is time to
>> finish that.
>> The patch is:
>> https://reviews.freebsd.org/D2655
>> And the Wiki page for it is:
>> https://wiki.freebsd.org/projects/ifnet/net80211
>> The patch modifies every driver, and diff is bulky. However, changes
>> are mechanical and simple, most drivers appeared to work after first
>> run. Most converted drivers are tested to work.
>> This is list of drivers that are not tested, due to lack of testers:
>>       mwl, ipw, bwn, wi, upgt, uath.
>> But, as said, changes are mechanical and probability is 95% that
>> they will work.
>> The only complex one is ndis(4). It could be broken by conversion.
>> Since I already got a tester volunteer, I will fix it quickly if
>> anything happens.
>> Another untrivial one is wtap(4), which is not connected to the
>> build and appeared to be broken even before conversion. Anyway,
>> I made it compilable.
>> Now, for the configuration. The sequence of commands you need
>> to run to configure a WiFi interface doesn't change. As before
>> it is:
>> ifconfig wlan0 create wlandev iwn0
>> ifconfig wlan0 $foo
>> Your rc.conf doesn't need any changes. As before:
>> wlans_iwn0="wlan0"
>> ifconfig_wlan0="DHCP WPA"
>> However, iwn0 disappeared from the 'ifconfig -l'. It is still
>> in devinfo, or in dmesg. For the sake of installers or other
>> configuration software, a sysctl is provided:
>> net.wlan.devices: iwn0
>> The /etc subsystem needs to be tweaked. Previously the wlan(4)
>> interfaces were created in childif_create(), and the script
>> did check for presence of parent interface. In my patch I
>> provided wlans_up(), that doesn't check. The code in D2655
>> now works correctly both on patched and on unpatched kernel.
>> Alternatively, I could tweak childif_create() to use net.wlan.devices
>> instead of 'ifconfig -l'. Or, to use them both, to work on older
>> and on newer kernels?
>> I am not sure which path with /etc is better, so seeking for
>> help with that.
> After updating to FreeBSD 11.0-CURRENT #0 r286415: Fri Aug  7 17:22:43 CEST 
> 2015 amd64,
> several APs won't startup anymore:
> [...]
> Starting hostapd.
> Configuration file: /etc/hostapd.conf
> bsd_set_if_media: SIOCSIFMEDIA Device not configured
> bsd_init: failed to set operation mode
> bsd driver initialization failed.
> wlan0: interface state UNINITIALIZED->DISABLED
> wlan0: AP-DISABLED
> hostapd_free_hapd_data: Interface wlan0 wasn't started
> ELOOP: remaining socket: sock=5 eloop_data=0x801c47100 user_data=0x0 
> handler=0x41a0e0
> /etc/rc.d/hostapd: WARNING: failed to start hostapd
freebsd-current@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to