void beiscsi_create_def_ifaces(struct beiscsi_hba *phba) { struct be_cmd_get_if_info_resp if_info; if (!mgmt_get_if_info(phba, BE2_IPV4, &if_info)) beiscsi_create_ipv4_iface(phba); if (!mgmt_get_if_info(phba, BE2_IPV6, &if_info)) beiscsi_create_ipv6_iface(phba); }
static int beiscsi_set_ipv4(struct Scsi_Host *shost, struct iscsi_iface_param_info *iface_param, void *data, uint32_t dt_len) { struct beiscsi_hba *phba = iscsi_host_priv(shost); int ret = 0; /* Check the param */ switch (iface_param->param) { case ISCSI_NET_PARAM_IPV4_GW: ret = mgmt_set_gateway(phba, iface_param); break; case ISCSI_NET_PARAM_IPV4_BOOTPROTO: if (iface_param->value[0] == ISCSI_BOOTPROTO_DHCP) ret = mgmt_set_ip(phba, iface_param, NULL, ISCSI_BOOTPROTO_DHCP); else if (iface_param->value[0] == ISCSI_BOOTPROTO_STATIC) ret = beiscsi_set_static_ip(shost, iface_param, data, dt_len); else beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, "BS_%d : Invalid BOOTPROTO: %d\n", iface_param->value[0]); break; case ISCSI_NET_PARAM_IFACE_ENABLE: if (iface_param->value[0] == ISCSI_IFACE_ENABLE) ret = beiscsi_create_ipv4_iface(phba); else iscsi_destroy_iface(phba->ipv4_iface); break; case ISCSI_NET_PARAM_IPV4_SUBNET: case ISCSI_NET_PARAM_IPV4_ADDR: ret = beiscsi_set_static_ip(shost, iface_param, data, dt_len); break; case ISCSI_NET_PARAM_VLAN_ENABLED: case ISCSI_NET_PARAM_VLAN_TAG: ret = beiscsi_set_vlan_tag(shost, iface_param); break; default: beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, "BS_%d : Param %d not supported\n", iface_param->param); } return ret; }