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.
 |