freebsd-dev/etc/rc.d
Gleb Smirnoff 79d2c5e857 Change KPI of how device drivers that provide wireless connectivity interact
with the net80211 stack.

Historical background: originally wireless devices created an interface,
just like Ethernet devices do. Name of an interface matched the name of
the driver that created. Later, wlan(4) layer was introduced, and the
wlanX interfaces become the actual interface, leaving original ones as
"a parent interface" of wlanX. Kernelwise, the KPI between net80211 layer
and a driver became a mix of methods that pass a pointer to struct ifnet
as identifier and methods that pass pointer to struct ieee80211com. From
user point of view, the parent interface just hangs on in the ifconfig
list, and user can't do anything useful with it.

Now, the struct ifnet goes away. The struct ieee80211com is the only
KPI between a device driver and net80211. Details:

- The struct ieee80211com is embedded into drivers softc.
- Packets are sent via new ic_transmit method, which is very much like
  the previous if_transmit.
- Bringing parent up/down is done via new ic_parent method, which notifies
  driver about any changes: number of wlan(4) interfaces, number of them
  in promisc or allmulti state.
- Device specific ioctls (if any) are received on new ic_ioctl method.
- Packets/errors accounting are done by the stack. In certain cases, when
  driver experiences errors and can not attribute them to any specific
  interface, driver updates ic_oerrors or ic_ierrors counters.

Details on interface configuration with new world order:
- A sequence of commands needed to bring up wireless DOESN"T change.
- /etc/rc.conf parameters DON'T change.
- List of devices that can be used to create wlan(4) interfaces is
  now provided by net.wlan.devices sysctl.

Most drivers in this change were converted by me, except of wpi(4),
that was done by Andriy Voskoboinyk. Big thanks to Kevin Lo for testing
changes to at least 8 drivers. Thanks to Olivier Cochard, gjb@, mmoll@,
op@ and lev@, who also participated in testing. Details here:

https://wiki.freebsd.org/projects/ifnet/net80211

Still, drivers: ndis, wtap, mwl, ipw, bwn, wi, upgt, uath were not
tested. Changes to mwl, ipw, bwn, wi, upgt are trivial and chances
of problems are low. The wtap wasn't compilable even before this change.
But the ndis driver is complex, and it is likely to be broken with this
commit. Help with testing and debugging it is appreciated.

