WiFi | 软件:茶鄧淺談 高通 Wi-Fi EasyMesh 初始設定Sample 1

前言:

高通支持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

解析:

  1. 首先使用/usr/sbin/wifimeshconfig map 指令,將程式集鏈結到mesh。
  2. 設定network。 CAP是路由器,RE是Repeater
  3. 設定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

  1. 設定ezmesh,基本都是預設值,不需要更改
  2. 設定ezlbd﹑,基本都是預設值,不需要更改
  3. 設定repacd, repacd是最主要的啟動程序。會自動去修改wireless中的設定,比如ssid, password等等。
  4. 設定wpslcd,這個設定是針對clone行為的參數,所以BSS的數量很重要要特別設定 uci set wsplcd.config.MapMaxBss=8
  5. 最後/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的方法。

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

參考來源

評論