下载
中文
注册

dcmi_set_device_gateway接口原型

函数原型

int dcmi_set_device_gateway(int card_id, int device_id, enum dcmi_port_type input_type, int port_id, struct dcmi_ip_addr *gateway)

功能说明

设置网关地址。

参数说明

参数名称

输入/输出

类型

描述

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]。

input_type

输入

enum dcmi_port_type

指定网口类型。

enum dcmi_port_type {

DCMI_VNIC_PORT = 0, //虚拟网口

DCMI_ROCE_PORT = 1, //roce网口

DCMI_INVALID_PORT

};

port_id

输入

int

指定网口号,保留字段。取值范围:[0, 255]。

gateway

输入

struct dcmi_ip_addr *

网关地址

struct dcmi_ip_addr {

union {

unsigned char ip6[16]; //ipv6地址

unsigned char ip4[4]; //ipv4地址

} u_addr;

enum dcmi_ip_addr_type ip_type; //ip类型

};

返回值

类型

描述

int

处理结果:

  • 成功:返回0。
  • 失败:返回码请参见返回码

异常处理

无。

约束说明

表1 部署场景

Linux物理机

Linux物理机容器

root用户

运行用户组(非root用户)

root用户

N

N

N

调用示例

… 
int ret = 0;
int card_id = 0;
int device_id = 0;
int port_id = 0;
unsigned int gateway_address = 0xC801A8C0; //192.168.1.200(仅用作示例,以实际配置网关地址为准)
struct dcmi_ip_addr ip_gateway_address = {0};
memcpy(&(ip_gateway_address.u_addr.ip4[0]),&gateway_address,4);
ret = dcmi_set_device_gateway(card_id,device_id, DCMI_ROCE_PORT, port_id, &ip_gateway_address);
if (ret != 0) {
    //todo:记录日志 
    return ret; 
}
…