Lines Matching refs:payload

30 #define MLXSW_REG_ZERO(type, payload) memset(payload, 0, MLXSW_REG(type)->len)
49 static inline void mlxsw_reg_sgcr_pack(char *payload, bool llb)
51 MLXSW_REG_ZERO(sgcr, payload);
52 mlxsw_reg_sgcr_llb_set(payload, !!llb);
108 static inline void mlxsw_reg_smid_pack(char *payload, u16 mid,
111 MLXSW_REG_ZERO(smid, payload);
112 mlxsw_reg_smid_swid_set(payload, 0);
113 mlxsw_reg_smid_mid_set(payload, mid);
114 mlxsw_reg_smid_port_set(payload, port, set);
115 mlxsw_reg_smid_port_mask_set(payload, port, 1);
164 static inline void mlxsw_reg_sspr_pack(char *payload, u8 local_port)
166 MLXSW_REG_ZERO(sspr, payload);
167 mlxsw_reg_sspr_m_set(payload, 1);
168 mlxsw_reg_sspr_local_port_set(payload, local_port);
169 mlxsw_reg_sspr_sub_port_set(payload, 0);
170 mlxsw_reg_sspr_system_port_set(payload, local_port);
198 static inline void mlxsw_reg_sfdat_pack(char *payload, u32 age_time)
200 MLXSW_REG_ZERO(sfdat, payload);
201 mlxsw_reg_sfdat_swid_set(payload, 0);
202 mlxsw_reg_sfdat_age_time_set(payload, age_time);
279 static inline void mlxsw_reg_sfd_pack(char *payload, enum mlxsw_reg_sfd_op op,
282 MLXSW_REG_ZERO(sfd, payload);
283 mlxsw_reg_sfd_op_set(payload, op);
284 mlxsw_reg_sfd_record_locator_set(payload, record_locator);
391 static inline void mlxsw_reg_sfd_rec_pack(char *payload, int rec_index,
396 u8 num_rec = mlxsw_reg_sfd_num_rec_get(payload);
399 mlxsw_reg_sfd_num_rec_set(payload, rec_index + 1);
400 mlxsw_reg_sfd_rec_swid_set(payload, rec_index, 0);
401 mlxsw_reg_sfd_rec_type_set(payload, rec_index, rec_type);
402 mlxsw_reg_sfd_rec_mac_memcpy_to(payload, rec_index, mac);
403 mlxsw_reg_sfd_rec_action_set(payload, rec_index, action);
406 static inline void mlxsw_reg_sfd_uc_pack(char *payload, int rec_index,
412 mlxsw_reg_sfd_rec_pack(payload, rec_index,
414 mlxsw_reg_sfd_rec_policy_set(payload, rec_index, policy);
415 mlxsw_reg_sfd_uc_sub_port_set(payload, rec_index, 0);
416 mlxsw_reg_sfd_uc_fid_vid_set(payload, rec_index, fid_vid);
417 mlxsw_reg_sfd_uc_system_port_set(payload, rec_index, local_port);
420 static inline void mlxsw_reg_sfd_uc_unpack(char *payload, int rec_index,
424 mlxsw_reg_sfd_rec_mac_memcpy_from(payload, rec_index, mac);
425 *p_fid_vid = mlxsw_reg_sfd_uc_fid_vid_get(payload, rec_index);
426 *p_local_port = mlxsw_reg_sfd_uc_system_port_get(payload, rec_index);
465 mlxsw_reg_sfd_uc_lag_pack(char *payload, int rec_index,
471 mlxsw_reg_sfd_rec_pack(payload, rec_index,
474 mlxsw_reg_sfd_rec_policy_set(payload, rec_index, policy);
475 mlxsw_reg_sfd_uc_lag_sub_port_set(payload, rec_index, 0);
476 mlxsw_reg_sfd_uc_lag_fid_vid_set(payload, rec_index, fid_vid);
477 mlxsw_reg_sfd_uc_lag_lag_vid_set(payload, rec_index, lag_vid);
478 mlxsw_reg_sfd_uc_lag_lag_id_set(payload, rec_index, lag_id);
481 static inline void mlxsw_reg_sfd_uc_lag_unpack(char *payload, int rec_index,
485 mlxsw_reg_sfd_rec_mac_memcpy_from(payload, rec_index, mac);
486 *p_vid = mlxsw_reg_sfd_uc_lag_fid_vid_get(payload, rec_index);
487 *p_lag_id = mlxsw_reg_sfd_uc_lag_lag_id_get(payload, rec_index);
518 mlxsw_reg_sfd_mc_pack(char *payload, int rec_index,
522 mlxsw_reg_sfd_rec_pack(payload, rec_index,
524 mlxsw_reg_sfd_mc_pgi_set(payload, rec_index, 0x1FFF);
525 mlxsw_reg_sfd_mc_fid_vid_set(payload, rec_index, fid_vid);
526 mlxsw_reg_sfd_mc_mid_set(payload, rec_index, mid);
568 mlxsw_reg_sfd_uc_tunnel_pack(char *payload, int rec_index,
574 mlxsw_reg_sfd_rec_pack(payload, rec_index,
577 mlxsw_reg_sfd_rec_policy_set(payload, rec_index, policy);
578 mlxsw_reg_sfd_uc_tunnel_uip_msb_set(payload, rec_index, uip >> 24);
579 mlxsw_reg_sfd_uc_tunnel_uip_lsb_set(payload, rec_index, uip);
580 mlxsw_reg_sfd_uc_tunnel_fid_set(payload, rec_index, fid);
581 mlxsw_reg_sfd_uc_tunnel_protocol_set(payload, rec_index, proto);
620 static inline void mlxsw_reg_sfn_pack(char *payload)
622 MLXSW_REG_ZERO(sfn, payload);
623 mlxsw_reg_sfn_swid_set(payload, 0);
624 mlxsw_reg_sfn_end_set(payload, 0);
625 mlxsw_reg_sfn_num_rec_set(payload, MLXSW_REG_SFN_REC_MAX_COUNT);
686 static inline void mlxsw_reg_sfn_mac_unpack(char *payload, int rec_index,
690 mlxsw_reg_sfn_rec_mac_memcpy_from(payload, rec_index, mac);
691 *p_vid = mlxsw_reg_sfn_mac_fid_get(payload, rec_index);
692 *p_local_port = mlxsw_reg_sfn_mac_system_port_get(payload, rec_index);
702 static inline void mlxsw_reg_sfn_mac_lag_unpack(char *payload, int rec_index,
706 mlxsw_reg_sfn_rec_mac_memcpy_from(payload, rec_index, mac);
707 *p_vid = mlxsw_reg_sfn_mac_fid_get(payload, rec_index);
708 *p_lag_id = mlxsw_reg_sfn_mac_lag_lag_id_get(payload, rec_index);
757 mlxsw_reg_sfn_uc_tunnel_unpack(char *payload, int rec_index, char *mac,
763 mlxsw_reg_sfn_rec_mac_memcpy_from(payload, rec_index, mac);
764 *p_fid = mlxsw_reg_sfn_mac_fid_get(payload, rec_index);
765 uip_msb = mlxsw_reg_sfn_uc_tunnel_uip_msb_get(payload, rec_index);
766 uip_lsb = mlxsw_reg_sfn_uc_tunnel_uip_lsb_get(payload, rec_index);
768 *p_proto = mlxsw_reg_sfn_uc_tunnel_protocol_get(payload, rec_index);
803 static inline void mlxsw_reg_spms_pack(char *payload, u8 local_port)
805 MLXSW_REG_ZERO(spms, payload);
806 mlxsw_reg_spms_local_port_set(payload, local_port);
809 static inline void mlxsw_reg_spms_vid_pack(char *payload, u16 vid,
812 mlxsw_reg_spms_state_set(payload, vid, state);
843 static inline void mlxsw_reg_spvid_pack(char *payload, u8 local_port, u16 pvid)
845 MLXSW_REG_ZERO(spvid, payload);
846 mlxsw_reg_spvid_local_port_set(payload, local_port);
847 mlxsw_reg_spvid_pvid_set(payload, pvid);
932 static inline void mlxsw_reg_spvm_pack(char *payload, u8 local_port,
939 MLXSW_REG_ZERO(spvm, payload);
940 mlxsw_reg_spvm_local_port_set(payload, local_port);
941 mlxsw_reg_spvm_num_rec_set(payload, size);
944 mlxsw_reg_spvm_rec_i_set(payload, i, is_member);
945 mlxsw_reg_spvm_rec_e_set(payload, i, is_member);
946 mlxsw_reg_spvm_rec_u_set(payload, i, untagged);
947 mlxsw_reg_spvm_rec_vid_set(payload, i, vid_begin + i);
994 static inline void mlxsw_reg_spaft_pack(char *payload, u8 local_port,
997 MLXSW_REG_ZERO(spaft, payload);
998 mlxsw_reg_spaft_local_port_set(payload, local_port);
999 mlxsw_reg_spaft_allow_untagged_set(payload, allow_untagged);
1000 mlxsw_reg_spaft_allow_prio_tagged_set(payload, allow_untagged);
1001 mlxsw_reg_spaft_allow_tagged_set(payload, true);
1086 mlxsw_reg_sfgc_pack(char *payload, enum mlxsw_reg_sfgc_type type,
1091 MLXSW_REG_ZERO(sfgc, payload);
1092 mlxsw_reg_sfgc_type_set(payload, type);
1093 mlxsw_reg_sfgc_bridge_type_set(payload, bridge_type);
1094 mlxsw_reg_sfgc_table_type_set(payload, table_type);
1095 mlxsw_reg_sfgc_flood_table_set(payload, flood_table);
1096 mlxsw_reg_sfgc_mid_set(payload, MLXSW_PORT_MID);
1153 static inline void mlxsw_reg_sftr_pack(char *payload,
1159 MLXSW_REG_ZERO(sftr, payload);
1160 mlxsw_reg_sftr_swid_set(payload, 0);
1161 mlxsw_reg_sftr_flood_table_set(payload, flood_table);
1162 mlxsw_reg_sftr_index_set(payload, index);
1163 mlxsw_reg_sftr_table_type_set(payload, table_type);
1164 mlxsw_reg_sftr_range_set(payload, range);
1165 mlxsw_reg_sftr_port_set(payload, port, set);
1166 mlxsw_reg_sftr_port_mask_set(payload, port, 1);
1220 static inline void mlxsw_reg_sfdf_pack(char *payload,
1223 MLXSW_REG_ZERO(sfdf, payload);
1224 mlxsw_reg_sfdf_flush_type_set(payload, type);
1225 mlxsw_reg_sfdf_flush_static_set(payload, true);
1291 static inline void mlxsw_reg_sldr_lag_create_pack(char *payload, u8 lag_id)
1293 MLXSW_REG_ZERO(sldr, payload);
1294 mlxsw_reg_sldr_op_set(payload, MLXSW_REG_SLDR_OP_LAG_CREATE);
1295 mlxsw_reg_sldr_lag_id_set(payload, lag_id);
1298 static inline void mlxsw_reg_sldr_lag_destroy_pack(char *payload, u8 lag_id)
1300 MLXSW_REG_ZERO(sldr, payload);
1301 mlxsw_reg_sldr_op_set(payload, MLXSW_REG_SLDR_OP_LAG_DESTROY);
1302 mlxsw_reg_sldr_lag_id_set(payload, lag_id);
1319 static inline void mlxsw_reg_sldr_lag_add_port_pack(char *payload, u8 lag_id,
1322 MLXSW_REG_ZERO(sldr, payload);
1323 mlxsw_reg_sldr_op_set(payload, MLXSW_REG_SLDR_OP_LAG_ADD_PORT_LIST);
1324 mlxsw_reg_sldr_lag_id_set(payload, lag_id);
1325 mlxsw_reg_sldr_num_ports_set(payload, 1);
1326 mlxsw_reg_sldr_system_port_set(payload, 0, local_port);
1329 static inline void mlxsw_reg_sldr_lag_remove_port_pack(char *payload, u8 lag_id,
1332 MLXSW_REG_ZERO(sldr, payload);
1333 mlxsw_reg_sldr_op_set(payload, MLXSW_REG_SLDR_OP_LAG_REMOVE_PORT_LIST);
1334 mlxsw_reg_sldr_lag_id_set(payload, lag_id);
1335 mlxsw_reg_sldr_num_ports_set(payload, 1);
1336 mlxsw_reg_sldr_system_port_set(payload, 0, local_port);
1450 static inline void mlxsw_reg_slcr_pack(char *payload, u16 lag_hash, u32 seed)
1452 MLXSW_REG_ZERO(slcr, payload);
1453 mlxsw_reg_slcr_pp_set(payload, MLXSW_REG_SLCR_PP_GLOBAL);
1454 mlxsw_reg_slcr_type_set(payload, MLXSW_REG_SLCR_TYPE_CRC);
1455 mlxsw_reg_slcr_lag_hash_set(payload, lag_hash);
1456 mlxsw_reg_slcr_seed_set(payload, seed);
1503 static inline void mlxsw_reg_slcor_pack(char *payload,
1507 MLXSW_REG_ZERO(slcor, payload);
1508 mlxsw_reg_slcor_col_set(payload, col);
1509 mlxsw_reg_slcor_local_port_set(payload, local_port);
1510 mlxsw_reg_slcor_lag_id_set(payload, lag_id);
1513 static inline void mlxsw_reg_slcor_port_add_pack(char *payload,
1517 mlxsw_reg_slcor_pack(payload, local_port, lag_id,
1519 mlxsw_reg_slcor_port_index_set(payload, port_index);
1522 static inline void mlxsw_reg_slcor_port_remove_pack(char *payload,
1525 mlxsw_reg_slcor_pack(payload, local_port, lag_id,
1529 static inline void mlxsw_reg_slcor_col_enable_pack(char *payload,
1532 mlxsw_reg_slcor_pack(payload, local_port, lag_id,
1536 static inline void mlxsw_reg_slcor_col_disable_pack(char *payload,
1539 mlxsw_reg_slcor_pack(payload, local_port, lag_id,
1584 static inline void mlxsw_reg_spmlr_pack(char *payload, u8 local_port,
1587 MLXSW_REG_ZERO(spmlr, payload);
1588 mlxsw_reg_spmlr_local_port_set(payload, local_port);
1589 mlxsw_reg_spmlr_sub_port_set(payload, 0);
1590 mlxsw_reg_spmlr_learn_mode_set(payload, mode);
1669 static inline void mlxsw_reg_svfa_pack(char *payload, u8 local_port,
1673 MLXSW_REG_ZERO(svfa, payload);
1675 mlxsw_reg_svfa_swid_set(payload, 0);
1676 mlxsw_reg_svfa_local_port_set(payload, local_port);
1677 mlxsw_reg_svfa_mapping_table_set(payload, mt);
1678 mlxsw_reg_svfa_v_set(payload, valid);
1679 mlxsw_reg_svfa_fid_set(payload, fid);
1680 mlxsw_reg_svfa_vid_set(payload, vid);
1708 static inline void mlxsw_reg_svpe_pack(char *payload, u8 local_port,
1711 MLXSW_REG_ZERO(svpe, payload);
1712 mlxsw_reg_svpe_local_port_set(payload, local_port);
1713 mlxsw_reg_svpe_vp_en_set(payload, enable);
1786 static inline void mlxsw_reg_sfmr_pack(char *payload,
1790 MLXSW_REG_ZERO(sfmr, payload);
1791 mlxsw_reg_sfmr_op_set(payload, op);
1792 mlxsw_reg_sfmr_fid_set(payload, fid);
1793 mlxsw_reg_sfmr_fid_offset_set(payload, fid_offset);
1794 mlxsw_reg_sfmr_vtfp_set(payload, false);
1795 mlxsw_reg_sfmr_vv_set(payload, false);
1841 static inline void mlxsw_reg_spvmlr_pack(char *payload, u8 local_port,
1850 MLXSW_REG_ZERO(spvmlr, payload);
1851 mlxsw_reg_spvmlr_local_port_set(payload, local_port);
1852 mlxsw_reg_spvmlr_num_rec_set(payload, num_rec);
1855 mlxsw_reg_spvmlr_rec_learn_enable_set(payload, i, learn_enable);
1856 mlxsw_reg_spvmlr_rec_vid_set(payload, i, vid_begin + i);
1910 static inline void mlxsw_reg_cwtp_pack(char *payload, u8 local_port,
1915 MLXSW_REG_ZERO(cwtp, payload);
1916 mlxsw_reg_cwtp_local_port_set(payload, local_port);
1917 mlxsw_reg_cwtp_traffic_class_set(payload, traffic_class);
1920 mlxsw_reg_cwtp_profile_min_set(payload, i,
1922 mlxsw_reg_cwtp_profile_max_set(payload, i,
1930 mlxsw_reg_cwtp_profile_pack(char *payload, u8 profile, u32 min, u32 max,
1935 mlxsw_reg_cwtp_profile_min_set(payload, index, min);
1936 mlxsw_reg_cwtp_profile_max_set(payload, index, max);
1937 mlxsw_reg_cwtp_profile_percent_set(payload, index, probability);
2028 static inline void mlxsw_reg_cwtpm_pack(char *payload, u8 local_port,
2032 MLXSW_REG_ZERO(cwtpm, payload);
2033 mlxsw_reg_cwtpm_local_port_set(payload, local_port);
2034 mlxsw_reg_cwtpm_traffic_class_set(payload, traffic_class);
2035 mlxsw_reg_cwtpm_ew_set(payload, wred);
2036 mlxsw_reg_cwtpm_ee_set(payload, ecn);
2037 mlxsw_reg_cwtpm_tcp_g_set(payload, profile);
2038 mlxsw_reg_cwtpm_tcp_y_set(payload, profile);
2039 mlxsw_reg_cwtpm_tcp_r_set(payload, profile);
2040 mlxsw_reg_cwtpm_ntcp_g_set(payload, profile);
2041 mlxsw_reg_cwtpm_ntcp_y_set(payload, profile);
2042 mlxsw_reg_cwtpm_ntcp_r_set(payload, profile);
2061 static inline void mlxsw_reg_pgcr_pack(char *payload, u32 pointer_base)
2063 MLXSW_REG_ZERO(pgcr, payload);
2064 mlxsw_reg_pgcr_default_action_pointer_base_set(payload, pointer_base);
2117 static inline void mlxsw_reg_ppbt_pack(char *payload, enum mlxsw_reg_pxbt_e e,
2121 MLXSW_REG_ZERO(ppbt, payload);
2122 mlxsw_reg_ppbt_e_set(payload, e);
2123 mlxsw_reg_ppbt_op_set(payload, op);
2124 mlxsw_reg_ppbt_local_port_set(payload, local_port);
2125 mlxsw_reg_ppbt_g_set(payload, true);
2126 mlxsw_reg_ppbt_acl_info_set(payload, acl_info);
2162 static inline void mlxsw_reg_pacl_pack(char *payload, u16 acl_id,
2165 MLXSW_REG_ZERO(pacl, payload);
2166 mlxsw_reg_pacl_acl_id_set(payload, acl_id);
2167 mlxsw_reg_pacl_v_set(payload, valid);
2168 mlxsw_reg_pacl_tcam_region_info_memcpy_to(payload, tcam_region_info);
2216 static inline void mlxsw_reg_pagt_pack(char *payload, u16 acl_group_id)
2218 MLXSW_REG_ZERO(pagt, payload);
2219 mlxsw_reg_pagt_acl_group_id_set(payload, acl_group_id);
2222 static inline void mlxsw_reg_pagt_acl_id_pack(char *payload, int index,
2225 u8 size = mlxsw_reg_pagt_size_get(payload);
2228 mlxsw_reg_pagt_size_set(payload, index + 1);
2229 mlxsw_reg_pagt_multi_set(payload, index, multi);
2230 mlxsw_reg_pagt_acl_id_set(payload, index, acl_id);
2318 static inline void mlxsw_reg_ptar_pack(char *payload, enum mlxsw_reg_ptar_op op,
2323 MLXSW_REG_ZERO(ptar, payload);
2324 mlxsw_reg_ptar_op_set(payload, op);
2325 mlxsw_reg_ptar_action_set_type_set(payload, 2); /* "flexible" */
2326 mlxsw_reg_ptar_key_type_set(payload, key_type);
2327 mlxsw_reg_ptar_region_size_set(payload, region_size);
2328 mlxsw_reg_ptar_region_id_set(payload, region_id);
2329 mlxsw_reg_ptar_tcam_region_info_memcpy_to(payload, tcam_region_info);
2332 static inline void mlxsw_reg_ptar_key_id_pack(char *payload, int index,
2335 mlxsw_reg_ptar_flexible_key_id_set(payload, index, key_id);
2338 static inline void mlxsw_reg_ptar_unpack(char *payload, char *tcam_region_info)
2340 mlxsw_reg_ptar_tcam_region_info_memcpy_from(payload, tcam_region_info);
2365 static inline void mlxsw_reg_ppbs_pack(char *payload, u32 pbs_ptr,
2368 MLXSW_REG_ZERO(ppbs, payload);
2369 mlxsw_reg_ppbs_pbs_ptr_set(payload, pbs_ptr);
2370 mlxsw_reg_ppbs_system_port_set(payload, system_port);
2432 static inline void mlxsw_reg_prcr_pack(char *payload, enum mlxsw_reg_prcr_op op,
2438 MLXSW_REG_ZERO(prcr, payload);
2439 mlxsw_reg_prcr_op_set(payload, op);
2440 mlxsw_reg_prcr_offset_set(payload, src_offset);
2441 mlxsw_reg_prcr_size_set(payload, size);
2442 mlxsw_reg_prcr_tcam_region_info_memcpy_to(payload,
2444 mlxsw_reg_prcr_dest_offset_set(payload, dest_offset);
2445 mlxsw_reg_prcr_dest_tcam_region_info_memcpy_to(payload,
2491 static inline void mlxsw_reg_pefa_pack(char *payload, u32 index, bool ca,
2494 MLXSW_REG_ZERO(pefa, payload);
2495 mlxsw_reg_pefa_index_set(payload, index);
2496 mlxsw_reg_pefa_ca_set(payload, ca);
2498 mlxsw_reg_pefa_flex_action_set_memcpy_to(payload,
2502 static inline void mlxsw_reg_pefa_unpack(char *payload, bool *p_a)
2504 *p_a = mlxsw_reg_pefa_a_get(payload);
2536 mlxsw_reg_pemrbt_pack(char *payload, enum mlxsw_reg_pemrbt_protocol protocol,
2539 MLXSW_REG_ZERO(pemrbt, payload);
2540 mlxsw_reg_pemrbt_protocol_set(payload, protocol);
2541 mlxsw_reg_pemrbt_group_id_set(payload, group_id);
2638 static inline void mlxsw_reg_ptce2_pack(char *payload, bool valid,
2643 MLXSW_REG_ZERO(ptce2, payload);
2644 mlxsw_reg_ptce2_v_set(payload, valid);
2645 mlxsw_reg_ptce2_op_set(payload, op);
2646 mlxsw_reg_ptce2_offset_set(payload, offset);
2647 mlxsw_reg_ptce2_priority_set(payload, priority);
2648 mlxsw_reg_ptce2_tcam_region_info_memcpy_to(payload, tcam_region_info);
2735 static inline void mlxsw_reg_perpt_erp_vector_pack(char *payload,
2742 mlxsw_reg_perpt_erp_vector_set(payload, bit, true);
2746 mlxsw_reg_perpt_pack(char *payload, u8 erpt_bank, u8 erpt_index,
2751 MLXSW_REG_ZERO(perpt, payload);
2752 mlxsw_reg_perpt_erpt_bank_set(payload, erpt_bank);
2753 mlxsw_reg_perpt_erpt_index_set(payload, erpt_index);
2754 mlxsw_reg_perpt_key_size_set(payload, key_size);
2755 mlxsw_reg_perpt_bf_bypass_set(payload, false);
2756 mlxsw_reg_perpt_erp_id_set(payload, erp_id);
2757 mlxsw_reg_perpt_erpt_base_bank_set(payload, erpt_base_bank);
2758 mlxsw_reg_perpt_erpt_base_index_set(payload, erpt_base_index);
2759 mlxsw_reg_perpt_erp_index_in_vector_set(payload, erp_index);
2760 mlxsw_reg_perpt_mask_memcpy_to(payload, mask);
2796 static inline void mlxsw_reg_perar_pack(char *payload, u16 region_id,
2799 MLXSW_REG_ZERO(perar, payload);
2800 mlxsw_reg_perar_region_id_set(payload, region_id);
2801 mlxsw_reg_perar_hw_region_set(payload, hw_region);
2942 static inline void mlxsw_reg_ptce3_pack(char *payload, bool valid,
2951 MLXSW_REG_ZERO(ptce3, payload);
2952 mlxsw_reg_ptce3_v_set(payload, valid);
2953 mlxsw_reg_ptce3_op_set(payload, op);
2954 mlxsw_reg_ptce3_priority_set(payload, priority);
2955 mlxsw_reg_ptce3_tcam_region_info_memcpy_to(payload, tcam_region_info);
2956 mlxsw_reg_ptce3_flex2_key_blocks_memcpy_to(payload, key);
2957 mlxsw_reg_ptce3_erp_id_set(payload, erp_id);
2958 mlxsw_reg_ptce3_delta_start_set(payload, delta_start);
2959 mlxsw_reg_ptce3_delta_mask_set(payload, delta_mask);
2960 mlxsw_reg_ptce3_delta_value_set(payload, delta_value);
2961 mlxsw_reg_ptce3_large_exists_set(payload, large_exists);
2962 mlxsw_reg_ptce3_large_entry_key_id_set(payload, lkey_id);
2963 mlxsw_reg_ptce3_action_pointer_set(payload, action_pointer);
3012 static inline void mlxsw_reg_percr_pack(char *payload, u16 region_id)
3014 MLXSW_REG_ZERO(percr, payload);
3015 mlxsw_reg_percr_region_id_set(payload, region_id);
3016 mlxsw_reg_percr_atcam_ignore_prune_set(payload, false);
3017 mlxsw_reg_percr_ctcam_ignore_prune_set(payload, false);
3018 mlxsw_reg_percr_bf_bypass_set(payload, false);
3083 static inline void mlxsw_reg_pererp_erp_vector_pack(char *payload,
3090 mlxsw_reg_pererp_erpt_vector_set(payload, bit, true);
3093 static inline void mlxsw_reg_pererp_pack(char *payload, u16 region_id,
3098 MLXSW_REG_ZERO(pererp, payload);
3099 mlxsw_reg_pererp_region_id_set(payload, region_id);
3100 mlxsw_reg_pererp_ctcam_le_set(payload, ctcam_le);
3101 mlxsw_reg_pererp_erpt_pointer_valid_set(payload, erpt_pointer_valid);
3102 mlxsw_reg_pererp_erpt_bank_pointer_set(payload, erpt_bank_pointer);
3103 mlxsw_reg_pererp_erpt_pointer_set(payload, erpt_pointer);
3104 mlxsw_reg_pererp_master_rp_id_set(payload, master_rp_id);
3156 static inline void mlxsw_reg_peabfe_pack(char *payload)
3158 MLXSW_REG_ZERO(peabfe, payload);
3161 static inline void mlxsw_reg_peabfe_rec_pack(char *payload, int rec_index,
3164 u8 num_rec = mlxsw_reg_peabfe_size_get(payload);
3167 mlxsw_reg_peabfe_size_set(payload, rec_index + 1);
3168 mlxsw_reg_peabfe_bf_entry_state_set(payload, rec_index, state);
3169 mlxsw_reg_peabfe_bf_entry_bank_set(payload, rec_index, bank);
3170 mlxsw_reg_peabfe_bf_entry_index_set(payload, rec_index, bf_index);
3216 static inline void mlxsw_reg_iedr_pack(char *payload)
3218 MLXSW_REG_ZERO(iedr, payload);
3221 static inline void mlxsw_reg_iedr_rec_pack(char *payload, int rec_index,
3225 u8 num_rec = mlxsw_reg_iedr_num_rec_get(payload);
3228 mlxsw_reg_iedr_num_rec_set(payload, rec_index + 1);
3229 mlxsw_reg_iedr_rec_type_set(payload, rec_index, rec_type);
3230 mlxsw_reg_iedr_rec_size_set(payload, rec_index, rec_size);
3231 mlxsw_reg_iedr_rec_index_start_set(payload, rec_index, rec_index_start);
3263 static inline void mlxsw_reg_qpts_pack(char *payload, u8 local_port,
3266 MLXSW_REG_ZERO(qpts, payload);
3268 mlxsw_reg_qpts_local_port_set(payload, local_port);
3269 mlxsw_reg_qpts_trust_state_set(payload, ts);
3422 static inline void mlxsw_reg_qpcr_pack(char *payload, u16 pid,
3426 MLXSW_REG_ZERO(qpcr, payload);
3427 mlxsw_reg_qpcr_pid_set(payload, pid);
3428 mlxsw_reg_qpcr_g_set(payload, MLXSW_REG_QPCR_G_GLOBAL);
3429 mlxsw_reg_qpcr_rate_type_set(payload, MLXSW_REG_QPCR_RATE_TYPE_SINGLE);
3430 mlxsw_reg_qpcr_violate_action_set(payload,
3432 mlxsw_reg_qpcr_cir_set(payload, cir);
3433 mlxsw_reg_qpcr_ir_units_set(payload, ir_units);
3434 mlxsw_reg_qpcr_bytes_set(payload, bytes);
3435 mlxsw_reg_qpcr_cbs_set(payload, cbs);
3479 static inline void mlxsw_reg_qtct_pack(char *payload, u8 local_port,
3482 MLXSW_REG_ZERO(qtct, payload);
3483 mlxsw_reg_qtct_local_port_set(payload, local_port);
3484 mlxsw_reg_qtct_switch_prio_set(payload, switch_prio);
3485 mlxsw_reg_qtct_tclass_set(payload, tclass);
3646 static inline void mlxsw_reg_qeec_pack(char *payload, u8 local_port,
3650 MLXSW_REG_ZERO(qeec, payload);
3651 mlxsw_reg_qeec_local_port_set(payload, local_port);
3652 mlxsw_reg_qeec_element_hierarchy_set(payload, hr);
3653 mlxsw_reg_qeec_element_index_set(payload, index);
3654 mlxsw_reg_qeec_next_element_index_set(payload, next_index);
3657 static inline void mlxsw_reg_qeec_ptps_pack(char *payload, u8 local_port,
3660 MLXSW_REG_ZERO(qeec, payload);
3661 mlxsw_reg_qeec_local_port_set(payload, local_port);
3662 mlxsw_reg_qeec_element_hierarchy_set(payload, MLXSW_REG_QEEC_HR_PORT);
3663 mlxsw_reg_qeec_ptps_set(payload, ptps);
3695 static inline void mlxsw_reg_qrwe_pack(char *payload, u8 local_port,
3698 MLXSW_REG_ZERO(qrwe, payload);
3699 mlxsw_reg_qrwe_local_port_set(payload, local_port);
3700 mlxsw_reg_qrwe_pcp_set(payload, rewrite_pcp);
3701 mlxsw_reg_qrwe_dscp_set(payload, rewrite_dscp);
3775 static inline void mlxsw_reg_qpdsm_pack(char *payload, u8 local_port)
3777 MLXSW_REG_ZERO(qpdsm, payload);
3778 mlxsw_reg_qpdsm_local_port_set(payload, local_port);
3782 mlxsw_reg_qpdsm_prio_pack(char *payload, unsigned short prio, u8 dscp)
3784 mlxsw_reg_qpdsm_prio_entry_color0_e_set(payload, prio, 1);
3785 mlxsw_reg_qpdsm_prio_entry_color0_dscp_set(payload, prio, dscp);
3786 mlxsw_reg_qpdsm_prio_entry_color1_e_set(payload, prio, 1);
3787 mlxsw_reg_qpdsm_prio_entry_color1_dscp_set(payload, prio, dscp);
3788 mlxsw_reg_qpdsm_prio_entry_color2_e_set(payload, prio, 1);
3789 mlxsw_reg_qpdsm_prio_entry_color2_dscp_set(payload, prio, dscp);
3816 static inline void mlxsw_reg_qpdp_pack(char *payload, u8 local_port,
3819 MLXSW_REG_ZERO(qpdp, payload);
3820 mlxsw_reg_qpdp_local_port_set(payload, local_port);
3821 mlxsw_reg_qpdp_switch_prio_set(payload, switch_prio);
3862 static inline void mlxsw_reg_qpdpm_pack(char *payload, u8 local_port)
3864 MLXSW_REG_ZERO(qpdpm, payload);
3865 mlxsw_reg_qpdpm_local_port_set(payload, local_port);
3869 mlxsw_reg_qpdpm_dscp_pack(char *payload, unsigned short dscp, u8 prio)
3871 mlxsw_reg_qpdpm_dscp_entry_e_set(payload, dscp, 1);
3872 mlxsw_reg_qpdpm_dscp_entry_prio_set(payload, dscp, prio);
3904 mlxsw_reg_qtctm_pack(char *payload, u8 local_port, bool mc)
3906 MLXSW_REG_ZERO(qtctm, payload);
3907 mlxsw_reg_qtctm_local_port_set(payload, local_port);
3908 mlxsw_reg_qtctm_mc_set(payload, mc);
4000 mlxsw_reg_qpsc_pack(char *payload, enum mlxsw_reg_qpsc_port_speed port_speed,
4005 MLXSW_REG_ZERO(qpsc, payload);
4006 mlxsw_reg_qpsc_port_speed_set(payload, port_speed);
4007 mlxsw_reg_qpsc_shaper_time_exp_set(payload, shaper_time_exp);
4008 mlxsw_reg_qpsc_shaper_time_mantissa_set(payload, shaper_time_mantissa);
4009 mlxsw_reg_qpsc_shaper_inc_set(payload, shaper_inc);
4010 mlxsw_reg_qpsc_shaper_bs_set(payload, shaper_bs);
4011 mlxsw_reg_qpsc_ptsc_we_set(payload, true);
4012 mlxsw_reg_qpsc_port_to_shaper_credits_set(payload, port_to_shaper_credits);
4013 mlxsw_reg_qpsc_ing_timestamp_inc_set(payload, ing_timestamp_inc);
4014 mlxsw_reg_qpsc_egr_timestamp_inc_set(payload, egr_timestamp_inc);
4068 static inline void mlxsw_reg_pmlp_pack(char *payload, u8 local_port)
4070 MLXSW_REG_ZERO(pmlp, payload);
4071 mlxsw_reg_pmlp_local_port_set(payload, local_port);
4115 static inline void mlxsw_reg_pmtu_pack(char *payload, u8 local_port,
4118 MLXSW_REG_ZERO(pmtu, payload);
4119 mlxsw_reg_pmtu_local_port_set(payload, local_port);
4120 mlxsw_reg_pmtu_max_mtu_set(payload, 0);
4121 mlxsw_reg_pmtu_admin_mtu_set(payload, new_mtu);
4122 mlxsw_reg_pmtu_oper_mtu_set(payload, 0);
4309 static inline void mlxsw_reg_ptys_eth_pack(char *payload, u8 local_port,
4312 MLXSW_REG_ZERO(ptys, payload);
4313 mlxsw_reg_ptys_local_port_set(payload, local_port);
4314 mlxsw_reg_ptys_proto_mask_set(payload, MLXSW_REG_PTYS_PROTO_MASK_ETH);
4315 mlxsw_reg_ptys_eth_proto_admin_set(payload, proto_admin);
4316 mlxsw_reg_ptys_an_disable_admin_set(payload, !autoneg);
4319 static inline void mlxsw_reg_ptys_ext_eth_pack(char *payload, u8 local_port,
4322 MLXSW_REG_ZERO(ptys, payload);
4323 mlxsw_reg_ptys_local_port_set(payload, local_port);
4324 mlxsw_reg_ptys_proto_mask_set(payload, MLXSW_REG_PTYS_PROTO_MASK_ETH);
4325 mlxsw_reg_ptys_ext_eth_proto_admin_set(payload, proto_admin);
4326 mlxsw_reg_ptys_an_disable_admin_set(payload, !autoneg);
4329 static inline void mlxsw_reg_ptys_eth_unpack(char *payload,
4336 mlxsw_reg_ptys_eth_proto_cap_get(payload);
4339 mlxsw_reg_ptys_eth_proto_admin_get(payload);
4342 mlxsw_reg_ptys_eth_proto_oper_get(payload);
4345 static inline void mlxsw_reg_ptys_ext_eth_unpack(char *payload,
4352 mlxsw_reg_ptys_ext_eth_proto_cap_get(payload);
4355 mlxsw_reg_ptys_ext_eth_proto_admin_get(payload);
4358 mlxsw_reg_ptys_ext_eth_proto_oper_get(payload);
4361 static inline void mlxsw_reg_ptys_ib_pack(char *payload, u8 local_port,
4364 MLXSW_REG_ZERO(ptys, payload);
4365 mlxsw_reg_ptys_local_port_set(payload, local_port);
4366 mlxsw_reg_ptys_proto_mask_set(payload, MLXSW_REG_PTYS_PROTO_MASK_IB);
4367 mlxsw_reg_ptys_ib_proto_admin_set(payload, proto_admin);
4368 mlxsw_reg_ptys_ib_link_width_admin_set(payload, link_width);
4371 static inline void mlxsw_reg_ptys_ib_unpack(char *payload, u16 *p_ib_proto_cap,
4377 *p_ib_proto_cap = mlxsw_reg_ptys_ib_proto_cap_get(payload);
4380 mlxsw_reg_ptys_ib_link_width_cap_get(payload);
4382 *p_ib_proto_oper = mlxsw_reg_ptys_ib_proto_oper_get(payload);
4385 mlxsw_reg_ptys_ib_link_width_oper_get(payload);
4418 static inline void mlxsw_reg_ppad_pack(char *payload, bool single_base_mac,
4421 MLXSW_REG_ZERO(ppad, payload);
4422 mlxsw_reg_ppad_single_base_mac_set(payload, !!single_base_mac);
4423 mlxsw_reg_ppad_local_port_set(payload, local_port);
4493 static inline void mlxsw_reg_paos_pack(char *payload, u8 local_port,
4496 MLXSW_REG_ZERO(paos, payload);
4497 mlxsw_reg_paos_swid_set(payload, 0);
4498 mlxsw_reg_paos_local_port_set(payload, local_port);
4499 mlxsw_reg_paos_admin_status_set(payload, status);
4500 mlxsw_reg_paos_oper_status_set(payload, 0);
4501 mlxsw_reg_paos_ase_set(payload, 1);
4502 mlxsw_reg_paos_ee_set(payload, 1);
4503 mlxsw_reg_paos_e_set(payload, 1);
4628 static inline void mlxsw_reg_pfcc_prio_pack(char *payload, u8 pfc_en)
4630 mlxsw_reg_pfcc_prio_mask_tx_set(payload, MLXSW_REG_PFCC_ALL_PRIO);
4631 mlxsw_reg_pfcc_prio_mask_rx_set(payload, MLXSW_REG_PFCC_ALL_PRIO);
4632 mlxsw_reg_pfcc_pfctx_set(payload, pfc_en);
4633 mlxsw_reg_pfcc_pfcrx_set(payload, pfc_en);
4636 static inline void mlxsw_reg_pfcc_pack(char *payload, u8 local_port)
4638 MLXSW_REG_ZERO(pfcc, payload);
4639 mlxsw_reg_pfcc_local_port_set(payload, local_port);
5135 static inline void mlxsw_reg_ppcnt_pack(char *payload, u8 local_port,
5139 MLXSW_REG_ZERO(ppcnt, payload);
5140 mlxsw_reg_ppcnt_swid_set(payload, 0);
5141 mlxsw_reg_ppcnt_local_port_set(payload, local_port);
5142 mlxsw_reg_ppcnt_pnat_set(payload, 0);
5143 mlxsw_reg_ppcnt_grp_set(payload, grp);
5144 mlxsw_reg_ppcnt_clr_set(payload, 0);
5145 mlxsw_reg_ppcnt_prio_tc_set(payload, prio_tc);
5246 static inline void mlxsw_reg_pptb_pack(char *payload, u8 local_port)
5248 MLXSW_REG_ZERO(pptb, payload);
5249 mlxsw_reg_pptb_mm_set(payload, MLXSW_REG_PPTB_MM_UM);
5250 mlxsw_reg_pptb_local_port_set(payload, local_port);
5251 mlxsw_reg_pptb_pm_set(payload, MLXSW_REG_PPTB_ALL_PRIO);
5252 mlxsw_reg_pptb_pm_msb_set(payload, MLXSW_REG_PPTB_ALL_PRIO);
5255 static inline void mlxsw_reg_pptb_prio_to_buff_pack(char *payload, u8 prio,
5258 mlxsw_reg_pptb_prio_to_buff_set(payload, prio, buff);
5259 mlxsw_reg_pptb_prio_to_buff_msb_set(payload, prio, buff);
5343 static inline void mlxsw_reg_pbmc_pack(char *payload, u8 local_port,
5346 MLXSW_REG_ZERO(pbmc, payload);
5347 mlxsw_reg_pbmc_local_port_set(payload, local_port);
5348 mlxsw_reg_pbmc_xoff_timer_value_set(payload, xoff_timer_value);
5349 mlxsw_reg_pbmc_xoff_refresh_set(payload, xoff_refresh);
5352 static inline void mlxsw_reg_pbmc_lossy_buffer_pack(char *payload,
5356 mlxsw_reg_pbmc_buf_lossy_set(payload, buf_index, 1);
5357 mlxsw_reg_pbmc_buf_epsb_set(payload, buf_index, 0);
5358 mlxsw_reg_pbmc_buf_size_set(payload, buf_index, size);
5361 static inline void mlxsw_reg_pbmc_lossless_buffer_pack(char *payload,
5365 mlxsw_reg_pbmc_buf_lossy_set(payload, buf_index, 0);
5366 mlxsw_reg_pbmc_buf_epsb_set(payload, buf_index, 0);
5367 mlxsw_reg_pbmc_buf_size_set(payload, buf_index, size);
5368 mlxsw_reg_pbmc_buf_xoff_threshold_set(payload, buf_index, threshold);
5369 mlxsw_reg_pbmc_buf_xon_threshold_set(payload, buf_index, threshold);
5401 static inline void mlxsw_reg_pspa_pack(char *payload, u8 swid, u8 local_port)
5403 MLXSW_REG_ZERO(pspa, payload);
5404 mlxsw_reg_pspa_swid_set(payload, swid);
5405 mlxsw_reg_pspa_local_port_set(payload, local_port);
5406 mlxsw_reg_pspa_sub_port_set(payload, 0);
5458 static inline void mlxsw_reg_pmaos_pack(char *payload, u8 module,
5461 MLXSW_REG_ZERO(pmaos, payload);
5462 mlxsw_reg_pmaos_module_set(payload, module);
5463 mlxsw_reg_pmaos_e_set(payload, e);
5464 mlxsw_reg_pmaos_ee_set(payload, true);
5493 static inline void mlxsw_reg_pplr_pack(char *payload, u8 local_port,
5496 MLXSW_REG_ZERO(pplr, payload);
5497 mlxsw_reg_pplr_local_port_set(payload, local_port);
5498 mlxsw_reg_pplr_lb_en_set(payload,
5589 static inline void mlxsw_reg_pddr_pack(char *payload, u8 local_port,
5592 MLXSW_REG_ZERO(pddr, payload);
5593 mlxsw_reg_pddr_local_port_set(payload, local_port);
5594 mlxsw_reg_pddr_page_select_set(payload, page_select);
5647 static inline void mlxsw_reg_pmtm_pack(char *payload, u8 module)
5649 MLXSW_REG_ZERO(pmtm, payload);
5650 mlxsw_reg_pmtm_module_set(payload, module);
5654 mlxsw_reg_pmtm_unpack(char *payload,
5657 *module_type = mlxsw_reg_pmtm_module_type_get(payload);
5804 static inline void mlxsw_reg_htgt_pack(char *payload, u8 group, u8 policer_id,
5807 MLXSW_REG_ZERO(htgt, payload);
5810 mlxsw_reg_htgt_pide_set(payload,
5813 mlxsw_reg_htgt_pide_set(payload,
5815 mlxsw_reg_htgt_pid_set(payload, policer_id);
5818 mlxsw_reg_htgt_type_set(payload, MLXSW_REG_HTGT_PATH_TYPE_LOCAL);
5819 mlxsw_reg_htgt_trap_group_set(payload, group);
5820 mlxsw_reg_htgt_mirror_action_set(payload, MLXSW_REG_HTGT_TRAP_TO_CPU);
5821 mlxsw_reg_htgt_mirroring_agent_set(payload, 0);
5822 mlxsw_reg_htgt_priority_set(payload, priority);
5823 mlxsw_reg_htgt_local_path_cpu_tclass_set(payload, tc);
5824 mlxsw_reg_htgt_local_path_rdq_set(payload, group);
5910 static inline void mlxsw_reg_hpkt_pack(char *payload, u8 action, u16 trap_id,
5914 MLXSW_REG_ZERO(hpkt, payload);
5915 mlxsw_reg_hpkt_ack_set(payload, MLXSW_REG_HPKT_ACK_NOT_REQUIRED);
5916 mlxsw_reg_hpkt_action_set(payload, action);
5917 mlxsw_reg_hpkt_trap_group_set(payload, trap_group);
5918 mlxsw_reg_hpkt_trap_id_set(payload, trap_id);
5919 mlxsw_reg_hpkt_ctrl_set(payload, is_ctrl ?
5989 static inline void mlxsw_reg_rgcr_pack(char *payload, bool ipv4_en,
5992 MLXSW_REG_ZERO(rgcr, payload);
5993 mlxsw_reg_rgcr_ipv4_en_set(payload, ipv4_en);
5994 mlxsw_reg_rgcr_ipv6_en_set(payload, ipv6_en);
6176 static inline void mlxsw_reg_ritr_fid_set(char *payload,
6181 mlxsw_reg_ritr_fid_if_fid_set(payload, fid);
6183 mlxsw_reg_ritr_vlan_if_vid_set(payload, fid);
6315 static inline void mlxsw_reg_ritr_counter_pack(char *payload, u32 index,
6324 mlxsw_reg_ritr_egress_counter_set_type_set(payload, set_type);
6327 mlxsw_reg_ritr_egress_counter_index_set(payload, index);
6329 mlxsw_reg_ritr_ingress_counter_index_set(payload, index);
6332 static inline void mlxsw_reg_ritr_rif_pack(char *payload, u16 rif)
6334 MLXSW_REG_ZERO(ritr, payload);
6335 mlxsw_reg_ritr_rif_set(payload, rif);
6338 static inline void mlxsw_reg_ritr_sp_if_pack(char *payload, bool lag,
6341 mlxsw_reg_ritr_sp_if_lag_set(payload, lag);
6342 mlxsw_reg_ritr_sp_if_system_port_set(payload, system_port);
6343 mlxsw_reg_ritr_sp_if_vid_set(payload, vid);
6346 static inline void mlxsw_reg_ritr_pack(char *payload, bool enable,
6352 MLXSW_REG_ZERO(ritr, payload);
6353 mlxsw_reg_ritr_enable_set(payload, enable);
6354 mlxsw_reg_ritr_ipv4_set(payload, 1);
6355 mlxsw_reg_ritr_ipv6_set(payload, 1);
6356 mlxsw_reg_ritr_ipv4_mc_set(payload, 1);
6357 mlxsw_reg_ritr_ipv6_mc_set(payload, 1);
6358 mlxsw_reg_ritr_type_set(payload, type);
6359 mlxsw_reg_ritr_op_set(payload, op);
6360 mlxsw_reg_ritr_rif_set(payload, rif);
6361 mlxsw_reg_ritr_ipv4_fe_set(payload, 1);
6362 mlxsw_reg_ritr_ipv6_fe_set(payload, 1);
6363 mlxsw_reg_ritr_ipv4_mc_fe_set(payload, 1);
6364 mlxsw_reg_ritr_ipv6_mc_fe_set(payload, 1);
6365 mlxsw_reg_ritr_lb_en_set(payload, 1);
6366 mlxsw_reg_ritr_virtual_router_set(payload, vr_id);
6367 mlxsw_reg_ritr_mtu_set(payload, mtu);
6370 static inline void mlxsw_reg_ritr_mac_pack(char *payload, const char *mac)
6372 mlxsw_reg_ritr_if_mac_memcpy_to(payload, mac);
6376 mlxsw_reg_ritr_loopback_ipip_common_pack(char *payload,
6381 mlxsw_reg_ritr_loopback_ipip_type_set(payload, ipip_type);
6382 mlxsw_reg_ritr_loopback_ipip_options_set(payload, options);
6383 mlxsw_reg_ritr_loopback_ipip_uvr_set(payload, uvr_id);
6384 mlxsw_reg_ritr_loopback_ipip_underlay_rif_set(payload, underlay_rif);
6385 mlxsw_reg_ritr_loopback_ipip_gre_key_set(payload, gre_key);
6389 mlxsw_reg_ritr_loopback_ipip4_pack(char *payload,
6394 mlxsw_reg_ritr_loopback_protocol_set(payload,
6396 mlxsw_reg_ritr_loopback_ipip_common_pack(payload, ipip_type, options,
6398 mlxsw_reg_ritr_loopback_ipip_usip4_set(payload, usip);
6441 static inline void mlxsw_reg_rtar_pack(char *payload,
6446 MLXSW_REG_ZERO(rtar, payload);
6447 mlxsw_reg_rtar_op_set(payload, op);
6448 mlxsw_reg_rtar_key_type_set(payload, key_type);
6449 mlxsw_reg_rtar_region_size_set(payload, region_size);
6643 mlxsw_reg_ratr_pack(char *payload,
6648 MLXSW_REG_ZERO(ratr, payload);
6649 mlxsw_reg_ratr_op_set(payload, op);
6650 mlxsw_reg_ratr_v_set(payload, valid);
6651 mlxsw_reg_ratr_type_set(payload, type);
6652 mlxsw_reg_ratr_adjacency_index_low_set(payload, adjacency_index);
6653 mlxsw_reg_ratr_adjacency_index_high_set(payload, adjacency_index >> 16);
6654 mlxsw_reg_ratr_egress_router_interface_set(payload, egress_rif);
6657 static inline void mlxsw_reg_ratr_eth_entry_pack(char *payload,
6660 mlxsw_reg_ratr_eth_destination_mac_memcpy_to(payload, dest_mac);
6663 static inline void mlxsw_reg_ratr_ipip4_entry_pack(char *payload, u32 ipv4_udip)
6665 mlxsw_reg_ratr_ipip_type_set(payload, MLXSW_REG_RATR_IPIP_TYPE_IPV4);
6666 mlxsw_reg_ratr_ipip_ipv4_udip_set(payload, ipv4_udip);
6669 static inline void mlxsw_reg_ratr_counter_pack(char *payload, u64 counter_index,
6679 mlxsw_reg_ratr_counter_index_set(payload, counter_index);
6680 mlxsw_reg_ratr_counter_set_type_set(payload, set_type);
6712 static inline void mlxsw_reg_rdpm_pack(char *payload, unsigned short index,
6715 mlxsw_reg_rdpm_dscp_entry_e_set(payload, index, 1);
6716 mlxsw_reg_rdpm_dscp_entry_prio_set(payload, index, prio);
6832 static inline void mlxsw_reg_ricnt_pack(char *payload, u32 index,
6835 MLXSW_REG_ZERO(ricnt, payload);
6836 mlxsw_reg_ricnt_op_set(payload, op);
6837 mlxsw_reg_ricnt_counter_index_set(payload, index);
6838 mlxsw_reg_ricnt_counter_set_type_set(payload,
6888 static inline void mlxsw_reg_rrcr_pack(char *payload, enum mlxsw_reg_rrcr_op op,
6893 MLXSW_REG_ZERO(rrcr, payload);
6894 mlxsw_reg_rrcr_op_set(payload, op);
6895 mlxsw_reg_rrcr_offset_set(payload, offset);
6896 mlxsw_reg_rrcr_size_set(payload, size);
6897 mlxsw_reg_rrcr_table_id_set(payload, table_id);
6898 mlxsw_reg_rrcr_dest_offset_set(payload, dest_offset);
6938 static inline void mlxsw_reg_ralta_pack(char *payload, bool alloc,
6942 MLXSW_REG_ZERO(ralta, payload);
6943 mlxsw_reg_ralta_op_set(payload, !alloc);
6944 mlxsw_reg_ralta_protocol_set(payload, protocol);
6945 mlxsw_reg_ralta_tree_id_set(payload, tree_id);
6997 static inline void mlxsw_reg_ralst_pack(char *payload, u8 root_bin, u8 tree_id)
6999 MLXSW_REG_ZERO(ralst, payload);
7002 memset(payload + MLXSW_REG_RALST_BIN_OFFSET,
7005 mlxsw_reg_ralst_root_bin_set(payload, root_bin);
7006 mlxsw_reg_ralst_tree_id_set(payload, tree_id);
7009 static inline void mlxsw_reg_ralst_bin_pack(char *payload, u8 bin_number,
7015 mlxsw_reg_ralst_left_child_bin_set(payload, bin_index, left_child_bin);
7016 mlxsw_reg_ralst_right_child_bin_set(payload, bin_index,
7050 static inline void mlxsw_reg_raltb_pack(char *payload, u16 virtual_router,
7054 MLXSW_REG_ZERO(raltb, payload);
7055 mlxsw_reg_raltb_virtual_router_set(payload, virtual_router);
7056 mlxsw_reg_raltb_protocol_set(payload, protocol);
7057 mlxsw_reg_raltb_tree_id_set(payload, tree_id);
7264 static inline void mlxsw_reg_ralue_pack(char *payload,
7269 MLXSW_REG_ZERO(ralue, payload);
7270 mlxsw_reg_ralue_protocol_set(payload, protocol);
7271 mlxsw_reg_ralue_op_set(payload, op);
7272 mlxsw_reg_ralue_virtual_router_set(payload, virtual_router);
7273 mlxsw_reg_ralue_prefix_len_set(payload, prefix_len);
7274 mlxsw_reg_ralue_entry_type_set(payload,
7276 mlxsw_reg_ralue_bmp_len_set(payload, prefix_len);
7279 static inline void mlxsw_reg_ralue_pack4(char *payload,
7285 mlxsw_reg_ralue_pack(payload, protocol, op, virtual_router, prefix_len);
7286 mlxsw_reg_ralue_dip4_set(payload, dip);
7289 static inline void mlxsw_reg_ralue_pack6(char *payload,
7295 mlxsw_reg_ralue_pack(payload, protocol, op, virtual_router, prefix_len);
7296 mlxsw_reg_ralue_dip6_memcpy_to(payload, dip);
7300 mlxsw_reg_ralue_act_remote_pack(char *payload,
7304 mlxsw_reg_ralue_action_type_set(payload,
7306 mlxsw_reg_ralue_trap_action_set(payload, trap_action);
7307 mlxsw_reg_ralue_trap_id_set(payload, trap_id);
7308 mlxsw_reg_ralue_adjacency_index_set(payload, adjacency_index);
7309 mlxsw_reg_ralue_ecmp_size_set(payload, ecmp_size);
7313 mlxsw_reg_ralue_act_local_pack(char *payload,
7317 mlxsw_reg_ralue_action_type_set(payload,
7319 mlxsw_reg_ralue_trap_action_set(payload, trap_action);
7320 mlxsw_reg_ralue_trap_id_set(payload, trap_id);
7321 mlxsw_reg_ralue_local_erif_set(payload, local_erif);
7325 mlxsw_reg_ralue_act_ip2me_pack(char *payload)
7327 mlxsw_reg_ralue_action_type_set(payload,
7332 mlxsw_reg_ralue_act_ip2me_tun_pack(char *payload, u32 tunnel_ptr)
7334 mlxsw_reg_ralue_action_type_set(payload,
7336 mlxsw_reg_ralue_ip2me_v_set(payload, 1);
7337 mlxsw_reg_ralue_ip2me_tunnel_ptr_set(payload, tunnel_ptr);
7458 static inline void mlxsw_reg_rauht_pack(char *payload,
7462 MLXSW_REG_ZERO(rauht, payload);
7463 mlxsw_reg_rauht_op_set(payload, op);
7464 mlxsw_reg_rauht_rif_set(payload, rif);
7465 mlxsw_reg_rauht_mac_memcpy_to(payload, mac);
7468 static inline void mlxsw_reg_rauht_pack4(char *payload,
7472 mlxsw_reg_rauht_pack(payload, op, rif, mac);
7473 mlxsw_reg_rauht_dip4_set(payload, dip);
7476 static inline void mlxsw_reg_rauht_pack6(char *payload,
7480 mlxsw_reg_rauht_pack(payload, op, rif, mac);
7481 mlxsw_reg_rauht_type_set(payload, MLXSW_REG_RAUHT_TYPE_IPV6);
7482 mlxsw_reg_rauht_dip6_memcpy_to(payload, dip);
7485 static inline void mlxsw_reg_rauht_pack_counter(char *payload,
7488 mlxsw_reg_rauht_counter_index_set(payload, counter_index);
7489 mlxsw_reg_rauht_counter_set_type_set(payload,
7541 static inline void mlxsw_reg_raleu_pack(char *payload,
7548 MLXSW_REG_ZERO(raleu, payload);
7549 mlxsw_reg_raleu_protocol_set(payload, protocol);
7550 mlxsw_reg_raleu_virtual_router_set(payload, virtual_router);
7551 mlxsw_reg_raleu_adjacency_index_set(payload, adjacency_index);
7552 mlxsw_reg_raleu_ecmp_size_set(payload, ecmp_size);
7553 mlxsw_reg_raleu_new_adjacency_index_set(payload, new_adjacency_index);
7554 mlxsw_reg_raleu_new_ecmp_size_set(payload, new_ecmp_size);
7635 static inline void mlxsw_reg_rauhtd_pack(char *payload,
7638 MLXSW_REG_ZERO(rauhtd, payload);
7639 mlxsw_reg_rauhtd_filter_fields_set(payload, MLXSW_REG_RAUHTD_FILTER_A);
7640 mlxsw_reg_rauhtd_op_set(payload, MLXSW_REG_RAUHTD_OP_DUMP_AND_CLEAR);
7641 mlxsw_reg_rauhtd_num_rec_set(payload, MLXSW_REG_RAUHTD_REC_MAX_NUM);
7642 mlxsw_reg_rauhtd_entry_a_set(payload, 1);
7643 mlxsw_reg_rauhtd_type_set(payload, type);
7715 static inline void mlxsw_reg_rauhtd_ent_ipv4_unpack(char *payload,
7719 *p_rif = mlxsw_reg_rauhtd_ipv4_ent_rif_get(payload, ent_index);
7720 *p_dip = mlxsw_reg_rauhtd_ipv4_ent_dip_get(payload, ent_index);
7723 static inline void mlxsw_reg_rauhtd_ent_ipv6_unpack(char *payload,
7727 *p_rif = mlxsw_reg_rauhtd_ipv6_ent_rif_get(payload, rec_index);
7728 mlxsw_reg_rauhtd_ipv6_ent_dip_memcpy_from(payload, rec_index, p_dip);
7842 static inline void mlxsw_reg_rtdp_pack(char *payload,
7846 MLXSW_REG_ZERO(rtdp, payload);
7847 mlxsw_reg_rtdp_type_set(payload, type);
7848 mlxsw_reg_rtdp_tunnel_index_set(payload, tunnel_index);
7852 mlxsw_reg_rtdp_ipip4_pack(char *payload, u16 irif,
7857 mlxsw_reg_rtdp_ipip_irif_set(payload, irif);
7858 mlxsw_reg_rtdp_ipip_sip_check_set(payload, sip_check);
7859 mlxsw_reg_rtdp_ipip_type_check_set(payload, type_check);
7860 mlxsw_reg_rtdp_ipip_gre_key_check_set(payload, gre_key_check);
7861 mlxsw_reg_rtdp_ipip_ipv4_usip_set(payload, ipv4_usip);
7862 mlxsw_reg_rtdp_ipip_expected_gre_key_set(payload, expected_gre_key);
7929 static inline void mlxsw_reg_rigr2_pack(char *payload, u32 rigr_index,
7932 MLXSW_REG_ZERO(rigr2, payload);
7933 mlxsw_reg_rigr2_rigr_index_set(payload, rigr_index);
7934 mlxsw_reg_rigr2_vnext_set(payload, vnext);
7935 mlxsw_reg_rigr2_next_rigr_index_set(payload, next_rigr_index);
7936 mlxsw_reg_rigr2_vrmid_set(payload, 0);
7937 mlxsw_reg_rigr2_rmid_index_set(payload, 0);
7940 static inline void mlxsw_reg_rigr2_erif_entry_pack(char *payload, int index,
7943 mlxsw_reg_rigr2_erif_entry_v_set(payload, index, v);
7944 mlxsw_reg_rigr2_erif_entry_erif_set(payload, index, erif);
8028 static inline void mlxsw_reg_recr2_ipv4_sip_enable(char *payload)
8033 mlxsw_reg_recr2_outer_header_fields_enable_set(payload, i,
8037 static inline void mlxsw_reg_recr2_ipv4_dip_enable(char *payload)
8042 mlxsw_reg_recr2_outer_header_fields_enable_set(payload, i,
8046 static inline void mlxsw_reg_recr2_ipv6_sip_enable(char *payload)
8050 mlxsw_reg_recr2_outer_header_fields_enable_set(payload, i, true);
8054 mlxsw_reg_recr2_outer_header_fields_enable_set(payload, i,
8058 static inline void mlxsw_reg_recr2_ipv6_dip_enable(char *payload)
8062 mlxsw_reg_recr2_outer_header_fields_enable_set(payload, i, true);
8066 mlxsw_reg_recr2_outer_header_fields_enable_set(payload, i,
8070 static inline void mlxsw_reg_recr2_pack(char *payload, u32 seed)
8072 MLXSW_REG_ZERO(recr2, payload);
8073 mlxsw_reg_recr2_pp_set(payload, false);
8074 mlxsw_reg_recr2_sh_set(payload, true);
8075 mlxsw_reg_recr2_seed_set(payload, seed);
8201 mlxsw_reg_rmft2_common_pack(char *payload, bool v, u16 offset,
8206 MLXSW_REG_ZERO(rmft2, payload);
8207 mlxsw_reg_rmft2_v_set(payload, v);
8208 mlxsw_reg_rmft2_op_set(payload, MLXSW_REG_RMFT2_OP_READ_WRITE);
8209 mlxsw_reg_rmft2_offset_set(payload, offset);
8210 mlxsw_reg_rmft2_virtual_router_set(payload, virtual_router);
8211 mlxsw_reg_rmft2_irif_mask_set(payload, irif_mask);
8212 mlxsw_reg_rmft2_irif_set(payload, irif);
8214 mlxsw_reg_rmft2_flexible_action_set_memcpy_to(payload,
8219 mlxsw_reg_rmft2_ipv4_pack(char *payload, bool v, u16 offset, u16 virtual_router,
8224 mlxsw_reg_rmft2_common_pack(payload, v, offset, virtual_router,
8226 mlxsw_reg_rmft2_type_set(payload, MLXSW_REG_RMFT2_TYPE_IPV4);
8227 mlxsw_reg_rmft2_dip4_set(payload, dip4);
8228 mlxsw_reg_rmft2_dip4_mask_set(payload, dip4_mask);
8229 mlxsw_reg_rmft2_sip4_set(payload, sip4);
8230 mlxsw_reg_rmft2_sip4_mask_set(payload, sip4_mask);
8234 mlxsw_reg_rmft2_ipv6_pack(char *payload, bool v, u16 offset, u16 virtual_router,
8240 mlxsw_reg_rmft2_common_pack(payload, v, offset, virtual_router,
8242 mlxsw_reg_rmft2_type_set(payload, MLXSW_REG_RMFT2_TYPE_IPV6);
8243 mlxsw_reg_rmft2_dip6_memcpy_to(payload, (void *)&dip6);
8244 mlxsw_reg_rmft2_dip6_mask_memcpy_to(payload, (void *)&dip6_mask);
8245 mlxsw_reg_rmft2_sip6_memcpy_to(payload, (void *)&sip6);
8246 mlxsw_reg_rmft2_sip6_mask_memcpy_to(payload, (void *)&sip6_mask);
8292 mlxsw_reg_mfcr_pack(char *payload,
8295 MLXSW_REG_ZERO(mfcr, payload);
8296 mlxsw_reg_mfcr_pwm_frequency_set(payload, pwm_frequency);
8300 mlxsw_reg_mfcr_unpack(char *payload,
8304 *p_pwm_frequency = mlxsw_reg_mfcr_pwm_frequency_get(payload);
8305 *p_tacho_active = mlxsw_reg_mfcr_tacho_active_get(payload);
8306 *p_pwm_active = mlxsw_reg_mfcr_pwm_active_get(payload);
8331 static inline void mlxsw_reg_mfsc_pack(char *payload, u8 pwm,
8334 MLXSW_REG_ZERO(mfsc, payload);
8335 mlxsw_reg_mfsc_pwm_set(payload, pwm);
8336 mlxsw_reg_mfsc_pwm_duty_cycle_set(payload, pwm_duty_cycle);
8361 static inline void mlxsw_reg_mfsm_pack(char *payload, u8 tacho)
8363 MLXSW_REG_ZERO(mfsm, payload);
8364 mlxsw_reg_mfsm_tacho_set(payload, tacho);
8396 static inline void mlxsw_reg_mfsl_pack(char *payload, u8 tacho,
8399 MLXSW_REG_ZERO(mfsl, payload);
8400 mlxsw_reg_mfsl_tacho_set(payload, tacho);
8401 mlxsw_reg_mfsl_tach_min_set(payload, tach_min);
8402 mlxsw_reg_mfsl_tach_max_set(payload, tach_max);
8405 static inline void mlxsw_reg_mfsl_unpack(char *payload, u8 tacho,
8409 *p_tach_min = mlxsw_reg_mfsl_tach_min_get(payload);
8412 *p_tach_max = mlxsw_reg_mfsl_tach_max_get(payload);
8433 static inline void mlxsw_reg_fore_unpack(char *payload, u8 tacho,
8439 limit = mlxsw_reg_fore_fan_under_limit_get(payload);
8553 static inline void mlxsw_reg_mtmp_pack(char *payload, u16 sensor_index,
8557 MLXSW_REG_ZERO(mtmp, payload);
8558 mlxsw_reg_mtmp_sensor_index_set(payload, sensor_index);
8559 mlxsw_reg_mtmp_mte_set(payload, max_temp_enable);
8560 mlxsw_reg_mtmp_mtr_set(payload, max_temp_reset);
8561 mlxsw_reg_mtmp_temperature_threshold_hi_set(payload,
8565 static inline void mlxsw_reg_mtmp_unpack(char *payload, int *p_temp,
8571 temp = mlxsw_reg_mtmp_temperature_get(payload);
8575 temp = mlxsw_reg_mtmp_max_temperature_get(payload);
8579 mlxsw_reg_mtmp_sensor_name_memcpy_from(payload, sensor_name);
8645 static inline void mlxsw_reg_mtbr_pack(char *payload, u16 base_sensor_index,
8648 MLXSW_REG_ZERO(mtbr, payload);
8649 mlxsw_reg_mtbr_base_sensor_index_set(payload, base_sensor_index);
8650 mlxsw_reg_mtbr_num_rec_set(payload, num_rec);
8664 static inline void mlxsw_reg_mtbr_temp_unpack(char *payload, int rec_ind,
8668 *p_temp = mlxsw_reg_mtbr_rec_temp_get(payload, rec_ind);
8670 *p_max_temp = mlxsw_reg_mtbr_rec_max_temp_get(payload, rec_ind);
8775 static inline void mlxsw_reg_mcia_pack(char *payload, u8 module, u8 lock,
8779 MLXSW_REG_ZERO(mcia, payload);
8780 mlxsw_reg_mcia_module_set(payload, module);
8781 mlxsw_reg_mcia_l_set(payload, lock);
8782 mlxsw_reg_mcia_page_number_set(payload, page_number);
8783 mlxsw_reg_mcia_device_address_set(payload, device_addr);
8784 mlxsw_reg_mcia_size_set(payload, size);
8785 mlxsw_reg_mcia_i2c_device_address_set(payload, i2c_device_addr);
8957 static inline void mlxsw_reg_mpat_pack(char *payload, u8 pa_id,
8961 MLXSW_REG_ZERO(mpat, payload);
8962 mlxsw_reg_mpat_pa_id_set(payload, pa_id);
8963 mlxsw_reg_mpat_system_port_set(payload, system_port);
8964 mlxsw_reg_mpat_e_set(payload, e);
8965 mlxsw_reg_mpat_qos_set(payload, 1);
8966 mlxsw_reg_mpat_be_set(payload, 1);
8967 mlxsw_reg_mpat_span_type_set(payload, span_type);
8970 static inline void mlxsw_reg_mpat_eth_rspan_pack(char *payload, u16 vid)
8972 mlxsw_reg_mpat_eth_rspan_vid_set(payload, vid);
8976 mlxsw_reg_mpat_eth_rspan_l2_pack(char *payload,
8981 mlxsw_reg_mpat_eth_rspan_version_set(payload, version);
8982 mlxsw_reg_mpat_eth_rspan_mac_memcpy_to(payload, mac);
8983 mlxsw_reg_mpat_eth_rspan_tp_set(payload, tp);
8987 mlxsw_reg_mpat_eth_rspan_l3_ipv4_pack(char *payload, u8 ttl,
8991 mlxsw_reg_mpat_eth_rspan_ttl_set(payload, ttl);
8992 mlxsw_reg_mpat_eth_rspan_smac_memcpy_to(payload, smac);
8993 mlxsw_reg_mpat_eth_rspan_protocol_set(payload,
8995 mlxsw_reg_mpat_eth_rspan_sip4_set(payload, sip);
8996 mlxsw_reg_mpat_eth_rspan_dip4_set(payload, dip);
9000 mlxsw_reg_mpat_eth_rspan_l3_ipv6_pack(char *payload, u8 ttl,
9004 mlxsw_reg_mpat_eth_rspan_ttl_set(payload, ttl);
9005 mlxsw_reg_mpat_eth_rspan_smac_memcpy_to(payload, smac);
9006 mlxsw_reg_mpat_eth_rspan_protocol_set(payload,
9008 mlxsw_reg_mpat_eth_rspan_sip6_memcpy_to(payload, (void *)&sip);
9009 mlxsw_reg_mpat_eth_rspan_dip6_memcpy_to(payload, (void *)&dip);
9052 static inline void mlxsw_reg_mpar_pack(char *payload, u8 local_port,
9056 MLXSW_REG_ZERO(mpar, payload);
9057 mlxsw_reg_mpar_local_port_set(payload, local_port);
9058 mlxsw_reg_mpar_enable_set(payload, enable);
9059 mlxsw_reg_mpar_i_e_set(payload, i_e);
9060 mlxsw_reg_mpar_pa_id_set(payload, pa_id);
9101 static inline void mlxsw_reg_mgir_pack(char *payload)
9103 MLXSW_REG_ZERO(mgir, payload);
9107 mlxsw_reg_mgir_unpack(char *payload, u32 *hw_rev, char *fw_info_psid,
9110 *hw_rev = mlxsw_reg_mgir_hw_info_device_hw_revision_get(payload);
9111 mlxsw_reg_mgir_fw_info_psid_memcpy_from(payload, fw_info_psid);
9112 *fw_major = mlxsw_reg_mgir_fw_info_extended_major_get(payload);
9113 *fw_minor = mlxsw_reg_mgir_fw_info_extended_minor_get(payload);
9114 *fw_sub_minor = mlxsw_reg_mgir_fw_info_extended_sub_minor_get(payload);
9135 static inline void mlxsw_reg_mrsr_pack(char *payload)
9137 MLXSW_REG_ZERO(mrsr, payload);
9138 mlxsw_reg_mrsr_command_set(payload, 1);
9173 static inline void mlxsw_reg_mlcr_pack(char *payload, u8 local_port,
9176 MLXSW_REG_ZERO(mlcr, payload);
9177 mlxsw_reg_mlcr_local_port_set(payload, local_port);
9178 mlxsw_reg_mlcr_beacon_duration_set(payload, active ?
9229 mlxsw_reg_mtpps_vpin_pack(char *payload, u64 time_stamp)
9231 MLXSW_REG_ZERO(mtpps, payload);
9232 mlxsw_reg_mtpps_pin_set(payload, MLXSW_REG_MTPPS_PIN_SP_VIRTUAL_PIN);
9233 mlxsw_reg_mtpps_pin_mode_set(payload,
9235 mlxsw_reg_mtpps_enable_set(payload, true);
9236 mlxsw_reg_mtpps_time_stamp_set(payload, time_stamp);
9274 mlxsw_reg_mtutc_pack(char *payload, enum mlxsw_reg_mtutc_operation oper,
9277 MLXSW_REG_ZERO(mtutc, payload);
9278 mlxsw_reg_mtutc_operation_set(payload, oper);
9279 mlxsw_reg_mtutc_freq_adjustment_set(payload, freq_adj);
9280 mlxsw_reg_mtutc_utc_sec_set(payload, utc_sec);
9343 static inline void mlxsw_reg_mcqi_pack(char *payload, u16 component_index)
9345 MLXSW_REG_ZERO(mcqi, payload);
9346 mlxsw_reg_mcqi_component_index_set(payload, component_index);
9347 mlxsw_reg_mcqi_info_type_set(payload,
9349 mlxsw_reg_mcqi_offset_set(payload, 0);
9350 mlxsw_reg_mcqi_data_size_set(payload, MLXSW_REG_MCQI_CAP_LEN);
9353 static inline void mlxsw_reg_mcqi_unpack(char *payload,
9359 mlxsw_reg_mcqi_cap_max_component_size_get(payload);
9361 mlxsw_reg_mcqi_cap_log_mcda_word_size_get(payload);
9363 mlxsw_reg_mcqi_cap_mcda_max_write_size_get(payload);
9425 static inline void mlxsw_reg_mcc_pack(char *payload,
9430 MLXSW_REG_ZERO(mcc, payload);
9431 mlxsw_reg_mcc_instruction_set(payload, instr);
9432 mlxsw_reg_mcc_component_index_set(payload, component_index);
9433 mlxsw_reg_mcc_update_handle_set(payload, update_handle);
9434 mlxsw_reg_mcc_component_size_set(payload, component_size);
9437 static inline void mlxsw_reg_mcc_unpack(char *payload, u32 *p_update_handle,
9441 *p_update_handle = mlxsw_reg_mcc_update_handle_get(payload);
9443 *p_error_code = mlxsw_reg_mcc_error_code_get(payload);
9445 *p_control_state = mlxsw_reg_mcc_control_state_get(payload);
9485 static inline void mlxsw_reg_mcda_pack(char *payload, u32 update_handle,
9490 MLXSW_REG_ZERO(mcda, payload);
9491 mlxsw_reg_mcda_update_handle_set(payload, update_handle);
9492 mlxsw_reg_mcda_offset_set(payload, offset);
9493 mlxsw_reg_mcda_size_set(payload, size);
9496 mlxsw_reg_mcda_data_set(payload, i, *(u32 *) &data[i * 4]);
9530 static inline void mlxsw_reg_mpsc_pack(char *payload, u8 local_port, bool e,
9533 MLXSW_REG_ZERO(mpsc, payload);
9534 mlxsw_reg_mpsc_local_port_set(payload, local_port);
9535 mlxsw_reg_mpsc_e_set(payload, e);
9536 mlxsw_reg_mpsc_rate_set(payload, rate);
9584 static inline void mlxsw_reg_mgpc_pack(char *payload, u32 counter_index,
9588 MLXSW_REG_ZERO(mgpc, payload);
9589 mlxsw_reg_mgpc_counter_index_set(payload, counter_index);
9590 mlxsw_reg_mgpc_counter_set_type_set(payload, set_type);
9591 mlxsw_reg_mgpc_opcode_set(payload, opcode);
9628 static inline void mlxsw_reg_mprs_pack(char *payload, u16 parsing_depth,
9631 MLXSW_REG_ZERO(mprs, payload);
9632 mlxsw_reg_mprs_parsing_depth_set(payload, parsing_depth);
9633 mlxsw_reg_mprs_parsing_en_set(payload, true);
9634 mlxsw_reg_mprs_vxlan_udp_dport_set(payload, vxlan_udp_dport);
9712 static inline void mlxsw_reg_mpagr_pack(char *payload,
9716 MLXSW_REG_ZERO(mpagr, payload);
9717 mlxsw_reg_mpagr_trigger_set(payload, trigger);
9718 mlxsw_reg_mpagr_pa_id_set(payload, pa_id);
9719 mlxsw_reg_mpagr_probability_rate_set(payload, probability_rate);
9763 static inline void mlxsw_reg_momte_pack(char *payload, u8 local_port,
9766 MLXSW_REG_ZERO(momte, payload);
9767 mlxsw_reg_momte_local_port_set(payload, local_port);
9768 mlxsw_reg_momte_type_set(payload, type);
9801 static inline void mlxsw_reg_mtpppc_pack(char *payload, u16 ing, u16 egr)
9803 MLXSW_REG_ZERO(mtpppc, payload);
9804 mlxsw_reg_mtpppc_ing_timestamp_message_type_set(payload, ing);
9805 mlxsw_reg_mtpppc_egr_timestamp_message_type_set(payload, egr);
9900 static inline void mlxsw_reg_mtpptr_unpack(const char *payload,
9909 *p_message_type = mlxsw_reg_mtpptr_rec_message_type_get(payload, rec);
9910 *p_domain_number = mlxsw_reg_mtpptr_rec_domain_number_get(payload, rec);
9911 *p_sequence_id = mlxsw_reg_mtpptr_rec_sequence_id_get(payload, rec);
9912 timestamp_high = mlxsw_reg_mtpptr_rec_timestamp_high_get(payload, rec);
9913 timestamp_low = mlxsw_reg_mtpptr_rec_timestamp_low_get(payload, rec);
9946 static inline void mlxsw_reg_mtptptp_pack(char *payload,
9950 MLXSW_REG_ZERO(mtptpt, payload);
9951 mlxsw_reg_mtptpt_trap_id_set(payload, trap_id);
9952 mlxsw_reg_mtptpt_message_type_set(payload, message_type);
10013 static inline void mlxsw_reg_mgpir_pack(char *payload)
10015 MLXSW_REG_ZERO(mgpir, payload);
10019 mlxsw_reg_mgpir_unpack(char *payload, u8 *num_of_devices,
10024 *num_of_devices = mlxsw_reg_mgpir_num_of_devices_get(payload);
10026 *device_type = mlxsw_reg_mgpir_device_type_get(payload);
10029 mlxsw_reg_mgpir_devices_per_flash_get(payload);
10031 *num_of_modules = mlxsw_reg_mgpir_num_of_modules_get(payload);
10278 static inline void mlxsw_reg_tngcr_pack(char *payload,
10282 MLXSW_REG_ZERO(tngcr, payload);
10283 mlxsw_reg_tngcr_type_set(payload, type);
10284 mlxsw_reg_tngcr_nve_valid_set(payload, valid);
10285 mlxsw_reg_tngcr_nve_ttl_uc_set(payload, ttl);
10286 mlxsw_reg_tngcr_nve_ttl_mc_set(payload, ttl);
10287 mlxsw_reg_tngcr_nve_flc_set(payload, MLXSW_REG_TNGCR_FL_NO_COPY);
10288 mlxsw_reg_tngcr_nve_flh_set(payload, 0);
10289 mlxsw_reg_tngcr_nve_udp_sport_type_set(payload,
10291 mlxsw_reg_tngcr_nve_udp_sport_prefix_set(payload, 0);
10292 mlxsw_reg_tngcr_nve_group_size_mc_set(payload, 1);
10293 mlxsw_reg_tngcr_nve_group_size_flood_set(payload, 1);
10370 static inline void mlxsw_reg_tnumt_pack(char *payload,
10377 MLXSW_REG_ZERO(tnumt, payload);
10378 mlxsw_reg_tnumt_record_type_set(payload, type);
10379 mlxsw_reg_tnumt_tunnel_port_set(payload, tport);
10380 mlxsw_reg_tnumt_underlay_mc_ptr_set(payload, underlay_mc_ptr);
10381 mlxsw_reg_tnumt_vnext_set(payload, vnext);
10382 mlxsw_reg_tnumt_next_underlay_mc_ptr_set(payload, next_underlay_mc_ptr);
10383 mlxsw_reg_tnumt_record_size_set(payload, record_size);
10405 static inline void mlxsw_reg_tnqcr_pack(char *payload)
10407 MLXSW_REG_ZERO(tnqcr, payload);
10408 mlxsw_reg_tnqcr_enc_set_dscp_set(payload, 0);
10433 static inline void mlxsw_reg_tnqdr_pack(char *payload, u8 local_port)
10435 MLXSW_REG_ZERO(tnqdr, payload);
10436 mlxsw_reg_tnqdr_local_port_set(payload, local_port);
10437 mlxsw_reg_tnqdr_dscp_set(payload, 0);
10462 static inline void mlxsw_reg_tneem_pack(char *payload, u8 overlay_ecn,
10465 MLXSW_REG_ZERO(tneem, payload);
10466 mlxsw_reg_tneem_overlay_ecn_set(payload, overlay_ecn);
10467 mlxsw_reg_tneem_underlay_ecn_set(payload, underlay_ecn);
10514 static inline void mlxsw_reg_tndem_pack(char *payload, u8 underlay_ecn,
10518 MLXSW_REG_ZERO(tndem, payload);
10519 mlxsw_reg_tndem_underlay_ecn_set(payload, underlay_ecn);
10520 mlxsw_reg_tndem_overlay_ecn_set(payload, overlay_ecn);
10521 mlxsw_reg_tndem_eip_ecn_set(payload, ecn);
10522 mlxsw_reg_tndem_trap_en_set(payload, trap_en);
10523 mlxsw_reg_tndem_trap_id_set(payload, trap_id);
10561 static inline void mlxsw_reg_tnpc_pack(char *payload,
10565 MLXSW_REG_ZERO(tnpc, payload);
10566 mlxsw_reg_tnpc_tunnel_port_set(payload, tport);
10567 mlxsw_reg_tnpc_learn_enable_v4_set(payload, learn_enable);
10568 mlxsw_reg_tnpc_learn_enable_v6_set(payload, learn_enable);
10594 static inline void mlxsw_reg_tigcr_pack(char *payload, bool ttlc, u8 ttl_uc)
10596 MLXSW_REG_ZERO(tigcr, payload);
10597 mlxsw_reg_tigcr_ttlc_set(payload, ttlc);
10598 mlxsw_reg_tigcr_ttl_uc_set(payload, ttl_uc);
10623 static inline void mlxsw_reg_tieem_pack(char *payload, u8 overlay_ecn,
10626 MLXSW_REG_ZERO(tieem, payload);
10627 mlxsw_reg_tieem_overlay_ecn_set(payload, overlay_ecn);
10628 mlxsw_reg_tieem_underlay_ecn_set(payload, underlay_ecn);
10675 static inline void mlxsw_reg_tidem_pack(char *payload, u8 underlay_ecn,
10679 MLXSW_REG_ZERO(tidem, payload);
10680 mlxsw_reg_tidem_underlay_ecn_set(payload, underlay_ecn);
10681 mlxsw_reg_tidem_overlay_ecn_set(payload, overlay_ecn);
10682 mlxsw_reg_tidem_eip_ecn_set(payload, eip_ecn);
10683 mlxsw_reg_tidem_trap_en_set(payload, trap_en);
10684 mlxsw_reg_tidem_trap_id_set(payload, trap_id);
10738 static inline void mlxsw_reg_sbpr_pack(char *payload, u8 pool,
10743 MLXSW_REG_ZERO(sbpr, payload);
10744 mlxsw_reg_sbpr_pool_set(payload, pool);
10745 mlxsw_reg_sbpr_dir_set(payload, dir);
10746 mlxsw_reg_sbpr_mode_set(payload, mode);
10747 mlxsw_reg_sbpr_size_set(payload, size);
10748 mlxsw_reg_sbpr_infi_size_set(payload, infi_size);
10822 static inline void mlxsw_reg_sbcm_pack(char *payload, u8 local_port, u8 pg_buff,
10827 MLXSW_REG_ZERO(sbcm, payload);
10828 mlxsw_reg_sbcm_local_port_set(payload, local_port);
10829 mlxsw_reg_sbcm_pg_buff_set(payload, pg_buff);
10830 mlxsw_reg_sbcm_dir_set(payload, dir);
10831 mlxsw_reg_sbcm_min_buff_set(payload, min_buff);
10832 mlxsw_reg_sbcm_max_buff_set(payload, max_buff);
10833 mlxsw_reg_sbcm_infi_max_set(payload, infi_max);
10834 mlxsw_reg_sbcm_pool_set(payload, pool);
10908 static inline void mlxsw_reg_sbpm_pack(char *payload, u8 local_port, u8 pool,
10912 MLXSW_REG_ZERO(sbpm, payload);
10913 mlxsw_reg_sbpm_local_port_set(payload, local_port);
10914 mlxsw_reg_sbpm_pool_set(payload, pool);
10915 mlxsw_reg_sbpm_dir_set(payload, dir);
10916 mlxsw_reg_sbpm_clr_set(payload, clr);
10917 mlxsw_reg_sbpm_min_buff_set(payload, min_buff);
10918 mlxsw_reg_sbpm_max_buff_set(payload, max_buff);
10921 static inline void mlxsw_reg_sbpm_unpack(char *payload, u32 *p_buff_occupancy,
10924 *p_buff_occupancy = mlxsw_reg_sbpm_buff_occupancy_get(payload);
10925 *p_max_buff_occupancy = mlxsw_reg_sbpm_max_buff_occupancy_get(payload);
10970 static inline void mlxsw_reg_sbmm_pack(char *payload, u8 prio, u32 min_buff,
10973 MLXSW_REG_ZERO(sbmm, payload);
10974 mlxsw_reg_sbmm_prio_set(payload, prio);
10975 mlxsw_reg_sbmm_min_buff_set(payload, min_buff);
10976 mlxsw_reg_sbmm_max_buff_set(payload, max_buff);
10977 mlxsw_reg_sbmm_pool_set(payload, pool);
11044 static inline void mlxsw_reg_sbsr_pack(char *payload, bool clr)
11046 MLXSW_REG_ZERO(sbsr, payload);
11047 mlxsw_reg_sbsr_clr_set(payload, clr);
11065 static inline void mlxsw_reg_sbsr_rec_unpack(char *payload, int rec_index,
11070 mlxsw_reg_sbsr_rec_buff_occupancy_get(payload, rec_index);
11072 mlxsw_reg_sbsr_rec_max_buff_occupancy_get(payload, rec_index);
11103 static inline void mlxsw_reg_sbib_pack(char *payload, u8 local_port,
11106 MLXSW_REG_ZERO(sbib, payload);
11107 mlxsw_reg_sbib_local_port_set(payload, local_port);
11108 mlxsw_reg_sbib_buff_size_set(payload, buff_size);