README.md (7cf9ba6e31b2745d20ac6a658815922d0b5c973e) | README.md (b49db4c59a0f2511208515d878ea297c204de6d1) |
---|---|
1<!-- 2Author: Xianjun jiao, Michael Mehari, Wei Liu 3SPDX-FileCopyrightText: 2019 UGent 4SPDX-License-Identifier: AGPL-3.0-or-later 5--> 6 7 8# Openwifi document 9<img src="./openwifi-detail.jpg" width="1100"> 10 11Above figure shows software and hardware/FPGA modules that compose the openwifi design. The module name is equal/similar to the source code file name. Driver module source codes are in openwifi/driver/. FPGA module source codes are in openwifi-hw repository. The user space tool sdrctl source code are in openwifi/user_space/sdrctl_src/. 12 13- [Driver and software overall principle](#Driver-and-software-overall-principle) 14- [sdrctl command](#sdrctl-command) 15- [Rx packet flow and filtering config](#Rx-packet-flow-and-filtering-config) 16- [Tx packet flow and config](#Tx-packet-flow-and-config) 17- [Regulation and channel config](#Regulation-and-channel-config) 18- [Analog and digital frequency design](#Analog-and-digital-frequency-design) 19- [Debug methods](#Debug-methods) | 1<!-- 2Author: Xianjun jiao, Michael Mehari, Wei Liu 3SPDX-FileCopyrightText: 2019 UGent 4SPDX-License-Identifier: AGPL-3.0-or-later 5--> 6 7 8# Openwifi document 9<img src="./openwifi-detail.jpg" width="1100"> 10 11Above figure shows software and hardware/FPGA modules that compose the openwifi design. The module name is equal/similar to the source code file name. Driver module source codes are in openwifi/driver/. FPGA module source codes are in openwifi-hw repository. The user space tool sdrctl source code are in openwifi/user_space/sdrctl_src/. 12 13- [Driver and software overall principle](#Driver-and-software-overall-principle) 14- [sdrctl command](#sdrctl-command) 15- [Rx packet flow and filtering config](#Rx-packet-flow-and-filtering-config) 16- [Tx packet flow and config](#Tx-packet-flow-and-config) 17- [Regulation and channel config](#Regulation-and-channel-config) 18- [Analog and digital frequency design](#Analog-and-digital-frequency-design) 19- [Debug methods](#Debug-methods) |
20- [Application notes](app_notes) | 20- [Application notes](app_notes/README.md) |
21 22## Driver and software overall principle 23 24[Linux mac80211 subsystem](https://www.kernel.org/doc/html/v4.16/driver-api/80211/mac80211.html), as a part of [Linux wireless](https://wireless.wiki.kernel.org/en/developers/documentation/mac80211), defines a set of APIs ([ieee80211_ops](https://www.kernel.org/doc/html/v4.9/80211/mac80211.html#c.ieee80211_ops)) to rule the Wi-Fi chip driver behavior. SoftMAC Wi-Fi chip driver implements (subset of) those APIs. That is why Linux can support so many Wi-Fi chips of different chip vendors. 25 26openwifi driver (sdr.c) implements following APIs of ieee80211_ops: 27- **tx**. It is called when upper layer has a packet to send 28- **start**. It is called when NIC up. (ifconfig sdr0 up) --- 314 unchanged lines hidden --- | 21 22## Driver and software overall principle 23 24[Linux mac80211 subsystem](https://www.kernel.org/doc/html/v4.16/driver-api/80211/mac80211.html), as a part of [Linux wireless](https://wireless.wiki.kernel.org/en/developers/documentation/mac80211), defines a set of APIs ([ieee80211_ops](https://www.kernel.org/doc/html/v4.9/80211/mac80211.html#c.ieee80211_ops)) to rule the Wi-Fi chip driver behavior. SoftMAC Wi-Fi chip driver implements (subset of) those APIs. That is why Linux can support so many Wi-Fi chips of different chip vendors. 25 26openwifi driver (sdr.c) implements following APIs of ieee80211_ops: 27- **tx**. It is called when upper layer has a packet to send 28- **start**. It is called when NIC up. (ifconfig sdr0 up) --- 314 unchanged lines hidden --- |