freebsd-skq/etc/rc.d
glebius eb8a90b859 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 - Don't log messages saying that accounting is being disabled and enabled 2012-05-02 14:25:39 +00:00
addswap - Add vnode-backed swap space specification support. This is enabled when 2013-06-27 18:28:45 +00:00
adjkerntz Get rid of the postrandom script. It was born in a time when the 2014-11-02 01:47:27 +00:00
amd Simply things so that "#REQUIRE: FILESYSTEMS" means the file 2012-09-11 05:04:59 +00:00
apm Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
apmd Fix various issues with the NFS and RPC related scripts: 2012-02-14 10:51:24 +00:00
archdep
atm1
atm2
atm3
auditd Add 'nojail' keyword as auditd(8) can't really do anything useful when 2012-01-06 14:00:31 +00:00
auditdistd Fix the location of auditdistd configuration file. 2012-12-13 09:41:32 +00:00
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 Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
bridge Renove faith(4) and faithd(8) from base. It looks like industry 2014-11-09 21:33:01 +00:00
bsnmpd Pass pidfile to bsnmpd if it's been changed (parts cut/pasted from 2013-08-19 05:37:49 +00:00
bthidd Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
casperd Start-up script for casperd daemon. 2013-12-16 11:03:59 +00:00
ccd
cleanvar Simply things so that "#REQUIRE: FILESYSTEMS" means the file 2012-09-11 05:04:59 +00:00
cleartmp Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
cron Simply things so that "#REQUIRE: FILESYSTEMS" means the file 2012-09-11 05:04:59 +00:00
ctld Bring in the new iSCSI target and initiator. 2013-09-14 15:29:06 +00:00
DAEMON
ddb Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
defaultroute Renove faith(4) and faithd(8) from base. It looks like industry 2014-11-09 21:33:01 +00:00
devd Require "ldconfig" for "devd". It is possible that user puts into 2015-04-28 13:13:23 +00:00
devfs As it stands right now, the default devfs rulesets are only loaded as a 2012-02-08 08:52:40 +00:00
dhclient dhclient: don't use syslog for logging non-DHCP interface errors 2012-01-20 17:19:50 +00:00
dmesg Simply things so that "#REQUIRE: FILESYSTEMS" means the file 2012-09-11 05:04:59 +00:00
dumpon
FILESYSTEMS Simply things so that "#REQUIRE: FILESYSTEMS" means the file 2012-09-11 05:04:59 +00:00
fsck - Add vnode-backed swap space specification support. This is enabled when 2013-06-27 18:28:45 +00:00
ftp-proxy Add support for multiple instances of ftp-proxy 2013-11-13 03:50:31 +00:00
ftpd Simply things so that "#REQUIRE: FILESYSTEMS" means the file 2012-09-11 05:04:59 +00:00
gbde
geli rc.d/geli should not depend on random, as the attach functionality 2014-10-31 22:20:27 +00:00
geli2 Allow - be used in the name of a provider. Without this change it's not 2012-08-22 22:17:35 +00:00
gptboot Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
growfs remove comment about the bug... I don't remeber what it was... 2014-11-06 07:27:14 +00:00
gssd Fix rc.d/gssd script to define the default values in a standard way. 2014-08-29 06:23:00 +00:00
hastd Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
hcsecd Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
hostapd Implement ifconfig_wlanX="HOSTAP". 2013-06-26 04:00:52 +00:00
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 There is no longer a need to abstract ${rcvar_manpage} as we are not 2012-01-08 20:25:29 +00:00
inetd Simply things so that "#REQUIRE: FILESYSTEMS" means the file 2012-09-11 05:04:59 +00:00
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 ipfilter 5.1.2 no longer supports sysctl. Use ipf -V to determine if 2013-09-10 13:48:33 +00:00
ipfw Refine the "nojail" rc keyword, adding "nojailvnet" for files that don't 2013-05-19 04:10:34 +00:00
ipmon Remove duplicate FILESYSTEMS REQUIRE from etc/rc.d/ipmon and etc/rc.d/pflog 2014-11-30 12:34:48 +00:00
ipnat Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
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 Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
iscsictl Bring in the new iSCSI target and initiator. 2013-09-14 15:29:06 +00:00
iscsid Bring in the new iSCSI target and initiator. 2013-09-14 15:29:06 +00:00
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 Restructure rc.d scripts for kerberos5 daemons: 2014-08-29 07:51:47 +00:00
keyserv Fix various issues with the NFS and RPC related scripts: 2012-02-14 10:51:24 +00:00
kfd Restructure rc.d scripts for kerberos5 daemons: 2014-08-29 07:51:47 +00:00
kld Ensure kldxref is run first. Currently both 'kldxref' and 'kld' depend 2011-12-01 22:50:10 +00:00
kldxref Whitespace nit 2012-07-13 06:46:09 +00:00
kpasswdd Restructure rc.d scripts for kerberos5 daemons: 2014-08-29 07:51:47 +00:00
ldconfig Simply things so that "#REQUIRE: FILESYSTEMS" means the file 2012-09-11 05:04:59 +00:00
local
local_unbound Adjust default argument construction for -c to be getopt compliant for 2015-05-22 21:33:13 +00:00
localpkg
lockd Fix various issues with the NFS and RPC related scripts: 2012-02-14 10:51:24 +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 Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
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 Simply things so that "#REQUIRE: FILESYSTEMS" means the file 2012-09-11 05:04:59 +00:00
motd
mountcritlocal Add a sync to the shutdown step. In the common case this will be harmless 2010-11-25 18:20:28 +00:00
mountcritremote Simply things so that "#REQUIRE: FILESYSTEMS" means the file 2012-09-11 05:04:59 +00:00
mountd Remove some oldnfs remnants. 2015-04-18 16:08:06 +00:00
mountlate Introduce and use new flag -L to mount for mounting only late filesystems. 2013-05-04 14:00:16 +00:00
moused Simply things so that "#REQUIRE: FILESYSTEMS" means the file 2012-09-11 05:04:59 +00:00
mroute6d Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
msgs
natd Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
netif Change KPI of how device drivers that provide wireless connectivity interact 2015-08-07 11:43:14 +00:00
netoptions Add $ipv6_cpe_wanif to enable functionality required for IPv6 CPE 2011-09-13 00:06:11 +00:00
netwait Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
NETWORKING Unbreak rcorder when MK_UNBOUND == no by moving local_unbound from REQUIRE: 2015-02-13 20:49:43 +00:00
newsyslog Simply things so that "#REQUIRE: FILESYSTEMS" means the file 2012-09-11 05:04:59 +00:00
nfscbd Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
nfsclient Make three one line changes to the rc scripts so that 2011-06-11 21:14:22 +00:00
nfsd Remove some oldnfs remnants. 2015-04-18 16:08:06 +00:00
nfsuserd Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
nisdomain
nscd Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
nsswitch Prefer echo over printf 2010-09-27 15:55:39 +00:00
ntpd Simply things so that "#REQUIRE: FILESYSTEMS" means the file 2012-09-11 05:04:59 +00:00
ntpdate Remove remnants of BIND from /etc, since there is no BIND in base now. 2013-11-05 09:30:06 +00:00
opensm Add svn:executable property 2011-04-25 05:57:01 +00:00
othermta
pf Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
pflog Typo fix in comment 2015-04-06 19:23:45 +00:00
pfsync When stopping pfsync, remove the pfsync interface's syncpeer setting. 2013-07-15 08:48:45 +00:00
power_profile rc.d/power_profile: use recently added Cmax for cx_lowest 2012-09-11 06:25:10 +00:00
powerd Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
ppp Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
pppoed Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
pwcheck
quota Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
random Address review. 2015-07-08 18:46:44 +00:00
rarpd Simply things so that "#REQUIRE: FILESYSTEMS" means the file 2012-09-11 05:04:59 +00:00
rctl Make rctl_enable rc variable actually work. To avoid breaking existing 2015-08-05 17:38:02 +00:00
resolv Simply things so that "#REQUIRE: FILESYSTEMS" means the file 2012-09-11 05:04:59 +00:00
rfcomm_pppd_server Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
root
route6d Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
routed Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +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 Remove remnants of BIND from /etc, since there is no BIND in base now. 2013-11-05 09:30:06 +00:00
rtadvd Add a reload command. 2013-10-22 07:44:26 +00:00
rtsold Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
rwho Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
savecore After writing a kernel core dump into /var/crash, call sync(8). 2013-08-28 15:12:15 +00:00
sdpd Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
securelevel Add dependencies based on security(7). 2012-08-22 18:35:17 +00:00
sendmail Enable the automatic creation of a certificate (if one does not exists) 2013-10-19 18:51:06 +00:00
serial
SERVERS Restructure rc.d scripts for kerberos5 daemons: 2014-08-29 07:51:47 +00:00
sppp
sshd Upgrade to OpenSSH 6.5p1. 2014-01-31 13:12:02 +00:00
statd Fix various issues with the NFS and RPC related scripts: 2012-02-14 10:51:24 +00:00
static_arp
static_ndp Correctly reassign copyright of etc/rc.d/static_ndp back to delphij@ 2011-10-23 10:17:42 +00:00
stf
swap - Add vnode-backed swap space specification support. This is enabled when 2013-06-27 18:28:45 +00:00
swaplate - Add vnode-backed swap space specification support. This is enabled when 2013-06-27 18:28:45 +00:00
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 Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
tmp MFP4 214344: 2012-07-13 20:10:59 +00:00
ubthidhci Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
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 Simply things so that "#REQUIRE: FILESYSTEMS" means the file 2012-09-11 05:04:59 +00:00
virecover Prepare for the removal of set_rcvar() by changing the rcvar= 2012-01-14 02:18:41 +00:00
watchdogd when watchdogd is asked to exit nicely (via SIGTERM) it will 2014-04-16 22:26:42 +00:00
wpa_supplicant
ypbind Fix various issues with the NFS and RPC related scripts: 2012-02-14 10:51:24 +00:00
yppasswdd Fix various issues with the NFS and RPC related scripts: 2012-02-14 10:51:24 +00:00
ypserv Fix various issues with the NFS and RPC related scripts: 2012-02-14 10:51:24 +00:00
ypset Fix various issues with the NFS and RPC related scripts: 2012-02-14 10:51:24 +00:00
ypupdated Fix various issues with the NFS and RPC related scripts: 2012-02-14 10:51:24 +00:00
ypxfrd Fix various issues with the NFS and RPC related scripts: 2012-02-14 10:51:24 +00:00
zfs rc.d/zfs: pass -v option to zfs mount 2013-07-09 08:59:39 +00:00
zvol Commit two more files missed in r219089. 2011-02-27 19:44:10 +00:00