前言:
高通支持Wi-Fi EasyMesh功能。將裝置分為CAP以及RE兩個角色。透過IEEE 1905協議,彼此交互傳遞訊息。隨著WiFi6、WiFi7規格的進程,EasyMesh也需要對6G Band以及MLO等功能進行支持。初始設定也有些許的修改。列出Miami-RDP468/RDP441 MLO[BH: 5+6; FH: 5+6] 的設定供大家參考。範例 CAP:
/usr/sbin/wifimeshconfig map sleep 5
uci set wireless.qcawifi=qcawifi uci set wireless.qcawifi.samessid_disable=1 uci set wireless.qcawifi.ema_ap_support_wps_in_6ghz=1 uci set wireless.qcawifi.ema_ap_vendor_ie_size_low=0x55556666 uci set wireless.qcawifi.ema_ap_vendor_ie_size_high=0x55555555 #uci set wireless.qcawifi.enable_6ghz_sp_pwrmode_supp=1 #uci set wireless.qcawifi.afc_reg_no_action=1 uci set wireless.wifi2.band='3' uci commit wireless wifi load sleep 5
uci set network.lan.ipaddr='192.168.1.201' uci set network.lan.netmask='255.255.255.0' uci set network.lan.multicast_querier=1 uci set network.lan.igmp_snooping=1 uci commit network /etc/init.d/network restart /etc/init.d/dnsmasq restart sleep 2
uci set wireless.wifi0.htmode=EHT40+ uci set wireless.wifi1.htmode=EHT320 uci set wireless.wifi2.htmode=EHT320 uci set wireless.wifi0.repacd_create_ctrl_fbss=1 uci set wireless.wifi0.repacd_create_ctrl_bbss=1 uci set wireless.wifi1.repacd_create_ctrl_fbss=1 uci set wireless.wifi1.repacd_create_ctrl_bbss=1 uci set wireless.wifi2.repacd_create_ctrl_fbss=1 uci set wireless.wifi2.repacd_create_ctrl_bbss=1 uci set wireless.wifi1.mloenabled=1 uci set wireless.wifi2.mloenabled=1 #uci set wireless.wifi2.regdomain='0x90000' #uci set wireless.wifi2.dcs_afc_random_chan_en=1 uci commit wireless
uci set ezmesh.MultiAP.EnableChannelSelection=1 uci set ezmesh.MultiAP.BkScanIntervalMin=0 uci set ezmesh.MultiAP.ChannelSelectionDelaySec=360 uci set ezmesh.MultiAP.ChannelSelectionOnGlobalPref=0 uci set ezmesh.MultiAP.UseCBSRankForHomeChan='1' uci set ezmesh.MultiAP.EnableChanPrefQuery=0 uci set ezmesh.MultiAP.UseCACResultForChanSelection=1 uci set ezmesh.MultiAP.EnableTopologyOpt=1 uci set ezmesh.MultiAP.TopologyOptMinIncreasePercentage='5' uci set ezmesh.MultiAP.TopologyOptMaxIdleWaitSecs='450' uci set ezmesh.Monitor.DisableSteeringMax11kUnfriendlyClients='0' uci set ezmesh.MultiAP.ControllerChanSelection320MHz='1' uci set ezmesh.MultiAP.ControllerChanSelection240MHz='1' uci set ezmesh.MultiAP.ControllerChanSelection160MHz='1' uci set ezmesh.MultiAP.ControllerChanSelection40MHzOn2G='1' uci set ezmesh.MultiAP.AgentChanSelection320MHz='1' uci set ezmesh.MultiAP.AgentChanSelection240MHz='1' uci set ezmesh.MultiAP.AgentChanSelection160MHz='1' uci set ezmesh.MultiAP.AgentChanSelection40MHzOn2G='1'
uci set ezmesh.MultiAP.EnableTopologyOptBstaMetricsAveraging='1' uci set ezmesh.MultiAP.EnableLastTxRateStatsAveraging='1' uci commit ezmesh
uci set ezlbd.APSteer.DisableSteering11kUnfriendlyClients='0' uci set ezlbd.APSteer.DisableMonitoringLegacyClients='0' uci set ezlbd.APSteer.DisableSteeringInactiveLegacyClients='0' uci set ezlbd.APSteer.DisableSteeringActiveLegacyClients='0' uci set ezlbd.IAS.MaxPollutionTime='150' uci set ezlbd.SteerExec.SteeringProhibitTime='60' uci set ezlbd.Estimator_Adv.11kProhibitTimeLong='60' uci set ezlbd.APSteer.LowRSSIAPSteerThreshold_SIG='35' uci set ezlbd.APSteer.APSteerMaxRetryCount='120' uci set ezlbd.config.InactDetectionFromTx='1' uci set ezlbd.StaDB.MarkAdvClientAsDualBand=1 uci set ezlbd.SteerExec_Adv.StartInBTMActiveState=1 uci set ezlbd.Estimator_Adv.EnableRcpiTypeClassification=0 uci set ezlbd.StaDB.EnableBSSMetricAveragingForMLO='1' uci set ezlbd.config.EnableMulti11kRequest=1 uci set ezlbd.Estimator_Adv.Delayed11kRequesttimer='1' uci set ezlbd.config_Adv.AgeLimit=10 uci set ezlbd.config.PreferredSteeringBand=2 uci commit ezlbd
uci set repacd.repacd.Enable=1 uci set repacd.repacd.ConfigREMode='son' uci set repacd.MAPConfig.Enable=1 uci set repacd.repacd.Ezmesh='1' uci set repacd.repacd.Ezmesh6GEnable='1' uci set repacd.MAPConfig.FirstConfigRequired=1 uci set repacd.MAPConfig.BSSInstantiationTemplate='scheme-d.conf' uci set repacd.MAPConfig.FronthaulAuthType=1 uci set repacd.MAPConfig.FronthaulAuthTypeNwOne=1 uci set repacd.MAPConfig.FronthaulAuthTypeNwTwo=1 uci set repacd.MAPConfig.FronthaulAuthTypeNwThree=1 uci set repacd.MAPConfig.BackhaulAuthType=1 uci set repacd.MAPConfig.MapVersionEnabled=2 uci set repacd.MAPConfig.MapTrafficSeparationEnable=1 uci set repacd.MAPConfig.NumberOfVLANSupported=3 uci set repacd.MAPConfig.FronthaulSSID='MLO-BK-fbss' uci set repacd.MAPConfig.FronthaulKey='map-fbss' uci set repacd.MAPConfig.FronthaulSSIDNwOne='MLO-BK-fbss-one' uci set repacd.MAPConfig.FronthaulKeyNwOne='map-fbss-one' uci set repacd.MAPConfig.FronthaulSSIDNwTwo='MLO-BK-fbss-Two' uci set repacd.MAPConfig.FronthaulKeyNwTwo='map-fbss-Two' uci set repacd.MAPConfig.BackhaulSSID='MLO-BK-bbss' uci set repacd.MAPConfig.BackhaulKey='map-bbss' uci set repacd.MAPConfig.EnableSmartMonitorMode=1 uci set repacd.MAPConfig.BridgeProtoNwOne='static' uci set repacd.MAPConfig.BridgeIPAddressNwOne='192.168.2.201' uci set repacd.MAPConfig.BridgeProtoNwTwo='static' uci set repacd.MAPConfig.BridgeIPAddressNwTwo='192.168.3.201' uci set repacd.MAPConfig.MLDConfig="mld0:5G 6G,mld1:5G 6G" uci set repacd.MAPConfig.FronthaulMld='mld1' uci set repacd.MAPConfig.BackhaulMld='mld0' uci set repacd.MAPConfig.EnableMLO='1' uci set repacd.MAPConfig.R1AgentAssocDisAllowed=1 uci set repacd.MAPConfig.R2AgentAssocDisAllowed=0 uci set repacd.MAPConfig.CombinedR1R2Backhaul=0 uci set repacd.MAPConfig.VlanIDNwPrimary=10 uci set repacd.MAPConfig.VlanIDNwOne=20 uci set repacd.MAPConfig.VlanIDNwTwo=30 uci set repacd.MAPConfig.TSUseSameBridgeMAC='0' #uci set repacd.MAPConfig.AdditionalFH="New_fbss1:11111111:1,New_fbss2:22222222:1,New_fbss3:33333333:0" uci set repacd.MAPConfig.MapFastOnboarding=1 uci set repacd.MAPConfig.EnableSLO='1' uci set repacd.MAPConfig.mld_mac_addr="00:2A:F5:22:14:31" uci set repacd.MAPConfig.EnableSingleNetdev='1' uci commit repacd
uci set wsplcd.config.EnableMLO=1 uci set wsplcd.config.MapMaxBss=8 uci set wsplcd.config.EnableSLO=1 uci commit wsplcd
uci commit /etc/init.d/repacd start |
範例RE:
/usr/sbin/wifimeshconfig map sleep 5
uci set wireless.wifi2.band='3' uci set wireless.qcawifi=qcawifi uci set wireless.qcawifi.samessid_disable=1 uci set wireless.qcawifi.ema_ap_support_wps_in_6ghz=1 uci set wireless.qcawifi.ema_ap_vendor_ie_size_low=0x55556666 uci set wireless.qcawifi.ema_ap_vendor_ie_size_high=0x55555555 uci commit wireless wifi load sleep 5
uci set dhcp.lan.ignore=1 uci delete dhcp.lan1 uci set dhcp.lan1=dhcp uci set dhcp.lan1.ignore=1 uci delete dhcp.lan2 uci set dhcp.lan2=dhcp uci set dhcp.lan2.ignore=1 uci commit dhcp
uci set network.lan.proto=dhcp uci delete network.wan; uci commit network /etc/init.d/network restart /etc/init.d/firewall restart /etc/init.d/dnsmasq restart sleep 5
uci set wireless.wifi1.repacd_map_bsta_preference=1 uci set wireless.wifi0.repacd_map_bsta_preference=2 uci set wireless.wifi2.repacd_map_bsta_preference=3 uci set wireless.wifi0.repacd_create_ctrl_fbss=1 uci set wireless.wifi1.repacd_create_ctrl_fbss=1 uci set wireless.wifi2.repacd_create_ctrl_fbss=1 uci set wireless.wifi1.mloenabled=1 uci set wireless.wifi2.mloenabled=1 uci set wireless.wifi0.htmode=EHT40+ uci set wireless.wifi1.htmode=EHT320 uci set wireless.wifi2.htmode=EHT320 uci set wireless.wifi2.channel=117 uci commit wireless
uci set ezmesh.MultiAP.EnableChannelSelection=1 uci set ezmesh.MultiAP.EnableTopologyOpt=1 uci set ezmesh.MultiAP.TopologyOptMinIncreasePercentage='5' uci set ezmesh.MultiAP.AgentChanSelection320MHz='1' uci set ezmesh.MultiAP.AgentChanSelection240MHz='1' uci set ezmesh.MultiAP.AgentChanSelection160MHz='1' uci set ezmesh.MultiAP.AgentChanSelection40MHzOn2G='1' uci commit ezmesh uci set ezlbd.APSteer.DisableMonitoringLegacyClients='0' uci set ezlbd.APSteer.DisableSteeringInactiveLegacyClients='0' uci set ezlbd.APSteer.DisableSteeringActiveLegacyClients='0' uci set ezlbd.StaDB.MarkAdvClientAsDualBand=1 uci set ezlbd.SteerExec_Adv.StartInBTMActiveState=1 uci set ezlbd.StaDB.EnableBSSMetricAveragingForMLO='1'
uci set repacd.repacd.Enable=1 uci set repacd.repacd.ConfigREMode='son' uci set repacd.MAPConfig.FirstConfigRequired=1 uci set repacd.MAPConfig.Enable=1 uci set repacd.MAPConfig.MapVersionEnabled=2 uci set repacd.MAPConfig.MapTrafficSeparationEnable=1 uci set repacd.MAPConfig.NumberOfVLANSupported=3 uci set repacd.MAPConfig.EnableSmartMonitorMode=1 uci set repacd.MAPConfig.EnableMapTSLogs=1 uci set repacd.MAPConfig.TSUseSameBridgeMAC='0' uci set repacd.MAPConfig.MapFastOnboarding=1 uci set repacd.MAPConfig.StartWithHighestPrefSTA=1 uci set repacd.MAPConfig.EnableMLO='1' uci set repacd.repacd.Ezmesh='1' uci set repacd.repacd.Ezmesh6GEnable='1' uci set repacd.MAPConfig.EnableSingleNetdev='1' uci set repacd.MAPConfig.EnableSLO='1' uci set repacd.MAPConfig.mld_mac_addr="00:3A:F5:62:24:31" uci commit repacd
uci set wsplcd.config.MapMaxBss=8 uci set wsplcd.config.EnableMLO=1 uci set wsplcd.config.EnableSLO=1 uci commit wsplcd
uci commit /etc/init.d/repacd start |
Onboarding :
使用WPS功能做Onboarding。 直接按WPS button或用WPS command模擬按WPS button的動作
==============
env -i ACTION="pressed" BUTTON="wps" /sbin/hotplug-call button; sleep 1; env -i ACTION="released" BUTTON="wps" /sbin/hotplug-call button
解析:
- 首先使用/usr/sbin/wifimeshconfig map 指令,將程式集鏈結到mesh。
- 設定network。 CAP是路由器,RE是Repeater
- 設定wireless。確保6G band可以使用
uci set wireless.qcawifi.ema_ap_support_wps_in_6ghz=1
uci set wireless.wifi2.band='3'
使用mlo的介面
uci set wireless.wifi1.mloenabled=1
uci set wireless.wifi2.mloenabled=1
- 設定ezmesh,基本都是預設值,不需要更改
- 設定ezlbd﹑,基本都是預設值,不需要更改
- 設定repacd, repacd是最主要的啟動程序。會自動去修改wireless中的設定,比如ssid, password等等。
- 設定wpslcd,這個設定是針對clone行為的參數,所以BSS的數量很重要要特別設定 uci set wsplcd.config.MapMaxBss=8
- 最後/etc/init.d/repacd start 用來當作mesh的entry point。進行一系列的設定跟初始化。
結論:
高通Wi-Fi EasyMesh,透過repacd來實現自動設定。在uci中做一些關鍵性的設定。腳本會自行對wireless區動作設置,雖然uci的設定看起來很複雜,但是執行起來也是很直觀的。畢竟高通已經提供了相當完整的腳本應用。
提問:
1.使用mesh與不使用mesh的差異?
Ans: 使用mesh的時候 wireless會被repacd腳本做重新配置,所以不可以自己去建立uci wireless 的內容。
2.為什麼要執行/usr/sbin/wifimeshconfig map?
Ans: 過去高通有SON的功能,使用的hyd等程式相對於ezmesh是相同的功能。這個指令就是做SON, MAP的切換。
3.Wi-Fi 6G的使用一定要啟動MLO嗎?
Ans: MLO是WiFi 7的規格之一,高通的Easymesh同樣可以支持WiFi 6E 所以MLO並不是一定要啟動的。
4.ezmsh、wsplcd、ezlbd這些程式的功能?Ans: ezmesh : 是建立mesh topology的主程式。 ezlbd : 主要實現wifi load balance的功能。 wsplcd: 住要實現wifi clone的功能。
5.一定要使用WPS來做Onboarding嗎?Ans: WPS,DDP都是使用來Onboarding的方法。
評論