 0d695913b0
			
		
	
	
	0d695913b0
	
	
	
		
			
			wimax documentation Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
		
			
				
	
	
		
			81 lines
		
	
	
	
		
			3.1 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
	
		
			3.1 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
| 
 | |
|    Linux kernel WiMAX stack
 | |
| 
 | |
|    (C) 2008 Intel Corporation < linux-wimax@intel.com >
 | |
| 
 | |
|    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.
 |