mainpage.doxygen 4.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /**
  2. \mainpage Developers' documentation for wpa_supplicant and hostapd
  3. The goal of this documentation and comments in the source code is to
  4. give enough information for other developers to understand how
  5. wpa_supplicant and hostapd have been implemented, how they can be
  6. modified, how new drivers can be supported, and how the source code
  7. can be ported to other operating systems. If any information is
  8. missing, feel free to contact Jouni Malinen <j@w1.fi> for more
  9. information. Contributions as patch files are also very welcome at the
  10. same address. Please note that this software is licensed under the
  11. BSD license (the one with advertisement clause removed). All
  12. contributions to wpa_supplicant and hostapd are expected to use
  13. compatible licensing terms.
  14. The source code and read-only access to the combined wpa_supplicant
  15. and hostapd Git repository is available from the project home page at
  16. http://w1.fi/wpa_supplicant/. This developers' documentation is also
  17. available as a PDF file from
  18. http://w1.fi/wpa_supplicant/wpa_supplicant-devel.pdf .
  19. \section _wpa_supplicant wpa_supplicant
  20. wpa_supplicant is a WPA Supplicant for Linux, BSD and Windows with
  21. support for WPA and WPA2 (IEEE 802.11i / RSN). Supplicant is the IEEE
  22. 802.1X/WPA component that is used in the client stations. It
  23. implements key negotiation with a WPA Authenticator and it can optionally
  24. control roaming and IEEE 802.11 authentication/association of the wlan
  25. driver.
  26. The design goal for wpa_supplicant was to use hardware, driver, and
  27. OS independent, portable C code for all WPA functionality. The source
  28. code is divided into separate C files as shown on the \ref
  29. code_structure "code structure page". All hardware/driver specific
  30. functionality is in separate files that implement a \ref
  31. driver_wrapper "well-defined driver API". Information about porting
  32. to different target boards and operating systems is available on
  33. the \ref porting "porting page".
  34. EAPOL (IEEE 802.1X) state machines are implemented as a separate
  35. module that interacts with \ref eap_peer_module "EAP peer implementation".
  36. In addition to programs aimed at normal production use,
  37. wpa_supplicant source tree includes number of \ref testing_tools
  38. "testing and development tools" that make it easier to test the
  39. programs without having to setup a full test setup with wireless
  40. cards. These tools can also be used to implement automatic test
  41. suites.
  42. wpa_supplicant implements a
  43. \ref ctrl_iface_page "control interface" that can be used by
  44. external programs to control the operations of the wpa_supplicant
  45. daemon and to get status information and event notifications. There is
  46. a small C library that provides helper functions to facilitate the use of the
  47. control interface. This library can also be used with C++.
  48. \image html _wpa_supplicant.png "wpa_supplicant modules"
  49. \image latex _wpa_supplicant.eps "wpa_supplicant modules" width=15cm
  50. \section _hostapd hostapd
  51. hostapd includes IEEE 802.11 access point management (authentication /
  52. association), IEEE 802.1X/WPA/WPA2 Authenticator, EAP server, and
  53. RADIUS authentication server functionality. It can be build with
  54. various configuration option, e.g., a standalone AP management
  55. solution or a RADIUS authentication server with support for number of
  56. EAP methods.
  57. The design goal for hostapd was to use hardware, driver, and
  58. OS independent, portable C code for all WPA functionality. The source
  59. code is divided into separate C files as shown on the \ref
  60. code_structure "code structure page". All hardware/driver specific
  61. functionality is in separate files that implement a \ref
  62. driver_wrapper "well-defined driver API". Information about porting
  63. to different target boards and operating systems is available on
  64. the \ref porting "porting page".
  65. EAPOL (IEEE 802.1X) state machines are implemented as a separate
  66. module that interacts with \ref eap_server_module "EAP server implementation".
  67. Similarly, RADIUS authentication server is in its own separate module.
  68. Both IEEE 802.1X and RADIUS authentication server can use EAP server
  69. functionality.
  70. hostapd implements a \ref hostapd_ctrl_iface_page "control interface"
  71. that can be used by external programs to control the operations of the
  72. hostapdt daemon and to get status information and event notifications.
  73. There is a small C library that provides helper functions to facilitate
  74. the use of the control interface. This library can also be used with
  75. C++.
  76. \image html hostapd.png "hostapd modules"
  77. \image latex hostapd.eps "hostapd modules" width=15cm
  78. */