static void qed_set_hw_tunn_mode_port(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt, struct qed_tunnel_info *p_tunn) { if (p_tunn->vxlan_port.b_update_port) qed_set_vxlan_dest_port(p_hwfn, p_ptt, p_tunn->vxlan_port.port); if (p_tunn->geneve_port.b_update_port) qed_set_geneve_dest_port(p_hwfn, p_ptt, p_tunn->geneve_port.port); qed_set_hw_tunn_mode(p_hwfn, p_ptt, p_tunn); }
/* Set pf update ramrod command params */ int qed_sp_pf_update_tunn_cfg(struct qed_hwfn *p_hwfn, struct qed_tunn_update_params *p_tunn, enum spq_mode comp_mode, struct qed_spq_comp_cb *p_comp_data) { struct qed_spq_entry *p_ent = NULL; struct qed_sp_init_data init_data; int rc = -EINVAL; /* Get SPQ entry */ memset(&init_data, 0, sizeof(init_data)); init_data.cid = qed_spq_get_cid(p_hwfn); init_data.opaque_fid = p_hwfn->hw_info.opaque_fid; init_data.comp_mode = comp_mode; init_data.p_comp_data = p_comp_data; rc = qed_sp_init_request(p_hwfn, &p_ent, COMMON_RAMROD_PF_UPDATE, PROTOCOLID_COMMON, &init_data); if (rc) return rc; qed_tunn_set_pf_update_params(p_hwfn, p_tunn, &p_ent->ramrod.pf_update.tunnel_config); rc = qed_spq_post(p_hwfn, p_ent, NULL); if (rc) return rc; if (p_tunn->update_vxlan_udp_port) qed_set_vxlan_dest_port(p_hwfn, p_hwfn->p_main_ptt, p_tunn->vxlan_udp_port); if (p_tunn->update_geneve_udp_port) qed_set_geneve_dest_port(p_hwfn, p_hwfn->p_main_ptt, p_tunn->geneve_udp_port); qed_set_hw_tunn_mode(p_hwfn, p_hwfn->p_main_ptt, p_tunn->tunn_mode); p_hwfn->cdev->tunn_mode = p_tunn->tunn_mode; return rc; }