Mesh组网
## Mesh组网
Mesh分为二种:
* 常规Mesh
* 中继模式不能Mesh;
* 常规Mesh仅限于H3C路由器之间Mesh;
* 无线Mesh需要开启5G Wi-Fi。
* EasyMesh
* 无线中继模式不能Mesh,有线中继可以。
* EasyMesh支持适配了EasyMesh协议的非H3C厂商路由器。
两种不同协议的Mesh设备不能Mesh。
* 无线Mesh需要开启5G Wi-Fi。
>w 功能需要能力集29位支持(支持则代表网关有常规Mesh或者EasyMesh功能)
#### 一、 Mesh组网
导入头文件`#import <H3CMagicKit/H3CGatewayObject+Mesh.h`
#### 1.1 获取Mesh组网路由器列表
获取当前智能带宽开关状态、以及WAN1、WAN2带宽状态。
```
[H3CGatewayObject requestForAllMeshRoutesWithSuccess:^(id result) {
NSArray *routeGroupList = result[@"routeGroupList"];
} failure:^(H3CError *error) {
}];
```
返回数据result:
```
{
autoNetStatus = 1;
maxChildRouteNum = 8;
meshStatus = 2;
routeGroupList = (
{
childRouteStatus = 0;
currentVersion = B5V100R006;
deviceType = "H3C B5";
networkMode = 0;
primaryOrChild = 1;
productNum = 4;
productSeriesId = 2;
routeIp = "";
routeMac = "";
routeName = "H3C_B513\U697c\U5b9e\U9a8c\U5ba4";
routeSn = 219801A1WX718AW00046;
updateProcess = 0;
updateStatus = 0;
wifi5GPower = 0;
wifi5GStatus = 0;
wifiPower = 0;
wifiStatus = 0;
}
);
wifi5GState = 2;
}
```
字段说明:
|返回字段|描述|
|-|-|
|meshStatus|Mesh开关: 1、关闭 2、开启。(当开启时,才能组网)|
|autoNetStatus|自动组网开关: 1、关闭 2、开启。(当开启时,会自动查找周边设备组网)|
|maxChildRouteNum|允许组网的子路由上限|
|wifi5GState|5G Wi-Fi开启状态: 1、关闭 2、开启。(5G关闭时不能Mesh组网)|
|routeSn|网关序列号|
|primaryOrChild|1、主路由 2、子路由|
|childRouteStatus|1、配置中|
|updateStatus|更新状态: 1、需要更新 2、不需要更新|
|updateProcess|更新进度: 1、下载版本中 2、更新版本中 3、重启中|
|wifiStatus|2.4G Wi-Fi状态: 1、关闭 2、开启|
|wifiPower|2.4G Wi-Fi功率: 1、强 2、一般 3、弱 4、弱|
|wifi5GStatus|5G Wi-Fi状态: 1、关闭 2、开启|
|wifi5GPower|5G Wi-Fi功率: 1、强 2、一般 3、弱 4、弱|
#### 1.2 修改子路由信息
配置子路由,如修改子路由名称、功率等。
```
[H3CGatewayObject requestForSetMeshSubRouteWithAttribute:attribute success:^(id obj) {
} failure:^(H3CError *error) {
}];
```
参数attribute:
```
NSMutableDictionary *attribute = [NSMutableDictionary dictionary];
[attribute tmpSetNewObject:self.routeMac forKey:@"routeMac"];
[attribute tmpSetNewObject:self.routeName forKey:@"routeName"];
[attribute tmpSetNewObject:self.wifiPower forKey:@"wifiPower"];
[attribute tmpSetNewObject:self.wifiStatus forKey:@"wifiStatus"];
[attribute tmpSetNewObject:self.wifi5GStatus forKey:@"wifi5GStatus"];
[attribute tmpSetNewObject:self.wifi5GPower forKey:@"wifi5GPower"];
```
|返回字段|描述|
|-|-|
| routeMac | 路由mac|
| routeName |路由mac|
| wifiPower | 2.4G Wi-Fi功率: 1、强 2、一般 3、弱 4、弱|
| wifiStatus |2.4G状态:1、关闭 2、开启|
| wifi5GPower |5G功率|
| wifi5GStatus |5G Wi-Fi功率: 1、强 2、一般 3、弱 4、弱|
以上参数,需要全部赋值,若不修改则传接口1.1中数据返回。
#### 1.3 开启关闭主路由的组网
开启/关闭主路由的组网功能;开启/关闭主路由的自动组网功能(自动组网尽量关闭)。
```
[H3CGatewayObject requestForSetMeshStatus:YES autoNetStatus:NO success:^(id result) {
} failure:^(H3CError *error) {
}];
```
#### 1.4 一键升级子路由
下发指令后,会升级主路由下的所有子路由器的版本。
```
[H3CGatewayObject requestForUpgradeSystemWithSuccess:^(id result) {
} failure:^(H3CError *error) {
}];
```
#### 1.5 子路由加网
主要要开启Mesh组网开关,才能开启加网。
子路由包含2种加网方式:
* 扫码加网: 扫描子路由Mac地址加网
* 一键组网: 自动扫描周边子路由加网
```
[H3CGatewayObject requestForInsertSubRoutesWithAddMode:addMode macAddress:macAddress success:^(id result) {
} failure:^(H3CError *error) {
}];
```
|参数|描述|
|-|-|
| addMode | 加网方式: 1、扫码加网 2、一键加网|
| macAddress |子路由mac地址,一键加网时传空|
>w Easy Mesh支持一键加网,不支持扫码加网。Easy Mesh开启加网后,请立即按下子路由的Mesh按键,会在2分钟内自动配对,完成组网。
#### 1.6 获取常规TOPO图信息
获取TOPO信息
```
[H3CGatewayObject requestForSignalTopoWithSuccess:^(id result) {
} failure:^(H3CError *error) {
}];
```
|参数|描述|
|-|-|
| meshRouterList | Mesh路由器列表,单条数据信息对应数据模型`H3CMeshTopoModel` |
| routeName |子路由mac地址,一键加网时传空|
| routeMac |子路由mac地址,一键加网时传空|
| meshStatus |1:主 2:子|
| productNum |产品编号|
| productSeriesId |产品序列号|
| meshNeighborList | 相邻的网关,单条数据信息对应数据模型 `H3CMeshNeighborModel` |
>w Mesh TOPO图,一个网关对应多个相设备关系
#### 1.7 获取EasyMesh TOPO图信息
获取EasyMesh TOPO图信息
```
[H3CGatewayObject requestEasyMeshTopoListWithSuccess:^(H3CEasyMeshTopoList * _Nonnull topoListModel) {
} failure:^(H3CError *error) {
}];
```
>w Easy Mesh关系图,每个网关只存在一个上级网关节点。需要能力集69位支持。
#### 三、 能力集
| 能力集序号|能力集属性|描述|
|-|-|-|
|29| isSuportMesh | 是否支持组网功能|
|69| isSupportEasyMesh | 是否支持Easy Mesh, 若支持Eash Mesh则非常规的Mesh|
|70| isNotSupportSanningMesh | 是否不支持扫码组网|
|71| isNotSupportEasyMeshTopo | 是否不支持EasyMesh Topo图|