dcmi_set_traceroute接口原型
函数原型
int dcmi_set_traceroute (int card_id, int device_id, struct traceroute param_info, struct node_info *ret_info[], unsigned int ret_info_size)
功能说明
配置Traceroute参数探测报文途径的网络节点信息。
参数说明
参数名称 |
输入/输出 |
类型 |
描述 |
---|---|---|---|
card_id |
输入 |
int |
指定NPU管理单元ID,当前实际支持的ID通过dcmi_get_card_list接口获取。 |
device_id |
输入 |
int |
指定设备编号,通过dcmi_get_device_id_in_card接口获取。取值范围如下: NPU芯片:[0, device_id_max-1]。 |
param_info |
输入 |
struct traceroute |
traceroute接口的入参 struct tracerout_result { int max_ttl; //探测报文的最大跳数。取值范围:-1,1~255。 设置为-1时,表示默认值为30 int tos; //IPv4设置TOS优先级,取值范围:-1~63。IPv6设置流量控制值,取值范围:-1~255。数值越大优先级越高,设置为-1时,表示默认值为0 int waittime; //设置等待探测响应的最大时间。取值范围:-1,1~60,单位:s,设置为-1时,表示默认值为3s int sport; //设置源端口号,取值范围:-1~65535。设置为-1时,表示默认值为大于30000的随机值 int dport; //设置目的端口号,取值范围:-1~65535。设置为-1时,表示默认值为大于30000的随机值 char dest_ip[48]; //目标主机IP bool ipv6_flag; //是否使用ipv6协议。0表示不使用,1表示使用 bool reset_flag; //终止device侧traceroute所有后台进程,当traceroute测试异常时配置为1结束device侧进程。 }; 说明:
端口号设置为0时,系统会使用大于30000的随机值。 |
ret_info[] |
输出 |
struct node_info * |
traceroute接口的返回信息 struct tracerout_result { int mask; //掩码,表示后面的数据是否有效,例如:0xFF代表mask后的8个字段是有效的 char ip[48]; //路由节点的ip地址 int snt; //发送ICMP请求报文的数量 double loss; //对应节点的丢包率 double last; //最新报文的响应时间,单位ms double avg; //所有报文的平均响应时间,单位ms double best; //报文最快响应时间,单位ms double wrst; //报文最慢响应时间,单位ms double stdev; //标准偏差值,越大说明相应节点越不稳定 char reserve[64]; //附加扩展信息 }; 说明: 返回信息的使用结构体数组存储,每个节点信息使用一个结构体。 |
ret_info_size |
输入 |
unsigned int |
传入的节点信息结构体的大小。 |
返回值
类型 |
描述 |
---|---|
int |
处理结果:
|
异常处理
无
约束说明
Linux物理机 |
Linux物理机容器 |
|
---|---|---|
root用户 |
运行用户组(非root用户) |
root用户 |
N |
N |
N |
调用示例
… int ret = 0; int card_id = 0; int device_id = 0; struct traceroute param_info = {0}; struct node_info ret_info[10] = {0}; size_t ret_info_size = sizeof(ret_info); param_info.sport = 40000; param_info.waittime = 5; strncpy_s(param_info.dest_ip, sizeof(param_info.dest_ip), "x.x.x.x", strlen("x.x.x.x")); ret = dcmi_set_traceroute_get_info(card_id, device_id, param_info, &ret_info, ret_info_size); if (ret != 0){ //todo:记录日志 return ret; } …

x.x.x.x表示目的IP地址。