dcmi_set_device_ip接口原型
函数原型
int dcmi_set_device_ip(int card_id, int device_id, enum dcmi_port_type input_type, int port_id, struct dcmi_ip_addr *ip, struct dcmi_ip_addr *mask)
功能说明
设置IP地址和mask地址。
参数说明
参数名称  | 
输入/输出  | 
类型  | 
描述  | 
|---|---|---|---|
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]。  | 
ip  | 
输入  | 
struct dcmi_ip_addr *  | 
IP地址 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类型 };  | 
mask  | 
输入  | 
struct dcmi_ip_addr *  | 
mask地址 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  | 
处理结果: 
  | 
异常处理
无。
约束说明
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 ip_addr = 0xC801A8C0; //192.168.1.200(仅用作示例,以实际配置网关地址为准)
unsigned int mask_addr = 0x00FFFFFF; //255.255.255.0(仅用作示例,以实际配置网关地址为准)
struct dcmi_ip_addr ip_address = {0};
struct dcmi_ip_addr ip_mask_address = {0};
memcpy(&(ip_address.u_addr.ip4[0]),&ip_addr,4);
memcpy(&(ip_mask_address.u_addr.ip4[0]),&mask_addr,4);
ret = dcmi_set_device_ip(card_id,device_id, DCMI_ROCE_PORT, port_id, &ip_address, &ip_mask_address);
if (ret != 0) {
    //todo:记录日志
    return ret;
}
…