Lines Matching refs:vf_id

51 static void hinic_notify_vf_link_status(struct hinic_hwdev *hwdev, u16 vf_id,  in hinic_notify_vf_link_status()  argument
59 if (vf_infos[HW_VF_ID_TO_OS(vf_id)].registered) { in hinic_notify_vf_link_status()
61 link.func_id = hinic_glb_pf_vf_offset(hwdev->hwif) + vf_id; in hinic_notify_vf_link_status()
63 vf_id, HINIC_PORT_CMD_LINK_STATUS_REPORT, in hinic_notify_vf_link_status()
69 HW_VF_ID_TO_OS(vf_id), err, in hinic_notify_vf_link_status()
88 static u16 hinic_vf_info_vlanprio(struct hinic_hwdev *hwdev, int vf_id) in hinic_vf_info_vlanprio() argument
94 pf_vlan = nic_io->vf_infos[HW_VF_ID_TO_OS(vf_id)].pf_vlan; in hinic_vf_info_vlanprio()
95 pf_qos = nic_io->vf_infos[HW_VF_ID_TO_OS(vf_id)].pf_qos; in hinic_vf_info_vlanprio()
102 u8 qos, int vf_id) in hinic_set_vf_vlan() argument
113 vf_vlan.func_id = hinic_glb_pf_vf_offset(hwdev->hwif) + vf_id; in hinic_set_vf_vlan()
126 HW_VF_ID_TO_OS(vf_id), err, vf_vlan.status, out_size); in hinic_set_vf_vlan()
133 static int hinic_set_vf_tx_rate_max_min(struct hinic_hwdev *hwdev, u16 vf_id, in hinic_set_vf_tx_rate_max_min() argument
141 rate_cfg.func_id = hinic_glb_pf_vf_offset(hwdev->hwif) + vf_id; in hinic_set_vf_tx_rate_max_min()
150 HW_VF_ID_TO_OS(vf_id), max_rate, min_rate, err, in hinic_set_vf_tx_rate_max_min()
156 nic_io->vf_infos[HW_VF_ID_TO_OS(vf_id)].max_rate = max_rate; in hinic_set_vf_tx_rate_max_min()
157 nic_io->vf_infos[HW_VF_ID_TO_OS(vf_id)].min_rate = min_rate; in hinic_set_vf_tx_rate_max_min()
163 static int hinic_set_vf_rate_limit(struct hinic_hwdev *hwdev, u16 vf_id, in hinic_set_vf_rate_limit() argument
171 rate_cfg.func_id = hinic_glb_pf_vf_offset(hwdev->hwif) + vf_id; in hinic_set_vf_rate_limit()
178 HW_VF_ID_TO_OS(vf_id), tx_rate, err, rate_cfg.status, in hinic_set_vf_rate_limit()
186 nic_io->vf_infos[HW_VF_ID_TO_OS(vf_id)].max_rate = tx_rate; in hinic_set_vf_rate_limit()
187 nic_io->vf_infos[HW_VF_ID_TO_OS(vf_id)].min_rate = 0; in hinic_set_vf_rate_limit()
192 static int hinic_set_vf_tx_rate(struct hinic_hwdev *hwdev, u16 vf_id, in hinic_set_vf_tx_rate() argument
197 err = hinic_set_vf_tx_rate_max_min(hwdev, vf_id, max_rate, min_rate); in hinic_set_vf_tx_rate()
208 return hinic_set_vf_rate_limit(hwdev, vf_id, max_rate); in hinic_set_vf_tx_rate()
211 static int hinic_init_vf_config(struct hinic_hwdev *hwdev, u16 vf_id) in hinic_init_vf_config() argument
217 vf_info = hwdev->func_to_io.vf_infos + HW_VF_ID_TO_OS(vf_id); in hinic_init_vf_config()
219 func_id = hinic_glb_pf_vf_offset(hwdev->hwif) + vf_id; in hinic_init_vf_config()
227 HW_VF_ID_TO_OS(vf_id)); in hinic_init_vf_config()
232 if (hinic_vf_info_vlanprio(hwdev, vf_id)) { in hinic_init_vf_config()
234 vf_info->pf_qos, vf_id); in hinic_init_vf_config()
237 HW_VF_ID_TO_OS(vf_id)); in hinic_init_vf_config()
243 err = hinic_set_vf_tx_rate(hwdev, vf_id, vf_info->max_rate, in hinic_init_vf_config()
247 HW_VF_ID_TO_OS(vf_id), vf_info->max_rate, in hinic_init_vf_config()
256 static int hinic_register_vf_msg_handler(void *hwdev, u16 vf_id, in hinic_register_vf_msg_handler() argument
266 if (vf_id > nic_io->max_vfs) { in hinic_register_vf_msg_handler()
268 HW_VF_ID_TO_OS(vf_id), HW_VF_ID_TO_OS(nic_io->max_vfs)); in hinic_register_vf_msg_handler()
274 err = hinic_init_vf_config(hw_dev, vf_id); in hinic_register_vf_msg_handler()
280 nic_io->vf_infos[HW_VF_ID_TO_OS(vf_id)].registered = true; in hinic_register_vf_msg_handler()
285 static int hinic_unregister_vf_msg_handler(void *hwdev, u16 vf_id, in hinic_unregister_vf_msg_handler() argument
294 if (vf_id > nic_io->max_vfs) in hinic_unregister_vf_msg_handler()
297 nic_io->vf_infos[HW_VF_ID_TO_OS(vf_id)].registered = false; in hinic_unregister_vf_msg_handler()
302 static int hinic_change_vf_mtu_msg_handler(void *hwdev, u16 vf_id, in hinic_change_vf_mtu_msg_handler() argument
313 vf_id); in hinic_change_vf_mtu_msg_handler()
320 static int hinic_get_vf_mac_msg_handler(void *hwdev, u16 vf_id, in hinic_get_vf_mac_msg_handler() argument
330 vf_info = nic_io->vf_infos + HW_VF_ID_TO_OS(vf_id); in hinic_get_vf_mac_msg_handler()
339 static int hinic_set_vf_mac_msg_handler(void *hwdev, u16 vf_id, in hinic_set_vf_mac_msg_handler() argument
351 vf_info = nic_io->vf_infos + HW_VF_ID_TO_OS(vf_id); in hinic_set_vf_mac_msg_handler()
355 HW_VF_ID_TO_OS(vf_id)); in hinic_set_vf_mac_msg_handler()
366 HW_VF_ID_TO_OS(vf_id), err, mac_out->status, *out_size); in hinic_set_vf_mac_msg_handler()
373 static int hinic_del_vf_mac_msg_handler(void *hwdev, u16 vf_id, in hinic_del_vf_mac_msg_handler() argument
385 vf_info = nic_io->vf_infos + HW_VF_ID_TO_OS(vf_id); in hinic_del_vf_mac_msg_handler()
398 HW_VF_ID_TO_OS(vf_id), err, mac_out->status, *out_size); in hinic_del_vf_mac_msg_handler()
405 static int hinic_get_vf_link_status_msg_handler(void *hwdev, u16 vf_id, in hinic_get_vf_link_status_msg_handler() argument
417 link_forced = vf_infos[HW_VF_ID_TO_OS(vf_id)].link_forced; in hinic_get_vf_link_status_msg_handler()
418 link_up = vf_infos[HW_VF_ID_TO_OS(vf_id)].link_up; in hinic_get_vf_link_status_msg_handler()
554 static void hinic_get_vf_config(struct hinic_hwdev *hwdev, u16 vf_id, in hinic_get_vf_config() argument
559 vfinfo = hwdev->func_to_io.vf_infos + HW_VF_ID_TO_OS(vf_id); in hinic_get_vf_config()
561 ivi->vf = HW_VF_ID_TO_OS(vf_id); in hinic_get_vf_config()
643 static int hinic_add_vf_vlan(struct hinic_hwdev *hwdev, int vf_id, in hinic_add_vf_vlan() argument
649 err = hinic_set_vf_vlan(hwdev, true, vlan, qos, vf_id); in hinic_add_vf_vlan()
653 nic_io->vf_infos[HW_VF_ID_TO_OS(vf_id)].pf_vlan = vlan; in hinic_add_vf_vlan()
654 nic_io->vf_infos[HW_VF_ID_TO_OS(vf_id)].pf_qos = qos; in hinic_add_vf_vlan()
657 vlan, qos, HW_VF_ID_TO_OS(vf_id)); in hinic_add_vf_vlan()
661 static int hinic_kill_vf_vlan(struct hinic_hwdev *hwdev, int vf_id) in hinic_kill_vf_vlan() argument
667 nic_io->vf_infos[HW_VF_ID_TO_OS(vf_id)].pf_vlan, in hinic_kill_vf_vlan()
668 nic_io->vf_infos[HW_VF_ID_TO_OS(vf_id)].pf_qos, in hinic_kill_vf_vlan()
669 vf_id); in hinic_kill_vf_vlan()
674 nic_io->vf_infos[HW_VF_ID_TO_OS(vf_id)].pf_vlan, in hinic_kill_vf_vlan()
675 HW_VF_ID_TO_OS(vf_id)); in hinic_kill_vf_vlan()
677 nic_io->vf_infos[HW_VF_ID_TO_OS(vf_id)].pf_vlan = 0; in hinic_kill_vf_vlan()
678 nic_io->vf_infos[HW_VF_ID_TO_OS(vf_id)].pf_qos = 0; in hinic_kill_vf_vlan()
684 u16 new_vlan, int vf_id) in hinic_update_mac_vlan() argument
693 vf_info = nic_dev->hwdev->func_to_io.vf_infos + HW_VF_ID_TO_OS(vf_id); in hinic_update_mac_vlan()
704 HW_VF_ID_TO_OS(vf_id), vf_info->vf_mac_addr, old_vlan); in hinic_update_mac_vlan()
715 HW_VF_ID_TO_OS(vf_id), vf_info->vf_mac_addr, new_vlan); in hinic_update_mac_vlan()
791 static int hinic_set_vf_trust(struct hinic_hwdev *hwdev, u16 vf_id, in hinic_set_vf_trust() argument
802 vf_infos[vf_id].trust = trust; in hinic_set_vf_trust()
903 static int hinic_set_vf_spoofchk(struct hinic_hwdev *hwdev, u16 vf_id, in hinic_set_vf_spoofchk() argument
916 spoofchk_cfg.func_id = hinic_glb_pf_vf_offset(hwdev->hwif) + vf_id; in hinic_set_vf_spoofchk()
925 HW_VF_ID_TO_OS(vf_id), err, spoofchk_cfg.status, in hinic_set_vf_spoofchk()
930 vf_infos[HW_VF_ID_TO_OS(vf_id)].spoofchk = spoofchk; in hinic_set_vf_spoofchk()
966 static int hinic_set_vf_link_state(struct hinic_hwdev *hwdev, u16 vf_id, in hinic_set_vf_link_state() argument
975 vf_infos[HW_VF_ID_TO_OS(vf_id)].link_forced = false; in hinic_set_vf_link_state()
976 vf_infos[HW_VF_ID_TO_OS(vf_id)].link_up = nic_io->link_status ? in hinic_set_vf_link_state()
981 vf_infos[HW_VF_ID_TO_OS(vf_id)].link_forced = true; in hinic_set_vf_link_state()
982 vf_infos[HW_VF_ID_TO_OS(vf_id)].link_up = true; in hinic_set_vf_link_state()
986 vf_infos[HW_VF_ID_TO_OS(vf_id)].link_forced = true; in hinic_set_vf_link_state()
987 vf_infos[HW_VF_ID_TO_OS(vf_id)].link_up = false; in hinic_set_vf_link_state()
995 hinic_notify_vf_link_status(hwdev, vf_id, link_status); in hinic_set_vf_link_state()
1000 int hinic_ndo_set_vf_link_state(struct net_device *netdev, int vf_id, int link) in hinic_ndo_set_vf_link_state() argument
1007 if (vf_id >= sriov_info->num_vfs) { in hinic_ndo_set_vf_link_state()
1009 "Invalid VF Identifier %d\n", vf_id); in hinic_ndo_set_vf_link_state()
1014 OS_VF_ID_TO_HW(vf_id), link); in hinic_ndo_set_vf_link_state()
1018 static int nic_pf_mbox_handler(void *hwdev, u16 vf_id, u8 cmd, void *buf_in, in nic_pf_mbox_handler() argument
1032 if (!hinic_mbox_check_cmd_valid(hwdev, nic_cmd_support_vf, vf_id, cmd, in nic_pf_mbox_handler()
1046 err = vf_msg_handle->cmd_msg_handler(hwdev, vf_id, in nic_pf_mbox_handler()
1064 static int cfg_mbx_pf_proc_vf_msg(void *hwdev, u16 vf_id, u8 cmd, void *buf_in, in cfg_mbx_pf_proc_vf_msg() argument
1084 static int hinic_init_vf_infos(struct hinic_func_to_io *nic_io, u16 vf_id) in hinic_init_vf_infos() argument
1096 vf_infos[vf_id].link_forced = false; in hinic_init_vf_infos()
1099 vf_infos[vf_id].link_forced = true; in hinic_init_vf_infos()
1100 vf_infos[vf_id].link_up = true; in hinic_init_vf_infos()
1103 vf_infos[vf_id].link_forced = true; in hinic_init_vf_infos()
1104 vf_infos[vf_id].link_up = false; in hinic_init_vf_infos()
1115 static void hinic_clear_vf_infos(struct hinic_dev *nic_dev, u16 vf_id) in hinic_clear_vf_infos() argument
1119 vf_infos = nic_dev->hwdev->func_to_io.vf_infos + HW_VF_ID_TO_OS(vf_id); in hinic_clear_vf_infos()
1123 if (hinic_vf_info_vlanprio(nic_dev->hwdev, vf_id)) in hinic_clear_vf_infos()
1124 hinic_kill_vf_vlan(nic_dev->hwdev, vf_id); in hinic_clear_vf_infos()
1127 hinic_set_vf_tx_rate(nic_dev->hwdev, vf_id, 0, 0); in hinic_clear_vf_infos()
1130 hinic_set_vf_spoofchk(nic_dev->hwdev, vf_id, false); in hinic_clear_vf_infos()
1133 hinic_set_vf_trust(nic_dev->hwdev, vf_id, false); in hinic_clear_vf_infos()
1137 hinic_init_vf_infos(&nic_dev->hwdev->func_to_io, HW_VF_ID_TO_OS(vf_id)); in hinic_clear_vf_infos()