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, u16 lag_lookup_pgt_base)
51 MLXSW_REG_ZERO(sgcr, payload);
52 mlxsw_reg_sgcr_lag_lookup_pgt_base_set(payload, lag_lookup_pgt_base);
110 static inline void mlxsw_reg_sspr_pack(char *payload, u16 local_port)
112 MLXSW_REG_ZERO(sspr, payload);
113 mlxsw_reg_sspr_m_set(payload, 1);
114 mlxsw_reg_sspr_local_port_set(payload, local_port);
115 mlxsw_reg_sspr_system_port_set(payload, local_port);
143 static inline void mlxsw_reg_sfdat_pack(char *payload, u32 age_time)
145 MLXSW_REG_ZERO(sfdat, payload);
146 mlxsw_reg_sfdat_swid_set(payload, 0);
147 mlxsw_reg_sfdat_age_time_set(payload, age_time);
224 static inline void mlxsw_reg_sfd_pack(char *payload, enum mlxsw_reg_sfd_op op,
227 MLXSW_REG_ZERO(sfd, payload);
228 mlxsw_reg_sfd_op_set(payload, op);
229 mlxsw_reg_sfd_record_locator_set(payload, record_locator);
357 static inline void mlxsw_reg_sfd_rec_pack(char *payload, int rec_index,
362 u8 num_rec = mlxsw_reg_sfd_num_rec_get(payload);
365 mlxsw_reg_sfd_num_rec_set(payload, rec_index + 1);
366 mlxsw_reg_sfd_rec_swid_set(payload, rec_index, 0);
367 mlxsw_reg_sfd_rec_type_set(payload, rec_index, rec_type);
368 mlxsw_reg_sfd_rec_mac_memcpy_to(payload, rec_index, mac);
369 mlxsw_reg_sfd_rec_action_set(payload, rec_index, action);
372 static inline void mlxsw_reg_sfd_uc_pack(char *payload, int rec_index,
378 mlxsw_reg_sfd_rec_pack(payload, rec_index,
380 mlxsw_reg_sfd_rec_policy_set(payload, rec_index, policy);
381 mlxsw_reg_sfd_uc_sub_port_set(payload, rec_index, 0);
382 mlxsw_reg_sfd_uc_fid_vid_set(payload, rec_index, fid_vid);
383 mlxsw_reg_sfd_uc_set_vid_set(payload, rec_index, vid ? true : false);
384 mlxsw_reg_sfd_uc_vid_set(payload, rec_index, vid);
385 mlxsw_reg_sfd_uc_system_port_set(payload, rec_index, local_port);
438 mlxsw_reg_sfd_uc_lag_pack(char *payload, int rec_index,
444 mlxsw_reg_sfd_rec_pack(payload, rec_index,
447 mlxsw_reg_sfd_rec_policy_set(payload, rec_index, policy);
448 mlxsw_reg_sfd_uc_lag_sub_port_set(payload, rec_index, 0);
449 mlxsw_reg_sfd_uc_lag_fid_vid_set(payload, rec_index, fid_vid);
450 mlxsw_reg_sfd_uc_lag_set_vid_set(payload, rec_index, true);
451 mlxsw_reg_sfd_uc_lag_lag_vid_set(payload, rec_index, lag_vid);
452 mlxsw_reg_sfd_uc_lag_lag_id_set(payload, rec_index, lag_id);
483 mlxsw_reg_sfd_mc_pack(char *payload, int rec_index,
487 mlxsw_reg_sfd_rec_pack(payload, rec_index,
489 mlxsw_reg_sfd_mc_pgi_set(payload, rec_index, 0x1FFF);
490 mlxsw_reg_sfd_mc_fid_vid_set(payload, rec_index, fid_vid);
491 mlxsw_reg_sfd_mc_mid_set(payload, rec_index, mid);
533 mlxsw_reg_sfd_uc_tunnel_pack(char *payload, int rec_index,
539 mlxsw_reg_sfd_rec_pack(payload, rec_index,
542 mlxsw_reg_sfd_rec_policy_set(payload, rec_index, policy);
543 mlxsw_reg_sfd_uc_tunnel_fid_set(payload, rec_index, fid);
544 mlxsw_reg_sfd_uc_tunnel_protocol_set(payload, rec_index, proto);
548 mlxsw_reg_sfd_uc_tunnel_pack4(char *payload, int rec_index,
553 mlxsw_reg_sfd_uc_tunnel_uip_msb_set(payload, rec_index, uip >> 24);
554 mlxsw_reg_sfd_uc_tunnel_uip_lsb_set(payload, rec_index, uip);
555 mlxsw_reg_sfd_uc_tunnel_pack(payload, rec_index, policy, mac, fid,
561 mlxsw_reg_sfd_uc_tunnel_pack6(char *payload, int rec_index, const char *mac,
565 mlxsw_reg_sfd_uc_tunnel_uip_lsb_set(payload, rec_index, uip_ptr);
567 mlxsw_reg_sfd_uc_tunnel_pack(payload, rec_index,
616 static inline void mlxsw_reg_sfn_pack(char *payload)
618 MLXSW_REG_ZERO(sfn, payload);
619 mlxsw_reg_sfn_swid_set(payload, 0);
620 mlxsw_reg_sfn_end_set(payload, 0);
621 mlxsw_reg_sfn_num_rec_set(payload, MLXSW_REG_SFN_REC_MAX_COUNT);
682 static inline void mlxsw_reg_sfn_mac_unpack(char *payload, int rec_index,
686 mlxsw_reg_sfn_rec_mac_memcpy_from(payload, rec_index, mac);
687 *p_vid = mlxsw_reg_sfn_mac_fid_get(payload, rec_index);
688 *p_local_port = mlxsw_reg_sfn_mac_system_port_get(payload, rec_index);
698 static inline void mlxsw_reg_sfn_mac_lag_unpack(char *payload, int rec_index,
702 mlxsw_reg_sfn_rec_mac_memcpy_from(payload, rec_index, mac);
703 *p_vid = mlxsw_reg_sfn_mac_fid_get(payload, rec_index);
704 *p_lag_id = mlxsw_reg_sfn_mac_lag_lag_id_get(payload, rec_index);
746 mlxsw_reg_sfn_uc_tunnel_unpack(char *payload, int rec_index, char *mac,
752 mlxsw_reg_sfn_rec_mac_memcpy_from(payload, rec_index, mac);
753 *p_fid = mlxsw_reg_sfn_mac_fid_get(payload, rec_index);
754 uip_msb = mlxsw_reg_sfn_uc_tunnel_uip_msb_get(payload, rec_index);
755 uip_lsb = mlxsw_reg_sfn_uc_tunnel_uip_lsb_get(payload, rec_index);
757 *p_proto = mlxsw_reg_sfn_uc_tunnel_protocol_get(payload, rec_index);
792 static inline void mlxsw_reg_spms_pack(char *payload, u16 local_port)
794 MLXSW_REG_ZERO(spms, payload);
795 mlxsw_reg_spms_local_port_set(payload, local_port);
798 static inline void mlxsw_reg_spms_vid_pack(char *payload, u16 vid,
801 mlxsw_reg_spms_state_set(payload, vid, state);
860 static inline void mlxsw_reg_spvid_pack(char *payload, u16 local_port, u16 pvid,
863 MLXSW_REG_ZERO(spvid, payload);
864 mlxsw_reg_spvid_local_port_set(payload, local_port);
865 mlxsw_reg_spvid_pvid_set(payload, pvid);
866 mlxsw_reg_spvid_et_vlan_set(payload, et_vlan);
951 static inline void mlxsw_reg_spvm_pack(char *payload, u16 local_port,
958 MLXSW_REG_ZERO(spvm, payload);
959 mlxsw_reg_spvm_local_port_set(payload, local_port);
960 mlxsw_reg_spvm_num_rec_set(payload, size);
963 mlxsw_reg_spvm_rec_i_set(payload, i, is_member);
964 mlxsw_reg_spvm_rec_e_set(payload, i, is_member);
965 mlxsw_reg_spvm_rec_u_set(payload, i, untagged);
966 mlxsw_reg_spvm_rec_vid_set(payload, i, vid_begin + i);
1013 static inline void mlxsw_reg_spaft_pack(char *payload, u16 local_port,
1016 MLXSW_REG_ZERO(spaft, payload);
1017 mlxsw_reg_spaft_local_port_set(payload, local_port);
1018 mlxsw_reg_spaft_allow_untagged_set(payload, allow_untagged);
1019 mlxsw_reg_spaft_allow_prio_tagged_set(payload, allow_untagged);
1020 mlxsw_reg_spaft_allow_tagged_set(payload, true);
1110 mlxsw_reg_sfgc_pack(char *payload, enum mlxsw_reg_sfgc_type type,
1115 MLXSW_REG_ZERO(sfgc, payload);
1116 mlxsw_reg_sfgc_type_set(payload, type);
1117 mlxsw_reg_sfgc_bridge_type_set(payload, bridge_type);
1118 mlxsw_reg_sfgc_table_type_set(payload, table_type);
1119 mlxsw_reg_sfgc_flood_table_set(payload, flood_table);
1120 mlxsw_reg_sfgc_mid_base_set(payload, mid_base);
1174 static inline void mlxsw_reg_sfdf_pack(char *payload,
1177 MLXSW_REG_ZERO(sfdf, payload);
1178 mlxsw_reg_sfdf_flush_type_set(payload, type);
1179 mlxsw_reg_sfdf_flush_static_set(payload, true);
1245 static inline void mlxsw_reg_sldr_lag_create_pack(char *payload, u8 lag_id)
1247 MLXSW_REG_ZERO(sldr, payload);
1248 mlxsw_reg_sldr_op_set(payload, MLXSW_REG_SLDR_OP_LAG_CREATE);
1249 mlxsw_reg_sldr_lag_id_set(payload, lag_id);
1252 static inline void mlxsw_reg_sldr_lag_destroy_pack(char *payload, u8 lag_id)
1254 MLXSW_REG_ZERO(sldr, payload);
1255 mlxsw_reg_sldr_op_set(payload, MLXSW_REG_SLDR_OP_LAG_DESTROY);
1256 mlxsw_reg_sldr_lag_id_set(payload, lag_id);
1273 static inline void mlxsw_reg_sldr_lag_add_port_pack(char *payload, u8 lag_id,
1276 MLXSW_REG_ZERO(sldr, payload);
1277 mlxsw_reg_sldr_op_set(payload, MLXSW_REG_SLDR_OP_LAG_ADD_PORT_LIST);
1278 mlxsw_reg_sldr_lag_id_set(payload, lag_id);
1279 mlxsw_reg_sldr_num_ports_set(payload, 1);
1280 mlxsw_reg_sldr_system_port_set(payload, 0, local_port);
1283 static inline void mlxsw_reg_sldr_lag_remove_port_pack(char *payload, u8 lag_id,
1286 MLXSW_REG_ZERO(sldr, payload);
1287 mlxsw_reg_sldr_op_set(payload, MLXSW_REG_SLDR_OP_LAG_REMOVE_PORT_LIST);
1288 mlxsw_reg_sldr_lag_id_set(payload, lag_id);
1289 mlxsw_reg_sldr_num_ports_set(payload, 1);
1290 mlxsw_reg_sldr_system_port_set(payload, 0, local_port);
1404 static inline void mlxsw_reg_slcr_pack(char *payload, u16 lag_hash, u32 seed)
1406 MLXSW_REG_ZERO(slcr, payload);
1407 mlxsw_reg_slcr_pp_set(payload, MLXSW_REG_SLCR_PP_GLOBAL);
1408 mlxsw_reg_slcr_type_set(payload, MLXSW_REG_SLCR_TYPE_CRC);
1409 mlxsw_reg_slcr_lag_hash_set(payload, lag_hash);
1410 mlxsw_reg_slcr_seed_set(payload, seed);
1457 static inline void mlxsw_reg_slcor_pack(char *payload,
1461 MLXSW_REG_ZERO(slcor, payload);
1462 mlxsw_reg_slcor_col_set(payload, col);
1463 mlxsw_reg_slcor_local_port_set(payload, local_port);
1464 mlxsw_reg_slcor_lag_id_set(payload, lag_id);
1467 static inline void mlxsw_reg_slcor_port_add_pack(char *payload,
1471 mlxsw_reg_slcor_pack(payload, local_port, lag_id,
1473 mlxsw_reg_slcor_port_index_set(payload, port_index);
1476 static inline void mlxsw_reg_slcor_port_remove_pack(char *payload,
1479 mlxsw_reg_slcor_pack(payload, local_port, lag_id,
1483 static inline void mlxsw_reg_slcor_col_enable_pack(char *payload,
1486 mlxsw_reg_slcor_pack(payload, local_port, lag_id,
1490 static inline void mlxsw_reg_slcor_col_disable_pack(char *payload,
1493 mlxsw_reg_slcor_pack(payload, local_port, lag_id,
1538 static inline void mlxsw_reg_spmlr_pack(char *payload, u16 local_port,
1541 MLXSW_REG_ZERO(spmlr, payload);
1542 mlxsw_reg_spmlr_local_port_set(payload, local_port);
1543 mlxsw_reg_spmlr_sub_port_set(payload, 0);
1544 mlxsw_reg_spmlr_learn_mode_set(payload, mode);
1652 static inline void __mlxsw_reg_svfa_pack(char *payload,
1656 MLXSW_REG_ZERO(svfa, payload);
1657 mlxsw_reg_svfa_swid_set(payload, 0);
1658 mlxsw_reg_svfa_mapping_table_set(payload, mt);
1659 mlxsw_reg_svfa_v_set(payload, valid);
1660 mlxsw_reg_svfa_fid_set(payload, fid);
1661 mlxsw_reg_svfa_irif_v_set(payload, irif_v);
1662 mlxsw_reg_svfa_irif_set(payload, irif_v ? irif : 0);
1665 static inline void mlxsw_reg_svfa_port_vid_pack(char *payload, u16 local_port,
1671 __mlxsw_reg_svfa_pack(payload, mt, valid, fid, irif_v, irif);
1672 mlxsw_reg_svfa_local_port_set(payload, local_port);
1673 mlxsw_reg_svfa_vid_set(payload, vid);
1676 static inline void mlxsw_reg_svfa_vid_pack(char *payload, bool valid, u16 fid,
1681 __mlxsw_reg_svfa_pack(payload, mt, valid, fid, irif_v, irif);
1682 mlxsw_reg_svfa_vid_set(payload, vid);
1685 static inline void mlxsw_reg_svfa_vni_pack(char *payload, bool valid, u16 fid,
1690 __mlxsw_reg_svfa_pack(payload, mt, valid, fid, irif_v, irif);
1691 mlxsw_reg_svfa_vni_set(payload, vni);
1786 static inline void mlxsw_reg_spvtr_pack(char *payload, bool tport,
1790 MLXSW_REG_ZERO(spvtr, payload);
1791 mlxsw_reg_spvtr_tport_set(payload, tport);
1792 mlxsw_reg_spvtr_local_port_set(payload, local_port);
1793 mlxsw_reg_spvtr_ipvid_mode_set(payload, ipvid_mode);
1794 mlxsw_reg_spvtr_ipve_set(payload, true);
1822 static inline void mlxsw_reg_svpe_pack(char *payload, u16 local_port,
1825 MLXSW_REG_ZERO(svpe, payload);
1826 mlxsw_reg_svpe_local_port_set(payload, local_port);
1827 mlxsw_reg_svpe_vp_en_set(payload, enable);
1995 static inline void mlxsw_reg_sfmr_pack(char *payload,
1999 MLXSW_REG_ZERO(sfmr, payload);
2000 mlxsw_reg_sfmr_op_set(payload, op);
2001 mlxsw_reg_sfmr_fid_set(payload, fid);
2002 mlxsw_reg_sfmr_smpe_valid_set(payload, smpe_valid);
2003 mlxsw_reg_sfmr_smpe_set(payload, smpe);
2049 static inline void mlxsw_reg_spvmlr_pack(char *payload, u16 local_port,
2058 MLXSW_REG_ZERO(spvmlr, payload);
2059 mlxsw_reg_spvmlr_local_port_set(payload, local_port);
2060 mlxsw_reg_spvmlr_num_rec_set(payload, num_rec);
2063 mlxsw_reg_spvmlr_rec_learn_enable_set(payload, i, learn_enable);
2064 mlxsw_reg_spvmlr_rec_vid_set(payload, i, vid_begin + i);
2093 static inline void mlxsw_reg_spfsr_pack(char *payload, u16 local_port,
2096 MLXSW_REG_ZERO(spfsr, payload);
2097 mlxsw_reg_spfsr_local_port_set(payload, local_port);
2098 mlxsw_reg_spfsr_security_set(payload, security);
2185 static inline void mlxsw_reg_spvc_pack(char *payload, u16 local_port, bool et1,
2188 MLXSW_REG_ZERO(spvc, payload);
2189 mlxsw_reg_spvc_local_port_set(payload, local_port);
2193 mlxsw_reg_spvc_inner_et1_set(payload, 1);
2194 mlxsw_reg_spvc_inner_et0_set(payload, 1);
2195 mlxsw_reg_spvc_et1_set(payload, et1);
2196 mlxsw_reg_spvc_et0_set(payload, et0);
2233 static inline void mlxsw_reg_sffp_pack(char *payload, u8 profile_id,
2237 MLXSW_REG_ZERO(sffp, payload);
2238 mlxsw_reg_sffp_profile_id_set(payload, profile_id);
2239 mlxsw_reg_sffp_type_set(payload, type);
2240 mlxsw_reg_sffp_flood_offset_set(payload, flood_offset);
2270 static inline void mlxsw_reg_spevet_pack(char *payload, u16 local_port,
2273 MLXSW_REG_ZERO(spevet, payload);
2274 mlxsw_reg_spevet_local_port_set(payload, local_port);
2275 mlxsw_reg_spevet_et_vlan_set(payload, et_vlan);
2308 static inline void mlxsw_reg_smpe_pack(char *payload, u16 local_port,
2311 MLXSW_REG_ZERO(smpe, payload);
2312 mlxsw_reg_smpe_local_port_set(payload, local_port);
2313 mlxsw_reg_smpe_smpe_index_set(payload, smpe_index);
2314 mlxsw_reg_smpe_evid_set(payload, evid);
2370 static inline void mlxsw_reg_smid2_pack(char *payload, u16 mid, u16 port,
2373 MLXSW_REG_ZERO(smid2, payload);
2374 mlxsw_reg_smid2_swid_set(payload, 0);
2375 mlxsw_reg_smid2_mid_set(payload, mid);
2376 mlxsw_reg_smid2_port_set(payload, port, set);
2377 mlxsw_reg_smid2_port_mask_set(payload, port, 1);
2378 mlxsw_reg_smid2_smpe_valid_set(payload, smpe_valid);
2379 mlxsw_reg_smid2_smpe_set(payload, smpe_valid ? smpe : 0);
2432 static inline void mlxsw_reg_cwtp_pack(char *payload, u16 local_port,
2437 MLXSW_REG_ZERO(cwtp, payload);
2438 mlxsw_reg_cwtp_local_port_set(payload, local_port);
2439 mlxsw_reg_cwtp_traffic_class_set(payload, traffic_class);
2442 mlxsw_reg_cwtp_profile_min_set(payload, i,
2444 mlxsw_reg_cwtp_profile_max_set(payload, i,
2452 mlxsw_reg_cwtp_profile_pack(char *payload, u8 profile, u32 min, u32 max,
2457 mlxsw_reg_cwtp_profile_min_set(payload, index, min);
2458 mlxsw_reg_cwtp_profile_max_set(payload, index, max);
2459 mlxsw_reg_cwtp_profile_percent_set(payload, index, probability);
2550 static inline void mlxsw_reg_cwtpm_pack(char *payload, u16 local_port,
2554 MLXSW_REG_ZERO(cwtpm, payload);
2555 mlxsw_reg_cwtpm_local_port_set(payload, local_port);
2556 mlxsw_reg_cwtpm_traffic_class_set(payload, traffic_class);
2557 mlxsw_reg_cwtpm_ew_set(payload, wred);
2558 mlxsw_reg_cwtpm_ee_set(payload, ecn);
2559 mlxsw_reg_cwtpm_tcp_g_set(payload, profile);
2560 mlxsw_reg_cwtpm_tcp_y_set(payload, profile);
2561 mlxsw_reg_cwtpm_tcp_r_set(payload, profile);
2562 mlxsw_reg_cwtpm_ntcp_g_set(payload, profile);
2563 mlxsw_reg_cwtpm_ntcp_y_set(payload, profile);
2564 mlxsw_reg_cwtpm_ntcp_r_set(payload, profile);
2583 static inline void mlxsw_reg_pgcr_pack(char *payload, u32 pointer_base)
2585 MLXSW_REG_ZERO(pgcr, payload);
2586 mlxsw_reg_pgcr_default_action_pointer_base_set(payload, pointer_base);
2639 static inline void mlxsw_reg_ppbt_pack(char *payload, enum mlxsw_reg_pxbt_e e,
2643 MLXSW_REG_ZERO(ppbt, payload);
2644 mlxsw_reg_ppbt_e_set(payload, e);
2645 mlxsw_reg_ppbt_op_set(payload, op);
2646 mlxsw_reg_ppbt_local_port_set(payload, local_port);
2647 mlxsw_reg_ppbt_g_set(payload, true);
2648 mlxsw_reg_ppbt_acl_info_set(payload, acl_info);
2684 static inline void mlxsw_reg_pacl_pack(char *payload, u16 acl_id,
2687 MLXSW_REG_ZERO(pacl, payload);
2688 mlxsw_reg_pacl_acl_id_set(payload, acl_id);
2689 mlxsw_reg_pacl_v_set(payload, valid);
2690 mlxsw_reg_pacl_tcam_region_info_memcpy_to(payload, tcam_region_info);
2738 static inline void mlxsw_reg_pagt_pack(char *payload, u16 acl_group_id)
2740 MLXSW_REG_ZERO(pagt, payload);
2741 mlxsw_reg_pagt_acl_group_id_set(payload, acl_group_id);
2744 static inline void mlxsw_reg_pagt_acl_id_pack(char *payload, int index,
2747 u8 size = mlxsw_reg_pagt_size_get(payload);
2750 mlxsw_reg_pagt_size_set(payload, index + 1);
2751 mlxsw_reg_pagt_multi_set(payload, index, multi);
2752 mlxsw_reg_pagt_acl_id_set(payload, index, acl_id);
2840 static inline void mlxsw_reg_ptar_pack(char *payload, enum mlxsw_reg_ptar_op op,
2845 MLXSW_REG_ZERO(ptar, payload);
2846 mlxsw_reg_ptar_op_set(payload, op);
2847 mlxsw_reg_ptar_action_set_type_set(payload, 2); /* "flexible" */
2848 mlxsw_reg_ptar_key_type_set(payload, key_type);
2849 mlxsw_reg_ptar_region_size_set(payload, region_size);
2850 mlxsw_reg_ptar_region_id_set(payload, region_id);
2851 mlxsw_reg_ptar_tcam_region_info_memcpy_to(payload, tcam_region_info);
2854 static inline void mlxsw_reg_ptar_key_id_pack(char *payload, int index,
2857 mlxsw_reg_ptar_flexible_key_id_set(payload, index, key_id);
2860 static inline void mlxsw_reg_ptar_unpack(char *payload, char *tcam_region_info)
2862 mlxsw_reg_ptar_tcam_region_info_memcpy_from(payload, tcam_region_info);
2931 static inline void mlxsw_reg_pprr_pack(char *payload, u8 register_index)
2933 MLXSW_REG_ZERO(pprr, payload);
2934 mlxsw_reg_pprr_register_index_set(payload, register_index);
2959 static inline void mlxsw_reg_ppbs_pack(char *payload, u32 pbs_ptr,
2962 MLXSW_REG_ZERO(ppbs, payload);
2963 mlxsw_reg_ppbs_pbs_ptr_set(payload, pbs_ptr);
2964 mlxsw_reg_ppbs_system_port_set(payload, system_port);
3026 static inline void mlxsw_reg_prcr_pack(char *payload, enum mlxsw_reg_prcr_op op,
3032 MLXSW_REG_ZERO(prcr, payload);
3033 mlxsw_reg_prcr_op_set(payload, op);
3034 mlxsw_reg_prcr_offset_set(payload, src_offset);
3035 mlxsw_reg_prcr_size_set(payload, size);
3036 mlxsw_reg_prcr_tcam_region_info_memcpy_to(payload,
3038 mlxsw_reg_prcr_dest_offset_set(payload, dest_offset);
3039 mlxsw_reg_prcr_dest_tcam_region_info_memcpy_to(payload,
3085 static inline void mlxsw_reg_pefa_pack(char *payload, u32 index, bool ca,
3088 MLXSW_REG_ZERO(pefa, payload);
3089 mlxsw_reg_pefa_index_set(payload, index);
3090 mlxsw_reg_pefa_ca_set(payload, ca);
3092 mlxsw_reg_pefa_flex_action_set_memcpy_to(payload,
3096 static inline void mlxsw_reg_pefa_unpack(char *payload, bool *p_a)
3098 *p_a = mlxsw_reg_pefa_a_get(payload);
3130 mlxsw_reg_pemrbt_pack(char *payload, enum mlxsw_reg_pemrbt_protocol protocol,
3133 MLXSW_REG_ZERO(pemrbt, payload);
3134 mlxsw_reg_pemrbt_protocol_set(payload, protocol);
3135 mlxsw_reg_pemrbt_group_id_set(payload, group_id);
3232 static inline void mlxsw_reg_ptce2_pack(char *payload, bool valid,
3237 MLXSW_REG_ZERO(ptce2, payload);
3238 mlxsw_reg_ptce2_v_set(payload, valid);
3239 mlxsw_reg_ptce2_op_set(payload, op);
3240 mlxsw_reg_ptce2_offset_set(payload, offset);
3241 mlxsw_reg_ptce2_priority_set(payload, priority);
3242 mlxsw_reg_ptce2_tcam_region_info_memcpy_to(payload, tcam_region_info);
3329 static inline void mlxsw_reg_perpt_erp_vector_pack(char *payload,
3336 mlxsw_reg_perpt_erp_vector_set(payload, bit, true);
3340 mlxsw_reg_perpt_pack(char *payload, u8 erpt_bank, u8 erpt_index,
3345 MLXSW_REG_ZERO(perpt, payload);
3346 mlxsw_reg_perpt_erpt_bank_set(payload, erpt_bank);
3347 mlxsw_reg_perpt_erpt_index_set(payload, erpt_index);
3348 mlxsw_reg_perpt_key_size_set(payload, key_size);
3349 mlxsw_reg_perpt_bf_bypass_set(payload, false);
3350 mlxsw_reg_perpt_erp_id_set(payload, erp_id);
3351 mlxsw_reg_perpt_erpt_base_bank_set(payload, erpt_base_bank);
3352 mlxsw_reg_perpt_erpt_base_index_set(payload, erpt_base_index);
3353 mlxsw_reg_perpt_erp_index_in_vector_set(payload, erp_index);
3354 mlxsw_reg_perpt_mask_memcpy_to(payload, mask);
3390 static inline void mlxsw_reg_perar_pack(char *payload, u16 region_id,
3393 MLXSW_REG_ZERO(perar, payload);
3394 mlxsw_reg_perar_region_id_set(payload, region_id);
3395 mlxsw_reg_perar_hw_region_set(payload, hw_region);
3536 static inline void mlxsw_reg_ptce3_pack(char *payload, bool valid,
3545 MLXSW_REG_ZERO(ptce3, payload);
3546 mlxsw_reg_ptce3_v_set(payload, valid);
3547 mlxsw_reg_ptce3_op_set(payload, op);
3548 mlxsw_reg_ptce3_priority_set(payload, priority);
3549 mlxsw_reg_ptce3_tcam_region_info_memcpy_to(payload, tcam_region_info);
3550 mlxsw_reg_ptce3_flex2_key_blocks_memcpy_to(payload, key);
3551 mlxsw_reg_ptce3_erp_id_set(payload, erp_id);
3552 mlxsw_reg_ptce3_delta_start_set(payload, delta_start);
3553 mlxsw_reg_ptce3_delta_mask_set(payload, delta_mask);
3554 mlxsw_reg_ptce3_delta_value_set(payload, delta_value);
3555 mlxsw_reg_ptce3_large_exists_set(payload, large_exists);
3556 mlxsw_reg_ptce3_large_entry_key_id_set(payload, lkey_id);
3557 mlxsw_reg_ptce3_action_pointer_set(payload, action_pointer);
3606 static inline void mlxsw_reg_percr_pack(char *payload, u16 region_id)
3608 MLXSW_REG_ZERO(percr, payload);
3609 mlxsw_reg_percr_region_id_set(payload, region_id);
3610 mlxsw_reg_percr_atcam_ignore_prune_set(payload, false);
3611 mlxsw_reg_percr_ctcam_ignore_prune_set(payload, false);
3612 mlxsw_reg_percr_bf_bypass_set(payload, false);
3677 static inline void mlxsw_reg_pererp_erp_vector_pack(char *payload,
3684 mlxsw_reg_pererp_erpt_vector_set(payload, bit, true);
3687 static inline void mlxsw_reg_pererp_pack(char *payload, u16 region_id,
3692 MLXSW_REG_ZERO(pererp, payload);
3693 mlxsw_reg_pererp_region_id_set(payload, region_id);
3694 mlxsw_reg_pererp_ctcam_le_set(payload, ctcam_le);
3695 mlxsw_reg_pererp_erpt_pointer_valid_set(payload, erpt_pointer_valid);
3696 mlxsw_reg_pererp_erpt_bank_pointer_set(payload, erpt_bank_pointer);
3697 mlxsw_reg_pererp_erpt_pointer_set(payload, erpt_pointer);
3698 mlxsw_reg_pererp_master_rp_id_set(payload, master_rp_id);
3750 static inline void mlxsw_reg_peabfe_pack(char *payload)
3752 MLXSW_REG_ZERO(peabfe, payload);
3755 static inline void mlxsw_reg_peabfe_rec_pack(char *payload, int rec_index,
3758 u8 num_rec = mlxsw_reg_peabfe_size_get(payload);
3761 mlxsw_reg_peabfe_size_set(payload, rec_index + 1);
3762 mlxsw_reg_peabfe_bf_entry_state_set(payload, rec_index, state);
3763 mlxsw_reg_peabfe_bf_entry_bank_set(payload, rec_index, bank);
3764 mlxsw_reg_peabfe_bf_entry_index_set(payload, rec_index, bf_index);
3810 static inline void mlxsw_reg_iedr_pack(char *payload)
3812 MLXSW_REG_ZERO(iedr, payload);
3815 static inline void mlxsw_reg_iedr_rec_pack(char *payload, int rec_index,
3819 u8 num_rec = mlxsw_reg_iedr_num_rec_get(payload);
3822 mlxsw_reg_iedr_num_rec_set(payload, rec_index + 1);
3823 mlxsw_reg_iedr_rec_type_set(payload, rec_index, rec_type);
3824 mlxsw_reg_iedr_rec_size_set(payload, rec_index, rec_size);
3825 mlxsw_reg_iedr_rec_index_start_set(payload, rec_index, rec_index_start);
3857 static inline void mlxsw_reg_qpts_pack(char *payload, u16 local_port,
3860 MLXSW_REG_ZERO(qpts, payload);
3862 mlxsw_reg_qpts_local_port_set(payload, local_port);
3863 mlxsw_reg_qpts_trust_state_set(payload, ts);
4016 static inline void mlxsw_reg_qpcr_pack(char *payload, u16 pid,
4020 MLXSW_REG_ZERO(qpcr, payload);
4021 mlxsw_reg_qpcr_pid_set(payload, pid);
4022 mlxsw_reg_qpcr_g_set(payload, MLXSW_REG_QPCR_G_GLOBAL);
4023 mlxsw_reg_qpcr_rate_type_set(payload, MLXSW_REG_QPCR_RATE_TYPE_SINGLE);
4024 mlxsw_reg_qpcr_violate_action_set(payload,
4026 mlxsw_reg_qpcr_cir_set(payload, cir);
4027 mlxsw_reg_qpcr_ir_units_set(payload, ir_units);
4028 mlxsw_reg_qpcr_bytes_set(payload, bytes);
4029 mlxsw_reg_qpcr_cbs_set(payload, cbs);
4073 static inline void mlxsw_reg_qtct_pack(char *payload, u16 local_port,
4076 MLXSW_REG_ZERO(qtct, payload);
4077 mlxsw_reg_qtct_local_port_set(payload, local_port);
4078 mlxsw_reg_qtct_switch_prio_set(payload, switch_prio);
4079 mlxsw_reg_qtct_tclass_set(payload, tclass);
4241 static inline void mlxsw_reg_qeec_pack(char *payload, u16 local_port,
4245 MLXSW_REG_ZERO(qeec, payload);
4246 mlxsw_reg_qeec_local_port_set(payload, local_port);
4247 mlxsw_reg_qeec_element_hierarchy_set(payload, hr);
4248 mlxsw_reg_qeec_element_index_set(payload, index);
4249 mlxsw_reg_qeec_next_element_index_set(payload, next_index);
4252 static inline void mlxsw_reg_qeec_ptps_pack(char *payload, u16 local_port,
4255 MLXSW_REG_ZERO(qeec, payload);
4256 mlxsw_reg_qeec_local_port_set(payload, local_port);
4257 mlxsw_reg_qeec_element_hierarchy_set(payload, MLXSW_REG_QEEC_HR_PORT);
4258 mlxsw_reg_qeec_ptps_set(payload, ptps);
4290 static inline void mlxsw_reg_qrwe_pack(char *payload, u16 local_port,
4293 MLXSW_REG_ZERO(qrwe, payload);
4294 mlxsw_reg_qrwe_local_port_set(payload, local_port);
4295 mlxsw_reg_qrwe_pcp_set(payload, rewrite_pcp);
4296 mlxsw_reg_qrwe_dscp_set(payload, rewrite_dscp);
4370 static inline void mlxsw_reg_qpdsm_pack(char *payload, u16 local_port)
4372 MLXSW_REG_ZERO(qpdsm, payload);
4373 mlxsw_reg_qpdsm_local_port_set(payload, local_port);
4377 mlxsw_reg_qpdsm_prio_pack(char *payload, unsigned short prio, u8 dscp)
4379 mlxsw_reg_qpdsm_prio_entry_color0_e_set(payload, prio, 1);
4380 mlxsw_reg_qpdsm_prio_entry_color0_dscp_set(payload, prio, dscp);
4381 mlxsw_reg_qpdsm_prio_entry_color1_e_set(payload, prio, 1);
4382 mlxsw_reg_qpdsm_prio_entry_color1_dscp_set(payload, prio, dscp);
4383 mlxsw_reg_qpdsm_prio_entry_color2_e_set(payload, prio, 1);
4384 mlxsw_reg_qpdsm_prio_entry_color2_dscp_set(payload, prio, dscp);
4411 static inline void mlxsw_reg_qpdp_pack(char *payload, u16 local_port,
4414 MLXSW_REG_ZERO(qpdp, payload);
4415 mlxsw_reg_qpdp_local_port_set(payload, local_port);
4416 mlxsw_reg_qpdp_switch_prio_set(payload, switch_prio);
4457 static inline void mlxsw_reg_qpdpm_pack(char *payload, u16 local_port)
4459 MLXSW_REG_ZERO(qpdpm, payload);
4460 mlxsw_reg_qpdpm_local_port_set(payload, local_port);
4464 mlxsw_reg_qpdpm_dscp_pack(char *payload, unsigned short dscp, u8 prio)
4466 mlxsw_reg_qpdpm_dscp_entry_e_set(payload, dscp, 1);
4467 mlxsw_reg_qpdpm_dscp_entry_prio_set(payload, dscp, prio);
4499 mlxsw_reg_qtctm_pack(char *payload, u16 local_port, bool mc)
4501 MLXSW_REG_ZERO(qtctm, payload);
4502 mlxsw_reg_qtctm_local_port_set(payload, local_port);
4503 mlxsw_reg_qtctm_mc_set(payload, mc);
4595 mlxsw_reg_qpsc_pack(char *payload, enum mlxsw_reg_qpsc_port_speed port_speed,
4600 MLXSW_REG_ZERO(qpsc, payload);
4601 mlxsw_reg_qpsc_port_speed_set(payload, port_speed);
4602 mlxsw_reg_qpsc_shaper_time_exp_set(payload, shaper_time_exp);
4603 mlxsw_reg_qpsc_shaper_time_mantissa_set(payload, shaper_time_mantissa);
4604 mlxsw_reg_qpsc_shaper_inc_set(payload, shaper_inc);
4605 mlxsw_reg_qpsc_shaper_bs_set(payload, shaper_bs);
4606 mlxsw_reg_qpsc_ptsc_we_set(payload, true);
4607 mlxsw_reg_qpsc_port_to_shaper_credits_set(payload, port_to_shaper_credits);
4608 mlxsw_reg_qpsc_ing_timestamp_inc_set(payload, ing_timestamp_inc);
4609 mlxsw_reg_qpsc_egr_timestamp_inc_set(payload, egr_timestamp_inc);
4672 static inline void mlxsw_reg_pmlp_pack(char *payload, u16 local_port)
4674 MLXSW_REG_ZERO(pmlp, payload);
4675 mlxsw_reg_pmlp_local_port_set(payload, local_port);
4719 static inline void mlxsw_reg_pmtu_pack(char *payload, u16 local_port,
4722 MLXSW_REG_ZERO(pmtu, payload);
4723 mlxsw_reg_pmtu_local_port_set(payload, local_port);
4724 mlxsw_reg_pmtu_max_mtu_set(payload, 0);
4725 mlxsw_reg_pmtu_admin_mtu_set(payload, new_mtu);
4726 mlxsw_reg_pmtu_oper_mtu_set(payload, 0);
4873 static inline void mlxsw_reg_ptys_eth_pack(char *payload, u16 local_port,
4876 MLXSW_REG_ZERO(ptys, payload);
4877 mlxsw_reg_ptys_local_port_set(payload, local_port);
4878 mlxsw_reg_ptys_proto_mask_set(payload, MLXSW_REG_PTYS_PROTO_MASK_ETH);
4879 mlxsw_reg_ptys_eth_proto_admin_set(payload, proto_admin);
4880 mlxsw_reg_ptys_an_disable_admin_set(payload, !autoneg);
4883 static inline void mlxsw_reg_ptys_ext_eth_pack(char *payload, u16 local_port,
4886 MLXSW_REG_ZERO(ptys, payload);
4887 mlxsw_reg_ptys_local_port_set(payload, local_port);
4888 mlxsw_reg_ptys_proto_mask_set(payload, MLXSW_REG_PTYS_PROTO_MASK_ETH);
4889 mlxsw_reg_ptys_ext_eth_proto_admin_set(payload, proto_admin);
4890 mlxsw_reg_ptys_an_disable_admin_set(payload, !autoneg);
4893 static inline void mlxsw_reg_ptys_eth_unpack(char *payload,
4900 mlxsw_reg_ptys_eth_proto_cap_get(payload);
4903 mlxsw_reg_ptys_eth_proto_admin_get(payload);
4906 mlxsw_reg_ptys_eth_proto_oper_get(payload);
4909 static inline void mlxsw_reg_ptys_ext_eth_unpack(char *payload,
4916 mlxsw_reg_ptys_ext_eth_proto_cap_get(payload);
4919 mlxsw_reg_ptys_ext_eth_proto_admin_get(payload);
4922 mlxsw_reg_ptys_ext_eth_proto_oper_get(payload);
4955 static inline void mlxsw_reg_ppad_pack(char *payload, bool single_base_mac,
4958 MLXSW_REG_ZERO(ppad, payload);
4959 mlxsw_reg_ppad_single_base_mac_set(payload, !!single_base_mac);
4960 mlxsw_reg_ppad_local_port_set(payload, local_port);
5030 static inline void mlxsw_reg_paos_pack(char *payload, u16 local_port,
5033 MLXSW_REG_ZERO(paos, payload);
5034 mlxsw_reg_paos_swid_set(payload, 0);
5035 mlxsw_reg_paos_local_port_set(payload, local_port);
5036 mlxsw_reg_paos_admin_status_set(payload, status);
5037 mlxsw_reg_paos_oper_status_set(payload, 0);
5038 mlxsw_reg_paos_ase_set(payload, 1);
5039 mlxsw_reg_paos_ee_set(payload, 1);
5040 mlxsw_reg_paos_e_set(payload, 1);
5165 static inline void mlxsw_reg_pfcc_prio_pack(char *payload, u8 pfc_en)
5167 mlxsw_reg_pfcc_prio_mask_tx_set(payload, MLXSW_REG_PFCC_ALL_PRIO);
5168 mlxsw_reg_pfcc_prio_mask_rx_set(payload, MLXSW_REG_PFCC_ALL_PRIO);
5169 mlxsw_reg_pfcc_pfctx_set(payload, pfc_en);
5170 mlxsw_reg_pfcc_pfcrx_set(payload, pfc_en);
5173 static inline void mlxsw_reg_pfcc_pack(char *payload, u16 local_port)
5175 MLXSW_REG_ZERO(pfcc, payload);
5176 mlxsw_reg_pfcc_local_port_set(payload, local_port);
5684 static inline void mlxsw_reg_ppcnt_pack(char *payload, u16 local_port,
5688 MLXSW_REG_ZERO(ppcnt, payload);
5689 mlxsw_reg_ppcnt_swid_set(payload, 0);
5690 mlxsw_reg_ppcnt_local_port_set(payload, local_port);
5691 mlxsw_reg_ppcnt_pnat_set(payload, 0);
5692 mlxsw_reg_ppcnt_grp_set(payload, grp);
5693 mlxsw_reg_ppcnt_clr_set(payload, 0);
5694 mlxsw_reg_ppcnt_lp_gl_set(payload, 1);
5695 mlxsw_reg_ppcnt_prio_tc_set(payload, prio_tc);
5775 static inline void mlxsw_reg_pptb_pack(char *payload, u16 local_port)
5777 MLXSW_REG_ZERO(pptb, payload);
5778 mlxsw_reg_pptb_mm_set(payload, MLXSW_REG_PPTB_MM_UM);
5779 mlxsw_reg_pptb_local_port_set(payload, local_port);
5780 mlxsw_reg_pptb_pm_set(payload, MLXSW_REG_PPTB_ALL_PRIO);
5781 mlxsw_reg_pptb_pm_msb_set(payload, MLXSW_REG_PPTB_ALL_PRIO);
5784 static inline void mlxsw_reg_pptb_prio_to_buff_pack(char *payload, u8 prio,
5787 mlxsw_reg_pptb_prio_to_buff_set(payload, prio, buff);
5788 mlxsw_reg_pptb_prio_to_buff_msb_set(payload, prio, buff);
5872 static inline void mlxsw_reg_pbmc_pack(char *payload, u16 local_port,
5875 MLXSW_REG_ZERO(pbmc, payload);
5876 mlxsw_reg_pbmc_local_port_set(payload, local_port);
5877 mlxsw_reg_pbmc_xoff_timer_value_set(payload, xoff_timer_value);
5878 mlxsw_reg_pbmc_xoff_refresh_set(payload, xoff_refresh);
5881 static inline void mlxsw_reg_pbmc_lossy_buffer_pack(char *payload,
5885 mlxsw_reg_pbmc_buf_lossy_set(payload, buf_index, 1);
5886 mlxsw_reg_pbmc_buf_epsb_set(payload, buf_index, 0);
5887 mlxsw_reg_pbmc_buf_size_set(payload, buf_index, size);
5890 static inline void mlxsw_reg_pbmc_lossless_buffer_pack(char *payload,
5894 mlxsw_reg_pbmc_buf_lossy_set(payload, buf_index, 0);
5895 mlxsw_reg_pbmc_buf_epsb_set(payload, buf_index, 0);
5896 mlxsw_reg_pbmc_buf_size_set(payload, buf_index, size);
5897 mlxsw_reg_pbmc_buf_xoff_threshold_set(payload, buf_index, threshold);
5898 mlxsw_reg_pbmc_buf_xon_threshold_set(payload, buf_index, threshold);
5930 static inline void mlxsw_reg_pspa_pack(char *payload, u8 swid, u16 local_port)
5932 MLXSW_REG_ZERO(pspa, payload);
5933 mlxsw_reg_pspa_swid_set(payload, swid);
5934 mlxsw_reg_pspa_local_port_set(payload, local_port);
5935 mlxsw_reg_pspa_sub_port_set(payload, 0);
6013 static inline void mlxsw_reg_pmaos_pack(char *payload, u8 slot_index, u8 module)
6015 MLXSW_REG_ZERO(pmaos, payload);
6016 mlxsw_reg_pmaos_slot_index_set(payload, slot_index);
6017 mlxsw_reg_pmaos_module_set(payload, module);
6046 static inline void mlxsw_reg_pplr_pack(char *payload, u16 local_port,
6049 MLXSW_REG_ZERO(pplr, payload);
6050 mlxsw_reg_pplr_local_port_set(payload, local_port);
6051 mlxsw_reg_pplr_lb_en_set(payload,
6109 static inline void mlxsw_reg_pmtdb_pack(char *payload, u8 slot_index, u8 module,
6112 MLXSW_REG_ZERO(pmtdb, payload);
6113 mlxsw_reg_pmtdb_slot_index_set(payload, slot_index);
6114 mlxsw_reg_pmtdb_module_set(payload, module);
6115 mlxsw_reg_pmtdb_ports_width_set(payload, ports_width);
6116 mlxsw_reg_pmtdb_num_ports_set(payload, num_ports);
6171 static inline void mlxsw_reg_pmecr_pack(char *payload, u16 local_port,
6174 MLXSW_REG_ZERO(pmecr, payload);
6175 mlxsw_reg_pmecr_local_port_set(payload, local_port);
6176 mlxsw_reg_pmecr_e_set(payload, e);
6177 mlxsw_reg_pmecr_ee_set(payload, true);
6178 mlxsw_reg_pmecr_swi_set(payload, true);
6179 mlxsw_reg_pmecr_eswi_set(payload, true);
6268 static inline void mlxsw_reg_pddr_pack(char *payload, u16 local_port,
6271 MLXSW_REG_ZERO(pddr, payload);
6272 mlxsw_reg_pddr_local_port_set(payload, local_port);
6273 mlxsw_reg_pddr_page_select_set(payload, page_select);
6325 static inline void mlxsw_reg_pmmp_pack(char *payload, u8 slot_index, u8 module)
6327 MLXSW_REG_ZERO(pmmp, payload);
6328 mlxsw_reg_pmmp_slot_index_set(payload, slot_index);
6329 mlxsw_reg_pmmp_module_set(payload, module);
6365 static inline void mlxsw_reg_pllp_pack(char *payload, u16 local_port)
6367 MLXSW_REG_ZERO(pllp, payload);
6368 mlxsw_reg_pllp_local_port_set(payload, local_port);
6371 static inline void mlxsw_reg_pllp_unpack(char *payload, u8 *label_port,
6374 *label_port = mlxsw_reg_pllp_label_port_get(payload);
6375 *split_num = mlxsw_reg_pllp_split_num_get(payload);
6376 *slot_index = mlxsw_reg_pllp_slot_index_get(payload);
6424 static inline void mlxsw_reg_pmtm_pack(char *payload, u8 slot_index, u8 module)
6426 MLXSW_REG_ZERO(pmtm, payload);
6427 mlxsw_reg_pmtm_slot_index_set(payload, slot_index);
6428 mlxsw_reg_pmtm_module_set(payload, module);
6574 static inline void mlxsw_reg_htgt_pack(char *payload, u8 group, u8 policer_id,
6577 MLXSW_REG_ZERO(htgt, payload);
6580 mlxsw_reg_htgt_pide_set(payload,
6583 mlxsw_reg_htgt_pide_set(payload,
6585 mlxsw_reg_htgt_pid_set(payload, policer_id);
6588 mlxsw_reg_htgt_type_set(payload, MLXSW_REG_HTGT_PATH_TYPE_LOCAL);
6589 mlxsw_reg_htgt_trap_group_set(payload, group);
6590 mlxsw_reg_htgt_mirror_action_set(payload, MLXSW_REG_HTGT_TRAP_TO_CPU);
6591 mlxsw_reg_htgt_mirroring_agent_set(payload, 0);
6592 mlxsw_reg_htgt_priority_set(payload, priority);
6593 mlxsw_reg_htgt_local_path_cpu_tclass_set(payload, tc);
6594 mlxsw_reg_htgt_local_path_rdq_set(payload, group);
6680 static inline void mlxsw_reg_hpkt_pack(char *payload, u8 action, u16 trap_id,
6684 MLXSW_REG_ZERO(hpkt, payload);
6685 mlxsw_reg_hpkt_ack_set(payload, MLXSW_REG_HPKT_ACK_NOT_REQUIRED);
6686 mlxsw_reg_hpkt_action_set(payload, action);
6687 mlxsw_reg_hpkt_trap_group_set(payload, trap_group);
6688 mlxsw_reg_hpkt_trap_id_set(payload, trap_id);
6689 mlxsw_reg_hpkt_ctrl_set(payload, is_ctrl ?
6759 static inline void mlxsw_reg_rgcr_pack(char *payload, bool ipv4_en,
6762 MLXSW_REG_ZERO(rgcr, payload);
6763 mlxsw_reg_rgcr_ipv4_en_set(payload, ipv4_en);
6764 mlxsw_reg_rgcr_ipv6_en_set(payload, ipv6_en);
7102 static inline void mlxsw_reg_ritr_counter_pack(char *payload, u32 index,
7113 mlxsw_reg_ritr_egress_counter_set_type_set(payload, set_type);
7114 mlxsw_reg_ritr_egress_counter_index_set(payload, index);
7116 mlxsw_reg_ritr_ingress_counter_set_type_set(payload, set_type);
7117 mlxsw_reg_ritr_ingress_counter_index_set(payload, index);
7121 static inline void mlxsw_reg_ritr_rif_pack(char *payload, u16 rif)
7123 MLXSW_REG_ZERO(ritr, payload);
7124 mlxsw_reg_ritr_rif_set(payload, rif);
7127 static inline void mlxsw_reg_ritr_sp_if_pack(char *payload, bool lag,
7130 mlxsw_reg_ritr_sp_if_lag_set(payload, lag);
7131 mlxsw_reg_ritr_sp_if_system_port_set(payload, system_port);
7132 mlxsw_reg_ritr_sp_if_efid_set(payload, efid);
7133 mlxsw_reg_ritr_sp_if_vid_set(payload, vid);
7136 static inline void mlxsw_reg_ritr_pack(char *payload, bool enable,
7142 MLXSW_REG_ZERO(ritr, payload);
7143 mlxsw_reg_ritr_enable_set(payload, enable);
7144 mlxsw_reg_ritr_ipv4_set(payload, 1);
7145 mlxsw_reg_ritr_ipv6_set(payload, 1);
7146 mlxsw_reg_ritr_ipv4_mc_set(payload, 1);
7147 mlxsw_reg_ritr_ipv6_mc_set(payload, 1);
7148 mlxsw_reg_ritr_type_set(payload, type);
7149 mlxsw_reg_ritr_op_set(payload, op);
7150 mlxsw_reg_ritr_rif_set(payload, rif);
7151 mlxsw_reg_ritr_ipv4_fe_set(payload, 1);
7152 mlxsw_reg_ritr_ipv6_fe_set(payload, 1);
7153 mlxsw_reg_ritr_ipv4_mc_fe_set(payload, 1);
7154 mlxsw_reg_ritr_ipv6_mc_fe_set(payload, 1);
7155 mlxsw_reg_ritr_lb_en_set(payload, 1);
7156 mlxsw_reg_ritr_virtual_router_set(payload, vr_id);
7157 mlxsw_reg_ritr_mtu_set(payload, mtu);
7160 static inline void mlxsw_reg_ritr_mac_pack(char *payload, const char *mac)
7162 mlxsw_reg_ritr_if_mac_memcpy_to(payload, mac);
7166 mlxsw_reg_ritr_vlan_if_pack(char *payload, bool enable, u16 rif, u16 vr_id,
7172 mlxsw_reg_ritr_pack(payload, enable, type, rif, vr_id, mtu);
7173 mlxsw_reg_ritr_if_mac_memcpy_to(payload, mac);
7174 mlxsw_reg_ritr_if_mac_profile_id_set(payload, mac_profile_id);
7175 mlxsw_reg_ritr_vlan_if_vlan_id_set(payload, vlan_id);
7176 mlxsw_reg_ritr_vlan_if_efid_set(payload, efid);
7180 mlxsw_reg_ritr_loopback_ipip_common_pack(char *payload,
7185 mlxsw_reg_ritr_loopback_ipip_type_set(payload, ipip_type);
7186 mlxsw_reg_ritr_loopback_ipip_options_set(payload, options);
7187 mlxsw_reg_ritr_loopback_ipip_uvr_set(payload, uvr_id);
7188 mlxsw_reg_ritr_loopback_ipip_underlay_rif_set(payload, underlay_rif);
7189 mlxsw_reg_ritr_loopback_ipip_gre_key_set(payload, gre_key);
7193 mlxsw_reg_ritr_loopback_ipip4_pack(char *payload,
7198 mlxsw_reg_ritr_loopback_protocol_set(payload,
7200 mlxsw_reg_ritr_loopback_ipip_common_pack(payload, ipip_type, options,
7202 mlxsw_reg_ritr_loopback_ipip_usip4_set(payload, usip);
7206 mlxsw_reg_ritr_loopback_ipip6_pack(char *payload,
7215 mlxsw_reg_ritr_loopback_protocol_set(payload, protocol);
7216 mlxsw_reg_ritr_loopback_ipip_common_pack(payload, ipip_type, options,
7218 mlxsw_reg_ritr_loopback_ipip_usip6_memcpy_to(payload,
7262 static inline void mlxsw_reg_rtar_pack(char *payload,
7267 MLXSW_REG_ZERO(rtar, payload);
7268 mlxsw_reg_rtar_op_set(payload, op);
7269 mlxsw_reg_rtar_key_type_set(payload, key_type);
7270 mlxsw_reg_rtar_region_size_set(payload, region_size);
7464 mlxsw_reg_ratr_pack(char *payload,
7469 MLXSW_REG_ZERO(ratr, payload);
7470 mlxsw_reg_ratr_op_set(payload, op);
7471 mlxsw_reg_ratr_v_set(payload, valid);
7472 mlxsw_reg_ratr_type_set(payload, type);
7473 mlxsw_reg_ratr_adjacency_index_low_set(payload, adjacency_index);
7474 mlxsw_reg_ratr_adjacency_index_high_set(payload, adjacency_index >> 16);
7475 mlxsw_reg_ratr_egress_router_interface_set(payload, egress_rif);
7478 static inline void mlxsw_reg_ratr_eth_entry_pack(char *payload,
7481 mlxsw_reg_ratr_eth_destination_mac_memcpy_to(payload, dest_mac);
7484 static inline void mlxsw_reg_ratr_ipip4_entry_pack(char *payload, u32 ipv4_udip)
7486 mlxsw_reg_ratr_ipip_type_set(payload, MLXSW_REG_RATR_IPIP_TYPE_IPV4);
7487 mlxsw_reg_ratr_ipip_ipv4_udip_set(payload, ipv4_udip);
7490 static inline void mlxsw_reg_ratr_ipip6_entry_pack(char *payload, u32 ipv6_ptr)
7492 mlxsw_reg_ratr_ipip_type_set(payload, MLXSW_REG_RATR_IPIP_TYPE_IPV6);
7493 mlxsw_reg_ratr_ipip_ipv6_ptr_set(payload, ipv6_ptr);
7496 static inline void mlxsw_reg_ratr_counter_pack(char *payload, u64 counter_index,
7506 mlxsw_reg_ratr_counter_index_set(payload, counter_index);
7507 mlxsw_reg_ratr_counter_set_type_set(payload, set_type);
7539 static inline void mlxsw_reg_rdpm_pack(char *payload, unsigned short index,
7542 mlxsw_reg_rdpm_dscp_entry_e_set(payload, index, 1);
7543 mlxsw_reg_rdpm_dscp_entry_prio_set(payload, index, prio);
7659 static inline void mlxsw_reg_ricnt_pack(char *payload, u32 index,
7662 MLXSW_REG_ZERO(ricnt, payload);
7663 mlxsw_reg_ricnt_op_set(payload, op);
7664 mlxsw_reg_ricnt_counter_index_set(payload, index);
7665 mlxsw_reg_ricnt_counter_set_type_set(payload,
7715 static inline void mlxsw_reg_rrcr_pack(char *payload, enum mlxsw_reg_rrcr_op op,
7720 MLXSW_REG_ZERO(rrcr, payload);
7721 mlxsw_reg_rrcr_op_set(payload, op);
7722 mlxsw_reg_rrcr_offset_set(payload, offset);
7723 mlxsw_reg_rrcr_size_set(payload, size);
7724 mlxsw_reg_rrcr_table_id_set(payload, table_id);
7725 mlxsw_reg_rrcr_dest_offset_set(payload, dest_offset);
7765 static inline void mlxsw_reg_ralta_pack(char *payload, bool alloc,
7769 MLXSW_REG_ZERO(ralta, payload);
7770 mlxsw_reg_ralta_op_set(payload, !alloc);
7771 mlxsw_reg_ralta_protocol_set(payload, protocol);
7772 mlxsw_reg_ralta_tree_id_set(payload, tree_id);
7824 static inline void mlxsw_reg_ralst_pack(char *payload, u8 root_bin, u8 tree_id)
7826 MLXSW_REG_ZERO(ralst, payload);
7829 memset(payload + MLXSW_REG_RALST_BIN_OFFSET,
7832 mlxsw_reg_ralst_root_bin_set(payload, root_bin);
7833 mlxsw_reg_ralst_tree_id_set(payload, tree_id);
7836 static inline void mlxsw_reg_ralst_bin_pack(char *payload, u8 bin_number,
7842 mlxsw_reg_ralst_left_child_bin_set(payload, bin_index, left_child_bin);
7843 mlxsw_reg_ralst_right_child_bin_set(payload, bin_index,
7877 static inline void mlxsw_reg_raltb_pack(char *payload, u16 virtual_router,
7881 MLXSW_REG_ZERO(raltb, payload);
7882 mlxsw_reg_raltb_virtual_router_set(payload, virtual_router);
7883 mlxsw_reg_raltb_protocol_set(payload, protocol);
7884 mlxsw_reg_raltb_tree_id_set(payload, tree_id);
8091 static inline void mlxsw_reg_ralue_pack(char *payload,
8096 MLXSW_REG_ZERO(ralue, payload);
8097 mlxsw_reg_ralue_protocol_set(payload, protocol);
8098 mlxsw_reg_ralue_op_set(payload, op);
8099 mlxsw_reg_ralue_virtual_router_set(payload, virtual_router);
8100 mlxsw_reg_ralue_prefix_len_set(payload, prefix_len);
8101 mlxsw_reg_ralue_entry_type_set(payload,
8103 mlxsw_reg_ralue_bmp_len_set(payload, prefix_len);
8106 static inline void mlxsw_reg_ralue_pack4(char *payload,
8112 mlxsw_reg_ralue_pack(payload, protocol, op, virtual_router, prefix_len);
8113 mlxsw_reg_ralue_dip4_set(payload, dip);
8116 static inline void mlxsw_reg_ralue_pack6(char *payload,
8122 mlxsw_reg_ralue_pack(payload, protocol, op, virtual_router, prefix_len);
8123 mlxsw_reg_ralue_dip6_memcpy_to(payload, dip);
8127 mlxsw_reg_ralue_act_remote_pack(char *payload,
8131 mlxsw_reg_ralue_action_type_set(payload,
8133 mlxsw_reg_ralue_trap_action_set(payload, trap_action);
8134 mlxsw_reg_ralue_trap_id_set(payload, trap_id);
8135 mlxsw_reg_ralue_adjacency_index_set(payload, adjacency_index);
8136 mlxsw_reg_ralue_ecmp_size_set(payload, ecmp_size);
8140 mlxsw_reg_ralue_act_local_pack(char *payload,
8144 mlxsw_reg_ralue_action_type_set(payload,
8146 mlxsw_reg_ralue_trap_action_set(payload, trap_action);
8147 mlxsw_reg_ralue_trap_id_set(payload, trap_id);
8148 mlxsw_reg_ralue_local_erif_set(payload, local_erif);
8152 mlxsw_reg_ralue_act_ip2me_pack(char *payload)
8154 mlxsw_reg_ralue_action_type_set(payload,
8159 mlxsw_reg_ralue_act_ip2me_tun_pack(char *payload, u32 tunnel_ptr)
8161 mlxsw_reg_ralue_action_type_set(payload,
8163 mlxsw_reg_ralue_ip2me_v_set(payload, 1);
8164 mlxsw_reg_ralue_ip2me_tunnel_ptr_set(payload, tunnel_ptr);
8285 static inline void mlxsw_reg_rauht_pack(char *payload,
8289 MLXSW_REG_ZERO(rauht, payload);
8290 mlxsw_reg_rauht_op_set(payload, op);
8291 mlxsw_reg_rauht_rif_set(payload, rif);
8292 mlxsw_reg_rauht_mac_memcpy_to(payload, mac);
8295 static inline void mlxsw_reg_rauht_pack4(char *payload,
8299 mlxsw_reg_rauht_pack(payload, op, rif, mac);
8300 mlxsw_reg_rauht_dip4_set(payload, dip);
8303 static inline void mlxsw_reg_rauht_pack6(char *payload,
8307 mlxsw_reg_rauht_pack(payload, op, rif, mac);
8308 mlxsw_reg_rauht_type_set(payload, MLXSW_REG_RAUHT_TYPE_IPV6);
8309 mlxsw_reg_rauht_dip6_memcpy_to(payload, dip);
8312 static inline void mlxsw_reg_rauht_pack_counter(char *payload,
8315 mlxsw_reg_rauht_counter_index_set(payload, counter_index);
8316 mlxsw_reg_rauht_counter_set_type_set(payload,
8368 static inline void mlxsw_reg_raleu_pack(char *payload,
8375 MLXSW_REG_ZERO(raleu, payload);
8376 mlxsw_reg_raleu_protocol_set(payload, protocol);
8377 mlxsw_reg_raleu_virtual_router_set(payload, virtual_router);
8378 mlxsw_reg_raleu_adjacency_index_set(payload, adjacency_index);
8379 mlxsw_reg_raleu_ecmp_size_set(payload, ecmp_size);
8380 mlxsw_reg_raleu_new_adjacency_index_set(payload, new_adjacency_index);
8381 mlxsw_reg_raleu_new_ecmp_size_set(payload, new_ecmp_size);
8462 static inline void mlxsw_reg_rauhtd_pack(char *payload,
8465 MLXSW_REG_ZERO(rauhtd, payload);
8466 mlxsw_reg_rauhtd_filter_fields_set(payload, MLXSW_REG_RAUHTD_FILTER_A);
8467 mlxsw_reg_rauhtd_op_set(payload, MLXSW_REG_RAUHTD_OP_DUMP_AND_CLEAR);
8468 mlxsw_reg_rauhtd_num_rec_set(payload, MLXSW_REG_RAUHTD_REC_MAX_NUM);
8469 mlxsw_reg_rauhtd_entry_a_set(payload, 1);
8470 mlxsw_reg_rauhtd_type_set(payload, type);
8542 static inline void mlxsw_reg_rauhtd_ent_ipv4_unpack(char *payload,
8546 *p_rif = mlxsw_reg_rauhtd_ipv4_ent_rif_get(payload, ent_index);
8547 *p_dip = mlxsw_reg_rauhtd_ipv4_ent_dip_get(payload, ent_index);
8550 static inline void mlxsw_reg_rauhtd_ent_ipv6_unpack(char *payload,
8554 *p_rif = mlxsw_reg_rauhtd_ipv6_ent_rif_get(payload, rec_index);
8555 mlxsw_reg_rauhtd_ipv6_ent_dip_memcpy_from(payload, rec_index, p_dip);
8669 static inline void mlxsw_reg_rtdp_pack(char *payload,
8673 MLXSW_REG_ZERO(rtdp, payload);
8674 mlxsw_reg_rtdp_type_set(payload, type);
8675 mlxsw_reg_rtdp_tunnel_index_set(payload, tunnel_index);
8679 mlxsw_reg_rtdp_ipip_pack(char *payload, u16 irif,
8684 mlxsw_reg_rtdp_ipip_irif_set(payload, irif);
8685 mlxsw_reg_rtdp_ipip_sip_check_set(payload, sip_check);
8686 mlxsw_reg_rtdp_ipip_type_check_set(payload, type_check);
8687 mlxsw_reg_rtdp_ipip_gre_key_check_set(payload, gre_key_check);
8688 mlxsw_reg_rtdp_ipip_expected_gre_key_set(payload, expected_gre_key);
8692 mlxsw_reg_rtdp_ipip4_pack(char *payload, u16 irif,
8697 mlxsw_reg_rtdp_ipip_pack(payload, irif, sip_check, type_check,
8699 mlxsw_reg_rtdp_ipip_ipv4_usip_set(payload, ipv4_usip);
8703 mlxsw_reg_rtdp_ipip6_pack(char *payload, u16 irif,
8708 mlxsw_reg_rtdp_ipip_pack(payload, irif, sip_check, type_check,
8710 mlxsw_reg_rtdp_ipip_ipv6_usip_ptr_set(payload, ipv6_usip_ptr);
8736 static inline void mlxsw_reg_rips_pack(char *payload, u32 index,
8739 MLXSW_REG_ZERO(rips, payload);
8740 mlxsw_reg_rips_index_set(payload, index);
8741 mlxsw_reg_rips_ipv6_memcpy_to(payload, (const char *)ipv6);
8788 static inline void mlxsw_reg_ratrad_pack(char *payload, u32 adjacency_index,
8791 MLXSW_REG_ZERO(ratrad, payload);
8792 mlxsw_reg_ratrad_op_set(payload,
8794 mlxsw_reg_ratrad_ecmp_size_set(payload, ecmp_size);
8795 mlxsw_reg_ratrad_adjacency_index_set(payload, adjacency_index);
8862 static inline void mlxsw_reg_rigr2_pack(char *payload, u32 rigr_index,
8865 MLXSW_REG_ZERO(rigr2, payload);
8866 mlxsw_reg_rigr2_rigr_index_set(payload, rigr_index);
8867 mlxsw_reg_rigr2_vnext_set(payload, vnext);
8868 mlxsw_reg_rigr2_next_rigr_index_set(payload, next_rigr_index);
8869 mlxsw_reg_rigr2_vrmid_set(payload, 0);
8870 mlxsw_reg_rigr2_rmid_index_set(payload, 0);
8873 static inline void mlxsw_reg_rigr2_erif_entry_pack(char *payload, int index,
8876 mlxsw_reg_rigr2_erif_entry_v_set(payload, index, v);
8877 mlxsw_reg_rigr2_erif_entry_erif_set(payload, index, erif);
9007 static inline void mlxsw_reg_recr2_pack(char *payload, u32 seed)
9009 MLXSW_REG_ZERO(recr2, payload);
9010 mlxsw_reg_recr2_pp_set(payload, false);
9011 mlxsw_reg_recr2_sh_set(payload, true);
9012 mlxsw_reg_recr2_seed_set(payload, seed);
9138 mlxsw_reg_rmft2_common_pack(char *payload, bool v, u16 offset,
9143 MLXSW_REG_ZERO(rmft2, payload);
9144 mlxsw_reg_rmft2_v_set(payload, v);
9145 mlxsw_reg_rmft2_op_set(payload, MLXSW_REG_RMFT2_OP_READ_WRITE);
9146 mlxsw_reg_rmft2_offset_set(payload, offset);
9147 mlxsw_reg_rmft2_virtual_router_set(payload, virtual_router);
9148 mlxsw_reg_rmft2_irif_mask_set(payload, irif_mask);
9149 mlxsw_reg_rmft2_irif_set(payload, irif);
9151 mlxsw_reg_rmft2_flexible_action_set_memcpy_to(payload,
9156 mlxsw_reg_rmft2_ipv4_pack(char *payload, bool v, u16 offset, u16 virtual_router,
9161 mlxsw_reg_rmft2_common_pack(payload, v, offset, virtual_router,
9163 mlxsw_reg_rmft2_type_set(payload, MLXSW_REG_RMFT2_TYPE_IPV4);
9164 mlxsw_reg_rmft2_dip4_set(payload, dip4);
9165 mlxsw_reg_rmft2_dip4_mask_set(payload, dip4_mask);
9166 mlxsw_reg_rmft2_sip4_set(payload, sip4);
9167 mlxsw_reg_rmft2_sip4_mask_set(payload, sip4_mask);
9171 mlxsw_reg_rmft2_ipv6_pack(char *payload, bool v, u16 offset, u16 virtual_router,
9177 mlxsw_reg_rmft2_common_pack(payload, v, offset, virtual_router,
9179 mlxsw_reg_rmft2_type_set(payload, MLXSW_REG_RMFT2_TYPE_IPV6);
9180 mlxsw_reg_rmft2_dip6_memcpy_to(payload, (void *)&dip6);
9181 mlxsw_reg_rmft2_dip6_mask_memcpy_to(payload, (void *)&dip6_mask);
9182 mlxsw_reg_rmft2_sip6_memcpy_to(payload, (void *)&sip6);
9183 mlxsw_reg_rmft2_sip6_mask_memcpy_to(payload, (void *)&sip6_mask);
9237 static inline void mlxsw_reg_reiv_pack(char *payload, u8 port_page, u16 erif)
9239 MLXSW_REG_ZERO(reiv, payload);
9240 mlxsw_reg_reiv_port_page_set(payload, port_page);
9241 mlxsw_reg_reiv_erif_set(payload, erif);
9287 mlxsw_reg_mfcr_pack(char *payload,
9290 MLXSW_REG_ZERO(mfcr, payload);
9291 mlxsw_reg_mfcr_pwm_frequency_set(payload, pwm_frequency);
9295 mlxsw_reg_mfcr_unpack(char *payload,
9299 *p_pwm_frequency = mlxsw_reg_mfcr_pwm_frequency_get(payload);
9300 *p_tacho_active = mlxsw_reg_mfcr_tacho_active_get(payload);
9301 *p_pwm_active = mlxsw_reg_mfcr_pwm_active_get(payload);
9326 static inline void mlxsw_reg_mfsc_pack(char *payload, u8 pwm,
9329 MLXSW_REG_ZERO(mfsc, payload);
9330 mlxsw_reg_mfsc_pwm_set(payload, pwm);
9331 mlxsw_reg_mfsc_pwm_duty_cycle_set(payload, pwm_duty_cycle);
9356 static inline void mlxsw_reg_mfsm_pack(char *payload, u8 tacho)
9358 MLXSW_REG_ZERO(mfsm, payload);
9359 mlxsw_reg_mfsm_tacho_set(payload, tacho);
9391 static inline void mlxsw_reg_mfsl_pack(char *payload, u8 tacho,
9394 MLXSW_REG_ZERO(mfsl, payload);
9395 mlxsw_reg_mfsl_tacho_set(payload, tacho);
9396 mlxsw_reg_mfsl_tach_min_set(payload, tach_min);
9397 mlxsw_reg_mfsl_tach_max_set(payload, tach_max);
9400 static inline void mlxsw_reg_mfsl_unpack(char *payload, u8 tacho,
9404 *p_tach_min = mlxsw_reg_mfsl_tach_min_get(payload);
9407 *p_tach_max = mlxsw_reg_mfsl_tach_max_get(payload);
9428 static inline void mlxsw_reg_fore_unpack(char *payload, u8 tacho,
9434 limit = mlxsw_reg_fore_fan_under_limit_get(payload);
9562 static inline void mlxsw_reg_mtmp_pack(char *payload, u8 slot_index,
9566 MLXSW_REG_ZERO(mtmp, payload);
9567 mlxsw_reg_mtmp_slot_index_set(payload, slot_index);
9568 mlxsw_reg_mtmp_sensor_index_set(payload, sensor_index);
9569 mlxsw_reg_mtmp_mte_set(payload, max_temp_enable);
9570 mlxsw_reg_mtmp_mtr_set(payload, max_temp_reset);
9571 mlxsw_reg_mtmp_temperature_threshold_hi_set(payload,
9575 static inline void mlxsw_reg_mtmp_unpack(char *payload, int *p_temp,
9583 temp = mlxsw_reg_mtmp_temperature_get(payload);
9587 temp = mlxsw_reg_mtmp_max_temperature_get(payload);
9591 temp = mlxsw_reg_mtmp_temperature_threshold_hi_get(payload);
9595 temp = mlxsw_reg_mtmp_max_operational_temperature_get(payload);
9599 mlxsw_reg_mtmp_sensor_name_memcpy_from(payload, sensor_name);
9671 static inline void mlxsw_reg_mtbr_pack(char *payload, u8 slot_index,
9674 MLXSW_REG_ZERO(mtbr, payload);
9675 mlxsw_reg_mtbr_slot_index_set(payload, slot_index);
9676 mlxsw_reg_mtbr_base_sensor_index_set(payload, base_sensor_index);
9677 mlxsw_reg_mtbr_num_rec_set(payload, 1);
9691 static inline void mlxsw_reg_mtbr_temp_unpack(char *payload, int rec_ind,
9695 *p_temp = mlxsw_reg_mtbr_rec_temp_get(payload, rec_ind);
9697 *p_max_temp = mlxsw_reg_mtbr_rec_max_temp_get(payload, rec_ind);
9820 static inline void mlxsw_reg_mcia_pack(char *payload, u8 slot_index, u8 module,
9824 MLXSW_REG_ZERO(mcia, payload);
9825 mlxsw_reg_mcia_slot_set(payload, slot_index);
9826 mlxsw_reg_mcia_module_set(payload, module);
9827 mlxsw_reg_mcia_page_number_set(payload, page_number);
9828 mlxsw_reg_mcia_device_address_set(payload, device_addr);
9829 mlxsw_reg_mcia_size_set(payload, size);
9830 mlxsw_reg_mcia_i2c_device_address_set(payload, i2c_device_addr);
10002 static inline void mlxsw_reg_mpat_pack(char *payload, u8 pa_id,
10006 MLXSW_REG_ZERO(mpat, payload);
10007 mlxsw_reg_mpat_pa_id_set(payload, pa_id);
10008 mlxsw_reg_mpat_system_port_set(payload, system_port);
10009 mlxsw_reg_mpat_e_set(payload, e);
10010 mlxsw_reg_mpat_qos_set(payload, 1);
10011 mlxsw_reg_mpat_be_set(payload, 1);
10012 mlxsw_reg_mpat_span_type_set(payload, span_type);
10015 static inline void mlxsw_reg_mpat_eth_rspan_pack(char *payload, u16 vid)
10017 mlxsw_reg_mpat_eth_rspan_vid_set(payload, vid);
10021 mlxsw_reg_mpat_eth_rspan_l2_pack(char *payload,
10026 mlxsw_reg_mpat_eth_rspan_version_set(payload, version);
10027 mlxsw_reg_mpat_eth_rspan_mac_memcpy_to(payload, mac);
10028 mlxsw_reg_mpat_eth_rspan_tp_set(payload, tp);
10032 mlxsw_reg_mpat_eth_rspan_l3_ipv4_pack(char *payload, u8 ttl,
10036 mlxsw_reg_mpat_eth_rspan_ttl_set(payload, ttl);
10037 mlxsw_reg_mpat_eth_rspan_smac_memcpy_to(payload, smac);
10038 mlxsw_reg_mpat_eth_rspan_protocol_set(payload,
10040 mlxsw_reg_mpat_eth_rspan_sip4_set(payload, sip);
10041 mlxsw_reg_mpat_eth_rspan_dip4_set(payload, dip);
10045 mlxsw_reg_mpat_eth_rspan_l3_ipv6_pack(char *payload, u8 ttl,
10049 mlxsw_reg_mpat_eth_rspan_ttl_set(payload, ttl);
10050 mlxsw_reg_mpat_eth_rspan_smac_memcpy_to(payload, smac);
10051 mlxsw_reg_mpat_eth_rspan_protocol_set(payload,
10053 mlxsw_reg_mpat_eth_rspan_sip6_memcpy_to(payload, (void *)&sip);
10054 mlxsw_reg_mpat_eth_rspan_dip6_memcpy_to(payload, (void *)&dip);
10108 static inline void mlxsw_reg_mpar_pack(char *payload, u16 local_port,
10113 MLXSW_REG_ZERO(mpar, payload);
10114 mlxsw_reg_mpar_local_port_set(payload, local_port);
10115 mlxsw_reg_mpar_enable_set(payload, enable);
10116 mlxsw_reg_mpar_i_e_set(payload, i_e);
10117 mlxsw_reg_mpar_pa_id_set(payload, pa_id);
10118 mlxsw_reg_mpar_probability_rate_set(payload, probability_rate);
10171 static inline void mlxsw_reg_mgir_pack(char *payload)
10173 MLXSW_REG_ZERO(mgir, payload);
10177 mlxsw_reg_mgir_unpack(char *payload, u32 *hw_rev, char *fw_info_psid,
10180 *hw_rev = mlxsw_reg_mgir_hw_info_device_hw_revision_get(payload);
10181 mlxsw_reg_mgir_fw_info_psid_memcpy_from(payload, fw_info_psid);
10182 *fw_major = mlxsw_reg_mgir_fw_info_extended_major_get(payload);
10183 *fw_minor = mlxsw_reg_mgir_fw_info_extended_minor_get(payload);
10184 *fw_sub_minor = mlxsw_reg_mgir_fw_info_extended_sub_minor_get(payload);
10214 static inline void mlxsw_reg_mrsr_pack(char *payload,
10217 MLXSW_REG_ZERO(mrsr, payload);
10218 mlxsw_reg_mrsr_command_set(payload, command);
10253 static inline void mlxsw_reg_mlcr_pack(char *payload, u16 local_port,
10256 MLXSW_REG_ZERO(mlcr, payload);
10257 mlxsw_reg_mlcr_local_port_set(payload, local_port);
10258 mlxsw_reg_mlcr_beacon_duration_set(payload, active ?
10295 static inline void mlxsw_reg_mcion_pack(char *payload, u8 slot_index, u8 module)
10297 MLXSW_REG_ZERO(mcion, payload);
10298 mlxsw_reg_mcion_slot_index_set(payload, slot_index);
10299 mlxsw_reg_mcion_module_set(payload, module);
10349 mlxsw_reg_mtpps_vpin_pack(char *payload, u64 time_stamp)
10351 MLXSW_REG_ZERO(mtpps, payload);
10352 mlxsw_reg_mtpps_pin_set(payload, MLXSW_REG_MTPPS_PIN_SP_VIRTUAL_PIN);
10353 mlxsw_reg_mtpps_pin_mode_set(payload,
10355 mlxsw_reg_mtpps_enable_set(payload, true);
10356 mlxsw_reg_mtpps_time_stamp_set(payload, time_stamp);
10419 mlxsw_reg_mtutc_pack(char *payload, enum mlxsw_reg_mtutc_operation oper,
10422 MLXSW_REG_ZERO(mtutc, payload);
10423 mlxsw_reg_mtutc_operation_set(payload, oper);
10424 mlxsw_reg_mtutc_freq_adjustment_set(payload, freq_adj);
10425 mlxsw_reg_mtutc_utc_sec_set(payload, utc_sec);
10426 mlxsw_reg_mtutc_utc_nsec_set(payload, utc_nsec);
10427 mlxsw_reg_mtutc_time_adjustment_set(payload, time_adj);
10490 static inline void mlxsw_reg_mcqi_pack(char *payload, u16 component_index)
10492 MLXSW_REG_ZERO(mcqi, payload);
10493 mlxsw_reg_mcqi_component_index_set(payload, component_index);
10494 mlxsw_reg_mcqi_info_type_set(payload,
10496 mlxsw_reg_mcqi_offset_set(payload, 0);
10497 mlxsw_reg_mcqi_data_size_set(payload, MLXSW_REG_MCQI_CAP_LEN);
10500 static inline void mlxsw_reg_mcqi_unpack(char *payload,
10506 mlxsw_reg_mcqi_cap_max_component_size_get(payload);
10508 mlxsw_reg_mcqi_cap_log_mcda_word_size_get(payload);
10510 mlxsw_reg_mcqi_cap_mcda_max_write_size_get(payload);
10572 static inline void mlxsw_reg_mcc_pack(char *payload,
10577 MLXSW_REG_ZERO(mcc, payload);
10578 mlxsw_reg_mcc_instruction_set(payload, instr);
10579 mlxsw_reg_mcc_component_index_set(payload, component_index);
10580 mlxsw_reg_mcc_update_handle_set(payload, update_handle);
10581 mlxsw_reg_mcc_component_size_set(payload, component_size);
10584 static inline void mlxsw_reg_mcc_unpack(char *payload, u32 *p_update_handle,
10588 *p_update_handle = mlxsw_reg_mcc_update_handle_get(payload);
10590 *p_error_code = mlxsw_reg_mcc_error_code_get(payload);
10592 *p_control_state = mlxsw_reg_mcc_control_state_get(payload);
10632 static inline void mlxsw_reg_mcda_pack(char *payload, u32 update_handle,
10637 MLXSW_REG_ZERO(mcda, payload);
10638 mlxsw_reg_mcda_update_handle_set(payload, update_handle);
10639 mlxsw_reg_mcda_offset_set(payload, offset);
10640 mlxsw_reg_mcda_size_set(payload, size);
10643 mlxsw_reg_mcda_data_set(payload, i, *(u32 *) &data[i * 4]);
10697 mlxsw_reg_mcam_pack(char *payload, enum mlxsw_reg_mcam_feature_group feat_group)
10699 MLXSW_REG_ZERO(mcam, payload);
10700 mlxsw_reg_mcam_feature_group_set(payload, feat_group);
10704 mlxsw_reg_mcam_unpack(char *payload,
10718 *p_mng_feature_cap_val = getters[dword](payload, offset);
10752 static inline void mlxsw_reg_mpsc_pack(char *payload, u16 local_port, bool e,
10755 MLXSW_REG_ZERO(mpsc, payload);
10756 mlxsw_reg_mpsc_local_port_set(payload, local_port);
10757 mlxsw_reg_mpsc_e_set(payload, e);
10758 mlxsw_reg_mpsc_rate_set(payload, rate);
10806 static inline void mlxsw_reg_mgpc_pack(char *payload, u32 counter_index,
10810 MLXSW_REG_ZERO(mgpc, payload);
10811 mlxsw_reg_mgpc_counter_index_set(payload, counter_index);
10812 mlxsw_reg_mgpc_counter_set_type_set(payload, set_type);
10813 mlxsw_reg_mgpc_opcode_set(payload, opcode);
10850 static inline void mlxsw_reg_mprs_pack(char *payload, u16 parsing_depth,
10853 MLXSW_REG_ZERO(mprs, payload);
10854 mlxsw_reg_mprs_parsing_depth_set(payload, parsing_depth);
10855 mlxsw_reg_mprs_parsing_en_set(payload, true);
10856 mlxsw_reg_mprs_vxlan_udp_dport_set(payload, vxlan_udp_dport);
10936 static inline void mlxsw_reg_mpagr_pack(char *payload,
10940 MLXSW_REG_ZERO(mpagr, payload);
10941 mlxsw_reg_mpagr_trigger_set(payload, trigger);
10942 mlxsw_reg_mpagr_pa_id_set(payload, pa_id);
10943 mlxsw_reg_mpagr_probability_rate_set(payload, probability_rate);
10987 static inline void mlxsw_reg_momte_pack(char *payload, u16 local_port,
10990 MLXSW_REG_ZERO(momte, payload);
10991 mlxsw_reg_momte_local_port_set(payload, local_port);
10992 mlxsw_reg_momte_type_set(payload, type);
11025 static inline void mlxsw_reg_mtpppc_pack(char *payload, u16 ing, u16 egr)
11027 MLXSW_REG_ZERO(mtpppc, payload);
11028 mlxsw_reg_mtpppc_ing_timestamp_message_type_set(payload, ing);
11029 mlxsw_reg_mtpppc_egr_timestamp_message_type_set(payload, egr);
11124 static inline void mlxsw_reg_mtpptr_unpack(const char *payload,
11133 *p_message_type = mlxsw_reg_mtpptr_rec_message_type_get(payload, rec);
11134 *p_domain_number = mlxsw_reg_mtpptr_rec_domain_number_get(payload, rec);
11135 *p_sequence_id = mlxsw_reg_mtpptr_rec_sequence_id_get(payload, rec);
11136 timestamp_high = mlxsw_reg_mtpptr_rec_timestamp_high_get(payload, rec);
11137 timestamp_low = mlxsw_reg_mtpptr_rec_timestamp_low_get(payload, rec);
11170 static inline void mlxsw_reg_mtptpt_pack(char *payload,
11174 MLXSW_REG_ZERO(mtptpt, payload);
11175 mlxsw_reg_mtptpt_trap_id_set(payload, trap_id);
11176 mlxsw_reg_mtptpt_message_type_set(payload, message_type);
11228 static inline void mlxsw_reg_mtpcpc_pack(char *payload, bool pport,
11232 MLXSW_REG_ZERO(mtpcpc, payload);
11233 mlxsw_reg_mtpcpc_pport_set(payload, pport);
11234 mlxsw_reg_mtpcpc_local_port_set(payload, pport ? local_port : 0);
11235 mlxsw_reg_mtpcpc_ptp_trap_en_set(payload, ptp_trap_en);
11236 mlxsw_reg_mtpcpc_ing_correction_message_type_set(payload, ing);
11237 mlxsw_reg_mtpcpc_egr_correction_message_type_set(payload, egr);
11316 static inline void mlxsw_reg_mgpir_pack(char *payload, u8 slot_index)
11318 MLXSW_REG_ZERO(mgpir, payload);
11319 mlxsw_reg_mgpir_slot_index_set(payload, slot_index);
11323 mlxsw_reg_mgpir_unpack(char *payload, u8 *num_of_devices,
11329 *num_of_devices = mlxsw_reg_mgpir_num_of_devices_get(payload);
11331 *device_type = mlxsw_reg_mgpir_device_type_get(payload);
11334 mlxsw_reg_mgpir_devices_per_flash_get(payload);
11336 *num_of_modules = mlxsw_reg_mgpir_num_of_modules_get(payload);
11338 *num_of_slots = mlxsw_reg_mgpir_num_of_slots_get(payload);
11430 static inline void mlxsw_reg_mbct_pack(char *payload, u8 slot_index,
11433 MLXSW_REG_ZERO(mbct, payload);
11434 mlxsw_reg_mbct_slot_index_set(payload, slot_index);
11435 mlxsw_reg_mbct_op_set(payload, op);
11436 mlxsw_reg_mbct_oee_set(payload, oee);
11439 static inline void mlxsw_reg_mbct_dt_pack(char *payload,
11445 mlxsw_reg_mbct_data_size_set(payload, data_size);
11446 mlxsw_reg_mbct_last_set(payload, last);
11447 mlxsw_reg_mbct_data_memcpy_to(payload, data);
11451 mlxsw_reg_mbct_unpack(const char *payload, u8 *p_slot_index,
11456 *p_slot_index = mlxsw_reg_mbct_slot_index_get(payload);
11457 *p_status = mlxsw_reg_mbct_status_get(payload);
11459 *p_fsm_state = mlxsw_reg_mbct_fsm_state_get(payload);
11524 static inline char *mlxsw_reg_mddt_inner_payload(char *payload)
11526 return payload + MLXSW_REG_MDDT_PAYLOAD_OFFSET +
11530 static inline void mlxsw_reg_mddt_pack(char *payload, u8 slot_index,
11541 MLXSW_REG_ZERO(mddt, payload);
11542 mlxsw_reg_mddt_slot_index_set(payload, slot_index);
11543 mlxsw_reg_mddt_device_index_set(payload, device_index);
11544 mlxsw_reg_mddt_method_set(payload, method);
11545 mlxsw_reg_mddt_register_id_set(payload, reg->id);
11546 mlxsw_reg_mddt_read_size_set(payload, len / 4);
11547 mlxsw_reg_mddt_write_size_set(payload, len / 4);
11548 *inner_payload = mlxsw_reg_mddt_inner_payload(payload);
11664 __mlxsw_reg_mddq_pack(char *payload, u8 slot_index,
11667 MLXSW_REG_ZERO(mddq, payload);
11668 mlxsw_reg_mddq_slot_index_set(payload, slot_index);
11669 mlxsw_reg_mddq_query_type_set(payload, query_type);
11673 mlxsw_reg_mddq_slot_info_pack(char *payload, u8 slot_index, bool sie)
11675 __mlxsw_reg_mddq_pack(payload, slot_index,
11677 mlxsw_reg_mddq_sie_set(payload, sie);
11681 mlxsw_reg_mddq_slot_info_unpack(const char *payload, u8 *p_slot_index,
11688 *p_slot_index = mlxsw_reg_mddq_slot_index_get(payload);
11689 *p_provisioned = mlxsw_reg_mddq_slot_info_provisioned_get(payload);
11690 *p_sr_valid = mlxsw_reg_mddq_slot_info_sr_valid_get(payload);
11691 *p_lc_ready = mlxsw_reg_mddq_slot_info_lc_ready_get(payload);
11692 *p_active = mlxsw_reg_mddq_slot_info_active_get(payload);
11693 *p_hw_revision = mlxsw_reg_mddq_slot_info_hw_revision_get(payload);
11694 *p_ini_file_version = mlxsw_reg_mddq_slot_info_ini_file_version_get(payload);
11695 *p_card_type = mlxsw_reg_mddq_slot_info_card_type_get(payload);
11730 mlxsw_reg_mddq_device_info_pack(char *payload, u8 slot_index,
11733 __mlxsw_reg_mddq_pack(payload, slot_index,
11735 mlxsw_reg_mddq_request_msg_seq_set(payload, request_msg_seq);
11739 mlxsw_reg_mddq_device_info_unpack(const char *payload, u8 *p_response_msg_seq,
11744 *p_response_msg_seq = mlxsw_reg_mddq_response_msg_seq_get(payload);
11745 *p_data_valid = mlxsw_reg_mddq_data_valid_get(payload);
11746 *p_flash_owner = mlxsw_reg_mddq_device_info_flash_owner_get(payload);
11747 *p_device_index = mlxsw_reg_mddq_device_info_device_index_get(payload);
11748 *p_fw_major = mlxsw_reg_mddq_device_info_fw_major_get(payload);
11749 *p_fw_minor = mlxsw_reg_mddq_device_info_fw_minor_get(payload);
11750 *p_fw_sub_minor = mlxsw_reg_mddq_device_info_fw_sub_minor_get(payload);
11763 mlxsw_reg_mddq_slot_name_pack(char *payload, u8 slot_index)
11765 __mlxsw_reg_mddq_pack(payload, slot_index,
11770 mlxsw_reg_mddq_slot_name_unpack(const char *payload, char *slot_ascii_name)
11772 mlxsw_reg_mddq_slot_ascii_name_memcpy_from(payload, slot_ascii_name);
11802 static inline void mlxsw_reg_mddc_pack(char *payload, u8 slot_index, bool rst,
11805 MLXSW_REG_ZERO(mddc, payload);
11806 mlxsw_reg_mddc_slot_index_set(payload, slot_index);
11807 mlxsw_reg_mddc_rst_set(payload, rst);
11808 mlxsw_reg_mddc_device_enable_set(payload, device_enable);
12162 static inline void mlxsw_reg_tngcr_pack(char *payload,
12166 MLXSW_REG_ZERO(tngcr, payload);
12167 mlxsw_reg_tngcr_type_set(payload, type);
12168 mlxsw_reg_tngcr_nve_valid_set(payload, valid);
12169 mlxsw_reg_tngcr_nve_ttl_uc_set(payload, ttl);
12170 mlxsw_reg_tngcr_nve_ttl_mc_set(payload, ttl);
12171 mlxsw_reg_tngcr_nve_flc_set(payload, MLXSW_REG_TNGCR_FL_NO_COPY);
12172 mlxsw_reg_tngcr_nve_flh_set(payload, 0);
12173 mlxsw_reg_tngcr_nve_udp_sport_type_set(payload,
12175 mlxsw_reg_tngcr_nve_udp_sport_prefix_set(payload, 0);
12176 mlxsw_reg_tngcr_nve_group_size_mc_set(payload, 1);
12177 mlxsw_reg_tngcr_nve_group_size_flood_set(payload, 1);
12247 static inline void mlxsw_reg_tnumt_pack(char *payload,
12254 MLXSW_REG_ZERO(tnumt, payload);
12255 mlxsw_reg_tnumt_record_type_set(payload, type);
12256 mlxsw_reg_tnumt_tunnel_port_set(payload, tport);
12257 mlxsw_reg_tnumt_underlay_mc_ptr_set(payload, underlay_mc_ptr);
12258 mlxsw_reg_tnumt_vnext_set(payload, vnext);
12259 mlxsw_reg_tnumt_next_underlay_mc_ptr_set(payload, next_underlay_mc_ptr);
12260 mlxsw_reg_tnumt_record_size_set(payload, record_size);
12282 static inline void mlxsw_reg_tnqcr_pack(char *payload)
12284 MLXSW_REG_ZERO(tnqcr, payload);
12285 mlxsw_reg_tnqcr_enc_set_dscp_set(payload, 0);
12310 static inline void mlxsw_reg_tnqdr_pack(char *payload, u16 local_port)
12312 MLXSW_REG_ZERO(tnqdr, payload);
12313 mlxsw_reg_tnqdr_local_port_set(payload, local_port);
12314 mlxsw_reg_tnqdr_dscp_set(payload, 0);
12339 static inline void mlxsw_reg_tneem_pack(char *payload, u8 overlay_ecn,
12342 MLXSW_REG_ZERO(tneem, payload);
12343 mlxsw_reg_tneem_overlay_ecn_set(payload, overlay_ecn);
12344 mlxsw_reg_tneem_underlay_ecn_set(payload, underlay_ecn);
12391 static inline void mlxsw_reg_tndem_pack(char *payload, u8 underlay_ecn,
12395 MLXSW_REG_ZERO(tndem, payload);
12396 mlxsw_reg_tndem_underlay_ecn_set(payload, underlay_ecn);
12397 mlxsw_reg_tndem_overlay_ecn_set(payload, overlay_ecn);
12398 mlxsw_reg_tndem_eip_ecn_set(payload, ecn);
12399 mlxsw_reg_tndem_trap_en_set(payload, trap_en);
12400 mlxsw_reg_tndem_trap_id_set(payload, trap_id);
12431 static inline void mlxsw_reg_tnpc_pack(char *payload,
12435 MLXSW_REG_ZERO(tnpc, payload);
12436 mlxsw_reg_tnpc_tunnel_port_set(payload, tport);
12437 mlxsw_reg_tnpc_learn_enable_v4_set(payload, learn_enable);
12438 mlxsw_reg_tnpc_learn_enable_v6_set(payload, learn_enable);
12464 static inline void mlxsw_reg_tigcr_pack(char *payload, bool ttlc, u8 ttl_uc)
12466 MLXSW_REG_ZERO(tigcr, payload);
12467 mlxsw_reg_tigcr_ttlc_set(payload, ttlc);
12468 mlxsw_reg_tigcr_ttl_uc_set(payload, ttl_uc);
12493 static inline void mlxsw_reg_tieem_pack(char *payload, u8 overlay_ecn,
12496 MLXSW_REG_ZERO(tieem, payload);
12497 mlxsw_reg_tieem_overlay_ecn_set(payload, overlay_ecn);
12498 mlxsw_reg_tieem_underlay_ecn_set(payload, underlay_ecn);
12545 static inline void mlxsw_reg_tidem_pack(char *payload, u8 underlay_ecn,
12549 MLXSW_REG_ZERO(tidem, payload);
12550 mlxsw_reg_tidem_underlay_ecn_set(payload, underlay_ecn);
12551 mlxsw_reg_tidem_overlay_ecn_set(payload, overlay_ecn);
12552 mlxsw_reg_tidem_eip_ecn_set(payload, eip_ecn);
12553 mlxsw_reg_tidem_trap_en_set(payload, trap_en);
12554 mlxsw_reg_tidem_trap_id_set(payload, trap_id);
12614 static inline void mlxsw_reg_sbpr_pack(char *payload, u8 pool,
12619 MLXSW_REG_ZERO(sbpr, payload);
12620 mlxsw_reg_sbpr_pool_set(payload, pool);
12621 mlxsw_reg_sbpr_dir_set(payload, dir);
12622 mlxsw_reg_sbpr_mode_set(payload, mode);
12623 mlxsw_reg_sbpr_size_set(payload, size);
12624 mlxsw_reg_sbpr_infi_size_set(payload, infi_size);
12698 static inline void mlxsw_reg_sbcm_pack(char *payload, u16 local_port, u8 pg_buff,
12703 MLXSW_REG_ZERO(sbcm, payload);
12704 mlxsw_reg_sbcm_local_port_set(payload, local_port);
12705 mlxsw_reg_sbcm_pg_buff_set(payload, pg_buff);
12706 mlxsw_reg_sbcm_dir_set(payload, dir);
12707 mlxsw_reg_sbcm_min_buff_set(payload, min_buff);
12708 mlxsw_reg_sbcm_max_buff_set(payload, max_buff);
12709 mlxsw_reg_sbcm_infi_max_set(payload, infi_max);
12710 mlxsw_reg_sbcm_pool_set(payload, pool);
12784 static inline void mlxsw_reg_sbpm_pack(char *payload, u16 local_port, u8 pool,
12788 MLXSW_REG_ZERO(sbpm, payload);
12789 mlxsw_reg_sbpm_local_port_set(payload, local_port);
12790 mlxsw_reg_sbpm_pool_set(payload, pool);
12791 mlxsw_reg_sbpm_dir_set(payload, dir);
12792 mlxsw_reg_sbpm_clr_set(payload, clr);
12793 mlxsw_reg_sbpm_min_buff_set(payload, min_buff);
12794 mlxsw_reg_sbpm_max_buff_set(payload, max_buff);
12797 static inline void mlxsw_reg_sbpm_unpack(char *payload, u32 *p_buff_occupancy,
12800 *p_buff_occupancy = mlxsw_reg_sbpm_buff_occupancy_get(payload);
12801 *p_max_buff_occupancy = mlxsw_reg_sbpm_max_buff_occupancy_get(payload);
12846 static inline void mlxsw_reg_sbmm_pack(char *payload, u8 prio, u32 min_buff,
12849 MLXSW_REG_ZERO(sbmm, payload);
12850 mlxsw_reg_sbmm_prio_set(payload, prio);
12851 mlxsw_reg_sbmm_min_buff_set(payload, min_buff);
12852 mlxsw_reg_sbmm_max_buff_set(payload, max_buff);
12853 mlxsw_reg_sbmm_pool_set(payload, pool);
12930 static inline void mlxsw_reg_sbsr_pack(char *payload, bool clr)
12932 MLXSW_REG_ZERO(sbsr, payload);
12933 mlxsw_reg_sbsr_clr_set(payload, clr);
12951 static inline void mlxsw_reg_sbsr_rec_unpack(char *payload, int rec_index,
12956 mlxsw_reg_sbsr_rec_buff_occupancy_get(payload, rec_index);
12958 mlxsw_reg_sbsr_rec_max_buff_occupancy_get(payload, rec_index);
12989 static inline void mlxsw_reg_sbib_pack(char *payload, u16 local_port,
12992 MLXSW_REG_ZERO(sbib, payload);
12993 mlxsw_reg_sbib_local_port_set(payload, local_port);
12994 mlxsw_reg_sbib_buff_size_set(payload, buff_size);