---
title: dcmi_get_device_network_health
description: "int dcmi_get_device_network_health(int card_id, int device_id, enum dcmi_rdfx_detect_result *result)"
url: https://www.hiascend.com/document/detail/zh/HDK/latest/A2/A2DCMI/dcmi_088.html
sourcePath: /source/zh/HDK/2610/A2/A2DCMI/dcmi_088.html
indexId: b9ac8eced4aaaccbf08c586ce04e4cfa6a008438469d8f4178a9feb28d14522243
---
# dcmi_get_device_network_health

#### 函数原型

int dcmi_get_device_network_health(int card_id, int device_id, enum dcmi_rdfx_detect_result *result)


#### 功能说明

查询RoCE网卡的IP地址的连通状态。


#### 参数说明

| 参数名称 | 输入/输出 | 类型 | 描述 |
| --- | --- | --- | --- |
| card\_id | 输入 | int | 设备ID，当前实际支持的ID通过dcmi\_get\_card\_list接口获取。 |
| device\_id | 输入 | int | 芯片ID，通过dcmi\_get\_device\_id\_in\_card接口获取。取值范围如下： NPU芯片：[0, device\_id\_max\-1]。 说明： device\_id\_max值为1，当device\_id为0时表示NPU芯片；当device\_id为1时表示MCU芯片。 |
| result | 输出 | enum dcmi\_rdfx\_detect\_result \* | 查询RoCE网卡的IP地址的连通状态，内容定义为： enum dcmi\_rdfx\_detect\_result { DCMI\_RDFX\_DETECT\_OK = 0, //网络健康状态正常 DCMI\_RDFX\_DETECT\_SOCK\_FAIL = 1, //网络套接字创建失败 DCMI\_RDFX\_DETECT\_RECV\_TIMEOUT = 2, //网口收包超时 DCMI\_RDFX\_DETECT\_UNREACH = 3, //侦测ip地址不可达 DCMI\_RDFX\_DETECT\_TIME\_EXCEEDED = 4, //发送侦测报文执行超时 DCMI\_RDFX\_DETECT\_FAULT = 5, //发送侦测报文失败 DCMI\_RDFX\_DETECT\_INIT = 6, //侦测任务初始化中 DCMI\_RDFX\_DETECT\_THREAD\_ERR = 7, //侦测任务创建失败 DCMI\_RDFX\_DETECT\_IP\_SET = 8, //正在设置侦测ip地址 DCMI\_RDFX\_DETECT\_MAX = 0xFF }; |


#### 返回值说明

| 类型 | 描述 |
| --- | --- |
| int | 处理结果： 成功：返回0。 失败：返回码请参见返回码。 |


#### 异常处理

无。


#### 约束说明


**表1 不同部署场景下的支持情况**

| 产品形态 | 物理机场景（裸机）root用户 | 物理机场景（裸机）运行用户组（非root用户） | 物理机+普通容器场景root用户 | 物理机+容器AVI场景root用户 |
| --- | --- | --- | --- | --- |
| Atlas 900 A2 PoD 集群基础单元 | Y | Y | Y | N |
| Atlas 800T A2 训练服务器 | Y | Y | Y | N |
| Atlas 800I A2 推理服务器 | Y | Y | Y | N |
| Atlas 200T A2 Box16 异构子框 | Y | Y | Y | N |
| A200I A2 Box 异构组件 | Y | Y | Y | N |
| A300I A2 推理卡 | N | N | N | N |
| 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 | 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 | 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 | 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 | 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 |


在调用dcmi_get_device_network_health接口前，需在Host侧以root用户执行如下命令设置IP地址：

- 配置RoCE网卡的IP地址、子网掩码

```
hccn_tool -i
devid
-ip -s
address
%s
netmask
%s
```

您需要根据实际情况，修改如下内容：

  - devid：设置为设备ID。
  - address后的%s：设置为RoCE网卡的IP地址。
  - netmask后的%s：设置为子网掩码。
- 配置用于检测RoCE网卡的IP地址是否连通的IP地址

```
hccn_tool -i
devid
-netdetect -s
address
%s
```

您需要根据实际情况，修改如下内容：

  - devid：设置为设备ID。
  - address后的%s：设置为用于检测RoCE网卡的IP地址是否连通的IP地址，例如路由器的IP地址。


#### 调用示例

```
…
int ret = 0;
enum dcmi_rdfx_detect_result health = DCMI_RDFX_DETECT_MAX;
int card_id = 0;
int device_id = 0;
ret = dcmi_get_device_network_health(card_id, device_id, &health);
…
```
