概述 在hostapd编译完成后,会生成一个hostapd_cli的可执行文件。hostapd_cli是一款用作无线AP功能的客户端程序。它需要与hostapd主程序配置使用,使用hostapd_cli -h命令可以看到支持的命令 pi@pi:~/code/hostapd-2.9/hostapd $ ./hostapd_cli -h hostapd…
配置环境 安装微软官方提供的C/C++插件 配置将文件launch.json改为如下 { // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "co…
概述 为了扩展帧通过增加新的子类型,为60GHz 频段特有的功能(如波束成形训练、定向通信管理)提供支持,同时保持与原有帧格式的兼容性,引入了扩展帧(Extended Frame),它支持波束成形(Beamforming)训练、定向链路维护等高级管理功能,同时保持了与核心802.11 架构的兼容性 802.11帧在帧头的类型和子类型字段共同定义了一…
数据帧概述 IEEE 802.11-2016标准定义了15种数据帧子类型,最常见的两种数据帧是数据子类型(通常称为简单数据帧)和QoS数据子类型。二者的区别在于,QoS数据帧的QoS控制字段携带服务类别信息。简单数据帧有时也称为非QoS数据帧 这两种数据帧的帧体都封装有MSDU净荷(上层信息)。出于数据保密性考虑,MSDU净荷通常经过加密。接入点或…
概述 802.11控制帧协助传输数据帧,以某个基本速率发送。控制帧用于清除信道、获取信道并提供单播帧确认。控制帧仅由MAC帧头和帧尾构成,没有帧体。MAC帧头包含的信息足以完成赋予802.11控制帧的任务。 802.11帧在帧头的类型和子类型字段共同定义了一个帧 类型(Type)字段 比特值帧类型作用00管理帧发现接入点并加入基本服务集01控制帧确…
概述 无线终端使用管理帧加入和离开基本服务集,有线网络则不需要因为通过断开和连接网络电缆就可以实现相同目的。802.11管理帧又称为MMPDU,它不携带任何上层信息。MMPDU帧体并未封装MSDU,仅包含二层信息字段和信息元素。信息字段是固定长度的强制字段,而信息元素是可变长度的可选字段 802.11帧在帧头的类型和子类型字段共同定义了一个帧 类型…
概述 Linux内核的等待队列(Wait Queue)是重要的数据结构,与进程调度机制紧密相关联,可以用来同步对系统资源的访问、异步事件通知、跨进程通信等。在Linux中,等待队列以循环链表为基础结构,包括两种数据结构:等待队列头(wait queue head)和等待队列元素(wait queue),整个等待队列由等待队列头进行管理 核心原理 内…
概述 linux提供了一种称为模块(Module)的机制,模块具有如下的特点 模块自身不被编译到内核映像中,从而不影响内核映像的大小 一旦模块被加载,模块和内核中的其他部分的功能完全一样 管理方式 显示当前装入的内核模块: lsmod 显示模块信息: modinfo module_name 显示所有模块的配置信息: modprobe -c | le…
关于被注册的进程的输出 笔者注:在openwrt架构的实际开发过程中常常会遇到自己添加的模块中的printf输出看不到的情况,故查看procd源码希望可以找到问题原因 关键函数调用栈 rc ->_rc ->add_initd ->q_initd_run ->ustream_fd_init ->ustream_fd_se…
符号导出 概述 Linux中一组API使得开发人员可以将需要的符号导出,如下 EXPORT_SYMBOL EXPORT_SYMBOL 是一个在 Linux 内核代码中使用的宏。它的主要作用是将一个符号(通常是一个函数名或变量名)导出,使其可以被内核的其他部分或者动态加载的内核模块LKMs访问 EXPORT_SYMBOL_GPL EXPORT_SYM…