我使用 802.11s 网格连接了 2 台设备,以实现第 2 层桥接。
第一台设备大多数时候都处于开启状态,但第二台设备却没有。因此,我正在寻找一种方法来减少第一台设备在断开连接时搜索网格对等点的扫描频率/间隔。但我不确定如何实现这一点。
下面是从输出中得到的我的设备支持的网格参数列表iw dev wlan1 get mesh_param
:
mesh_retry_timeout
mesh_confirm_timeout
mesh_holding_timeout
mesh_max_peer_links
mesh_max_retries
mesh_ttl
mesh_element_ttl
mesh_auto_open_plinks
mesh_hwmp_max_preq_retries
mesh_path_refresh_time
mesh_min_discovery_timeout
mesh_hwmp_active_path_timeout
mesh_hwmp_preq_min_interval
mesh_hwmp_net_diameter_traversal_time
mesh_hwmp_rootmode
mesh_hwmp_rann_interval
mesh_gate_announcements
mesh_fwding
mesh_sync_offset_max_neighor
mesh_rssi_threshold
mesh_hwmp_active_path_to_root_timeout
mesh_hwmp_root_interval
mesh_hwmp_confirmation_interval
mesh_power_mode
mesh_awake_window
mesh_plink_timeout
mesh_connected_to_gate
mesh_nolearn
mesh_connected_to_as
我找不到上述任何网格参数的文档。我参考了802.11s 的内核 wiki,但它没有关于上述参数的任何描述。
我确实从open80211s 操作指南(链接在内核 wikiiw
),但没有对它们全部进行描述。
答案1
对于网格参数的含义,可以检查以下一些地方:
- 枚举
nl80211_meshconf_params
及其注释,位于nl80211.h
,iw 源。 - struct
mesh_param_descr
_mesh_param_descrs[]
定义,在mesh.c
,iw 源中。这显示了用户设置如何映射到内部参数。 - Linux 源代码中的结构
mesh_config
及其注释。include/net/cfg80211.h
- Linux 源代码中的枚举
ieee80211_root_mode_identifier
及其注释。include/linux/ieee80211.h
- IEEE Std 802.11 PDF,可从互联网上免费获取。最新版本
802.11-2016.pdf
。
例如根模式解释:
/* FILE: include/linux/ieee80211.h, Linux source */
/**
* enum ieee80211_root_mode_identifier - root mesh STA mode identifier
*
* These attribute are used by dot11MeshHWMPRootMode to set root mesh STA mode
*
* @IEEE80211_ROOTMODE_NO_ROOT: the mesh STA is not a root mesh STA (default)
* @IEEE80211_ROOTMODE_ROOT: the mesh STA is a root mesh STA if greater than
* this value
* @IEEE80211_PROACTIVE_PREQ_NO_PREP: the mesh STA is a root mesh STA supports
* the proactive PREQ with proactive PREP subfield set to 0
* @IEEE80211_PROACTIVE_PREQ_WITH_PREP: the mesh STA is a root mesh STA
* supports the proactive PREQ with proactive PREP subfield set to 1
* @IEEE80211_PROACTIVE_RANN: the mesh STA is a root mesh STA supports
* the proactive RANN
*/
enum ieee80211_root_mode_identifier {
IEEE80211_ROOTMODE_NO_ROOT = 0,
IEEE80211_ROOTMODE_ROOT = 1,
IEEE80211_PROACTIVE_PREQ_NO_PREP = 2,
IEEE80211_PROACTIVE_PREQ_WITH_PREP = 3,
IEEE80211_PROACTIVE_RANN = 4,
};
如果您正在使用mesh11sd
,请使用mesh11sd status
检查当前设置,此命令将调用 iw,因此您也可以直接使用 iw。
将任何网格参数放入mesh11sd
配置文件中并保存,它们将被设置为生效mesh11sd
,无需重新加载。
例如,为了减少流量,在根/主节点上:
/etc/config/mesh11sd
config mesh11sd 'mesh_params'
option mesh_hwmp_rootmode '4'
option mesh_hwmp_rann_interval '8000'
在偶尔开启的节点上:
config mesh11sd 'mesh_params'
option mesh_hwmp_rootmode '0'