【MTK】iwpriv命令说明

iwpriv 命令


  1. CountryRegion 2.4GHz的国家地区码,不同的地区码信道选择范围不一样,范围是0~7,31~33
    iwpriv ra0 set CountryRegion=5


  2. CountryRegionABand 5G的国家地区码


  3. CountryCode 无线国家码


  4. 国家码简写标准:https://www.iso.org/obp/ui/#search
    iwpriv ra0 set CountryCode=cn


  5. ChannelGeography:信道地理类型
    0:Outdoor 1:Indoor 2:Both


  6. .SSID 无线SSID,1~32 ASCII码
    iwpriv ra0 set SSID="AAA"


  7. WirelessMode 无线模式
    1.legacy 11B only;2.legacy 11A only;3.legacy 11a/b/g mixed;4.legacy 11G only;5.11ABGN mixed
    6.11N only in 2.4G; 7.11GN mixed;8.11AN mixed; 9.11BGN mixed; 10.11AGN mixed;11.11N only in 5G;
    14.11A/AN/AC mixed 5G band only;15. 11AN/AC mixed 5G band only.


  8. Channel 无线channel
    Channel=0; 0表示自动扫描;


  9. BasicRate 无线支持的基本速率集
    1.1Mbps;2.2Mbps;3.1Mbps,2Mbps;4.5.5Mbps;15.1Mbps,2Mbps,5.5Mbps,11Mbps;


  10. Beacon Period Beacon帧的周期
    iwpriv ra0 set BeaconPeriod=100


  11. DtimPeriod duratin time 1~255
    iwpriv ra0 set DtimPeriod=64


  12. TxPower 传输功率,0~100
    iwpriv ra0 set TxPower=99


  13. DisableOLBC


  14. BGProtection 启用/禁用 无线11B or 11G保护
    0:auto;1:on;2:off


  15. MaxStaNum 最大sta连接数量
    0:disable 1~32


  16. TxAntenna 配置Tx天线数量
    iwpriv ra0 set TxAntenna=1


  17. RxAntenna 配置Rx天线数量


  18. TxPreamble 启用/禁用Tx 前导码
    iwpriv ra0 set TxPreamble=0


  19. RTSThreshold 设置RTS 阈值 1~2347


  20. FragThreshold 设置分片包阈值,256~2346
    iwpriv ra0 set FragThreshold=1024


  21. TxBurst 启用/禁用Tx burst,0:disable;1:enable
    iwpriv ra0 set TxBurst=1

  22. PktAggregate 启用/禁用 Tx 帧聚合,0:disable,1:enable


  23. NoForwarding 启用或禁用不同的sta的包在相同的SSID转发,0:disable;1:enable
    iwpriv ra0 set NoForwarding=0

  24. NoForwardingBTNBSSID,禁用或启用在每个BSSID之间不转发0:disable;1:enable


  25. NoForwardingMBCast,禁用或启用不抓发组播/多播包


  26. HideSSID,禁用或启用隐藏SSID,0:disable;1:enable
    iwpriv ra0 set HideSSID=0

  27. StationKeepAlive禁用或启用周期性自动检测活跃的sta,0:disable;1:enable
    iwpriv ra0 set StationKeepAlive=1


  28. ShortSlot,禁用或启用short slot time,0:disable;1:enable
    iwpriv ra0 set ShortSlot=1

  29. AutoChannelSelect,启用禁用信道自动选则,0,disable;1:旧算法,2:新算法;


  30. Debug 设置WLAN debug等级(0~5) 0:off;1:Error;2:Warning;3:Trace;4:Info;5:Loud
    iwpriv ra0 set Debug=3


  31. DriverVersion 检测无线驱动版本
    iwpriv ra0 set DriverVersion=0


  32. AccessPolicy 配置访问控制规则,0:允许访问AP,1:禁止访问AP
    iwpriv ra0 set AccessPolicy=0


  33. ResetCounter,重设计算器
    iwpriv ra0 set ResetCounter=1


  34. SiteSurvey 请求动作做站点测量
    iwpriv ra0 set SiteSurvey=
    被动扫描:空串,iwpriv ra0 set SiteSurvey=
    主动扫描:目的SSID,iwpriv ra0 set SiteSurvey=Target_SSID


  35. CountryString 设置国家
    iwpriv ra0 set CountryString=China


  36. FixedTxMode设置发送调制模式,CCK OFDM HT
    iwpriv ra0 set FixedTxMode=CCK


  37. DisConnectSta断开一个指定的STA
    iwpriv ra0 set DisConnectSta=00:11:22:33:44:55
    *
  38. DisConnectAllSta 断开所有sta
    iwpriv ra0 set DisConnectAllSta=1
    *
  39. McastPhyMode 设置多播物理模式,0:Disable; 1:CCK;2:OFDM;3:HTMIX
    iwpriv ra0 set McastPhyMode=0
    *
  40. McastMcs设置多播包的MCS,0~15
    iwpriv ra0 set McastMcs=0
    *
  41. MaxStaNum 现在每一个BSS可以管理sta的最大值 1~32
    iwpriv ra0 set MaxStaNum=0
    0:禁用限制
    *
  42. AutoFallBack 启用/禁用自动降低速率功能。0:disable; 1:enable
    iwpriv ra0 set AutoFallBack=1
    *
  43. MBSSWirelessMode 设置MBSS 无线物理方式
    iwpriv ra0 set MBSSWirelessMode=1
    0:802.11B/G mixed
    1:802.11B only
    2:801.11A only
    4:801.11G only
    6:801.11N only
    7:801.11G/N mixed
    8:801.11A/N mixed
    9:801.11B/G/Nmixed
    10:801.11A/G/N mixed
    11:801.11N in 5G band only


  44. HtBw HT信道带宽设置, 0:20MHz;1:20/40 MHz
    iwpriv ra0 set HtBw=1


  45. HtMcs 设置无线调制编码策略, 0~15,32:fix MCS rate, 33,自动适配
    iwpriv ra0 set HtMcs=33


  46. HtGi 设置无线guard 间隔,0:长间隔;1短间隔
    iwpriv ra0 set HtGi=1


  47. HtOpMode 设置HT操作模式,0:HT混合模式,1:HT greenfield模式
    iwpriv ra0 set HtOpMode=0


  48. HtBaWinSize 设置Block Ack 窗口大小,1~64
    iwpriv ra0 set HtBaWinSize=64


  49. HtTxBASize 设置一次传输burst中AMPDU聚合包的个数,1~64
    iwpriv ra0 set HtBASize=64


  50. HtAmsdu 启用禁用A-MSDU,0 禁用,1启用
    iwpriv ra0 set HtAmsdu=0


  51. HtAutoBa 启用禁用自动block ack,0 禁用,1启用
    iwpriv ra0 set HtAutoBa=1


  52. HtMimoPs 启用禁用HT MIMMO power save 模式,1:enable,0:disable
    iwpriv ra0 set HtMimoPs=1


  53. AP2040Rescan 触发HT20/40 coexistence重新扫描,1:触发
    iwpriv ra0 set AP2040Rescan=1


  54. HtBssCoex 启用禁用HT BSS coexistence,0 禁用,1启用
    iwpriv ra0 set HtBssCoex=1


  55. AssocReqRssiThres设置关联请求时接收灵敏度的阈值,使拒绝STA的关联请求在弱信号的情况下
    iwpriv ra0 set AssocReqRssiThres=-88
    0:关闭
    0~-100RSSI的值


  56. stat 显示无线统计信息
    iwpriw ra0 stat
    或者:
    while [ 1 ]; do iwpriv ra0 set ResetCounter=1; sleep 1; iwpriv ra0 stat; done;


  57. get_site_survey 获取扫描信息
    iwpriv ra0 get_site_survey
    执行该命令前先执行iwpriv ra0 set SiteSurvey=


  58. get_mac_table 获取连接到AP的sta的mac地址信息
    iwpriv ra0 get_mac_talbe


  59. get_ba_table 显示BlackACK table
    iwpriv ra0 get_ba_table


  60. show 显示信息
    iwpriv ra0 show [parameter]
    [parameter list]
    1.driverinfo
    2.stat
    3.stainfo
    4.stacountinfo
    5.stasecinfo
    6.bainfo
    7.connStatus
    8.reptinfo
    9.wdsinfo
    10.igmpinfo
    11.mbss
    12.blockch


  • 5
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`iwpriv`命令的源码主要位于Linux内核源代码树中的`net/wireless/wext-core.c`文件中,以下是该文件中`ioctl_standard_iwpriv`函数的源码解析: ```c static int ioctl_standard_iwpriv(struct net_device *dev, struct iwreq *iwr, u32 cmd) { /* 通过命令码cmd解析出设备驱动程序中相应的命令处理函数 */ struct iw_priv_args *priv; struct iw_handler_def *iwe; int i, count; struct iw_priv_args user_priv; void __user *argp = iwr->u.name; int (*handler)(struct net_device *, struct iw_request_info *, union iwreq_data *, struct iw_priv_args *); union iwreq_data wrqu; int ret = 0; /* 遍历设备驱动程序中支持的所有IWPRIV命令 */ for (i = 0; i < dev->ieee80211_ptr->priv_args_count; i++) { priv = &dev->ieee80211_ptr->priv_args[i]; if ((!priv->name) || (!priv->set)) { continue; } if (strcmp(priv->name, iwr->u.name) == 0) { /* 找到要执行的IWPRIV命令 */ iwe = priv->handler; count = iwe->num_standard; /* 该命令支持的标准命令个数 */ if (iwe->flags & IW_HANDLER_SPECIAL) { /* 特殊处理的IWPRIV命令 */ handler = iwe->standard[count].handler; if (!handler) return -EOPNOTSUPP; ret = handler(dev, NULL, &wrqu, priv); } else { /* 标准IWPRIV命令 */ handler = iwe->standard[IW_PRIV_CMD_GET].handler; if (!handler) return -EOPNOTSUPP; /* 解析参数 */ if (iwe->standard[IW_PRIV_CMD_SET].handler) { if (copy_from_user(&user_priv, argp, sizeof(user_priv))) return -EFAULT; wrqu.data.pointer = user_priv.pointer; wrqu.data.length = user_priv.length; wrqu.data.flags = user_priv.flags; } /* 调用设备驱动程序中的命令处理函数 */ ret = handler(dev, NULL, &wrqu, priv); /* 将处理结果返回给用户空间 */ if (iwe->standard[IW_PRIV_CMD_GET].handler) { if (copy_to_user(argp, &user_priv, sizeof(user_priv))) return -EFAULT; } } break; } } if (i == dev->ieee80211_ptr->priv_args_count) /* 没有找到要执行的IWPRIV命令 */ ret = -EOPNOTSUPP; return ret; } ``` `ioctl_standard_iwpriv`函数主要实现了`iwpriv`命令的功能。它通过解析`iwr->u.name`中的命令参数,找到对应的设备驱动程序中的命令处理函数,并通过调用该函数完成相应的操作。该函数的主要步骤包括: 1. 遍历设备驱动程序中支持的所有IWPRIV命令,找到要执行的IWPRIV命令。 2. 解析命令参数,根据命令处理函数的要求设置对应的参数值。 3. 调用设备驱动程序中的命令处理函数,完成相应的操作。 4. 将处理结果返回给用户空间。 在该函数中,命令处理函数主要分为两种类型:标准IWPRIV命令和特殊处理的IWPRIV命令。对于标准IWPRIV命令,用户空间可以通过`ioctl`系统调用的`arg`参数向内核空间传递一些参数,内核空间则通过解析这些参数来执行相应的操作;对于特殊处理的IWPRIV命令,用户空间直接调用该命令即可,不需要传递任何参数。 总的来说,`ioctl_standard_iwpriv`函数的实现比较复杂,需要涉及到内核空间和用户空间之间的数据传输、命令参数的解析和处理等方面的问题。如果您想要深入了解该函数的实现细节,可以仔细阅读该函数的源码,并结合相关的内核文档进行学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值