Differential Revision:	D2655, D2740
Sponsored by:	Nginx, Inc.
Sponsored by:	Netflix
2015-08-07 11:43:14 +00:00
..
abi
accounting
addswap
adjkerntz Get rid of the postrandom script. It was born in a time when the 2014-11-02 01:47:27 +00:00
amd
apm
apmd
archdep
atm1
atm2
atm3
auditd
auditdistd
automount Make it possible to specify flags for autofs daemons in rc.conf. 2014-11-24 13:02:39 +00:00
automountd Bring in the new automounter, similar to what's provided in most other 2014-08-17 09:44:42 +00:00
autounmountd Bring in the new automounter, similar to what's provided in most other 2014-08-17 09:44:42 +00:00
bgfsck s/-/_/ in name. 2014-10-12 22:11:28 +00:00
bluetooth
bootparams
bridge Fill in MK_ACPI, (MK_ACPI && MK_APM), MK_INET6, MK_PPP, and MK_ROUTED 2014-11-30 06:08:22 +00:00
bsnmpd
bthidd
casperd Start-up script for casperd daemon. 2013-12-16 11:03:59 +00:00
ccd
cleanvar
cleartmp
cron
ctld
DAEMON
ddb
defaultroute Fill in MK_ACPI, (MK_ACPI && MK_APM), MK_INET6, MK_PPP, and MK_ROUTED 2014-11-30 06:08:22 +00:00
devd Require "ldconfig" for "devd". It is possible that user puts into 2015-04-28 13:13:23 +00:00
devfs
dhclient
dmesg
dumpon Rework rc.d requirements so zfs and zvol come before relevant services so they 2014-11-30 00:21:06 +00:00
FILESYSTEMS Rework rc.d requirements so zfs and zvol come before relevant services so they 2014-11-30 00:21:06 +00:00
fsck
ftp-proxy
ftpd
gbde
geli rc.d/geli should not depend on random, as the attach functionality 2014-10-31 22:20:27 +00:00
geli2
gptboot
growfs remove comment about the bug... I don't remeber what it was... 2014-11-06 07:27:14 +00:00
gssd Fill in MK_ACPI, (MK_ACPI && MK_APM), MK_INET6, MK_PPP, and MK_ROUTED 2014-11-30 06:08:22 +00:00
hastd
hcsecd
hostapd
hostid Revert r282672. 2015-05-11 00:16:32 +00:00
hostid_save Verify if the saved hostid is still the same and update if 2015-04-15 21:48:06 +00:00
hostname
inetd
iovctl Use correct flag in iovctl_start(). 2015-06-27 18:01:50 +00:00
ip6addrctl Use ipv6_prefer when at least one ifconfig_IF_ipv6 is configured. 2014-08-30 07:08:10 +00:00
ipfilter ipfilter 5.1.2 (vs 4.1.28 in previous releases of FreeBSD) stores IPv4 2015-01-28 21:01:55 +00:00
ipfs
ipfw Fill in MK_ACPI, (MK_ACPI && MK_APM), MK_INET6, MK_PPP, and MK_ROUTED 2014-11-30 06:08:22 +00:00
ipmon Remove duplicate FILESYSTEMS REQUIRE 2014-11-30 10:01:47 +00:00
ipnat
ipropd_master Restructure rc.d scripts for kerberos5 daemons: 2014-08-29 07:51:47 +00:00
ipropd_slave Fix a typo; master server for iprop service should be singular. 2014-09-16 05:45:38 +00:00
ipsec
iscsictl
iscsid
jail Un-revert the r278323 again - whatever Jenkins/kyua is up it, it has 2015-02-10 00:48:51 +00:00
kadmind Restructure rc.d scripts for kerberos5 daemons: 2014-08-29 07:51:47 +00:00
kdc Make kdc run before SERVERS so kdc can be decoupled from the build 2014-11-30 00:03:27 +00:00
keyserv
kfd Restructure rc.d scripts for kerberos5 daemons: 2014-08-29 07:51:47 +00:00
kld
kldxref
kpasswdd Restructure rc.d scripts for kerberos5 daemons: 2014-08-29 07:51:47 +00:00
ldconfig
local
local_unbound Adjust default argument construction for -c to be getopt compliant for 2015-05-22 21:33:13 +00:00
localpkg
lockd Move nfsd requirement in lockd/statd to BEFORE: stanza in nfsd so the nfs 2014-11-30 02:27:37 +00:00
LOGIN Unbreak rcorder when MK_UTX == no by moving utx from REQUIRE: in LOGIN to 2015-02-13 20:52:23 +00:00
lpd
Makefile Move all test integration pieces for etc/ from etc/ to tests/ 2015-05-18 11:02:43 +00:00
mdconfig Loosen the processing of *_IF_aliasN vars to be less strict. Previously, 2014-04-07 22:40:29 +00:00
mdconfig2 Loosen the processing of *_IF_aliasN vars to be less strict. Previously, 2014-04-07 22:40:29 +00:00
mixer
motd
mountcritlocal
mountcritremote
mountd Remove some oldnfs remnants. 2015-04-18 16:08:06 +00:00
mountlate
moused
mroute6d
msgs
natd
netif Change KPI of how device drivers that provide wireless connectivity interact 2015-08-07 11:43:14 +00:00
netoptions
netwait
NETWORKING Unbreak rcorder when MK_UNBOUND == no by moving local_unbound from REQUIRE: 2015-02-13 20:49:43 +00:00
newsyslog
nfscbd
nfsclient
nfsd Remove some oldnfs remnants. 2015-04-18 16:08:06 +00:00
nfsuserd
nisdomain
nscd
nsswitch Fill in MK_ACPI, (MK_ACPI && MK_APM), MK_INET6, MK_PPP, and MK_ROUTED 2014-11-30 06:08:22 +00:00
ntpd
ntpdate Make ntpdate run before rpcbind to allow ntpdate to be decoupled from the build 2014-11-29 23:59:51 +00:00
opensm
othermta
pf
pflog Typo fix in comment 2015-04-06 19:23:45 +00:00
pfsync
power_profile
powerd
ppp Fill in MK_ACPI, (MK_ACPI && MK_APM), MK_INET6, MK_PPP, and MK_ROUTED 2014-11-30 06:08:22 +00:00
pppoed
pwcheck
quota
random Address review. 2015-07-08 18:46:44 +00:00
rarpd
rctl Make rctl_enable rc variable actually work. To avoid breaking existing 2015-08-05 17:38:02 +00:00
resolv Fill in MK_ACPI, (MK_ACPI && MK_APM), MK_INET6, MK_PPP, and MK_ROUTED 2014-11-30 06:08:22 +00:00
rfcomm_pppd_server
root
route6d Fill in MK_ACPI, (MK_ACPI && MK_APM), MK_INET6, MK_PPP, and MK_ROUTED 2014-11-30 06:08:22 +00:00
routed Fill in MK_ACPI, (MK_ACPI && MK_APM), MK_INET6, MK_PPP, and MK_ROUTED 2014-11-30 06:08:22 +00:00
routing Don't add static IPv6 routes when to all FIBs when net.add_addr_allfibs is 0. 2015-02-06 00:02:00 +00:00
rpcbind Make ntpdate run before rpcbind to allow ntpdate to be decoupled from the build 2014-11-29 23:59:51 +00:00
rtadvd
rtsold
rwho
savecore
sdpd
securelevel
sendmail
serial
SERVERS Make kdc run before SERVERS so kdc can be decoupled from the build 2014-11-30 00:03:27 +00:00
sppp
sshd Upgrade to OpenSSH 6.5p1. 2014-01-31 13:12:02 +00:00
statd Move nfsd requirement in lockd/statd to BEFORE: stanza in nfsd so the nfs 2014-11-30 02:27:37 +00:00
static_arp Fill in MK_ACPI, (MK_ACPI && MK_APM), MK_INET6, MK_PPP, and MK_ROUTED 2014-11-30 06:08:22 +00:00
static_ndp Fill in MK_ACPI, (MK_ACPI && MK_APM), MK_INET6, MK_PPP, and MK_ROUTED 2014-11-30 06:08:22 +00:00
stf Fill in MK_ACPI, (MK_ACPI && MK_APM), MK_INET6, MK_PPP, and MK_ROUTED 2014-11-30 06:08:22 +00:00
swap
swaplate
syscons use tab instead of spaces like the rest of the file.. 2014-11-03 19:23:49 +00:00
sysctl Do not exit with non-zero return code if sysctl.conf or sysctl.conf.local files 2014-01-21 18:57:49 +00:00
syslogd Do not try to create a /dev/log symlink in a jail. 2014-11-03 00:37:39 +00:00
timed
tmp
ubthidhci
ugidfw
utx Unbreak rcorder when MK_UTX == no by moving utx from REQUIRE: in LOGIN to 2015-02-13 20:52:23 +00:00
var Rework rc.d requirements so zfs and zvol come before relevant services so they 2014-11-30 00:21:06 +00:00
virecover
watchdogd when watchdogd is asked to exit nicely (via SIGTERM) it will 2014-04-16 22:26:42 +00:00
wpa_supplicant
ypbind
yppasswdd
ypserv
ypset
ypupdated
ypxfrd
zfs Rework rc.d requirements so zfs and zvol come before relevant services so they 2014-11-30 00:21:06 +00:00
zvol Rework rc.d requirements so zfs and zvol come before relevant services so they 2014-11-30 00:21:06 +00:00