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