X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/8aab380dded91464d39d1ad1221b75d8a50ed539..10208a7eb1ffcc3e428a854841a81a295e541a9f:/docs/wireless.tex

diff --git a/docs/wireless.tex b/docs/wireless.tex
index 861e04dc4..5734fc093 100644
--- a/docs/wireless.tex
+++ b/docs/wireless.tex
@@ -235,30 +235,84 @@ include several functions providing :
 
 Each driver script should append the driver to a global DRIVERS variable :
 
-\begin{verbatim}
+\begin{Verbatim}
 append DRIVERS "driver name"
-\end{verbatim}
+\end{Verbatim}
 
-\subparagraph{scan\_driver}
+\subparagraph{\texttt{scan\_<driver>}}
 
 This function will parse the \texttt{/etc/config/wireless} and make sure there
 are no configuration incompatibilities, like enabling hidden SSIDS with ad-hoc mode
 for instance. This can be more complex if your driver supports a lof of configuration
-options. It does not enable your wireless driver to work.
+options. It does not change the state of the interface.
 
-\subparagraph{enable\_driver}
+Example:
+\begin{Verbatim}
+scan_dummy() {
+	local device="$1"
+
+	config_get vifs "$device" vifs
+	for vif in $vifs; do
+		# check config consistency for wifi-iface sections
+	done
+	# check mode combination
+}
+\end{Verbatim}
 
-This function will enable the driver and read the configuration file to create application
-specific configuration files for the NAS or supplicant program. It will not check the
-configuration consistency.
+\subparagraph{\texttt{enable\_<driver>}}
 
-\subparagraph{disable\_driver}
+This function will bring up the wifi device and optionally create application specific
+configuration files, e.g. for the WPA authenticator or supplicant.
 
-This function should properly shutdown the wireless interfaces and kill associated programs
-running on top of it.
+Example:
+\begin{Verbatim}
+enable_dummy() {
+	local device="$1"
+
+	config_get vifs "$device" vifs
+	for vif in $vifs; do
+		# bring up virtual interface belonging to
+		# the wifi-device "$device"
+	done
+}
+\end{Verbatim}
 
-\subparagraph{detec\_driver}
+\subparagraph{\texttt{disable\_<driver>}}
 
-This function should reliably report the existence of the driver and of one or more of its
-wireless interfaces. A basic configuration file has to be generated in the meantime.
+This function will bring down the wifi device and all its virtual interfaces (if supported).
 
+Example:
+\begin{Verbatim}
+disable_dummy() {
+	local device="$1"
+
+	# bring down virtual interfaces belonging to
+	# "$device" regardless of whether they are
+	# configured or not. Don't rely on the vifs
+	# variable at this point
+}
+\end{Verbatim}
+
+\subparagraph{\texttt{detect\_<driver>}}
+
+This function looks for interfaces that are usable with the driver. Template config sections
+for new devices should be written to stdout. Must check for already existing config sections
+belonging to the interfaces before creating new templates.
+
+Example:
+\begin{Verbatim}
+detect_dummy() {
+	[ wifi-device = "$(config_get dummydev type)" ] && return 0
+	cat <<EOF
+config wifi-device dummydev
+	option type dummy
+	# REMOVE THIS LINE TO ENABLE WIFI:
+	option disabled 1
+
+config wifi-iface
+	option device dummydev
+	option mode ap
+	option ssid OpenWrt
+EOF
+}
+\end{Verbatim}
