forked from spotify/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
wimax documentation Signed-off-by: Inaky Perez-Gonzalez <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
- Loading branch information
Showing
1 changed file
with
81 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
|
||
Linux kernel WiMAX stack | ||
|
||
(C) 2008 Intel Corporation < [email protected] > | ||
|
||
This provides a basic Linux kernel WiMAX stack to provide a common | ||
control API for WiMAX devices, usable from kernel and user space. | ||
|
||
1. Design | ||
|
||
The WiMAX stack is designed to provide for common WiMAX control | ||
services to current and future WiMAX devices from any vendor. | ||
|
||
Because currently there is only one and we don't know what would be the | ||
common services, the APIs it currently provides are very minimal. | ||
However, it is done in such a way that it is easily extensible to | ||
accommodate future requirements. | ||
|
||
The stack works by embedding a struct wimax_dev in your device's | ||
control structures. This provides a set of callbacks that the WiMAX | ||
stack will call in order to implement control operations requested by | ||
the user. As well, the stack provides API functions that the driver | ||
calls to notify about changes of state in the device. | ||
|
||
The stack exports the API calls needed to control the device to user | ||
space using generic netlink as a marshalling mechanism. You can access | ||
them using your own code or use the wrappers provided for your | ||
convenience in libwimax (in the wimax-tools package). | ||
|
||
For detailed information on the stack, please see | ||
include/linux/wimax.h. | ||
|
||
2. Usage | ||
|
||
For usage in a driver (registration, API, etc) please refer to the | ||
instructions in the header file include/linux/wimax.h. | ||
|
||
When a device is registered with the WiMAX stack, a set of debugfs | ||
files will appear in /sys/kernel/debug/wimax:wmxX can tweak for | ||
control. | ||
|
||
2.1. Obtaining debug information: debugfs entries | ||
|
||
The WiMAX stack is compiled, by default, with debug messages that can | ||
be used to diagnose issues. By default, said messages are disabled. | ||
|
||
The drivers will register debugfs entries that allow the user to tweak | ||
debug settings. | ||
|
||
Each driver, when registering with the stack, will cause a debugfs | ||
directory named wimax:DEVICENAME to be created; optionally, it might | ||
create more subentries below it. | ||
|
||
2.1.1. Increasing debug output | ||
|
||
The files named *dl_* indicate knobs for controlling the debug output | ||
of different submodules of the WiMAX stack: | ||
* | ||
# find /sys/kernel/debug/wimax\:wmx0 -name \*dl_\* | ||
/sys/kernel/debug/wimax:wmx0/wimax_dl_stack | ||
/sys/kernel/debug/wimax:wmx0/wimax_dl_op_rfkill | ||
/sys/kernel/debug/wimax:wmx0/wimax_dl_op_reset | ||
/sys/kernel/debug/wimax:wmx0/wimax_dl_op_msg | ||
/sys/kernel/debug/wimax:wmx0/wimax_dl_id_table | ||
/sys/kernel/debug/wimax:wmx0/wimax_dl_debugfs | ||
/sys/kernel/debug/wimax:wmx0/.... # other driver specific files | ||
|
||
NOTE: Of course, if debugfs is mounted in a directory other than | ||
/sys/kernel/debug, those paths will change. | ||
|
||
By reading the file you can obtain the current value of said debug | ||
level; by writing to it, you can set it. | ||
|
||
To increase the debug level of, for example, the id-table submodule, | ||
just write: | ||
|
||
$ echo 3 > /sys/kernel/debug/wimax:wmx0/wimax_dl_id_table | ||
|
||
Increasing numbers yield increasing debug information; for details of | ||
what is printed and the available levels, check the source. The code | ||
uses 0 for disabled and increasing values until 8. |