diff options
author | Inaky Perez-Gonzalez <inaky@linux.intel.com> | 2008-12-20 19:57:32 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-01-07 13:00:16 -0500 |
commit | 0d695913b0016b362a84a8bb6d6e28f8d90a70e2 (patch) | |
tree | 639dbde813e137c385d03205cf97a033dfc103f0 /Documentation/wimax/README.wimax | |
parent | 5e07878787ad07361571150230cc3a8d522ae046 (diff) |
wimax: documentation for the stack
wimax documentation
Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'Documentation/wimax/README.wimax')
-rw-r--r-- | Documentation/wimax/README.wimax | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/Documentation/wimax/README.wimax b/Documentation/wimax/README.wimax new file mode 100644 index 000000000000..b78c4378084e --- /dev/null +++ b/Documentation/wimax/README.wimax | |||
@@ -0,0 +1,81 @@ | |||
1 | |||
2 | Linux kernel WiMAX stack | ||
3 | |||
4 | (C) 2008 Intel Corporation < linux-wimax@intel.com > | ||
5 | |||
6 | This provides a basic Linux kernel WiMAX stack to provide a common | ||
7 | control API for WiMAX devices, usable from kernel and user space. | ||
8 | |||
9 | 1. Design | ||
10 | |||
11 | The WiMAX stack is designed to provide for common WiMAX control | ||
12 | services to current and future WiMAX devices from any vendor. | ||
13 | |||
14 | Because currently there is only one and we don't know what would be the | ||
15 | common services, the APIs it currently provides are very minimal. | ||
16 | However, it is done in such a way that it is easily extensible to | ||
17 | accommodate future requirements. | ||
18 | |||
19 | The stack works by embedding a struct wimax_dev in your device's | ||
20 | control structures. This provides a set of callbacks that the WiMAX | ||
21 | stack will call in order to implement control operations requested by | ||
22 | the user. As well, the stack provides API functions that the driver | ||
23 | calls to notify about changes of state in the device. | ||
24 | |||
25 | The stack exports the API calls needed to control the device to user | ||
26 | space using generic netlink as a marshalling mechanism. You can access | ||
27 | them using your own code or use the wrappers provided for your | ||
28 | convenience in libwimax (in the wimax-tools package). | ||
29 | |||
30 | For detailed information on the stack, please see | ||
31 | include/linux/wimax.h. | ||
32 | |||
33 | 2. Usage | ||
34 | |||
35 | For usage in a driver (registration, API, etc) please refer to the | ||
36 | instructions in the header file include/linux/wimax.h. | ||
37 | |||
38 | When a device is registered with the WiMAX stack, a set of debugfs | ||
39 | files will appear in /sys/kernel/debug/wimax:wmxX can tweak for | ||
40 | control. | ||
41 | |||
42 | 2.1. Obtaining debug information: debugfs entries | ||
43 | |||
44 | The WiMAX stack is compiled, by default, with debug messages that can | ||
45 | be used to diagnose issues. By default, said messages are disabled. | ||
46 | |||
47 | The drivers will register debugfs entries that allow the user to tweak | ||
48 | debug settings. | ||
49 | |||
50 | Each driver, when registering with the stack, will cause a debugfs | ||
51 | directory named wimax:DEVICENAME to be created; optionally, it might | ||
52 | create more subentries below it. | ||
53 | |||
54 | 2.1.1. Increasing debug output | ||
55 | |||
56 | The files named *dl_* indicate knobs for controlling the debug output | ||
57 | of different submodules of the WiMAX stack: | ||
58 | * | ||
59 | # find /sys/kernel/debug/wimax\:wmx0 -name \*dl_\* | ||
60 | /sys/kernel/debug/wimax:wmx0/wimax_dl_stack | ||
61 | /sys/kernel/debug/wimax:wmx0/wimax_dl_op_rfkill | ||
62 | /sys/kernel/debug/wimax:wmx0/wimax_dl_op_reset | ||
63 | /sys/kernel/debug/wimax:wmx0/wimax_dl_op_msg | ||
64 | /sys/kernel/debug/wimax:wmx0/wimax_dl_id_table | ||
65 | /sys/kernel/debug/wimax:wmx0/wimax_dl_debugfs | ||
66 | /sys/kernel/debug/wimax:wmx0/.... # other driver specific files | ||
67 | |||
68 | NOTE: Of course, if debugfs is mounted in a directory other than | ||
69 | /sys/kernel/debug, those paths will change. | ||
70 | |||
71 | By reading the file you can obtain the current value of said debug | ||
72 | level; by writing to it, you can set it. | ||
73 | |||
74 | To increase the debug level of, for example, the id-table submodule, | ||
75 | just write: | ||
76 | |||
77 | $ echo 3 > /sys/kernel/debug/wimax:wmx0/wimax_dl_id_table | ||
78 | |||
79 | Increasing numbers yield increasing debug information; for details of | ||
80 | what is printed and the available levels, check the source. The code | ||
81 | uses 0 for disabled and increasing values until 8. | ||