openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

pack.c (646859B)


      1 /*
      2  * DO NOT EDIT THIS FILE!
      3  * This file is auto-generated.
      4  * Edits to this file will be lost when it is regenerated.
      5  *
      6  * 
      7  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      8  * 
      9  * Copyright 2007-2020 Broadcom Inc. All rights reserved.
     10  *
     11  * File:	pack.c
     12  * Purpose:	BCM API Type Packers
     13  * Generator:	mkdispatch 1.54
     14  */
     15 
     16 #include <bcm/types.h>
     17 #include <bcm/auth.h>
     18 #include <bcm/bfd.h>
     19 #include <bcm/bregex.h>
     20 #include <bcm/collector.h>
     21 #include <bcm/cosq.h>
     22 #include <bcm/cpri.h>
     23 #include <bcm/custom.h>
     24 #include <bcm/eav.h>
     25 #include <bcm/ecn.h>
     26 #include <bcm/error.h>
     27 #include <bcm/extender.h>
     28 #include <bcm/fabric.h>
     29 #include <bcm/failover.h>
     30 #include <bcm/fcmap.h>
     31 #include <bcm/fcoe.h>
     32 #include <bcm/field.h>
     33 #include <bcm/flow.h>
     34 #include <bcm/flowtracker.h>
     35 #include <bcm/gdpll.h>
     36 #include <bcm/hash.h>
     37 #include <bcm/ifa.h>
     38 #include <bcm/init.h>
     39 #include <bcm/instru.h>
     40 #include <bcm/int.h>
     41 #include <bcm/ipfix.h>
     42 #include <bcm/ipmc.h>
     43 #include <bcm/ipsec.h>
     44 #include <bcm/knet.h>
     45 #include <bcm/l2.h>
     46 #include <bcm/l2gre.h>
     47 #include <bcm/l3.h>
     48 #include <bcm/latency_monitor.h>
     49 #include <bcm/lb.h>
     50 #include <bcm/link.h>
     51 #include <bcm/macsec.h>
     52 #include <bcm/mcast.h>
     53 #include <bcm/mim.h>
     54 #include <bcm/mirror.h>
     55 #include <bcm/mpls.h>
     56 #include <bcm/multicast.h>
     57 #include <bcm/nat.h>
     58 #include <bcm/niv.h>
     59 #include <bcm/oam.h>
     60 #include <bcm/oob.h>
     61 #include <bcm/pkt.h>
     62 #include <bcm/policer.h>
     63 #include <bcm/port.h>
     64 #include <bcm/proxy.h>
     65 #include <bcm/pstats.h>
     66 #include <bcm/ptp.h>
     67 #include <bcm/qos.h>
     68 #include <bcm/range.h>
     69 #include <bcm/rate.h>
     70 #include <bcm/rx.h>
     71 #include <bcm/sat.h>
     72 #include <bcm/srv6.h>
     73 #include <bcm/stack.h>
     74 #include <bcm/stat.h>
     75 #include <bcm/stg.h>
     76 #include <bcm/subport.h>
     77 #include <bcm/sum.h>
     78 #include <bcm/switch.h>
     79 #include <bcm/telemetry.h>
     80 #include <bcm/time.h>
     81 #include <bcm/topo.h>
     82 #include <bcm/trill.h>
     83 #include <bcm/trunk.h>
     84 #include <bcm/tsn.h>
     85 #include <bcm/tunnel.h>
     86 #include <bcm/tx.h>
     87 #include <bcm/txbeacon.h>
     88 #include <bcm/udf.h>
     89 #include <bcm/vlan.h>
     90 #include <bcm/vswitch.h>
     91 #include <bcm/vxlan.h>
     92 #include <bcm/wlan.h>
     93 #include <bcm/xflow_macsec.h>
     94 
     95 #include <bcm_int/rpc/pack.h>
     96 
     97 #ifdef	BCM_RPC_SUPPORT
     98 
     99 #ifdef	INCLUDE_BFD
    100 
    101 uint8 *
    102 _bcm_pack_bfd_auth_sha1(uint8 *buf, bcm_bfd_auth_sha1_t *var)
    103 {
    104 	BCM_PACK_U8(buf, var->enable);
    105 	BCM_PACK_U32(buf, var->sequence);
    106 	{
    107 		int _i;
    108 
    109 		for (_i = 0; _i < 20; _i++) {
    110 			BCM_PACK_U8(buf, var->key[_i]);
    111 		}
    112 	}
    113 	return buf;
    114 }
    115 
    116 uint8 *
    117 _bcm_unpack_bfd_auth_sha1(uint8 *buf, bcm_bfd_auth_sha1_t *var)
    118 {
    119 	BCM_UNPACK_U8(buf, var->enable);
    120 	BCM_UNPACK_U32(buf, var->sequence);
    121 	{
    122 		int _i;
    123 
    124 		for (_i = 0; _i < 20; _i++) {
    125 			BCM_UNPACK_U8(buf, var->key[_i]);
    126 		}
    127 	}
    128 	return buf;
    129 }
    130 
    131 uint8 *
    132 _bcm_pack_bfd_auth_simple_password(uint8 *buf, bcm_bfd_auth_simple_password_t *var)
    133 {
    134 	BCM_PACK_U8(buf, var->length);
    135 	{
    136 		int _i;
    137 
    138 		for (_i = 0; _i < 16; _i++) {
    139 			BCM_PACK_U8(buf, var->password[_i]);
    140 		}
    141 	}
    142 	return buf;
    143 }
    144 
    145 uint8 *
    146 _bcm_unpack_bfd_auth_simple_password(uint8 *buf, bcm_bfd_auth_simple_password_t *var)
    147 {
    148 	BCM_UNPACK_U8(buf, var->length);
    149 	{
    150 		int _i;
    151 
    152 		for (_i = 0; _i < 16; _i++) {
    153 			BCM_UNPACK_U8(buf, var->password[_i]);
    154 		}
    155 	}
    156 	return buf;
    157 }
    158 
    159 uint8 *
    160 _bcm_pack_bfd_discard_stat(uint8 *buf, bcm_bfd_discard_stat_t *var)
    161 {
    162 	BCM_PACK_U32(buf, var->bfd_ver_err);
    163 	BCM_PACK_U32(buf, var->bfd_len_err);
    164 	BCM_PACK_U32(buf, var->bfd_detect_mult);
    165 	BCM_PACK_U32(buf, var->bfd_my_disc);
    166 	BCM_PACK_U32(buf, var->bfd_p_f_bit);
    167 	BCM_PACK_U32(buf, var->bfd_m_bit);
    168 	BCM_PACK_U32(buf, var->bfd_auth_type_mismatch);
    169 	BCM_PACK_U32(buf, var->bfd_auth_simple_err);
    170 	BCM_PACK_U32(buf, var->bfd_auth_m_sha1_err);
    171 	BCM_PACK_U32(buf, var->bfd_sess_mismatch);
    172 	return buf;
    173 }
    174 
    175 uint8 *
    176 _bcm_unpack_bfd_discard_stat(uint8 *buf, bcm_bfd_discard_stat_t *var)
    177 {
    178 	BCM_UNPACK_U32(buf, var->bfd_ver_err);
    179 	BCM_UNPACK_U32(buf, var->bfd_len_err);
    180 	BCM_UNPACK_U32(buf, var->bfd_detect_mult);
    181 	BCM_UNPACK_U32(buf, var->bfd_my_disc);
    182 	BCM_UNPACK_U32(buf, var->bfd_p_f_bit);
    183 	BCM_UNPACK_U32(buf, var->bfd_m_bit);
    184 	BCM_UNPACK_U32(buf, var->bfd_auth_type_mismatch);
    185 	BCM_UNPACK_U32(buf, var->bfd_auth_simple_err);
    186 	BCM_UNPACK_U32(buf, var->bfd_auth_m_sha1_err);
    187 	BCM_UNPACK_U32(buf, var->bfd_sess_mismatch);
    188 	return buf;
    189 }
    190 
    191 uint8 *
    192 _bcm_pack_bfd_endpoint_info(uint8 *buf, bcm_bfd_endpoint_info_t *var)
    193 {
    194 	BCM_PACK_U32(buf, var->flags);
    195 	BCM_PACK_U32(buf, var->id);
    196 	BCM_PACK_U32(buf, var->remote_id);
    197 	BCM_PACK_U32(buf, var->type);
    198 	BCM_PACK_U32(buf, var->gport);
    199 	BCM_PACK_U32(buf, var->tx_gport);
    200 	BCM_PACK_U32(buf, var->remote_gport);
    201 	BCM_PACK_U32(buf, var->bfd_period);
    202 	BCM_PACK_U16(buf, var->vpn);
    203 	BCM_PACK_U8(buf, var->vlan_pri);
    204 	BCM_PACK_U8(buf, var->inner_vlan_pri);
    205 	BCM_PACK_U32(buf, var->vrf_id);
    206 	BCM_PACK_U32(buf, var->dst_ip_addr);
    207 	{
    208 		int _i;
    209 
    210 		for (_i = 0; _i < 16; _i++) {
    211 			BCM_PACK_U8(buf, var->dst_ip6_addr[_i]);
    212 		}
    213 	}
    214 	BCM_PACK_U32(buf, var->src_ip_addr);
    215 	{
    216 		int _i;
    217 
    218 		for (_i = 0; _i < 16; _i++) {
    219 			BCM_PACK_U8(buf, var->src_ip6_addr[_i]);
    220 		}
    221 	}
    222 	BCM_PACK_U8(buf, var->ip_tos);
    223 	BCM_PACK_U8(buf, var->ip_ttl);
    224 	BCM_PACK_U32(buf, var->inner_dst_ip_addr);
    225 	{
    226 		int _i;
    227 
    228 		for (_i = 0; _i < 16; _i++) {
    229 			BCM_PACK_U8(buf, var->inner_dst_ip6_addr[_i]);
    230 		}
    231 	}
    232 	BCM_PACK_U32(buf, var->inner_src_ip_addr);
    233 	{
    234 		int _i;
    235 
    236 		for (_i = 0; _i < 16; _i++) {
    237 			BCM_PACK_U8(buf, var->inner_src_ip6_addr[_i]);
    238 		}
    239 	}
    240 	BCM_PACK_U8(buf, var->inner_ip_tos);
    241 	BCM_PACK_U8(buf, var->inner_ip_ttl);
    242 	BCM_PACK_U32(buf, var->udp_src_port);
    243 	BCM_PACK_U32(buf, var->label);
    244 	BCM_PACK_U32(buf, var->egress_label.flags);
    245 	BCM_PACK_U32(buf, var->egress_label.label);
    246 	BCM_PACK_U32(buf, var->egress_label.qos_map_id);
    247 	BCM_PACK_U8(buf, var->egress_label.exp);
    248 	BCM_PACK_U8(buf, var->egress_label.ttl);
    249 	BCM_PACK_U8(buf, var->egress_label.pkt_pri);
    250 	BCM_PACK_U8(buf, var->egress_label.pkt_cfi);
    251 	BCM_PACK_U32(buf, var->egress_label.tunnel_id);
    252 	BCM_PACK_U32(buf, var->egress_label.l3_intf_id);
    253 	BCM_PACK_U32(buf, var->egress_label.action);
    254 	BCM_PACK_U32(buf, var->egress_label.ecn_map_id);
    255 	BCM_PACK_U32(buf, var->egress_label.int_cn_map_id);
    256 	BCM_PACK_U32(buf, var->egress_label.egress_failover_id);
    257 	BCM_PACK_U32(buf, var->egress_label.egress_failover_if_id);
    258 	BCM_PACK_U32(buf, var->egress_label.outlif_counting_profile);
    259 	BCM_PACK_U32(buf, var->egress_label.spl_label_push_type);
    260 	BCM_PACK_U32(buf, var->egress_label.encap_access);
    261 	BCM_PACK_U32(buf, var->egress_label.egress_qos_model.egress_qos);
    262 	BCM_PACK_U32(buf, var->egress_label.egress_qos_model.egress_ttl);
    263 	BCM_PACK_U8(buf, var->egress_label.egress_qos_model.ecn_eligible);
    264 	BCM_PACK_U32(buf, var->egress_if);
    265 	{
    266 		int _i;
    267 
    268 		for (_i = 0; _i < 32; _i++) {
    269 			BCM_PACK_U8(buf, var->mep_id[_i]);
    270 		}
    271 	}
    272 	BCM_PACK_U8(buf, var->mep_id_length);
    273 	BCM_PACK_U32(buf, var->int_pri);
    274 	BCM_PACK_U8(buf, var->cpu_qid);
    275 	BCM_PACK_U32(buf, var->local_state);
    276 	BCM_PACK_U32(buf, var->local_discr);
    277 	BCM_PACK_U32(buf, var->local_diag);
    278 	BCM_PACK_U32(buf, var->local_flags);
    279 	BCM_PACK_U32(buf, var->local_min_tx);
    280 	BCM_PACK_U32(buf, var->local_min_rx);
    281 	BCM_PACK_U32(buf, var->local_min_echo);
    282 	BCM_PACK_U8(buf, var->local_detect_mult);
    283 	BCM_PACK_U32(buf, var->auth);
    284 	BCM_PACK_U32(buf, var->auth_index);
    285 	BCM_PACK_U32(buf, var->tx_auth_seq);
    286 	BCM_PACK_U32(buf, var->rx_auth_seq);
    287 	BCM_PACK_U32(buf, var->remote_flags);
    288 	BCM_PACK_U32(buf, var->remote_state);
    289 	BCM_PACK_U32(buf, var->remote_discr);
    290 	BCM_PACK_U32(buf, var->remote_diag);
    291 	BCM_PACK_U32(buf, var->remote_min_tx);
    292 	BCM_PACK_U32(buf, var->remote_min_rx);
    293 	BCM_PACK_U32(buf, var->remote_min_echo);
    294 	BCM_PACK_U8(buf, var->remote_detect_mult);
    295 	BCM_PACK_U32(buf, var->sampling_ratio);
    296 	BCM_PACK_U8(buf, var->loc_clear_threshold);
    297 	BCM_PACK_U32(buf, var->ip_subnet_length);
    298 	{
    299 		int _i;
    300 
    301 		for (_i = 0; _i < 32; _i++) {
    302 			BCM_PACK_U8(buf, var->remote_mep_id[_i]);
    303 		}
    304 	}
    305 	BCM_PACK_U8(buf, var->remote_mep_id_length);
    306 	{
    307 		int _i;
    308 
    309 		for (_i = 0; _i < 32; _i++) {
    310 			BCM_PACK_U8(buf, var->mis_conn_mep_id[_i]);
    311 		}
    312 	}
    313 	BCM_PACK_U8(buf, var->mis_conn_mep_id_length);
    314 	BCM_PACK_U32(buf, var->bfd_detection_time);
    315 	BCM_PACK_U16(buf, var->pkt_vlan_id);
    316 	BCM_PACK_U16(buf, var->rx_pkt_vlan_id);
    317 	BCM_PACK_U32(buf, var->gal_label);
    318 	BCM_PACK_U32(buf, var->faults);
    319 	BCM_PACK_U32(buf, var->flags2);
    320 	BCM_PACK_U32(buf, var->ipv6_extra_data_index);
    321 	return buf;
    322 }
    323 
    324 uint8 *
    325 _bcm_unpack_bfd_endpoint_info(uint8 *buf, bcm_bfd_endpoint_info_t *var)
    326 {
    327 	BCM_UNPACK_U32(buf, var->flags);
    328 	BCM_UNPACK_U32(buf, var->id);
    329 	BCM_UNPACK_U32(buf, var->remote_id);
    330 	BCM_UNPACK_U32(buf, var->type);
    331 	BCM_UNPACK_U32(buf, var->gport);
    332 	BCM_UNPACK_U32(buf, var->tx_gport);
    333 	BCM_UNPACK_U32(buf, var->remote_gport);
    334 	BCM_UNPACK_U32(buf, var->bfd_period);
    335 	BCM_UNPACK_U16(buf, var->vpn);
    336 	BCM_UNPACK_U8(buf, var->vlan_pri);
    337 	BCM_UNPACK_U8(buf, var->inner_vlan_pri);
    338 	BCM_UNPACK_U32(buf, var->vrf_id);
    339 	BCM_UNPACK_U32(buf, var->dst_ip_addr);
    340 	{
    341 		int _i;
    342 
    343 		for (_i = 0; _i < 16; _i++) {
    344 			BCM_UNPACK_U8(buf, var->dst_ip6_addr[_i]);
    345 		}
    346 	}
    347 	BCM_UNPACK_U32(buf, var->src_ip_addr);
    348 	{
    349 		int _i;
    350 
    351 		for (_i = 0; _i < 16; _i++) {
    352 			BCM_UNPACK_U8(buf, var->src_ip6_addr[_i]);
    353 		}
    354 	}
    355 	BCM_UNPACK_U8(buf, var->ip_tos);
    356 	BCM_UNPACK_U8(buf, var->ip_ttl);
    357 	BCM_UNPACK_U32(buf, var->inner_dst_ip_addr);
    358 	{
    359 		int _i;
    360 
    361 		for (_i = 0; _i < 16; _i++) {
    362 			BCM_UNPACK_U8(buf, var->inner_dst_ip6_addr[_i]);
    363 		}
    364 	}
    365 	BCM_UNPACK_U32(buf, var->inner_src_ip_addr);
    366 	{
    367 		int _i;
    368 
    369 		for (_i = 0; _i < 16; _i++) {
    370 			BCM_UNPACK_U8(buf, var->inner_src_ip6_addr[_i]);
    371 		}
    372 	}
    373 	BCM_UNPACK_U8(buf, var->inner_ip_tos);
    374 	BCM_UNPACK_U8(buf, var->inner_ip_ttl);
    375 	BCM_UNPACK_U32(buf, var->udp_src_port);
    376 	BCM_UNPACK_U32(buf, var->label);
    377 	BCM_UNPACK_U32(buf, var->egress_label.flags);
    378 	BCM_UNPACK_U32(buf, var->egress_label.label);
    379 	BCM_UNPACK_U32(buf, var->egress_label.qos_map_id);
    380 	BCM_UNPACK_U8(buf, var->egress_label.exp);
    381 	BCM_UNPACK_U8(buf, var->egress_label.ttl);
    382 	BCM_UNPACK_U8(buf, var->egress_label.pkt_pri);
    383 	BCM_UNPACK_U8(buf, var->egress_label.pkt_cfi);
    384 	BCM_UNPACK_U32(buf, var->egress_label.tunnel_id);
    385 	BCM_UNPACK_U32(buf, var->egress_label.l3_intf_id);
    386 	BCM_UNPACK_U32(buf, var->egress_label.action);
    387 	BCM_UNPACK_U32(buf, var->egress_label.ecn_map_id);
    388 	BCM_UNPACK_U32(buf, var->egress_label.int_cn_map_id);
    389 	BCM_UNPACK_U32(buf, var->egress_label.egress_failover_id);
    390 	BCM_UNPACK_U32(buf, var->egress_label.egress_failover_if_id);
    391 	BCM_UNPACK_U32(buf, var->egress_label.outlif_counting_profile);
    392 	BCM_UNPACK_U32(buf, var->egress_label.spl_label_push_type);
    393 	BCM_UNPACK_U32(buf, var->egress_label.encap_access);
    394 	BCM_UNPACK_U32(buf, var->egress_label.egress_qos_model.egress_qos);
    395 	BCM_UNPACK_U32(buf, var->egress_label.egress_qos_model.egress_ttl);
    396 	BCM_UNPACK_U8(buf, var->egress_label.egress_qos_model.ecn_eligible);
    397 	BCM_UNPACK_U32(buf, var->egress_if);
    398 	{
    399 		int _i;
    400 
    401 		for (_i = 0; _i < 32; _i++) {
    402 			BCM_UNPACK_U8(buf, var->mep_id[_i]);
    403 		}
    404 	}
    405 	BCM_UNPACK_U8(buf, var->mep_id_length);
    406 	BCM_UNPACK_U32(buf, var->int_pri);
    407 	BCM_UNPACK_U8(buf, var->cpu_qid);
    408 	BCM_UNPACK_U32(buf, var->local_state);
    409 	BCM_UNPACK_U32(buf, var->local_discr);
    410 	BCM_UNPACK_U32(buf, var->local_diag);
    411 	BCM_UNPACK_U32(buf, var->local_flags);
    412 	BCM_UNPACK_U32(buf, var->local_min_tx);
    413 	BCM_UNPACK_U32(buf, var->local_min_rx);
    414 	BCM_UNPACK_U32(buf, var->local_min_echo);
    415 	BCM_UNPACK_U8(buf, var->local_detect_mult);
    416 	BCM_UNPACK_U32(buf, var->auth);
    417 	BCM_UNPACK_U32(buf, var->auth_index);
    418 	BCM_UNPACK_U32(buf, var->tx_auth_seq);
    419 	BCM_UNPACK_U32(buf, var->rx_auth_seq);
    420 	BCM_UNPACK_U32(buf, var->remote_flags);
    421 	BCM_UNPACK_U32(buf, var->remote_state);
    422 	BCM_UNPACK_U32(buf, var->remote_discr);
    423 	BCM_UNPACK_U32(buf, var->remote_diag);
    424 	BCM_UNPACK_U32(buf, var->remote_min_tx);
    425 	BCM_UNPACK_U32(buf, var->remote_min_rx);
    426 	BCM_UNPACK_U32(buf, var->remote_min_echo);
    427 	BCM_UNPACK_U8(buf, var->remote_detect_mult);
    428 	BCM_UNPACK_U32(buf, var->sampling_ratio);
    429 	BCM_UNPACK_U8(buf, var->loc_clear_threshold);
    430 	BCM_UNPACK_U32(buf, var->ip_subnet_length);
    431 	{
    432 		int _i;
    433 
    434 		for (_i = 0; _i < 32; _i++) {
    435 			BCM_UNPACK_U8(buf, var->remote_mep_id[_i]);
    436 		}
    437 	}
    438 	BCM_UNPACK_U8(buf, var->remote_mep_id_length);
    439 	{
    440 		int _i;
    441 
    442 		for (_i = 0; _i < 32; _i++) {
    443 			BCM_UNPACK_U8(buf, var->mis_conn_mep_id[_i]);
    444 		}
    445 	}
    446 	BCM_UNPACK_U8(buf, var->mis_conn_mep_id_length);
    447 	BCM_UNPACK_U32(buf, var->bfd_detection_time);
    448 	BCM_UNPACK_U16(buf, var->pkt_vlan_id);
    449 	BCM_UNPACK_U16(buf, var->rx_pkt_vlan_id);
    450 	BCM_UNPACK_U32(buf, var->gal_label);
    451 	BCM_UNPACK_U32(buf, var->faults);
    452 	BCM_UNPACK_U32(buf, var->flags2);
    453 	BCM_UNPACK_U32(buf, var->ipv6_extra_data_index);
    454 	return buf;
    455 }
    456 
    457 uint8 *
    458 _bcm_pack_bfd_endpoint_stat(uint8 *buf, bcm_bfd_endpoint_stat_t *var)
    459 {
    460 	BCM_PACK_U32(buf, var->packets_in);
    461 	BCM_PACK_U32(buf, var->packets_out);
    462 	BCM_PACK_U32(buf, var->packets_drop);
    463 	BCM_PACK_U32(buf, var->packets_auth_drop);
    464 	{
    465 		uint32 _u32;
    466 
    467 		_u32 = COMPILER_64_HI(var->packets_in_64);
    468 		BCM_PACK_U32(buf, _u32);
    469 		_u32 = COMPILER_64_LO(var->packets_in_64);
    470 		BCM_PACK_U32(buf, _u32);
    471 	}
    472 	{
    473 		uint32 _u32;
    474 
    475 		_u32 = COMPILER_64_HI(var->packets_out_64);
    476 		BCM_PACK_U32(buf, _u32);
    477 		_u32 = COMPILER_64_LO(var->packets_out_64);
    478 		BCM_PACK_U32(buf, _u32);
    479 	}
    480 	{
    481 		uint32 _u32;
    482 
    483 		_u32 = COMPILER_64_HI(var->packets_drop_64);
    484 		BCM_PACK_U32(buf, _u32);
    485 		_u32 = COMPILER_64_LO(var->packets_drop_64);
    486 		BCM_PACK_U32(buf, _u32);
    487 	}
    488 	{
    489 		uint32 _u32;
    490 
    491 		_u32 = COMPILER_64_HI(var->packets_auth_drop_64);
    492 		BCM_PACK_U32(buf, _u32);
    493 		_u32 = COMPILER_64_LO(var->packets_auth_drop_64);
    494 		BCM_PACK_U32(buf, _u32);
    495 	}
    496 	{
    497 		uint32 _u32;
    498 
    499 		_u32 = COMPILER_64_HI(var->packets_echo_reply);
    500 		BCM_PACK_U32(buf, _u32);
    501 		_u32 = COMPILER_64_LO(var->packets_echo_reply);
    502 		BCM_PACK_U32(buf, _u32);
    503 	}
    504 	return buf;
    505 }
    506 
    507 uint8 *
    508 _bcm_unpack_bfd_endpoint_stat(uint8 *buf, bcm_bfd_endpoint_stat_t *var)
    509 {
    510 	BCM_UNPACK_U32(buf, var->packets_in);
    511 	BCM_UNPACK_U32(buf, var->packets_out);
    512 	BCM_UNPACK_U32(buf, var->packets_drop);
    513 	BCM_UNPACK_U32(buf, var->packets_auth_drop);
    514 	{
    515 		uint32 _u32h, _u32l;
    516 
    517 		BCM_UNPACK_U32(buf, _u32h);
    518 		BCM_UNPACK_U32(buf, _u32l);
    519 		COMPILER_64_SET(var->packets_in_64, _u32h, _u32l);
    520 	}
    521 	{
    522 		uint32 _u32h, _u32l;
    523 
    524 		BCM_UNPACK_U32(buf, _u32h);
    525 		BCM_UNPACK_U32(buf, _u32l);
    526 		COMPILER_64_SET(var->packets_out_64, _u32h, _u32l);
    527 	}
    528 	{
    529 		uint32 _u32h, _u32l;
    530 
    531 		BCM_UNPACK_U32(buf, _u32h);
    532 		BCM_UNPACK_U32(buf, _u32l);
    533 		COMPILER_64_SET(var->packets_drop_64, _u32h, _u32l);
    534 	}
    535 	{
    536 		uint32 _u32h, _u32l;
    537 
    538 		BCM_UNPACK_U32(buf, _u32h);
    539 		BCM_UNPACK_U32(buf, _u32l);
    540 		COMPILER_64_SET(var->packets_auth_drop_64, _u32h, _u32l);
    541 	}
    542 	{
    543 		uint32 _u32h, _u32l;
    544 
    545 		BCM_UNPACK_U32(buf, _u32h);
    546 		BCM_UNPACK_U32(buf, _u32l);
    547 		COMPILER_64_SET(var->packets_echo_reply, _u32h, _u32l);
    548 	}
    549 	return buf;
    550 }
    551 
    552 uint8 *
    553 _bcm_pack_bfd_status(uint8 *buf, bcm_bfd_status_t *var)
    554 {
    555 	BCM_PACK_U32(buf, var->endpoint_id);
    556 	BCM_PACK_U32(buf, var->session_status);
    557 	return buf;
    558 }
    559 
    560 uint8 *
    561 _bcm_unpack_bfd_status(uint8 *buf, bcm_bfd_status_t *var)
    562 {
    563 	BCM_UNPACK_U32(buf, var->endpoint_id);
    564 	BCM_UNPACK_U32(buf, var->session_status);
    565 	return buf;
    566 }
    567 
    568 #endif	/* INCLUDE_BFD */
    569 
    570 uint8 *
    571 _bcm_pack_class(uint8 *buf, bcm_class_t *var)
    572 {
    573 	{
    574 		uint32 _u32;
    575 
    576 		_u32 = COMPILER_64_HI(*var);
    577 		BCM_PACK_U32(buf, _u32);
    578 		_u32 = COMPILER_64_LO(*var);
    579 		BCM_PACK_U32(buf, _u32);
    580 	}
    581 	return buf;
    582 }
    583 
    584 uint8 *
    585 _bcm_unpack_class(uint8 *buf, bcm_class_t *var)
    586 {
    587 	{
    588 		uint32 _u32h, _u32l;
    589 
    590 		BCM_UNPACK_U32(buf, _u32h);
    591 		BCM_UNPACK_U32(buf, _u32l);
    592 		COMPILER_64_SET(*var, _u32h, _u32l);
    593 	}
    594 	return buf;
    595 }
    596 
    597 uint8 *
    598 _bcm_pack_collector_export_profile(uint8 *buf, bcm_collector_export_profile_t *var)
    599 {
    600 	BCM_PACK_U32(buf, var->flags);
    601 	BCM_PACK_U32(buf, var->wire_format);
    602 	BCM_PACK_U32(buf, var->export_interval);
    603 	BCM_PACK_U32(buf, var->max_packet_length);
    604 	BCM_PACK_U32(buf, var->num_records);
    605 	return buf;
    606 }
    607 
    608 uint8 *
    609 _bcm_unpack_collector_export_profile(uint8 *buf, bcm_collector_export_profile_t *var)
    610 {
    611 	BCM_UNPACK_U32(buf, var->flags);
    612 	BCM_UNPACK_U32(buf, var->wire_format);
    613 	BCM_UNPACK_U32(buf, var->export_interval);
    614 	BCM_UNPACK_U32(buf, var->max_packet_length);
    615 	BCM_UNPACK_U32(buf, var->num_records);
    616 	return buf;
    617 }
    618 
    619 uint8 *
    620 _bcm_pack_collector_info(uint8 *buf, bcm_collector_info_t *var)
    621 {
    622 	BCM_PACK_U32(buf, var->collector_type);
    623 	BCM_PACK_U32(buf, var->transport_type);
    624 	{
    625 		int _i;
    626 
    627 		for (_i = 0; _i < 6; _i++) {
    628 			BCM_PACK_U8(buf, var->eth.dst_mac[_i]);
    629 		}
    630 	}
    631 	{
    632 		int _i;
    633 
    634 		for (_i = 0; _i < 6; _i++) {
    635 			BCM_PACK_U8(buf, var->eth.src_mac[_i]);
    636 		}
    637 	}
    638 	BCM_PACK_U8(buf, var->eth.vlan_tag_structure);
    639 	BCM_PACK_U16(buf, var->eth.outer_tpid);
    640 	BCM_PACK_U16(buf, var->eth.inner_tpid);
    641 	BCM_PACK_U32(buf, var->eth.outer_vlan_tag);
    642 	BCM_PACK_U32(buf, var->eth.inner_vlan_tag);
    643 	BCM_PACK_U32(buf, var->ipv4.src_ip);
    644 	BCM_PACK_U32(buf, var->ipv4.dst_ip);
    645 	BCM_PACK_U8(buf, var->ipv4.dscp);
    646 	BCM_PACK_U8(buf, var->ipv4.ttl);
    647 	{
    648 		int _i;
    649 
    650 		for (_i = 0; _i < 16; _i++) {
    651 			BCM_PACK_U8(buf, var->ipv6.src_ip[_i]);
    652 		}
    653 	}
    654 	{
    655 		int _i;
    656 
    657 		for (_i = 0; _i < 16; _i++) {
    658 			BCM_PACK_U8(buf, var->ipv6.dst_ip[_i]);
    659 		}
    660 	}
    661 	BCM_PACK_U8(buf, var->ipv6.traffic_class);
    662 	BCM_PACK_U32(buf, var->ipv6.flow_label);
    663 	BCM_PACK_U8(buf, var->ipv6.hop_limit);
    664 	BCM_PACK_U32(buf, var->udp.flags);
    665 	BCM_PACK_U32(buf, var->udp.src_port);
    666 	BCM_PACK_U32(buf, var->udp.dst_port);
    667 	BCM_PACK_U32(buf, var->ipfix.version);
    668 	BCM_PACK_U32(buf, var->ipfix.initial_sequence_num);
    669 	BCM_PACK_U32(buf, var->protobuf.system_id_length);
    670 	{
    671 		int _i;
    672 
    673 		for (_i = 0; _i < 32; _i++) {
    674 			BCM_PACK_U8(buf, var->protobuf.system_id[_i]);
    675 		}
    676 	}
    677 	BCM_PACK_U32(buf, var->protobuf.component_id);
    678 	return buf;
    679 }
    680 
    681 uint8 *
    682 _bcm_unpack_collector_info(uint8 *buf, bcm_collector_info_t *var)
    683 {
    684 	BCM_UNPACK_U32(buf, var->collector_type);
    685 	BCM_UNPACK_U32(buf, var->transport_type);
    686 	{
    687 		int _i;
    688 
    689 		for (_i = 0; _i < 6; _i++) {
    690 			BCM_UNPACK_U8(buf, var->eth.dst_mac[_i]);
    691 		}
    692 	}
    693 	{
    694 		int _i;
    695 
    696 		for (_i = 0; _i < 6; _i++) {
    697 			BCM_UNPACK_U8(buf, var->eth.src_mac[_i]);
    698 		}
    699 	}
    700 	BCM_UNPACK_U8(buf, var->eth.vlan_tag_structure);
    701 	BCM_UNPACK_U16(buf, var->eth.outer_tpid);
    702 	BCM_UNPACK_U16(buf, var->eth.inner_tpid);
    703 	BCM_UNPACK_U32(buf, var->eth.outer_vlan_tag);
    704 	BCM_UNPACK_U32(buf, var->eth.inner_vlan_tag);
    705 	BCM_UNPACK_U32(buf, var->ipv4.src_ip);
    706 	BCM_UNPACK_U32(buf, var->ipv4.dst_ip);
    707 	BCM_UNPACK_U8(buf, var->ipv4.dscp);
    708 	BCM_UNPACK_U8(buf, var->ipv4.ttl);
    709 	{
    710 		int _i;
    711 
    712 		for (_i = 0; _i < 16; _i++) {
    713 			BCM_UNPACK_U8(buf, var->ipv6.src_ip[_i]);
    714 		}
    715 	}
    716 	{
    717 		int _i;
    718 
    719 		for (_i = 0; _i < 16; _i++) {
    720 			BCM_UNPACK_U8(buf, var->ipv6.dst_ip[_i]);
    721 		}
    722 	}
    723 	BCM_UNPACK_U8(buf, var->ipv6.traffic_class);
    724 	BCM_UNPACK_U32(buf, var->ipv6.flow_label);
    725 	BCM_UNPACK_U8(buf, var->ipv6.hop_limit);
    726 	BCM_UNPACK_U32(buf, var->udp.flags);
    727 	BCM_UNPACK_U32(buf, var->udp.src_port);
    728 	BCM_UNPACK_U32(buf, var->udp.dst_port);
    729 	BCM_UNPACK_U32(buf, var->ipfix.version);
    730 	BCM_UNPACK_U32(buf, var->ipfix.initial_sequence_num);
    731 	BCM_UNPACK_U32(buf, var->protobuf.system_id_length);
    732 	{
    733 		int _i;
    734 
    735 		for (_i = 0; _i < 32; _i++) {
    736 			BCM_UNPACK_U8(buf, var->protobuf.system_id[_i]);
    737 		}
    738 	}
    739 	BCM_UNPACK_U32(buf, var->protobuf.component_id);
    740 	return buf;
    741 }
    742 
    743 uint8 *
    744 _bcm_pack_compat6510_l2_addr(uint8 *buf, bcm_compat6510_l2_addr_t *var)
    745 {
    746 	BCM_PACK_U32(buf, var->flags);
    747 	BCM_PACK_U32(buf, var->station_flags);
    748 	{
    749 		int _i;
    750 
    751 		for (_i = 0; _i < 6; _i++) {
    752 			BCM_PACK_U8(buf, var->mac[_i]);
    753 		}
    754 	}
    755 	BCM_PACK_U16(buf, var->vid);
    756 	BCM_PACK_U32(buf, var->port);
    757 	BCM_PACK_U32(buf, var->modid);
    758 	BCM_PACK_U32(buf, var->tgid);
    759 	BCM_PACK_U32(buf, var->cos_dst);
    760 	BCM_PACK_U32(buf, var->cos_src);
    761 	BCM_PACK_U32(buf, var->l2mc_group);
    762 	buf = _bcm_pack_pbmp(buf, &(*var).block_bitmap);
    763 	BCM_PACK_U32(buf, var->auth);
    764 	BCM_PACK_U32(buf, var->group);
    765 	BCM_PACK_U32(buf, var->distribution_class);
    766 	BCM_PACK_U32(buf, var->encap_id);
    767 	BCM_PACK_U32(buf, var->age_state);
    768 	BCM_PACK_U32(buf, var->flow_handle);
    769 	BCM_PACK_U32(buf, var->flow_option_handle);
    770 	{
    771 		int _i;
    772 
    773 		for (_i = 0; _i < 20; _i++) {
    774 			BCM_PACK_U32(buf, var->logical_fields[_i].id);
    775 			BCM_PACK_U32(buf, var->logical_fields[_i].value);
    776 		}
    777 	}
    778 	BCM_PACK_U32(buf, var->num_of_fields);
    779 	buf = _bcm_pack_pbmp(buf, &(*var).sa_source_filter_pbmp);
    780 	BCM_PACK_U32(buf, var->tsn_flowset);
    781 	BCM_PACK_U32(buf, var->sr_flowset);
    782 	BCM_PACK_U32(buf, var->policer_id);
    783 	BCM_PACK_U32(buf, var->taf_gate_primap);
    784 	return buf;
    785 }
    786 
    787 uint8 *
    788 _bcm_unpack_compat6510_l2_addr(uint8 *buf, bcm_compat6510_l2_addr_t *var)
    789 {
    790 	BCM_UNPACK_U32(buf, var->flags);
    791 	BCM_UNPACK_U32(buf, var->station_flags);
    792 	{
    793 		int _i;
    794 
    795 		for (_i = 0; _i < 6; _i++) {
    796 			BCM_UNPACK_U8(buf, var->mac[_i]);
    797 		}
    798 	}
    799 	BCM_UNPACK_U16(buf, var->vid);
    800 	BCM_UNPACK_U32(buf, var->port);
    801 	BCM_UNPACK_U32(buf, var->modid);
    802 	BCM_UNPACK_U32(buf, var->tgid);
    803 	BCM_UNPACK_U32(buf, var->cos_dst);
    804 	BCM_UNPACK_U32(buf, var->cos_src);
    805 	BCM_UNPACK_U32(buf, var->l2mc_group);
    806 	buf = _bcm_unpack_pbmp(buf, &(*var).block_bitmap);
    807 	BCM_UNPACK_U32(buf, var->auth);
    808 	BCM_UNPACK_U32(buf, var->group);
    809 	BCM_UNPACK_U32(buf, var->distribution_class);
    810 	BCM_UNPACK_U32(buf, var->encap_id);
    811 	BCM_UNPACK_U32(buf, var->age_state);
    812 	BCM_UNPACK_U32(buf, var->flow_handle);
    813 	BCM_UNPACK_U32(buf, var->flow_option_handle);
    814 	{
    815 		int _i;
    816 
    817 		for (_i = 0; _i < 20; _i++) {
    818 			BCM_UNPACK_U32(buf, var->logical_fields[_i].id);
    819 			BCM_UNPACK_U32(buf, var->logical_fields[_i].value);
    820 		}
    821 	}
    822 	BCM_UNPACK_U32(buf, var->num_of_fields);
    823 	buf = _bcm_unpack_pbmp(buf, &(*var).sa_source_filter_pbmp);
    824 	BCM_UNPACK_U32(buf, var->tsn_flowset);
    825 	BCM_UNPACK_U32(buf, var->sr_flowset);
    826 	BCM_UNPACK_U32(buf, var->policer_id);
    827 	BCM_UNPACK_U32(buf, var->taf_gate_primap);
    828 	return buf;
    829 }
    830 
    831 uint8 *
    832 _bcm_pack_compat6511_cosq_pfc_class_mapping(uint8 *buf, bcm_compat6511_cosq_pfc_class_mapping_t *var)
    833 {
    834 	BCM_PACK_U32(buf, var->class_id);
    835 	{
    836 		int _i;
    837 
    838 		for (_i = 0; _i < 16; _i++) {
    839 			BCM_PACK_U32(buf, var->gport_list[_i]);
    840 		}
    841 	}
    842 	return buf;
    843 }
    844 
    845 uint8 *
    846 _bcm_unpack_compat6511_cosq_pfc_class_mapping(uint8 *buf, bcm_compat6511_cosq_pfc_class_mapping_t *var)
    847 {
    848 	BCM_UNPACK_U32(buf, var->class_id);
    849 	{
    850 		int _i;
    851 
    852 		for (_i = 0; _i < 16; _i++) {
    853 			BCM_UNPACK_U32(buf, var->gport_list[_i]);
    854 		}
    855 	}
    856 	return buf;
    857 }
    858 
    859 uint8 *
    860 _bcm_pack_compat6511_mirror_destination(uint8 *buf, bcm_compat6511_mirror_destination_t *var)
    861 {
    862 	BCM_PACK_U32(buf, var->mirror_dest_id);
    863 	BCM_PACK_U32(buf, var->flags);
    864 	BCM_PACK_U32(buf, var->gport);
    865 	BCM_PACK_U8(buf, var->version);
    866 	BCM_PACK_U8(buf, var->tos);
    867 	BCM_PACK_U8(buf, var->ttl);
    868 	BCM_PACK_U32(buf, var->src_addr);
    869 	BCM_PACK_U32(buf, var->dst_addr);
    870 	{
    871 		int _i;
    872 
    873 		for (_i = 0; _i < 16; _i++) {
    874 			BCM_PACK_U8(buf, var->src6_addr[_i]);
    875 		}
    876 	}
    877 	{
    878 		int _i;
    879 
    880 		for (_i = 0; _i < 16; _i++) {
    881 			BCM_PACK_U8(buf, var->dst6_addr[_i]);
    882 		}
    883 	}
    884 	BCM_PACK_U32(buf, var->flow_label);
    885 	{
    886 		int _i;
    887 
    888 		for (_i = 0; _i < 6; _i++) {
    889 			BCM_PACK_U8(buf, var->src_mac[_i]);
    890 		}
    891 	}
    892 	{
    893 		int _i;
    894 
    895 		for (_i = 0; _i < 6; _i++) {
    896 			BCM_PACK_U8(buf, var->dst_mac[_i]);
    897 		}
    898 	}
    899 	BCM_PACK_U16(buf, var->tpid);
    900 	BCM_PACK_U16(buf, var->vlan_id);
    901 	BCM_PACK_U32(buf, var->trill_src_name);
    902 	BCM_PACK_U32(buf, var->trill_dst_name);
    903 	BCM_PACK_U32(buf, var->trill_hopcount);
    904 	BCM_PACK_U16(buf, var->niv_src_vif);
    905 	BCM_PACK_U16(buf, var->niv_dst_vif);
    906 	BCM_PACK_U32(buf, var->niv_flags);
    907 	BCM_PACK_U16(buf, var->gre_protocol);
    908 	BCM_PACK_U32(buf, var->policer_id);
    909 	BCM_PACK_U32(buf, var->stat_id);
    910 	BCM_PACK_U32(buf, var->stat_id2);
    911 	BCM_PACK_U32(buf, var->encap_id);
    912 	BCM_PACK_U32(buf, var->tunnel_id);
    913 	BCM_PACK_U16(buf, var->span_id);
    914 	BCM_PACK_U8(buf, var->pkt_prio);
    915 	BCM_PACK_U32(buf, var->sample_rate_dividend);
    916 	BCM_PACK_U32(buf, var->sample_rate_divisor);
    917 	BCM_PACK_U8(buf, var->int_pri);
    918 	BCM_PACK_U16(buf, var->etag_src_vid);
    919 	BCM_PACK_U16(buf, var->etag_dst_vid);
    920 	BCM_PACK_U16(buf, var->udp_src_port);
    921 	BCM_PACK_U16(buf, var->udp_dst_port);
    922 	BCM_PACK_U32(buf, var->egress_sample_rate_dividend);
    923 	BCM_PACK_U32(buf, var->egress_sample_rate_divisor);
    924 	BCM_PACK_U8(buf, var->recycle_context);
    925 	BCM_PACK_U16(buf, var->packet_copy_size);
    926 	BCM_PACK_U16(buf, var->egress_packet_copy_size);
    927 	BCM_PACK_U32(buf, var->packet_control_updates.valid);
    928 	BCM_PACK_U32(buf, var->packet_control_updates.color);
    929 	BCM_PACK_U8(buf, var->packet_control_updates.prio);
    930 	BCM_PACK_U8(buf, var->packet_control_updates.ecn_value);
    931 	BCM_PACK_U8(buf, var->packet_control_updates.cnm_cancel);
    932 	BCM_PACK_U32(buf, var->packet_control_updates.trunk_hash_result);
    933 	BCM_PACK_U32(buf, var->packet_control_updates.in_port);
    934 	BCM_PACK_U16(buf, var->packet_control_updates.vsq);
    935 	BCM_PACK_U16(buf, var->packet_control_updates.fabric_header_editing);
    936 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh_valid);
    937 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.internal_valid);
    938 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts_valid);
    939 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.packet_size);
    940 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.prio);
    941 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.src_sysport);
    942 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.dst_port);
    943 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.ftmh_dp);
    944 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.action_type);
    945 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.out_mirror_disable);
    946 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.is_mc_traffic);
    947 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.multicast_id);
    948 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.out_vport);
    949 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.cni);
    950 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.lb_ext.valid);
    951 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.lb_ext.lb_key);
    952 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.dest_ext.valid);
    953 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.dest_ext.dst_sysport);
    954 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.stack_ext.valid);
    955 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.stack_ext.stack_route_history_bmp);
    956 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.valid);
    957 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_type);
    958 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.direction);
    959 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.truncated_flag);
    960 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.en);
    961 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.cos);
    962 	BCM_PACK_U16(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.vlan);
    963 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.flow_id_ext.valid);
    964 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.flow_id_ext.flow_id);
    965 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.flow_id_ext.flow_profile);
    966 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.internal.trap_qualifier);
    967 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.internal.trap_id);
    968 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.otsh_type);
    969 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.oam_sub_type);
    970 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.oam_up_mep);
    971 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.tp_cmd);
    972 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.oam_ts.ts_encap);
    973 	{
    974 		uint32 _u32;
    975 
    976 		_u32 = COMPILER_64_HI(var->packet_control_updates.header_fabric.oam_ts.oam_ts_data);
    977 		BCM_PACK_U32(buf, _u32);
    978 		_u32 = COMPILER_64_LO(var->packet_control_updates.header_fabric.oam_ts.oam_ts_data);
    979 		BCM_PACK_U32(buf, _u32);
    980 	}
    981 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.latency_flow_ID);
    982 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.offset);
    983 	BCM_PACK_U32(buf, var->packet_control_updates.metadata);
    984 	BCM_PACK_U32(buf, var->rtag);
    985 	BCM_PACK_U8(buf, var->df);
    986 	BCM_PACK_U8(buf, var->truncate);
    987 	BCM_PACK_U16(buf, var->template_id);
    988 	BCM_PACK_U32(buf, var->observation_domain);
    989 	BCM_PACK_U32(buf, var->is_recycle_strict_priority);
    990 	return buf;
    991 }
    992 
    993 uint8 *
    994 _bcm_unpack_compat6511_mirror_destination(uint8 *buf, bcm_compat6511_mirror_destination_t *var)
    995 {
    996 	BCM_UNPACK_U32(buf, var->mirror_dest_id);
    997 	BCM_UNPACK_U32(buf, var->flags);
    998 	BCM_UNPACK_U32(buf, var->gport);
    999 	BCM_UNPACK_U8(buf, var->version);
   1000 	BCM_UNPACK_U8(buf, var->tos);
   1001 	BCM_UNPACK_U8(buf, var->ttl);
   1002 	BCM_UNPACK_U32(buf, var->src_addr);
   1003 	BCM_UNPACK_U32(buf, var->dst_addr);
   1004 	{
   1005 		int _i;
   1006 
   1007 		for (_i = 0; _i < 16; _i++) {
   1008 			BCM_UNPACK_U8(buf, var->src6_addr[_i]);
   1009 		}
   1010 	}
   1011 	{
   1012 		int _i;
   1013 
   1014 		for (_i = 0; _i < 16; _i++) {
   1015 			BCM_UNPACK_U8(buf, var->dst6_addr[_i]);
   1016 		}
   1017 	}
   1018 	BCM_UNPACK_U32(buf, var->flow_label);
   1019 	{
   1020 		int _i;
   1021 
   1022 		for (_i = 0; _i < 6; _i++) {
   1023 			BCM_UNPACK_U8(buf, var->src_mac[_i]);
   1024 		}
   1025 	}
   1026 	{
   1027 		int _i;
   1028 
   1029 		for (_i = 0; _i < 6; _i++) {
   1030 			BCM_UNPACK_U8(buf, var->dst_mac[_i]);
   1031 		}
   1032 	}
   1033 	BCM_UNPACK_U16(buf, var->tpid);
   1034 	BCM_UNPACK_U16(buf, var->vlan_id);
   1035 	BCM_UNPACK_U32(buf, var->trill_src_name);
   1036 	BCM_UNPACK_U32(buf, var->trill_dst_name);
   1037 	BCM_UNPACK_U32(buf, var->trill_hopcount);
   1038 	BCM_UNPACK_U16(buf, var->niv_src_vif);
   1039 	BCM_UNPACK_U16(buf, var->niv_dst_vif);
   1040 	BCM_UNPACK_U32(buf, var->niv_flags);
   1041 	BCM_UNPACK_U16(buf, var->gre_protocol);
   1042 	BCM_UNPACK_U32(buf, var->policer_id);
   1043 	BCM_UNPACK_U32(buf, var->stat_id);
   1044 	BCM_UNPACK_U32(buf, var->stat_id2);
   1045 	BCM_UNPACK_U32(buf, var->encap_id);
   1046 	BCM_UNPACK_U32(buf, var->tunnel_id);
   1047 	BCM_UNPACK_U16(buf, var->span_id);
   1048 	BCM_UNPACK_U8(buf, var->pkt_prio);
   1049 	BCM_UNPACK_U32(buf, var->sample_rate_dividend);
   1050 	BCM_UNPACK_U32(buf, var->sample_rate_divisor);
   1051 	BCM_UNPACK_U8(buf, var->int_pri);
   1052 	BCM_UNPACK_U16(buf, var->etag_src_vid);
   1053 	BCM_UNPACK_U16(buf, var->etag_dst_vid);
   1054 	BCM_UNPACK_U16(buf, var->udp_src_port);
   1055 	BCM_UNPACK_U16(buf, var->udp_dst_port);
   1056 	BCM_UNPACK_U32(buf, var->egress_sample_rate_dividend);
   1057 	BCM_UNPACK_U32(buf, var->egress_sample_rate_divisor);
   1058 	BCM_UNPACK_U8(buf, var->recycle_context);
   1059 	BCM_UNPACK_U16(buf, var->packet_copy_size);
   1060 	BCM_UNPACK_U16(buf, var->egress_packet_copy_size);
   1061 	BCM_UNPACK_U32(buf, var->packet_control_updates.valid);
   1062 	BCM_UNPACK_U32(buf, var->packet_control_updates.color);
   1063 	BCM_UNPACK_U8(buf, var->packet_control_updates.prio);
   1064 	BCM_UNPACK_U8(buf, var->packet_control_updates.ecn_value);
   1065 	BCM_UNPACK_U8(buf, var->packet_control_updates.cnm_cancel);
   1066 	BCM_UNPACK_U32(buf, var->packet_control_updates.trunk_hash_result);
   1067 	BCM_UNPACK_U32(buf, var->packet_control_updates.in_port);
   1068 	BCM_UNPACK_U16(buf, var->packet_control_updates.vsq);
   1069 	BCM_UNPACK_U16(buf, var->packet_control_updates.fabric_header_editing);
   1070 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh_valid);
   1071 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.internal_valid);
   1072 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts_valid);
   1073 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.packet_size);
   1074 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.prio);
   1075 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.src_sysport);
   1076 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.dst_port);
   1077 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.ftmh_dp);
   1078 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.action_type);
   1079 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.out_mirror_disable);
   1080 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.is_mc_traffic);
   1081 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.multicast_id);
   1082 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.out_vport);
   1083 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.cni);
   1084 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.lb_ext.valid);
   1085 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.lb_ext.lb_key);
   1086 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.dest_ext.valid);
   1087 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.dest_ext.dst_sysport);
   1088 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.stack_ext.valid);
   1089 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.stack_ext.stack_route_history_bmp);
   1090 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.valid);
   1091 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_type);
   1092 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.direction);
   1093 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.truncated_flag);
   1094 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.en);
   1095 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.cos);
   1096 	BCM_UNPACK_U16(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.vlan);
   1097 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.flow_id_ext.valid);
   1098 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.flow_id_ext.flow_id);
   1099 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.flow_id_ext.flow_profile);
   1100 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.internal.trap_qualifier);
   1101 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.internal.trap_id);
   1102 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.otsh_type);
   1103 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.oam_sub_type);
   1104 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.oam_up_mep);
   1105 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.tp_cmd);
   1106 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.oam_ts.ts_encap);
   1107 	{
   1108 		uint32 _u32h, _u32l;
   1109 
   1110 		BCM_UNPACK_U32(buf, _u32h);
   1111 		BCM_UNPACK_U32(buf, _u32l);
   1112 		COMPILER_64_SET(var->packet_control_updates.header_fabric.oam_ts.oam_ts_data, _u32h, _u32l);
   1113 	}
   1114 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.latency_flow_ID);
   1115 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.offset);
   1116 	BCM_UNPACK_U32(buf, var->packet_control_updates.metadata);
   1117 	BCM_UNPACK_U32(buf, var->rtag);
   1118 	BCM_UNPACK_U8(buf, var->df);
   1119 	BCM_UNPACK_U8(buf, var->truncate);
   1120 	BCM_UNPACK_U16(buf, var->template_id);
   1121 	BCM_UNPACK_U32(buf, var->observation_domain);
   1122 	BCM_UNPACK_U32(buf, var->is_recycle_strict_priority);
   1123 	return buf;
   1124 }
   1125 
   1126 uint8 *
   1127 _bcm_pack_compat6512_fcoe_vsan_action_set(uint8 *buf, bcm_compat6512_fcoe_vsan_action_set_t *var)
   1128 {
   1129 	BCM_PACK_U32(buf, var->flags);
   1130 	BCM_PACK_U32(buf, var->new_vsan);
   1131 	BCM_PACK_U8(buf, var->new_vsan_pri);
   1132 	BCM_PACK_U8(buf, var->vft.r_ctl);
   1133 	BCM_PACK_U8(buf, var->vft.version);
   1134 	BCM_PACK_U8(buf, var->vft.type);
   1135 	BCM_PACK_U8(buf, var->vft.hop_count);
   1136 	BCM_PACK_U32(buf, var->ingress_if);
   1137 	BCM_PACK_U32(buf, var->dt_vsan);
   1138 	BCM_PACK_U32(buf, var->dt_vsan_pri);
   1139 	BCM_PACK_U32(buf, var->it_vsan);
   1140 	BCM_PACK_U32(buf, var->it_vsan_pri);
   1141 	BCM_PACK_U32(buf, var->ot_vsan);
   1142 	BCM_PACK_U32(buf, var->ot_vsan_pri);
   1143 	BCM_PACK_U32(buf, var->ut_vsan);
   1144 	BCM_PACK_U32(buf, var->ut_vsan_pri);
   1145 	return buf;
   1146 }
   1147 
   1148 uint8 *
   1149 _bcm_unpack_compat6512_fcoe_vsan_action_set(uint8 *buf, bcm_compat6512_fcoe_vsan_action_set_t *var)
   1150 {
   1151 	BCM_UNPACK_U32(buf, var->flags);
   1152 	BCM_UNPACK_U32(buf, var->new_vsan);
   1153 	BCM_UNPACK_U8(buf, var->new_vsan_pri);
   1154 	BCM_UNPACK_U8(buf, var->vft.r_ctl);
   1155 	BCM_UNPACK_U8(buf, var->vft.version);
   1156 	BCM_UNPACK_U8(buf, var->vft.type);
   1157 	BCM_UNPACK_U8(buf, var->vft.hop_count);
   1158 	BCM_UNPACK_U32(buf, var->ingress_if);
   1159 	BCM_UNPACK_U32(buf, var->dt_vsan);
   1160 	BCM_UNPACK_U32(buf, var->dt_vsan_pri);
   1161 	BCM_UNPACK_U32(buf, var->it_vsan);
   1162 	BCM_UNPACK_U32(buf, var->it_vsan_pri);
   1163 	BCM_UNPACK_U32(buf, var->ot_vsan);
   1164 	BCM_UNPACK_U32(buf, var->ot_vsan_pri);
   1165 	BCM_UNPACK_U32(buf, var->ut_vsan);
   1166 	BCM_UNPACK_U32(buf, var->ut_vsan_pri);
   1167 	return buf;
   1168 }
   1169 
   1170 uint8 *
   1171 _bcm_pack_compat6512_l2_addr(uint8 *buf, bcm_compat6512_l2_addr_t *var)
   1172 {
   1173 	BCM_PACK_U32(buf, var->flags);
   1174 	BCM_PACK_U32(buf, var->flags2);
   1175 	BCM_PACK_U32(buf, var->station_flags);
   1176 	{
   1177 		int _i;
   1178 
   1179 		for (_i = 0; _i < 6; _i++) {
   1180 			BCM_PACK_U8(buf, var->mac[_i]);
   1181 		}
   1182 	}
   1183 	BCM_PACK_U16(buf, var->vid);
   1184 	BCM_PACK_U32(buf, var->port);
   1185 	BCM_PACK_U32(buf, var->modid);
   1186 	BCM_PACK_U32(buf, var->tgid);
   1187 	BCM_PACK_U32(buf, var->cos_dst);
   1188 	BCM_PACK_U32(buf, var->cos_src);
   1189 	BCM_PACK_U32(buf, var->l2mc_group);
   1190 	BCM_PACK_U32(buf, var->egress_if);
   1191 	buf = _bcm_pack_pbmp(buf, &(*var).block_bitmap);
   1192 	BCM_PACK_U32(buf, var->auth);
   1193 	BCM_PACK_U32(buf, var->group);
   1194 	BCM_PACK_U32(buf, var->distribution_class);
   1195 	BCM_PACK_U32(buf, var->encap_id);
   1196 	BCM_PACK_U32(buf, var->age_state);
   1197 	BCM_PACK_U32(buf, var->flow_handle);
   1198 	BCM_PACK_U32(buf, var->flow_option_handle);
   1199 	{
   1200 		int _i;
   1201 
   1202 		for (_i = 0; _i < 20; _i++) {
   1203 			BCM_PACK_U32(buf, var->logical_fields[_i].id);
   1204 			BCM_PACK_U32(buf, var->logical_fields[_i].value);
   1205 		}
   1206 	}
   1207 	BCM_PACK_U32(buf, var->num_of_fields);
   1208 	buf = _bcm_pack_pbmp(buf, &(*var).sa_source_filter_pbmp);
   1209 	BCM_PACK_U32(buf, var->tsn_flowset);
   1210 	BCM_PACK_U32(buf, var->sr_flowset);
   1211 	BCM_PACK_U32(buf, var->policer_id);
   1212 	BCM_PACK_U32(buf, var->taf_gate_primap);
   1213 	return buf;
   1214 }
   1215 
   1216 uint8 *
   1217 _bcm_unpack_compat6512_l2_addr(uint8 *buf, bcm_compat6512_l2_addr_t *var)
   1218 {
   1219 	BCM_UNPACK_U32(buf, var->flags);
   1220 	BCM_UNPACK_U32(buf, var->flags2);
   1221 	BCM_UNPACK_U32(buf, var->station_flags);
   1222 	{
   1223 		int _i;
   1224 
   1225 		for (_i = 0; _i < 6; _i++) {
   1226 			BCM_UNPACK_U8(buf, var->mac[_i]);
   1227 		}
   1228 	}
   1229 	BCM_UNPACK_U16(buf, var->vid);
   1230 	BCM_UNPACK_U32(buf, var->port);
   1231 	BCM_UNPACK_U32(buf, var->modid);
   1232 	BCM_UNPACK_U32(buf, var->tgid);
   1233 	BCM_UNPACK_U32(buf, var->cos_dst);
   1234 	BCM_UNPACK_U32(buf, var->cos_src);
   1235 	BCM_UNPACK_U32(buf, var->l2mc_group);
   1236 	BCM_UNPACK_U32(buf, var->egress_if);
   1237 	buf = _bcm_unpack_pbmp(buf, &(*var).block_bitmap);
   1238 	BCM_UNPACK_U32(buf, var->auth);
   1239 	BCM_UNPACK_U32(buf, var->group);
   1240 	BCM_UNPACK_U32(buf, var->distribution_class);
   1241 	BCM_UNPACK_U32(buf, var->encap_id);
   1242 	BCM_UNPACK_U32(buf, var->age_state);
   1243 	BCM_UNPACK_U32(buf, var->flow_handle);
   1244 	BCM_UNPACK_U32(buf, var->flow_option_handle);
   1245 	{
   1246 		int _i;
   1247 
   1248 		for (_i = 0; _i < 20; _i++) {
   1249 			BCM_UNPACK_U32(buf, var->logical_fields[_i].id);
   1250 			BCM_UNPACK_U32(buf, var->logical_fields[_i].value);
   1251 		}
   1252 	}
   1253 	BCM_UNPACK_U32(buf, var->num_of_fields);
   1254 	buf = _bcm_unpack_pbmp(buf, &(*var).sa_source_filter_pbmp);
   1255 	BCM_UNPACK_U32(buf, var->tsn_flowset);
   1256 	BCM_UNPACK_U32(buf, var->sr_flowset);
   1257 	BCM_UNPACK_U32(buf, var->policer_id);
   1258 	BCM_UNPACK_U32(buf, var->taf_gate_primap);
   1259 	return buf;
   1260 }
   1261 
   1262 #ifdef	INCLUDE_L3
   1263 
   1264 uint8 *
   1265 _bcm_pack_compat6512_vxlan_vpn_config(uint8 *buf, bcm_compat6512_vxlan_vpn_config_t *var)
   1266 {
   1267 	BCM_PACK_U32(buf, var->flags);
   1268 	BCM_PACK_U16(buf, var->vpn);
   1269 	BCM_PACK_U32(buf, var->vnid);
   1270 	BCM_PACK_U8(buf, var->pkt_pri);
   1271 	BCM_PACK_U8(buf, var->pkt_cfi);
   1272 	BCM_PACK_U16(buf, var->egress_service_tpid);
   1273 	BCM_PACK_U16(buf, var->egress_service_vlan);
   1274 	BCM_PACK_U32(buf, var->broadcast_group);
   1275 	BCM_PACK_U32(buf, var->unknown_unicast_group);
   1276 	BCM_PACK_U32(buf, var->unknown_multicast_group);
   1277 	BCM_PACK_U32(buf, var->protocol_pkt.mmrp_action);
   1278 	BCM_PACK_U32(buf, var->protocol_pkt.srp_action);
   1279 	BCM_PACK_U32(buf, var->protocol_pkt.arp_reply_action);
   1280 	BCM_PACK_U32(buf, var->protocol_pkt.arp_request_action);
   1281 	BCM_PACK_U32(buf, var->protocol_pkt.nd_action);
   1282 	BCM_PACK_U32(buf, var->protocol_pkt.dhcp_action);
   1283 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_report_leave_action);
   1284 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_query_action);
   1285 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_unknown_msg_action);
   1286 	BCM_PACK_U32(buf, var->protocol_pkt.mld_report_done_action);
   1287 	BCM_PACK_U32(buf, var->protocol_pkt.mld_query_action);
   1288 	BCM_PACK_U32(buf, var->protocol_pkt.ip4_rsvd_mc_action);
   1289 	BCM_PACK_U32(buf, var->protocol_pkt.ip6_rsvd_mc_action);
   1290 	BCM_PACK_U32(buf, var->protocol_pkt.ip4_mc_router_adv_action);
   1291 	BCM_PACK_U32(buf, var->protocol_pkt.ip6_mc_router_adv_action);
   1292 	BCM_PACK_U32(buf, var->protocol_pkt.flood_action_according_to_pfm);
   1293 	BCM_PACK_U16(buf, var->vlan);
   1294 	BCM_PACK_U32(buf, var->match_port_class);
   1295 	return buf;
   1296 }
   1297 
   1298 uint8 *
   1299 _bcm_unpack_compat6512_vxlan_vpn_config(uint8 *buf, bcm_compat6512_vxlan_vpn_config_t *var)
   1300 {
   1301 	BCM_UNPACK_U32(buf, var->flags);
   1302 	BCM_UNPACK_U16(buf, var->vpn);
   1303 	BCM_UNPACK_U32(buf, var->vnid);
   1304 	BCM_UNPACK_U8(buf, var->pkt_pri);
   1305 	BCM_UNPACK_U8(buf, var->pkt_cfi);
   1306 	BCM_UNPACK_U16(buf, var->egress_service_tpid);
   1307 	BCM_UNPACK_U16(buf, var->egress_service_vlan);
   1308 	BCM_UNPACK_U32(buf, var->broadcast_group);
   1309 	BCM_UNPACK_U32(buf, var->unknown_unicast_group);
   1310 	BCM_UNPACK_U32(buf, var->unknown_multicast_group);
   1311 	BCM_UNPACK_U32(buf, var->protocol_pkt.mmrp_action);
   1312 	BCM_UNPACK_U32(buf, var->protocol_pkt.srp_action);
   1313 	BCM_UNPACK_U32(buf, var->protocol_pkt.arp_reply_action);
   1314 	BCM_UNPACK_U32(buf, var->protocol_pkt.arp_request_action);
   1315 	BCM_UNPACK_U32(buf, var->protocol_pkt.nd_action);
   1316 	BCM_UNPACK_U32(buf, var->protocol_pkt.dhcp_action);
   1317 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_report_leave_action);
   1318 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_query_action);
   1319 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_unknown_msg_action);
   1320 	BCM_UNPACK_U32(buf, var->protocol_pkt.mld_report_done_action);
   1321 	BCM_UNPACK_U32(buf, var->protocol_pkt.mld_query_action);
   1322 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip4_rsvd_mc_action);
   1323 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip6_rsvd_mc_action);
   1324 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip4_mc_router_adv_action);
   1325 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip6_mc_router_adv_action);
   1326 	BCM_UNPACK_U32(buf, var->protocol_pkt.flood_action_according_to_pfm);
   1327 	BCM_UNPACK_U16(buf, var->vlan);
   1328 	BCM_UNPACK_U32(buf, var->match_port_class);
   1329 	return buf;
   1330 }
   1331 
   1332 uint8 *
   1333 _bcm_pack_compat6513_flow_encap_config(uint8 *buf, bcm_compat6513_flow_encap_config_t *var)
   1334 {
   1335 	BCM_PACK_U16(buf, var->vpn);
   1336 	BCM_PACK_U32(buf, var->flow_port);
   1337 	BCM_PACK_U32(buf, var->intf_id);
   1338 	BCM_PACK_U32(buf, var->dvp_group);
   1339 	BCM_PACK_U32(buf, var->oif_group);
   1340 	BCM_PACK_U32(buf, var->vnid);
   1341 	BCM_PACK_U8(buf, var->pri);
   1342 	BCM_PACK_U8(buf, var->cfi);
   1343 	BCM_PACK_U16(buf, var->tpid);
   1344 	BCM_PACK_U16(buf, var->vlan);
   1345 	BCM_PACK_U32(buf, var->flags);
   1346 	BCM_PACK_U32(buf, var->options);
   1347 	BCM_PACK_U32(buf, var->criteria);
   1348 	BCM_PACK_U32(buf, var->valid_elements);
   1349 	BCM_PACK_U32(buf, var->flow_handle);
   1350 	BCM_PACK_U32(buf, var->flow_option);
   1351 	return buf;
   1352 }
   1353 
   1354 uint8 *
   1355 _bcm_unpack_compat6513_flow_encap_config(uint8 *buf, bcm_compat6513_flow_encap_config_t *var)
   1356 {
   1357 	BCM_UNPACK_U16(buf, var->vpn);
   1358 	BCM_UNPACK_U32(buf, var->flow_port);
   1359 	BCM_UNPACK_U32(buf, var->intf_id);
   1360 	BCM_UNPACK_U32(buf, var->dvp_group);
   1361 	BCM_UNPACK_U32(buf, var->oif_group);
   1362 	BCM_UNPACK_U32(buf, var->vnid);
   1363 	BCM_UNPACK_U8(buf, var->pri);
   1364 	BCM_UNPACK_U8(buf, var->cfi);
   1365 	BCM_UNPACK_U16(buf, var->tpid);
   1366 	BCM_UNPACK_U16(buf, var->vlan);
   1367 	BCM_UNPACK_U32(buf, var->flags);
   1368 	BCM_UNPACK_U32(buf, var->options);
   1369 	BCM_UNPACK_U32(buf, var->criteria);
   1370 	BCM_UNPACK_U32(buf, var->valid_elements);
   1371 	BCM_UNPACK_U32(buf, var->flow_handle);
   1372 	BCM_UNPACK_U32(buf, var->flow_option);
   1373 	return buf;
   1374 }
   1375 
   1376 uint8 *
   1377 _bcm_pack_compat6513_l3_egress(uint8 *buf, bcm_compat6513_l3_egress_t *var)
   1378 {
   1379 	BCM_PACK_U32(buf, var->flags);
   1380 	BCM_PACK_U32(buf, var->flags2);
   1381 	BCM_PACK_U32(buf, var->intf);
   1382 	{
   1383 		int _i;
   1384 
   1385 		for (_i = 0; _i < 6; _i++) {
   1386 			BCM_PACK_U8(buf, var->mac_addr[_i]);
   1387 		}
   1388 	}
   1389 	BCM_PACK_U16(buf, var->vlan);
   1390 	BCM_PACK_U32(buf, var->module);
   1391 	BCM_PACK_U32(buf, var->port);
   1392 	BCM_PACK_U32(buf, var->trunk);
   1393 	BCM_PACK_U32(buf, var->mpls_flags);
   1394 	BCM_PACK_U32(buf, var->mpls_label);
   1395 	BCM_PACK_U32(buf, var->mpls_action);
   1396 	BCM_PACK_U32(buf, var->mpls_qos_map_id);
   1397 	BCM_PACK_U32(buf, var->mpls_ttl);
   1398 	BCM_PACK_U8(buf, var->mpls_pkt_pri);
   1399 	BCM_PACK_U8(buf, var->mpls_pkt_cfi);
   1400 	BCM_PACK_U8(buf, var->mpls_exp);
   1401 	BCM_PACK_U32(buf, var->qos_map_id);
   1402 	BCM_PACK_U32(buf, var->encap_id);
   1403 	BCM_PACK_U32(buf, var->failover_id);
   1404 	BCM_PACK_U32(buf, var->failover_if_id);
   1405 	BCM_PACK_U32(buf, var->failover_mc_group);
   1406 	BCM_PACK_U32(buf, var->dynamic_scaling_factor);
   1407 	BCM_PACK_U32(buf, var->dynamic_load_weight);
   1408 	BCM_PACK_U32(buf, var->dynamic_queue_size_weight);
   1409 	BCM_PACK_U32(buf, var->intf_class);
   1410 	BCM_PACK_U32(buf, var->multicast_flags);
   1411 	BCM_PACK_U16(buf, var->oam_global_context_id);
   1412 	BCM_PACK_U8(buf, var->vntag.direction);
   1413 	BCM_PACK_U8(buf, var->vntag.pointer);
   1414 	BCM_PACK_U16(buf, var->vntag.dst_vif);
   1415 	BCM_PACK_U8(buf, var->vntag.loop);
   1416 	BCM_PACK_U16(buf, var->vntag.src_vif);
   1417 	BCM_PACK_U32(buf, var->vntag_action);
   1418 	BCM_PACK_U8(buf, var->etag.pcp);
   1419 	BCM_PACK_U8(buf, var->etag.de);
   1420 	BCM_PACK_U16(buf, var->etag.src_vid);
   1421 	BCM_PACK_U16(buf, var->etag.vid);
   1422 	BCM_PACK_U32(buf, var->etag_action);
   1423 	BCM_PACK_U32(buf, var->flow_handle);
   1424 	BCM_PACK_U32(buf, var->flow_option_handle);
   1425 	BCM_PACK_U32(buf, var->flow_label_option_handle);
   1426 	{
   1427 		int _i;
   1428 
   1429 		for (_i = 0; _i < 20; _i++) {
   1430 			BCM_PACK_U32(buf, var->logical_fields[_i].id);
   1431 			BCM_PACK_U32(buf, var->logical_fields[_i].value);
   1432 		}
   1433 	}
   1434 	BCM_PACK_U32(buf, var->num_of_fields);
   1435 	BCM_PACK_U32(buf, var->counting_profile);
   1436 	BCM_PACK_U32(buf, var->mpls_ecn_map_id);
   1437 	BCM_PACK_U32(buf, var->urpf_mode);
   1438 	return buf;
   1439 }
   1440 
   1441 uint8 *
   1442 _bcm_unpack_compat6513_l3_egress(uint8 *buf, bcm_compat6513_l3_egress_t *var)
   1443 {
   1444 	BCM_UNPACK_U32(buf, var->flags);
   1445 	BCM_UNPACK_U32(buf, var->flags2);
   1446 	BCM_UNPACK_U32(buf, var->intf);
   1447 	{
   1448 		int _i;
   1449 
   1450 		for (_i = 0; _i < 6; _i++) {
   1451 			BCM_UNPACK_U8(buf, var->mac_addr[_i]);
   1452 		}
   1453 	}
   1454 	BCM_UNPACK_U16(buf, var->vlan);
   1455 	BCM_UNPACK_U32(buf, var->module);
   1456 	BCM_UNPACK_U32(buf, var->port);
   1457 	BCM_UNPACK_U32(buf, var->trunk);
   1458 	BCM_UNPACK_U32(buf, var->mpls_flags);
   1459 	BCM_UNPACK_U32(buf, var->mpls_label);
   1460 	BCM_UNPACK_U32(buf, var->mpls_action);
   1461 	BCM_UNPACK_U32(buf, var->mpls_qos_map_id);
   1462 	BCM_UNPACK_U32(buf, var->mpls_ttl);
   1463 	BCM_UNPACK_U8(buf, var->mpls_pkt_pri);
   1464 	BCM_UNPACK_U8(buf, var->mpls_pkt_cfi);
   1465 	BCM_UNPACK_U8(buf, var->mpls_exp);
   1466 	BCM_UNPACK_U32(buf, var->qos_map_id);
   1467 	BCM_UNPACK_U32(buf, var->encap_id);
   1468 	BCM_UNPACK_U32(buf, var->failover_id);
   1469 	BCM_UNPACK_U32(buf, var->failover_if_id);
   1470 	BCM_UNPACK_U32(buf, var->failover_mc_group);
   1471 	BCM_UNPACK_U32(buf, var->dynamic_scaling_factor);
   1472 	BCM_UNPACK_U32(buf, var->dynamic_load_weight);
   1473 	BCM_UNPACK_U32(buf, var->dynamic_queue_size_weight);
   1474 	BCM_UNPACK_U32(buf, var->intf_class);
   1475 	BCM_UNPACK_U32(buf, var->multicast_flags);
   1476 	BCM_UNPACK_U16(buf, var->oam_global_context_id);
   1477 	BCM_UNPACK_U8(buf, var->vntag.direction);
   1478 	BCM_UNPACK_U8(buf, var->vntag.pointer);
   1479 	BCM_UNPACK_U16(buf, var->vntag.dst_vif);
   1480 	BCM_UNPACK_U8(buf, var->vntag.loop);
   1481 	BCM_UNPACK_U16(buf, var->vntag.src_vif);
   1482 	BCM_UNPACK_U32(buf, var->vntag_action);
   1483 	BCM_UNPACK_U8(buf, var->etag.pcp);
   1484 	BCM_UNPACK_U8(buf, var->etag.de);
   1485 	BCM_UNPACK_U16(buf, var->etag.src_vid);
   1486 	BCM_UNPACK_U16(buf, var->etag.vid);
   1487 	BCM_UNPACK_U32(buf, var->etag_action);
   1488 	BCM_UNPACK_U32(buf, var->flow_handle);
   1489 	BCM_UNPACK_U32(buf, var->flow_option_handle);
   1490 	BCM_UNPACK_U32(buf, var->flow_label_option_handle);
   1491 	{
   1492 		int _i;
   1493 
   1494 		for (_i = 0; _i < 20; _i++) {
   1495 			BCM_UNPACK_U32(buf, var->logical_fields[_i].id);
   1496 			BCM_UNPACK_U32(buf, var->logical_fields[_i].value);
   1497 		}
   1498 	}
   1499 	BCM_UNPACK_U32(buf, var->num_of_fields);
   1500 	BCM_UNPACK_U32(buf, var->counting_profile);
   1501 	BCM_UNPACK_U32(buf, var->mpls_ecn_map_id);
   1502 	BCM_UNPACK_U32(buf, var->urpf_mode);
   1503 	return buf;
   1504 }
   1505 
   1506 uint8 *
   1507 _bcm_pack_compat6515_l3_egress(uint8 *buf, bcm_compat6515_l3_egress_t *var)
   1508 {
   1509 	BCM_PACK_U32(buf, var->flags);
   1510 	BCM_PACK_U32(buf, var->flags2);
   1511 	BCM_PACK_U32(buf, var->intf);
   1512 	{
   1513 		int _i;
   1514 
   1515 		for (_i = 0; _i < 6; _i++) {
   1516 			BCM_PACK_U8(buf, var->mac_addr[_i]);
   1517 		}
   1518 	}
   1519 	BCM_PACK_U16(buf, var->vlan);
   1520 	BCM_PACK_U32(buf, var->module);
   1521 	BCM_PACK_U32(buf, var->port);
   1522 	BCM_PACK_U32(buf, var->trunk);
   1523 	BCM_PACK_U32(buf, var->mpls_flags);
   1524 	BCM_PACK_U32(buf, var->mpls_label);
   1525 	BCM_PACK_U32(buf, var->mpls_action);
   1526 	BCM_PACK_U32(buf, var->mpls_qos_map_id);
   1527 	BCM_PACK_U32(buf, var->mpls_ttl);
   1528 	BCM_PACK_U8(buf, var->mpls_pkt_pri);
   1529 	BCM_PACK_U8(buf, var->mpls_pkt_cfi);
   1530 	BCM_PACK_U8(buf, var->mpls_exp);
   1531 	BCM_PACK_U32(buf, var->qos_map_id);
   1532 	BCM_PACK_U32(buf, var->encap_id);
   1533 	BCM_PACK_U32(buf, var->failover_id);
   1534 	BCM_PACK_U32(buf, var->failover_if_id);
   1535 	BCM_PACK_U32(buf, var->failover_mc_group);
   1536 	BCM_PACK_U32(buf, var->dynamic_scaling_factor);
   1537 	BCM_PACK_U32(buf, var->dynamic_load_weight);
   1538 	BCM_PACK_U32(buf, var->dynamic_queue_size_weight);
   1539 	BCM_PACK_U32(buf, var->intf_class);
   1540 	BCM_PACK_U32(buf, var->multicast_flags);
   1541 	BCM_PACK_U16(buf, var->oam_global_context_id);
   1542 	BCM_PACK_U8(buf, var->vntag.direction);
   1543 	BCM_PACK_U8(buf, var->vntag.pointer);
   1544 	BCM_PACK_U16(buf, var->vntag.dst_vif);
   1545 	BCM_PACK_U8(buf, var->vntag.loop);
   1546 	BCM_PACK_U16(buf, var->vntag.src_vif);
   1547 	BCM_PACK_U32(buf, var->vntag_action);
   1548 	BCM_PACK_U8(buf, var->etag.pcp);
   1549 	BCM_PACK_U8(buf, var->etag.de);
   1550 	BCM_PACK_U16(buf, var->etag.src_vid);
   1551 	BCM_PACK_U16(buf, var->etag.vid);
   1552 	BCM_PACK_U32(buf, var->etag_action);
   1553 	BCM_PACK_U32(buf, var->flow_handle);
   1554 	BCM_PACK_U32(buf, var->flow_option_handle);
   1555 	BCM_PACK_U32(buf, var->flow_label_option_handle);
   1556 	{
   1557 		int _i;
   1558 
   1559 		for (_i = 0; _i < 20; _i++) {
   1560 			BCM_PACK_U32(buf, var->logical_fields[_i].id);
   1561 			BCM_PACK_U32(buf, var->logical_fields[_i].value);
   1562 		}
   1563 	}
   1564 	BCM_PACK_U32(buf, var->num_of_fields);
   1565 	BCM_PACK_U32(buf, var->counting_profile);
   1566 	BCM_PACK_U32(buf, var->mpls_ecn_map_id);
   1567 	BCM_PACK_U32(buf, var->urpf_mode);
   1568 	BCM_PACK_U32(buf, var->mc_group);
   1569 	{
   1570 		int _i;
   1571 
   1572 		for (_i = 0; _i < 6; _i++) {
   1573 			BCM_PACK_U8(buf, var->src_mac_addr[_i]);
   1574 		}
   1575 	}
   1576 	BCM_PACK_U32(buf, var->hierarchical_gport);
   1577 	BCM_PACK_U32(buf, var->stat_id);
   1578 	BCM_PACK_U32(buf, var->stat_pp_profile);
   1579 	return buf;
   1580 }
   1581 
   1582 uint8 *
   1583 _bcm_unpack_compat6515_l3_egress(uint8 *buf, bcm_compat6515_l3_egress_t *var)
   1584 {
   1585 	BCM_UNPACK_U32(buf, var->flags);
   1586 	BCM_UNPACK_U32(buf, var->flags2);
   1587 	BCM_UNPACK_U32(buf, var->intf);
   1588 	{
   1589 		int _i;
   1590 
   1591 		for (_i = 0; _i < 6; _i++) {
   1592 			BCM_UNPACK_U8(buf, var->mac_addr[_i]);
   1593 		}
   1594 	}
   1595 	BCM_UNPACK_U16(buf, var->vlan);
   1596 	BCM_UNPACK_U32(buf, var->module);
   1597 	BCM_UNPACK_U32(buf, var->port);
   1598 	BCM_UNPACK_U32(buf, var->trunk);
   1599 	BCM_UNPACK_U32(buf, var->mpls_flags);
   1600 	BCM_UNPACK_U32(buf, var->mpls_label);
   1601 	BCM_UNPACK_U32(buf, var->mpls_action);
   1602 	BCM_UNPACK_U32(buf, var->mpls_qos_map_id);
   1603 	BCM_UNPACK_U32(buf, var->mpls_ttl);
   1604 	BCM_UNPACK_U8(buf, var->mpls_pkt_pri);
   1605 	BCM_UNPACK_U8(buf, var->mpls_pkt_cfi);
   1606 	BCM_UNPACK_U8(buf, var->mpls_exp);
   1607 	BCM_UNPACK_U32(buf, var->qos_map_id);
   1608 	BCM_UNPACK_U32(buf, var->encap_id);
   1609 	BCM_UNPACK_U32(buf, var->failover_id);
   1610 	BCM_UNPACK_U32(buf, var->failover_if_id);
   1611 	BCM_UNPACK_U32(buf, var->failover_mc_group);
   1612 	BCM_UNPACK_U32(buf, var->dynamic_scaling_factor);
   1613 	BCM_UNPACK_U32(buf, var->dynamic_load_weight);
   1614 	BCM_UNPACK_U32(buf, var->dynamic_queue_size_weight);
   1615 	BCM_UNPACK_U32(buf, var->intf_class);
   1616 	BCM_UNPACK_U32(buf, var->multicast_flags);
   1617 	BCM_UNPACK_U16(buf, var->oam_global_context_id);
   1618 	BCM_UNPACK_U8(buf, var->vntag.direction);
   1619 	BCM_UNPACK_U8(buf, var->vntag.pointer);
   1620 	BCM_UNPACK_U16(buf, var->vntag.dst_vif);
   1621 	BCM_UNPACK_U8(buf, var->vntag.loop);
   1622 	BCM_UNPACK_U16(buf, var->vntag.src_vif);
   1623 	BCM_UNPACK_U32(buf, var->vntag_action);
   1624 	BCM_UNPACK_U8(buf, var->etag.pcp);
   1625 	BCM_UNPACK_U8(buf, var->etag.de);
   1626 	BCM_UNPACK_U16(buf, var->etag.src_vid);
   1627 	BCM_UNPACK_U16(buf, var->etag.vid);
   1628 	BCM_UNPACK_U32(buf, var->etag_action);
   1629 	BCM_UNPACK_U32(buf, var->flow_handle);
   1630 	BCM_UNPACK_U32(buf, var->flow_option_handle);
   1631 	BCM_UNPACK_U32(buf, var->flow_label_option_handle);
   1632 	{
   1633 		int _i;
   1634 
   1635 		for (_i = 0; _i < 20; _i++) {
   1636 			BCM_UNPACK_U32(buf, var->logical_fields[_i].id);
   1637 			BCM_UNPACK_U32(buf, var->logical_fields[_i].value);
   1638 		}
   1639 	}
   1640 	BCM_UNPACK_U32(buf, var->num_of_fields);
   1641 	BCM_UNPACK_U32(buf, var->counting_profile);
   1642 	BCM_UNPACK_U32(buf, var->mpls_ecn_map_id);
   1643 	BCM_UNPACK_U32(buf, var->urpf_mode);
   1644 	BCM_UNPACK_U32(buf, var->mc_group);
   1645 	{
   1646 		int _i;
   1647 
   1648 		for (_i = 0; _i < 6; _i++) {
   1649 			BCM_UNPACK_U8(buf, var->src_mac_addr[_i]);
   1650 		}
   1651 	}
   1652 	BCM_UNPACK_U32(buf, var->hierarchical_gport);
   1653 	BCM_UNPACK_U32(buf, var->stat_id);
   1654 	BCM_UNPACK_U32(buf, var->stat_pp_profile);
   1655 	return buf;
   1656 }
   1657 
   1658 uint8 *
   1659 _bcm_pack_compat6515_tunnel_terminator(uint8 *buf, bcm_compat6515_tunnel_terminator_t *var)
   1660 {
   1661 	BCM_PACK_U32(buf, var->flags);
   1662 	BCM_PACK_U32(buf, var->multicast_flag);
   1663 	BCM_PACK_U32(buf, var->vrf);
   1664 	BCM_PACK_U32(buf, var->sip);
   1665 	BCM_PACK_U32(buf, var->dip);
   1666 	BCM_PACK_U32(buf, var->sip_mask);
   1667 	BCM_PACK_U32(buf, var->dip_mask);
   1668 	{
   1669 		int _i;
   1670 
   1671 		for (_i = 0; _i < 16; _i++) {
   1672 			BCM_PACK_U8(buf, var->sip6[_i]);
   1673 		}
   1674 	}
   1675 	{
   1676 		int _i;
   1677 
   1678 		for (_i = 0; _i < 16; _i++) {
   1679 			BCM_PACK_U8(buf, var->dip6[_i]);
   1680 		}
   1681 	}
   1682 	{
   1683 		int _i;
   1684 
   1685 		for (_i = 0; _i < 16; _i++) {
   1686 			BCM_PACK_U8(buf, var->sip6_mask[_i]);
   1687 		}
   1688 	}
   1689 	{
   1690 		int _i;
   1691 
   1692 		for (_i = 0; _i < 16; _i++) {
   1693 			BCM_PACK_U8(buf, var->dip6_mask[_i]);
   1694 		}
   1695 	}
   1696 	BCM_PACK_U32(buf, var->udp_dst_port);
   1697 	BCM_PACK_U32(buf, var->udp_src_port);
   1698 	BCM_PACK_U32(buf, var->type);
   1699 	buf = _bcm_pack_pbmp(buf, &(*var).pbmp);
   1700 	BCM_PACK_U16(buf, var->vlan);
   1701 	BCM_PACK_U32(buf, var->remote_port);
   1702 	BCM_PACK_U32(buf, var->tunnel_id);
   1703 	BCM_PACK_U32(buf, var->if_class);
   1704 	BCM_PACK_U32(buf, var->failover_mc_group);
   1705 	BCM_PACK_U32(buf, var->ingress_failover_id);
   1706 	BCM_PACK_U32(buf, var->failover_id);
   1707 	BCM_PACK_U32(buf, var->failover_tunnel_id);
   1708 	BCM_PACK_U32(buf, var->tunnel_if);
   1709 	BCM_PACK_U32(buf, var->tunnel_class);
   1710 	BCM_PACK_U32(buf, var->qos_map_id);
   1711 	BCM_PACK_U32(buf, var->inlif_counting_profile);
   1712 	BCM_PACK_U32(buf, var->tunnel_term_ecn_map_id);
   1713 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_phb);
   1714 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_remark);
   1715 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_ttl);
   1716 	return buf;
   1717 }
   1718 
   1719 uint8 *
   1720 _bcm_unpack_compat6515_tunnel_terminator(uint8 *buf, bcm_compat6515_tunnel_terminator_t *var)
   1721 {
   1722 	BCM_UNPACK_U32(buf, var->flags);
   1723 	BCM_UNPACK_U32(buf, var->multicast_flag);
   1724 	BCM_UNPACK_U32(buf, var->vrf);
   1725 	BCM_UNPACK_U32(buf, var->sip);
   1726 	BCM_UNPACK_U32(buf, var->dip);
   1727 	BCM_UNPACK_U32(buf, var->sip_mask);
   1728 	BCM_UNPACK_U32(buf, var->dip_mask);
   1729 	{
   1730 		int _i;
   1731 
   1732 		for (_i = 0; _i < 16; _i++) {
   1733 			BCM_UNPACK_U8(buf, var->sip6[_i]);
   1734 		}
   1735 	}
   1736 	{
   1737 		int _i;
   1738 
   1739 		for (_i = 0; _i < 16; _i++) {
   1740 			BCM_UNPACK_U8(buf, var->dip6[_i]);
   1741 		}
   1742 	}
   1743 	{
   1744 		int _i;
   1745 
   1746 		for (_i = 0; _i < 16; _i++) {
   1747 			BCM_UNPACK_U8(buf, var->sip6_mask[_i]);
   1748 		}
   1749 	}
   1750 	{
   1751 		int _i;
   1752 
   1753 		for (_i = 0; _i < 16; _i++) {
   1754 			BCM_UNPACK_U8(buf, var->dip6_mask[_i]);
   1755 		}
   1756 	}
   1757 	BCM_UNPACK_U32(buf, var->udp_dst_port);
   1758 	BCM_UNPACK_U32(buf, var->udp_src_port);
   1759 	BCM_UNPACK_U32(buf, var->type);
   1760 	buf = _bcm_unpack_pbmp(buf, &(*var).pbmp);
   1761 	BCM_UNPACK_U16(buf, var->vlan);
   1762 	BCM_UNPACK_U32(buf, var->remote_port);
   1763 	BCM_UNPACK_U32(buf, var->tunnel_id);
   1764 	BCM_UNPACK_U32(buf, var->if_class);
   1765 	BCM_UNPACK_U32(buf, var->failover_mc_group);
   1766 	BCM_UNPACK_U32(buf, var->ingress_failover_id);
   1767 	BCM_UNPACK_U32(buf, var->failover_id);
   1768 	BCM_UNPACK_U32(buf, var->failover_tunnel_id);
   1769 	BCM_UNPACK_U32(buf, var->tunnel_if);
   1770 	BCM_UNPACK_U32(buf, var->tunnel_class);
   1771 	BCM_UNPACK_U32(buf, var->qos_map_id);
   1772 	BCM_UNPACK_U32(buf, var->inlif_counting_profile);
   1773 	BCM_UNPACK_U32(buf, var->tunnel_term_ecn_map_id);
   1774 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_phb);
   1775 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_remark);
   1776 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_ttl);
   1777 	return buf;
   1778 }
   1779 
   1780 #endif	/* INCLUDE_L3 */
   1781 
   1782 uint8 *
   1783 _bcm_pack_compat655_field_qset(uint8 *buf, bcm_compat655_field_qset_t *var)
   1784 {
   1785 	{
   1786 		int _i;
   1787 
   1788 		for (_i = 0; _i < 22; _i++) {
   1789 			BCM_PACK_U32(buf, var->w[_i]);
   1790 		}
   1791 	}
   1792 	BCM_PACK_U32(buf, var->udf_map[0]);
   1793 	BCM_PACK_U32(buf, var->udf_map[1]);
   1794 	BCM_PACK_U32(buf, var->udf_map[2]);
   1795 	return buf;
   1796 }
   1797 
   1798 uint8 *
   1799 _bcm_unpack_compat655_field_qset(uint8 *buf, bcm_compat655_field_qset_t *var)
   1800 {
   1801 	{
   1802 		int _i;
   1803 
   1804 		for (_i = 0; _i < 22; _i++) {
   1805 			BCM_UNPACK_U32(buf, var->w[_i]);
   1806 		}
   1807 	}
   1808 	BCM_UNPACK_U32(buf, var->udf_map[0]);
   1809 	BCM_UNPACK_U32(buf, var->udf_map[1]);
   1810 	BCM_UNPACK_U32(buf, var->udf_map[2]);
   1811 	return buf;
   1812 }
   1813 
   1814 uint8 *
   1815 _bcm_pack_compat656_field_qset(uint8 *buf, bcm_compat656_field_qset_t *var)
   1816 {
   1817 	{
   1818 		int _i;
   1819 
   1820 		for (_i = 0; _i < 23; _i++) {
   1821 			BCM_PACK_U32(buf, var->w[_i]);
   1822 		}
   1823 	}
   1824 	BCM_PACK_U32(buf, var->udf_map[0]);
   1825 	BCM_PACK_U32(buf, var->udf_map[1]);
   1826 	BCM_PACK_U32(buf, var->udf_map[2]);
   1827 	return buf;
   1828 }
   1829 
   1830 uint8 *
   1831 _bcm_unpack_compat656_field_qset(uint8 *buf, bcm_compat656_field_qset_t *var)
   1832 {
   1833 	{
   1834 		int _i;
   1835 
   1836 		for (_i = 0; _i < 23; _i++) {
   1837 			BCM_UNPACK_U32(buf, var->w[_i]);
   1838 		}
   1839 	}
   1840 	BCM_UNPACK_U32(buf, var->udf_map[0]);
   1841 	BCM_UNPACK_U32(buf, var->udf_map[1]);
   1842 	BCM_UNPACK_U32(buf, var->udf_map[2]);
   1843 	return buf;
   1844 }
   1845 
   1846 #ifdef	INCLUDE_L3
   1847 
   1848 uint8 *
   1849 _bcm_pack_compat657_extender_forward(uint8 *buf, bcm_compat657_extender_forward_t *var)
   1850 {
   1851 	BCM_PACK_U32(buf, var->flags);
   1852 	BCM_PACK_U16(buf, var->name_space);
   1853 	BCM_PACK_U16(buf, var->extended_port_vid);
   1854 	BCM_PACK_U32(buf, var->dest_port);
   1855 	BCM_PACK_U32(buf, var->dest_multicast);
   1856 	BCM_PACK_U32(buf, var->extender_forward_id);
   1857 	return buf;
   1858 }
   1859 
   1860 uint8 *
   1861 _bcm_unpack_compat657_extender_forward(uint8 *buf, bcm_compat657_extender_forward_t *var)
   1862 {
   1863 	BCM_UNPACK_U32(buf, var->flags);
   1864 	BCM_UNPACK_U16(buf, var->name_space);
   1865 	BCM_UNPACK_U16(buf, var->extended_port_vid);
   1866 	BCM_UNPACK_U32(buf, var->dest_port);
   1867 	BCM_UNPACK_U32(buf, var->dest_multicast);
   1868 	BCM_UNPACK_U32(buf, var->extender_forward_id);
   1869 	return buf;
   1870 }
   1871 
   1872 #endif	/* INCLUDE_L3 */
   1873 
   1874 uint8 *
   1875 _bcm_pack_compat657_field_qset(uint8 *buf, bcm_compat657_field_qset_t *var)
   1876 {
   1877 	{
   1878 		int _i;
   1879 
   1880 		for (_i = 0; _i < 24; _i++) {
   1881 			BCM_PACK_U32(buf, var->w[_i]);
   1882 		}
   1883 	}
   1884 	BCM_PACK_U32(buf, var->udf_map[0]);
   1885 	BCM_PACK_U32(buf, var->udf_map[1]);
   1886 	BCM_PACK_U32(buf, var->udf_map[2]);
   1887 	return buf;
   1888 }
   1889 
   1890 uint8 *
   1891 _bcm_unpack_compat657_field_qset(uint8 *buf, bcm_compat657_field_qset_t *var)
   1892 {
   1893 	{
   1894 		int _i;
   1895 
   1896 		for (_i = 0; _i < 24; _i++) {
   1897 			BCM_UNPACK_U32(buf, var->w[_i]);
   1898 		}
   1899 	}
   1900 	BCM_UNPACK_U32(buf, var->udf_map[0]);
   1901 	BCM_UNPACK_U32(buf, var->udf_map[1]);
   1902 	BCM_UNPACK_U32(buf, var->udf_map[2]);
   1903 	return buf;
   1904 }
   1905 
   1906 #ifdef	INCLUDE_L3
   1907 
   1908 uint8 *
   1909 _bcm_pack_compat657_mpls_tunnel_switch(uint8 *buf, bcm_compat657_mpls_tunnel_switch_t *var)
   1910 {
   1911 	BCM_PACK_U32(buf, var->flags);
   1912 	BCM_PACK_U32(buf, var->label);
   1913 	BCM_PACK_U32(buf, var->second_label);
   1914 	BCM_PACK_U32(buf, var->port);
   1915 	BCM_PACK_U32(buf, var->action);
   1916 	BCM_PACK_U32(buf, var->action_if_bos);
   1917 	BCM_PACK_U32(buf, var->action_if_not_bos);
   1918 	BCM_PACK_U32(buf, var->mc_group);
   1919 	BCM_PACK_U32(buf, var->exp_map);
   1920 	BCM_PACK_U32(buf, var->int_pri);
   1921 	BCM_PACK_U32(buf, var->policer_id);
   1922 	BCM_PACK_U16(buf, var->vpn);
   1923 	BCM_PACK_U32(buf, var->egress_label.flags);
   1924 	BCM_PACK_U32(buf, var->egress_label.label);
   1925 	BCM_PACK_U32(buf, var->egress_label.qos_map_id);
   1926 	BCM_PACK_U8(buf, var->egress_label.exp);
   1927 	BCM_PACK_U8(buf, var->egress_label.ttl);
   1928 	BCM_PACK_U8(buf, var->egress_label.pkt_pri);
   1929 	BCM_PACK_U8(buf, var->egress_label.pkt_cfi);
   1930 	BCM_PACK_U32(buf, var->egress_label.tunnel_id);
   1931 	BCM_PACK_U32(buf, var->egress_label.l3_intf_id);
   1932 	BCM_PACK_U32(buf, var->egress_label.action);
   1933 	BCM_PACK_U32(buf, var->egress_label.ecn_map_id);
   1934 	BCM_PACK_U32(buf, var->egress_label.int_cn_map_id);
   1935 	BCM_PACK_U32(buf, var->egress_label.egress_failover_id);
   1936 	BCM_PACK_U32(buf, var->egress_label.egress_failover_if_id);
   1937 	BCM_PACK_U32(buf, var->egress_label.outlif_counting_profile);
   1938 	BCM_PACK_U32(buf, var->egress_label.spl_label_push_type);
   1939 	BCM_PACK_U32(buf, var->egress_label.encap_access);
   1940 	BCM_PACK_U32(buf, var->egress_label.egress_qos_model.egress_qos);
   1941 	BCM_PACK_U32(buf, var->egress_label.egress_qos_model.egress_ttl);
   1942 	BCM_PACK_U8(buf, var->egress_label.egress_qos_model.ecn_eligible);
   1943 	BCM_PACK_U32(buf, var->egress_if);
   1944 	BCM_PACK_U32(buf, var->ingress_if);
   1945 	BCM_PACK_U32(buf, var->mtu);
   1946 	BCM_PACK_U32(buf, var->qos_map_id);
   1947 	BCM_PACK_U32(buf, var->failover_id);
   1948 	BCM_PACK_U32(buf, var->tunnel_id);
   1949 	BCM_PACK_U32(buf, var->failover_tunnel_id);
   1950 	BCM_PACK_U32(buf, var->tunnel_if);
   1951 	BCM_PACK_U32(buf, var->egress_port);
   1952 	BCM_PACK_U16(buf, var->oam_global_context_id);
   1953 	BCM_PACK_U32(buf, var->class_id);
   1954 	BCM_PACK_U32(buf, var->inlif_counting_profile);
   1955 	BCM_PACK_U32(buf, var->ecn_map_id);
   1956 	BCM_PACK_U32(buf, var->tunnel_term_ecn_map_id);
   1957 	return buf;
   1958 }
   1959 
   1960 uint8 *
   1961 _bcm_unpack_compat657_mpls_tunnel_switch(uint8 *buf, bcm_compat657_mpls_tunnel_switch_t *var)
   1962 {
   1963 	BCM_UNPACK_U32(buf, var->flags);
   1964 	BCM_UNPACK_U32(buf, var->label);
   1965 	BCM_UNPACK_U32(buf, var->second_label);
   1966 	BCM_UNPACK_U32(buf, var->port);
   1967 	BCM_UNPACK_U32(buf, var->action);
   1968 	BCM_UNPACK_U32(buf, var->action_if_bos);
   1969 	BCM_UNPACK_U32(buf, var->action_if_not_bos);
   1970 	BCM_UNPACK_U32(buf, var->mc_group);
   1971 	BCM_UNPACK_U32(buf, var->exp_map);
   1972 	BCM_UNPACK_U32(buf, var->int_pri);
   1973 	BCM_UNPACK_U32(buf, var->policer_id);
   1974 	BCM_UNPACK_U16(buf, var->vpn);
   1975 	BCM_UNPACK_U32(buf, var->egress_label.flags);
   1976 	BCM_UNPACK_U32(buf, var->egress_label.label);
   1977 	BCM_UNPACK_U32(buf, var->egress_label.qos_map_id);
   1978 	BCM_UNPACK_U8(buf, var->egress_label.exp);
   1979 	BCM_UNPACK_U8(buf, var->egress_label.ttl);
   1980 	BCM_UNPACK_U8(buf, var->egress_label.pkt_pri);
   1981 	BCM_UNPACK_U8(buf, var->egress_label.pkt_cfi);
   1982 	BCM_UNPACK_U32(buf, var->egress_label.tunnel_id);
   1983 	BCM_UNPACK_U32(buf, var->egress_label.l3_intf_id);
   1984 	BCM_UNPACK_U32(buf, var->egress_label.action);
   1985 	BCM_UNPACK_U32(buf, var->egress_label.ecn_map_id);
   1986 	BCM_UNPACK_U32(buf, var->egress_label.int_cn_map_id);
   1987 	BCM_UNPACK_U32(buf, var->egress_label.egress_failover_id);
   1988 	BCM_UNPACK_U32(buf, var->egress_label.egress_failover_if_id);
   1989 	BCM_UNPACK_U32(buf, var->egress_label.outlif_counting_profile);
   1990 	BCM_UNPACK_U32(buf, var->egress_label.spl_label_push_type);
   1991 	BCM_UNPACK_U32(buf, var->egress_label.encap_access);
   1992 	BCM_UNPACK_U32(buf, var->egress_label.egress_qos_model.egress_qos);
   1993 	BCM_UNPACK_U32(buf, var->egress_label.egress_qos_model.egress_ttl);
   1994 	BCM_UNPACK_U8(buf, var->egress_label.egress_qos_model.ecn_eligible);
   1995 	BCM_UNPACK_U32(buf, var->egress_if);
   1996 	BCM_UNPACK_U32(buf, var->ingress_if);
   1997 	BCM_UNPACK_U32(buf, var->mtu);
   1998 	BCM_UNPACK_U32(buf, var->qos_map_id);
   1999 	BCM_UNPACK_U32(buf, var->failover_id);
   2000 	BCM_UNPACK_U32(buf, var->tunnel_id);
   2001 	BCM_UNPACK_U32(buf, var->failover_tunnel_id);
   2002 	BCM_UNPACK_U32(buf, var->tunnel_if);
   2003 	BCM_UNPACK_U32(buf, var->egress_port);
   2004 	BCM_UNPACK_U16(buf, var->oam_global_context_id);
   2005 	BCM_UNPACK_U32(buf, var->class_id);
   2006 	BCM_UNPACK_U32(buf, var->inlif_counting_profile);
   2007 	BCM_UNPACK_U32(buf, var->ecn_map_id);
   2008 	BCM_UNPACK_U32(buf, var->tunnel_term_ecn_map_id);
   2009 	return buf;
   2010 }
   2011 
   2012 #endif	/* INCLUDE_L3 */
   2013 
   2014 uint8 *
   2015 _bcm_pack_compat657_port_e2efc_remote_port_config(uint8 *buf, bcm_compat657_port_e2efc_remote_port_config_t *var)
   2016 {
   2017 	BCM_PACK_U32(buf, var->remote_module);
   2018 	BCM_PACK_U32(buf, var->remote_port);
   2019 	BCM_PACK_U32(buf, var->xoff_threshold_bytes);
   2020 	BCM_PACK_U32(buf, var->xoff_threshold_packets);
   2021 	BCM_PACK_U32(buf, var->xon_threshold_bytes);
   2022 	BCM_PACK_U32(buf, var->xon_threshold_packets);
   2023 	BCM_PACK_U32(buf, var->drop_threshold_bytes);
   2024 	BCM_PACK_U32(buf, var->drop_threshold_packets);
   2025 	return buf;
   2026 }
   2027 
   2028 uint8 *
   2029 _bcm_unpack_compat657_port_e2efc_remote_port_config(uint8 *buf, bcm_compat657_port_e2efc_remote_port_config_t *var)
   2030 {
   2031 	BCM_UNPACK_U32(buf, var->remote_module);
   2032 	BCM_UNPACK_U32(buf, var->remote_port);
   2033 	BCM_UNPACK_U32(buf, var->xoff_threshold_bytes);
   2034 	BCM_UNPACK_U32(buf, var->xoff_threshold_packets);
   2035 	BCM_UNPACK_U32(buf, var->xon_threshold_bytes);
   2036 	BCM_UNPACK_U32(buf, var->xon_threshold_packets);
   2037 	BCM_UNPACK_U32(buf, var->drop_threshold_bytes);
   2038 	BCM_UNPACK_U32(buf, var->drop_threshold_packets);
   2039 	return buf;
   2040 }
   2041 
   2042 #ifdef	INCLUDE_L3
   2043 
   2044 uint8 *
   2045 _bcm_pack_compat658_ecn_map(uint8 *buf, bcm_compat658_ecn_map_t *var)
   2046 {
   2047 	BCM_PACK_U32(buf, var->action_flags);
   2048 	BCM_PACK_U32(buf, var->int_cn);
   2049 	BCM_PACK_U8(buf, var->inner_ecn);
   2050 	BCM_PACK_U8(buf, var->ecn);
   2051 	BCM_PACK_U8(buf, var->exp);
   2052 	BCM_PACK_U8(buf, var->new_ecn);
   2053 	BCM_PACK_U8(buf, var->new_exp);
   2054 	return buf;
   2055 }
   2056 
   2057 uint8 *
   2058 _bcm_unpack_compat658_ecn_map(uint8 *buf, bcm_compat658_ecn_map_t *var)
   2059 {
   2060 	BCM_UNPACK_U32(buf, var->action_flags);
   2061 	BCM_UNPACK_U32(buf, var->int_cn);
   2062 	BCM_UNPACK_U8(buf, var->inner_ecn);
   2063 	BCM_UNPACK_U8(buf, var->ecn);
   2064 	BCM_UNPACK_U8(buf, var->exp);
   2065 	BCM_UNPACK_U8(buf, var->new_ecn);
   2066 	BCM_UNPACK_U8(buf, var->new_exp);
   2067 	return buf;
   2068 }
   2069 
   2070 #endif	/* INCLUDE_L3 */
   2071 
   2072 uint8 *
   2073 _bcm_pack_compat659_cosq_gport_discard(uint8 *buf, bcm_compat659_cosq_gport_discard_t *var)
   2074 {
   2075 	BCM_PACK_U32(buf, var->flags);
   2076 	BCM_PACK_U32(buf, var->min_thresh);
   2077 	BCM_PACK_U32(buf, var->max_thresh);
   2078 	BCM_PACK_U32(buf, var->drop_probability);
   2079 	BCM_PACK_U32(buf, var->gain);
   2080 	BCM_PACK_U32(buf, var->ecn_thresh);
   2081 	BCM_PACK_U32(buf, var->refresh_time);
   2082 	return buf;
   2083 }
   2084 
   2085 uint8 *
   2086 _bcm_unpack_compat659_cosq_gport_discard(uint8 *buf, bcm_compat659_cosq_gport_discard_t *var)
   2087 {
   2088 	BCM_UNPACK_U32(buf, var->flags);
   2089 	BCM_UNPACK_U32(buf, var->min_thresh);
   2090 	BCM_UNPACK_U32(buf, var->max_thresh);
   2091 	BCM_UNPACK_U32(buf, var->drop_probability);
   2092 	BCM_UNPACK_U32(buf, var->gain);
   2093 	BCM_UNPACK_U32(buf, var->ecn_thresh);
   2094 	BCM_UNPACK_U32(buf, var->refresh_time);
   2095 	return buf;
   2096 }
   2097 
   2098 uint8 *
   2099 _bcm_pack_compat659_vlan_control_vlan(uint8 *buf, bcm_compat659_vlan_control_vlan_t *var)
   2100 {
   2101 	BCM_PACK_U32(buf, var->vrf);
   2102 	BCM_PACK_U16(buf, var->forwarding_vlan);
   2103 	BCM_PACK_U32(buf, var->ingress_if);
   2104 	BCM_PACK_U16(buf, var->outer_tpid);
   2105 	BCM_PACK_U32(buf, var->flags);
   2106 	BCM_PACK_U32(buf, var->ip6_mcast_flood_mode);
   2107 	BCM_PACK_U32(buf, var->ip4_mcast_flood_mode);
   2108 	BCM_PACK_U32(buf, var->l2_mcast_flood_mode);
   2109 	BCM_PACK_U32(buf, var->if_class);
   2110 	BCM_PACK_U32(buf, var->forwarding_mode);
   2111 	BCM_PACK_U32(buf, var->urpf_mode);
   2112 	BCM_PACK_U32(buf, var->cosq);
   2113 	BCM_PACK_U32(buf, var->qos_map_id);
   2114 	BCM_PACK_U32(buf, var->distribution_class);
   2115 	BCM_PACK_U32(buf, var->broadcast_group);
   2116 	BCM_PACK_U32(buf, var->unknown_multicast_group);
   2117 	BCM_PACK_U32(buf, var->unknown_unicast_group);
   2118 	BCM_PACK_U32(buf, var->trill_nonunicast_group);
   2119 	BCM_PACK_U32(buf, var->source_trill_name);
   2120 	BCM_PACK_U32(buf, var->trunk_index);
   2121 	BCM_PACK_U32(buf, var->protocol_pkt.mmrp_action);
   2122 	BCM_PACK_U32(buf, var->protocol_pkt.srp_action);
   2123 	BCM_PACK_U32(buf, var->protocol_pkt.arp_reply_action);
   2124 	BCM_PACK_U32(buf, var->protocol_pkt.arp_request_action);
   2125 	BCM_PACK_U32(buf, var->protocol_pkt.nd_action);
   2126 	BCM_PACK_U32(buf, var->protocol_pkt.dhcp_action);
   2127 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_report_leave_action);
   2128 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_query_action);
   2129 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_unknown_msg_action);
   2130 	BCM_PACK_U32(buf, var->protocol_pkt.mld_report_done_action);
   2131 	BCM_PACK_U32(buf, var->protocol_pkt.mld_query_action);
   2132 	BCM_PACK_U32(buf, var->protocol_pkt.ip4_rsvd_mc_action);
   2133 	BCM_PACK_U32(buf, var->protocol_pkt.ip6_rsvd_mc_action);
   2134 	BCM_PACK_U32(buf, var->protocol_pkt.ip4_mc_router_adv_action);
   2135 	BCM_PACK_U32(buf, var->protocol_pkt.ip6_mc_router_adv_action);
   2136 	BCM_PACK_U32(buf, var->protocol_pkt.flood_action_according_to_pfm);
   2137 	BCM_PACK_U32(buf, var->nat_realm_id);
   2138 	BCM_PACK_U32(buf, var->l3_if_class);
   2139 	BCM_PACK_U32(buf, var->vp_mc_ctrl);
   2140 	BCM_PACK_U32(buf, var->aging_cycles);
   2141 	BCM_PACK_U32(buf, var->entropy_id);
   2142 	BCM_PACK_U16(buf, var->vpn);
   2143 	BCM_PACK_U16(buf, var->egress_vlan);
   2144 	BCM_PACK_U32(buf, var->learn_flags);
   2145 	BCM_PACK_U32(buf, var->sr_flags);
   2146 	return buf;
   2147 }
   2148 
   2149 uint8 *
   2150 _bcm_unpack_compat659_vlan_control_vlan(uint8 *buf, bcm_compat659_vlan_control_vlan_t *var)
   2151 {
   2152 	BCM_UNPACK_U32(buf, var->vrf);
   2153 	BCM_UNPACK_U16(buf, var->forwarding_vlan);
   2154 	BCM_UNPACK_U32(buf, var->ingress_if);
   2155 	BCM_UNPACK_U16(buf, var->outer_tpid);
   2156 	BCM_UNPACK_U32(buf, var->flags);
   2157 	BCM_UNPACK_U32(buf, var->ip6_mcast_flood_mode);
   2158 	BCM_UNPACK_U32(buf, var->ip4_mcast_flood_mode);
   2159 	BCM_UNPACK_U32(buf, var->l2_mcast_flood_mode);
   2160 	BCM_UNPACK_U32(buf, var->if_class);
   2161 	BCM_UNPACK_U32(buf, var->forwarding_mode);
   2162 	BCM_UNPACK_U32(buf, var->urpf_mode);
   2163 	BCM_UNPACK_U32(buf, var->cosq);
   2164 	BCM_UNPACK_U32(buf, var->qos_map_id);
   2165 	BCM_UNPACK_U32(buf, var->distribution_class);
   2166 	BCM_UNPACK_U32(buf, var->broadcast_group);
   2167 	BCM_UNPACK_U32(buf, var->unknown_multicast_group);
   2168 	BCM_UNPACK_U32(buf, var->unknown_unicast_group);
   2169 	BCM_UNPACK_U32(buf, var->trill_nonunicast_group);
   2170 	BCM_UNPACK_U32(buf, var->source_trill_name);
   2171 	BCM_UNPACK_U32(buf, var->trunk_index);
   2172 	BCM_UNPACK_U32(buf, var->protocol_pkt.mmrp_action);
   2173 	BCM_UNPACK_U32(buf, var->protocol_pkt.srp_action);
   2174 	BCM_UNPACK_U32(buf, var->protocol_pkt.arp_reply_action);
   2175 	BCM_UNPACK_U32(buf, var->protocol_pkt.arp_request_action);
   2176 	BCM_UNPACK_U32(buf, var->protocol_pkt.nd_action);
   2177 	BCM_UNPACK_U32(buf, var->protocol_pkt.dhcp_action);
   2178 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_report_leave_action);
   2179 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_query_action);
   2180 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_unknown_msg_action);
   2181 	BCM_UNPACK_U32(buf, var->protocol_pkt.mld_report_done_action);
   2182 	BCM_UNPACK_U32(buf, var->protocol_pkt.mld_query_action);
   2183 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip4_rsvd_mc_action);
   2184 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip6_rsvd_mc_action);
   2185 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip4_mc_router_adv_action);
   2186 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip6_mc_router_adv_action);
   2187 	BCM_UNPACK_U32(buf, var->protocol_pkt.flood_action_according_to_pfm);
   2188 	BCM_UNPACK_U32(buf, var->nat_realm_id);
   2189 	BCM_UNPACK_U32(buf, var->l3_if_class);
   2190 	BCM_UNPACK_U32(buf, var->vp_mc_ctrl);
   2191 	BCM_UNPACK_U32(buf, var->aging_cycles);
   2192 	BCM_UNPACK_U32(buf, var->entropy_id);
   2193 	BCM_UNPACK_U16(buf, var->vpn);
   2194 	BCM_UNPACK_U16(buf, var->egress_vlan);
   2195 	BCM_UNPACK_U32(buf, var->learn_flags);
   2196 	BCM_UNPACK_U32(buf, var->sr_flags);
   2197 	return buf;
   2198 }
   2199 
   2200 uint8 *
   2201 _bcm_pack_cos_pon_link_sla(uint8 *buf, bcm_cos_pon_link_sla_t *var)
   2202 {
   2203 	BCM_PACK_U32(buf, var->option);
   2204 	BCM_PACK_U32(buf, var->polling_level);
   2205 	BCM_PACK_U32(buf, var->tdm_rate);
   2206 	BCM_PACK_U32(buf, var->tdm_grant_length);
   2207 	return buf;
   2208 }
   2209 
   2210 uint8 *
   2211 _bcm_unpack_cos_pon_link_sla(uint8 *buf, bcm_cos_pon_link_sla_t *var)
   2212 {
   2213 	BCM_UNPACK_U32(buf, var->option);
   2214 	BCM_UNPACK_U32(buf, var->polling_level);
   2215 	BCM_UNPACK_U32(buf, var->tdm_rate);
   2216 	BCM_UNPACK_U32(buf, var->tdm_grant_length);
   2217 	return buf;
   2218 }
   2219 
   2220 uint8 *
   2221 _bcm_pack_cosq_allocation_entity(uint8 *buf, bcm_cosq_allocation_entity_t *var)
   2222 {
   2223 	BCM_PACK_U32(buf, var->gport);
   2224 	BCM_PACK_U32(buf, var->color);
   2225 	BCM_PACK_U8(buf, var->pool_id);
   2226 	BCM_PACK_U8(buf, var->is_ocb_only);
   2227 	return buf;
   2228 }
   2229 
   2230 uint8 *
   2231 _bcm_unpack_cosq_allocation_entity(uint8 *buf, bcm_cosq_allocation_entity_t *var)
   2232 {
   2233 	BCM_UNPACK_U32(buf, var->gport);
   2234 	BCM_UNPACK_U32(buf, var->color);
   2235 	BCM_UNPACK_U8(buf, var->pool_id);
   2236 	BCM_UNPACK_U8(buf, var->is_ocb_only);
   2237 	return buf;
   2238 }
   2239 
   2240 uint8 *
   2241 _bcm_pack_cosq_bandwidth_fabric_adjust_key(uint8 *buf, bcm_cosq_bandwidth_fabric_adjust_key_t *var)
   2242 {
   2243 	BCM_PACK_U32(buf, var->core);
   2244 	BCM_PACK_U32(buf, var->num_links);
   2245 	BCM_PACK_U32(buf, var->rci_level);
   2246 	return buf;
   2247 }
   2248 
   2249 uint8 *
   2250 _bcm_unpack_cosq_bandwidth_fabric_adjust_key(uint8 *buf, bcm_cosq_bandwidth_fabric_adjust_key_t *var)
   2251 {
   2252 	BCM_UNPACK_U32(buf, var->core);
   2253 	BCM_UNPACK_U32(buf, var->num_links);
   2254 	BCM_UNPACK_U32(buf, var->rci_level);
   2255 	return buf;
   2256 }
   2257 
   2258 uint8 *
   2259 _bcm_pack_cosq_classifier(uint8 *buf, bcm_cosq_classifier_t *var)
   2260 {
   2261 	BCM_PACK_U32(buf, var->flags);
   2262 	BCM_PACK_U16(buf, var->vlan);
   2263 	{
   2264 		int _i;
   2265 
   2266 		for (_i = 0; _i < 6; _i++) {
   2267 			BCM_PACK_U8(buf, var->mac[_i]);
   2268 		}
   2269 	}
   2270 	BCM_PACK_U32(buf, var->vrf);
   2271 	BCM_PACK_U32(buf, var->ip_addr);
   2272 	{
   2273 		int _i;
   2274 
   2275 		for (_i = 0; _i < 16; _i++) {
   2276 			BCM_PACK_U8(buf, var->ip6_addr[_i]);
   2277 		}
   2278 	}
   2279 	BCM_PACK_U32(buf, var->gport);
   2280 	BCM_PACK_U32(buf, var->vfi_index);
   2281 	BCM_PACK_U32(buf, var->egress_if);
   2282 	return buf;
   2283 }
   2284 
   2285 uint8 *
   2286 _bcm_unpack_cosq_classifier(uint8 *buf, bcm_cosq_classifier_t *var)
   2287 {
   2288 	BCM_UNPACK_U32(buf, var->flags);
   2289 	BCM_UNPACK_U16(buf, var->vlan);
   2290 	{
   2291 		int _i;
   2292 
   2293 		for (_i = 0; _i < 6; _i++) {
   2294 			BCM_UNPACK_U8(buf, var->mac[_i]);
   2295 		}
   2296 	}
   2297 	BCM_UNPACK_U32(buf, var->vrf);
   2298 	BCM_UNPACK_U32(buf, var->ip_addr);
   2299 	{
   2300 		int _i;
   2301 
   2302 		for (_i = 0; _i < 16; _i++) {
   2303 			BCM_UNPACK_U8(buf, var->ip6_addr[_i]);
   2304 		}
   2305 	}
   2306 	BCM_UNPACK_U32(buf, var->gport);
   2307 	BCM_UNPACK_U32(buf, var->vfi_index);
   2308 	BCM_UNPACK_U32(buf, var->egress_if);
   2309 	return buf;
   2310 }
   2311 
   2312 uint8 *
   2313 _bcm_pack_cosq_congestion_info(uint8 *buf, bcm_cosq_congestion_info_t *var)
   2314 {
   2315 	BCM_PACK_U32(buf, var->fabric_modid);
   2316 	BCM_PACK_U32(buf, var->fabric_port);
   2317 	BCM_PACK_U32(buf, var->dest_modid);
   2318 	BCM_PACK_U32(buf, var->dest_port);
   2319 	return buf;
   2320 }
   2321 
   2322 uint8 *
   2323 _bcm_unpack_cosq_congestion_info(uint8 *buf, bcm_cosq_congestion_info_t *var)
   2324 {
   2325 	BCM_UNPACK_U32(buf, var->fabric_modid);
   2326 	BCM_UNPACK_U32(buf, var->fabric_port);
   2327 	BCM_UNPACK_U32(buf, var->dest_modid);
   2328 	BCM_UNPACK_U32(buf, var->dest_port);
   2329 	return buf;
   2330 }
   2331 
   2332 uint8 *
   2333 _bcm_pack_cosq_congestion_mapping_info(uint8 *buf, bcm_cosq_congestion_mapping_info_t *var)
   2334 {
   2335 	{
   2336 		int _i;
   2337 
   2338 		for (_i = 0; _i < 8; _i++) {
   2339 			BCM_PACK_U32(buf, var->flow_control_bits[_i]);
   2340 		}
   2341 	}
   2342 	return buf;
   2343 }
   2344 
   2345 uint8 *
   2346 _bcm_unpack_cosq_congestion_mapping_info(uint8 *buf, bcm_cosq_congestion_mapping_info_t *var)
   2347 {
   2348 	{
   2349 		int _i;
   2350 
   2351 		for (_i = 0; _i < 8; _i++) {
   2352 			BCM_UNPACK_U32(buf, var->flow_control_bits[_i]);
   2353 		}
   2354 	}
   2355 	return buf;
   2356 }
   2357 
   2358 uint8 *
   2359 _bcm_pack_cosq_control_data(uint8 *buf, bcm_cosq_control_data_t *var)
   2360 {
   2361 	BCM_PACK_U32(buf, var->type);
   2362 	BCM_PACK_U32(buf, var->arg);
   2363 	return buf;
   2364 }
   2365 
   2366 uint8 *
   2367 _bcm_unpack_cosq_control_data(uint8 *buf, bcm_cosq_control_data_t *var)
   2368 {
   2369 	BCM_UNPACK_U32(buf, var->type);
   2370 	BCM_UNPACK_U32(buf, var->arg);
   2371 	return buf;
   2372 }
   2373 
   2374 uint8 *
   2375 _bcm_pack_cosq_delay_tolerance_preset_attr(uint8 *buf, bcm_cosq_delay_tolerance_preset_attr_t *var)
   2376 {
   2377 	BCM_PACK_U32(buf, var->rate);
   2378 	BCM_PACK_U32(buf, var->credit_size);
   2379 	BCM_PACK_U32(buf, var->flags);
   2380 	return buf;
   2381 }
   2382 
   2383 uint8 *
   2384 _bcm_unpack_cosq_delay_tolerance_preset_attr(uint8 *buf, bcm_cosq_delay_tolerance_preset_attr_t *var)
   2385 {
   2386 	BCM_UNPACK_U32(buf, var->rate);
   2387 	BCM_UNPACK_U32(buf, var->credit_size);
   2388 	BCM_UNPACK_U32(buf, var->flags);
   2389 	return buf;
   2390 }
   2391 
   2392 uint8 *
   2393 _bcm_pack_cosq_delay_tolerance(uint8 *buf, bcm_cosq_delay_tolerance_t *var)
   2394 {
   2395 	BCM_PACK_U32(buf, var->credit_request_watchdog_status_msg_gen);
   2396 	BCM_PACK_U32(buf, var->credit_request_watchdog_delete_queue_thresh);
   2397 	BCM_PACK_U32(buf, var->credit_request_hungry_off_to_slow_thresh);
   2398 	BCM_PACK_U32(buf, var->credit_request_hungry_off_to_normal_thresh);
   2399 	BCM_PACK_U32(buf, var->credit_request_hungry_slow_to_normal_thresh);
   2400 	BCM_PACK_U32(buf, var->credit_request_hungry_normal_to_slow_thresh);
   2401 	BCM_PACK_U32(buf, var->credit_request_hungry_multiplier);
   2402 	BCM_PACK_U32(buf, var->credit_request_satisfied_backoff_enter_thresh);
   2403 	BCM_PACK_U32(buf, var->credit_request_satisfied_backoff_exit_thresh);
   2404 	BCM_PACK_U32(buf, var->credit_request_satisfied_backlog_enter_thresh);
   2405 	BCM_PACK_U32(buf, var->credit_request_satisfied_backlog_exit_thresh);
   2406 	BCM_PACK_U32(buf, var->credit_request_satisfied_backslow_enter_thresh);
   2407 	BCM_PACK_U32(buf, var->credit_request_satisfied_backslow_exit_thresh);
   2408 	BCM_PACK_U32(buf, var->credit_request_satisfied_empty_queue_thresh);
   2409 	BCM_PACK_U32(buf, var->credit_request_satisfied_empty_queue_max_balance_thresh);
   2410 	BCM_PACK_U32(buf, var->credit_request_satisfied_empty_queue_exceed_thresh);
   2411 	BCM_PACK_U32(buf, var->flags);
   2412 	{
   2413 		int _i;
   2414 
   2415 		for (_i = 0; _i < 7; _i++) {
   2416 			BCM_PACK_U32(buf, var->slow_level_thresh_up[_i]);
   2417 		}
   2418 	}
   2419 	{
   2420 		int _i;
   2421 
   2422 		for (_i = 0; _i < 7; _i++) {
   2423 			BCM_PACK_U32(buf, var->slow_level_thresh_down[_i]);
   2424 		}
   2425 	}
   2426 	BCM_PACK_U32(buf, var->bandwidth_level);
   2427 	return buf;
   2428 }
   2429 
   2430 uint8 *
   2431 _bcm_unpack_cosq_delay_tolerance(uint8 *buf, bcm_cosq_delay_tolerance_t *var)
   2432 {
   2433 	BCM_UNPACK_U32(buf, var->credit_request_watchdog_status_msg_gen);
   2434 	BCM_UNPACK_U32(buf, var->credit_request_watchdog_delete_queue_thresh);
   2435 	BCM_UNPACK_U32(buf, var->credit_request_hungry_off_to_slow_thresh);
   2436 	BCM_UNPACK_U32(buf, var->credit_request_hungry_off_to_normal_thresh);
   2437 	BCM_UNPACK_U32(buf, var->credit_request_hungry_slow_to_normal_thresh);
   2438 	BCM_UNPACK_U32(buf, var->credit_request_hungry_normal_to_slow_thresh);
   2439 	BCM_UNPACK_U32(buf, var->credit_request_hungry_multiplier);
   2440 	BCM_UNPACK_U32(buf, var->credit_request_satisfied_backoff_enter_thresh);
   2441 	BCM_UNPACK_U32(buf, var->credit_request_satisfied_backoff_exit_thresh);
   2442 	BCM_UNPACK_U32(buf, var->credit_request_satisfied_backlog_enter_thresh);
   2443 	BCM_UNPACK_U32(buf, var->credit_request_satisfied_backlog_exit_thresh);
   2444 	BCM_UNPACK_U32(buf, var->credit_request_satisfied_backslow_enter_thresh);
   2445 	BCM_UNPACK_U32(buf, var->credit_request_satisfied_backslow_exit_thresh);
   2446 	BCM_UNPACK_U32(buf, var->credit_request_satisfied_empty_queue_thresh);
   2447 	BCM_UNPACK_U32(buf, var->credit_request_satisfied_empty_queue_max_balance_thresh);
   2448 	BCM_UNPACK_U32(buf, var->credit_request_satisfied_empty_queue_exceed_thresh);
   2449 	BCM_UNPACK_U32(buf, var->flags);
   2450 	{
   2451 		int _i;
   2452 
   2453 		for (_i = 0; _i < 7; _i++) {
   2454 			BCM_UNPACK_U32(buf, var->slow_level_thresh_up[_i]);
   2455 		}
   2456 	}
   2457 	{
   2458 		int _i;
   2459 
   2460 		for (_i = 0; _i < 7; _i++) {
   2461 			BCM_UNPACK_U32(buf, var->slow_level_thresh_down[_i]);
   2462 		}
   2463 	}
   2464 	BCM_UNPACK_U32(buf, var->bandwidth_level);
   2465 	return buf;
   2466 }
   2467 
   2468 uint8 *
   2469 _bcm_pack_cosq_discard_rule(uint8 *buf, bcm_cosq_discard_rule_t *var)
   2470 {
   2471 	BCM_PACK_U32(buf, var->egress_pool_congestion_state);
   2472 	BCM_PACK_U32(buf, var->queue_min_congestion_state);
   2473 	BCM_PACK_U32(buf, var->action);
   2474 	return buf;
   2475 }
   2476 
   2477 uint8 *
   2478 _bcm_unpack_cosq_discard_rule(uint8 *buf, bcm_cosq_discard_rule_t *var)
   2479 {
   2480 	BCM_UNPACK_U32(buf, var->egress_pool_congestion_state);
   2481 	BCM_UNPACK_U32(buf, var->queue_min_congestion_state);
   2482 	BCM_UNPACK_U32(buf, var->action);
   2483 	return buf;
   2484 }
   2485 
   2486 uint8 *
   2487 _bcm_pack_cosq_egress_multicast_config(uint8 *buf, bcm_cosq_egress_multicast_config_t *var)
   2488 {
   2489 	BCM_PACK_U32(buf, var->scheduled_dp);
   2490 	BCM_PACK_U32(buf, var->priority);
   2491 	BCM_PACK_U32(buf, var->unscheduled_se);
   2492 	BCM_PACK_U32(buf, var->unscheduled_sp);
   2493 	return buf;
   2494 }
   2495 
   2496 uint8 *
   2497 _bcm_unpack_cosq_egress_multicast_config(uint8 *buf, bcm_cosq_egress_multicast_config_t *var)
   2498 {
   2499 	BCM_UNPACK_U32(buf, var->scheduled_dp);
   2500 	BCM_UNPACK_U32(buf, var->priority);
   2501 	BCM_UNPACK_U32(buf, var->unscheduled_se);
   2502 	BCM_UNPACK_U32(buf, var->unscheduled_sp);
   2503 	return buf;
   2504 }
   2505 
   2506 uint8 *
   2507 _bcm_pack_cosq_fadt_info(uint8 *buf, bcm_cosq_fadt_info_t *var)
   2508 {
   2509 	BCM_PACK_U32(buf, var->gport);
   2510 	BCM_PACK_U32(buf, var->cosq);
   2511 	BCM_PACK_U32(buf, var->thresh_type);
   2512 	BCM_PACK_U32(buf, var->resource_type);
   2513 	return buf;
   2514 }
   2515 
   2516 uint8 *
   2517 _bcm_unpack_cosq_fadt_info(uint8 *buf, bcm_cosq_fadt_info_t *var)
   2518 {
   2519 	BCM_UNPACK_U32(buf, var->gport);
   2520 	BCM_UNPACK_U32(buf, var->cosq);
   2521 	BCM_UNPACK_U32(buf, var->thresh_type);
   2522 	BCM_UNPACK_U32(buf, var->resource_type);
   2523 	return buf;
   2524 }
   2525 
   2526 uint8 *
   2527 _bcm_pack_cosq_fadt_threshold(uint8 *buf, bcm_cosq_fadt_threshold_t *var)
   2528 {
   2529 	BCM_PACK_U32(buf, var->thresh_min);
   2530 	BCM_PACK_U32(buf, var->thresh_max);
   2531 	BCM_PACK_U32(buf, var->alpha);
   2532 	BCM_PACK_U32(buf, var->resource_range_min);
   2533 	BCM_PACK_U32(buf, var->resource_range_max);
   2534 	return buf;
   2535 }
   2536 
   2537 uint8 *
   2538 _bcm_unpack_cosq_fadt_threshold(uint8 *buf, bcm_cosq_fadt_threshold_t *var)
   2539 {
   2540 	BCM_UNPACK_U32(buf, var->thresh_min);
   2541 	BCM_UNPACK_U32(buf, var->thresh_max);
   2542 	BCM_UNPACK_U32(buf, var->alpha);
   2543 	BCM_UNPACK_U32(buf, var->resource_range_min);
   2544 	BCM_UNPACK_U32(buf, var->resource_range_max);
   2545 	return buf;
   2546 }
   2547 
   2548 uint8 *
   2549 _bcm_pack_cosq_fc_endpoint(uint8 *buf, bcm_cosq_fc_endpoint_t *var)
   2550 {
   2551 	BCM_PACK_U32(buf, var->flags);
   2552 	BCM_PACK_U32(buf, var->port);
   2553 	BCM_PACK_U32(buf, var->cosq);
   2554 	BCM_PACK_U32(buf, var->calender_index);
   2555 	BCM_PACK_U32(buf, var->priority);
   2556 	return buf;
   2557 }
   2558 
   2559 uint8 *
   2560 _bcm_unpack_cosq_fc_endpoint(uint8 *buf, bcm_cosq_fc_endpoint_t *var)
   2561 {
   2562 	BCM_UNPACK_U32(buf, var->flags);
   2563 	BCM_UNPACK_U32(buf, var->port);
   2564 	BCM_UNPACK_U32(buf, var->cosq);
   2565 	BCM_UNPACK_U32(buf, var->calender_index);
   2566 	BCM_UNPACK_U32(buf, var->priority);
   2567 	return buf;
   2568 }
   2569 
   2570 uint8 *
   2571 _bcm_pack_cosq_gport_connection(uint8 *buf, bcm_cosq_gport_connection_t *var)
   2572 {
   2573 	BCM_PACK_U32(buf, var->flags);
   2574 	BCM_PACK_U32(buf, var->remote_modid);
   2575 	BCM_PACK_U32(buf, var->voq);
   2576 	BCM_PACK_U32(buf, var->voq_connector);
   2577 	return buf;
   2578 }
   2579 
   2580 uint8 *
   2581 _bcm_unpack_cosq_gport_connection(uint8 *buf, bcm_cosq_gport_connection_t *var)
   2582 {
   2583 	BCM_UNPACK_U32(buf, var->flags);
   2584 	BCM_UNPACK_U32(buf, var->remote_modid);
   2585 	BCM_UNPACK_U32(buf, var->voq);
   2586 	BCM_UNPACK_U32(buf, var->voq_connector);
   2587 	return buf;
   2588 }
   2589 
   2590 uint8 *
   2591 _bcm_pack_cosq_gport_discard(uint8 *buf, bcm_cosq_gport_discard_t *var)
   2592 {
   2593 	BCM_PACK_U32(buf, var->flags);
   2594 	BCM_PACK_U32(buf, var->min_thresh);
   2595 	BCM_PACK_U32(buf, var->max_thresh);
   2596 	BCM_PACK_U32(buf, var->drop_probability);
   2597 	BCM_PACK_U32(buf, var->gain);
   2598 	BCM_PACK_U32(buf, var->ecn_thresh);
   2599 	BCM_PACK_U32(buf, var->refresh_time);
   2600 	BCM_PACK_U32(buf, var->use_queue_group);
   2601 	BCM_PACK_U32(buf, var->profile_id);
   2602 	return buf;
   2603 }
   2604 
   2605 uint8 *
   2606 _bcm_unpack_cosq_gport_discard(uint8 *buf, bcm_cosq_gport_discard_t *var)
   2607 {
   2608 	BCM_UNPACK_U32(buf, var->flags);
   2609 	BCM_UNPACK_U32(buf, var->min_thresh);
   2610 	BCM_UNPACK_U32(buf, var->max_thresh);
   2611 	BCM_UNPACK_U32(buf, var->drop_probability);
   2612 	BCM_UNPACK_U32(buf, var->gain);
   2613 	BCM_UNPACK_U32(buf, var->ecn_thresh);
   2614 	BCM_UNPACK_U32(buf, var->refresh_time);
   2615 	BCM_UNPACK_U32(buf, var->use_queue_group);
   2616 	BCM_UNPACK_U32(buf, var->profile_id);
   2617 	return buf;
   2618 }
   2619 
   2620 uint8 *
   2621 _bcm_pack_cosq_gport_info_core(uint8 *buf, bcm_cosq_gport_info_core_t *var)
   2622 {
   2623 	BCM_PACK_U32(buf, var->gport_type);
   2624 	BCM_PACK_U32(buf, var->in_gport);
   2625 	BCM_PACK_U32(buf, var->cosq);
   2626 	BCM_PACK_U32(buf, var->flags);
   2627 	return buf;
   2628 }
   2629 
   2630 uint8 *
   2631 _bcm_unpack_cosq_gport_info_core(uint8 *buf, bcm_cosq_gport_info_core_t *var)
   2632 {
   2633 	BCM_UNPACK_U32(buf, var->gport_type);
   2634 	BCM_UNPACK_U32(buf, var->in_gport);
   2635 	BCM_UNPACK_U32(buf, var->cosq);
   2636 	BCM_UNPACK_U32(buf, var->flags);
   2637 	return buf;
   2638 }
   2639 
   2640 uint8 *
   2641 _bcm_pack_cosq_gport_info(uint8 *buf, bcm_cosq_gport_info_t *var)
   2642 {
   2643 	BCM_PACK_U32(buf, var->in_gport);
   2644 	BCM_PACK_U32(buf, var->cosq);
   2645 	BCM_PACK_U32(buf, var->out_gport);
   2646 	return buf;
   2647 }
   2648 
   2649 uint8 *
   2650 _bcm_unpack_cosq_gport_info(uint8 *buf, bcm_cosq_gport_info_t *var)
   2651 {
   2652 	BCM_UNPACK_U32(buf, var->in_gport);
   2653 	BCM_UNPACK_U32(buf, var->cosq);
   2654 	BCM_UNPACK_U32(buf, var->out_gport);
   2655 	return buf;
   2656 }
   2657 
   2658 uint8 *
   2659 _bcm_pack_cosq_gport_level_info(uint8 *buf, bcm_cosq_gport_level_info_t *var)
   2660 {
   2661 	BCM_PACK_U32(buf, var->parent_port_type);
   2662 	BCM_PACK_U32(buf, var->level);
   2663 	return buf;
   2664 }
   2665 
   2666 uint8 *
   2667 _bcm_unpack_cosq_gport_level_info(uint8 *buf, bcm_cosq_gport_level_info_t *var)
   2668 {
   2669 	BCM_UNPACK_U32(buf, var->parent_port_type);
   2670 	BCM_UNPACK_U32(buf, var->level);
   2671 	return buf;
   2672 }
   2673 
   2674 uint8 *
   2675 _bcm_pack_cosq_gport_priority_profile(uint8 *buf, bcm_cosq_gport_priority_profile_t *var)
   2676 {
   2677 	BCM_PACK_U32(buf, var->pri[0]);
   2678 	BCM_PACK_U32(buf, var->pri[1]);
   2679 	return buf;
   2680 }
   2681 
   2682 uint8 *
   2683 _bcm_unpack_cosq_gport_priority_profile(uint8 *buf, bcm_cosq_gport_priority_profile_t *var)
   2684 {
   2685 	BCM_UNPACK_U32(buf, var->pri[0]);
   2686 	BCM_UNPACK_U32(buf, var->pri[1]);
   2687 	return buf;
   2688 }
   2689 
   2690 uint8 *
   2691 _bcm_pack_cosq_gport_size(uint8 *buf, bcm_cosq_gport_size_t *var)
   2692 {
   2693 	BCM_PACK_U32(buf, var->size_min);
   2694 	BCM_PACK_U32(buf, var->size_max);
   2695 	BCM_PACK_U32(buf, var->size_alpha_max);
   2696 	BCM_PACK_U32(buf, var->size_fadt_min);
   2697 	return buf;
   2698 }
   2699 
   2700 uint8 *
   2701 _bcm_unpack_cosq_gport_size(uint8 *buf, bcm_cosq_gport_size_t *var)
   2702 {
   2703 	BCM_UNPACK_U32(buf, var->size_min);
   2704 	BCM_UNPACK_U32(buf, var->size_max);
   2705 	BCM_UNPACK_U32(buf, var->size_alpha_max);
   2706 	BCM_UNPACK_U32(buf, var->size_fadt_min);
   2707 	return buf;
   2708 }
   2709 
   2710 uint8 *
   2711 _bcm_pack_cosq_ingress_drop_control_frame_config(uint8 *buf, bcm_cosq_ingress_drop_control_frame_config_t *var)
   2712 {
   2713 	{
   2714 		uint32 _u32;
   2715 
   2716 		_u32 = COMPILER_64_HI(var->mac_da_val);
   2717 		BCM_PACK_U32(buf, _u32);
   2718 		_u32 = COMPILER_64_LO(var->mac_da_val);
   2719 		BCM_PACK_U32(buf, _u32);
   2720 	}
   2721 	{
   2722 		uint32 _u32;
   2723 
   2724 		_u32 = COMPILER_64_HI(var->mac_da_mask);
   2725 		BCM_PACK_U32(buf, _u32);
   2726 		_u32 = COMPILER_64_LO(var->mac_da_mask);
   2727 		BCM_PACK_U32(buf, _u32);
   2728 	}
   2729 	BCM_PACK_U32(buf, var->ether_type_code);
   2730 	BCM_PACK_U32(buf, var->ether_type_code_mask);
   2731 	return buf;
   2732 }
   2733 
   2734 uint8 *
   2735 _bcm_unpack_cosq_ingress_drop_control_frame_config(uint8 *buf, bcm_cosq_ingress_drop_control_frame_config_t *var)
   2736 {
   2737 	{
   2738 		uint32 _u32h, _u32l;
   2739 
   2740 		BCM_UNPACK_U32(buf, _u32h);
   2741 		BCM_UNPACK_U32(buf, _u32l);
   2742 		COMPILER_64_SET(var->mac_da_val, _u32h, _u32l);
   2743 	}
   2744 	{
   2745 		uint32 _u32h, _u32l;
   2746 
   2747 		BCM_UNPACK_U32(buf, _u32h);
   2748 		BCM_UNPACK_U32(buf, _u32l);
   2749 		COMPILER_64_SET(var->mac_da_mask, _u32h, _u32l);
   2750 	}
   2751 	BCM_UNPACK_U32(buf, var->ether_type_code);
   2752 	BCM_UNPACK_U32(buf, var->ether_type_code_mask);
   2753 	return buf;
   2754 }
   2755 
   2756 uint8 *
   2757 _bcm_pack_cosq_ingress_drop_flex_key_construct_id(uint8 *buf, bcm_cosq_ingress_drop_flex_key_construct_id_t *var)
   2758 {
   2759 	BCM_PACK_U32(buf, var->port);
   2760 	BCM_PACK_U32(buf, var->ether_type_code);
   2761 	return buf;
   2762 }
   2763 
   2764 uint8 *
   2765 _bcm_unpack_cosq_ingress_drop_flex_key_construct_id(uint8 *buf, bcm_cosq_ingress_drop_flex_key_construct_id_t *var)
   2766 {
   2767 	BCM_UNPACK_U32(buf, var->port);
   2768 	BCM_UNPACK_U32(buf, var->ether_type_code);
   2769 	return buf;
   2770 }
   2771 
   2772 uint8 *
   2773 _bcm_pack_cosq_ingress_drop_flex_key_construct(uint8 *buf, bcm_cosq_ingress_drop_flex_key_construct_t *var)
   2774 {
   2775 	BCM_PACK_U32(buf, var->array_size);
   2776 	BCM_PACK_U32(buf, var->offset_array[0]);
   2777 	BCM_PACK_U32(buf, var->offset_array[1]);
   2778 	BCM_PACK_U32(buf, var->offset_array[2]);
   2779 	BCM_PACK_U32(buf, var->offset_array[3]);
   2780 	BCM_PACK_U32(buf, var->offset_base);
   2781 	BCM_PACK_U32(buf, var->ether_type_header_size);
   2782 	return buf;
   2783 }
   2784 
   2785 uint8 *
   2786 _bcm_unpack_cosq_ingress_drop_flex_key_construct(uint8 *buf, bcm_cosq_ingress_drop_flex_key_construct_t *var)
   2787 {
   2788 	BCM_UNPACK_U32(buf, var->array_size);
   2789 	BCM_UNPACK_U32(buf, var->offset_array[0]);
   2790 	BCM_UNPACK_U32(buf, var->offset_array[1]);
   2791 	BCM_UNPACK_U32(buf, var->offset_array[2]);
   2792 	BCM_UNPACK_U32(buf, var->offset_array[3]);
   2793 	BCM_UNPACK_U32(buf, var->offset_base);
   2794 	BCM_UNPACK_U32(buf, var->ether_type_header_size);
   2795 	return buf;
   2796 }
   2797 
   2798 uint8 *
   2799 _bcm_pack_cosq_ingress_drop_flex_key_entry(uint8 *buf, bcm_cosq_ingress_drop_flex_key_entry_t *var)
   2800 {
   2801 	BCM_PACK_U32(buf, var->ether_code.value);
   2802 	BCM_PACK_U32(buf, var->ether_code.mask);
   2803 	BCM_PACK_U32(buf, var->num_key_fields);
   2804 	BCM_PACK_U32(buf, var->key_fields[0].value);
   2805 	BCM_PACK_U32(buf, var->key_fields[0].mask);
   2806 	BCM_PACK_U32(buf, var->key_fields[1].value);
   2807 	BCM_PACK_U32(buf, var->key_fields[1].mask);
   2808 	BCM_PACK_U32(buf, var->key_fields[2].value);
   2809 	BCM_PACK_U32(buf, var->key_fields[2].mask);
   2810 	BCM_PACK_U32(buf, var->key_fields[3].value);
   2811 	BCM_PACK_U32(buf, var->key_fields[3].mask);
   2812 	BCM_PACK_U32(buf, var->priority);
   2813 	return buf;
   2814 }
   2815 
   2816 uint8 *
   2817 _bcm_unpack_cosq_ingress_drop_flex_key_entry(uint8 *buf, bcm_cosq_ingress_drop_flex_key_entry_t *var)
   2818 {
   2819 	BCM_UNPACK_U32(buf, var->ether_code.value);
   2820 	BCM_UNPACK_U32(buf, var->ether_code.mask);
   2821 	BCM_UNPACK_U32(buf, var->num_key_fields);
   2822 	BCM_UNPACK_U32(buf, var->key_fields[0].value);
   2823 	BCM_UNPACK_U32(buf, var->key_fields[0].mask);
   2824 	BCM_UNPACK_U32(buf, var->key_fields[1].value);
   2825 	BCM_UNPACK_U32(buf, var->key_fields[1].mask);
   2826 	BCM_UNPACK_U32(buf, var->key_fields[2].value);
   2827 	BCM_UNPACK_U32(buf, var->key_fields[2].mask);
   2828 	BCM_UNPACK_U32(buf, var->key_fields[3].value);
   2829 	BCM_UNPACK_U32(buf, var->key_fields[3].mask);
   2830 	BCM_UNPACK_U32(buf, var->priority);
   2831 	return buf;
   2832 }
   2833 
   2834 uint8 *
   2835 _bcm_pack_cosq_ingress_port_drop_mpls_special_label_config(uint8 *buf, bcm_cosq_ingress_port_drop_mpls_special_label_config_t *var)
   2836 {
   2837 	BCM_PACK_U32(buf, var->label_value);
   2838 	BCM_PACK_U32(buf, var->priority);
   2839 	BCM_PACK_U32(buf, var->is_tdm);
   2840 	return buf;
   2841 }
   2842 
   2843 uint8 *
   2844 _bcm_unpack_cosq_ingress_port_drop_mpls_special_label_config(uint8 *buf, bcm_cosq_ingress_port_drop_mpls_special_label_config_t *var)
   2845 {
   2846 	BCM_UNPACK_U32(buf, var->label_value);
   2847 	BCM_UNPACK_U32(buf, var->priority);
   2848 	BCM_UNPACK_U32(buf, var->is_tdm);
   2849 	return buf;
   2850 }
   2851 
   2852 uint8 *
   2853 _bcm_pack_cosq_ingress_queue_bundle_gport_config(uint8 *buf, bcm_cosq_ingress_queue_bundle_gport_config_t *var)
   2854 {
   2855 	BCM_PACK_U32(buf, var->flags);
   2856 	BCM_PACK_U32(buf, var->port);
   2857 	BCM_PACK_U32(buf, var->local_core_id);
   2858 	BCM_PACK_U32(buf, var->numq);
   2859 	{
   2860 		int _i;
   2861 
   2862 		for (_i = 0; _i < 8; _i++) {
   2863 			BCM_PACK_U32(buf, var->queue_atrributes[_i].delay_tolerance_level);
   2864 			BCM_PACK_U32(buf, var->queue_atrributes[_i].rate_class);
   2865 		}
   2866 	}
   2867 	return buf;
   2868 }
   2869 
   2870 uint8 *
   2871 _bcm_unpack_cosq_ingress_queue_bundle_gport_config(uint8 *buf, bcm_cosq_ingress_queue_bundle_gport_config_t *var)
   2872 {
   2873 	BCM_UNPACK_U32(buf, var->flags);
   2874 	BCM_UNPACK_U32(buf, var->port);
   2875 	BCM_UNPACK_U32(buf, var->local_core_id);
   2876 	BCM_UNPACK_U32(buf, var->numq);
   2877 	{
   2878 		int _i;
   2879 
   2880 		for (_i = 0; _i < 8; _i++) {
   2881 			BCM_UNPACK_U32(buf, var->queue_atrributes[_i].delay_tolerance_level);
   2882 			BCM_UNPACK_U32(buf, var->queue_atrributes[_i].rate_class);
   2883 		}
   2884 	}
   2885 	return buf;
   2886 }
   2887 
   2888 uint8 *
   2889 _bcm_pack_cosq_mapping(uint8 *buf, bcm_cosq_mapping_t *var)
   2890 {
   2891 	BCM_PACK_U32(buf, var->cosq);
   2892 	BCM_PACK_U32(buf, var->num_ucq);
   2893 	BCM_PACK_U32(buf, var->num_mcq);
   2894 	BCM_PACK_U32(buf, var->strict_priority);
   2895 	BCM_PACK_U32(buf, var->fc_is_uc_only);
   2896 	return buf;
   2897 }
   2898 
   2899 uint8 *
   2900 _bcm_unpack_cosq_mapping(uint8 *buf, bcm_cosq_mapping_t *var)
   2901 {
   2902 	BCM_UNPACK_U32(buf, var->cosq);
   2903 	BCM_UNPACK_U32(buf, var->num_ucq);
   2904 	BCM_UNPACK_U32(buf, var->num_mcq);
   2905 	BCM_UNPACK_U32(buf, var->strict_priority);
   2906 	BCM_UNPACK_U32(buf, var->fc_is_uc_only);
   2907 	return buf;
   2908 }
   2909 
   2910 uint8 *
   2911 _bcm_pack_cosq_max_latency_pkts(uint8 *buf, bcm_cosq_max_latency_pkts_t *var)
   2912 {
   2913 	BCM_PACK_U32(buf, var->dest_gport);
   2914 	BCM_PACK_U32(buf, var->cosq);
   2915 	{
   2916 		uint32 _u32;
   2917 
   2918 		_u32 = COMPILER_64_HI(var->latency);
   2919 		BCM_PACK_U32(buf, _u32);
   2920 		_u32 = COMPILER_64_LO(var->latency);
   2921 		BCM_PACK_U32(buf, _u32);
   2922 	}
   2923 	BCM_PACK_U32(buf, var->latency_flow);
   2924 	return buf;
   2925 }
   2926 
   2927 uint8 *
   2928 _bcm_unpack_cosq_max_latency_pkts(uint8 *buf, bcm_cosq_max_latency_pkts_t *var)
   2929 {
   2930 	BCM_UNPACK_U32(buf, var->dest_gport);
   2931 	BCM_UNPACK_U32(buf, var->cosq);
   2932 	{
   2933 		uint32 _u32h, _u32l;
   2934 
   2935 		BCM_UNPACK_U32(buf, _u32h);
   2936 		BCM_UNPACK_U32(buf, _u32l);
   2937 		COMPILER_64_SET(var->latency, _u32h, _u32l);
   2938 	}
   2939 	BCM_UNPACK_U32(buf, var->latency_flow);
   2940 	return buf;
   2941 }
   2942 
   2943 uint8 *
   2944 _bcm_pack_cosq_mirror_on_drop_group_info(uint8 *buf, bcm_cosq_mirror_on_drop_group_info_t *var)
   2945 {
   2946 	{
   2947 		int _i;
   2948 
   2949 		for (_i = 0; _i < 46; _i++) {
   2950 			BCM_PACK_U32(buf, var->reasons_array[_i]);
   2951 		}
   2952 	}
   2953 	BCM_PACK_U32(buf, var->drop_reasons_count);
   2954 	BCM_PACK_U32(buf, var->type);
   2955 	return buf;
   2956 }
   2957 
   2958 uint8 *
   2959 _bcm_unpack_cosq_mirror_on_drop_group_info(uint8 *buf, bcm_cosq_mirror_on_drop_group_info_t *var)
   2960 {
   2961 	{
   2962 		int _i;
   2963 
   2964 		for (_i = 0; _i < 46; _i++) {
   2965 			BCM_UNPACK_U32(buf, var->reasons_array[_i]);
   2966 		}
   2967 	}
   2968 	BCM_UNPACK_U32(buf, var->drop_reasons_count);
   2969 	BCM_UNPACK_U32(buf, var->type);
   2970 	return buf;
   2971 }
   2972 
   2973 uint8 *
   2974 _bcm_pack_cosq_object_id(uint8 *buf, bcm_cosq_object_id_t *var)
   2975 {
   2976 	BCM_PACK_U32(buf, var->port);
   2977 	BCM_PACK_U32(buf, var->cosq);
   2978 	BCM_PACK_U32(buf, var->buffer);
   2979 	return buf;
   2980 }
   2981 
   2982 uint8 *
   2983 _bcm_unpack_cosq_object_id(uint8 *buf, bcm_cosq_object_id_t *var)
   2984 {
   2985 	BCM_UNPACK_U32(buf, var->port);
   2986 	BCM_UNPACK_U32(buf, var->cosq);
   2987 	BCM_UNPACK_U32(buf, var->buffer);
   2988 	return buf;
   2989 }
   2990 
   2991 uint8 *
   2992 _bcm_pack_cosq_pfc_class_map_config(uint8 *buf, bcm_cosq_pfc_class_map_config_t *var)
   2993 {
   2994 	BCM_PACK_U8(buf, var->pfc_enable);
   2995 	BCM_PACK_U8(buf, var->pfc_optimized);
   2996 	BCM_PACK_U32(buf, var->cos_list_bmp);
   2997 	return buf;
   2998 }
   2999 
   3000 uint8 *
   3001 _bcm_unpack_cosq_pfc_class_map_config(uint8 *buf, bcm_cosq_pfc_class_map_config_t *var)
   3002 {
   3003 	BCM_UNPACK_U8(buf, var->pfc_enable);
   3004 	BCM_UNPACK_U8(buf, var->pfc_optimized);
   3005 	BCM_UNPACK_U32(buf, var->cos_list_bmp);
   3006 	return buf;
   3007 }
   3008 
   3009 uint8 *
   3010 _bcm_pack_cosq_pfc_class_mapping(uint8 *buf, bcm_cosq_pfc_class_mapping_t *var)
   3011 {
   3012 	BCM_PACK_U32(buf, var->class_id);
   3013 	{
   3014 		int _i;
   3015 
   3016 		for (_i = 0; _i < 26; _i++) {
   3017 			BCM_PACK_U32(buf, var->gport_list[_i]);
   3018 		}
   3019 	}
   3020 	return buf;
   3021 }
   3022 
   3023 uint8 *
   3024 _bcm_unpack_cosq_pfc_class_mapping(uint8 *buf, bcm_cosq_pfc_class_mapping_t *var)
   3025 {
   3026 	BCM_UNPACK_U32(buf, var->class_id);
   3027 	{
   3028 		int _i;
   3029 
   3030 		for (_i = 0; _i < 26; _i++) {
   3031 			BCM_UNPACK_U32(buf, var->gport_list[_i]);
   3032 		}
   3033 	}
   3034 	return buf;
   3035 }
   3036 
   3037 uint8 *
   3038 _bcm_pack_cosq_pfc_config(uint8 *buf, bcm_cosq_pfc_config_t *var)
   3039 {
   3040 	BCM_PACK_U32(buf, var->xoff_threshold);
   3041 	BCM_PACK_U32(buf, var->xon_threshold);
   3042 	BCM_PACK_U32(buf, var->xoff_fadt_threshold.thresh_min);
   3043 	BCM_PACK_U32(buf, var->xoff_fadt_threshold.thresh_max);
   3044 	BCM_PACK_U32(buf, var->xoff_fadt_threshold.alpha);
   3045 	BCM_PACK_U32(buf, var->xoff_fadt_threshold.resource_range_min);
   3046 	BCM_PACK_U32(buf, var->xoff_fadt_threshold.resource_range_max);
   3047 	BCM_PACK_U32(buf, var->xon_fadt_offset);
   3048 	BCM_PACK_U32(buf, var->xon_fadt_floor);
   3049 	BCM_PACK_U32(buf, var->xoff_threshold_bd);
   3050 	BCM_PACK_U32(buf, var->xon_threshold_bd);
   3051 	BCM_PACK_U32(buf, var->drop_threshold);
   3052 	BCM_PACK_U32(buf, var->reserved_buffers);
   3053 	BCM_PACK_U32(buf, var->lossless);
   3054 	return buf;
   3055 }
   3056 
   3057 uint8 *
   3058 _bcm_unpack_cosq_pfc_config(uint8 *buf, bcm_cosq_pfc_config_t *var)
   3059 {
   3060 	BCM_UNPACK_U32(buf, var->xoff_threshold);
   3061 	BCM_UNPACK_U32(buf, var->xon_threshold);
   3062 	BCM_UNPACK_U32(buf, var->xoff_fadt_threshold.thresh_min);
   3063 	BCM_UNPACK_U32(buf, var->xoff_fadt_threshold.thresh_max);
   3064 	BCM_UNPACK_U32(buf, var->xoff_fadt_threshold.alpha);
   3065 	BCM_UNPACK_U32(buf, var->xoff_fadt_threshold.resource_range_min);
   3066 	BCM_UNPACK_U32(buf, var->xoff_fadt_threshold.resource_range_max);
   3067 	BCM_UNPACK_U32(buf, var->xon_fadt_offset);
   3068 	BCM_UNPACK_U32(buf, var->xon_fadt_floor);
   3069 	BCM_UNPACK_U32(buf, var->xoff_threshold_bd);
   3070 	BCM_UNPACK_U32(buf, var->xon_threshold_bd);
   3071 	BCM_UNPACK_U32(buf, var->drop_threshold);
   3072 	BCM_UNPACK_U32(buf, var->reserved_buffers);
   3073 	BCM_UNPACK_U32(buf, var->lossless);
   3074 	return buf;
   3075 }
   3076 
   3077 uint8 *
   3078 _bcm_pack_cosq_pfc_deadlock_config(uint8 *buf, bcm_cosq_pfc_deadlock_config_t *var)
   3079 {
   3080 	BCM_PACK_U32(buf, var->detection_timer);
   3081 	BCM_PACK_U32(buf, var->recovery_timer);
   3082 	return buf;
   3083 }
   3084 
   3085 uint8 *
   3086 _bcm_unpack_cosq_pfc_deadlock_config(uint8 *buf, bcm_cosq_pfc_deadlock_config_t *var)
   3087 {
   3088 	BCM_UNPACK_U32(buf, var->detection_timer);
   3089 	BCM_UNPACK_U32(buf, var->recovery_timer);
   3090 	return buf;
   3091 }
   3092 
   3093 uint8 *
   3094 _bcm_pack_cosq_pfc_deadlock_info(uint8 *buf, bcm_cosq_pfc_deadlock_info_t *var)
   3095 {
   3096 	buf = _bcm_pack_pbmp(buf, &(*var).enabled_pbmp);
   3097 	buf = _bcm_pack_pbmp(buf, &(*var).deadlock_pbmp);
   3098 	return buf;
   3099 }
   3100 
   3101 uint8 *
   3102 _bcm_unpack_cosq_pfc_deadlock_info(uint8 *buf, bcm_cosq_pfc_deadlock_info_t *var)
   3103 {
   3104 	buf = _bcm_unpack_pbmp(buf, &(*var).enabled_pbmp);
   3105 	buf = _bcm_unpack_pbmp(buf, &(*var).deadlock_pbmp);
   3106 	return buf;
   3107 }
   3108 
   3109 uint8 *
   3110 _bcm_pack_cosq_pkt_size_adjust_info(uint8 *buf, bcm_cosq_pkt_size_adjust_info_t *var)
   3111 {
   3112 	BCM_PACK_U32(buf, var->flags);
   3113 	BCM_PACK_U32(buf, var->gport);
   3114 	BCM_PACK_U32(buf, var->cosq);
   3115 	BCM_PACK_U32(buf, var->source_info.source_type);
   3116 	BCM_PACK_U32(buf, var->source_info.source_id);
   3117 	return buf;
   3118 }
   3119 
   3120 uint8 *
   3121 _bcm_unpack_cosq_pkt_size_adjust_info(uint8 *buf, bcm_cosq_pkt_size_adjust_info_t *var)
   3122 {
   3123 	BCM_UNPACK_U32(buf, var->flags);
   3124 	BCM_UNPACK_U32(buf, var->gport);
   3125 	BCM_UNPACK_U32(buf, var->cosq);
   3126 	BCM_UNPACK_U32(buf, var->source_info.source_type);
   3127 	BCM_UNPACK_U32(buf, var->source_info.source_id);
   3128 	return buf;
   3129 }
   3130 
   3131 uint8 *
   3132 _bcm_pack_cosq_pkt_size_dist(uint8 *buf, bcm_cosq_pkt_size_dist_t *var)
   3133 {
   3134 	BCM_PACK_U32(buf, var->pkt_size);
   3135 	BCM_PACK_U32(buf, var->dist_perc);
   3136 	return buf;
   3137 }
   3138 
   3139 uint8 *
   3140 _bcm_unpack_cosq_pkt_size_dist(uint8 *buf, bcm_cosq_pkt_size_dist_t *var)
   3141 {
   3142 	BCM_UNPACK_U32(buf, var->pkt_size);
   3143 	BCM_UNPACK_U32(buf, var->dist_perc);
   3144 	return buf;
   3145 }
   3146 
   3147 uint8 *
   3148 _bcm_pack_cosq_qcn_config(uint8 *buf, bcm_cosq_qcn_config_t *var)
   3149 {
   3150 	BCM_PACK_U32(buf, var->size);
   3151 	BCM_PACK_U32(buf, var->weight);
   3152 	BCM_PACK_U32(buf, var->nbr_samples);
   3153 	{
   3154 		int _i;
   3155 
   3156 		for (_i = 0; _i < 8; _i++) {
   3157 			BCM_PACK_U32(buf, var->sample_bytes[_i]);
   3158 		}
   3159 	}
   3160 	BCM_PACK_U32(buf, var->max_feedback);
   3161 	BCM_PACK_U32(buf, var->quantization);
   3162 	BCM_PACK_U32(buf, var->randomize_sample_threshold);
   3163 	return buf;
   3164 }
   3165 
   3166 uint8 *
   3167 _bcm_unpack_cosq_qcn_config(uint8 *buf, bcm_cosq_qcn_config_t *var)
   3168 {
   3169 	BCM_UNPACK_U32(buf, var->size);
   3170 	BCM_UNPACK_U32(buf, var->weight);
   3171 	BCM_UNPACK_U32(buf, var->nbr_samples);
   3172 	{
   3173 		int _i;
   3174 
   3175 		for (_i = 0; _i < 8; _i++) {
   3176 			BCM_UNPACK_U32(buf, var->sample_bytes[_i]);
   3177 		}
   3178 	}
   3179 	BCM_UNPACK_U32(buf, var->max_feedback);
   3180 	BCM_UNPACK_U32(buf, var->quantization);
   3181 	BCM_UNPACK_U32(buf, var->randomize_sample_threshold);
   3182 	return buf;
   3183 }
   3184 
   3185 uint8 *
   3186 _bcm_pack_cosq_range(uint8 *buf, bcm_cosq_range_t *var)
   3187 {
   3188 	BCM_PACK_U8(buf, var->is_enabled);
   3189 	BCM_PACK_U32(buf, var->range_start);
   3190 	BCM_PACK_U32(buf, var->range_end);
   3191 	return buf;
   3192 }
   3193 
   3194 uint8 *
   3195 _bcm_unpack_cosq_range(uint8 *buf, bcm_cosq_range_t *var)
   3196 {
   3197 	BCM_UNPACK_U8(buf, var->is_enabled);
   3198 	BCM_UNPACK_U32(buf, var->range_start);
   3199 	BCM_UNPACK_U32(buf, var->range_end);
   3200 	return buf;
   3201 }
   3202 
   3203 uint8 *
   3204 _bcm_pack_cosq_rate_class_create_info(uint8 *buf, bcm_cosq_rate_class_create_info_t *var)
   3205 {
   3206 	BCM_PACK_U32(buf, var->rate);
   3207 	BCM_PACK_U32(buf, var->attributes);
   3208 	return buf;
   3209 }
   3210 
   3211 uint8 *
   3212 _bcm_unpack_cosq_rate_class_create_info(uint8 *buf, bcm_cosq_rate_class_create_info_t *var)
   3213 {
   3214 	BCM_UNPACK_U32(buf, var->rate);
   3215 	BCM_UNPACK_U32(buf, var->attributes);
   3216 	return buf;
   3217 }
   3218 
   3219 uint8 *
   3220 _bcm_pack_cosq_report_threshold(uint8 *buf, bcm_cosq_report_threshold_t *var)
   3221 {
   3222 	BCM_PACK_U32(buf, var->threshold0);
   3223 	BCM_PACK_U32(buf, var->threshold1);
   3224 	BCM_PACK_U32(buf, var->threshold2);
   3225 	BCM_PACK_U32(buf, var->threshold3);
   3226 	return buf;
   3227 }
   3228 
   3229 uint8 *
   3230 _bcm_unpack_cosq_report_threshold(uint8 *buf, bcm_cosq_report_threshold_t *var)
   3231 {
   3232 	BCM_UNPACK_U32(buf, var->threshold0);
   3233 	BCM_UNPACK_U32(buf, var->threshold1);
   3234 	BCM_UNPACK_U32(buf, var->threshold2);
   3235 	BCM_UNPACK_U32(buf, var->threshold3);
   3236 	return buf;
   3237 }
   3238 
   3239 uint8 *
   3240 _bcm_pack_cosq_resource_amounts(uint8 *buf, bcm_cosq_resource_amounts_t *var)
   3241 {
   3242 	BCM_PACK_U32(buf, var->flags);
   3243 	BCM_PACK_U32(buf, var->reserved);
   3244 	BCM_PACK_U32(buf, var->max_shared_pool);
   3245 	BCM_PACK_U32(buf, var->shared_pool_fadt.thresh_min);
   3246 	BCM_PACK_U32(buf, var->shared_pool_fadt.thresh_max);
   3247 	BCM_PACK_U32(buf, var->shared_pool_fadt.alpha);
   3248 	BCM_PACK_U32(buf, var->shared_pool_fadt.resource_range_min);
   3249 	BCM_PACK_U32(buf, var->shared_pool_fadt.resource_range_max);
   3250 	BCM_PACK_U32(buf, var->max_headroom);
   3251 	BCM_PACK_U32(buf, var->nominal_headroom);
   3252 	return buf;
   3253 }
   3254 
   3255 uint8 *
   3256 _bcm_unpack_cosq_resource_amounts(uint8 *buf, bcm_cosq_resource_amounts_t *var)
   3257 {
   3258 	BCM_UNPACK_U32(buf, var->flags);
   3259 	BCM_UNPACK_U32(buf, var->reserved);
   3260 	BCM_UNPACK_U32(buf, var->max_shared_pool);
   3261 	BCM_UNPACK_U32(buf, var->shared_pool_fadt.thresh_min);
   3262 	BCM_UNPACK_U32(buf, var->shared_pool_fadt.thresh_max);
   3263 	BCM_UNPACK_U32(buf, var->shared_pool_fadt.alpha);
   3264 	BCM_UNPACK_U32(buf, var->shared_pool_fadt.resource_range_min);
   3265 	BCM_UNPACK_U32(buf, var->shared_pool_fadt.resource_range_max);
   3266 	BCM_UNPACK_U32(buf, var->max_headroom);
   3267 	BCM_UNPACK_U32(buf, var->nominal_headroom);
   3268 	return buf;
   3269 }
   3270 
   3271 uint8 *
   3272 _bcm_pack_cosq_safc_class_mapping(uint8 *buf, bcm_cosq_safc_class_mapping_t *var)
   3273 {
   3274 	BCM_PACK_U32(buf, var->class_id);
   3275 	{
   3276 		int _i;
   3277 
   3278 		for (_i = 0; _i < 20; _i++) {
   3279 			BCM_PACK_U32(buf, var->gport_list[_i]);
   3280 		}
   3281 	}
   3282 	return buf;
   3283 }
   3284 
   3285 uint8 *
   3286 _bcm_unpack_cosq_safc_class_mapping(uint8 *buf, bcm_cosq_safc_class_mapping_t *var)
   3287 {
   3288 	BCM_UNPACK_U32(buf, var->class_id);
   3289 	{
   3290 		int _i;
   3291 
   3292 		for (_i = 0; _i < 20; _i++) {
   3293 			BCM_UNPACK_U32(buf, var->gport_list[_i]);
   3294 		}
   3295 	}
   3296 	return buf;
   3297 }
   3298 
   3299 uint8 *
   3300 _bcm_pack_cosq_scheduler_gport_params(uint8 *buf, bcm_cosq_scheduler_gport_params_t *var)
   3301 {
   3302 	BCM_PACK_U32(buf, var->core);
   3303 	BCM_PACK_U32(buf, var->type);
   3304 	BCM_PACK_U32(buf, var->mode);
   3305 	BCM_PACK_U32(buf, var->cl_wfq_mode);
   3306 	return buf;
   3307 }
   3308 
   3309 uint8 *
   3310 _bcm_unpack_cosq_scheduler_gport_params(uint8 *buf, bcm_cosq_scheduler_gport_params_t *var)
   3311 {
   3312 	BCM_UNPACK_U32(buf, var->core);
   3313 	BCM_UNPACK_U32(buf, var->type);
   3314 	BCM_UNPACK_U32(buf, var->mode);
   3315 	BCM_UNPACK_U32(buf, var->cl_wfq_mode);
   3316 	return buf;
   3317 }
   3318 
   3319 uint8 *
   3320 _bcm_pack_cosq_service_pool(uint8 *buf, bcm_cosq_service_pool_t *var)
   3321 {
   3322 	BCM_PACK_U32(buf, var->type);
   3323 	BCM_PACK_U32(buf, var->enabled);
   3324 	return buf;
   3325 }
   3326 
   3327 uint8 *
   3328 _bcm_unpack_cosq_service_pool(uint8 *buf, bcm_cosq_service_pool_t *var)
   3329 {
   3330 	BCM_UNPACK_U32(buf, var->type);
   3331 	BCM_UNPACK_U32(buf, var->enabled);
   3332 	return buf;
   3333 }
   3334 
   3335 uint8 *
   3336 _bcm_pack_cosq_slow_level(uint8 *buf, bcm_cosq_slow_level_t *var)
   3337 {
   3338 	BCM_PACK_U32(buf, var->core);
   3339 	BCM_PACK_U32(buf, var->profile);
   3340 	BCM_PACK_U32(buf, var->level);
   3341 	BCM_PACK_U32(buf, var->flags);
   3342 	return buf;
   3343 }
   3344 
   3345 uint8 *
   3346 _bcm_unpack_cosq_slow_level(uint8 *buf, bcm_cosq_slow_level_t *var)
   3347 {
   3348 	BCM_UNPACK_U32(buf, var->core);
   3349 	BCM_UNPACK_U32(buf, var->profile);
   3350 	BCM_UNPACK_U32(buf, var->level);
   3351 	BCM_UNPACK_U32(buf, var->flags);
   3352 	return buf;
   3353 }
   3354 
   3355 uint8 *
   3356 _bcm_pack_cosq_src_vsqs_gport_config(uint8 *buf, bcm_cosq_src_vsqs_gport_config_t *var)
   3357 {
   3358 	BCM_PACK_U32(buf, var->flags);
   3359 	BCM_PACK_U32(buf, var->numq);
   3360 	{
   3361 		int _i;
   3362 
   3363 		for (_i = 0; _i < 8; _i++) {
   3364 			BCM_PACK_U8(buf, var->pg_attributes[_i].cosq_bitmap);
   3365 			BCM_PACK_U8(buf, var->pg_attributes[_i].ocb_only);
   3366 			BCM_PACK_U8(buf, var->pg_attributes[_i].pool_id);
   3367 			BCM_PACK_U8(buf, var->pg_attributes[_i].is_lossles);
   3368 		}
   3369 	}
   3370 	return buf;
   3371 }
   3372 
   3373 uint8 *
   3374 _bcm_unpack_cosq_src_vsqs_gport_config(uint8 *buf, bcm_cosq_src_vsqs_gport_config_t *var)
   3375 {
   3376 	BCM_UNPACK_U32(buf, var->flags);
   3377 	BCM_UNPACK_U32(buf, var->numq);
   3378 	{
   3379 		int _i;
   3380 
   3381 		for (_i = 0; _i < 8; _i++) {
   3382 			BCM_UNPACK_U8(buf, var->pg_attributes[_i].cosq_bitmap);
   3383 			BCM_UNPACK_U8(buf, var->pg_attributes[_i].ocb_only);
   3384 			BCM_UNPACK_U8(buf, var->pg_attributes[_i].pool_id);
   3385 			BCM_UNPACK_U8(buf, var->pg_attributes[_i].is_lossles);
   3386 		}
   3387 	}
   3388 	return buf;
   3389 }
   3390 
   3391 uint8 *
   3392 _bcm_pack_cosq_stat_info(uint8 *buf, bcm_cosq_stat_info_t *var)
   3393 {
   3394 	BCM_PACK_U32(buf, var->enable_mapping);
   3395 	BCM_PACK_U32(buf, var->num_queues_per_entry);
   3396 	BCM_PACK_U32(buf, var->queue_first);
   3397 	BCM_PACK_U32(buf, var->queue_last);
   3398 	return buf;
   3399 }
   3400 
   3401 uint8 *
   3402 _bcm_unpack_cosq_stat_info(uint8 *buf, bcm_cosq_stat_info_t *var)
   3403 {
   3404 	BCM_UNPACK_U32(buf, var->enable_mapping);
   3405 	BCM_UNPACK_U32(buf, var->num_queues_per_entry);
   3406 	BCM_UNPACK_U32(buf, var->queue_first);
   3407 	BCM_UNPACK_U32(buf, var->queue_last);
   3408 	return buf;
   3409 }
   3410 
   3411 uint8 *
   3412 _bcm_pack_cosq_static_threshold_info(uint8 *buf, bcm_cosq_static_threshold_info_t *var)
   3413 {
   3414 	BCM_PACK_U32(buf, var->gport);
   3415 	BCM_PACK_U32(buf, var->index);
   3416 	BCM_PACK_U32(buf, var->threshold_action);
   3417 	BCM_PACK_U32(buf, var->resource_type);
   3418 	BCM_PACK_U32(buf, var->is_free_resource);
   3419 	return buf;
   3420 }
   3421 
   3422 uint8 *
   3423 _bcm_unpack_cosq_static_threshold_info(uint8 *buf, bcm_cosq_static_threshold_info_t *var)
   3424 {
   3425 	BCM_UNPACK_U32(buf, var->gport);
   3426 	BCM_UNPACK_U32(buf, var->index);
   3427 	BCM_UNPACK_U32(buf, var->threshold_action);
   3428 	BCM_UNPACK_U32(buf, var->resource_type);
   3429 	BCM_UNPACK_U32(buf, var->is_free_resource);
   3430 	return buf;
   3431 }
   3432 
   3433 uint8 *
   3434 _bcm_pack_cosq_static_threshold(uint8 *buf, bcm_cosq_static_threshold_t *var)
   3435 {
   3436 	BCM_PACK_U32(buf, var->thresh_set);
   3437 	BCM_PACK_U32(buf, var->thresh_clear);
   3438 	return buf;
   3439 }
   3440 
   3441 uint8 *
   3442 _bcm_unpack_cosq_static_threshold(uint8 *buf, bcm_cosq_static_threshold_t *var)
   3443 {
   3444 	BCM_UNPACK_U32(buf, var->thresh_set);
   3445 	BCM_UNPACK_U32(buf, var->thresh_clear);
   3446 	return buf;
   3447 }
   3448 
   3449 uint8 *
   3450 _bcm_pack_cosq_subscriber_map(uint8 *buf, bcm_cosq_subscriber_map_t *var)
   3451 {
   3452 	BCM_PACK_U32(buf, var->flags);
   3453 	BCM_PACK_U32(buf, var->port);
   3454 	BCM_PACK_U16(buf, var->vlan);
   3455 	BCM_PACK_U32(buf, var->encap_id);
   3456 	BCM_PACK_U32(buf, var->queue_id);
   3457 	return buf;
   3458 }
   3459 
   3460 uint8 *
   3461 _bcm_unpack_cosq_subscriber_map(uint8 *buf, bcm_cosq_subscriber_map_t *var)
   3462 {
   3463 	BCM_UNPACK_U32(buf, var->flags);
   3464 	BCM_UNPACK_U32(buf, var->port);
   3465 	BCM_UNPACK_U16(buf, var->vlan);
   3466 	BCM_UNPACK_U32(buf, var->encap_id);
   3467 	BCM_UNPACK_U32(buf, var->queue_id);
   3468 	return buf;
   3469 }
   3470 
   3471 uint8 *
   3472 _bcm_pack_cosq_tas_profile_status(uint8 *buf, bcm_cosq_tas_profile_status_t *var)
   3473 {
   3474 	BCM_PACK_U32(buf, var->profile_state);
   3475 	{
   3476 		uint32 _u32;
   3477 
   3478 		_u32 = COMPILER_64_HI(var->config_change_time.seconds);
   3479 		BCM_PACK_U32(buf, _u32);
   3480 		_u32 = COMPILER_64_LO(var->config_change_time.seconds);
   3481 		BCM_PACK_U32(buf, _u32);
   3482 	}
   3483 	BCM_PACK_U32(buf, var->config_change_time.nanoseconds);
   3484 	BCM_PACK_U32(buf, var->num_entries);
   3485 	{
   3486 		int _i;
   3487 
   3488 		for (_i = 0; _i < 128; _i++) {
   3489 			BCM_PACK_U32(buf, var->entries[_i].ticks);
   3490 			BCM_PACK_U32(buf, var->entries[_i].state);
   3491 			BCM_PACK_U32(buf, var->entries[_i].flags);
   3492 		}
   3493 	}
   3494 	return buf;
   3495 }
   3496 
   3497 uint8 *
   3498 _bcm_unpack_cosq_tas_profile_status(uint8 *buf, bcm_cosq_tas_profile_status_t *var)
   3499 {
   3500 	BCM_UNPACK_U32(buf, var->profile_state);
   3501 	{
   3502 		uint32 _u32h, _u32l;
   3503 
   3504 		BCM_UNPACK_U32(buf, _u32h);
   3505 		BCM_UNPACK_U32(buf, _u32l);
   3506 		COMPILER_64_SET(var->config_change_time.seconds, _u32h, _u32l);
   3507 	}
   3508 	BCM_UNPACK_U32(buf, var->config_change_time.nanoseconds);
   3509 	BCM_UNPACK_U32(buf, var->num_entries);
   3510 	{
   3511 		int _i;
   3512 
   3513 		for (_i = 0; _i < 128; _i++) {
   3514 			BCM_UNPACK_U32(buf, var->entries[_i].ticks);
   3515 			BCM_UNPACK_U32(buf, var->entries[_i].state);
   3516 			BCM_UNPACK_U32(buf, var->entries[_i].flags);
   3517 		}
   3518 	}
   3519 	return buf;
   3520 }
   3521 
   3522 uint8 *
   3523 _bcm_pack_cosq_tas_profile(uint8 *buf, bcm_cosq_tas_profile_t *var)
   3524 {
   3525 	BCM_PACK_U32(buf, var->num_entries);
   3526 	{
   3527 		int _i;
   3528 
   3529 		for (_i = 0; _i < 128; _i++) {
   3530 			BCM_PACK_U32(buf, var->entries[_i].ticks);
   3531 			BCM_PACK_U32(buf, var->entries[_i].state);
   3532 			BCM_PACK_U32(buf, var->entries[_i].flags);
   3533 		}
   3534 	}
   3535 	{
   3536 		uint32 _u32;
   3537 
   3538 		_u32 = COMPILER_64_HI(var->ptp_base_time.seconds);
   3539 		BCM_PACK_U32(buf, _u32);
   3540 		_u32 = COMPILER_64_LO(var->ptp_base_time.seconds);
   3541 		BCM_PACK_U32(buf, _u32);
   3542 	}
   3543 	BCM_PACK_U32(buf, var->ptp_base_time.nanoseconds);
   3544 	BCM_PACK_U32(buf, var->ptp_cycle_time);
   3545 	BCM_PACK_U32(buf, var->ptp_max_cycle_extension);
   3546 	return buf;
   3547 }
   3548 
   3549 uint8 *
   3550 _bcm_unpack_cosq_tas_profile(uint8 *buf, bcm_cosq_tas_profile_t *var)
   3551 {
   3552 	BCM_UNPACK_U32(buf, var->num_entries);
   3553 	{
   3554 		int _i;
   3555 
   3556 		for (_i = 0; _i < 128; _i++) {
   3557 			BCM_UNPACK_U32(buf, var->entries[_i].ticks);
   3558 			BCM_UNPACK_U32(buf, var->entries[_i].state);
   3559 			BCM_UNPACK_U32(buf, var->entries[_i].flags);
   3560 		}
   3561 	}
   3562 	{
   3563 		uint32 _u32h, _u32l;
   3564 
   3565 		BCM_UNPACK_U32(buf, _u32h);
   3566 		BCM_UNPACK_U32(buf, _u32l);
   3567 		COMPILER_64_SET(var->ptp_base_time.seconds, _u32h, _u32l);
   3568 	}
   3569 	BCM_UNPACK_U32(buf, var->ptp_base_time.nanoseconds);
   3570 	BCM_UNPACK_U32(buf, var->ptp_cycle_time);
   3571 	BCM_UNPACK_U32(buf, var->ptp_max_cycle_extension);
   3572 	return buf;
   3573 }
   3574 
   3575 #ifdef	INCLUDE_TCB
   3576 
   3577 uint8 *
   3578 _bcm_pack_cosq_tcb_buffer(uint8 *buf, bcm_cosq_tcb_buffer_t *var)
   3579 {
   3580 	{
   3581 		uint32 _u32;
   3582 
   3583 		_u32 = COMPILER_64_HI(var->timestamp);
   3584 		BCM_PACK_U32(buf, _u32);
   3585 		_u32 = COMPILER_64_LO(var->timestamp);
   3586 		BCM_PACK_U32(buf, _u32);
   3587 	}
   3588 	BCM_PACK_U32(buf, var->ingress_gport);
   3589 	BCM_PACK_U32(buf, var->egress_gport);
   3590 	BCM_PACK_U32(buf, var->queue);
   3591 	BCM_PACK_U32(buf, var->queue_size);
   3592 	BCM_PACK_U32(buf, var->service_pool_size);
   3593 	{
   3594 		int _i;
   3595 
   3596 		for (_i = 0; _i < 80; _i++) {
   3597 			BCM_PACK_U8(buf, var->buf_data[_i]);
   3598 		}
   3599 	}
   3600 	return buf;
   3601 }
   3602 
   3603 uint8 *
   3604 _bcm_unpack_cosq_tcb_buffer(uint8 *buf, bcm_cosq_tcb_buffer_t *var)
   3605 {
   3606 	{
   3607 		uint32 _u32h, _u32l;
   3608 
   3609 		BCM_UNPACK_U32(buf, _u32h);
   3610 		BCM_UNPACK_U32(buf, _u32l);
   3611 		COMPILER_64_SET(var->timestamp, _u32h, _u32l);
   3612 	}
   3613 	BCM_UNPACK_U32(buf, var->ingress_gport);
   3614 	BCM_UNPACK_U32(buf, var->egress_gport);
   3615 	BCM_UNPACK_U32(buf, var->queue);
   3616 	BCM_UNPACK_U32(buf, var->queue_size);
   3617 	BCM_UNPACK_U32(buf, var->service_pool_size);
   3618 	{
   3619 		int _i;
   3620 
   3621 		for (_i = 0; _i < 80; _i++) {
   3622 			BCM_UNPACK_U8(buf, var->buf_data[_i]);
   3623 		}
   3624 	}
   3625 	return buf;
   3626 }
   3627 
   3628 uint8 *
   3629 _bcm_pack_cosq_tcb_config(uint8 *buf, bcm_cosq_tcb_config_t *var)
   3630 {
   3631 	BCM_PACK_U32(buf, var->scope_type);
   3632 	BCM_PACK_U32(buf, var->gport);
   3633 	BCM_PACK_U32(buf, var->cosq);
   3634 	BCM_PACK_U32(buf, var->trigger_reason);
   3635 	BCM_PACK_U32(buf, var->pre_freeze_capture_num);
   3636 	BCM_PACK_U32(buf, var->pre_freeze_capture_time);
   3637 	BCM_PACK_U32(buf, var->post_sample_probability);
   3638 	BCM_PACK_U32(buf, var->pre_sample_probability);
   3639 	BCM_PACK_U32(buf, var->pipe_id);
   3640 	return buf;
   3641 }
   3642 
   3643 uint8 *
   3644 _bcm_unpack_cosq_tcb_config(uint8 *buf, bcm_cosq_tcb_config_t *var)
   3645 {
   3646 	BCM_UNPACK_U32(buf, var->scope_type);
   3647 	BCM_UNPACK_U32(buf, var->gport);
   3648 	BCM_UNPACK_U32(buf, var->cosq);
   3649 	BCM_UNPACK_U32(buf, var->trigger_reason);
   3650 	BCM_UNPACK_U32(buf, var->pre_freeze_capture_num);
   3651 	BCM_UNPACK_U32(buf, var->pre_freeze_capture_time);
   3652 	BCM_UNPACK_U32(buf, var->post_sample_probability);
   3653 	BCM_UNPACK_U32(buf, var->pre_sample_probability);
   3654 	BCM_UNPACK_U32(buf, var->pipe_id);
   3655 	return buf;
   3656 }
   3657 
   3658 uint8 *
   3659 _bcm_pack_cosq_tcb_event(uint8 *buf, bcm_cosq_tcb_event_t *var)
   3660 {
   3661 	{
   3662 		uint32 _u32;
   3663 
   3664 		_u32 = COMPILER_64_HI(var->timestamp);
   3665 		BCM_PACK_U32(buf, _u32);
   3666 		_u32 = COMPILER_64_LO(var->timestamp);
   3667 		BCM_PACK_U32(buf, _u32);
   3668 	}
   3669 	BCM_PACK_U32(buf, var->ingress_gport);
   3670 	BCM_PACK_U32(buf, var->egress_gport);
   3671 	BCM_PACK_U32(buf, var->queue);
   3672 	BCM_PACK_U32(buf, var->queue_size);
   3673 	BCM_PACK_U32(buf, var->service_pool_size);
   3674 	BCM_PACK_U32(buf, var->drop_reason);
   3675 	BCM_PACK_U32(buf, var->color);
   3676 	return buf;
   3677 }
   3678 
   3679 uint8 *
   3680 _bcm_unpack_cosq_tcb_event(uint8 *buf, bcm_cosq_tcb_event_t *var)
   3681 {
   3682 	{
   3683 		uint32 _u32h, _u32l;
   3684 
   3685 		BCM_UNPACK_U32(buf, _u32h);
   3686 		BCM_UNPACK_U32(buf, _u32l);
   3687 		COMPILER_64_SET(var->timestamp, _u32h, _u32l);
   3688 	}
   3689 	BCM_UNPACK_U32(buf, var->ingress_gport);
   3690 	BCM_UNPACK_U32(buf, var->egress_gport);
   3691 	BCM_UNPACK_U32(buf, var->queue);
   3692 	BCM_UNPACK_U32(buf, var->queue_size);
   3693 	BCM_UNPACK_U32(buf, var->service_pool_size);
   3694 	BCM_UNPACK_U32(buf, var->drop_reason);
   3695 	BCM_UNPACK_U32(buf, var->color);
   3696 	return buf;
   3697 }
   3698 
   3699 uint8 *
   3700 _bcm_pack_cosq_tcb_threshold_profile(uint8 *buf, bcm_cosq_tcb_threshold_profile_t *var)
   3701 {
   3702 	BCM_PACK_U32(buf, var->start_threshold_bytes);
   3703 	BCM_PACK_U32(buf, var->stop_threshold_bytes);
   3704 	return buf;
   3705 }
   3706 
   3707 uint8 *
   3708 _bcm_unpack_cosq_tcb_threshold_profile(uint8 *buf, bcm_cosq_tcb_threshold_profile_t *var)
   3709 {
   3710 	BCM_UNPACK_U32(buf, var->start_threshold_bytes);
   3711 	BCM_UNPACK_U32(buf, var->stop_threshold_bytes);
   3712 	return buf;
   3713 }
   3714 
   3715 #endif	/* INCLUDE_TCB */
   3716 
   3717 uint8 *
   3718 _bcm_pack_cosq_threshold(uint8 *buf, bcm_cosq_threshold_t *var)
   3719 {
   3720 	BCM_PACK_U32(buf, var->flags);
   3721 	BCM_PACK_U32(buf, var->dp);
   3722 	BCM_PACK_U32(buf, var->type);
   3723 	BCM_PACK_U32(buf, var->value);
   3724 	BCM_PACK_U32(buf, var->tc);
   3725 	BCM_PACK_U32(buf, var->vsq_category);
   3726 	BCM_PACK_U32(buf, var->valid);
   3727 	BCM_PACK_U32(buf, var->priority);
   3728 	return buf;
   3729 }
   3730 
   3731 uint8 *
   3732 _bcm_unpack_cosq_threshold(uint8 *buf, bcm_cosq_threshold_t *var)
   3733 {
   3734 	BCM_UNPACK_U32(buf, var->flags);
   3735 	BCM_UNPACK_U32(buf, var->dp);
   3736 	BCM_UNPACK_U32(buf, var->type);
   3737 	BCM_UNPACK_U32(buf, var->value);
   3738 	BCM_UNPACK_U32(buf, var->tc);
   3739 	BCM_UNPACK_U32(buf, var->vsq_category);
   3740 	BCM_UNPACK_U32(buf, var->valid);
   3741 	BCM_UNPACK_U32(buf, var->priority);
   3742 	return buf;
   3743 }
   3744 
   3745 uint8 *
   3746 _bcm_pack_cosq_voq_connector_gport(uint8 *buf, bcm_cosq_voq_connector_gport_t *var)
   3747 {
   3748 	BCM_PACK_U32(buf, var->flags);
   3749 	BCM_PACK_U32(buf, var->port);
   3750 	BCM_PACK_U32(buf, var->numq);
   3751 	BCM_PACK_U32(buf, var->remote_modid);
   3752 	BCM_PACK_U32(buf, var->nof_remote_cores);
   3753 	return buf;
   3754 }
   3755 
   3756 uint8 *
   3757 _bcm_unpack_cosq_voq_connector_gport(uint8 *buf, bcm_cosq_voq_connector_gport_t *var)
   3758 {
   3759 	BCM_UNPACK_U32(buf, var->flags);
   3760 	BCM_UNPACK_U32(buf, var->port);
   3761 	BCM_UNPACK_U32(buf, var->numq);
   3762 	BCM_UNPACK_U32(buf, var->remote_modid);
   3763 	BCM_UNPACK_U32(buf, var->nof_remote_cores);
   3764 	return buf;
   3765 }
   3766 
   3767 uint8 *
   3768 _bcm_pack_cosq_vsq_info(uint8 *buf, bcm_cosq_vsq_info_t *var)
   3769 {
   3770 	BCM_PACK_U32(buf, var->flags);
   3771 	BCM_PACK_U32(buf, var->ct_id);
   3772 	BCM_PACK_U32(buf, var->cc_id);
   3773 	BCM_PACK_U32(buf, var->traffic_class);
   3774 	BCM_PACK_U32(buf, var->src_port);
   3775 	BCM_PACK_U32(buf, var->pp_vsq_id);
   3776 	BCM_PACK_U32(buf, var->core_id);
   3777 	return buf;
   3778 }
   3779 
   3780 uint8 *
   3781 _bcm_unpack_cosq_vsq_info(uint8 *buf, bcm_cosq_vsq_info_t *var)
   3782 {
   3783 	BCM_UNPACK_U32(buf, var->flags);
   3784 	BCM_UNPACK_U32(buf, var->ct_id);
   3785 	BCM_UNPACK_U32(buf, var->cc_id);
   3786 	BCM_UNPACK_U32(buf, var->traffic_class);
   3787 	BCM_UNPACK_U32(buf, var->src_port);
   3788 	BCM_UNPACK_U32(buf, var->pp_vsq_id);
   3789 	BCM_UNPACK_U32(buf, var->core_id);
   3790 	return buf;
   3791 }
   3792 
   3793 uint8 *
   3794 _bcm_pack_cpri_1588_capture_config(uint8 *buf, bcm_cpri_1588_capture_config_t *var)
   3795 {
   3796 	BCM_PACK_U32(buf, var->mode);
   3797 	BCM_PACK_U32(buf, var->capture_bfn_num);
   3798 	BCM_PACK_U32(buf, var->capture_hfn_num);
   3799 	return buf;
   3800 }
   3801 
   3802 uint8 *
   3803 _bcm_unpack_cpri_1588_capture_config(uint8 *buf, bcm_cpri_1588_capture_config_t *var)
   3804 {
   3805 	BCM_UNPACK_U32(buf, var->mode);
   3806 	BCM_UNPACK_U32(buf, var->capture_bfn_num);
   3807 	BCM_UNPACK_U32(buf, var->capture_hfn_num);
   3808 	return buf;
   3809 }
   3810 
   3811 uint8 *
   3812 _bcm_pack_cpri_1588_config(uint8 *buf, bcm_cpri_1588_config_t *var)
   3813 {
   3814 	{
   3815 		uint32 _u32;
   3816 
   3817 		_u32 = COMPILER_64_HI(var->nano_sec);
   3818 		BCM_PACK_U32(buf, _u32);
   3819 		_u32 = COMPILER_64_LO(var->nano_sec);
   3820 		BCM_PACK_U32(buf, _u32);
   3821 	}
   3822 	BCM_PACK_U8(buf, var->sub_nano_sec);
   3823 	BCM_PACK_U8(buf, var->sign_bit);
   3824 	return buf;
   3825 }
   3826 
   3827 uint8 *
   3828 _bcm_unpack_cpri_1588_config(uint8 *buf, bcm_cpri_1588_config_t *var)
   3829 {
   3830 	{
   3831 		uint32 _u32h, _u32l;
   3832 
   3833 		BCM_UNPACK_U32(buf, _u32h);
   3834 		BCM_UNPACK_U32(buf, _u32l);
   3835 		COMPILER_64_SET(var->nano_sec, _u32h, _u32l);
   3836 	}
   3837 	BCM_UNPACK_U8(buf, var->sub_nano_sec);
   3838 	BCM_UNPACK_U8(buf, var->sign_bit);
   3839 	return buf;
   3840 }
   3841 
   3842 uint8 *
   3843 _bcm_pack_cpri_1588_timestamp(uint8 *buf, bcm_cpri_1588_timestamp_t *var)
   3844 {
   3845 	{
   3846 		uint32 _u32;
   3847 
   3848 		_u32 = COMPILER_64_HI(*var);
   3849 		BCM_PACK_U32(buf, _u32);
   3850 		_u32 = COMPILER_64_LO(*var);
   3851 		BCM_PACK_U32(buf, _u32);
   3852 	}
   3853 	return buf;
   3854 }
   3855 
   3856 uint8 *
   3857 _bcm_unpack_cpri_1588_timestamp(uint8 *buf, bcm_cpri_1588_timestamp_t *var)
   3858 {
   3859 	{
   3860 		uint32 _u32h, _u32l;
   3861 
   3862 		BCM_UNPACK_U32(buf, _u32h);
   3863 		BCM_UNPACK_U32(buf, _u32l);
   3864 		COMPILER_64_SET(*var, _u32h, _u32l);
   3865 	}
   3866 	return buf;
   3867 }
   3868 
   3869 uint8 *
   3870 _bcm_pack_cpri_1588_timestamp_ts_config(uint8 *buf, bcm_cpri_1588_timestamp_ts_config_t *var)
   3871 {
   3872 	BCM_PACK_U32(buf, var->enable);
   3873 	BCM_PACK_U32(buf, var->modulo_count);
   3874 	return buf;
   3875 }
   3876 
   3877 uint8 *
   3878 _bcm_unpack_cpri_1588_timestamp_ts_config(uint8 *buf, bcm_cpri_1588_timestamp_ts_config_t *var)
   3879 {
   3880 	BCM_UNPACK_U32(buf, var->enable);
   3881 	BCM_UNPACK_U32(buf, var->modulo_count);
   3882 	return buf;
   3883 }
   3884 
   3885 uint8 *
   3886 _bcm_pack_cpri_axc_frame_info(uint8 *buf, bcm_cpri_axc_frame_info_t *var)
   3887 {
   3888 	BCM_PACK_U32(buf, var->axc_id);
   3889 	BCM_PACK_U32(buf, var->start_bit);
   3890 	BCM_PACK_U32(buf, var->num_bits);
   3891 	BCM_PACK_U32(buf, var->map_method);
   3892 	BCM_PACK_U32(buf, var->stuffing_count);
   3893 	BCM_PACK_U32(buf, var->K);
   3894 	BCM_PACK_U32(buf, var->sample_size_M);
   3895 	BCM_PACK_U32(buf, var->Nv);
   3896 	BCM_PACK_U32(buf, var->Na);
   3897 	BCM_PACK_U32(buf, var->Nc);
   3898 	BCM_PACK_U32(buf, var->frame_sync_mode);
   3899 	BCM_PACK_U32(buf, var->basic_frame_offset);
   3900 	BCM_PACK_U32(buf, var->radio_frame_offset);
   3901 	BCM_PACK_U32(buf, var->hyper_frame_offset);
   3902 	BCM_PACK_U32(buf, var->num_samples_per_roe_pkt);
   3903 	BCM_PACK_U32(buf, var->truncation_enable);
   3904 	BCM_PACK_U32(buf, var->truncation_mode);
   3905 	BCM_PACK_U32(buf, var->compress_mode);
   3906 	BCM_PACK_U8(buf, var->priority);
   3907 	BCM_PACK_U16(buf, var->rx_queue_size);
   3908 	BCM_PACK_U16(buf, var->cycle_size);
   3909 	return buf;
   3910 }
   3911 
   3912 uint8 *
   3913 _bcm_unpack_cpri_axc_frame_info(uint8 *buf, bcm_cpri_axc_frame_info_t *var)
   3914 {
   3915 	BCM_UNPACK_U32(buf, var->axc_id);
   3916 	BCM_UNPACK_U32(buf, var->start_bit);
   3917 	BCM_UNPACK_U32(buf, var->num_bits);
   3918 	BCM_UNPACK_U32(buf, var->map_method);
   3919 	BCM_UNPACK_U32(buf, var->stuffing_count);
   3920 	BCM_UNPACK_U32(buf, var->K);
   3921 	BCM_UNPACK_U32(buf, var->sample_size_M);
   3922 	BCM_UNPACK_U32(buf, var->Nv);
   3923 	BCM_UNPACK_U32(buf, var->Na);
   3924 	BCM_UNPACK_U32(buf, var->Nc);
   3925 	BCM_UNPACK_U32(buf, var->frame_sync_mode);
   3926 	BCM_UNPACK_U32(buf, var->basic_frame_offset);
   3927 	BCM_UNPACK_U32(buf, var->radio_frame_offset);
   3928 	BCM_UNPACK_U32(buf, var->hyper_frame_offset);
   3929 	BCM_UNPACK_U32(buf, var->num_samples_per_roe_pkt);
   3930 	BCM_UNPACK_U32(buf, var->truncation_enable);
   3931 	BCM_UNPACK_U32(buf, var->truncation_mode);
   3932 	BCM_UNPACK_U32(buf, var->compress_mode);
   3933 	BCM_UNPACK_U8(buf, var->priority);
   3934 	BCM_UNPACK_U16(buf, var->rx_queue_size);
   3935 	BCM_UNPACK_U16(buf, var->cycle_size);
   3936 	return buf;
   3937 }
   3938 
   3939 uint8 *
   3940 _bcm_pack_cpri_control_tag_config(uint8 *buf, bcm_cpri_control_tag_config_t *var)
   3941 {
   3942 	BCM_PACK_U32(buf, var->default_tag);
   3943 	BCM_PACK_U32(buf, var->no_match_tag);
   3944 	return buf;
   3945 }
   3946 
   3947 uint8 *
   3948 _bcm_unpack_cpri_control_tag_config(uint8 *buf, bcm_cpri_control_tag_config_t *var)
   3949 {
   3950 	BCM_UNPACK_U32(buf, var->default_tag);
   3951 	BCM_UNPACK_U32(buf, var->no_match_tag);
   3952 	return buf;
   3953 }
   3954 
   3955 uint8 *
   3956 _bcm_pack_cpri_cw_l1_config_info(uint8 *buf, bcm_cpri_cw_l1_config_info_t *var)
   3957 {
   3958 	BCM_PACK_U32(buf, var->enet_ptr);
   3959 	BCM_PACK_U32(buf, var->l1_fun);
   3960 	BCM_PACK_U32(buf, var->hdlc_rate);
   3961 	BCM_PACK_U32(buf, var->protocol_ver);
   3962 	return buf;
   3963 }
   3964 
   3965 uint8 *
   3966 _bcm_unpack_cpri_cw_l1_config_info(uint8 *buf, bcm_cpri_cw_l1_config_info_t *var)
   3967 {
   3968 	BCM_UNPACK_U32(buf, var->enet_ptr);
   3969 	BCM_UNPACK_U32(buf, var->l1_fun);
   3970 	BCM_UNPACK_U32(buf, var->hdlc_rate);
   3971 	BCM_UNPACK_U32(buf, var->protocol_ver);
   3972 	return buf;
   3973 }
   3974 
   3975 uint8 *
   3976 _bcm_pack_cpri_cw_l1_protocol_info(uint8 *buf, bcm_cpri_cw_l1_protocol_info_t *var)
   3977 {
   3978 	BCM_PACK_U32(buf, var->protocol_ver);
   3979 	BCM_PACK_U32(buf, var->hdlc_rate);
   3980 	BCM_PACK_U32(buf, var->reset);
   3981 	BCM_PACK_U32(buf, var->l1_lof);
   3982 	BCM_PACK_U32(buf, var->l1_los);
   3983 	BCM_PACK_U32(buf, var->l1_sdi);
   3984 	BCM_PACK_U32(buf, var->l1_rai);
   3985 	BCM_PACK_U32(buf, var->eth_pointer);
   3986 	return buf;
   3987 }
   3988 
   3989 uint8 *
   3990 _bcm_unpack_cpri_cw_l1_protocol_info(uint8 *buf, bcm_cpri_cw_l1_protocol_info_t *var)
   3991 {
   3992 	BCM_UNPACK_U32(buf, var->protocol_ver);
   3993 	BCM_UNPACK_U32(buf, var->hdlc_rate);
   3994 	BCM_UNPACK_U32(buf, var->reset);
   3995 	BCM_UNPACK_U32(buf, var->l1_lof);
   3996 	BCM_UNPACK_U32(buf, var->l1_los);
   3997 	BCM_UNPACK_U32(buf, var->l1_sdi);
   3998 	BCM_UNPACK_U32(buf, var->l1_rai);
   3999 	BCM_UNPACK_U32(buf, var->eth_pointer);
   4000 	return buf;
   4001 }
   4002 
   4003 uint8 *
   4004 _bcm_pack_cpri_cw_sync_info(uint8 *buf, bcm_cpri_cw_sync_info_t *var)
   4005 {
   4006 	BCM_PACK_U32(buf, var->hfn);
   4007 	BCM_PACK_U32(buf, var->bfn);
   4008 	return buf;
   4009 }
   4010 
   4011 uint8 *
   4012 _bcm_unpack_cpri_cw_sync_info(uint8 *buf, bcm_cpri_cw_sync_info_t *var)
   4013 {
   4014 	BCM_UNPACK_U32(buf, var->hfn);
   4015 	BCM_UNPACK_U32(buf, var->bfn);
   4016 	return buf;
   4017 }
   4018 
   4019 uint8 *
   4020 _bcm_pack_cpri_dbm_position_entry(uint8 *buf, bcm_cpri_dbm_position_entry_t *var)
   4021 {
   4022 	BCM_PACK_U8(buf, var->valid);
   4023 	BCM_PACK_U8(buf, var->flow_id);
   4024 	BCM_PACK_U32(buf, var->flow_type);
   4025 	BCM_PACK_U8(buf, var->index);
   4026 	return buf;
   4027 }
   4028 
   4029 uint8 *
   4030 _bcm_unpack_cpri_dbm_position_entry(uint8 *buf, bcm_cpri_dbm_position_entry_t *var)
   4031 {
   4032 	BCM_UNPACK_U8(buf, var->valid);
   4033 	BCM_UNPACK_U8(buf, var->flow_id);
   4034 	BCM_UNPACK_U32(buf, var->flow_type);
   4035 	BCM_UNPACK_U8(buf, var->index);
   4036 	return buf;
   4037 }
   4038 
   4039 uint8 *
   4040 _bcm_pack_cpri_decap_flow_config(uint8 *buf, bcm_cpri_decap_flow_config_t *var)
   4041 {
   4042 	BCM_PACK_U32(buf, var->flow_type);
   4043 	BCM_PACK_U32(buf, var->lookup_option);
   4044 	BCM_PACK_U32(buf, var->queue_num);
   4045 	return buf;
   4046 }
   4047 
   4048 uint8 *
   4049 _bcm_unpack_cpri_decap_flow_config(uint8 *buf, bcm_cpri_decap_flow_config_t *var)
   4050 {
   4051 	BCM_UNPACK_U32(buf, var->flow_type);
   4052 	BCM_UNPACK_U32(buf, var->lookup_option);
   4053 	BCM_UNPACK_U32(buf, var->queue_num);
   4054 	return buf;
   4055 }
   4056 
   4057 uint8 *
   4058 _bcm_pack_cpri_decap_presentation_config(uint8 *buf, bcm_cpri_decap_presentation_config_t *var)
   4059 {
   4060 	BCM_PACK_U32(buf, var->time_mod_offset);
   4061 	BCM_PACK_U32(buf, var->mod_count);
   4062 	return buf;
   4063 }
   4064 
   4065 uint8 *
   4066 _bcm_unpack_cpri_decap_presentation_config(uint8 *buf, bcm_cpri_decap_presentation_config_t *var)
   4067 {
   4068 	BCM_UNPACK_U32(buf, var->time_mod_offset);
   4069 	BCM_UNPACK_U32(buf, var->mod_count);
   4070 	return buf;
   4071 }
   4072 
   4073 uint8 *
   4074 _bcm_pack_cpri_decap_roe_oi(uint8 *buf, bcm_cpri_decap_roe_oi_t *var)
   4075 {
   4076 	BCM_PACK_U32(buf, var->info_type);
   4077 	BCM_PACK_U32(buf, var->pcnt_size);
   4078 	BCM_PACK_U32(buf, var->pcnt_increment);
   4079 	BCM_PACK_U32(buf, var->pcnt_max);
   4080 	BCM_PACK_U32(buf, var->p_inc_p2);
   4081 	BCM_PACK_U32(buf, var->p_bias);
   4082 	BCM_PACK_U32(buf, var->qcnt_size);
   4083 	BCM_PACK_U32(buf, var->qcnt_increment);
   4084 	BCM_PACK_U32(buf, var->qcnt_max);
   4085 	BCM_PACK_U32(buf, var->q_inc_p2);
   4086 	BCM_PACK_U32(buf, var->q_bias);
   4087 	BCM_PACK_U8(buf, var->p_ext);
   4088 	BCM_PACK_U8(buf, var->gsm_tsn_bitmap);
   4089 	BCM_PACK_U32(buf, var->pcnt_pkt_count);
   4090 	BCM_PACK_U32(buf, var->modulo_2);
   4091 	BCM_PACK_U32(buf, var->seq_rsvd);
   4092 	return buf;
   4093 }
   4094 
   4095 uint8 *
   4096 _bcm_unpack_cpri_decap_roe_oi(uint8 *buf, bcm_cpri_decap_roe_oi_t *var)
   4097 {
   4098 	BCM_UNPACK_U32(buf, var->info_type);
   4099 	BCM_UNPACK_U32(buf, var->pcnt_size);
   4100 	BCM_UNPACK_U32(buf, var->pcnt_increment);
   4101 	BCM_UNPACK_U32(buf, var->pcnt_max);
   4102 	BCM_UNPACK_U32(buf, var->p_inc_p2);
   4103 	BCM_UNPACK_U32(buf, var->p_bias);
   4104 	BCM_UNPACK_U32(buf, var->qcnt_size);
   4105 	BCM_UNPACK_U32(buf, var->qcnt_increment);
   4106 	BCM_UNPACK_U32(buf, var->qcnt_max);
   4107 	BCM_UNPACK_U32(buf, var->q_inc_p2);
   4108 	BCM_UNPACK_U32(buf, var->q_bias);
   4109 	BCM_UNPACK_U8(buf, var->p_ext);
   4110 	BCM_UNPACK_U8(buf, var->gsm_tsn_bitmap);
   4111 	BCM_UNPACK_U32(buf, var->pcnt_pkt_count);
   4112 	BCM_UNPACK_U32(buf, var->modulo_2);
   4113 	BCM_UNPACK_U32(buf, var->seq_rsvd);
   4114 	return buf;
   4115 }
   4116 
   4117 uint8 *
   4118 _bcm_pack_cpri_encap_info(uint8 *buf, bcm_cpri_encap_info_t *var)
   4119 {
   4120 	BCM_PACK_U32(buf, var->flags);
   4121 	BCM_PACK_U16(buf, var->flow_id);
   4122 	BCM_PACK_U32(buf, var->subtype);
   4123 	BCM_PACK_U32(buf, var->hdr_type);
   4124 	BCM_PACK_U32(buf, var->roe_ordering_info_index);
   4125 	BCM_PACK_U32(buf, var->macda_index);
   4126 	BCM_PACK_U32(buf, var->macsa_index);
   4127 	BCM_PACK_U32(buf, var->vlan_type);
   4128 	BCM_PACK_U32(buf, var->vlan0_idx);
   4129 	BCM_PACK_U32(buf, var->vlan1_idx);
   4130 	BCM_PACK_U32(buf, var->vlan0_priority);
   4131 	BCM_PACK_U32(buf, var->vlan1_priority);
   4132 	BCM_PACK_U8(buf, var->vlan_ethertype_idx);
   4133 	BCM_PACK_U32(buf, var->opcode);
   4134 	BCM_PACK_U32(buf, var->type);
   4135 	BCM_PACK_U8(buf, var->version);
   4136 	BCM_PACK_U32(buf, var->ecpri_pc_id);
   4137 	BCM_PACK_U32(buf, var->ecpri_msg_type);
   4138 	return buf;
   4139 }
   4140 
   4141 uint8 *
   4142 _bcm_unpack_cpri_encap_info(uint8 *buf, bcm_cpri_encap_info_t *var)
   4143 {
   4144 	BCM_UNPACK_U32(buf, var->flags);
   4145 	BCM_UNPACK_U16(buf, var->flow_id);
   4146 	BCM_UNPACK_U32(buf, var->subtype);
   4147 	BCM_UNPACK_U32(buf, var->hdr_type);
   4148 	BCM_UNPACK_U32(buf, var->roe_ordering_info_index);
   4149 	BCM_UNPACK_U32(buf, var->macda_index);
   4150 	BCM_UNPACK_U32(buf, var->macsa_index);
   4151 	BCM_UNPACK_U32(buf, var->vlan_type);
   4152 	BCM_UNPACK_U32(buf, var->vlan0_idx);
   4153 	BCM_UNPACK_U32(buf, var->vlan1_idx);
   4154 	BCM_UNPACK_U32(buf, var->vlan0_priority);
   4155 	BCM_UNPACK_U32(buf, var->vlan1_priority);
   4156 	BCM_UNPACK_U8(buf, var->vlan_ethertype_idx);
   4157 	BCM_UNPACK_U32(buf, var->opcode);
   4158 	BCM_UNPACK_U32(buf, var->type);
   4159 	BCM_UNPACK_U8(buf, var->version);
   4160 	BCM_UNPACK_U32(buf, var->ecpri_pc_id);
   4161 	BCM_UNPACK_U32(buf, var->ecpri_msg_type);
   4162 	return buf;
   4163 }
   4164 
   4165 uint8 *
   4166 _bcm_pack_cpri_encap_roe_oi(uint8 *buf, bcm_cpri_encap_roe_oi_t *var)
   4167 {
   4168 	BCM_PACK_U32(buf, var->info_type);
   4169 	BCM_PACK_U32(buf, var->p_seq_incr);
   4170 	BCM_PACK_U32(buf, var->q_seq_incr);
   4171 	BCM_PACK_U32(buf, var->pcnt_size);
   4172 	BCM_PACK_U32(buf, var->pcnt_increment);
   4173 	BCM_PACK_U32(buf, var->pcnt_max);
   4174 	BCM_PACK_U32(buf, var->qcnt_size);
   4175 	BCM_PACK_U32(buf, var->qcnt_increment);
   4176 	BCM_PACK_U32(buf, var->qcnt_max);
   4177 	BCM_PACK_U32(buf, var->seq_rsvd);
   4178 	return buf;
   4179 }
   4180 
   4181 uint8 *
   4182 _bcm_unpack_cpri_encap_roe_oi(uint8 *buf, bcm_cpri_encap_roe_oi_t *var)
   4183 {
   4184 	BCM_UNPACK_U32(buf, var->info_type);
   4185 	BCM_UNPACK_U32(buf, var->p_seq_incr);
   4186 	BCM_UNPACK_U32(buf, var->q_seq_incr);
   4187 	BCM_UNPACK_U32(buf, var->pcnt_size);
   4188 	BCM_UNPACK_U32(buf, var->pcnt_increment);
   4189 	BCM_UNPACK_U32(buf, var->pcnt_max);
   4190 	BCM_UNPACK_U32(buf, var->qcnt_size);
   4191 	BCM_UNPACK_U32(buf, var->qcnt_increment);
   4192 	BCM_UNPACK_U32(buf, var->qcnt_max);
   4193 	BCM_UNPACK_U32(buf, var->seq_rsvd);
   4194 	return buf;
   4195 }
   4196 
   4197 uint8 *
   4198 _bcm_pack_cpri_encap_vlan_config(uint8 *buf, bcm_cpri_encap_vlan_config_t *var)
   4199 {
   4200 	BCM_PACK_U32(buf, var->ethertype_vlan_tagged);
   4201 	BCM_PACK_U32(buf, var->ethertype_vlan_qinq);
   4202 	BCM_PACK_U32(buf, var->roe_ethertype_0);
   4203 	BCM_PACK_U32(buf, var->roe_ethertype_1);
   4204 	return buf;
   4205 }
   4206 
   4207 uint8 *
   4208 _bcm_unpack_cpri_encap_vlan_config(uint8 *buf, bcm_cpri_encap_vlan_config_t *var)
   4209 {
   4210 	BCM_UNPACK_U32(buf, var->ethertype_vlan_tagged);
   4211 	BCM_UNPACK_U32(buf, var->ethertype_vlan_qinq);
   4212 	BCM_UNPACK_U32(buf, var->roe_ethertype_0);
   4213 	BCM_UNPACK_U32(buf, var->roe_ethertype_1);
   4214 	return buf;
   4215 }
   4216 
   4217 uint8 *
   4218 _bcm_pack_cpri_fast_eth_config_info(uint8 *buf, bcm_cpri_fast_eth_config_info_t *var)
   4219 {
   4220 	BCM_PACK_U32(buf, var->sub_channel_start);
   4221 	BCM_PACK_U32(buf, var->sub_channel_size);
   4222 	BCM_PACK_U32(buf, var->cw_sel);
   4223 	BCM_PACK_U32(buf, var->cw_size);
   4224 	BCM_PACK_U32(buf, var->queue_num);
   4225 	BCM_PACK_U32(buf, var->ignore_fcs_err);
   4226 	BCM_PACK_U32(buf, var->min_pkt_size);
   4227 	BCM_PACK_U32(buf, var->max_pkt_size);
   4228 	BCM_PACK_U32(buf, var->drop_min_pkt_size);
   4229 	BCM_PACK_U32(buf, var->drop_max_pkt_size);
   4230 	BCM_PACK_U32(buf, var->strip_crc);
   4231 	BCM_PACK_U32(buf, var->min_ipg);
   4232 	BCM_PACK_U32(buf, var->crc_mode);
   4233 	BCM_PACK_U32(buf, var->priority);
   4234 	BCM_PACK_U32(buf, var->queue_size);
   4235 	BCM_PACK_U32(buf, var->cycle_size);
   4236 	BCM_PACK_U32(buf, var->buffer_size);
   4237 	return buf;
   4238 }
   4239 
   4240 uint8 *
   4241 _bcm_unpack_cpri_fast_eth_config_info(uint8 *buf, bcm_cpri_fast_eth_config_info_t *var)
   4242 {
   4243 	BCM_UNPACK_U32(buf, var->sub_channel_start);
   4244 	BCM_UNPACK_U32(buf, var->sub_channel_size);
   4245 	BCM_UNPACK_U32(buf, var->cw_sel);
   4246 	BCM_UNPACK_U32(buf, var->cw_size);
   4247 	BCM_UNPACK_U32(buf, var->queue_num);
   4248 	BCM_UNPACK_U32(buf, var->ignore_fcs_err);
   4249 	BCM_UNPACK_U32(buf, var->min_pkt_size);
   4250 	BCM_UNPACK_U32(buf, var->max_pkt_size);
   4251 	BCM_UNPACK_U32(buf, var->drop_min_pkt_size);
   4252 	BCM_UNPACK_U32(buf, var->drop_max_pkt_size);
   4253 	BCM_UNPACK_U32(buf, var->strip_crc);
   4254 	BCM_UNPACK_U32(buf, var->min_ipg);
   4255 	BCM_UNPACK_U32(buf, var->crc_mode);
   4256 	BCM_UNPACK_U32(buf, var->priority);
   4257 	BCM_UNPACK_U32(buf, var->queue_size);
   4258 	BCM_UNPACK_U32(buf, var->cycle_size);
   4259 	BCM_UNPACK_U32(buf, var->buffer_size);
   4260 	return buf;
   4261 }
   4262 
   4263 uint8 *
   4264 _bcm_pack_cpri_fec_timestamp_config(uint8 *buf, bcm_cpri_fec_timestamp_config_t *var)
   4265 {
   4266 	BCM_PACK_U32(buf, var->enable);
   4267 	BCM_PACK_U32(buf, var->fec_fifo_ts_source_select);
   4268 	BCM_PACK_U32(buf, var->fec_cmic_ts_source_select);
   4269 	BCM_PACK_U32(buf, var->control_bit_offset_0);
   4270 	BCM_PACK_U32(buf, var->control_bit_offset_1);
   4271 	BCM_PACK_U32(buf, var->control_bit_offset_2);
   4272 	BCM_PACK_U32(buf, var->control_bit_offset_3);
   4273 	return buf;
   4274 }
   4275 
   4276 uint8 *
   4277 _bcm_unpack_cpri_fec_timestamp_config(uint8 *buf, bcm_cpri_fec_timestamp_config_t *var)
   4278 {
   4279 	BCM_UNPACK_U32(buf, var->enable);
   4280 	BCM_UNPACK_U32(buf, var->fec_fifo_ts_source_select);
   4281 	BCM_UNPACK_U32(buf, var->fec_cmic_ts_source_select);
   4282 	BCM_UNPACK_U32(buf, var->control_bit_offset_0);
   4283 	BCM_UNPACK_U32(buf, var->control_bit_offset_1);
   4284 	BCM_UNPACK_U32(buf, var->control_bit_offset_2);
   4285 	BCM_UNPACK_U32(buf, var->control_bit_offset_3);
   4286 	return buf;
   4287 }
   4288 
   4289 uint8 *
   4290 _bcm_pack_cpri_modulo_rule_entry(uint8 *buf, bcm_cpri_modulo_rule_entry_t *var)
   4291 {
   4292 	BCM_PACK_U8(buf, var->active);
   4293 	BCM_PACK_U32(buf, var->modulo_value);
   4294 	BCM_PACK_U8(buf, var->modulo_index);
   4295 	BCM_PACK_U8(buf, var->dbm_enable);
   4296 	BCM_PACK_U8(buf, var->dbm_dbm_id);
   4297 	BCM_PACK_U32(buf, var->flow_type);
   4298 	return buf;
   4299 }
   4300 
   4301 uint8 *
   4302 _bcm_unpack_cpri_modulo_rule_entry(uint8 *buf, bcm_cpri_modulo_rule_entry_t *var)
   4303 {
   4304 	BCM_UNPACK_U8(buf, var->active);
   4305 	BCM_UNPACK_U32(buf, var->modulo_value);
   4306 	BCM_UNPACK_U8(buf, var->modulo_index);
   4307 	BCM_UNPACK_U8(buf, var->dbm_enable);
   4308 	BCM_UNPACK_U8(buf, var->dbm_dbm_id);
   4309 	BCM_UNPACK_U32(buf, var->flow_type);
   4310 	return buf;
   4311 }
   4312 
   4313 uint8 *
   4314 _bcm_pack_cpri_port_agnostic_config(uint8 *buf, bcm_cpri_port_agnostic_config_t *var)
   4315 {
   4316 	BCM_PACK_U32(buf, var->frame_sync_mode);
   4317 	BCM_PACK_U32(buf, var->basic_frame_offset);
   4318 	BCM_PACK_U32(buf, var->radio_frame_offset);
   4319 	BCM_PACK_U32(buf, var->hyper_frame_offset);
   4320 	BCM_PACK_U32(buf, var->payload_multiple);
   4321 	BCM_PACK_U32(buf, var->presentation_mod_count);
   4322 	BCM_PACK_U32(buf, var->presentation_mod_offset);
   4323 	BCM_PACK_U32(buf, var->tx_queue_mod_cnt);
   4324 	BCM_PACK_U32(buf, var->ordering_info_option);
   4325 	return buf;
   4326 }
   4327 
   4328 uint8 *
   4329 _bcm_unpack_cpri_port_agnostic_config(uint8 *buf, bcm_cpri_port_agnostic_config_t *var)
   4330 {
   4331 	BCM_UNPACK_U32(buf, var->frame_sync_mode);
   4332 	BCM_UNPACK_U32(buf, var->basic_frame_offset);
   4333 	BCM_UNPACK_U32(buf, var->radio_frame_offset);
   4334 	BCM_UNPACK_U32(buf, var->hyper_frame_offset);
   4335 	BCM_UNPACK_U32(buf, var->payload_multiple);
   4336 	BCM_UNPACK_U32(buf, var->presentation_mod_count);
   4337 	BCM_UNPACK_U32(buf, var->presentation_mod_offset);
   4338 	BCM_UNPACK_U32(buf, var->tx_queue_mod_cnt);
   4339 	BCM_UNPACK_U32(buf, var->ordering_info_option);
   4340 	return buf;
   4341 }
   4342 
   4343 uint8 *
   4344 _bcm_pack_cpri_port_frame_config(uint8 *buf, bcm_cpri_port_frame_config_t *var)
   4345 {
   4346 	BCM_PACK_U32(buf, var->port_frame_format);
   4347 	BCM_PACK_U32(buf, var->decap_primary_key);
   4348 	BCM_PACK_U32(buf, var->decap_secondary_key);
   4349 	return buf;
   4350 }
   4351 
   4352 uint8 *
   4353 _bcm_unpack_cpri_port_frame_config(uint8 *buf, bcm_cpri_port_frame_config_t *var)
   4354 {
   4355 	BCM_UNPACK_U32(buf, var->port_frame_format);
   4356 	BCM_UNPACK_U32(buf, var->decap_primary_key);
   4357 	BCM_UNPACK_U32(buf, var->decap_secondary_key);
   4358 	return buf;
   4359 }
   4360 
   4361 uint8 *
   4362 _bcm_pack_cpri_port_rsvd4_agnostic_config(uint8 *buf, bcm_cpri_port_rsvd4_agnostic_config_t *var)
   4363 {
   4364 	BCM_PACK_U32(buf, var->ordering_info_option);
   4365 	BCM_PACK_U32(buf, var->sync_mode);
   4366 	BCM_PACK_U32(buf, var->payload_multiple);
   4367 	BCM_PACK_U32(buf, var->master_frame_offset);
   4368 	BCM_PACK_U32(buf, var->message_group_offset);
   4369 	BCM_PACK_U32(buf, var->presentation_mod_count);
   4370 	BCM_PACK_U32(buf, var->presentation_mod_offset);
   4371 	BCM_PACK_U32(buf, var->tx_queue_mod_count);
   4372 	return buf;
   4373 }
   4374 
   4375 uint8 *
   4376 _bcm_unpack_cpri_port_rsvd4_agnostic_config(uint8 *buf, bcm_cpri_port_rsvd4_agnostic_config_t *var)
   4377 {
   4378 	BCM_UNPACK_U32(buf, var->ordering_info_option);
   4379 	BCM_UNPACK_U32(buf, var->sync_mode);
   4380 	BCM_UNPACK_U32(buf, var->payload_multiple);
   4381 	BCM_UNPACK_U32(buf, var->master_frame_offset);
   4382 	BCM_UNPACK_U32(buf, var->message_group_offset);
   4383 	BCM_UNPACK_U32(buf, var->presentation_mod_count);
   4384 	BCM_UNPACK_U32(buf, var->presentation_mod_offset);
   4385 	BCM_UNPACK_U32(buf, var->tx_queue_mod_count);
   4386 	return buf;
   4387 }
   4388 
   4389 uint8 *
   4390 _bcm_pack_cpri_port_tunnel_config(uint8 *buf, bcm_cpri_port_tunnel_config_t *var)
   4391 {
   4392 	BCM_PACK_U32(buf, var->payload_size);
   4393 	BCM_PACK_U32(buf, var->ordering_info_option);
   4394 	BCM_PACK_U32(buf, var->presentation_mod_count);
   4395 	BCM_PACK_U32(buf, var->presentation_mod_offset);
   4396 	BCM_PACK_U32(buf, var->tx_queue_mod_count);
   4397 	return buf;
   4398 }
   4399 
   4400 uint8 *
   4401 _bcm_unpack_cpri_port_tunnel_config(uint8 *buf, bcm_cpri_port_tunnel_config_t *var)
   4402 {
   4403 	BCM_UNPACK_U32(buf, var->payload_size);
   4404 	BCM_UNPACK_U32(buf, var->ordering_info_option);
   4405 	BCM_UNPACK_U32(buf, var->presentation_mod_count);
   4406 	BCM_UNPACK_U32(buf, var->presentation_mod_offset);
   4407 	BCM_UNPACK_U32(buf, var->tx_queue_mod_count);
   4408 	return buf;
   4409 }
   4410 
   4411 uint8 *
   4412 _bcm_pack_cpri_roe_oi_seq_offset(uint8 *buf, bcm_cpri_roe_oi_seq_offset_t *var)
   4413 {
   4414 	BCM_PACK_U32(buf, var->pcnt_size);
   4415 	BCM_PACK_U32(buf, var->pcnt_offset);
   4416 	BCM_PACK_U32(buf, var->qcnt_size);
   4417 	BCM_PACK_U32(buf, var->qcnt_offset);
   4418 	return buf;
   4419 }
   4420 
   4421 uint8 *
   4422 _bcm_unpack_cpri_roe_oi_seq_offset(uint8 *buf, bcm_cpri_roe_oi_seq_offset_t *var)
   4423 {
   4424 	BCM_UNPACK_U32(buf, var->pcnt_size);
   4425 	BCM_UNPACK_U32(buf, var->pcnt_offset);
   4426 	BCM_UNPACK_U32(buf, var->qcnt_size);
   4427 	BCM_UNPACK_U32(buf, var->qcnt_offset);
   4428 	return buf;
   4429 }
   4430 
   4431 uint8 *
   4432 _bcm_pack_cpri_rx_gcw_config_info(uint8 *buf, bcm_cpri_rx_gcw_config_info_t *var)
   4433 {
   4434 	BCM_PACK_U32(buf, var->Ns);
   4435 	BCM_PACK_U32(buf, var->Xs);
   4436 	BCM_PACK_U32(buf, var->Y);
   4437 	BCM_PACK_U32(buf, var->mask);
   4438 	BCM_PACK_U32(buf, var->filter_mode);
   4439 	BCM_PACK_U32(buf, var->hfn_index);
   4440 	BCM_PACK_U32(buf, var->hfn_modulo);
   4441 	BCM_PACK_U32(buf, var->match_value);
   4442 	BCM_PACK_U32(buf, var->match_mask);
   4443 	return buf;
   4444 }
   4445 
   4446 uint8 *
   4447 _bcm_unpack_cpri_rx_gcw_config_info(uint8 *buf, bcm_cpri_rx_gcw_config_info_t *var)
   4448 {
   4449 	BCM_UNPACK_U32(buf, var->Ns);
   4450 	BCM_UNPACK_U32(buf, var->Xs);
   4451 	BCM_UNPACK_U32(buf, var->Y);
   4452 	BCM_UNPACK_U32(buf, var->mask);
   4453 	BCM_UNPACK_U32(buf, var->filter_mode);
   4454 	BCM_UNPACK_U32(buf, var->hfn_index);
   4455 	BCM_UNPACK_U32(buf, var->hfn_modulo);
   4456 	BCM_UNPACK_U32(buf, var->match_value);
   4457 	BCM_UNPACK_U32(buf, var->match_mask);
   4458 	return buf;
   4459 }
   4460 
   4461 uint8 *
   4462 _bcm_pack_cpri_rx_rsvd5_config_info(uint8 *buf, bcm_cpri_rx_rsvd5_config_info_t *var)
   4463 {
   4464 	BCM_PACK_U32(buf, var->schan_start);
   4465 	BCM_PACK_U32(buf, var->schan_size);
   4466 	BCM_PACK_U32(buf, var->disable_parity_check);
   4467 	BCM_PACK_U32(buf, var->queue_num);
   4468 	BCM_PACK_U32(buf, var->priority);
   4469 	BCM_PACK_U32(buf, var->queue_size);
   4470 	return buf;
   4471 }
   4472 
   4473 uint8 *
   4474 _bcm_unpack_cpri_rx_rsvd5_config_info(uint8 *buf, bcm_cpri_rx_rsvd5_config_info_t *var)
   4475 {
   4476 	BCM_UNPACK_U32(buf, var->schan_start);
   4477 	BCM_UNPACK_U32(buf, var->schan_size);
   4478 	BCM_UNPACK_U32(buf, var->disable_parity_check);
   4479 	BCM_UNPACK_U32(buf, var->queue_num);
   4480 	BCM_UNPACK_U32(buf, var->priority);
   4481 	BCM_UNPACK_U32(buf, var->queue_size);
   4482 	return buf;
   4483 }
   4484 
   4485 uint8 *
   4486 _bcm_pack_cpri_rx_vsd_config_info(uint8 *buf, bcm_cpri_rx_vsd_config_info_t *var)
   4487 {
   4488 	BCM_PACK_U32(buf, var->subchan_start);
   4489 	BCM_PACK_U32(buf, var->subchan_size);
   4490 	BCM_PACK_U32(buf, var->subchan_bytes);
   4491 	BCM_PACK_U32(buf, var->subchan_step);
   4492 	BCM_PACK_U32(buf, var->queue_num);
   4493 	BCM_PACK_U32(buf, var->vsd_valid_sector_mask[0]);
   4494 	BCM_PACK_U32(buf, var->vsd_valid_sector_mask[1]);
   4495 	BCM_PACK_U32(buf, var->vsd_valid_sector_mask[2]);
   4496 	BCM_PACK_U32(buf, var->vsd_valid_sector_mask[3]);
   4497 	BCM_PACK_U32(buf, var->priority);
   4498 	BCM_PACK_U32(buf, var->queue_size);
   4499 	BCM_PACK_U32(buf, var->flow_bytes);
   4500 	return buf;
   4501 }
   4502 
   4503 uint8 *
   4504 _bcm_unpack_cpri_rx_vsd_config_info(uint8 *buf, bcm_cpri_rx_vsd_config_info_t *var)
   4505 {
   4506 	BCM_UNPACK_U32(buf, var->subchan_start);
   4507 	BCM_UNPACK_U32(buf, var->subchan_size);
   4508 	BCM_UNPACK_U32(buf, var->subchan_bytes);
   4509 	BCM_UNPACK_U32(buf, var->subchan_step);
   4510 	BCM_UNPACK_U32(buf, var->queue_num);
   4511 	BCM_UNPACK_U32(buf, var->vsd_valid_sector_mask[0]);
   4512 	BCM_UNPACK_U32(buf, var->vsd_valid_sector_mask[1]);
   4513 	BCM_UNPACK_U32(buf, var->vsd_valid_sector_mask[2]);
   4514 	BCM_UNPACK_U32(buf, var->vsd_valid_sector_mask[3]);
   4515 	BCM_UNPACK_U32(buf, var->priority);
   4516 	BCM_UNPACK_U32(buf, var->queue_size);
   4517 	BCM_UNPACK_U32(buf, var->flow_bytes);
   4518 	return buf;
   4519 }
   4520 
   4521 uint8 *
   4522 _bcm_pack_cpri_rx_vsd_flow_info(uint8 *buf, bcm_cpri_rx_vsd_flow_info_t *var)
   4523 {
   4524 	BCM_PACK_U32(buf, var->hyper_frame_number);
   4525 	BCM_PACK_U32(buf, var->hyper_frame_modulo);
   4526 	BCM_PACK_U32(buf, var->filter_zero_data);
   4527 	BCM_PACK_U32(buf, var->section_num[0]);
   4528 	BCM_PACK_U32(buf, var->section_num[1]);
   4529 	BCM_PACK_U32(buf, var->section_num[2]);
   4530 	BCM_PACK_U32(buf, var->section_num[3]);
   4531 	BCM_PACK_U32(buf, var->num_sector);
   4532 	BCM_PACK_U32(buf, var->tag_id);
   4533 	return buf;
   4534 }
   4535 
   4536 uint8 *
   4537 _bcm_unpack_cpri_rx_vsd_flow_info(uint8 *buf, bcm_cpri_rx_vsd_flow_info_t *var)
   4538 {
   4539 	BCM_UNPACK_U32(buf, var->hyper_frame_number);
   4540 	BCM_UNPACK_U32(buf, var->hyper_frame_modulo);
   4541 	BCM_UNPACK_U32(buf, var->filter_zero_data);
   4542 	BCM_UNPACK_U32(buf, var->section_num[0]);
   4543 	BCM_UNPACK_U32(buf, var->section_num[1]);
   4544 	BCM_UNPACK_U32(buf, var->section_num[2]);
   4545 	BCM_UNPACK_U32(buf, var->section_num[3]);
   4546 	BCM_UNPACK_U32(buf, var->num_sector);
   4547 	BCM_UNPACK_U32(buf, var->tag_id);
   4548 	return buf;
   4549 }
   4550 
   4551 uint8 *
   4552 _bcm_pack_cpri_rx_vsd_raw_config_info(uint8 *buf, bcm_cpri_rx_vsd_raw_config_info_t *var)
   4553 {
   4554 	BCM_PACK_U32(buf, var->schan_start);
   4555 	BCM_PACK_U32(buf, var->schan_size);
   4556 	BCM_PACK_U32(buf, var->cw_sel);
   4557 	BCM_PACK_U32(buf, var->cw_size);
   4558 	BCM_PACK_U32(buf, var->queue_num);
   4559 	BCM_PACK_U32(buf, var->match_mask);
   4560 	BCM_PACK_U32(buf, var->match_value);
   4561 	BCM_PACK_U32(buf, var->match_offset);
   4562 	BCM_PACK_U32(buf, var->hfn_modulo);
   4563 	BCM_PACK_U32(buf, var->hfn_offset);
   4564 	BCM_PACK_U32(buf, var->filter_mode);
   4565 	BCM_PACK_U32(buf, var->priority);
   4566 	BCM_PACK_U32(buf, var->queue_size);
   4567 	return buf;
   4568 }
   4569 
   4570 uint8 *
   4571 _bcm_unpack_cpri_rx_vsd_raw_config_info(uint8 *buf, bcm_cpri_rx_vsd_raw_config_info_t *var)
   4572 {
   4573 	BCM_UNPACK_U32(buf, var->schan_start);
   4574 	BCM_UNPACK_U32(buf, var->schan_size);
   4575 	BCM_UNPACK_U32(buf, var->cw_sel);
   4576 	BCM_UNPACK_U32(buf, var->cw_size);
   4577 	BCM_UNPACK_U32(buf, var->queue_num);
   4578 	BCM_UNPACK_U32(buf, var->match_mask);
   4579 	BCM_UNPACK_U32(buf, var->match_value);
   4580 	BCM_UNPACK_U32(buf, var->match_offset);
   4581 	BCM_UNPACK_U32(buf, var->hfn_modulo);
   4582 	BCM_UNPACK_U32(buf, var->hfn_offset);
   4583 	BCM_UNPACK_U32(buf, var->filter_mode);
   4584 	BCM_UNPACK_U32(buf, var->priority);
   4585 	BCM_UNPACK_U32(buf, var->queue_size);
   4586 	return buf;
   4587 }
   4588 
   4589 uint8 *
   4590 _bcm_pack_cpri_slow_hdlc_config_info(uint8 *buf, bcm_cpri_slow_hdlc_config_info_t *var)
   4591 {
   4592 	BCM_PACK_U32(buf, var->hdlc_crc_mode);
   4593 	BCM_PACK_U32(buf, var->tx_flag_size);
   4594 	BCM_PACK_U32(buf, var->tx_filling_pattern);
   4595 	BCM_PACK_U32(buf, var->crc_init_val);
   4596 	BCM_PACK_U32(buf, var->use_fe_mac);
   4597 	BCM_PACK_U32(buf, var->crc_byte_swap);
   4598 	BCM_PACK_U32(buf, var->no_fcs_err_check);
   4599 	BCM_PACK_U32(buf, var->hdlc_cw_sel);
   4600 	BCM_PACK_U32(buf, var->hdlc_cw_size);
   4601 	BCM_PACK_U32(buf, var->hdlc_fcs_size);
   4602 	BCM_PACK_U32(buf, var->hdlc_run_drop);
   4603 	BCM_PACK_U32(buf, var->hdlc_max_drop);
   4604 	BCM_PACK_U32(buf, var->hdlc_min_size);
   4605 	BCM_PACK_U32(buf, var->hdlc_max_size);
   4606 	BCM_PACK_U32(buf, var->hdlc_queue_num);
   4607 	BCM_PACK_U32(buf, var->priority);
   4608 	BCM_PACK_U32(buf, var->queue_size);
   4609 	BCM_PACK_U32(buf, var->cycle_size);
   4610 	BCM_PACK_U32(buf, var->buffer_size);
   4611 	return buf;
   4612 }
   4613 
   4614 uint8 *
   4615 _bcm_unpack_cpri_slow_hdlc_config_info(uint8 *buf, bcm_cpri_slow_hdlc_config_info_t *var)
   4616 {
   4617 	BCM_UNPACK_U32(buf, var->hdlc_crc_mode);
   4618 	BCM_UNPACK_U32(buf, var->tx_flag_size);
   4619 	BCM_UNPACK_U32(buf, var->tx_filling_pattern);
   4620 	BCM_UNPACK_U32(buf, var->crc_init_val);
   4621 	BCM_UNPACK_U32(buf, var->use_fe_mac);
   4622 	BCM_UNPACK_U32(buf, var->crc_byte_swap);
   4623 	BCM_UNPACK_U32(buf, var->no_fcs_err_check);
   4624 	BCM_UNPACK_U32(buf, var->hdlc_cw_sel);
   4625 	BCM_UNPACK_U32(buf, var->hdlc_cw_size);
   4626 	BCM_UNPACK_U32(buf, var->hdlc_fcs_size);
   4627 	BCM_UNPACK_U32(buf, var->hdlc_run_drop);
   4628 	BCM_UNPACK_U32(buf, var->hdlc_max_drop);
   4629 	BCM_UNPACK_U32(buf, var->hdlc_min_size);
   4630 	BCM_UNPACK_U32(buf, var->hdlc_max_size);
   4631 	BCM_UNPACK_U32(buf, var->hdlc_queue_num);
   4632 	BCM_UNPACK_U32(buf, var->priority);
   4633 	BCM_UNPACK_U32(buf, var->queue_size);
   4634 	BCM_UNPACK_U32(buf, var->cycle_size);
   4635 	BCM_UNPACK_U32(buf, var->buffer_size);
   4636 	return buf;
   4637 }
   4638 
   4639 uint8 *
   4640 _bcm_pack_cpri_tag_gen_entry(uint8 *buf, bcm_cpri_tag_gen_entry_t *var)
   4641 {
   4642 	BCM_PACK_U32(buf, var->tag_id);
   4643 	BCM_PACK_U32(buf, var->mask);
   4644 	BCM_PACK_U32(buf, var->header);
   4645 	BCM_PACK_U32(buf, var->word_count);
   4646 	return buf;
   4647 }
   4648 
   4649 uint8 *
   4650 _bcm_unpack_cpri_tag_gen_entry(uint8 *buf, bcm_cpri_tag_gen_entry_t *var)
   4651 {
   4652 	BCM_UNPACK_U32(buf, var->tag_id);
   4653 	BCM_UNPACK_U32(buf, var->mask);
   4654 	BCM_UNPACK_U32(buf, var->header);
   4655 	BCM_UNPACK_U32(buf, var->word_count);
   4656 	return buf;
   4657 }
   4658 
   4659 uint8 *
   4660 _bcm_pack_cpri_tx_cw_rsvd5_config_info(uint8 *buf, bcm_cpri_tx_cw_rsvd5_config_info_t *var)
   4661 {
   4662 	BCM_PACK_U32(buf, var->schan_start);
   4663 	BCM_PACK_U32(buf, var->schan_size);
   4664 	BCM_PACK_U32(buf, var->crc_check_enable);
   4665 	BCM_PACK_U32(buf, var->queue_num);
   4666 	BCM_PACK_U32(buf, var->cycle_size);
   4667 	BCM_PACK_U32(buf, var->buffer_size);
   4668 	return buf;
   4669 }
   4670 
   4671 uint8 *
   4672 _bcm_unpack_cpri_tx_cw_rsvd5_config_info(uint8 *buf, bcm_cpri_tx_cw_rsvd5_config_info_t *var)
   4673 {
   4674 	BCM_UNPACK_U32(buf, var->schan_start);
   4675 	BCM_UNPACK_U32(buf, var->schan_size);
   4676 	BCM_UNPACK_U32(buf, var->crc_check_enable);
   4677 	BCM_UNPACK_U32(buf, var->queue_num);
   4678 	BCM_UNPACK_U32(buf, var->cycle_size);
   4679 	BCM_UNPACK_U32(buf, var->buffer_size);
   4680 	return buf;
   4681 }
   4682 
   4683 uint8 *
   4684 _bcm_pack_cpri_tx_cw_vsd_raw_filter_info(uint8 *buf, bcm_cpri_tx_cw_vsd_raw_filter_info_t *var)
   4685 {
   4686 	BCM_PACK_U32(buf, var->bfn0_value);
   4687 	BCM_PACK_U32(buf, var->bfn0_mask);
   4688 	BCM_PACK_U32(buf, var->bfn1_value);
   4689 	BCM_PACK_U32(buf, var->bfn1_mask);
   4690 	return buf;
   4691 }
   4692 
   4693 uint8 *
   4694 _bcm_unpack_cpri_tx_cw_vsd_raw_filter_info(uint8 *buf, bcm_cpri_tx_cw_vsd_raw_filter_info_t *var)
   4695 {
   4696 	BCM_UNPACK_U32(buf, var->bfn0_value);
   4697 	BCM_UNPACK_U32(buf, var->bfn0_mask);
   4698 	BCM_UNPACK_U32(buf, var->bfn1_value);
   4699 	BCM_UNPACK_U32(buf, var->bfn1_mask);
   4700 	return buf;
   4701 }
   4702 
   4703 uint8 *
   4704 _bcm_pack_cpri_tx_frame_tgen_config(uint8 *buf, bcm_cpri_tx_frame_tgen_config_t *var)
   4705 {
   4706 	BCM_PACK_U32(buf, var->tx_tgen_hfn);
   4707 	BCM_PACK_U32(buf, var->tx_tgen_bfn);
   4708 	BCM_PACK_U32(buf, var->tx_tgen_bfn_sel);
   4709 	{
   4710 		uint32 _u32;
   4711 
   4712 		_u32 = COMPILER_64_HI(var->tx_tgen_ts_offset);
   4713 		BCM_PACK_U32(buf, _u32);
   4714 		_u32 = COMPILER_64_LO(var->tx_tgen_ts_offset);
   4715 		BCM_PACK_U32(buf, _u32);
   4716 	}
   4717 	return buf;
   4718 }
   4719 
   4720 uint8 *
   4721 _bcm_unpack_cpri_tx_frame_tgen_config(uint8 *buf, bcm_cpri_tx_frame_tgen_config_t *var)
   4722 {
   4723 	BCM_UNPACK_U32(buf, var->tx_tgen_hfn);
   4724 	BCM_UNPACK_U32(buf, var->tx_tgen_bfn);
   4725 	BCM_UNPACK_U32(buf, var->tx_tgen_bfn_sel);
   4726 	{
   4727 		uint32 _u32h, _u32l;
   4728 
   4729 		BCM_UNPACK_U32(buf, _u32h);
   4730 		BCM_UNPACK_U32(buf, _u32l);
   4731 		COMPILER_64_SET(var->tx_tgen_ts_offset, _u32h, _u32l);
   4732 	}
   4733 	return buf;
   4734 }
   4735 
   4736 uint8 *
   4737 _bcm_pack_cpri_tx_gcw_config_info(uint8 *buf, bcm_cpri_tx_gcw_config_info_t *var)
   4738 {
   4739 	BCM_PACK_U32(buf, var->Ns);
   4740 	BCM_PACK_U32(buf, var->Xs);
   4741 	BCM_PACK_U32(buf, var->Y);
   4742 	BCM_PACK_U32(buf, var->mask);
   4743 	BCM_PACK_U32(buf, var->repeat_mode);
   4744 	BCM_PACK_U32(buf, var->bfn0_filter_enable);
   4745 	BCM_PACK_U32(buf, var->bfn1_filter_enable);
   4746 	BCM_PACK_U32(buf, var->hfn_index);
   4747 	BCM_PACK_U32(buf, var->hfn_modulo);
   4748 	return buf;
   4749 }
   4750 
   4751 uint8 *
   4752 _bcm_unpack_cpri_tx_gcw_config_info(uint8 *buf, bcm_cpri_tx_gcw_config_info_t *var)
   4753 {
   4754 	BCM_UNPACK_U32(buf, var->Ns);
   4755 	BCM_UNPACK_U32(buf, var->Xs);
   4756 	BCM_UNPACK_U32(buf, var->Y);
   4757 	BCM_UNPACK_U32(buf, var->mask);
   4758 	BCM_UNPACK_U32(buf, var->repeat_mode);
   4759 	BCM_UNPACK_U32(buf, var->bfn0_filter_enable);
   4760 	BCM_UNPACK_U32(buf, var->bfn1_filter_enable);
   4761 	BCM_UNPACK_U32(buf, var->hfn_index);
   4762 	BCM_UNPACK_U32(buf, var->hfn_modulo);
   4763 	return buf;
   4764 }
   4765 
   4766 uint8 *
   4767 _bcm_pack_cpri_tx_gcw_tx_filter_info(uint8 *buf, bcm_cpri_tx_gcw_tx_filter_info_t *var)
   4768 {
   4769 	BCM_PACK_U32(buf, var->bfn0_value);
   4770 	BCM_PACK_U32(buf, var->bfn0_mask);
   4771 	BCM_PACK_U32(buf, var->bfn1_value);
   4772 	BCM_PACK_U32(buf, var->bfn1_mask);
   4773 	return buf;
   4774 }
   4775 
   4776 uint8 *
   4777 _bcm_unpack_cpri_tx_gcw_tx_filter_info(uint8 *buf, bcm_cpri_tx_gcw_tx_filter_info_t *var)
   4778 {
   4779 	BCM_UNPACK_U32(buf, var->bfn0_value);
   4780 	BCM_UNPACK_U32(buf, var->bfn0_mask);
   4781 	BCM_UNPACK_U32(buf, var->bfn1_value);
   4782 	BCM_UNPACK_U32(buf, var->bfn1_mask);
   4783 	return buf;
   4784 }
   4785 
   4786 uint8 *
   4787 _bcm_pack_cpri_tx_vsd_config_info(uint8 *buf, bcm_cpri_tx_vsd_config_info_t *var)
   4788 {
   4789 	BCM_PACK_U32(buf, var->subchan_start);
   4790 	BCM_PACK_U32(buf, var->subchan_size);
   4791 	BCM_PACK_U32(buf, var->subchan_bytes);
   4792 	BCM_PACK_U32(buf, var->subchan_step);
   4793 	BCM_PACK_U32(buf, var->queue);
   4794 	BCM_PACK_U32(buf, var->vsd_valid_sector_mask[0]);
   4795 	BCM_PACK_U32(buf, var->vsd_valid_sector_mask[1]);
   4796 	BCM_PACK_U32(buf, var->vsd_valid_sector_mask[2]);
   4797 	BCM_PACK_U32(buf, var->vsd_valid_sector_mask[3]);
   4798 	BCM_PACK_U32(buf, var->cycle_size);
   4799 	BCM_PACK_U32(buf, var->buffer_size);
   4800 	BCM_PACK_U32(buf, var->flow_bytes);
   4801 	BCM_PACK_U32(buf, var->byte_order_swap);
   4802 	return buf;
   4803 }
   4804 
   4805 uint8 *
   4806 _bcm_unpack_cpri_tx_vsd_config_info(uint8 *buf, bcm_cpri_tx_vsd_config_info_t *var)
   4807 {
   4808 	BCM_UNPACK_U32(buf, var->subchan_start);
   4809 	BCM_UNPACK_U32(buf, var->subchan_size);
   4810 	BCM_UNPACK_U32(buf, var->subchan_bytes);
   4811 	BCM_UNPACK_U32(buf, var->subchan_step);
   4812 	BCM_UNPACK_U32(buf, var->queue);
   4813 	BCM_UNPACK_U32(buf, var->vsd_valid_sector_mask[0]);
   4814 	BCM_UNPACK_U32(buf, var->vsd_valid_sector_mask[1]);
   4815 	BCM_UNPACK_U32(buf, var->vsd_valid_sector_mask[2]);
   4816 	BCM_UNPACK_U32(buf, var->vsd_valid_sector_mask[3]);
   4817 	BCM_UNPACK_U32(buf, var->cycle_size);
   4818 	BCM_UNPACK_U32(buf, var->buffer_size);
   4819 	BCM_UNPACK_U32(buf, var->flow_bytes);
   4820 	BCM_UNPACK_U32(buf, var->byte_order_swap);
   4821 	return buf;
   4822 }
   4823 
   4824 uint8 *
   4825 _bcm_pack_cpri_tx_vsd_flow_info(uint8 *buf, bcm_cpri_tx_vsd_flow_info_t *var)
   4826 {
   4827 	BCM_PACK_U32(buf, var->hyper_frame_number);
   4828 	BCM_PACK_U32(buf, var->hyper_frame_modulo);
   4829 	BCM_PACK_U32(buf, var->repeat_mode);
   4830 	BCM_PACK_U32(buf, var->section_num[0]);
   4831 	BCM_PACK_U32(buf, var->section_num[1]);
   4832 	BCM_PACK_U32(buf, var->section_num[2]);
   4833 	BCM_PACK_U32(buf, var->section_num[3]);
   4834 	BCM_PACK_U32(buf, var->num_sector);
   4835 	BCM_PACK_U32(buf, var->roe_flow_id);
   4836 	return buf;
   4837 }
   4838 
   4839 uint8 *
   4840 _bcm_unpack_cpri_tx_vsd_flow_info(uint8 *buf, bcm_cpri_tx_vsd_flow_info_t *var)
   4841 {
   4842 	BCM_UNPACK_U32(buf, var->hyper_frame_number);
   4843 	BCM_UNPACK_U32(buf, var->hyper_frame_modulo);
   4844 	BCM_UNPACK_U32(buf, var->repeat_mode);
   4845 	BCM_UNPACK_U32(buf, var->section_num[0]);
   4846 	BCM_UNPACK_U32(buf, var->section_num[1]);
   4847 	BCM_UNPACK_U32(buf, var->section_num[2]);
   4848 	BCM_UNPACK_U32(buf, var->section_num[3]);
   4849 	BCM_UNPACK_U32(buf, var->num_sector);
   4850 	BCM_UNPACK_U32(buf, var->roe_flow_id);
   4851 	return buf;
   4852 }
   4853 
   4854 uint8 *
   4855 _bcm_pack_cpri_tx_vsd_raw_config_info(uint8 *buf, bcm_cpri_tx_vsd_raw_config_info_t *var)
   4856 {
   4857 	BCM_PACK_U32(buf, var->schan_start);
   4858 	BCM_PACK_U32(buf, var->schan_size);
   4859 	BCM_PACK_U32(buf, var->cw_sel);
   4860 	BCM_PACK_U32(buf, var->cw_size);
   4861 	BCM_PACK_U32(buf, var->queue_num);
   4862 	BCM_PACK_U32(buf, var->map_mode);
   4863 	BCM_PACK_U32(buf, var->repeat_mode);
   4864 	BCM_PACK_U32(buf, var->bfn0_filter_enable);
   4865 	BCM_PACK_U32(buf, var->bfn1_filter_enable);
   4866 	BCM_PACK_U32(buf, var->hfn_index);
   4867 	BCM_PACK_U32(buf, var->hfn_modulo);
   4868 	BCM_PACK_U32(buf, var->idle_value);
   4869 	BCM_PACK_U32(buf, var->cycle_size);
   4870 	BCM_PACK_U32(buf, var->buffer_size);
   4871 	return buf;
   4872 }
   4873 
   4874 uint8 *
   4875 _bcm_unpack_cpri_tx_vsd_raw_config_info(uint8 *buf, bcm_cpri_tx_vsd_raw_config_info_t *var)
   4876 {
   4877 	BCM_UNPACK_U32(buf, var->schan_start);
   4878 	BCM_UNPACK_U32(buf, var->schan_size);
   4879 	BCM_UNPACK_U32(buf, var->cw_sel);
   4880 	BCM_UNPACK_U32(buf, var->cw_size);
   4881 	BCM_UNPACK_U32(buf, var->queue_num);
   4882 	BCM_UNPACK_U32(buf, var->map_mode);
   4883 	BCM_UNPACK_U32(buf, var->repeat_mode);
   4884 	BCM_UNPACK_U32(buf, var->bfn0_filter_enable);
   4885 	BCM_UNPACK_U32(buf, var->bfn1_filter_enable);
   4886 	BCM_UNPACK_U32(buf, var->hfn_index);
   4887 	BCM_UNPACK_U32(buf, var->hfn_modulo);
   4888 	BCM_UNPACK_U32(buf, var->idle_value);
   4889 	BCM_UNPACK_U32(buf, var->cycle_size);
   4890 	BCM_UNPACK_U32(buf, var->buffer_size);
   4891 	return buf;
   4892 }
   4893 
   4894 #ifdef	INCLUDE_L3
   4895 
   4896 uint8 *
   4897 _bcm_pack_ecn_map_mode(uint8 *buf, bcm_ecn_map_mode_t *var)
   4898 {
   4899 	BCM_PACK_U32(buf, var->dscp);
   4900 	BCM_PACK_U32(buf, var->dscp_map_mode);
   4901 	return buf;
   4902 }
   4903 
   4904 uint8 *
   4905 _bcm_unpack_ecn_map_mode(uint8 *buf, bcm_ecn_map_mode_t *var)
   4906 {
   4907 	BCM_UNPACK_U32(buf, var->dscp);
   4908 	BCM_UNPACK_U32(buf, var->dscp_map_mode);
   4909 	return buf;
   4910 }
   4911 
   4912 uint8 *
   4913 _bcm_pack_ecn_map(uint8 *buf, bcm_ecn_map_t *var)
   4914 {
   4915 	BCM_PACK_U32(buf, var->action_flags);
   4916 	BCM_PACK_U32(buf, var->int_cn);
   4917 	BCM_PACK_U8(buf, var->inner_ecn);
   4918 	BCM_PACK_U8(buf, var->ecn);
   4919 	BCM_PACK_U8(buf, var->exp);
   4920 	BCM_PACK_U8(buf, var->new_ecn);
   4921 	BCM_PACK_U8(buf, var->new_exp);
   4922 	BCM_PACK_U32(buf, var->nonip_action_flags);
   4923 	return buf;
   4924 }
   4925 
   4926 uint8 *
   4927 _bcm_unpack_ecn_map(uint8 *buf, bcm_ecn_map_t *var)
   4928 {
   4929 	BCM_UNPACK_U32(buf, var->action_flags);
   4930 	BCM_UNPACK_U32(buf, var->int_cn);
   4931 	BCM_UNPACK_U8(buf, var->inner_ecn);
   4932 	BCM_UNPACK_U8(buf, var->ecn);
   4933 	BCM_UNPACK_U8(buf, var->exp);
   4934 	BCM_UNPACK_U8(buf, var->new_ecn);
   4935 	BCM_UNPACK_U8(buf, var->new_exp);
   4936 	BCM_UNPACK_U32(buf, var->nonip_action_flags);
   4937 	return buf;
   4938 }
   4939 
   4940 uint8 *
   4941 _bcm_pack_ecn_port_map(uint8 *buf, bcm_ecn_port_map_t *var)
   4942 {
   4943 	BCM_PACK_U32(buf, var->flags);
   4944 	BCM_PACK_U32(buf, var->ecn_map_id);
   4945 	return buf;
   4946 }
   4947 
   4948 uint8 *
   4949 _bcm_unpack_ecn_port_map(uint8 *buf, bcm_ecn_port_map_t *var)
   4950 {
   4951 	BCM_UNPACK_U32(buf, var->flags);
   4952 	BCM_UNPACK_U32(buf, var->ecn_map_id);
   4953 	return buf;
   4954 }
   4955 
   4956 #endif	/* INCLUDE_L3 */
   4957 
   4958 uint8 *
   4959 _bcm_pack_ecn_traffic_action_config(uint8 *buf, bcm_ecn_traffic_action_config_t *var)
   4960 {
   4961 	BCM_PACK_U32(buf, var->action_type);
   4962 	BCM_PACK_U32(buf, var->action_flags);
   4963 	BCM_PACK_U32(buf, var->int_cn);
   4964 	BCM_PACK_U32(buf, var->color);
   4965 	BCM_PACK_U8(buf, var->ecn);
   4966 	BCM_PACK_U8(buf, var->new_ecn);
   4967 	BCM_PACK_U32(buf, var->congested_int_cn);
   4968 	BCM_PACK_U32(buf, var->non_congested_int_cn);
   4969 	BCM_PACK_U32(buf, var->responsive);
   4970 	return buf;
   4971 }
   4972 
   4973 uint8 *
   4974 _bcm_unpack_ecn_traffic_action_config(uint8 *buf, bcm_ecn_traffic_action_config_t *var)
   4975 {
   4976 	BCM_UNPACK_U32(buf, var->action_type);
   4977 	BCM_UNPACK_U32(buf, var->action_flags);
   4978 	BCM_UNPACK_U32(buf, var->int_cn);
   4979 	BCM_UNPACK_U32(buf, var->color);
   4980 	BCM_UNPACK_U8(buf, var->ecn);
   4981 	BCM_UNPACK_U8(buf, var->new_ecn);
   4982 	BCM_UNPACK_U32(buf, var->congested_int_cn);
   4983 	BCM_UNPACK_U32(buf, var->non_congested_int_cn);
   4984 	BCM_UNPACK_U32(buf, var->responsive);
   4985 	return buf;
   4986 }
   4987 
   4988 uint8 *
   4989 _bcm_pack_ecn_traffic_map_info(uint8 *buf, bcm_ecn_traffic_map_info_t *var)
   4990 {
   4991 	BCM_PACK_U32(buf, var->flags);
   4992 	BCM_PACK_U8(buf, var->ecn);
   4993 	BCM_PACK_U32(buf, var->int_cn);
   4994 	return buf;
   4995 }
   4996 
   4997 uint8 *
   4998 _bcm_unpack_ecn_traffic_map_info(uint8 *buf, bcm_ecn_traffic_map_info_t *var)
   4999 {
   5000 	BCM_UNPACK_U32(buf, var->flags);
   5001 	BCM_UNPACK_U8(buf, var->ecn);
   5002 	BCM_UNPACK_U32(buf, var->int_cn);
   5003 	return buf;
   5004 }
   5005 
   5006 #ifdef	INCLUDE_L3
   5007 
   5008 uint8 *
   5009 _bcm_pack_extender_egress(uint8 *buf, bcm_extender_egress_t *var)
   5010 {
   5011 	BCM_PACK_U32(buf, var->flags);
   5012 	BCM_PACK_U32(buf, var->port);
   5013 	BCM_PACK_U16(buf, var->extended_port_vid);
   5014 	BCM_PACK_U16(buf, var->match_vlan);
   5015 	BCM_PACK_U32(buf, var->pcp_de_select);
   5016 	BCM_PACK_U32(buf, var->qos_map_id);
   5017 	BCM_PACK_U8(buf, var->pcp);
   5018 	BCM_PACK_U8(buf, var->de);
   5019 	BCM_PACK_U32(buf, var->egress_if);
   5020 	BCM_PACK_U32(buf, var->service_qos_map_id);
   5021 	BCM_PACK_U16(buf, var->service_tpid);
   5022 	BCM_PACK_U16(buf, var->service_vlan);
   5023 	BCM_PACK_U8(buf, var->service_pri);
   5024 	BCM_PACK_U8(buf, var->service_cfi);
   5025 	BCM_PACK_U32(buf, var->intf);
   5026 	BCM_PACK_U32(buf, var->multicast_flags);
   5027 	return buf;
   5028 }
   5029 
   5030 uint8 *
   5031 _bcm_unpack_extender_egress(uint8 *buf, bcm_extender_egress_t *var)
   5032 {
   5033 	BCM_UNPACK_U32(buf, var->flags);
   5034 	BCM_UNPACK_U32(buf, var->port);
   5035 	BCM_UNPACK_U16(buf, var->extended_port_vid);
   5036 	BCM_UNPACK_U16(buf, var->match_vlan);
   5037 	BCM_UNPACK_U32(buf, var->pcp_de_select);
   5038 	BCM_UNPACK_U32(buf, var->qos_map_id);
   5039 	BCM_UNPACK_U8(buf, var->pcp);
   5040 	BCM_UNPACK_U8(buf, var->de);
   5041 	BCM_UNPACK_U32(buf, var->egress_if);
   5042 	BCM_UNPACK_U32(buf, var->service_qos_map_id);
   5043 	BCM_UNPACK_U16(buf, var->service_tpid);
   5044 	BCM_UNPACK_U16(buf, var->service_vlan);
   5045 	BCM_UNPACK_U8(buf, var->service_pri);
   5046 	BCM_UNPACK_U8(buf, var->service_cfi);
   5047 	BCM_UNPACK_U32(buf, var->intf);
   5048 	BCM_UNPACK_U32(buf, var->multicast_flags);
   5049 	return buf;
   5050 }
   5051 
   5052 uint8 *
   5053 _bcm_pack_extender_encap(uint8 *buf, bcm_extender_encap_t *var)
   5054 {
   5055 	BCM_PACK_U32(buf, var->flags);
   5056 	BCM_PACK_U16(buf, var->extended_port_vid);
   5057 	BCM_PACK_U32(buf, var->extender_encap_id);
   5058 	return buf;
   5059 }
   5060 
   5061 uint8 *
   5062 _bcm_unpack_extender_encap(uint8 *buf, bcm_extender_encap_t *var)
   5063 {
   5064 	BCM_UNPACK_U32(buf, var->flags);
   5065 	BCM_UNPACK_U16(buf, var->extended_port_vid);
   5066 	BCM_UNPACK_U32(buf, var->extender_encap_id);
   5067 	return buf;
   5068 }
   5069 
   5070 uint8 *
   5071 _bcm_pack_extender_forward(uint8 *buf, bcm_extender_forward_t *var)
   5072 {
   5073 	BCM_PACK_U32(buf, var->flags);
   5074 	BCM_PACK_U16(buf, var->name_space);
   5075 	BCM_PACK_U16(buf, var->extended_port_vid);
   5076 	BCM_PACK_U32(buf, var->dest_port);
   5077 	BCM_PACK_U32(buf, var->dest_multicast);
   5078 	BCM_PACK_U32(buf, var->extender_forward_id);
   5079 	BCM_PACK_U32(buf, var->class_id);
   5080 	return buf;
   5081 }
   5082 
   5083 uint8 *
   5084 _bcm_unpack_extender_forward(uint8 *buf, bcm_extender_forward_t *var)
   5085 {
   5086 	BCM_UNPACK_U32(buf, var->flags);
   5087 	BCM_UNPACK_U16(buf, var->name_space);
   5088 	BCM_UNPACK_U16(buf, var->extended_port_vid);
   5089 	BCM_UNPACK_U32(buf, var->dest_port);
   5090 	BCM_UNPACK_U32(buf, var->dest_multicast);
   5091 	BCM_UNPACK_U32(buf, var->extender_forward_id);
   5092 	BCM_UNPACK_U32(buf, var->class_id);
   5093 	return buf;
   5094 }
   5095 
   5096 uint8 *
   5097 _bcm_pack_extender_port(uint8 *buf, bcm_extender_port_t *var)
   5098 {
   5099 	BCM_PACK_U32(buf, var->criteria);
   5100 	BCM_PACK_U32(buf, var->flags);
   5101 	BCM_PACK_U32(buf, var->extender_port_id);
   5102 	BCM_PACK_U32(buf, var->port);
   5103 	BCM_PACK_U16(buf, var->extended_port_vid);
   5104 	BCM_PACK_U16(buf, var->match_vlan);
   5105 	BCM_PACK_U16(buf, var->match_inner_vlan);
   5106 	BCM_PACK_U32(buf, var->pcp_de_select);
   5107 	BCM_PACK_U32(buf, var->qos_map_id);
   5108 	BCM_PACK_U8(buf, var->pcp);
   5109 	BCM_PACK_U8(buf, var->de);
   5110 	BCM_PACK_U32(buf, var->encap_id);
   5111 	BCM_PACK_U32(buf, var->failover_port_id);
   5112 	BCM_PACK_U32(buf, var->failover_id);
   5113 	BCM_PACK_U32(buf, var->ingress_failover_id);
   5114 	BCM_PACK_U32(buf, var->failover_mc_group);
   5115 	BCM_PACK_U32(buf, var->inlif_counting_profile);
   5116 	BCM_PACK_U32(buf, var->outlif_counting_profile);
   5117 	return buf;
   5118 }
   5119 
   5120 uint8 *
   5121 _bcm_unpack_extender_port(uint8 *buf, bcm_extender_port_t *var)
   5122 {
   5123 	BCM_UNPACK_U32(buf, var->criteria);
   5124 	BCM_UNPACK_U32(buf, var->flags);
   5125 	BCM_UNPACK_U32(buf, var->extender_port_id);
   5126 	BCM_UNPACK_U32(buf, var->port);
   5127 	BCM_UNPACK_U16(buf, var->extended_port_vid);
   5128 	BCM_UNPACK_U16(buf, var->match_vlan);
   5129 	BCM_UNPACK_U16(buf, var->match_inner_vlan);
   5130 	BCM_UNPACK_U32(buf, var->pcp_de_select);
   5131 	BCM_UNPACK_U32(buf, var->qos_map_id);
   5132 	BCM_UNPACK_U8(buf, var->pcp);
   5133 	BCM_UNPACK_U8(buf, var->de);
   5134 	BCM_UNPACK_U32(buf, var->encap_id);
   5135 	BCM_UNPACK_U32(buf, var->failover_port_id);
   5136 	BCM_UNPACK_U32(buf, var->failover_id);
   5137 	BCM_UNPACK_U32(buf, var->ingress_failover_id);
   5138 	BCM_UNPACK_U32(buf, var->failover_mc_group);
   5139 	BCM_UNPACK_U32(buf, var->inlif_counting_profile);
   5140 	BCM_UNPACK_U32(buf, var->outlif_counting_profile);
   5141 	return buf;
   5142 }
   5143 
   5144 #endif	/* INCLUDE_L3 */
   5145 
   5146 uint8 *
   5147 _bcm_pack_fabric_action_info(uint8 *buf, bcm_fabric_action_info_t *var)
   5148 {
   5149 	BCM_PACK_U32(buf, var->flags);
   5150 	BCM_PACK_U16(buf, var->queue_field_low.offset);
   5151 	BCM_PACK_U16(buf, var->queue_field_low.length);
   5152 	BCM_PACK_U16(buf, var->queue_field_high.offset);
   5153 	BCM_PACK_U16(buf, var->queue_field_high.length);
   5154 	BCM_PACK_U16(buf, var->qsel_offset_index_field.offset);
   5155 	BCM_PACK_U16(buf, var->qsel_offset_index_field.length);
   5156 	BCM_PACK_U32(buf, var->override_dp);
   5157 	BCM_PACK_U32(buf, var->override_ecn);
   5158 	BCM_PACK_U16(buf, var->len_adj_index_field.offset);
   5159 	BCM_PACK_U16(buf, var->len_adj_index_field.length);
   5160 	BCM_PACK_U32(buf, var->queue_id_source);
   5161 	BCM_PACK_U32(buf, var->queue_index_offset);
   5162 	BCM_PACK_U32(buf, var->qsel);
   5163 	BCM_PACK_U32(buf, var->qsel_offset);
   5164 	BCM_PACK_U16(buf, var->encap_id_field.offset);
   5165 	BCM_PACK_U16(buf, var->encap_id_field.length);
   5166 	BCM_PACK_U16(buf, var->queue_id_field.offset);
   5167 	BCM_PACK_U16(buf, var->queue_id_field.length);
   5168 	BCM_PACK_U32(buf, var->clear_ehv_bit);
   5169 	BCM_PACK_U32(buf, var->clear_mp_bit);
   5170 	BCM_PACK_U32(buf, var->four_byte_remove_offset);
   5171 	BCM_PACK_U32(buf, var->header_bytes_remove);
   5172 	BCM_PACK_U32(buf, var->insert_dest_select);
   5173 	BCM_PACK_U32(buf, var->stat0_segment);
   5174 	BCM_PACK_U32(buf, var->stat0_field_low_type);
   5175 	BCM_PACK_U16(buf, var->stat0_field_low.offset);
   5176 	BCM_PACK_U16(buf, var->stat0_field_low.length);
   5177 	BCM_PACK_U32(buf, var->stat0_field_high_type);
   5178 	BCM_PACK_U16(buf, var->stat0_field_high.offset);
   5179 	BCM_PACK_U16(buf, var->stat0_field_high.length);
   5180 	BCM_PACK_U32(buf, var->stat0_adjust);
   5181 	BCM_PACK_U32(buf, var->stat1_segment);
   5182 	BCM_PACK_U32(buf, var->stat1_field_low_type);
   5183 	BCM_PACK_U16(buf, var->stat1_field_low.offset);
   5184 	BCM_PACK_U16(buf, var->stat1_field_low.length);
   5185 	BCM_PACK_U32(buf, var->stat1_field_high_type);
   5186 	BCM_PACK_U16(buf, var->stat1_field_high.offset);
   5187 	BCM_PACK_U16(buf, var->stat1_field_high.length);
   5188 	BCM_PACK_U32(buf, var->stat1_adjust);
   5189 	return buf;
   5190 }
   5191 
   5192 uint8 *
   5193 _bcm_unpack_fabric_action_info(uint8 *buf, bcm_fabric_action_info_t *var)
   5194 {
   5195 	BCM_UNPACK_U32(buf, var->flags);
   5196 	BCM_UNPACK_U16(buf, var->queue_field_low.offset);
   5197 	BCM_UNPACK_U16(buf, var->queue_field_low.length);
   5198 	BCM_UNPACK_U16(buf, var->queue_field_high.offset);
   5199 	BCM_UNPACK_U16(buf, var->queue_field_high.length);
   5200 	BCM_UNPACK_U16(buf, var->qsel_offset_index_field.offset);
   5201 	BCM_UNPACK_U16(buf, var->qsel_offset_index_field.length);
   5202 	BCM_UNPACK_U32(buf, var->override_dp);
   5203 	BCM_UNPACK_U32(buf, var->override_ecn);
   5204 	BCM_UNPACK_U16(buf, var->len_adj_index_field.offset);
   5205 	BCM_UNPACK_U16(buf, var->len_adj_index_field.length);
   5206 	BCM_UNPACK_U32(buf, var->queue_id_source);
   5207 	BCM_UNPACK_U32(buf, var->queue_index_offset);
   5208 	BCM_UNPACK_U32(buf, var->qsel);
   5209 	BCM_UNPACK_U32(buf, var->qsel_offset);
   5210 	BCM_UNPACK_U16(buf, var->encap_id_field.offset);
   5211 	BCM_UNPACK_U16(buf, var->encap_id_field.length);
   5212 	BCM_UNPACK_U16(buf, var->queue_id_field.offset);
   5213 	BCM_UNPACK_U16(buf, var->queue_id_field.length);
   5214 	BCM_UNPACK_U32(buf, var->clear_ehv_bit);
   5215 	BCM_UNPACK_U32(buf, var->clear_mp_bit);
   5216 	BCM_UNPACK_U32(buf, var->four_byte_remove_offset);
   5217 	BCM_UNPACK_U32(buf, var->header_bytes_remove);
   5218 	BCM_UNPACK_U32(buf, var->insert_dest_select);
   5219 	BCM_UNPACK_U32(buf, var->stat0_segment);
   5220 	BCM_UNPACK_U32(buf, var->stat0_field_low_type);
   5221 	BCM_UNPACK_U16(buf, var->stat0_field_low.offset);
   5222 	BCM_UNPACK_U16(buf, var->stat0_field_low.length);
   5223 	BCM_UNPACK_U32(buf, var->stat0_field_high_type);
   5224 	BCM_UNPACK_U16(buf, var->stat0_field_high.offset);
   5225 	BCM_UNPACK_U16(buf, var->stat0_field_high.length);
   5226 	BCM_UNPACK_U32(buf, var->stat0_adjust);
   5227 	BCM_UNPACK_U32(buf, var->stat1_segment);
   5228 	BCM_UNPACK_U32(buf, var->stat1_field_low_type);
   5229 	BCM_UNPACK_U16(buf, var->stat1_field_low.offset);
   5230 	BCM_UNPACK_U16(buf, var->stat1_field_low.length);
   5231 	BCM_UNPACK_U32(buf, var->stat1_field_high_type);
   5232 	BCM_UNPACK_U16(buf, var->stat1_field_high.offset);
   5233 	BCM_UNPACK_U16(buf, var->stat1_field_high.length);
   5234 	BCM_UNPACK_U32(buf, var->stat1_adjust);
   5235 	return buf;
   5236 }
   5237 
   5238 uint8 *
   5239 _bcm_pack_fabric_bandwidth_profile(uint8 *buf, bcm_fabric_bandwidth_profile_t *var)
   5240 {
   5241 	BCM_PACK_U32(buf, var->num_links);
   5242 	BCM_PACK_U32(buf, var->rci);
   5243 	BCM_PACK_U32(buf, var->max_kbps);
   5244 	return buf;
   5245 }
   5246 
   5247 uint8 *
   5248 _bcm_unpack_fabric_bandwidth_profile(uint8 *buf, bcm_fabric_bandwidth_profile_t *var)
   5249 {
   5250 	BCM_UNPACK_U32(buf, var->num_links);
   5251 	BCM_UNPACK_U32(buf, var->rci);
   5252 	BCM_UNPACK_U32(buf, var->max_kbps);
   5253 	return buf;
   5254 }
   5255 
   5256 uint8 *
   5257 _bcm_pack_fabric_config_discard(uint8 *buf, bcm_fabric_config_discard_t *var)
   5258 {
   5259 	BCM_PACK_U32(buf, var->flags);
   5260 	BCM_PACK_U32(buf, var->enable);
   5261 	BCM_PACK_U32(buf, var->age);
   5262 	BCM_PACK_U32(buf, var->age_mode);
   5263 	return buf;
   5264 }
   5265 
   5266 uint8 *
   5267 _bcm_unpack_fabric_config_discard(uint8 *buf, bcm_fabric_config_discard_t *var)
   5268 {
   5269 	BCM_UNPACK_U32(buf, var->flags);
   5270 	BCM_UNPACK_U32(buf, var->enable);
   5271 	BCM_UNPACK_U32(buf, var->age);
   5272 	BCM_UNPACK_U32(buf, var->age_mode);
   5273 	return buf;
   5274 }
   5275 
   5276 uint8 *
   5277 _bcm_pack_fabric_link_connectivity(uint8 *buf, bcm_fabric_link_connectivity_t *var)
   5278 {
   5279 	BCM_PACK_U32(buf, var->module_id);
   5280 	BCM_PACK_U32(buf, var->link_id);
   5281 	BCM_PACK_U32(buf, var->device_type);
   5282 	return buf;
   5283 }
   5284 
   5285 uint8 *
   5286 _bcm_unpack_fabric_link_connectivity(uint8 *buf, bcm_fabric_link_connectivity_t *var)
   5287 {
   5288 	BCM_UNPACK_U32(buf, var->module_id);
   5289 	BCM_UNPACK_U32(buf, var->link_id);
   5290 	BCM_UNPACK_U32(buf, var->device_type);
   5291 	return buf;
   5292 }
   5293 
   5294 uint8 *
   5295 _bcm_pack_fabric_link_remote_pipe_mapping(uint8 *buf, bcm_fabric_link_remote_pipe_mapping_t *var)
   5296 {
   5297 	BCM_PACK_U32(buf, var->num_of_remote_pipes);
   5298 	BCM_PACK_U32(buf, *var->remote_pipe_mapping);
   5299 	BCM_PACK_U32(buf, var->remote_pipe_mapping_max_size);
   5300 	return buf;
   5301 }
   5302 
   5303 uint8 *
   5304 _bcm_unpack_fabric_link_remote_pipe_mapping(uint8 *buf, bcm_fabric_link_remote_pipe_mapping_t *var)
   5305 {
   5306 	BCM_UNPACK_U32(buf, var->num_of_remote_pipes);
   5307 	BCM_UNPACK_U32(buf, *var->remote_pipe_mapping);
   5308 	BCM_UNPACK_U32(buf, var->remote_pipe_mapping_max_size);
   5309 	return buf;
   5310 }
   5311 
   5312 uint8 *
   5313 _bcm_pack_fabric_module_vector(uint8 *buf, bcm_fabric_module_vector_t var)
   5314 {
   5315 	{
   5316 		int _i;
   5317 
   5318 		for (_i = 0; _i < 7; _i++) {
   5319 			BCM_PACK_U32(buf, var[_i]);
   5320 		}
   5321 	}
   5322 	return buf;
   5323 }
   5324 
   5325 uint8 *
   5326 _bcm_unpack_fabric_module_vector(uint8 *buf, bcm_fabric_module_vector_t var)
   5327 {
   5328 	{
   5329 		int _i;
   5330 
   5331 		for (_i = 0; _i < 7; _i++) {
   5332 			BCM_UNPACK_U32(buf, var[_i]);
   5333 		}
   5334 	}
   5335 	return buf;
   5336 }
   5337 
   5338 uint8 *
   5339 _bcm_pack_fabric_predicate_action_info(uint8 *buf, bcm_fabric_predicate_action_info_t *var)
   5340 {
   5341 	BCM_PACK_U32(buf, var->flags);
   5342 	BCM_PACK_U32(buf, var->priority);
   5343 	BCM_PACK_U32(buf, var->data[0]);
   5344 	BCM_PACK_U32(buf, var->mask[0]);
   5345 	BCM_PACK_U32(buf, var->action_id);
   5346 	return buf;
   5347 }
   5348 
   5349 uint8 *
   5350 _bcm_unpack_fabric_predicate_action_info(uint8 *buf, bcm_fabric_predicate_action_info_t *var)
   5351 {
   5352 	BCM_UNPACK_U32(buf, var->flags);
   5353 	BCM_UNPACK_U32(buf, var->priority);
   5354 	BCM_UNPACK_U32(buf, var->data[0]);
   5355 	BCM_UNPACK_U32(buf, var->mask[0]);
   5356 	BCM_UNPACK_U32(buf, var->action_id);
   5357 	return buf;
   5358 }
   5359 
   5360 uint8 *
   5361 _bcm_pack_fabric_predicate_info(uint8 *buf, bcm_fabric_predicate_info_t *var)
   5362 {
   5363 	BCM_PACK_U32(buf, var->flags);
   5364 	BCM_PACK_U32(buf, var->source);
   5365 	BCM_PACK_U16(buf, var->field.offset);
   5366 	BCM_PACK_U16(buf, var->field.length);
   5367 	BCM_PACK_U32(buf, var->data);
   5368 	BCM_PACK_U32(buf, var->mask);
   5369 	BCM_PACK_U32(buf, var->range_low);
   5370 	BCM_PACK_U32(buf, var->range_high);
   5371 	return buf;
   5372 }
   5373 
   5374 uint8 *
   5375 _bcm_unpack_fabric_predicate_info(uint8 *buf, bcm_fabric_predicate_info_t *var)
   5376 {
   5377 	BCM_UNPACK_U32(buf, var->flags);
   5378 	BCM_UNPACK_U32(buf, var->source);
   5379 	BCM_UNPACK_U16(buf, var->field.offset);
   5380 	BCM_UNPACK_U16(buf, var->field.length);
   5381 	BCM_UNPACK_U32(buf, var->data);
   5382 	BCM_UNPACK_U32(buf, var->mask);
   5383 	BCM_UNPACK_U32(buf, var->range_low);
   5384 	BCM_UNPACK_U32(buf, var->range_high);
   5385 	return buf;
   5386 }
   5387 
   5388 uint8 *
   5389 _bcm_pack_fabric_rci_biasing_probability_info(uint8 *buf, bcm_fabric_rci_biasing_probability_info_t *var)
   5390 {
   5391 	BCM_PACK_U32(buf, var->gport);
   5392 	BCM_PACK_U32(buf, var->is_remote);
   5393 	BCM_PACK_U32(buf, var->is_high_prio);
   5394 	BCM_PACK_U32(buf, var->probability_type);
   5395 	return buf;
   5396 }
   5397 
   5398 uint8 *
   5399 _bcm_unpack_fabric_rci_biasing_probability_info(uint8 *buf, bcm_fabric_rci_biasing_probability_info_t *var)
   5400 {
   5401 	BCM_UNPACK_U32(buf, var->gport);
   5402 	BCM_UNPACK_U32(buf, var->is_remote);
   5403 	BCM_UNPACK_U32(buf, var->is_high_prio);
   5404 	BCM_UNPACK_U32(buf, var->probability_type);
   5405 	return buf;
   5406 }
   5407 
   5408 uint8 *
   5409 _bcm_pack_fabric_rci_config(uint8 *buf, bcm_fabric_rci_config_t *var)
   5410 {
   5411 	{
   5412 		int _i;
   5413 
   5414 		for (_i = 0; _i < 7; _i++) {
   5415 			BCM_PACK_U32(buf, var->rci_core_level_thresholds[_i]);
   5416 		}
   5417 	}
   5418 	{
   5419 		int _i;
   5420 
   5421 		for (_i = 0; _i < 7; _i++) {
   5422 			BCM_PACK_U32(buf, var->rci_device_level_thresholds[_i]);
   5423 		}
   5424 	}
   5425 	BCM_PACK_U32(buf, var->rci_severity_factors[0]);
   5426 	BCM_PACK_U32(buf, var->rci_severity_factors[1]);
   5427 	BCM_PACK_U32(buf, var->rci_severity_factors[2]);
   5428 	BCM_PACK_U32(buf, var->rci_high_score_fabric_rx_queue);
   5429 	BCM_PACK_U32(buf, var->rci_high_score_fabric_rx_local_queue);
   5430 	BCM_PACK_U32(buf, var->rci_threshold_num_of_congested_links);
   5431 	BCM_PACK_U32(buf, var->rci_high_score_congested_links);
   5432 	return buf;
   5433 }
   5434 
   5435 uint8 *
   5436 _bcm_unpack_fabric_rci_config(uint8 *buf, bcm_fabric_rci_config_t *var)
   5437 {
   5438 	{
   5439 		int _i;
   5440 
   5441 		for (_i = 0; _i < 7; _i++) {
   5442 			BCM_UNPACK_U32(buf, var->rci_core_level_thresholds[_i]);
   5443 		}
   5444 	}
   5445 	{
   5446 		int _i;
   5447 
   5448 		for (_i = 0; _i < 7; _i++) {
   5449 			BCM_UNPACK_U32(buf, var->rci_device_level_thresholds[_i]);
   5450 		}
   5451 	}
   5452 	BCM_UNPACK_U32(buf, var->rci_severity_factors[0]);
   5453 	BCM_UNPACK_U32(buf, var->rci_severity_factors[1]);
   5454 	BCM_UNPACK_U32(buf, var->rci_severity_factors[2]);
   5455 	BCM_UNPACK_U32(buf, var->rci_high_score_fabric_rx_queue);
   5456 	BCM_UNPACK_U32(buf, var->rci_high_score_fabric_rx_local_queue);
   5457 	BCM_UNPACK_U32(buf, var->rci_threshold_num_of_congested_links);
   5458 	BCM_UNPACK_U32(buf, var->rci_high_score_congested_links);
   5459 	return buf;
   5460 }
   5461 
   5462 uint8 *
   5463 _bcm_pack_fabric_rci_resolution_key(uint8 *buf, bcm_fabric_rci_resolution_key_t *var)
   5464 {
   5465 	BCM_PACK_U32(buf, var->pipe);
   5466 	BCM_PACK_U32(buf, var->shared_rci);
   5467 	BCM_PACK_U32(buf, var->guaranteed_rci);
   5468 	return buf;
   5469 }
   5470 
   5471 uint8 *
   5472 _bcm_unpack_fabric_rci_resolution_key(uint8 *buf, bcm_fabric_rci_resolution_key_t *var)
   5473 {
   5474 	BCM_UNPACK_U32(buf, var->pipe);
   5475 	BCM_UNPACK_U32(buf, var->shared_rci);
   5476 	BCM_UNPACK_U32(buf, var->guaranteed_rci);
   5477 	return buf;
   5478 }
   5479 
   5480 uint8 *
   5481 _bcm_pack_fabric_route(uint8 *buf, bcm_fabric_route_t *var)
   5482 {
   5483 	BCM_PACK_U32(buf, var->pipe_id);
   5484 	BCM_PACK_U32(buf, var->number_of_hops);
   5485 	BCM_PACK_U32(buf, *var->hop_ids);
   5486 	return buf;
   5487 }
   5488 
   5489 uint8 *
   5490 _bcm_unpack_fabric_route(uint8 *buf, bcm_fabric_route_t *var)
   5491 {
   5492 	BCM_UNPACK_U32(buf, var->pipe_id);
   5493 	BCM_UNPACK_U32(buf, var->number_of_hops);
   5494 	BCM_UNPACK_U32(buf, *var->hop_ids);
   5495 	return buf;
   5496 }
   5497 
   5498 uint8 *
   5499 _bcm_pack_fabric_tdm_direct_routing(uint8 *buf, bcm_fabric_tdm_direct_routing_t *var)
   5500 {
   5501 	BCM_PACK_U32(buf, var->links_count);
   5502 	{
   5503 		int _i;
   5504 
   5505 		for (_i = 0; _i < 64; _i++) {
   5506 			BCM_PACK_U32(buf, var->links[_i]);
   5507 		}
   5508 	}
   5509 	return buf;
   5510 }
   5511 
   5512 uint8 *
   5513 _bcm_unpack_fabric_tdm_direct_routing(uint8 *buf, bcm_fabric_tdm_direct_routing_t *var)
   5514 {
   5515 	BCM_UNPACK_U32(buf, var->links_count);
   5516 	{
   5517 		int _i;
   5518 
   5519 		for (_i = 0; _i < 64; _i++) {
   5520 			BCM_UNPACK_U32(buf, var->links[_i]);
   5521 		}
   5522 	}
   5523 	return buf;
   5524 }
   5525 
   5526 uint8 *
   5527 _bcm_pack_fabric_tdm_editing(uint8 *buf, bcm_fabric_tdm_editing_t *var)
   5528 {
   5529 	BCM_PACK_U32(buf, var->flags);
   5530 	BCM_PACK_U32(buf, var->type);
   5531 	BCM_PACK_U32(buf, var->destination_port);
   5532 	BCM_PACK_U32(buf, var->multicast_id);
   5533 	{
   5534 		int _i;
   5535 
   5536 		for (_i = 0; _i < 6; _i++) {
   5537 			BCM_PACK_U8(buf, var->user_field[_i]);
   5538 		}
   5539 	}
   5540 	BCM_PACK_U32(buf, var->user_field_count);
   5541 	BCM_PACK_U32(buf, var->add_packet_crc);
   5542 	return buf;
   5543 }
   5544 
   5545 uint8 *
   5546 _bcm_unpack_fabric_tdm_editing(uint8 *buf, bcm_fabric_tdm_editing_t *var)
   5547 {
   5548 	BCM_UNPACK_U32(buf, var->flags);
   5549 	BCM_UNPACK_U32(buf, var->type);
   5550 	BCM_UNPACK_U32(buf, var->destination_port);
   5551 	BCM_UNPACK_U32(buf, var->multicast_id);
   5552 	{
   5553 		int _i;
   5554 
   5555 		for (_i = 0; _i < 6; _i++) {
   5556 			BCM_UNPACK_U8(buf, var->user_field[_i]);
   5557 		}
   5558 	}
   5559 	BCM_UNPACK_U32(buf, var->user_field_count);
   5560 	BCM_UNPACK_U32(buf, var->add_packet_crc);
   5561 	return buf;
   5562 }
   5563 
   5564 #ifdef	INCLUDE_L3
   5565 
   5566 uint8 *
   5567 _bcm_pack_failover_element(uint8 *buf, bcm_failover_element_t *var)
   5568 {
   5569 	BCM_PACK_U32(buf, var->flags);
   5570 	BCM_PACK_U32(buf, var->element_flags);
   5571 	BCM_PACK_U32(buf, var->port);
   5572 	BCM_PACK_U32(buf, var->failover_id);
   5573 	BCM_PACK_U32(buf, var->intf);
   5574 	return buf;
   5575 }
   5576 
   5577 uint8 *
   5578 _bcm_unpack_failover_element(uint8 *buf, bcm_failover_element_t *var)
   5579 {
   5580 	BCM_UNPACK_U32(buf, var->flags);
   5581 	BCM_UNPACK_U32(buf, var->element_flags);
   5582 	BCM_UNPACK_U32(buf, var->port);
   5583 	BCM_UNPACK_U32(buf, var->failover_id);
   5584 	BCM_UNPACK_U32(buf, var->intf);
   5585 	return buf;
   5586 }
   5587 
   5588 uint8 *
   5589 _bcm_pack_failover_multi_level(uint8 *buf, bcm_failover_multi_level_t *var)
   5590 {
   5591 	BCM_PACK_U32(buf, var->failover_id);
   5592 	BCM_PACK_U32(buf, var->prot_group_1);
   5593 	BCM_PACK_U32(buf, var->prot_group_2);
   5594 	return buf;
   5595 }
   5596 
   5597 uint8 *
   5598 _bcm_unpack_failover_multi_level(uint8 *buf, bcm_failover_multi_level_t *var)
   5599 {
   5600 	BCM_UNPACK_U32(buf, var->failover_id);
   5601 	BCM_UNPACK_U32(buf, var->prot_group_1);
   5602 	BCM_UNPACK_U32(buf, var->prot_group_2);
   5603 	return buf;
   5604 }
   5605 
   5606 #endif	/* INCLUDE_L3 */
   5607 
   5608 uint8 *
   5609 _bcm_pack_failover_ring(uint8 *buf, bcm_failover_ring_t *var)
   5610 {
   5611 	BCM_PACK_U32(buf, var->flags);
   5612 	{
   5613 		int _i;
   5614 
   5615 		for (_i = 0; _i < 128; _i++) {
   5616 			BCM_PACK_U32(buf, var->vlan_vector[_i]);
   5617 		}
   5618 	}
   5619 	BCM_PACK_U32(buf, var->port0);
   5620 	BCM_PACK_U32(buf, var->port1);
   5621 	{
   5622 		int _i;
   5623 
   5624 		for (_i = 0; _i < 128; _i++) {
   5625 			BCM_PACK_U32(buf, var->vpn_vector[_i]);
   5626 		}
   5627 	}
   5628 	return buf;
   5629 }
   5630 
   5631 uint8 *
   5632 _bcm_unpack_failover_ring(uint8 *buf, bcm_failover_ring_t *var)
   5633 {
   5634 	BCM_UNPACK_U32(buf, var->flags);
   5635 	{
   5636 		int _i;
   5637 
   5638 		for (_i = 0; _i < 128; _i++) {
   5639 			BCM_UNPACK_U32(buf, var->vlan_vector[_i]);
   5640 		}
   5641 	}
   5642 	BCM_UNPACK_U32(buf, var->port0);
   5643 	BCM_UNPACK_U32(buf, var->port1);
   5644 	{
   5645 		int _i;
   5646 
   5647 		for (_i = 0; _i < 128; _i++) {
   5648 			BCM_UNPACK_U32(buf, var->vpn_vector[_i]);
   5649 		}
   5650 	}
   5651 	return buf;
   5652 }
   5653 
   5654 uint8 *
   5655 _bcm_pack_fcoe_intf_config(uint8 *buf, bcm_fcoe_intf_config_t *var)
   5656 {
   5657 	BCM_PACK_U32(buf, var->flags);
   5658 	BCM_PACK_U32(buf, var->qos_map_id);
   5659 	BCM_PACK_U32(buf, var->vsan);
   5660 	BCM_PACK_U8(buf, var->vsan_pri);
   5661 	BCM_PACK_U8(buf, var->vft.r_ctl);
   5662 	BCM_PACK_U8(buf, var->vft.version);
   5663 	BCM_PACK_U8(buf, var->vft.type);
   5664 	BCM_PACK_U8(buf, var->vft.hop_count);
   5665 	BCM_PACK_U32(buf, var->vsan_source);
   5666 	BCM_PACK_U32(buf, var->vsan_pri_source);
   5667 	return buf;
   5668 }
   5669 
   5670 uint8 *
   5671 _bcm_unpack_fcoe_intf_config(uint8 *buf, bcm_fcoe_intf_config_t *var)
   5672 {
   5673 	BCM_UNPACK_U32(buf, var->flags);
   5674 	BCM_UNPACK_U32(buf, var->qos_map_id);
   5675 	BCM_UNPACK_U32(buf, var->vsan);
   5676 	BCM_UNPACK_U8(buf, var->vsan_pri);
   5677 	BCM_UNPACK_U8(buf, var->vft.r_ctl);
   5678 	BCM_UNPACK_U8(buf, var->vft.version);
   5679 	BCM_UNPACK_U8(buf, var->vft.type);
   5680 	BCM_UNPACK_U8(buf, var->vft.hop_count);
   5681 	BCM_UNPACK_U32(buf, var->vsan_source);
   5682 	BCM_UNPACK_U32(buf, var->vsan_pri_source);
   5683 	return buf;
   5684 }
   5685 
   5686 uint8 *
   5687 _bcm_pack_fcoe_route(uint8 *buf, bcm_fcoe_route_t *var)
   5688 {
   5689 	BCM_PACK_U32(buf, var->flags);
   5690 	BCM_PACK_U32(buf, var->vrf);
   5691 	BCM_PACK_U32(buf, var->nport_id);
   5692 	BCM_PACK_U32(buf, var->nport_id_mask);
   5693 	BCM_PACK_U32(buf, var->pri);
   5694 	BCM_PACK_U32(buf, var->intf);
   5695 	{
   5696 		int _i;
   5697 
   5698 		for (_i = 0; _i < 6; _i++) {
   5699 			BCM_PACK_U8(buf, var->nexthop_mac[_i]);
   5700 		}
   5701 	}
   5702 	BCM_PACK_U32(buf, var->port);
   5703 	BCM_PACK_U32(buf, var->lookup_class);
   5704 	BCM_PACK_U32(buf, var->encap_id);
   5705 	return buf;
   5706 }
   5707 
   5708 uint8 *
   5709 _bcm_unpack_fcoe_route(uint8 *buf, bcm_fcoe_route_t *var)
   5710 {
   5711 	BCM_UNPACK_U32(buf, var->flags);
   5712 	BCM_UNPACK_U32(buf, var->vrf);
   5713 	BCM_UNPACK_U32(buf, var->nport_id);
   5714 	BCM_UNPACK_U32(buf, var->nport_id_mask);
   5715 	BCM_UNPACK_U32(buf, var->pri);
   5716 	BCM_UNPACK_U32(buf, var->intf);
   5717 	{
   5718 		int _i;
   5719 
   5720 		for (_i = 0; _i < 6; _i++) {
   5721 			BCM_UNPACK_U8(buf, var->nexthop_mac[_i]);
   5722 		}
   5723 	}
   5724 	BCM_UNPACK_U32(buf, var->port);
   5725 	BCM_UNPACK_U32(buf, var->lookup_class);
   5726 	BCM_UNPACK_U32(buf, var->encap_id);
   5727 	return buf;
   5728 }
   5729 
   5730 uint8 *
   5731 _bcm_pack_fcoe_vsan_action_set(uint8 *buf, bcm_fcoe_vsan_action_set_t *var)
   5732 {
   5733 	BCM_PACK_U32(buf, var->flags);
   5734 	BCM_PACK_U32(buf, var->new_vsan);
   5735 	BCM_PACK_U8(buf, var->new_vsan_pri);
   5736 	BCM_PACK_U8(buf, var->vft.r_ctl);
   5737 	BCM_PACK_U8(buf, var->vft.version);
   5738 	BCM_PACK_U8(buf, var->vft.type);
   5739 	BCM_PACK_U8(buf, var->vft.hop_count);
   5740 	BCM_PACK_U32(buf, var->ingress_if);
   5741 	BCM_PACK_U32(buf, var->dt_vsan);
   5742 	BCM_PACK_U32(buf, var->dt_vsan_pri);
   5743 	BCM_PACK_U32(buf, var->it_vsan);
   5744 	BCM_PACK_U32(buf, var->it_vsan_pri);
   5745 	BCM_PACK_U32(buf, var->ot_vsan);
   5746 	BCM_PACK_U32(buf, var->ot_vsan_pri);
   5747 	BCM_PACK_U32(buf, var->ut_vsan);
   5748 	BCM_PACK_U32(buf, var->ut_vsan_pri);
   5749 	BCM_PACK_U16(buf, var->vlan_action.new_outer_vlan);
   5750 	BCM_PACK_U16(buf, var->vlan_action.new_inner_vlan);
   5751 	BCM_PACK_U8(buf, var->vlan_action.new_inner_pkt_prio);
   5752 	BCM_PACK_U8(buf, var->vlan_action.new_outer_cfi);
   5753 	BCM_PACK_U8(buf, var->vlan_action.new_inner_cfi);
   5754 	BCM_PACK_U32(buf, var->vlan_action.ingress_if);
   5755 	BCM_PACK_U32(buf, var->vlan_action.priority);
   5756 	BCM_PACK_U32(buf, var->vlan_action.dt_outer);
   5757 	BCM_PACK_U32(buf, var->vlan_action.dt_outer_prio);
   5758 	BCM_PACK_U32(buf, var->vlan_action.dt_outer_pkt_prio);
   5759 	BCM_PACK_U32(buf, var->vlan_action.dt_outer_cfi);
   5760 	BCM_PACK_U32(buf, var->vlan_action.dt_inner);
   5761 	BCM_PACK_U32(buf, var->vlan_action.dt_inner_prio);
   5762 	BCM_PACK_U32(buf, var->vlan_action.dt_inner_pkt_prio);
   5763 	BCM_PACK_U32(buf, var->vlan_action.dt_inner_cfi);
   5764 	BCM_PACK_U32(buf, var->vlan_action.ot_outer);
   5765 	BCM_PACK_U32(buf, var->vlan_action.ot_outer_prio);
   5766 	BCM_PACK_U32(buf, var->vlan_action.ot_outer_pkt_prio);
   5767 	BCM_PACK_U32(buf, var->vlan_action.ot_outer_cfi);
   5768 	BCM_PACK_U32(buf, var->vlan_action.ot_inner);
   5769 	BCM_PACK_U32(buf, var->vlan_action.ot_inner_pkt_prio);
   5770 	BCM_PACK_U32(buf, var->vlan_action.ot_inner_cfi);
   5771 	BCM_PACK_U32(buf, var->vlan_action.it_outer);
   5772 	BCM_PACK_U32(buf, var->vlan_action.it_outer_pkt_prio);
   5773 	BCM_PACK_U32(buf, var->vlan_action.it_outer_cfi);
   5774 	BCM_PACK_U32(buf, var->vlan_action.it_inner);
   5775 	BCM_PACK_U32(buf, var->vlan_action.it_inner_prio);
   5776 	BCM_PACK_U32(buf, var->vlan_action.it_inner_pkt_prio);
   5777 	BCM_PACK_U32(buf, var->vlan_action.it_inner_cfi);
   5778 	BCM_PACK_U32(buf, var->vlan_action.ut_outer);
   5779 	BCM_PACK_U32(buf, var->vlan_action.ut_outer_pkt_prio);
   5780 	BCM_PACK_U32(buf, var->vlan_action.ut_outer_cfi);
   5781 	BCM_PACK_U32(buf, var->vlan_action.ut_inner);
   5782 	BCM_PACK_U32(buf, var->vlan_action.ut_inner_pkt_prio);
   5783 	BCM_PACK_U32(buf, var->vlan_action.ut_inner_cfi);
   5784 	BCM_PACK_U32(buf, var->vlan_action.outer_pcp);
   5785 	BCM_PACK_U32(buf, var->vlan_action.inner_pcp);
   5786 	BCM_PACK_U32(buf, var->vlan_action.policer_id);
   5787 	BCM_PACK_U16(buf, var->vlan_action.outer_tpid);
   5788 	BCM_PACK_U16(buf, var->vlan_action.inner_tpid);
   5789 	BCM_PACK_U32(buf, var->vlan_action.outer_tpid_action);
   5790 	BCM_PACK_U32(buf, var->vlan_action.inner_tpid_action);
   5791 	BCM_PACK_U32(buf, var->vlan_action.action_id);
   5792 	BCM_PACK_U32(buf, var->vlan_action.class_id);
   5793 	BCM_PACK_U32(buf, var->vlan_action.taf_gate_primap);
   5794 	BCM_PACK_U32(buf, var->vlan_action.flags);
   5795 	return buf;
   5796 }
   5797 
   5798 uint8 *
   5799 _bcm_unpack_fcoe_vsan_action_set(uint8 *buf, bcm_fcoe_vsan_action_set_t *var)
   5800 {
   5801 	BCM_UNPACK_U32(buf, var->flags);
   5802 	BCM_UNPACK_U32(buf, var->new_vsan);
   5803 	BCM_UNPACK_U8(buf, var->new_vsan_pri);
   5804 	BCM_UNPACK_U8(buf, var->vft.r_ctl);
   5805 	BCM_UNPACK_U8(buf, var->vft.version);
   5806 	BCM_UNPACK_U8(buf, var->vft.type);
   5807 	BCM_UNPACK_U8(buf, var->vft.hop_count);
   5808 	BCM_UNPACK_U32(buf, var->ingress_if);
   5809 	BCM_UNPACK_U32(buf, var->dt_vsan);
   5810 	BCM_UNPACK_U32(buf, var->dt_vsan_pri);
   5811 	BCM_UNPACK_U32(buf, var->it_vsan);
   5812 	BCM_UNPACK_U32(buf, var->it_vsan_pri);
   5813 	BCM_UNPACK_U32(buf, var->ot_vsan);
   5814 	BCM_UNPACK_U32(buf, var->ot_vsan_pri);
   5815 	BCM_UNPACK_U32(buf, var->ut_vsan);
   5816 	BCM_UNPACK_U32(buf, var->ut_vsan_pri);
   5817 	BCM_UNPACK_U16(buf, var->vlan_action.new_outer_vlan);
   5818 	BCM_UNPACK_U16(buf, var->vlan_action.new_inner_vlan);
   5819 	BCM_UNPACK_U8(buf, var->vlan_action.new_inner_pkt_prio);
   5820 	BCM_UNPACK_U8(buf, var->vlan_action.new_outer_cfi);
   5821 	BCM_UNPACK_U8(buf, var->vlan_action.new_inner_cfi);
   5822 	BCM_UNPACK_U32(buf, var->vlan_action.ingress_if);
   5823 	BCM_UNPACK_U32(buf, var->vlan_action.priority);
   5824 	BCM_UNPACK_U32(buf, var->vlan_action.dt_outer);
   5825 	BCM_UNPACK_U32(buf, var->vlan_action.dt_outer_prio);
   5826 	BCM_UNPACK_U32(buf, var->vlan_action.dt_outer_pkt_prio);
   5827 	BCM_UNPACK_U32(buf, var->vlan_action.dt_outer_cfi);
   5828 	BCM_UNPACK_U32(buf, var->vlan_action.dt_inner);
   5829 	BCM_UNPACK_U32(buf, var->vlan_action.dt_inner_prio);
   5830 	BCM_UNPACK_U32(buf, var->vlan_action.dt_inner_pkt_prio);
   5831 	BCM_UNPACK_U32(buf, var->vlan_action.dt_inner_cfi);
   5832 	BCM_UNPACK_U32(buf, var->vlan_action.ot_outer);
   5833 	BCM_UNPACK_U32(buf, var->vlan_action.ot_outer_prio);
   5834 	BCM_UNPACK_U32(buf, var->vlan_action.ot_outer_pkt_prio);
   5835 	BCM_UNPACK_U32(buf, var->vlan_action.ot_outer_cfi);
   5836 	BCM_UNPACK_U32(buf, var->vlan_action.ot_inner);
   5837 	BCM_UNPACK_U32(buf, var->vlan_action.ot_inner_pkt_prio);
   5838 	BCM_UNPACK_U32(buf, var->vlan_action.ot_inner_cfi);
   5839 	BCM_UNPACK_U32(buf, var->vlan_action.it_outer);
   5840 	BCM_UNPACK_U32(buf, var->vlan_action.it_outer_pkt_prio);
   5841 	BCM_UNPACK_U32(buf, var->vlan_action.it_outer_cfi);
   5842 	BCM_UNPACK_U32(buf, var->vlan_action.it_inner);
   5843 	BCM_UNPACK_U32(buf, var->vlan_action.it_inner_prio);
   5844 	BCM_UNPACK_U32(buf, var->vlan_action.it_inner_pkt_prio);
   5845 	BCM_UNPACK_U32(buf, var->vlan_action.it_inner_cfi);
   5846 	BCM_UNPACK_U32(buf, var->vlan_action.ut_outer);
   5847 	BCM_UNPACK_U32(buf, var->vlan_action.ut_outer_pkt_prio);
   5848 	BCM_UNPACK_U32(buf, var->vlan_action.ut_outer_cfi);
   5849 	BCM_UNPACK_U32(buf, var->vlan_action.ut_inner);
   5850 	BCM_UNPACK_U32(buf, var->vlan_action.ut_inner_pkt_prio);
   5851 	BCM_UNPACK_U32(buf, var->vlan_action.ut_inner_cfi);
   5852 	BCM_UNPACK_U32(buf, var->vlan_action.outer_pcp);
   5853 	BCM_UNPACK_U32(buf, var->vlan_action.inner_pcp);
   5854 	BCM_UNPACK_U32(buf, var->vlan_action.policer_id);
   5855 	BCM_UNPACK_U16(buf, var->vlan_action.outer_tpid);
   5856 	BCM_UNPACK_U16(buf, var->vlan_action.inner_tpid);
   5857 	BCM_UNPACK_U32(buf, var->vlan_action.outer_tpid_action);
   5858 	BCM_UNPACK_U32(buf, var->vlan_action.inner_tpid_action);
   5859 	BCM_UNPACK_U32(buf, var->vlan_action.action_id);
   5860 	BCM_UNPACK_U32(buf, var->vlan_action.class_id);
   5861 	BCM_UNPACK_U32(buf, var->vlan_action.taf_gate_primap);
   5862 	BCM_UNPACK_U32(buf, var->vlan_action.flags);
   5863 	return buf;
   5864 }
   5865 
   5866 uint8 *
   5867 _bcm_pack_fcoe_vsan(uint8 *buf, bcm_fcoe_vsan_t *var)
   5868 {
   5869 	BCM_PACK_U32(buf, var->config_flags);
   5870 	BCM_PACK_U32(buf, var->l3_intf_id);
   5871 	BCM_PACK_U32(buf, var->fcmap);
   5872 	return buf;
   5873 }
   5874 
   5875 uint8 *
   5876 _bcm_unpack_fcoe_vsan(uint8 *buf, bcm_fcoe_vsan_t *var)
   5877 {
   5878 	BCM_UNPACK_U32(buf, var->config_flags);
   5879 	BCM_UNPACK_U32(buf, var->l3_intf_id);
   5880 	BCM_UNPACK_U32(buf, var->fcmap);
   5881 	return buf;
   5882 }
   5883 
   5884 uint8 *
   5885 _bcm_pack_fcoe_vsan_translate_key_config(uint8 *buf, bcm_fcoe_vsan_translate_key_config_t *var)
   5886 {
   5887 	BCM_PACK_U32(buf, var->flags);
   5888 	BCM_PACK_U32(buf, var->key_type);
   5889 	BCM_PACK_U16(buf, var->inner_vlan);
   5890 	BCM_PACK_U16(buf, var->outer_vlan);
   5891 	BCM_PACK_U32(buf, var->vsan);
   5892 	BCM_PACK_U32(buf, var->port);
   5893 	return buf;
   5894 }
   5895 
   5896 uint8 *
   5897 _bcm_unpack_fcoe_vsan_translate_key_config(uint8 *buf, bcm_fcoe_vsan_translate_key_config_t *var)
   5898 {
   5899 	BCM_UNPACK_U32(buf, var->flags);
   5900 	BCM_UNPACK_U32(buf, var->key_type);
   5901 	BCM_UNPACK_U16(buf, var->inner_vlan);
   5902 	BCM_UNPACK_U16(buf, var->outer_vlan);
   5903 	BCM_UNPACK_U32(buf, var->vsan);
   5904 	BCM_UNPACK_U32(buf, var->port);
   5905 	return buf;
   5906 }
   5907 
   5908 uint8 *
   5909 _bcm_pack_fcoe_zone_entry(uint8 *buf, bcm_fcoe_zone_entry_t *var)
   5910 {
   5911 	BCM_PACK_U32(buf, var->flags);
   5912 	BCM_PACK_U32(buf, var->vsan_id);
   5913 	BCM_PACK_U32(buf, var->d_id);
   5914 	BCM_PACK_U32(buf, var->s_id);
   5915 	BCM_PACK_U32(buf, var->class_id);
   5916 	BCM_PACK_U32(buf, var->action);
   5917 	BCM_PACK_U32(buf, var->dest_port);
   5918 	return buf;
   5919 }
   5920 
   5921 uint8 *
   5922 _bcm_unpack_fcoe_zone_entry(uint8 *buf, bcm_fcoe_zone_entry_t *var)
   5923 {
   5924 	BCM_UNPACK_U32(buf, var->flags);
   5925 	BCM_UNPACK_U32(buf, var->vsan_id);
   5926 	BCM_UNPACK_U32(buf, var->d_id);
   5927 	BCM_UNPACK_U32(buf, var->s_id);
   5928 	BCM_UNPACK_U32(buf, var->class_id);
   5929 	BCM_UNPACK_U32(buf, var->action);
   5930 	BCM_UNPACK_U32(buf, var->dest_port);
   5931 	return buf;
   5932 }
   5933 
   5934 uint8 *
   5935 _bcm_pack_field_CopyToCpu_config(uint8 *buf, bcm_field_CopyToCpu_config_t *var)
   5936 {
   5937 	BCM_PACK_U32(buf, var->flags);
   5938 	BCM_PACK_U32(buf, var->match_rule);
   5939 	return buf;
   5940 }
   5941 
   5942 uint8 *
   5943 _bcm_unpack_field_CopyToCpu_config(uint8 *buf, bcm_field_CopyToCpu_config_t *var)
   5944 {
   5945 	BCM_UNPACK_U32(buf, var->flags);
   5946 	BCM_UNPACK_U32(buf, var->match_rule);
   5947 	return buf;
   5948 }
   5949 
   5950 uint8 *
   5951 _bcm_pack_field_ace_entry_info(uint8 *buf, bcm_field_ace_entry_info_t *var)
   5952 {
   5953 	BCM_PACK_U32(buf, var->nof_entry_actions);
   5954 	{
   5955 		int _i;
   5956 
   5957 		for (_i = 0; _i < 16; _i++) {
   5958 			BCM_PACK_U32(buf, var->entry_action[_i].type);
   5959 			BCM_PACK_U32(buf, var->entry_action[_i].value[0]);
   5960 			BCM_PACK_U32(buf, var->entry_action[_i].value[1]);
   5961 			BCM_PACK_U32(buf, var->entry_action[_i].value[2]);
   5962 			BCM_PACK_U32(buf, var->entry_action[_i].value[3]);
   5963 		}
   5964 	}
   5965 	return buf;
   5966 }
   5967 
   5968 uint8 *
   5969 _bcm_unpack_field_ace_entry_info(uint8 *buf, bcm_field_ace_entry_info_t *var)
   5970 {
   5971 	BCM_UNPACK_U32(buf, var->nof_entry_actions);
   5972 	{
   5973 		int _i;
   5974 
   5975 		for (_i = 0; _i < 16; _i++) {
   5976 			BCM_UNPACK_U32(buf, var->entry_action[_i].type);
   5977 			BCM_UNPACK_U32(buf, var->entry_action[_i].value[0]);
   5978 			BCM_UNPACK_U32(buf, var->entry_action[_i].value[1]);
   5979 			BCM_UNPACK_U32(buf, var->entry_action[_i].value[2]);
   5980 			BCM_UNPACK_U32(buf, var->entry_action[_i].value[3]);
   5981 		}
   5982 	}
   5983 	return buf;
   5984 }
   5985 
   5986 uint8 *
   5987 _bcm_pack_field_ace_format_info(uint8 *buf, bcm_field_ace_format_info_t *var)
   5988 {
   5989 	BCM_PACK_U32(buf, var->nof_actions);
   5990 	{
   5991 		int _i;
   5992 
   5993 		for (_i = 0; _i < 16; _i++) {
   5994 			BCM_PACK_U32(buf, var->action_types[_i]);
   5995 		}
   5996 	}
   5997 	{
   5998 		int _i;
   5999 
   6000 		for (_i = 0; _i < 16; _i++) {
   6001 			BCM_PACK_U32(buf, var->action_with_valid_bit[_i]);
   6002 		}
   6003 	}
   6004 	{
   6005 		int _i;
   6006 
   6007 		for (_i = 0; _i < 20; _i++) {
   6008 			BCM_PACK_U8(buf, var->name[_i]);
   6009 		}
   6010 	}
   6011 	return buf;
   6012 }
   6013 
   6014 uint8 *
   6015 _bcm_unpack_field_ace_format_info(uint8 *buf, bcm_field_ace_format_info_t *var)
   6016 {
   6017 	BCM_UNPACK_U32(buf, var->nof_actions);
   6018 	{
   6019 		int _i;
   6020 
   6021 		for (_i = 0; _i < 16; _i++) {
   6022 			BCM_UNPACK_U32(buf, var->action_types[_i]);
   6023 		}
   6024 	}
   6025 	{
   6026 		int _i;
   6027 
   6028 		for (_i = 0; _i < 16; _i++) {
   6029 			BCM_UNPACK_U32(buf, var->action_with_valid_bit[_i]);
   6030 		}
   6031 	}
   6032 	{
   6033 		int _i;
   6034 
   6035 		for (_i = 0; _i < 20; _i++) {
   6036 			BCM_UNPACK_U8(buf, var->name[_i]);
   6037 		}
   6038 	}
   6039 	return buf;
   6040 }
   6041 
   6042 uint8 *
   6043 _bcm_pack_field_action_core_config(uint8 *buf, bcm_field_action_core_config_t *var)
   6044 {
   6045 	BCM_PACK_U32(buf, var->flags);
   6046 	BCM_PACK_U32(buf, var->param0);
   6047 	BCM_PACK_U32(buf, var->param1);
   6048 	BCM_PACK_U32(buf, var->param2);
   6049 	BCM_PACK_U32(buf, var->param3);
   6050 	return buf;
   6051 }
   6052 
   6053 uint8 *
   6054 _bcm_unpack_field_action_core_config(uint8 *buf, bcm_field_action_core_config_t *var)
   6055 {
   6056 	BCM_UNPACK_U32(buf, var->flags);
   6057 	BCM_UNPACK_U32(buf, var->param0);
   6058 	BCM_UNPACK_U32(buf, var->param1);
   6059 	BCM_UNPACK_U32(buf, var->param2);
   6060 	BCM_UNPACK_U32(buf, var->param3);
   6061 	return buf;
   6062 }
   6063 
   6064 uint8 *
   6065 _bcm_pack_field_action_info(uint8 *buf, bcm_field_action_info_t *var)
   6066 {
   6067 	BCM_PACK_U32(buf, var->stage);
   6068 	BCM_PACK_U32(buf, var->action_type);
   6069 	BCM_PACK_U32(buf, var->size);
   6070 	BCM_PACK_U32(buf, var->prefix_size);
   6071 	BCM_PACK_U32(buf, var->prefix_value);
   6072 	{
   6073 		int _i;
   6074 
   6075 		for (_i = 0; _i < 20; _i++) {
   6076 			BCM_PACK_U8(buf, var->name[_i]);
   6077 		}
   6078 	}
   6079 	return buf;
   6080 }
   6081 
   6082 uint8 *
   6083 _bcm_unpack_field_action_info(uint8 *buf, bcm_field_action_info_t *var)
   6084 {
   6085 	BCM_UNPACK_U32(buf, var->stage);
   6086 	BCM_UNPACK_U32(buf, var->action_type);
   6087 	BCM_UNPACK_U32(buf, var->size);
   6088 	BCM_UNPACK_U32(buf, var->prefix_size);
   6089 	BCM_UNPACK_U32(buf, var->prefix_value);
   6090 	{
   6091 		int _i;
   6092 
   6093 		for (_i = 0; _i < 20; _i++) {
   6094 			BCM_UNPACK_U8(buf, var->name[_i]);
   6095 		}
   6096 	}
   6097 	return buf;
   6098 }
   6099 
   6100 uint8 *
   6101 _bcm_pack_field_action_match_config(uint8 *buf, bcm_field_action_match_config_t *var)
   6102 {
   6103 	BCM_PACK_U8(buf, var->elephant_pkt_only);
   6104 	buf = _bcm_pack_pbmp(buf, &(*var).egr_pbmp);
   6105 	return buf;
   6106 }
   6107 
   6108 uint8 *
   6109 _bcm_unpack_field_action_match_config(uint8 *buf, bcm_field_action_match_config_t *var)
   6110 {
   6111 	BCM_UNPACK_U8(buf, var->elephant_pkt_only);
   6112 	buf = _bcm_unpack_pbmp(buf, &(*var).egr_pbmp);
   6113 	return buf;
   6114 }
   6115 
   6116 uint8 *
   6117 _bcm_pack_field_action_params(uint8 *buf, bcm_field_action_params_t *var)
   6118 {
   6119 	BCM_PACK_U32(buf, var->param0);
   6120 	BCM_PACK_U32(buf, var->param1);
   6121 	buf = _bcm_pack_pbmp(buf, &(*var).pbmp);
   6122 	return buf;
   6123 }
   6124 
   6125 uint8 *
   6126 _bcm_unpack_field_action_params(uint8 *buf, bcm_field_action_params_t *var)
   6127 {
   6128 	BCM_UNPACK_U32(buf, var->param0);
   6129 	BCM_UNPACK_U32(buf, var->param1);
   6130 	buf = _bcm_unpack_pbmp(buf, &(*var).pbmp);
   6131 	return buf;
   6132 }
   6133 
   6134 uint8 *
   6135 _bcm_pack_field_aset(uint8 *buf, bcm_field_aset_t *var)
   6136 {
   6137 	{
   6138 		int _i;
   6139 
   6140 		for (_i = 0; _i < 21; _i++) {
   6141 			BCM_PACK_U32(buf, var->w[_i]);
   6142 		}
   6143 	}
   6144 	{
   6145 		int _i;
   6146 
   6147 		for (_i = 0; _i < 16; _i++) {
   6148 			BCM_PACK_U32(buf, var->actions_width[_i].action);
   6149 			BCM_PACK_U32(buf, var->actions_width[_i].width);
   6150 			BCM_PACK_U8(buf, var->actions_width[_i].valid);
   6151 		}
   6152 	}
   6153 	return buf;
   6154 }
   6155 
   6156 uint8 *
   6157 _bcm_unpack_field_aset(uint8 *buf, bcm_field_aset_t *var)
   6158 {
   6159 	{
   6160 		int _i;
   6161 
   6162 		for (_i = 0; _i < 21; _i++) {
   6163 			BCM_UNPACK_U32(buf, var->w[_i]);
   6164 		}
   6165 	}
   6166 	{
   6167 		int _i;
   6168 
   6169 		for (_i = 0; _i < 16; _i++) {
   6170 			BCM_UNPACK_U32(buf, var->actions_width[_i].action);
   6171 			BCM_UNPACK_U32(buf, var->actions_width[_i].width);
   6172 			BCM_UNPACK_U8(buf, var->actions_width[_i].valid);
   6173 		}
   6174 	}
   6175 	return buf;
   6176 }
   6177 
   6178 uint8 *
   6179 _bcm_pack_field_class_info(uint8 *buf, bcm_field_class_info_t *var)
   6180 {
   6181 	BCM_PACK_U32(buf, var->action);
   6182 	{
   6183 		uint32 _u32;
   6184 
   6185 		_u32 = COMPILER_64_HI(var->class_id);
   6186 		BCM_PACK_U32(buf, _u32);
   6187 		_u32 = COMPILER_64_LO(var->class_id);
   6188 		BCM_PACK_U32(buf, _u32);
   6189 	}
   6190 	return buf;
   6191 }
   6192 
   6193 uint8 *
   6194 _bcm_unpack_field_class_info(uint8 *buf, bcm_field_class_info_t *var)
   6195 {
   6196 	BCM_UNPACK_U32(buf, var->action);
   6197 	{
   6198 		uint32 _u32h, _u32l;
   6199 
   6200 		BCM_UNPACK_U32(buf, _u32h);
   6201 		BCM_UNPACK_U32(buf, _u32l);
   6202 		COMPILER_64_SET(var->class_id, _u32h, _u32l);
   6203 	}
   6204 	return buf;
   6205 }
   6206 
   6207 uint8 *
   6208 _bcm_pack_field_context_compare_info(uint8 *buf, bcm_field_context_compare_info_t *var)
   6209 {
   6210 	BCM_PACK_U32(buf, var->first_key_info.nof_quals);
   6211 	{
   6212 		int _i;
   6213 
   6214 		for (_i = 0; _i < 16; _i++) {
   6215 			BCM_PACK_U32(buf, var->first_key_info.qual_types[_i]);
   6216 		}
   6217 	}
   6218 	{
   6219 		int _i;
   6220 
   6221 		for (_i = 0; _i < 16; _i++) {
   6222 			BCM_PACK_U32(buf, var->first_key_info.qual_info[_i].input_type);
   6223 			BCM_PACK_U32(buf, var->first_key_info.qual_info[_i].input_arg);
   6224 			BCM_PACK_U32(buf, var->first_key_info.qual_info[_i].offset);
   6225 		}
   6226 	}
   6227 	BCM_PACK_U32(buf, var->second_key_info.nof_quals);
   6228 	{
   6229 		int _i;
   6230 
   6231 		for (_i = 0; _i < 16; _i++) {
   6232 			BCM_PACK_U32(buf, var->second_key_info.qual_types[_i]);
   6233 		}
   6234 	}
   6235 	{
   6236 		int _i;
   6237 
   6238 		for (_i = 0; _i < 16; _i++) {
   6239 			BCM_PACK_U32(buf, var->second_key_info.qual_info[_i].input_type);
   6240 			BCM_PACK_U32(buf, var->second_key_info.qual_info[_i].input_arg);
   6241 			BCM_PACK_U32(buf, var->second_key_info.qual_info[_i].offset);
   6242 		}
   6243 	}
   6244 	return buf;
   6245 }
   6246 
   6247 uint8 *
   6248 _bcm_unpack_field_context_compare_info(uint8 *buf, bcm_field_context_compare_info_t *var)
   6249 {
   6250 	BCM_UNPACK_U32(buf, var->first_key_info.nof_quals);
   6251 	{
   6252 		int _i;
   6253 
   6254 		for (_i = 0; _i < 16; _i++) {
   6255 			BCM_UNPACK_U32(buf, var->first_key_info.qual_types[_i]);
   6256 		}
   6257 	}
   6258 	{
   6259 		int _i;
   6260 
   6261 		for (_i = 0; _i < 16; _i++) {
   6262 			BCM_UNPACK_U32(buf, var->first_key_info.qual_info[_i].input_type);
   6263 			BCM_UNPACK_U32(buf, var->first_key_info.qual_info[_i].input_arg);
   6264 			BCM_UNPACK_U32(buf, var->first_key_info.qual_info[_i].offset);
   6265 		}
   6266 	}
   6267 	BCM_UNPACK_U32(buf, var->second_key_info.nof_quals);
   6268 	{
   6269 		int _i;
   6270 
   6271 		for (_i = 0; _i < 16; _i++) {
   6272 			BCM_UNPACK_U32(buf, var->second_key_info.qual_types[_i]);
   6273 		}
   6274 	}
   6275 	{
   6276 		int _i;
   6277 
   6278 		for (_i = 0; _i < 16; _i++) {
   6279 			BCM_UNPACK_U32(buf, var->second_key_info.qual_info[_i].input_type);
   6280 			BCM_UNPACK_U32(buf, var->second_key_info.qual_info[_i].input_arg);
   6281 			BCM_UNPACK_U32(buf, var->second_key_info.qual_info[_i].offset);
   6282 		}
   6283 	}
   6284 	return buf;
   6285 }
   6286 
   6287 uint8 *
   6288 _bcm_pack_field_context_hash_info(uint8 *buf, bcm_field_context_hash_info_t *var)
   6289 {
   6290 	BCM_PACK_U32(buf, var->key_info.nof_quals);
   6291 	{
   6292 		int _i;
   6293 
   6294 		for (_i = 0; _i < 16; _i++) {
   6295 			BCM_PACK_U32(buf, var->key_info.qual_types[_i]);
   6296 		}
   6297 	}
   6298 	{
   6299 		int _i;
   6300 
   6301 		for (_i = 0; _i < 16; _i++) {
   6302 			BCM_PACK_U32(buf, var->key_info.qual_info[_i].input_type);
   6303 			BCM_PACK_U32(buf, var->key_info.qual_info[_i].input_arg);
   6304 			BCM_PACK_U32(buf, var->key_info.qual_info[_i].offset);
   6305 		}
   6306 	}
   6307 	BCM_PACK_U8(buf, var->compression);
   6308 	BCM_PACK_U8(buf, var->order);
   6309 	BCM_PACK_U32(buf, var->hash_function);
   6310 	BCM_PACK_U32(buf, var->hash_config.action_key);
   6311 	BCM_PACK_U32(buf, var->hash_config.function_select);
   6312 	BCM_PACK_U32(buf, var->hash_config.crc_select);
   6313 	return buf;
   6314 }
   6315 
   6316 uint8 *
   6317 _bcm_unpack_field_context_hash_info(uint8 *buf, bcm_field_context_hash_info_t *var)
   6318 {
   6319 	BCM_UNPACK_U32(buf, var->key_info.nof_quals);
   6320 	{
   6321 		int _i;
   6322 
   6323 		for (_i = 0; _i < 16; _i++) {
   6324 			BCM_UNPACK_U32(buf, var->key_info.qual_types[_i]);
   6325 		}
   6326 	}
   6327 	{
   6328 		int _i;
   6329 
   6330 		for (_i = 0; _i < 16; _i++) {
   6331 			BCM_UNPACK_U32(buf, var->key_info.qual_info[_i].input_type);
   6332 			BCM_UNPACK_U32(buf, var->key_info.qual_info[_i].input_arg);
   6333 			BCM_UNPACK_U32(buf, var->key_info.qual_info[_i].offset);
   6334 		}
   6335 	}
   6336 	BCM_UNPACK_U8(buf, var->compression);
   6337 	BCM_UNPACK_U8(buf, var->order);
   6338 	BCM_UNPACK_U32(buf, var->hash_function);
   6339 	BCM_UNPACK_U32(buf, var->hash_config.action_key);
   6340 	BCM_UNPACK_U32(buf, var->hash_config.function_select);
   6341 	BCM_UNPACK_U32(buf, var->hash_config.crc_select);
   6342 	return buf;
   6343 }
   6344 
   6345 uint8 *
   6346 _bcm_pack_field_context_info(uint8 *buf, bcm_field_context_info_t *var)
   6347 {
   6348 	BCM_PACK_U32(buf, var->context_compare_modes.compare_1_mode);
   6349 	BCM_PACK_U32(buf, var->context_compare_modes.compare_2_mode);
   6350 	BCM_PACK_U32(buf, var->cascaded_from);
   6351 	BCM_PACK_U8(buf, var->hashing_enabled);
   6352 	BCM_PACK_U8(buf, var->state_table_enabled);
   6353 	{
   6354 		int _i;
   6355 
   6356 		for (_i = 0; _i < 20; _i++) {
   6357 			BCM_PACK_U8(buf, var->name[_i]);
   6358 		}
   6359 	}
   6360 	return buf;
   6361 }
   6362 
   6363 uint8 *
   6364 _bcm_unpack_field_context_info(uint8 *buf, bcm_field_context_info_t *var)
   6365 {
   6366 	BCM_UNPACK_U32(buf, var->context_compare_modes.compare_1_mode);
   6367 	BCM_UNPACK_U32(buf, var->context_compare_modes.compare_2_mode);
   6368 	BCM_UNPACK_U32(buf, var->cascaded_from);
   6369 	BCM_UNPACK_U8(buf, var->hashing_enabled);
   6370 	BCM_UNPACK_U8(buf, var->state_table_enabled);
   6371 	{
   6372 		int _i;
   6373 
   6374 		for (_i = 0; _i < 20; _i++) {
   6375 			BCM_UNPACK_U8(buf, var->name[_i]);
   6376 		}
   6377 	}
   6378 	return buf;
   6379 }
   6380 
   6381 uint8 *
   6382 _bcm_pack_field_context_param_info(uint8 *buf, bcm_field_context_param_info_t *var)
   6383 {
   6384 	BCM_PACK_U32(buf, var->param_type);
   6385 	BCM_PACK_U32(buf, var->param_arg);
   6386 	BCM_PACK_U32(buf, var->param_val);
   6387 	return buf;
   6388 }
   6389 
   6390 uint8 *
   6391 _bcm_unpack_field_context_param_info(uint8 *buf, bcm_field_context_param_info_t *var)
   6392 {
   6393 	BCM_UNPACK_U32(buf, var->param_type);
   6394 	BCM_UNPACK_U32(buf, var->param_arg);
   6395 	BCM_UNPACK_U32(buf, var->param_val);
   6396 	return buf;
   6397 }
   6398 
   6399 uint8 *
   6400 _bcm_pack_field_data_ethertype(uint8 *buf, bcm_field_data_ethertype_t *var)
   6401 {
   6402 	BCM_PACK_U32(buf, var->relative_offset);
   6403 	BCM_PACK_U16(buf, var->ethertype);
   6404 	BCM_PACK_U16(buf, var->l2);
   6405 	BCM_PACK_U16(buf, var->vlan_tag);
   6406 	BCM_PACK_U32(buf, var->flags);
   6407 	return buf;
   6408 }
   6409 
   6410 uint8 *
   6411 _bcm_unpack_field_data_ethertype(uint8 *buf, bcm_field_data_ethertype_t *var)
   6412 {
   6413 	BCM_UNPACK_U32(buf, var->relative_offset);
   6414 	BCM_UNPACK_U16(buf, var->ethertype);
   6415 	BCM_UNPACK_U16(buf, var->l2);
   6416 	BCM_UNPACK_U16(buf, var->vlan_tag);
   6417 	BCM_UNPACK_U32(buf, var->flags);
   6418 	return buf;
   6419 }
   6420 
   6421 uint8 *
   6422 _bcm_pack_field_data_ip_protocol(uint8 *buf, bcm_field_data_ip_protocol_t *var)
   6423 {
   6424 	BCM_PACK_U32(buf, var->relative_offset);
   6425 	BCM_PACK_U16(buf, var->flags);
   6426 	BCM_PACK_U8(buf, var->ip);
   6427 	BCM_PACK_U16(buf, var->l2);
   6428 	BCM_PACK_U16(buf, var->vlan_tag);
   6429 	return buf;
   6430 }
   6431 
   6432 uint8 *
   6433 _bcm_unpack_field_data_ip_protocol(uint8 *buf, bcm_field_data_ip_protocol_t *var)
   6434 {
   6435 	BCM_UNPACK_U32(buf, var->relative_offset);
   6436 	BCM_UNPACK_U16(buf, var->flags);
   6437 	BCM_UNPACK_U8(buf, var->ip);
   6438 	BCM_UNPACK_U16(buf, var->l2);
   6439 	BCM_UNPACK_U16(buf, var->vlan_tag);
   6440 	return buf;
   6441 }
   6442 
   6443 uint8 *
   6444 _bcm_pack_field_data_packet_format(uint8 *buf, bcm_field_data_packet_format_t *var)
   6445 {
   6446 	BCM_PACK_U32(buf, var->relative_offset);
   6447 	BCM_PACK_U16(buf, var->l2);
   6448 	BCM_PACK_U16(buf, var->vlan_tag);
   6449 	BCM_PACK_U16(buf, var->outer_ip);
   6450 	BCM_PACK_U16(buf, var->inner_ip);
   6451 	BCM_PACK_U16(buf, var->tunnel);
   6452 	BCM_PACK_U16(buf, var->mpls);
   6453 	BCM_PACK_U16(buf, var->fibre_chan_outer);
   6454 	BCM_PACK_U16(buf, var->fibre_chan_inner);
   6455 	BCM_PACK_U32(buf, var->flags);
   6456 	return buf;
   6457 }
   6458 
   6459 uint8 *
   6460 _bcm_unpack_field_data_packet_format(uint8 *buf, bcm_field_data_packet_format_t *var)
   6461 {
   6462 	BCM_UNPACK_U32(buf, var->relative_offset);
   6463 	BCM_UNPACK_U16(buf, var->l2);
   6464 	BCM_UNPACK_U16(buf, var->vlan_tag);
   6465 	BCM_UNPACK_U16(buf, var->outer_ip);
   6466 	BCM_UNPACK_U16(buf, var->inner_ip);
   6467 	BCM_UNPACK_U16(buf, var->tunnel);
   6468 	BCM_UNPACK_U16(buf, var->mpls);
   6469 	BCM_UNPACK_U16(buf, var->fibre_chan_outer);
   6470 	BCM_UNPACK_U16(buf, var->fibre_chan_inner);
   6471 	BCM_UNPACK_U32(buf, var->flags);
   6472 	return buf;
   6473 }
   6474 
   6475 uint8 *
   6476 _bcm_pack_field_data_qualifier(uint8 *buf, bcm_field_data_qualifier_t *var)
   6477 {
   6478 	BCM_PACK_U32(buf, var->qual_id);
   6479 	BCM_PACK_U32(buf, var->flags);
   6480 	BCM_PACK_U32(buf, var->offset_base);
   6481 	BCM_PACK_U16(buf, var->offset);
   6482 	BCM_PACK_U32(buf, var->length);
   6483 	BCM_PACK_U32(buf, var->qualifier);
   6484 	BCM_PACK_U32(buf, var->stage);
   6485 	{
   6486 		int _i;
   6487 
   6488 		for (_i = 0; _i < 100; _i++) {
   6489 			BCM_PACK_U8(buf, var->name[_i]);
   6490 		}
   6491 	}
   6492 	return buf;
   6493 }
   6494 
   6495 uint8 *
   6496 _bcm_unpack_field_data_qualifier(uint8 *buf, bcm_field_data_qualifier_t *var)
   6497 {
   6498 	BCM_UNPACK_U32(buf, var->qual_id);
   6499 	BCM_UNPACK_U32(buf, var->flags);
   6500 	BCM_UNPACK_U32(buf, var->offset_base);
   6501 	BCM_UNPACK_U16(buf, var->offset);
   6502 	BCM_UNPACK_U32(buf, var->length);
   6503 	BCM_UNPACK_U32(buf, var->qualifier);
   6504 	BCM_UNPACK_U32(buf, var->stage);
   6505 	{
   6506 		int _i;
   6507 
   6508 		for (_i = 0; _i < 100; _i++) {
   6509 			BCM_UNPACK_U8(buf, var->name[_i]);
   6510 		}
   6511 	}
   6512 	return buf;
   6513 }
   6514 
   6515 uint8 *
   6516 _bcm_pack_field_entry_info(uint8 *buf, bcm_field_entry_info_t *var)
   6517 {
   6518 	BCM_PACK_U32(buf, var->priority);
   6519 	BCM_PACK_U32(buf, var->nof_entry_quals);
   6520 	{
   6521 		int _i;
   6522 
   6523 		for (_i = 0; _i < 16; _i++) {
   6524 			BCM_PACK_U32(buf, var->entry_qual[_i].type);
   6525 			{
   6526 				int _i;
   6527 
   6528 				for (_i = 0; _i < 5; _i++) {
   6529 					BCM_PACK_U32(buf, var->entry_qual[_i].value[_i]);
   6530 				}
   6531 			}
   6532 			{
   6533 				int _i;
   6534 
   6535 				for (_i = 0; _i < 5; _i++) {
   6536 					BCM_PACK_U32(buf, var->entry_qual[_i].max_value[_i]);
   6537 				}
   6538 			}
   6539 			{
   6540 				int _i;
   6541 
   6542 				for (_i = 0; _i < 5; _i++) {
   6543 					BCM_PACK_U32(buf, var->entry_qual[_i].mask[_i]);
   6544 				}
   6545 			}
   6546 		}
   6547 	}
   6548 	BCM_PACK_U32(buf, var->nof_entry_actions);
   6549 	{
   6550 		int _i;
   6551 
   6552 		for (_i = 0; _i < 16; _i++) {
   6553 			BCM_PACK_U32(buf, var->entry_action[_i].type);
   6554 			BCM_PACK_U32(buf, var->entry_action[_i].value[0]);
   6555 			BCM_PACK_U32(buf, var->entry_action[_i].value[1]);
   6556 			BCM_PACK_U32(buf, var->entry_action[_i].value[2]);
   6557 			BCM_PACK_U32(buf, var->entry_action[_i].value[3]);
   6558 		}
   6559 	}
   6560 	BCM_PACK_U32(buf, var->core);
   6561 	BCM_PACK_U8(buf, var->valid_bit);
   6562 	return buf;
   6563 }
   6564 
   6565 uint8 *
   6566 _bcm_unpack_field_entry_info(uint8 *buf, bcm_field_entry_info_t *var)
   6567 {
   6568 	BCM_UNPACK_U32(buf, var->priority);
   6569 	BCM_UNPACK_U32(buf, var->nof_entry_quals);
   6570 	{
   6571 		int _i;
   6572 
   6573 		for (_i = 0; _i < 16; _i++) {
   6574 			BCM_UNPACK_U32(buf, var->entry_qual[_i].type);
   6575 			{
   6576 				int _i;
   6577 
   6578 				for (_i = 0; _i < 5; _i++) {
   6579 					BCM_UNPACK_U32(buf, var->entry_qual[_i].value[_i]);
   6580 				}
   6581 			}
   6582 			{
   6583 				int _i;
   6584 
   6585 				for (_i = 0; _i < 5; _i++) {
   6586 					BCM_UNPACK_U32(buf, var->entry_qual[_i].max_value[_i]);
   6587 				}
   6588 			}
   6589 			{
   6590 				int _i;
   6591 
   6592 				for (_i = 0; _i < 5; _i++) {
   6593 					BCM_UNPACK_U32(buf, var->entry_qual[_i].mask[_i]);
   6594 				}
   6595 			}
   6596 		}
   6597 	}
   6598 	BCM_UNPACK_U32(buf, var->nof_entry_actions);
   6599 	{
   6600 		int _i;
   6601 
   6602 		for (_i = 0; _i < 16; _i++) {
   6603 			BCM_UNPACK_U32(buf, var->entry_action[_i].type);
   6604 			BCM_UNPACK_U32(buf, var->entry_action[_i].value[0]);
   6605 			BCM_UNPACK_U32(buf, var->entry_action[_i].value[1]);
   6606 			BCM_UNPACK_U32(buf, var->entry_action[_i].value[2]);
   6607 			BCM_UNPACK_U32(buf, var->entry_action[_i].value[3]);
   6608 		}
   6609 	}
   6610 	BCM_UNPACK_U32(buf, var->core);
   6611 	BCM_UNPACK_U8(buf, var->valid_bit);
   6612 	return buf;
   6613 }
   6614 
   6615 uint8 *
   6616 _bcm_pack_field_entry_oper(uint8 *buf, bcm_field_entry_oper_t *var)
   6617 {
   6618 	BCM_PACK_U32(buf, var->flags);
   6619 	BCM_PACK_U32(buf, var->entry_id);
   6620 	return buf;
   6621 }
   6622 
   6623 uint8 *
   6624 _bcm_unpack_field_entry_oper(uint8 *buf, bcm_field_entry_oper_t *var)
   6625 {
   6626 	BCM_UNPACK_U32(buf, var->flags);
   6627 	BCM_UNPACK_U32(buf, var->entry_id);
   6628 	return buf;
   6629 }
   6630 
   6631 uint8 *
   6632 _bcm_pack_field_entry_qual_aBCM_FIELD_NUMBER_OF_QUALS_PER_GROUP(uint8 *buf, bcm_field_entry_qual_t *var)
   6633 {
   6634 	{
   6635 		int _i;
   6636 
   6637 		for (_i = 0; _i < 16; _i++) {
   6638 			BCM_PACK_U32(buf, var[_i].type);
   6639 			{
   6640 				int _i;
   6641 
   6642 				for (_i = 0; _i < 5; _i++) {
   6643 					BCM_PACK_U32(buf, var[_i].value[_i]);
   6644 				}
   6645 			}
   6646 			{
   6647 				int _i;
   6648 
   6649 				for (_i = 0; _i < 5; _i++) {
   6650 					BCM_PACK_U32(buf, var[_i].max_value[_i]);
   6651 				}
   6652 			}
   6653 			{
   6654 				int _i;
   6655 
   6656 				for (_i = 0; _i < 5; _i++) {
   6657 					BCM_PACK_U32(buf, var[_i].mask[_i]);
   6658 				}
   6659 			}
   6660 		}
   6661 	}
   6662 	return buf;
   6663 }
   6664 
   6665 uint8 *
   6666 _bcm_unpack_field_entry_qual_aBCM_FIELD_NUMBER_OF_QUALS_PER_GROUP(uint8 *buf, bcm_field_entry_qual_t *var)
   6667 {
   6668 	{
   6669 		int _i;
   6670 
   6671 		for (_i = 0; _i < 16; _i++) {
   6672 			BCM_UNPACK_U32(buf, var[_i].type);
   6673 			{
   6674 				int _i;
   6675 
   6676 				for (_i = 0; _i < 5; _i++) {
   6677 					BCM_UNPACK_U32(buf, var[_i].value[_i]);
   6678 				}
   6679 			}
   6680 			{
   6681 				int _i;
   6682 
   6683 				for (_i = 0; _i < 5; _i++) {
   6684 					BCM_UNPACK_U32(buf, var[_i].max_value[_i]);
   6685 				}
   6686 			}
   6687 			{
   6688 				int _i;
   6689 
   6690 				for (_i = 0; _i < 5; _i++) {
   6691 					BCM_UNPACK_U32(buf, var[_i].mask[_i]);
   6692 				}
   6693 			}
   6694 		}
   6695 	}
   6696 	return buf;
   6697 }
   6698 
   6699 uint8 *
   6700 _bcm_pack_field_extraction_action(uint8 *buf, bcm_field_extraction_action_t *var)
   6701 {
   6702 	BCM_PACK_U32(buf, var->action);
   6703 	BCM_PACK_U32(buf, var->bias);
   6704 	return buf;
   6705 }
   6706 
   6707 uint8 *
   6708 _bcm_unpack_field_extraction_action(uint8 *buf, bcm_field_extraction_action_t *var)
   6709 {
   6710 	BCM_UNPACK_U32(buf, var->action);
   6711 	BCM_UNPACK_U32(buf, var->bias);
   6712 	return buf;
   6713 }
   6714 
   6715 uint8 *
   6716 _bcm_pack_field_extraction_field(uint8 *buf, bcm_field_extraction_field_t *var)
   6717 {
   6718 	BCM_PACK_U32(buf, var->flags);
   6719 	BCM_PACK_U32(buf, var->qualifier);
   6720 	BCM_PACK_U32(buf, var->lsb);
   6721 	BCM_PACK_U32(buf, var->bits);
   6722 	BCM_PACK_U32(buf, var->value);
   6723 	return buf;
   6724 }
   6725 
   6726 uint8 *
   6727 _bcm_unpack_field_extraction_field(uint8 *buf, bcm_field_extraction_field_t *var)
   6728 {
   6729 	BCM_UNPACK_U32(buf, var->flags);
   6730 	BCM_UNPACK_U32(buf, var->qualifier);
   6731 	BCM_UNPACK_U32(buf, var->lsb);
   6732 	BCM_UNPACK_U32(buf, var->bits);
   6733 	BCM_UNPACK_U32(buf, var->value);
   6734 	return buf;
   6735 }
   6736 
   6737 uint8 *
   6738 _bcm_pack_field_fem_action_info(uint8 *buf, bcm_field_fem_action_info_t *var)
   6739 {
   6740 	BCM_PACK_U8(buf, var->fem_input.input_offset);
   6741 	BCM_PACK_U32(buf, var->fem_input.overriding_fg_id);
   6742 	BCM_PACK_U8(buf, var->condition_msb);
   6743 	{
   6744 		int _i;
   6745 
   6746 		for (_i = 0; _i < 16; _i++) {
   6747 			BCM_PACK_U8(buf, var->fem_condition[_i].extraction_id);
   6748 			BCM_PACK_U8(buf, var->fem_condition[_i].is_action_valid);
   6749 		}
   6750 	}
   6751 	BCM_PACK_U32(buf, var->fem_extraction[0].action_type);
   6752 	{
   6753 		int _i;
   6754 
   6755 		for (_i = 0; _i < 24; _i++) {
   6756 			BCM_PACK_U32(buf, var->fem_extraction[0].output_bit[_i].source_type);
   6757 			BCM_PACK_U8(buf, var->fem_extraction[0].output_bit[_i].offset);
   6758 			BCM_PACK_U8(buf, var->fem_extraction[0].output_bit[_i].forced_value);
   6759 		}
   6760 	}
   6761 	BCM_PACK_U32(buf, var->fem_extraction[0].increment);
   6762 	BCM_PACK_U32(buf, var->fem_extraction[1].action_type);
   6763 	{
   6764 		int _i;
   6765 
   6766 		for (_i = 0; _i < 24; _i++) {
   6767 			BCM_PACK_U32(buf, var->fem_extraction[1].output_bit[_i].source_type);
   6768 			BCM_PACK_U8(buf, var->fem_extraction[1].output_bit[_i].offset);
   6769 			BCM_PACK_U8(buf, var->fem_extraction[1].output_bit[_i].forced_value);
   6770 		}
   6771 	}
   6772 	BCM_PACK_U32(buf, var->fem_extraction[1].increment);
   6773 	BCM_PACK_U32(buf, var->fem_extraction[2].action_type);
   6774 	{
   6775 		int _i;
   6776 
   6777 		for (_i = 0; _i < 24; _i++) {
   6778 			BCM_PACK_U32(buf, var->fem_extraction[2].output_bit[_i].source_type);
   6779 			BCM_PACK_U8(buf, var->fem_extraction[2].output_bit[_i].offset);
   6780 			BCM_PACK_U8(buf, var->fem_extraction[2].output_bit[_i].forced_value);
   6781 		}
   6782 	}
   6783 	BCM_PACK_U32(buf, var->fem_extraction[2].increment);
   6784 	BCM_PACK_U32(buf, var->fem_extraction[3].action_type);
   6785 	{
   6786 		int _i;
   6787 
   6788 		for (_i = 0; _i < 24; _i++) {
   6789 			BCM_PACK_U32(buf, var->fem_extraction[3].output_bit[_i].source_type);
   6790 			BCM_PACK_U8(buf, var->fem_extraction[3].output_bit[_i].offset);
   6791 			BCM_PACK_U8(buf, var->fem_extraction[3].output_bit[_i].forced_value);
   6792 		}
   6793 	}
   6794 	BCM_PACK_U32(buf, var->fem_extraction[3].increment);
   6795 	return buf;
   6796 }
   6797 
   6798 uint8 *
   6799 _bcm_unpack_field_fem_action_info(uint8 *buf, bcm_field_fem_action_info_t *var)
   6800 {
   6801 	BCM_UNPACK_U8(buf, var->fem_input.input_offset);
   6802 	BCM_UNPACK_U32(buf, var->fem_input.overriding_fg_id);
   6803 	BCM_UNPACK_U8(buf, var->condition_msb);
   6804 	{
   6805 		int _i;
   6806 
   6807 		for (_i = 0; _i < 16; _i++) {
   6808 			BCM_UNPACK_U8(buf, var->fem_condition[_i].extraction_id);
   6809 			BCM_UNPACK_U8(buf, var->fem_condition[_i].is_action_valid);
   6810 		}
   6811 	}
   6812 	BCM_UNPACK_U32(buf, var->fem_extraction[0].action_type);
   6813 	{
   6814 		int _i;
   6815 
   6816 		for (_i = 0; _i < 24; _i++) {
   6817 			BCM_UNPACK_U32(buf, var->fem_extraction[0].output_bit[_i].source_type);
   6818 			BCM_UNPACK_U8(buf, var->fem_extraction[0].output_bit[_i].offset);
   6819 			BCM_UNPACK_U8(buf, var->fem_extraction[0].output_bit[_i].forced_value);
   6820 		}
   6821 	}
   6822 	BCM_UNPACK_U32(buf, var->fem_extraction[0].increment);
   6823 	BCM_UNPACK_U32(buf, var->fem_extraction[1].action_type);
   6824 	{
   6825 		int _i;
   6826 
   6827 		for (_i = 0; _i < 24; _i++) {
   6828 			BCM_UNPACK_U32(buf, var->fem_extraction[1].output_bit[_i].source_type);
   6829 			BCM_UNPACK_U8(buf, var->fem_extraction[1].output_bit[_i].offset);
   6830 			BCM_UNPACK_U8(buf, var->fem_extraction[1].output_bit[_i].forced_value);
   6831 		}
   6832 	}
   6833 	BCM_UNPACK_U32(buf, var->fem_extraction[1].increment);
   6834 	BCM_UNPACK_U32(buf, var->fem_extraction[2].action_type);
   6835 	{
   6836 		int _i;
   6837 
   6838 		for (_i = 0; _i < 24; _i++) {
   6839 			BCM_UNPACK_U32(buf, var->fem_extraction[2].output_bit[_i].source_type);
   6840 			BCM_UNPACK_U8(buf, var->fem_extraction[2].output_bit[_i].offset);
   6841 			BCM_UNPACK_U8(buf, var->fem_extraction[2].output_bit[_i].forced_value);
   6842 		}
   6843 	}
   6844 	BCM_UNPACK_U32(buf, var->fem_extraction[2].increment);
   6845 	BCM_UNPACK_U32(buf, var->fem_extraction[3].action_type);
   6846 	{
   6847 		int _i;
   6848 
   6849 		for (_i = 0; _i < 24; _i++) {
   6850 			BCM_UNPACK_U32(buf, var->fem_extraction[3].output_bit[_i].source_type);
   6851 			BCM_UNPACK_U8(buf, var->fem_extraction[3].output_bit[_i].offset);
   6852 			BCM_UNPACK_U8(buf, var->fem_extraction[3].output_bit[_i].forced_value);
   6853 		}
   6854 	}
   6855 	BCM_UNPACK_U32(buf, var->fem_extraction[3].increment);
   6856 	return buf;
   6857 }
   6858 
   6859 uint8 *
   6860 _bcm_pack_field_flowtrackercheck(uint8 *buf, bcm_field_flowtrackercheck_t *var)
   6861 {
   6862 	BCM_PACK_U32(buf, var->flow_check_id);
   6863 	BCM_PACK_U32(buf, var->value);
   6864 	return buf;
   6865 }
   6866 
   6867 uint8 *
   6868 _bcm_unpack_field_flowtrackercheck(uint8 *buf, bcm_field_flowtrackercheck_t *var)
   6869 {
   6870 	BCM_UNPACK_U32(buf, var->flow_check_id);
   6871 	BCM_UNPACK_U32(buf, var->value);
   6872 	return buf;
   6873 }
   6874 
   6875 uint8 *
   6876 _bcm_pack_field_group_attach_info(uint8 *buf, bcm_field_group_attach_info_t *var)
   6877 {
   6878 	BCM_PACK_U32(buf, var->key_info.nof_quals);
   6879 	{
   6880 		int _i;
   6881 
   6882 		for (_i = 0; _i < 16; _i++) {
   6883 			BCM_PACK_U32(buf, var->key_info.qual_types[_i]);
   6884 		}
   6885 	}
   6886 	{
   6887 		int _i;
   6888 
   6889 		for (_i = 0; _i < 16; _i++) {
   6890 			BCM_PACK_U32(buf, var->key_info.qual_info[_i].input_type);
   6891 			BCM_PACK_U32(buf, var->key_info.qual_info[_i].input_arg);
   6892 			BCM_PACK_U32(buf, var->key_info.qual_info[_i].offset);
   6893 		}
   6894 	}
   6895 	BCM_PACK_U32(buf, var->payload_info.nof_actions);
   6896 	{
   6897 		int _i;
   6898 
   6899 		for (_i = 0; _i < 16; _i++) {
   6900 			BCM_PACK_U32(buf, var->payload_info.action_types[_i]);
   6901 		}
   6902 	}
   6903 	{
   6904 		int _i;
   6905 
   6906 		for (_i = 0; _i < 16; _i++) {
   6907 			BCM_PACK_U32(buf, var->payload_info.action_info[_i].priority);
   6908 			BCM_PACK_U8(buf, var->payload_info.action_info[_i].valid_bit_polarity);
   6909 		}
   6910 	}
   6911 	BCM_PACK_U32(buf, var->payload_info.payload_id);
   6912 	BCM_PACK_U32(buf, var->payload_info.payload_offset);
   6913 	BCM_PACK_U8(buf, var->compare_id);
   6914 	return buf;
   6915 }
   6916 
   6917 uint8 *
   6918 _bcm_unpack_field_group_attach_info(uint8 *buf, bcm_field_group_attach_info_t *var)
   6919 {
   6920 	BCM_UNPACK_U32(buf, var->key_info.nof_quals);
   6921 	{
   6922 		int _i;
   6923 
   6924 		for (_i = 0; _i < 16; _i++) {
   6925 			BCM_UNPACK_U32(buf, var->key_info.qual_types[_i]);
   6926 		}
   6927 	}
   6928 	{
   6929 		int _i;
   6930 
   6931 		for (_i = 0; _i < 16; _i++) {
   6932 			BCM_UNPACK_U32(buf, var->key_info.qual_info[_i].input_type);
   6933 			BCM_UNPACK_U32(buf, var->key_info.qual_info[_i].input_arg);
   6934 			BCM_UNPACK_U32(buf, var->key_info.qual_info[_i].offset);
   6935 		}
   6936 	}
   6937 	BCM_UNPACK_U32(buf, var->payload_info.nof_actions);
   6938 	{
   6939 		int _i;
   6940 
   6941 		for (_i = 0; _i < 16; _i++) {
   6942 			BCM_UNPACK_U32(buf, var->payload_info.action_types[_i]);
   6943 		}
   6944 	}
   6945 	{
   6946 		int _i;
   6947 
   6948 		for (_i = 0; _i < 16; _i++) {
   6949 			BCM_UNPACK_U32(buf, var->payload_info.action_info[_i].priority);
   6950 			BCM_UNPACK_U8(buf, var->payload_info.action_info[_i].valid_bit_polarity);
   6951 		}
   6952 	}
   6953 	BCM_UNPACK_U32(buf, var->payload_info.payload_id);
   6954 	BCM_UNPACK_U32(buf, var->payload_info.payload_offset);
   6955 	BCM_UNPACK_U8(buf, var->compare_id);
   6956 	return buf;
   6957 }
   6958 
   6959 uint8 *
   6960 _bcm_pack_field_group_config(uint8 *buf, bcm_field_group_config_t *var)
   6961 {
   6962 	BCM_PACK_U32(buf, var->flags);
   6963 	{
   6964 		int _i;
   6965 
   6966 		for (_i = 0; _i < 39; _i++) {
   6967 			BCM_PACK_U32(buf, var->qset.w[_i]);
   6968 		}
   6969 	}
   6970 	{
   6971 		int _i;
   6972 
   6973 		for (_i = 0; _i < 9; _i++) {
   6974 			BCM_PACK_U32(buf, var->qset.udf_map[_i]);
   6975 		}
   6976 	}
   6977 	BCM_PACK_U32(buf, var->priority);
   6978 	BCM_PACK_U32(buf, var->mode);
   6979 	buf = _bcm_pack_pbmp(buf, &(*var).ports);
   6980 	BCM_PACK_U32(buf, var->group);
   6981 	{
   6982 		int _i;
   6983 
   6984 		for (_i = 0; _i < 21; _i++) {
   6985 			BCM_PACK_U32(buf, var->aset.w[_i]);
   6986 		}
   6987 	}
   6988 	{
   6989 		int _i;
   6990 
   6991 		for (_i = 0; _i < 16; _i++) {
   6992 			BCM_PACK_U32(buf, var->aset.actions_width[_i].action);
   6993 			BCM_PACK_U32(buf, var->aset.actions_width[_i].width);
   6994 			BCM_PACK_U8(buf, var->aset.actions_width[_i].valid);
   6995 		}
   6996 	}
   6997 	{
   6998 		int _i;
   6999 
   7000 		for (_i = 0; _i < 32; _i++) {
   7001 			BCM_PACK_U32(buf, var->preselset.w[_i]);
   7002 		}
   7003 	}
   7004 	{
   7005 		int _i;
   7006 
   7007 		for (_i = 0; _i < 32; _i++) {
   7008 			BCM_PACK_U32(buf, var->group_ref.w[_i]);
   7009 		}
   7010 	}
   7011 	BCM_PACK_U32(buf, var->max_entry_priorities);
   7012 	BCM_PACK_U32(buf, var->hintid);
   7013 	BCM_PACK_U32(buf, var->action_res_id);
   7014 	{
   7015 		int _i;
   7016 
   7017 		for (_i = 0; _i < 100; _i++) {
   7018 			BCM_PACK_U8(buf, var->name[_i]);
   7019 		}
   7020 	}
   7021 	BCM_PACK_U32(buf, var->cycle);
   7022 	BCM_PACK_U32(buf, var->pgm_bmp);
   7023 	BCM_PACK_U32(buf, var->share_id);
   7024 	return buf;
   7025 }
   7026 
   7027 uint8 *
   7028 _bcm_unpack_field_group_config(uint8 *buf, bcm_field_group_config_t *var)
   7029 {
   7030 	BCM_UNPACK_U32(buf, var->flags);
   7031 	{
   7032 		int _i;
   7033 
   7034 		for (_i = 0; _i < 39; _i++) {
   7035 			BCM_UNPACK_U32(buf, var->qset.w[_i]);
   7036 		}
   7037 	}
   7038 	{
   7039 		int _i;
   7040 
   7041 		for (_i = 0; _i < 9; _i++) {
   7042 			BCM_UNPACK_U32(buf, var->qset.udf_map[_i]);
   7043 		}
   7044 	}
   7045 	BCM_UNPACK_U32(buf, var->priority);
   7046 	BCM_UNPACK_U32(buf, var->mode);
   7047 	buf = _bcm_unpack_pbmp(buf, &(*var).ports);
   7048 	BCM_UNPACK_U32(buf, var->group);
   7049 	{
   7050 		int _i;
   7051 
   7052 		for (_i = 0; _i < 21; _i++) {
   7053 			BCM_UNPACK_U32(buf, var->aset.w[_i]);
   7054 		}
   7055 	}
   7056 	{
   7057 		int _i;
   7058 
   7059 		for (_i = 0; _i < 16; _i++) {
   7060 			BCM_UNPACK_U32(buf, var->aset.actions_width[_i].action);
   7061 			BCM_UNPACK_U32(buf, var->aset.actions_width[_i].width);
   7062 			BCM_UNPACK_U8(buf, var->aset.actions_width[_i].valid);
   7063 		}
   7064 	}
   7065 	{
   7066 		int _i;
   7067 
   7068 		for (_i = 0; _i < 32; _i++) {
   7069 			BCM_UNPACK_U32(buf, var->preselset.w[_i]);
   7070 		}
   7071 	}
   7072 	{
   7073 		int _i;
   7074 
   7075 		for (_i = 0; _i < 32; _i++) {
   7076 			BCM_UNPACK_U32(buf, var->group_ref.w[_i]);
   7077 		}
   7078 	}
   7079 	BCM_UNPACK_U32(buf, var->max_entry_priorities);
   7080 	BCM_UNPACK_U32(buf, var->hintid);
   7081 	BCM_UNPACK_U32(buf, var->action_res_id);
   7082 	{
   7083 		int _i;
   7084 
   7085 		for (_i = 0; _i < 100; _i++) {
   7086 			BCM_UNPACK_U8(buf, var->name[_i]);
   7087 		}
   7088 	}
   7089 	BCM_UNPACK_U32(buf, var->cycle);
   7090 	BCM_UNPACK_U32(buf, var->pgm_bmp);
   7091 	BCM_UNPACK_U32(buf, var->share_id);
   7092 	return buf;
   7093 }
   7094 
   7095 uint8 *
   7096 _bcm_pack_field_group_info(uint8 *buf, bcm_field_group_info_t *var)
   7097 {
   7098 	BCM_PACK_U32(buf, var->stage);
   7099 	BCM_PACK_U32(buf, var->fg_type);
   7100 	BCM_PACK_U32(buf, var->nof_quals);
   7101 	{
   7102 		int _i;
   7103 
   7104 		for (_i = 0; _i < 16; _i++) {
   7105 			BCM_PACK_U32(buf, var->qual_types[_i]);
   7106 		}
   7107 	}
   7108 	{
   7109 		int _i;
   7110 
   7111 		for (_i = 0; _i < 16; _i++) {
   7112 			BCM_PACK_U8(buf, var->qual_is_ranged[_i]);
   7113 		}
   7114 	}
   7115 	BCM_PACK_U32(buf, var->nof_actions);
   7116 	{
   7117 		int _i;
   7118 
   7119 		for (_i = 0; _i < 16; _i++) {
   7120 			BCM_PACK_U32(buf, var->action_types[_i]);
   7121 		}
   7122 	}
   7123 	{
   7124 		int _i;
   7125 
   7126 		for (_i = 0; _i < 16; _i++) {
   7127 			BCM_PACK_U32(buf, var->action_with_valid_bit[_i]);
   7128 		}
   7129 	}
   7130 	BCM_PACK_U32(buf, var->tcam_info.nof_tcam_banks);
   7131 	{
   7132 		int _i;
   7133 
   7134 		for (_i = 0; _i < 16; _i++) {
   7135 			BCM_PACK_U32(buf, var->tcam_info.tcam_bank_ids[_i]);
   7136 		}
   7137 	}
   7138 	BCM_PACK_U32(buf, var->tcam_info.bank_allocation_mode);
   7139 	{
   7140 		int _i;
   7141 
   7142 		for (_i = 0; _i < 20; _i++) {
   7143 			BCM_PACK_U8(buf, var->name[_i]);
   7144 		}
   7145 	}
   7146 	BCM_PACK_U32(buf, *var->ext_acl_db);
   7147 	return buf;
   7148 }
   7149 
   7150 uint8 *
   7151 _bcm_unpack_field_group_info(uint8 *buf, bcm_field_group_info_t *var)
   7152 {
   7153 	BCM_UNPACK_U32(buf, var->stage);
   7154 	BCM_UNPACK_U32(buf, var->fg_type);
   7155 	BCM_UNPACK_U32(buf, var->nof_quals);
   7156 	{
   7157 		int _i;
   7158 
   7159 		for (_i = 0; _i < 16; _i++) {
   7160 			BCM_UNPACK_U32(buf, var->qual_types[_i]);
   7161 		}
   7162 	}
   7163 	{
   7164 		int _i;
   7165 
   7166 		for (_i = 0; _i < 16; _i++) {
   7167 			BCM_UNPACK_U8(buf, var->qual_is_ranged[_i]);
   7168 		}
   7169 	}
   7170 	BCM_UNPACK_U32(buf, var->nof_actions);
   7171 	{
   7172 		int _i;
   7173 
   7174 		for (_i = 0; _i < 16; _i++) {
   7175 			BCM_UNPACK_U32(buf, var->action_types[_i]);
   7176 		}
   7177 	}
   7178 	{
   7179 		int _i;
   7180 
   7181 		for (_i = 0; _i < 16; _i++) {
   7182 			BCM_UNPACK_U32(buf, var->action_with_valid_bit[_i]);
   7183 		}
   7184 	}
   7185 	BCM_UNPACK_U32(buf, var->tcam_info.nof_tcam_banks);
   7186 	{
   7187 		int _i;
   7188 
   7189 		for (_i = 0; _i < 16; _i++) {
   7190 			BCM_UNPACK_U32(buf, var->tcam_info.tcam_bank_ids[_i]);
   7191 		}
   7192 	}
   7193 	BCM_UNPACK_U32(buf, var->tcam_info.bank_allocation_mode);
   7194 	{
   7195 		int _i;
   7196 
   7197 		for (_i = 0; _i < 20; _i++) {
   7198 			BCM_UNPACK_U8(buf, var->name[_i]);
   7199 		}
   7200 	}
   7201 	BCM_UNPACK_U32(buf, *var->ext_acl_db);
   7202 	return buf;
   7203 }
   7204 
   7205 uint8 *
   7206 _bcm_pack_field_group_status(uint8 *buf, bcm_field_group_status_t *var)
   7207 {
   7208 	BCM_PACK_U32(buf, var->prio_min);
   7209 	BCM_PACK_U32(buf, var->prio_max);
   7210 	BCM_PACK_U32(buf, var->entries_total);
   7211 	BCM_PACK_U32(buf, var->entries_free);
   7212 	BCM_PACK_U32(buf, var->counters_total);
   7213 	BCM_PACK_U32(buf, var->counters_free);
   7214 	BCM_PACK_U32(buf, var->meters_total);
   7215 	BCM_PACK_U32(buf, var->meters_free);
   7216 	BCM_PACK_U32(buf, var->entry_count);
   7217 	BCM_PACK_U32(buf, var->counter_count);
   7218 	BCM_PACK_U32(buf, var->meter_count);
   7219 	return buf;
   7220 }
   7221 
   7222 uint8 *
   7223 _bcm_unpack_field_group_status(uint8 *buf, bcm_field_group_status_t *var)
   7224 {
   7225 	BCM_UNPACK_U32(buf, var->prio_min);
   7226 	BCM_UNPACK_U32(buf, var->prio_max);
   7227 	BCM_UNPACK_U32(buf, var->entries_total);
   7228 	BCM_UNPACK_U32(buf, var->entries_free);
   7229 	BCM_UNPACK_U32(buf, var->counters_total);
   7230 	BCM_UNPACK_U32(buf, var->counters_free);
   7231 	BCM_UNPACK_U32(buf, var->meters_total);
   7232 	BCM_UNPACK_U32(buf, var->meters_free);
   7233 	BCM_UNPACK_U32(buf, var->entry_count);
   7234 	BCM_UNPACK_U32(buf, var->counter_count);
   7235 	BCM_UNPACK_U32(buf, var->meter_count);
   7236 	return buf;
   7237 }
   7238 
   7239 uint8 *
   7240 _bcm_pack_field_header_format_set(uint8 *buf, bcm_field_header_format_set_t *var)
   7241 {
   7242 	BCM_PACK_U32(buf, var->w[0]);
   7243 	BCM_PACK_U32(buf, var->w[1]);
   7244 	return buf;
   7245 }
   7246 
   7247 uint8 *
   7248 _bcm_unpack_field_header_format_set(uint8 *buf, bcm_field_header_format_set_t *var)
   7249 {
   7250 	BCM_UNPACK_U32(buf, var->w[0]);
   7251 	BCM_UNPACK_U32(buf, var->w[1]);
   7252 	return buf;
   7253 }
   7254 
   7255 uint8 *
   7256 _bcm_pack_field_hint(uint8 *buf, bcm_field_hint_t *var)
   7257 {
   7258 	BCM_PACK_U32(buf, var->hint_type);
   7259 	BCM_PACK_U32(buf, var->qual);
   7260 	BCM_PACK_U32(buf, var->max_values);
   7261 	BCM_PACK_U32(buf, var->start_bit);
   7262 	BCM_PACK_U32(buf, var->end_bit);
   7263 	BCM_PACK_U32(buf, var->flags);
   7264 	BCM_PACK_U32(buf, var->dosattack_event_flags);
   7265 	BCM_PACK_U32(buf, var->max_group_size);
   7266 	BCM_PACK_U32(buf, var->priority);
   7267 	BCM_PACK_U32(buf, var->udf_id);
   7268 	return buf;
   7269 }
   7270 
   7271 uint8 *
   7272 _bcm_unpack_field_hint(uint8 *buf, bcm_field_hint_t *var)
   7273 {
   7274 	BCM_UNPACK_U32(buf, var->hint_type);
   7275 	BCM_UNPACK_U32(buf, var->qual);
   7276 	BCM_UNPACK_U32(buf, var->max_values);
   7277 	BCM_UNPACK_U32(buf, var->start_bit);
   7278 	BCM_UNPACK_U32(buf, var->end_bit);
   7279 	BCM_UNPACK_U32(buf, var->flags);
   7280 	BCM_UNPACK_U32(buf, var->dosattack_event_flags);
   7281 	BCM_UNPACK_U32(buf, var->max_group_size);
   7282 	BCM_UNPACK_U32(buf, var->priority);
   7283 	BCM_UNPACK_U32(buf, var->udf_id);
   7284 	return buf;
   7285 }
   7286 
   7287 uint8 *
   7288 _bcm_pack_field_internal_to_bcm_map(uint8 *buf, bcm_field_internal_to_bcm_map_t *var)
   7289 {
   7290 	BCM_PACK_U32(buf, var->bcm_action);
   7291 	BCM_PACK_U32(buf, var->bcm_stage);
   7292 	return buf;
   7293 }
   7294 
   7295 uint8 *
   7296 _bcm_unpack_field_internal_to_bcm_map(uint8 *buf, bcm_field_internal_to_bcm_map_t *var)
   7297 {
   7298 	BCM_UNPACK_U32(buf, var->bcm_action);
   7299 	BCM_UNPACK_U32(buf, var->bcm_stage);
   7300 	return buf;
   7301 }
   7302 
   7303 uint8 *
   7304 _bcm_pack_field_oam_stat_action(uint8 *buf, bcm_field_oam_stat_action_t *var)
   7305 {
   7306 	BCM_PACK_U32(buf, var->stat_object);
   7307 	BCM_PACK_U32(buf, var->stat_mode_id);
   7308 	BCM_PACK_U32(buf, var->action);
   7309 	return buf;
   7310 }
   7311 
   7312 uint8 *
   7313 _bcm_unpack_field_oam_stat_action(uint8 *buf, bcm_field_oam_stat_action_t *var)
   7314 {
   7315 	BCM_UNPACK_U32(buf, var->stat_object);
   7316 	BCM_UNPACK_U32(buf, var->stat_mode_id);
   7317 	BCM_UNPACK_U32(buf, var->action);
   7318 	return buf;
   7319 }
   7320 
   7321 uint8 *
   7322 _bcm_pack_field_presel_config(uint8 *buf, bcm_field_presel_config_t *var)
   7323 {
   7324 	{
   7325 		int _i;
   7326 
   7327 		for (_i = 0; _i < 100; _i++) {
   7328 			BCM_PACK_U8(buf, var->name[_i]);
   7329 		}
   7330 	}
   7331 	return buf;
   7332 }
   7333 
   7334 uint8 *
   7335 _bcm_unpack_field_presel_config(uint8 *buf, bcm_field_presel_config_t *var)
   7336 {
   7337 	{
   7338 		int _i;
   7339 
   7340 		for (_i = 0; _i < 100; _i++) {
   7341 			BCM_UNPACK_U8(buf, var->name[_i]);
   7342 		}
   7343 	}
   7344 	return buf;
   7345 }
   7346 
   7347 uint8 *
   7348 _bcm_pack_field_presel_entry_data(uint8 *buf, bcm_field_presel_entry_data_t *var)
   7349 {
   7350 	BCM_PACK_U8(buf, var->entry_valid);
   7351 	BCM_PACK_U32(buf, var->context_id);
   7352 	BCM_PACK_U32(buf, var->nof_qualifiers);
   7353 	{
   7354 		int _i;
   7355 
   7356 		for (_i = 0; _i < 32; _i++) {
   7357 			BCM_PACK_U32(buf, var->qual_data[_i].qual_type);
   7358 			BCM_PACK_U32(buf, var->qual_data[_i].qual_arg);
   7359 			BCM_PACK_U32(buf, var->qual_data[_i].qual_value);
   7360 			BCM_PACK_U32(buf, var->qual_data[_i].qual_mask);
   7361 		}
   7362 	}
   7363 	return buf;
   7364 }
   7365 
   7366 uint8 *
   7367 _bcm_unpack_field_presel_entry_data(uint8 *buf, bcm_field_presel_entry_data_t *var)
   7368 {
   7369 	BCM_UNPACK_U8(buf, var->entry_valid);
   7370 	BCM_UNPACK_U32(buf, var->context_id);
   7371 	BCM_UNPACK_U32(buf, var->nof_qualifiers);
   7372 	{
   7373 		int _i;
   7374 
   7375 		for (_i = 0; _i < 32; _i++) {
   7376 			BCM_UNPACK_U32(buf, var->qual_data[_i].qual_type);
   7377 			BCM_UNPACK_U32(buf, var->qual_data[_i].qual_arg);
   7378 			BCM_UNPACK_U32(buf, var->qual_data[_i].qual_value);
   7379 			BCM_UNPACK_U32(buf, var->qual_data[_i].qual_mask);
   7380 		}
   7381 	}
   7382 	return buf;
   7383 }
   7384 
   7385 uint8 *
   7386 _bcm_pack_field_presel_entry_id(uint8 *buf, bcm_field_presel_entry_id_t *var)
   7387 {
   7388 	BCM_PACK_U32(buf, var->presel_id);
   7389 	BCM_PACK_U32(buf, var->stage);
   7390 	return buf;
   7391 }
   7392 
   7393 uint8 *
   7394 _bcm_unpack_field_presel_entry_id(uint8 *buf, bcm_field_presel_entry_id_t *var)
   7395 {
   7396 	BCM_UNPACK_U32(buf, var->presel_id);
   7397 	BCM_UNPACK_U32(buf, var->stage);
   7398 	return buf;
   7399 }
   7400 
   7401 uint8 *
   7402 _bcm_pack_field_presel_set(uint8 *buf, bcm_field_presel_set_t *var)
   7403 {
   7404 	{
   7405 		int _i;
   7406 
   7407 		for (_i = 0; _i < 32; _i++) {
   7408 			BCM_PACK_U32(buf, var->w[_i]);
   7409 		}
   7410 	}
   7411 	return buf;
   7412 }
   7413 
   7414 uint8 *
   7415 _bcm_unpack_field_presel_set(uint8 *buf, bcm_field_presel_set_t *var)
   7416 {
   7417 	{
   7418 		int _i;
   7419 
   7420 		for (_i = 0; _i < 32; _i++) {
   7421 			BCM_UNPACK_U32(buf, var->w[_i]);
   7422 		}
   7423 	}
   7424 	return buf;
   7425 }
   7426 
   7427 uint8 *
   7428 _bcm_pack_field_qset(uint8 *buf, bcm_field_qset_t *var)
   7429 {
   7430 	{
   7431 		int _i;
   7432 
   7433 		for (_i = 0; _i < 39; _i++) {
   7434 			BCM_PACK_U32(buf, var->w[_i]);
   7435 		}
   7436 	}
   7437 	{
   7438 		int _i;
   7439 
   7440 		for (_i = 0; _i < 9; _i++) {
   7441 			BCM_PACK_U32(buf, var->udf_map[_i]);
   7442 		}
   7443 	}
   7444 	return buf;
   7445 }
   7446 
   7447 uint8 *
   7448 _bcm_unpack_field_qset(uint8 *buf, bcm_field_qset_t *var)
   7449 {
   7450 	{
   7451 		int _i;
   7452 
   7453 		for (_i = 0; _i < 39; _i++) {
   7454 			BCM_UNPACK_U32(buf, var->w[_i]);
   7455 		}
   7456 	}
   7457 	{
   7458 		int _i;
   7459 
   7460 		for (_i = 0; _i < 9; _i++) {
   7461 			BCM_UNPACK_U32(buf, var->udf_map[_i]);
   7462 		}
   7463 	}
   7464 	return buf;
   7465 }
   7466 
   7467 uint8 *
   7468 _bcm_pack_field_qualifier_info_create(uint8 *buf, bcm_field_qualifier_info_create_t *var)
   7469 {
   7470 	BCM_PACK_U32(buf, var->size);
   7471 	{
   7472 		int _i;
   7473 
   7474 		for (_i = 0; _i < 20; _i++) {
   7475 			BCM_PACK_U8(buf, var->name[_i]);
   7476 		}
   7477 	}
   7478 	return buf;
   7479 }
   7480 
   7481 uint8 *
   7482 _bcm_unpack_field_qualifier_info_create(uint8 *buf, bcm_field_qualifier_info_create_t *var)
   7483 {
   7484 	BCM_UNPACK_U32(buf, var->size);
   7485 	{
   7486 		int _i;
   7487 
   7488 		for (_i = 0; _i < 20; _i++) {
   7489 			BCM_UNPACK_U8(buf, var->name[_i]);
   7490 		}
   7491 	}
   7492 	return buf;
   7493 }
   7494 
   7495 uint8 *
   7496 _bcm_pack_field_qualifier_info_get(uint8 *buf, bcm_field_qualifier_info_get_t *var)
   7497 {
   7498 	BCM_PACK_U32(buf, var->qual_class);
   7499 	BCM_PACK_U32(buf, var->size);
   7500 	BCM_PACK_U32(buf, var->offset);
   7501 	{
   7502 		int _i;
   7503 
   7504 		for (_i = 0; _i < 20; _i++) {
   7505 			BCM_PACK_U8(buf, var->name[_i]);
   7506 		}
   7507 	}
   7508 	return buf;
   7509 }
   7510 
   7511 uint8 *
   7512 _bcm_unpack_field_qualifier_info_get(uint8 *buf, bcm_field_qualifier_info_get_t *var)
   7513 {
   7514 	BCM_UNPACK_U32(buf, var->qual_class);
   7515 	BCM_UNPACK_U32(buf, var->size);
   7516 	BCM_UNPACK_U32(buf, var->offset);
   7517 	{
   7518 		int _i;
   7519 
   7520 		for (_i = 0; _i < 20; _i++) {
   7521 			BCM_UNPACK_U8(buf, var->name[_i]);
   7522 		}
   7523 	}
   7524 	return buf;
   7525 }
   7526 
   7527 uint8 *
   7528 _bcm_pack_field_range_info(uint8 *buf, bcm_field_range_info_t *var)
   7529 {
   7530 	BCM_PACK_U32(buf, var->range_type);
   7531 	BCM_PACK_U32(buf, var->min_val);
   7532 	BCM_PACK_U32(buf, var->max_val);
   7533 	return buf;
   7534 }
   7535 
   7536 uint8 *
   7537 _bcm_unpack_field_range_info(uint8 *buf, bcm_field_range_info_t *var)
   7538 {
   7539 	BCM_UNPACK_U32(buf, var->range_type);
   7540 	BCM_UNPACK_U32(buf, var->min_val);
   7541 	BCM_UNPACK_U32(buf, var->max_val);
   7542 	return buf;
   7543 }
   7544 
   7545 uint8 *
   7546 _bcm_pack_field_redirect_config(uint8 *buf, bcm_field_redirect_config_t *var)
   7547 {
   7548 	BCM_PACK_U32(buf, var->flags);
   7549 	BCM_PACK_U32(buf, var->destination_type);
   7550 	BCM_PACK_U32(buf, var->destination);
   7551 	BCM_PACK_U32(buf, var->source_port);
   7552 	return buf;
   7553 }
   7554 
   7555 uint8 *
   7556 _bcm_unpack_field_redirect_config(uint8 *buf, bcm_field_redirect_config_t *var)
   7557 {
   7558 	BCM_UNPACK_U32(buf, var->flags);
   7559 	BCM_UNPACK_U32(buf, var->destination_type);
   7560 	BCM_UNPACK_U32(buf, var->destination);
   7561 	BCM_UNPACK_U32(buf, var->source_port);
   7562 	return buf;
   7563 }
   7564 
   7565 uint8 *
   7566 _bcm_pack_field_snap_header(uint8 *buf, bcm_field_snap_header_t *var)
   7567 {
   7568 	BCM_PACK_U32(buf, var->org_code);
   7569 	BCM_PACK_U16(buf, var->type);
   7570 	return buf;
   7571 }
   7572 
   7573 uint8 *
   7574 _bcm_unpack_field_snap_header(uint8 *buf, bcm_field_snap_header_t *var)
   7575 {
   7576 	BCM_UNPACK_U32(buf, var->org_code);
   7577 	BCM_UNPACK_U16(buf, var->type);
   7578 	return buf;
   7579 }
   7580 
   7581 uint8 *
   7582 _bcm_pack_field_src_class(uint8 *buf, bcm_field_src_class_t *var)
   7583 {
   7584 	BCM_PACK_U16(buf, var->src_class_field);
   7585 	BCM_PACK_U16(buf, var->dst_class_field);
   7586 	BCM_PACK_U32(buf, var->udf_class);
   7587 	BCM_PACK_U32(buf, var->intf_class_port);
   7588 	BCM_PACK_U32(buf, var->intf_class_l2);
   7589 	BCM_PACK_U32(buf, var->intf_class_l3);
   7590 	BCM_PACK_U32(buf, var->intf_class_vport);
   7591 	return buf;
   7592 }
   7593 
   7594 uint8 *
   7595 _bcm_unpack_field_src_class(uint8 *buf, bcm_field_src_class_t *var)
   7596 {
   7597 	BCM_UNPACK_U16(buf, var->src_class_field);
   7598 	BCM_UNPACK_U16(buf, var->dst_class_field);
   7599 	BCM_UNPACK_U32(buf, var->udf_class);
   7600 	BCM_UNPACK_U32(buf, var->intf_class_port);
   7601 	BCM_UNPACK_U32(buf, var->intf_class_l2);
   7602 	BCM_UNPACK_U32(buf, var->intf_class_l3);
   7603 	BCM_UNPACK_U32(buf, var->intf_class_vport);
   7604 	return buf;
   7605 }
   7606 
   7607 uint8 *
   7608 _bcm_pack_field_stage_info(uint8 *buf, bcm_field_stage_info_t *var)
   7609 {
   7610 	BCM_PACK_U32(buf, var->field_presel_advanced_mode);
   7611 	BCM_PACK_U32(buf, var->field_presel_max_id);
   7612 	BCM_PACK_U32(buf, var->field_presel_staggered_max_id);
   7613 	return buf;
   7614 }
   7615 
   7616 uint8 *
   7617 _bcm_unpack_field_stage_info(uint8 *buf, bcm_field_stage_info_t *var)
   7618 {
   7619 	BCM_UNPACK_U32(buf, var->field_presel_advanced_mode);
   7620 	BCM_UNPACK_U32(buf, var->field_presel_max_id);
   7621 	BCM_UNPACK_U32(buf, var->field_presel_staggered_max_id);
   7622 	return buf;
   7623 }
   7624 
   7625 uint8 *
   7626 _bcm_pack_field_stage_slice_info(uint8 *buf, bcm_field_stage_slice_info_t *var)
   7627 {
   7628 	BCM_PACK_U32(buf, var->total_entries);
   7629 	BCM_PACK_U32(buf, var->free_entries);
   7630 	BCM_PACK_U32(buf, var->flags);
   7631 	BCM_PACK_U32(buf, var->slice_gid_ct);
   7632 	{
   7633 		int _i;
   7634 
   7635 		for (_i = 0; _i < 32; _i++) {
   7636 			BCM_PACK_U32(buf, var->slice_gid_list[_i]);
   7637 		}
   7638 	}
   7639 	return buf;
   7640 }
   7641 
   7642 uint8 *
   7643 _bcm_unpack_field_stage_slice_info(uint8 *buf, bcm_field_stage_slice_info_t *var)
   7644 {
   7645 	BCM_UNPACK_U32(buf, var->total_entries);
   7646 	BCM_UNPACK_U32(buf, var->free_entries);
   7647 	BCM_UNPACK_U32(buf, var->flags);
   7648 	BCM_UNPACK_U32(buf, var->slice_gid_ct);
   7649 	{
   7650 		int _i;
   7651 
   7652 		for (_i = 0; _i < 32; _i++) {
   7653 			BCM_UNPACK_U32(buf, var->slice_gid_list[_i]);
   7654 		}
   7655 	}
   7656 	return buf;
   7657 }
   7658 
   7659 uint8 *
   7660 _bcm_pack_field_tcam_bank_evacuate_info(uint8 *buf, bcm_field_tcam_bank_evacuate_info_t *var)
   7661 {
   7662 	BCM_PACK_U32(buf, var->nof_banks);
   7663 	{
   7664 		int _i;
   7665 
   7666 		for (_i = 0; _i < 16; _i++) {
   7667 			BCM_PACK_U32(buf, var->tcam_bank_ids[_i]);
   7668 		}
   7669 	}
   7670 	return buf;
   7671 }
   7672 
   7673 uint8 *
   7674 _bcm_unpack_field_tcam_bank_evacuate_info(uint8 *buf, bcm_field_tcam_bank_evacuate_info_t *var)
   7675 {
   7676 	BCM_UNPACK_U32(buf, var->nof_banks);
   7677 	{
   7678 		int _i;
   7679 
   7680 		for (_i = 0; _i < 16; _i++) {
   7681 			BCM_UNPACK_U32(buf, var->tcam_bank_ids[_i]);
   7682 		}
   7683 	}
   7684 	return buf;
   7685 }
   7686 
   7687 #ifdef	INCLUDE_L3
   7688 
   7689 uint8 *
   7690 _bcm_pack_flow_encap_config(uint8 *buf, bcm_flow_encap_config_t *var)
   7691 {
   7692 	BCM_PACK_U16(buf, var->vpn);
   7693 	BCM_PACK_U32(buf, var->flow_port);
   7694 	BCM_PACK_U32(buf, var->intf_id);
   7695 	BCM_PACK_U32(buf, var->dvp_group);
   7696 	BCM_PACK_U32(buf, var->oif_group);
   7697 	BCM_PACK_U32(buf, var->vnid);
   7698 	BCM_PACK_U8(buf, var->pri);
   7699 	BCM_PACK_U8(buf, var->cfi);
   7700 	BCM_PACK_U16(buf, var->tpid);
   7701 	BCM_PACK_U16(buf, var->vlan);
   7702 	BCM_PACK_U32(buf, var->flags);
   7703 	BCM_PACK_U32(buf, var->options);
   7704 	BCM_PACK_U32(buf, var->criteria);
   7705 	BCM_PACK_U32(buf, var->valid_elements);
   7706 	BCM_PACK_U32(buf, var->flow_handle);
   7707 	BCM_PACK_U32(buf, var->flow_option);
   7708 	BCM_PACK_U32(buf, var->src_flow_port);
   7709 	BCM_PACK_U32(buf, var->class_id);
   7710 	return buf;
   7711 }
   7712 
   7713 uint8 *
   7714 _bcm_unpack_flow_encap_config(uint8 *buf, bcm_flow_encap_config_t *var)
   7715 {
   7716 	BCM_UNPACK_U16(buf, var->vpn);
   7717 	BCM_UNPACK_U32(buf, var->flow_port);
   7718 	BCM_UNPACK_U32(buf, var->intf_id);
   7719 	BCM_UNPACK_U32(buf, var->dvp_group);
   7720 	BCM_UNPACK_U32(buf, var->oif_group);
   7721 	BCM_UNPACK_U32(buf, var->vnid);
   7722 	BCM_UNPACK_U8(buf, var->pri);
   7723 	BCM_UNPACK_U8(buf, var->cfi);
   7724 	BCM_UNPACK_U16(buf, var->tpid);
   7725 	BCM_UNPACK_U16(buf, var->vlan);
   7726 	BCM_UNPACK_U32(buf, var->flags);
   7727 	BCM_UNPACK_U32(buf, var->options);
   7728 	BCM_UNPACK_U32(buf, var->criteria);
   7729 	BCM_UNPACK_U32(buf, var->valid_elements);
   7730 	BCM_UNPACK_U32(buf, var->flow_handle);
   7731 	BCM_UNPACK_U32(buf, var->flow_option);
   7732 	BCM_UNPACK_U32(buf, var->src_flow_port);
   7733 	BCM_UNPACK_U32(buf, var->class_id);
   7734 	return buf;
   7735 }
   7736 
   7737 #endif	/* INCLUDE_L3 */
   7738 
   7739 uint8 *
   7740 _bcm_pack_flow_logical_field(uint8 *buf, bcm_flow_logical_field_t *var)
   7741 {
   7742 	BCM_PACK_U32(buf, var->id);
   7743 	BCM_PACK_U32(buf, var->value);
   7744 	return buf;
   7745 }
   7746 
   7747 uint8 *
   7748 _bcm_unpack_flow_logical_field(uint8 *buf, bcm_flow_logical_field_t *var)
   7749 {
   7750 	BCM_UNPACK_U32(buf, var->id);
   7751 	BCM_UNPACK_U32(buf, var->value);
   7752 	return buf;
   7753 }
   7754 
   7755 #ifdef	INCLUDE_L3
   7756 
   7757 uint8 *
   7758 _bcm_pack_flow_match_config(uint8 *buf, bcm_flow_match_config_t *var)
   7759 {
   7760 	BCM_PACK_U32(buf, var->vnid);
   7761 	BCM_PACK_U16(buf, var->vlan);
   7762 	BCM_PACK_U16(buf, var->inner_vlan);
   7763 	BCM_PACK_U32(buf, var->port);
   7764 	BCM_PACK_U32(buf, var->sip);
   7765 	BCM_PACK_U32(buf, var->sip_mask);
   7766 	{
   7767 		int _i;
   7768 
   7769 		for (_i = 0; _i < 16; _i++) {
   7770 			BCM_PACK_U8(buf, var->sip6[_i]);
   7771 		}
   7772 	}
   7773 	{
   7774 		int _i;
   7775 
   7776 		for (_i = 0; _i < 16; _i++) {
   7777 			BCM_PACK_U8(buf, var->sip6_mask[_i]);
   7778 		}
   7779 	}
   7780 	BCM_PACK_U32(buf, var->dip);
   7781 	BCM_PACK_U32(buf, var->dip_mask);
   7782 	{
   7783 		int _i;
   7784 
   7785 		for (_i = 0; _i < 16; _i++) {
   7786 			BCM_PACK_U8(buf, var->dip6[_i]);
   7787 		}
   7788 	}
   7789 	{
   7790 		int _i;
   7791 
   7792 		for (_i = 0; _i < 16; _i++) {
   7793 			BCM_PACK_U8(buf, var->dip6_mask[_i]);
   7794 		}
   7795 	}
   7796 	BCM_PACK_U16(buf, var->udp_dst_port);
   7797 	BCM_PACK_U16(buf, var->udp_src_port);
   7798 	BCM_PACK_U16(buf, var->protocol);
   7799 	BCM_PACK_U32(buf, var->mpls_label);
   7800 	BCM_PACK_U32(buf, var->flow_port);
   7801 	BCM_PACK_U16(buf, var->vpn);
   7802 	BCM_PACK_U32(buf, var->intf_id);
   7803 	BCM_PACK_U32(buf, var->options);
   7804 	BCM_PACK_U32(buf, var->criteria);
   7805 	BCM_PACK_U32(buf, var->valid_elements);
   7806 	BCM_PACK_U32(buf, var->flow_handle);
   7807 	BCM_PACK_U32(buf, var->flow_option);
   7808 	return buf;
   7809 }
   7810 
   7811 uint8 *
   7812 _bcm_unpack_flow_match_config(uint8 *buf, bcm_flow_match_config_t *var)
   7813 {
   7814 	BCM_UNPACK_U32(buf, var->vnid);
   7815 	BCM_UNPACK_U16(buf, var->vlan);
   7816 	BCM_UNPACK_U16(buf, var->inner_vlan);
   7817 	BCM_UNPACK_U32(buf, var->port);
   7818 	BCM_UNPACK_U32(buf, var->sip);
   7819 	BCM_UNPACK_U32(buf, var->sip_mask);
   7820 	{
   7821 		int _i;
   7822 
   7823 		for (_i = 0; _i < 16; _i++) {
   7824 			BCM_UNPACK_U8(buf, var->sip6[_i]);
   7825 		}
   7826 	}
   7827 	{
   7828 		int _i;
   7829 
   7830 		for (_i = 0; _i < 16; _i++) {
   7831 			BCM_UNPACK_U8(buf, var->sip6_mask[_i]);
   7832 		}
   7833 	}
   7834 	BCM_UNPACK_U32(buf, var->dip);
   7835 	BCM_UNPACK_U32(buf, var->dip_mask);
   7836 	{
   7837 		int _i;
   7838 
   7839 		for (_i = 0; _i < 16; _i++) {
   7840 			BCM_UNPACK_U8(buf, var->dip6[_i]);
   7841 		}
   7842 	}
   7843 	{
   7844 		int _i;
   7845 
   7846 		for (_i = 0; _i < 16; _i++) {
   7847 			BCM_UNPACK_U8(buf, var->dip6_mask[_i]);
   7848 		}
   7849 	}
   7850 	BCM_UNPACK_U16(buf, var->udp_dst_port);
   7851 	BCM_UNPACK_U16(buf, var->udp_src_port);
   7852 	BCM_UNPACK_U16(buf, var->protocol);
   7853 	BCM_UNPACK_U32(buf, var->mpls_label);
   7854 	BCM_UNPACK_U32(buf, var->flow_port);
   7855 	BCM_UNPACK_U16(buf, var->vpn);
   7856 	BCM_UNPACK_U32(buf, var->intf_id);
   7857 	BCM_UNPACK_U32(buf, var->options);
   7858 	BCM_UNPACK_U32(buf, var->criteria);
   7859 	BCM_UNPACK_U32(buf, var->valid_elements);
   7860 	BCM_UNPACK_U32(buf, var->flow_handle);
   7861 	BCM_UNPACK_U32(buf, var->flow_option);
   7862 	return buf;
   7863 }
   7864 
   7865 uint8 *
   7866 _bcm_pack_flow_port_encap(uint8 *buf, bcm_flow_port_encap_t *var)
   7867 {
   7868 	BCM_PACK_U32(buf, var->flow_port);
   7869 	BCM_PACK_U32(buf, var->options);
   7870 	BCM_PACK_U32(buf, var->flags);
   7871 	BCM_PACK_U32(buf, var->class_id);
   7872 	BCM_PACK_U16(buf, var->mtu);
   7873 	BCM_PACK_U32(buf, var->network_group);
   7874 	BCM_PACK_U32(buf, var->dvp_group);
   7875 	BCM_PACK_U8(buf, var->pri);
   7876 	BCM_PACK_U8(buf, var->cfi);
   7877 	BCM_PACK_U16(buf, var->tpid);
   7878 	BCM_PACK_U16(buf, var->vlan);
   7879 	BCM_PACK_U32(buf, var->egress_if);
   7880 	BCM_PACK_U32(buf, var->valid_elements);
   7881 	BCM_PACK_U32(buf, var->flow_handle);
   7882 	BCM_PACK_U32(buf, var->flow_option);
   7883 	return buf;
   7884 }
   7885 
   7886 uint8 *
   7887 _bcm_unpack_flow_port_encap(uint8 *buf, bcm_flow_port_encap_t *var)
   7888 {
   7889 	BCM_UNPACK_U32(buf, var->flow_port);
   7890 	BCM_UNPACK_U32(buf, var->options);
   7891 	BCM_UNPACK_U32(buf, var->flags);
   7892 	BCM_UNPACK_U32(buf, var->class_id);
   7893 	BCM_UNPACK_U16(buf, var->mtu);
   7894 	BCM_UNPACK_U32(buf, var->network_group);
   7895 	BCM_UNPACK_U32(buf, var->dvp_group);
   7896 	BCM_UNPACK_U8(buf, var->pri);
   7897 	BCM_UNPACK_U8(buf, var->cfi);
   7898 	BCM_UNPACK_U16(buf, var->tpid);
   7899 	BCM_UNPACK_U16(buf, var->vlan);
   7900 	BCM_UNPACK_U32(buf, var->egress_if);
   7901 	BCM_UNPACK_U32(buf, var->valid_elements);
   7902 	BCM_UNPACK_U32(buf, var->flow_handle);
   7903 	BCM_UNPACK_U32(buf, var->flow_option);
   7904 	return buf;
   7905 }
   7906 
   7907 uint8 *
   7908 _bcm_pack_flow_stat_info(uint8 *buf, bcm_flow_stat_info_t *var)
   7909 {
   7910 	BCM_PACK_U32(buf, var->flow_port);
   7911 	BCM_PACK_U32(buf, var->port);
   7912 	BCM_PACK_U16(buf, var->vpn);
   7913 	BCM_PACK_U16(buf, var->inner_vlan);
   7914 	BCM_PACK_U16(buf, var->vlan);
   7915 	BCM_PACK_U32(buf, var->vnid);
   7916 	BCM_PACK_U32(buf, var->sip);
   7917 	BCM_PACK_U32(buf, var->dip);
   7918 	BCM_PACK_U32(buf, var->sip_mask);
   7919 	BCM_PACK_U32(buf, var->dip_mask);
   7920 	{
   7921 		int _i;
   7922 
   7923 		for (_i = 0; _i < 16; _i++) {
   7924 			BCM_PACK_U8(buf, var->sip6[_i]);
   7925 		}
   7926 	}
   7927 	{
   7928 		int _i;
   7929 
   7930 		for (_i = 0; _i < 16; _i++) {
   7931 			BCM_PACK_U8(buf, var->dip6[_i]);
   7932 		}
   7933 	}
   7934 	{
   7935 		int _i;
   7936 
   7937 		for (_i = 0; _i < 16; _i++) {
   7938 			BCM_PACK_U8(buf, var->sip6_mask[_i]);
   7939 		}
   7940 	}
   7941 	{
   7942 		int _i;
   7943 
   7944 		for (_i = 0; _i < 16; _i++) {
   7945 			BCM_PACK_U8(buf, var->dip6_mask[_i]);
   7946 		}
   7947 	}
   7948 	BCM_PACK_U16(buf, var->udp_src_port);
   7949 	BCM_PACK_U16(buf, var->udp_dst_port);
   7950 	BCM_PACK_U16(buf, var->protocol);
   7951 	BCM_PACK_U32(buf, var->tunnel_id);
   7952 	BCM_PACK_U32(buf, var->egress_if);
   7953 	BCM_PACK_U32(buf, var->intf_id);
   7954 	{
   7955 		int _i;
   7956 
   7957 		for (_i = 0; _i < 6; _i++) {
   7958 			BCM_PACK_U8(buf, var->mac[_i]);
   7959 		}
   7960 	}
   7961 	BCM_PACK_U32(buf, var->l3a_flags);
   7962 	BCM_PACK_U32(buf, var->l3a_vrf);
   7963 	BCM_PACK_U32(buf, var->oif_group);
   7964 	BCM_PACK_U32(buf, var->dvp_group);
   7965 	BCM_PACK_U32(buf, var->match_criteria);
   7966 	BCM_PACK_U32(buf, var->encap_criteria);
   7967 	BCM_PACK_U32(buf, var->mpls_label);
   7968 	BCM_PACK_U32(buf, var->valid_elements);
   7969 	BCM_PACK_U32(buf, var->flow_handle);
   7970 	BCM_PACK_U32(buf, var->flow_option);
   7971 	BCM_PACK_U32(buf, var->function_type);
   7972 	return buf;
   7973 }
   7974 
   7975 uint8 *
   7976 _bcm_unpack_flow_stat_info(uint8 *buf, bcm_flow_stat_info_t *var)
   7977 {
   7978 	BCM_UNPACK_U32(buf, var->flow_port);
   7979 	BCM_UNPACK_U32(buf, var->port);
   7980 	BCM_UNPACK_U16(buf, var->vpn);
   7981 	BCM_UNPACK_U16(buf, var->inner_vlan);
   7982 	BCM_UNPACK_U16(buf, var->vlan);
   7983 	BCM_UNPACK_U32(buf, var->vnid);
   7984 	BCM_UNPACK_U32(buf, var->sip);
   7985 	BCM_UNPACK_U32(buf, var->dip);
   7986 	BCM_UNPACK_U32(buf, var->sip_mask);
   7987 	BCM_UNPACK_U32(buf, var->dip_mask);
   7988 	{
   7989 		int _i;
   7990 
   7991 		for (_i = 0; _i < 16; _i++) {
   7992 			BCM_UNPACK_U8(buf, var->sip6[_i]);
   7993 		}
   7994 	}
   7995 	{
   7996 		int _i;
   7997 
   7998 		for (_i = 0; _i < 16; _i++) {
   7999 			BCM_UNPACK_U8(buf, var->dip6[_i]);
   8000 		}
   8001 	}
   8002 	{
   8003 		int _i;
   8004 
   8005 		for (_i = 0; _i < 16; _i++) {
   8006 			BCM_UNPACK_U8(buf, var->sip6_mask[_i]);
   8007 		}
   8008 	}
   8009 	{
   8010 		int _i;
   8011 
   8012 		for (_i = 0; _i < 16; _i++) {
   8013 			BCM_UNPACK_U8(buf, var->dip6_mask[_i]);
   8014 		}
   8015 	}
   8016 	BCM_UNPACK_U16(buf, var->udp_src_port);
   8017 	BCM_UNPACK_U16(buf, var->udp_dst_port);
   8018 	BCM_UNPACK_U16(buf, var->protocol);
   8019 	BCM_UNPACK_U32(buf, var->tunnel_id);
   8020 	BCM_UNPACK_U32(buf, var->egress_if);
   8021 	BCM_UNPACK_U32(buf, var->intf_id);
   8022 	{
   8023 		int _i;
   8024 
   8025 		for (_i = 0; _i < 6; _i++) {
   8026 			BCM_UNPACK_U8(buf, var->mac[_i]);
   8027 		}
   8028 	}
   8029 	BCM_UNPACK_U32(buf, var->l3a_flags);
   8030 	BCM_UNPACK_U32(buf, var->l3a_vrf);
   8031 	BCM_UNPACK_U32(buf, var->oif_group);
   8032 	BCM_UNPACK_U32(buf, var->dvp_group);
   8033 	BCM_UNPACK_U32(buf, var->match_criteria);
   8034 	BCM_UNPACK_U32(buf, var->encap_criteria);
   8035 	BCM_UNPACK_U32(buf, var->mpls_label);
   8036 	BCM_UNPACK_U32(buf, var->valid_elements);
   8037 	BCM_UNPACK_U32(buf, var->flow_handle);
   8038 	BCM_UNPACK_U32(buf, var->flow_option);
   8039 	BCM_UNPACK_U32(buf, var->function_type);
   8040 	return buf;
   8041 }
   8042 
   8043 uint8 *
   8044 _bcm_pack_flow_tunnel_initiator(uint8 *buf, bcm_flow_tunnel_initiator_t *var)
   8045 {
   8046 	BCM_PACK_U32(buf, var->flags);
   8047 	BCM_PACK_U32(buf, var->type);
   8048 	BCM_PACK_U32(buf, var->ttl);
   8049 	{
   8050 		int _i;
   8051 
   8052 		for (_i = 0; _i < 6; _i++) {
   8053 			BCM_PACK_U8(buf, var->dmac[_i]);
   8054 		}
   8055 	}
   8056 	BCM_PACK_U32(buf, var->dip);
   8057 	BCM_PACK_U32(buf, var->sip);
   8058 	{
   8059 		int _i;
   8060 
   8061 		for (_i = 0; _i < 16; _i++) {
   8062 			BCM_PACK_U8(buf, var->sip6[_i]);
   8063 		}
   8064 	}
   8065 	{
   8066 		int _i;
   8067 
   8068 		for (_i = 0; _i < 16; _i++) {
   8069 			BCM_PACK_U8(buf, var->dip6[_i]);
   8070 		}
   8071 	}
   8072 	BCM_PACK_U32(buf, var->flow_label);
   8073 	BCM_PACK_U32(buf, var->dscp_sel);
   8074 	BCM_PACK_U32(buf, var->dscp);
   8075 	BCM_PACK_U32(buf, var->dscp_map);
   8076 	BCM_PACK_U32(buf, var->tunnel_id);
   8077 	BCM_PACK_U16(buf, var->udp_dst_port);
   8078 	BCM_PACK_U16(buf, var->udp_src_port);
   8079 	{
   8080 		int _i;
   8081 
   8082 		for (_i = 0; _i < 6; _i++) {
   8083 			BCM_PACK_U8(buf, var->smac[_i]);
   8084 		}
   8085 	}
   8086 	BCM_PACK_U16(buf, var->vlan);
   8087 	BCM_PACK_U16(buf, var->tpid);
   8088 	BCM_PACK_U8(buf, var->pkt_pri);
   8089 	BCM_PACK_U8(buf, var->pkt_cfi);
   8090 	BCM_PACK_U16(buf, var->ip4_id);
   8091 	BCM_PACK_U32(buf, var->l3_intf_id);
   8092 	BCM_PACK_U32(buf, var->flow_port);
   8093 	BCM_PACK_U32(buf, var->valid_elements);
   8094 	BCM_PACK_U32(buf, var->flow_handle);
   8095 	BCM_PACK_U32(buf, var->flow_option);
   8096 	return buf;
   8097 }
   8098 
   8099 uint8 *
   8100 _bcm_unpack_flow_tunnel_initiator(uint8 *buf, bcm_flow_tunnel_initiator_t *var)
   8101 {
   8102 	BCM_UNPACK_U32(buf, var->flags);
   8103 	BCM_UNPACK_U32(buf, var->type);
   8104 	BCM_UNPACK_U32(buf, var->ttl);
   8105 	{
   8106 		int _i;
   8107 
   8108 		for (_i = 0; _i < 6; _i++) {
   8109 			BCM_UNPACK_U8(buf, var->dmac[_i]);
   8110 		}
   8111 	}
   8112 	BCM_UNPACK_U32(buf, var->dip);
   8113 	BCM_UNPACK_U32(buf, var->sip);
   8114 	{
   8115 		int _i;
   8116 
   8117 		for (_i = 0; _i < 16; _i++) {
   8118 			BCM_UNPACK_U8(buf, var->sip6[_i]);
   8119 		}
   8120 	}
   8121 	{
   8122 		int _i;
   8123 
   8124 		for (_i = 0; _i < 16; _i++) {
   8125 			BCM_UNPACK_U8(buf, var->dip6[_i]);
   8126 		}
   8127 	}
   8128 	BCM_UNPACK_U32(buf, var->flow_label);
   8129 	BCM_UNPACK_U32(buf, var->dscp_sel);
   8130 	BCM_UNPACK_U32(buf, var->dscp);
   8131 	BCM_UNPACK_U32(buf, var->dscp_map);
   8132 	BCM_UNPACK_U32(buf, var->tunnel_id);
   8133 	BCM_UNPACK_U16(buf, var->udp_dst_port);
   8134 	BCM_UNPACK_U16(buf, var->udp_src_port);
   8135 	{
   8136 		int _i;
   8137 
   8138 		for (_i = 0; _i < 6; _i++) {
   8139 			BCM_UNPACK_U8(buf, var->smac[_i]);
   8140 		}
   8141 	}
   8142 	BCM_UNPACK_U16(buf, var->vlan);
   8143 	BCM_UNPACK_U16(buf, var->tpid);
   8144 	BCM_UNPACK_U8(buf, var->pkt_pri);
   8145 	BCM_UNPACK_U8(buf, var->pkt_cfi);
   8146 	BCM_UNPACK_U16(buf, var->ip4_id);
   8147 	BCM_UNPACK_U32(buf, var->l3_intf_id);
   8148 	BCM_UNPACK_U32(buf, var->flow_port);
   8149 	BCM_UNPACK_U32(buf, var->valid_elements);
   8150 	BCM_UNPACK_U32(buf, var->flow_handle);
   8151 	BCM_UNPACK_U32(buf, var->flow_option);
   8152 	return buf;
   8153 }
   8154 
   8155 uint8 *
   8156 _bcm_pack_flow_tunnel_terminator(uint8 *buf, bcm_flow_tunnel_terminator_t *var)
   8157 {
   8158 	BCM_PACK_U32(buf, var->flags);
   8159 	BCM_PACK_U32(buf, var->multicast_flag);
   8160 	BCM_PACK_U32(buf, var->vrf);
   8161 	BCM_PACK_U32(buf, var->sip);
   8162 	BCM_PACK_U32(buf, var->dip);
   8163 	BCM_PACK_U32(buf, var->sip_mask);
   8164 	BCM_PACK_U32(buf, var->dip_mask);
   8165 	{
   8166 		int _i;
   8167 
   8168 		for (_i = 0; _i < 16; _i++) {
   8169 			BCM_PACK_U8(buf, var->sip6[_i]);
   8170 		}
   8171 	}
   8172 	{
   8173 		int _i;
   8174 
   8175 		for (_i = 0; _i < 16; _i++) {
   8176 			BCM_PACK_U8(buf, var->dip6[_i]);
   8177 		}
   8178 	}
   8179 	{
   8180 		int _i;
   8181 
   8182 		for (_i = 0; _i < 16; _i++) {
   8183 			BCM_PACK_U8(buf, var->sip6_mask[_i]);
   8184 		}
   8185 	}
   8186 	{
   8187 		int _i;
   8188 
   8189 		for (_i = 0; _i < 16; _i++) {
   8190 			BCM_PACK_U8(buf, var->dip6_mask[_i]);
   8191 		}
   8192 	}
   8193 	BCM_PACK_U32(buf, var->udp_dst_port);
   8194 	BCM_PACK_U32(buf, var->udp_src_port);
   8195 	BCM_PACK_U32(buf, var->type);
   8196 	BCM_PACK_U16(buf, var->vlan);
   8197 	BCM_PACK_U32(buf, var->protocol);
   8198 	BCM_PACK_U32(buf, var->valid_elements);
   8199 	BCM_PACK_U32(buf, var->flow_handle);
   8200 	BCM_PACK_U32(buf, var->flow_option);
   8201 	return buf;
   8202 }
   8203 
   8204 uint8 *
   8205 _bcm_unpack_flow_tunnel_terminator(uint8 *buf, bcm_flow_tunnel_terminator_t *var)
   8206 {
   8207 	BCM_UNPACK_U32(buf, var->flags);
   8208 	BCM_UNPACK_U32(buf, var->multicast_flag);
   8209 	BCM_UNPACK_U32(buf, var->vrf);
   8210 	BCM_UNPACK_U32(buf, var->sip);
   8211 	BCM_UNPACK_U32(buf, var->dip);
   8212 	BCM_UNPACK_U32(buf, var->sip_mask);
   8213 	BCM_UNPACK_U32(buf, var->dip_mask);
   8214 	{
   8215 		int _i;
   8216 
   8217 		for (_i = 0; _i < 16; _i++) {
   8218 			BCM_UNPACK_U8(buf, var->sip6[_i]);
   8219 		}
   8220 	}
   8221 	{
   8222 		int _i;
   8223 
   8224 		for (_i = 0; _i < 16; _i++) {
   8225 			BCM_UNPACK_U8(buf, var->dip6[_i]);
   8226 		}
   8227 	}
   8228 	{
   8229 		int _i;
   8230 
   8231 		for (_i = 0; _i < 16; _i++) {
   8232 			BCM_UNPACK_U8(buf, var->sip6_mask[_i]);
   8233 		}
   8234 	}
   8235 	{
   8236 		int _i;
   8237 
   8238 		for (_i = 0; _i < 16; _i++) {
   8239 			BCM_UNPACK_U8(buf, var->dip6_mask[_i]);
   8240 		}
   8241 	}
   8242 	BCM_UNPACK_U32(buf, var->udp_dst_port);
   8243 	BCM_UNPACK_U32(buf, var->udp_src_port);
   8244 	BCM_UNPACK_U32(buf, var->type);
   8245 	BCM_UNPACK_U16(buf, var->vlan);
   8246 	BCM_UNPACK_U32(buf, var->protocol);
   8247 	BCM_UNPACK_U32(buf, var->valid_elements);
   8248 	BCM_UNPACK_U32(buf, var->flow_handle);
   8249 	BCM_UNPACK_U32(buf, var->flow_option);
   8250 	return buf;
   8251 }
   8252 
   8253 #endif	/* INCLUDE_L3 */
   8254 
   8255 uint8 *
   8256 _bcm_pack_flowtracker_check_action_info(uint8 *buf, bcm_flowtracker_check_action_info_t *var)
   8257 {
   8258 	BCM_PACK_U32(buf, var->flags);
   8259 	BCM_PACK_U32(buf, var->param);
   8260 	BCM_PACK_U32(buf, var->action);
   8261 	return buf;
   8262 }
   8263 
   8264 uint8 *
   8265 _bcm_unpack_flowtracker_check_action_info(uint8 *buf, bcm_flowtracker_check_action_info_t *var)
   8266 {
   8267 	BCM_UNPACK_U32(buf, var->flags);
   8268 	BCM_UNPACK_U32(buf, var->param);
   8269 	BCM_UNPACK_U32(buf, var->action);
   8270 	return buf;
   8271 }
   8272 
   8273 uint8 *
   8274 _bcm_pack_flowtracker_check_export_info(uint8 *buf, bcm_flowtracker_check_export_info_t *var)
   8275 {
   8276 	BCM_PACK_U32(buf, var->export_check_threshold);
   8277 	BCM_PACK_U32(buf, var->operation);
   8278 	return buf;
   8279 }
   8280 
   8281 uint8 *
   8282 _bcm_unpack_flowtracker_check_export_info(uint8 *buf, bcm_flowtracker_check_export_info_t *var)
   8283 {
   8284 	BCM_UNPACK_U32(buf, var->export_check_threshold);
   8285 	BCM_UNPACK_U32(buf, var->operation);
   8286 	return buf;
   8287 }
   8288 
   8289 uint8 *
   8290 _bcm_pack_flowtracker_check_info(uint8 *buf, bcm_flowtracker_check_info_t *var)
   8291 {
   8292 	BCM_PACK_U32(buf, var->flags);
   8293 	BCM_PACK_U32(buf, var->param);
   8294 	BCM_PACK_U32(buf, var->min_value);
   8295 	BCM_PACK_U32(buf, var->max_value);
   8296 	BCM_PACK_U32(buf, var->operation);
   8297 	BCM_PACK_U32(buf, var->primary_check_id);
   8298 	return buf;
   8299 }
   8300 
   8301 uint8 *
   8302 _bcm_unpack_flowtracker_check_info(uint8 *buf, bcm_flowtracker_check_info_t *var)
   8303 {
   8304 	BCM_UNPACK_U32(buf, var->flags);
   8305 	BCM_UNPACK_U32(buf, var->param);
   8306 	BCM_UNPACK_U32(buf, var->min_value);
   8307 	BCM_UNPACK_U32(buf, var->max_value);
   8308 	BCM_UNPACK_U32(buf, var->operation);
   8309 	BCM_UNPACK_U32(buf, var->primary_check_id);
   8310 	return buf;
   8311 }
   8312 
   8313 uint8 *
   8314 _bcm_pack_flowtracker_chip_debug_info(uint8 *buf, bcm_flowtracker_chip_debug_info_t *var)
   8315 {
   8316 	BCM_PACK_U32(buf, var->param);
   8317 	BCM_PACK_U32(buf, var->count);
   8318 	return buf;
   8319 }
   8320 
   8321 uint8 *
   8322 _bcm_unpack_flowtracker_chip_debug_info(uint8 *buf, bcm_flowtracker_chip_debug_info_t *var)
   8323 {
   8324 	BCM_UNPACK_U32(buf, var->param);
   8325 	BCM_UNPACK_U32(buf, var->count);
   8326 	return buf;
   8327 }
   8328 
   8329 uint8 *
   8330 _bcm_pack_flowtracker_collector_copy_info(uint8 *buf, bcm_flowtracker_collector_copy_info_t *var)
   8331 {
   8332 	BCM_PACK_U32(buf, var->flags);
   8333 	BCM_PACK_U32(buf, var->num_pkts_initial_samples);
   8334 	BCM_PACK_U32(buf, var->num_pkts_skip_for_next_sample);
   8335 	return buf;
   8336 }
   8337 
   8338 uint8 *
   8339 _bcm_unpack_flowtracker_collector_copy_info(uint8 *buf, bcm_flowtracker_collector_copy_info_t *var)
   8340 {
   8341 	BCM_UNPACK_U32(buf, var->flags);
   8342 	BCM_UNPACK_U32(buf, var->num_pkts_initial_samples);
   8343 	BCM_UNPACK_U32(buf, var->num_pkts_skip_for_next_sample);
   8344 	return buf;
   8345 }
   8346 
   8347 uint8 *
   8348 _bcm_pack_flowtracker_collector_info(uint8 *buf, bcm_flowtracker_collector_info_t *var)
   8349 {
   8350 	BCM_PACK_U32(buf, var->collector_type);
   8351 	BCM_PACK_U32(buf, var->transport_type);
   8352 	{
   8353 		int _i;
   8354 
   8355 		for (_i = 0; _i < 6; _i++) {
   8356 			BCM_PACK_U8(buf, var->eth.dst_mac[_i]);
   8357 		}
   8358 	}
   8359 	{
   8360 		int _i;
   8361 
   8362 		for (_i = 0; _i < 6; _i++) {
   8363 			BCM_PACK_U8(buf, var->eth.src_mac[_i]);
   8364 		}
   8365 	}
   8366 	BCM_PACK_U8(buf, var->eth.vlan_tag_structure);
   8367 	BCM_PACK_U16(buf, var->eth.outer_tpid);
   8368 	BCM_PACK_U16(buf, var->eth.inner_tpid);
   8369 	BCM_PACK_U32(buf, var->eth.outer_vlan_tag);
   8370 	BCM_PACK_U32(buf, var->eth.inner_vlan_tag);
   8371 	BCM_PACK_U32(buf, var->ipv4.src_ip);
   8372 	BCM_PACK_U32(buf, var->ipv4.dst_ip);
   8373 	BCM_PACK_U8(buf, var->ipv4.dscp);
   8374 	BCM_PACK_U8(buf, var->ipv4.ttl);
   8375 	{
   8376 		int _i;
   8377 
   8378 		for (_i = 0; _i < 16; _i++) {
   8379 			BCM_PACK_U8(buf, var->ipv6.src_ip[_i]);
   8380 		}
   8381 	}
   8382 	{
   8383 		int _i;
   8384 
   8385 		for (_i = 0; _i < 16; _i++) {
   8386 			BCM_PACK_U8(buf, var->ipv6.dst_ip[_i]);
   8387 		}
   8388 	}
   8389 	BCM_PACK_U8(buf, var->ipv6.traffic_class);
   8390 	BCM_PACK_U32(buf, var->ipv6.flow_label);
   8391 	BCM_PACK_U8(buf, var->ipv6.hop_limit);
   8392 	BCM_PACK_U32(buf, var->udp.src_port);
   8393 	BCM_PACK_U32(buf, var->udp.dst_port);
   8394 	BCM_PACK_U16(buf, var->max_packet_length);
   8395 	return buf;
   8396 }
   8397 
   8398 uint8 *
   8399 _bcm_unpack_flowtracker_collector_info(uint8 *buf, bcm_flowtracker_collector_info_t *var)
   8400 {
   8401 	BCM_UNPACK_U32(buf, var->collector_type);
   8402 	BCM_UNPACK_U32(buf, var->transport_type);
   8403 	{
   8404 		int _i;
   8405 
   8406 		for (_i = 0; _i < 6; _i++) {
   8407 			BCM_UNPACK_U8(buf, var->eth.dst_mac[_i]);
   8408 		}
   8409 	}
   8410 	{
   8411 		int _i;
   8412 
   8413 		for (_i = 0; _i < 6; _i++) {
   8414 			BCM_UNPACK_U8(buf, var->eth.src_mac[_i]);
   8415 		}
   8416 	}
   8417 	BCM_UNPACK_U8(buf, var->eth.vlan_tag_structure);
   8418 	BCM_UNPACK_U16(buf, var->eth.outer_tpid);
   8419 	BCM_UNPACK_U16(buf, var->eth.inner_tpid);
   8420 	BCM_UNPACK_U32(buf, var->eth.outer_vlan_tag);
   8421 	BCM_UNPACK_U32(buf, var->eth.inner_vlan_tag);
   8422 	BCM_UNPACK_U32(buf, var->ipv4.src_ip);
   8423 	BCM_UNPACK_U32(buf, var->ipv4.dst_ip);
   8424 	BCM_UNPACK_U8(buf, var->ipv4.dscp);
   8425 	BCM_UNPACK_U8(buf, var->ipv4.ttl);
   8426 	{
   8427 		int _i;
   8428 
   8429 		for (_i = 0; _i < 16; _i++) {
   8430 			BCM_UNPACK_U8(buf, var->ipv6.src_ip[_i]);
   8431 		}
   8432 	}
   8433 	{
   8434 		int _i;
   8435 
   8436 		for (_i = 0; _i < 16; _i++) {
   8437 			BCM_UNPACK_U8(buf, var->ipv6.dst_ip[_i]);
   8438 		}
   8439 	}
   8440 	BCM_UNPACK_U8(buf, var->ipv6.traffic_class);
   8441 	BCM_UNPACK_U32(buf, var->ipv6.flow_label);
   8442 	BCM_UNPACK_U8(buf, var->ipv6.hop_limit);
   8443 	BCM_UNPACK_U32(buf, var->udp.src_port);
   8444 	BCM_UNPACK_U32(buf, var->udp.dst_port);
   8445 	BCM_UNPACK_U16(buf, var->max_packet_length);
   8446 	return buf;
   8447 }
   8448 
   8449 uint8 *
   8450 _bcm_pack_flowtracker_elephant_match_data(uint8 *buf, bcm_flowtracker_elephant_match_data_t *var)
   8451 {
   8452 	buf = _bcm_pack_pbmp(buf, &(*var).ingress_pbmp);
   8453 	buf = _bcm_pack_pbmp(buf, &(*var).egress_pbmp);
   8454 	BCM_PACK_U32(buf, var->pkt_type_bmp);
   8455 	BCM_PACK_U32(buf, var->int_pri_bmp);
   8456 	return buf;
   8457 }
   8458 
   8459 uint8 *
   8460 _bcm_unpack_flowtracker_elephant_match_data(uint8 *buf, bcm_flowtracker_elephant_match_data_t *var)
   8461 {
   8462 	buf = _bcm_unpack_pbmp(buf, &(*var).ingress_pbmp);
   8463 	buf = _bcm_unpack_pbmp(buf, &(*var).egress_pbmp);
   8464 	BCM_UNPACK_U32(buf, var->pkt_type_bmp);
   8465 	BCM_UNPACK_U32(buf, var->int_pri_bmp);
   8466 	return buf;
   8467 }
   8468 
   8469 uint8 *
   8470 _bcm_pack_flowtracker_elephant_profile_info(uint8 *buf, bcm_flowtracker_elephant_profile_info_t *var)
   8471 {
   8472 	BCM_PACK_U8(buf, var->num_promotion_filters);
   8473 	BCM_PACK_U32(buf, var->promotion_filters[0].flags);
   8474 	BCM_PACK_U32(buf, var->promotion_filters[0].monitor_interval_usecs);
   8475 	BCM_PACK_U32(buf, var->promotion_filters[0].rate_low_threshold_kbits_sec);
   8476 	BCM_PACK_U32(buf, var->promotion_filters[0].rate_high_threshold_kbits_sec);
   8477 	{
   8478 		uint32 _u32;
   8479 
   8480 		_u32 = COMPILER_64_HI(var->promotion_filters[0].size_threshold_bytes);
   8481 		BCM_PACK_U32(buf, _u32);
   8482 		_u32 = COMPILER_64_LO(var->promotion_filters[0].size_threshold_bytes);
   8483 		BCM_PACK_U32(buf, _u32);
   8484 	}
   8485 	BCM_PACK_U32(buf, var->promotion_filters[1].flags);
   8486 	BCM_PACK_U32(buf, var->promotion_filters[1].monitor_interval_usecs);
   8487 	BCM_PACK_U32(buf, var->promotion_filters[1].rate_low_threshold_kbits_sec);
   8488 	BCM_PACK_U32(buf, var->promotion_filters[1].rate_high_threshold_kbits_sec);
   8489 	{
   8490 		uint32 _u32;
   8491 
   8492 		_u32 = COMPILER_64_HI(var->promotion_filters[1].size_threshold_bytes);
   8493 		BCM_PACK_U32(buf, _u32);
   8494 		_u32 = COMPILER_64_LO(var->promotion_filters[1].size_threshold_bytes);
   8495 		BCM_PACK_U32(buf, _u32);
   8496 	}
   8497 	BCM_PACK_U32(buf, var->demotion_filter.flags);
   8498 	BCM_PACK_U32(buf, var->demotion_filter.monitor_interval_usecs);
   8499 	BCM_PACK_U32(buf, var->demotion_filter.rate_low_threshold_kbits_sec);
   8500 	BCM_PACK_U32(buf, var->demotion_filter.rate_high_threshold_kbits_sec);
   8501 	{
   8502 		uint32 _u32;
   8503 
   8504 		_u32 = COMPILER_64_HI(var->demotion_filter.size_threshold_bytes);
   8505 		BCM_PACK_U32(buf, _u32);
   8506 		_u32 = COMPILER_64_LO(var->demotion_filter.size_threshold_bytes);
   8507 		BCM_PACK_U32(buf, _u32);
   8508 	}
   8509 	return buf;
   8510 }
   8511 
   8512 uint8 *
   8513 _bcm_unpack_flowtracker_elephant_profile_info(uint8 *buf, bcm_flowtracker_elephant_profile_info_t *var)
   8514 {
   8515 	BCM_UNPACK_U8(buf, var->num_promotion_filters);
   8516 	BCM_UNPACK_U32(buf, var->promotion_filters[0].flags);
   8517 	BCM_UNPACK_U32(buf, var->promotion_filters[0].monitor_interval_usecs);
   8518 	BCM_UNPACK_U32(buf, var->promotion_filters[0].rate_low_threshold_kbits_sec);
   8519 	BCM_UNPACK_U32(buf, var->promotion_filters[0].rate_high_threshold_kbits_sec);
   8520 	{
   8521 		uint32 _u32h, _u32l;
   8522 
   8523 		BCM_UNPACK_U32(buf, _u32h);
   8524 		BCM_UNPACK_U32(buf, _u32l);
   8525 		COMPILER_64_SET(var->promotion_filters[0].size_threshold_bytes, _u32h, _u32l);
   8526 	}
   8527 	BCM_UNPACK_U32(buf, var->promotion_filters[1].flags);
   8528 	BCM_UNPACK_U32(buf, var->promotion_filters[1].monitor_interval_usecs);
   8529 	BCM_UNPACK_U32(buf, var->promotion_filters[1].rate_low_threshold_kbits_sec);
   8530 	BCM_UNPACK_U32(buf, var->promotion_filters[1].rate_high_threshold_kbits_sec);
   8531 	{
   8532 		uint32 _u32h, _u32l;
   8533 
   8534 		BCM_UNPACK_U32(buf, _u32h);
   8535 		BCM_UNPACK_U32(buf, _u32l);
   8536 		COMPILER_64_SET(var->promotion_filters[1].size_threshold_bytes, _u32h, _u32l);
   8537 	}
   8538 	BCM_UNPACK_U32(buf, var->demotion_filter.flags);
   8539 	BCM_UNPACK_U32(buf, var->demotion_filter.monitor_interval_usecs);
   8540 	BCM_UNPACK_U32(buf, var->demotion_filter.rate_low_threshold_kbits_sec);
   8541 	BCM_UNPACK_U32(buf, var->demotion_filter.rate_high_threshold_kbits_sec);
   8542 	{
   8543 		uint32 _u32h, _u32l;
   8544 
   8545 		BCM_UNPACK_U32(buf, _u32h);
   8546 		BCM_UNPACK_U32(buf, _u32l);
   8547 		COMPILER_64_SET(var->demotion_filter.size_threshold_bytes, _u32h, _u32l);
   8548 	}
   8549 	return buf;
   8550 }
   8551 
   8552 uint8 *
   8553 _bcm_pack_flowtracker_elephant_stats(uint8 *buf, bcm_flowtracker_elephant_stats_t *var)
   8554 {
   8555 	{
   8556 		uint32 _u32;
   8557 
   8558 		_u32 = COMPILER_64_HI(var->num_candidates_detected);
   8559 		BCM_PACK_U32(buf, _u32);
   8560 		_u32 = COMPILER_64_LO(var->num_candidates_detected);
   8561 		BCM_PACK_U32(buf, _u32);
   8562 	}
   8563 	{
   8564 		uint32 _u32;
   8565 
   8566 		_u32 = COMPILER_64_HI(var->num_flow_table_insert_failures);
   8567 		BCM_PACK_U32(buf, _u32);
   8568 		_u32 = COMPILER_64_LO(var->num_flow_table_insert_failures);
   8569 		BCM_PACK_U32(buf, _u32);
   8570 	}
   8571 	{
   8572 		uint32 _u32;
   8573 
   8574 		_u32 = COMPILER_64_HI(var->num_flow_table_insert_success);
   8575 		BCM_PACK_U32(buf, _u32);
   8576 		_u32 = COMPILER_64_LO(var->num_flow_table_insert_success);
   8577 		BCM_PACK_U32(buf, _u32);
   8578 	}
   8579 	{
   8580 		uint32 _u32;
   8581 
   8582 		_u32 = COMPILER_64_HI(var->num_elephants_detected);
   8583 		BCM_PACK_U32(buf, _u32);
   8584 		_u32 = COMPILER_64_LO(var->num_elephants_detected);
   8585 		BCM_PACK_U32(buf, _u32);
   8586 	}
   8587 	return buf;
   8588 }
   8589 
   8590 uint8 *
   8591 _bcm_unpack_flowtracker_elephant_stats(uint8 *buf, bcm_flowtracker_elephant_stats_t *var)
   8592 {
   8593 	{
   8594 		uint32 _u32h, _u32l;
   8595 
   8596 		BCM_UNPACK_U32(buf, _u32h);
   8597 		BCM_UNPACK_U32(buf, _u32l);
   8598 		COMPILER_64_SET(var->num_candidates_detected, _u32h, _u32l);
   8599 	}
   8600 	{
   8601 		uint32 _u32h, _u32l;
   8602 
   8603 		BCM_UNPACK_U32(buf, _u32h);
   8604 		BCM_UNPACK_U32(buf, _u32l);
   8605 		COMPILER_64_SET(var->num_flow_table_insert_failures, _u32h, _u32l);
   8606 	}
   8607 	{
   8608 		uint32 _u32h, _u32l;
   8609 
   8610 		BCM_UNPACK_U32(buf, _u32h);
   8611 		BCM_UNPACK_U32(buf, _u32l);
   8612 		COMPILER_64_SET(var->num_flow_table_insert_success, _u32h, _u32l);
   8613 	}
   8614 	{
   8615 		uint32 _u32h, _u32l;
   8616 
   8617 		BCM_UNPACK_U32(buf, _u32h);
   8618 		BCM_UNPACK_U32(buf, _u32l);
   8619 		COMPILER_64_SET(var->num_elephants_detected, _u32h, _u32l);
   8620 	}
   8621 	return buf;
   8622 }
   8623 
   8624 uint8 *
   8625 _bcm_pack_flowtracker_export_element_info(uint8 *buf, bcm_flowtracker_export_element_info_t *var)
   8626 {
   8627 	BCM_PACK_U32(buf, var->flags);
   8628 	BCM_PACK_U32(buf, var->element);
   8629 	BCM_PACK_U32(buf, var->data_size);
   8630 	BCM_PACK_U16(buf, var->info_elem_id);
   8631 	BCM_PACK_U32(buf, var->check_id);
   8632 	return buf;
   8633 }
   8634 
   8635 uint8 *
   8636 _bcm_unpack_flowtracker_export_element_info(uint8 *buf, bcm_flowtracker_export_element_info_t *var)
   8637 {
   8638 	BCM_UNPACK_U32(buf, var->flags);
   8639 	BCM_UNPACK_U32(buf, var->element);
   8640 	BCM_UNPACK_U32(buf, var->data_size);
   8641 	BCM_UNPACK_U16(buf, var->info_elem_id);
   8642 	BCM_UNPACK_U32(buf, var->check_id);
   8643 	return buf;
   8644 }
   8645 
   8646 uint8 *
   8647 _bcm_pack_flowtracker_export_trigger_info(uint8 *buf, bcm_flowtracker_export_trigger_info_t *var)
   8648 {
   8649 	BCM_PACK_U32(buf, var->trigger_bmp[0]);
   8650 	BCM_PACK_U32(buf, var->interval_usecs);
   8651 	return buf;
   8652 }
   8653 
   8654 uint8 *
   8655 _bcm_unpack_flowtracker_export_trigger_info(uint8 *buf, bcm_flowtracker_export_trigger_info_t *var)
   8656 {
   8657 	BCM_UNPACK_U32(buf, var->trigger_bmp[0]);
   8658 	BCM_UNPACK_U32(buf, var->interval_usecs);
   8659 	return buf;
   8660 }
   8661 
   8662 uint8 *
   8663 _bcm_pack_flowtracker_flow_data(uint8 *buf, bcm_flowtracker_flow_data_t *var)
   8664 {
   8665 	{
   8666 		uint32 _u32;
   8667 
   8668 		_u32 = COMPILER_64_HI(var->packet_count);
   8669 		BCM_PACK_U32(buf, _u32);
   8670 		_u32 = COMPILER_64_LO(var->packet_count);
   8671 		BCM_PACK_U32(buf, _u32);
   8672 	}
   8673 	{
   8674 		uint32 _u32;
   8675 
   8676 		_u32 = COMPILER_64_HI(var->byte_count);
   8677 		BCM_PACK_U32(buf, _u32);
   8678 		_u32 = COMPILER_64_LO(var->byte_count);
   8679 		BCM_PACK_U32(buf, _u32);
   8680 	}
   8681 	{
   8682 		uint32 _u32;
   8683 
   8684 		_u32 = COMPILER_64_HI(var->flow_start_timestamp_msecs);
   8685 		BCM_PACK_U32(buf, _u32);
   8686 		_u32 = COMPILER_64_LO(var->flow_start_timestamp_msecs);
   8687 		BCM_PACK_U32(buf, _u32);
   8688 	}
   8689 	{
   8690 		uint32 _u32;
   8691 
   8692 		_u32 = COMPILER_64_HI(var->observation_timestamp_msecs);
   8693 		BCM_PACK_U32(buf, _u32);
   8694 		_u32 = COMPILER_64_LO(var->observation_timestamp_msecs);
   8695 		BCM_PACK_U32(buf, _u32);
   8696 	}
   8697 	{
   8698 		int _i;
   8699 
   8700 		for (_i = 0; _i < 7; _i++) {
   8701 			BCM_PACK_U32(buf, var->pkt_drop_reasons.pbits[_i]);
   8702 		}
   8703 	}
   8704 	return buf;
   8705 }
   8706 
   8707 uint8 *
   8708 _bcm_unpack_flowtracker_flow_data(uint8 *buf, bcm_flowtracker_flow_data_t *var)
   8709 {
   8710 	{
   8711 		uint32 _u32h, _u32l;
   8712 
   8713 		BCM_UNPACK_U32(buf, _u32h);
   8714 		BCM_UNPACK_U32(buf, _u32l);
   8715 		COMPILER_64_SET(var->packet_count, _u32h, _u32l);
   8716 	}
   8717 	{
   8718 		uint32 _u32h, _u32l;
   8719 
   8720 		BCM_UNPACK_U32(buf, _u32h);
   8721 		BCM_UNPACK_U32(buf, _u32l);
   8722 		COMPILER_64_SET(var->byte_count, _u32h, _u32l);
   8723 	}
   8724 	{
   8725 		uint32 _u32h, _u32l;
   8726 
   8727 		BCM_UNPACK_U32(buf, _u32h);
   8728 		BCM_UNPACK_U32(buf, _u32l);
   8729 		COMPILER_64_SET(var->flow_start_timestamp_msecs, _u32h, _u32l);
   8730 	}
   8731 	{
   8732 		uint32 _u32h, _u32l;
   8733 
   8734 		BCM_UNPACK_U32(buf, _u32h);
   8735 		BCM_UNPACK_U32(buf, _u32l);
   8736 		COMPILER_64_SET(var->observation_timestamp_msecs, _u32h, _u32l);
   8737 	}
   8738 	{
   8739 		int _i;
   8740 
   8741 		for (_i = 0; _i < 7; _i++) {
   8742 			BCM_UNPACK_U32(buf, var->pkt_drop_reasons.pbits[_i]);
   8743 		}
   8744 	}
   8745 	return buf;
   8746 }
   8747 
   8748 uint8 *
   8749 _bcm_pack_flowtracker_flow_key(uint8 *buf, bcm_flowtracker_flow_key_t *var)
   8750 {
   8751 	BCM_PACK_U32(buf, var->src_ip.protocol);
   8752 	BCM_PACK_U32(buf, var->src_ip.addr.ipv4_addr);
   8753 	{
   8754 		int _i;
   8755 
   8756 		for (_i = 0; _i < 16; _i++) {
   8757 			BCM_PACK_U8(buf, var->src_ip.addr.ipv6_addr[_i]);
   8758 		}
   8759 	}
   8760 	BCM_PACK_U32(buf, var->dst_ip.protocol);
   8761 	BCM_PACK_U32(buf, var->dst_ip.addr.ipv4_addr);
   8762 	{
   8763 		int _i;
   8764 
   8765 		for (_i = 0; _i < 16; _i++) {
   8766 			BCM_PACK_U8(buf, var->dst_ip.addr.ipv6_addr[_i]);
   8767 		}
   8768 	}
   8769 	BCM_PACK_U32(buf, var->l4_src_port);
   8770 	BCM_PACK_U32(buf, var->l4_dst_port);
   8771 	BCM_PACK_U8(buf, var->ip_protocol);
   8772 	BCM_PACK_U32(buf, var->inner_src_ip.protocol);
   8773 	BCM_PACK_U32(buf, var->inner_src_ip.addr.ipv4_addr);
   8774 	{
   8775 		int _i;
   8776 
   8777 		for (_i = 0; _i < 16; _i++) {
   8778 			BCM_PACK_U8(buf, var->inner_src_ip.addr.ipv6_addr[_i]);
   8779 		}
   8780 	}
   8781 	BCM_PACK_U32(buf, var->inner_dst_ip.protocol);
   8782 	BCM_PACK_U32(buf, var->inner_dst_ip.addr.ipv4_addr);
   8783 	{
   8784 		int _i;
   8785 
   8786 		for (_i = 0; _i < 16; _i++) {
   8787 			BCM_PACK_U8(buf, var->inner_dst_ip.addr.ipv6_addr[_i]);
   8788 		}
   8789 	}
   8790 	BCM_PACK_U32(buf, var->inner_l4_src_port);
   8791 	BCM_PACK_U32(buf, var->inner_l4_dst_port);
   8792 	BCM_PACK_U8(buf, var->inner_ip_protocol);
   8793 	BCM_PACK_U32(buf, var->vxlan_network_id);
   8794 	{
   8795 		int _i;
   8796 
   8797 		for (_i = 0; _i < 16; _i++) {
   8798 			BCM_PACK_U8(buf, var->custom[_i]);
   8799 		}
   8800 	}
   8801 	BCM_PACK_U32(buf, var->in_port);
   8802 	return buf;
   8803 }
   8804 
   8805 uint8 *
   8806 _bcm_unpack_flowtracker_flow_key(uint8 *buf, bcm_flowtracker_flow_key_t *var)
   8807 {
   8808 	BCM_UNPACK_U32(buf, var->src_ip.protocol);
   8809 	BCM_UNPACK_U32(buf, var->src_ip.addr.ipv4_addr);
   8810 	{
   8811 		int _i;
   8812 
   8813 		for (_i = 0; _i < 16; _i++) {
   8814 			BCM_UNPACK_U8(buf, var->src_ip.addr.ipv6_addr[_i]);
   8815 		}
   8816 	}
   8817 	BCM_UNPACK_U32(buf, var->dst_ip.protocol);
   8818 	BCM_UNPACK_U32(buf, var->dst_ip.addr.ipv4_addr);
   8819 	{
   8820 		int _i;
   8821 
   8822 		for (_i = 0; _i < 16; _i++) {
   8823 			BCM_UNPACK_U8(buf, var->dst_ip.addr.ipv6_addr[_i]);
   8824 		}
   8825 	}
   8826 	BCM_UNPACK_U32(buf, var->l4_src_port);
   8827 	BCM_UNPACK_U32(buf, var->l4_dst_port);
   8828 	BCM_UNPACK_U8(buf, var->ip_protocol);
   8829 	BCM_UNPACK_U32(buf, var->inner_src_ip.protocol);
   8830 	BCM_UNPACK_U32(buf, var->inner_src_ip.addr.ipv4_addr);
   8831 	{
   8832 		int _i;
   8833 
   8834 		for (_i = 0; _i < 16; _i++) {
   8835 			BCM_UNPACK_U8(buf, var->inner_src_ip.addr.ipv6_addr[_i]);
   8836 		}
   8837 	}
   8838 	BCM_UNPACK_U32(buf, var->inner_dst_ip.protocol);
   8839 	BCM_UNPACK_U32(buf, var->inner_dst_ip.addr.ipv4_addr);
   8840 	{
   8841 		int _i;
   8842 
   8843 		for (_i = 0; _i < 16; _i++) {
   8844 			BCM_UNPACK_U8(buf, var->inner_dst_ip.addr.ipv6_addr[_i]);
   8845 		}
   8846 	}
   8847 	BCM_UNPACK_U32(buf, var->inner_l4_src_port);
   8848 	BCM_UNPACK_U32(buf, var->inner_l4_dst_port);
   8849 	BCM_UNPACK_U8(buf, var->inner_ip_protocol);
   8850 	BCM_UNPACK_U32(buf, var->vxlan_network_id);
   8851 	{
   8852 		int _i;
   8853 
   8854 		for (_i = 0; _i < 16; _i++) {
   8855 			BCM_UNPACK_U8(buf, var->custom[_i]);
   8856 		}
   8857 	}
   8858 	BCM_UNPACK_U32(buf, var->in_port);
   8859 	return buf;
   8860 }
   8861 
   8862 uint8 *
   8863 _bcm_pack_flowtracker_group_action_info(uint8 *buf, bcm_flowtracker_group_action_info_t *var)
   8864 {
   8865 	BCM_PACK_U32(buf, var->action);
   8866 	BCM_PACK_U32(buf, var->params.param0);
   8867 	BCM_PACK_U32(buf, var->params.param1);
   8868 	return buf;
   8869 }
   8870 
   8871 uint8 *
   8872 _bcm_unpack_flowtracker_group_action_info(uint8 *buf, bcm_flowtracker_group_action_info_t *var)
   8873 {
   8874 	BCM_UNPACK_U32(buf, var->action);
   8875 	BCM_UNPACK_U32(buf, var->params.param0);
   8876 	BCM_UNPACK_U32(buf, var->params.param1);
   8877 	return buf;
   8878 }
   8879 
   8880 uint8 *
   8881 _bcm_pack_flowtracker_group_info(uint8 *buf, bcm_flowtracker_group_info_t *var)
   8882 {
   8883 	BCM_PACK_U32(buf, var->observation_domain_id);
   8884 	BCM_PACK_U32(buf, var->group_class);
   8885 	BCM_PACK_U32(buf, var->group_flags);
   8886 	{
   8887 		int _i;
   8888 
   8889 		for (_i = 0; _i < 8; _i++) {
   8890 			BCM_PACK_U32(buf, var->field_group[_i]);
   8891 		}
   8892 	}
   8893 	return buf;
   8894 }
   8895 
   8896 uint8 *
   8897 _bcm_unpack_flowtracker_group_info(uint8 *buf, bcm_flowtracker_group_info_t *var)
   8898 {
   8899 	BCM_UNPACK_U32(buf, var->observation_domain_id);
   8900 	BCM_UNPACK_U32(buf, var->group_class);
   8901 	BCM_UNPACK_U32(buf, var->group_flags);
   8902 	{
   8903 		int _i;
   8904 
   8905 		for (_i = 0; _i < 8; _i++) {
   8906 			BCM_UNPACK_U32(buf, var->field_group[_i]);
   8907 		}
   8908 	}
   8909 	return buf;
   8910 }
   8911 
   8912 uint8 *
   8913 _bcm_pack_flowtracker_group_stat(uint8 *buf, bcm_flowtracker_group_stat_t *var)
   8914 {
   8915 	{
   8916 		uint32 _u32;
   8917 
   8918 		_u32 = COMPILER_64_HI(var->flow_exceeded_count);
   8919 		BCM_PACK_U32(buf, _u32);
   8920 		_u32 = COMPILER_64_LO(var->flow_exceeded_count);
   8921 		BCM_PACK_U32(buf, _u32);
   8922 	}
   8923 	{
   8924 		uint32 _u32;
   8925 
   8926 		_u32 = COMPILER_64_HI(var->flow_missed_count);
   8927 		BCM_PACK_U32(buf, _u32);
   8928 		_u32 = COMPILER_64_LO(var->flow_missed_count);
   8929 		BCM_PACK_U32(buf, _u32);
   8930 	}
   8931 	{
   8932 		uint32 _u32;
   8933 
   8934 		_u32 = COMPILER_64_HI(var->flow_aged_out_count);
   8935 		BCM_PACK_U32(buf, _u32);
   8936 		_u32 = COMPILER_64_LO(var->flow_aged_out_count);
   8937 		BCM_PACK_U32(buf, _u32);
   8938 	}
   8939 	{
   8940 		uint32 _u32;
   8941 
   8942 		_u32 = COMPILER_64_HI(var->flow_learnt_count);
   8943 		BCM_PACK_U32(buf, _u32);
   8944 		_u32 = COMPILER_64_LO(var->flow_learnt_count);
   8945 		BCM_PACK_U32(buf, _u32);
   8946 	}
   8947 	{
   8948 		uint32 _u32;
   8949 
   8950 		_u32 = COMPILER_64_HI(var->flow_meter_exceeded_count);
   8951 		BCM_PACK_U32(buf, _u32);
   8952 		_u32 = COMPILER_64_LO(var->flow_meter_exceeded_count);
   8953 		BCM_PACK_U32(buf, _u32);
   8954 	}
   8955 	return buf;
   8956 }
   8957 
   8958 uint8 *
   8959 _bcm_unpack_flowtracker_group_stat(uint8 *buf, bcm_flowtracker_group_stat_t *var)
   8960 {
   8961 	{
   8962 		uint32 _u32h, _u32l;
   8963 
   8964 		BCM_UNPACK_U32(buf, _u32h);
   8965 		BCM_UNPACK_U32(buf, _u32l);
   8966 		COMPILER_64_SET(var->flow_exceeded_count, _u32h, _u32l);
   8967 	}
   8968 	{
   8969 		uint32 _u32h, _u32l;
   8970 
   8971 		BCM_UNPACK_U32(buf, _u32h);
   8972 		BCM_UNPACK_U32(buf, _u32l);
   8973 		COMPILER_64_SET(var->flow_missed_count, _u32h, _u32l);
   8974 	}
   8975 	{
   8976 		uint32 _u32h, _u32l;
   8977 
   8978 		BCM_UNPACK_U32(buf, _u32h);
   8979 		BCM_UNPACK_U32(buf, _u32l);
   8980 		COMPILER_64_SET(var->flow_aged_out_count, _u32h, _u32l);
   8981 	}
   8982 	{
   8983 		uint32 _u32h, _u32l;
   8984 
   8985 		BCM_UNPACK_U32(buf, _u32h);
   8986 		BCM_UNPACK_U32(buf, _u32l);
   8987 		COMPILER_64_SET(var->flow_learnt_count, _u32h, _u32l);
   8988 	}
   8989 	{
   8990 		uint32 _u32h, _u32l;
   8991 
   8992 		BCM_UNPACK_U32(buf, _u32h);
   8993 		BCM_UNPACK_U32(buf, _u32l);
   8994 		COMPILER_64_SET(var->flow_meter_exceeded_count, _u32h, _u32l);
   8995 	}
   8996 	return buf;
   8997 }
   8998 
   8999 uint8 *
   9000 _bcm_pack_flowtracker_meter_info(uint8 *buf, bcm_flowtracker_meter_info_t *var)
   9001 {
   9002 	BCM_PACK_U32(buf, var->flags);
   9003 	BCM_PACK_U32(buf, var->ckbits_sec);
   9004 	BCM_PACK_U32(buf, var->ckbits_burst);
   9005 	BCM_PACK_U32(buf, var->actual_ckbits_sec);
   9006 	BCM_PACK_U32(buf, var->actual_ckbits_burst);
   9007 	return buf;
   9008 }
   9009 
   9010 uint8 *
   9011 _bcm_unpack_flowtracker_meter_info(uint8 *buf, bcm_flowtracker_meter_info_t *var)
   9012 {
   9013 	BCM_UNPACK_U32(buf, var->flags);
   9014 	BCM_UNPACK_U32(buf, var->ckbits_sec);
   9015 	BCM_UNPACK_U32(buf, var->ckbits_burst);
   9016 	BCM_UNPACK_U32(buf, var->actual_ckbits_sec);
   9017 	BCM_UNPACK_U32(buf, var->actual_ckbits_burst);
   9018 	return buf;
   9019 }
   9020 
   9021 uint8 *
   9022 _bcm_pack_flowtracker_template_transmit_config(uint8 *buf, bcm_flowtracker_template_transmit_config_t *var)
   9023 {
   9024 	BCM_PACK_U32(buf, var->retransmit_interval_secs);
   9025 	BCM_PACK_U32(buf, var->initial_burst);
   9026 	return buf;
   9027 }
   9028 
   9029 uint8 *
   9030 _bcm_unpack_flowtracker_template_transmit_config(uint8 *buf, bcm_flowtracker_template_transmit_config_t *var)
   9031 {
   9032 	BCM_UNPACK_U32(buf, var->retransmit_interval_secs);
   9033 	BCM_UNPACK_U32(buf, var->initial_burst);
   9034 	return buf;
   9035 }
   9036 
   9037 uint8 *
   9038 _bcm_pack_flowtracker_tracking_param_info(uint8 *buf, bcm_flowtracker_tracking_param_info_t *var)
   9039 {
   9040 	BCM_PACK_U32(buf, var->flags);
   9041 	BCM_PACK_U32(buf, var->param);
   9042 	{
   9043 		int _i;
   9044 
   9045 		for (_i = 0; _i < 16; _i++) {
   9046 			BCM_PACK_U8(buf, var->tracking_data[_i]);
   9047 		}
   9048 	}
   9049 	{
   9050 		int _i;
   9051 
   9052 		for (_i = 0; _i < 16; _i++) {
   9053 			BCM_PACK_U8(buf, var->mask[_i]);
   9054 		}
   9055 	}
   9056 	BCM_PACK_U32(buf, var->check_id);
   9057 	BCM_PACK_U32(buf, var->udf_id);
   9058 	return buf;
   9059 }
   9060 
   9061 uint8 *
   9062 _bcm_unpack_flowtracker_tracking_param_info(uint8 *buf, bcm_flowtracker_tracking_param_info_t *var)
   9063 {
   9064 	BCM_UNPACK_U32(buf, var->flags);
   9065 	BCM_UNPACK_U32(buf, var->param);
   9066 	{
   9067 		int _i;
   9068 
   9069 		for (_i = 0; _i < 16; _i++) {
   9070 			BCM_UNPACK_U8(buf, var->tracking_data[_i]);
   9071 		}
   9072 	}
   9073 	{
   9074 		int _i;
   9075 
   9076 		for (_i = 0; _i < 16; _i++) {
   9077 			BCM_UNPACK_U8(buf, var->mask[_i]);
   9078 		}
   9079 	}
   9080 	BCM_UNPACK_U32(buf, var->check_id);
   9081 	BCM_UNPACK_U32(buf, var->udf_id);
   9082 	return buf;
   9083 }
   9084 
   9085 uint8 *
   9086 _bcm_pack_flowtracker_user_entry_handle(uint8 *buf, bcm_flowtracker_user_entry_handle_t *var)
   9087 {
   9088 	BCM_PACK_U32(buf, var->flow_group_id);
   9089 	BCM_PACK_U32(buf, var->flow_index);
   9090 	BCM_PACK_U32(buf, var->flow_key_mode);
   9091 	BCM_PACK_U32(buf, var->flow_key_type);
   9092 	{
   9093 		int _i;
   9094 
   9095 		for (_i = 0; _i < 48; _i++) {
   9096 			BCM_PACK_U8(buf, var->key_data[_i]);
   9097 		}
   9098 	}
   9099 	return buf;
   9100 }
   9101 
   9102 uint8 *
   9103 _bcm_unpack_flowtracker_user_entry_handle(uint8 *buf, bcm_flowtracker_user_entry_handle_t *var)
   9104 {
   9105 	BCM_UNPACK_U32(buf, var->flow_group_id);
   9106 	BCM_UNPACK_U32(buf, var->flow_index);
   9107 	BCM_UNPACK_U32(buf, var->flow_key_mode);
   9108 	BCM_UNPACK_U32(buf, var->flow_key_type);
   9109 	{
   9110 		int _i;
   9111 
   9112 		for (_i = 0; _i < 48; _i++) {
   9113 			BCM_UNPACK_U8(buf, var->key_data[_i]);
   9114 		}
   9115 	}
   9116 	return buf;
   9117 }
   9118 
   9119 uint8 *
   9120 _bcm_pack_hash_flex_bin_cmd(uint8 *buf, bcm_hash_flex_bin_cmd_t *var)
   9121 {
   9122 	BCM_PACK_U32(buf, var->bin_id);
   9123 	BCM_PACK_U32(buf, var->obj_id);
   9124 	BCM_PACK_U32(buf, var->obj_offset);
   9125 	BCM_PACK_U16(buf, var->bin_mask);
   9126 	return buf;
   9127 }
   9128 
   9129 uint8 *
   9130 _bcm_unpack_hash_flex_bin_cmd(uint8 *buf, bcm_hash_flex_bin_cmd_t *var)
   9131 {
   9132 	BCM_UNPACK_U32(buf, var->bin_id);
   9133 	BCM_UNPACK_U32(buf, var->obj_id);
   9134 	BCM_UNPACK_U32(buf, var->obj_offset);
   9135 	BCM_UNPACK_U16(buf, var->bin_mask);
   9136 	return buf;
   9137 }
   9138 
   9139 uint8 *
   9140 _bcm_pack_hash_flex_bin_config(uint8 *buf, bcm_hash_flex_bin_config_t *var)
   9141 {
   9142 	BCM_PACK_U32(buf, var->tset.q_bit[0]);
   9143 	BCM_PACK_U32(buf, var->tset.q_bit[1]);
   9144 	BCM_PACK_U32(buf, var->tset.q_bit[2]);
   9145 	BCM_PACK_U32(buf, var->tset.q_bit[3]);
   9146 	BCM_PACK_U32(buf, var->sset.s_bit[0]);
   9147 	BCM_PACK_U32(buf, var->sset.s_bit[1]);
   9148 	BCM_PACK_U32(buf, var->sset_mask.s_bit[0]);
   9149 	BCM_PACK_U32(buf, var->sset_mask.s_bit[1]);
   9150 	BCM_PACK_U16(buf, var->sgpp_ctrl_id);
   9151 	BCM_PACK_U16(buf, var->svp_ctrl_id);
   9152 	BCM_PACK_U16(buf, var->l3iif_ctrl_id);
   9153 	BCM_PACK_U16(buf, var->vfi_ctrl_id);
   9154 	BCM_PACK_U16(buf, var->vlan_ctrl_id);
   9155 	BCM_PACK_U16(buf, var->sgpp_ctrl_id_mask);
   9156 	BCM_PACK_U16(buf, var->svp_ctrl_id_mask);
   9157 	BCM_PACK_U16(buf, var->l3iif_ctrl_id_mask);
   9158 	BCM_PACK_U16(buf, var->vfi_ctrl_id_mask);
   9159 	BCM_PACK_U16(buf, var->vlan_ctrl_id_mask);
   9160 	BCM_PACK_U32(buf, var->entry_id);
   9161 	BCM_PACK_U32(buf, var->option);
   9162 	return buf;
   9163 }
   9164 
   9165 uint8 *
   9166 _bcm_unpack_hash_flex_bin_config(uint8 *buf, bcm_hash_flex_bin_config_t *var)
   9167 {
   9168 	BCM_UNPACK_U32(buf, var->tset.q_bit[0]);
   9169 	BCM_UNPACK_U32(buf, var->tset.q_bit[1]);
   9170 	BCM_UNPACK_U32(buf, var->tset.q_bit[2]);
   9171 	BCM_UNPACK_U32(buf, var->tset.q_bit[3]);
   9172 	BCM_UNPACK_U32(buf, var->sset.s_bit[0]);
   9173 	BCM_UNPACK_U32(buf, var->sset.s_bit[1]);
   9174 	BCM_UNPACK_U32(buf, var->sset_mask.s_bit[0]);
   9175 	BCM_UNPACK_U32(buf, var->sset_mask.s_bit[1]);
   9176 	BCM_UNPACK_U16(buf, var->sgpp_ctrl_id);
   9177 	BCM_UNPACK_U16(buf, var->svp_ctrl_id);
   9178 	BCM_UNPACK_U16(buf, var->l3iif_ctrl_id);
   9179 	BCM_UNPACK_U16(buf, var->vfi_ctrl_id);
   9180 	BCM_UNPACK_U16(buf, var->vlan_ctrl_id);
   9181 	BCM_UNPACK_U16(buf, var->sgpp_ctrl_id_mask);
   9182 	BCM_UNPACK_U16(buf, var->svp_ctrl_id_mask);
   9183 	BCM_UNPACK_U16(buf, var->l3iif_ctrl_id_mask);
   9184 	BCM_UNPACK_U16(buf, var->vfi_ctrl_id_mask);
   9185 	BCM_UNPACK_U16(buf, var->vlan_ctrl_id_mask);
   9186 	BCM_UNPACK_U32(buf, var->entry_id);
   9187 	BCM_UNPACK_U32(buf, var->option);
   9188 	return buf;
   9189 }
   9190 
   9191 uint8 *
   9192 _bcm_pack_hash_flex_field(uint8 *buf, bcm_hash_flex_field_t *var)
   9193 {
   9194 	BCM_PACK_U32(buf, var->field_id);
   9195 	BCM_PACK_U32(buf, var->value);
   9196 	BCM_PACK_U32(buf, var->mask);
   9197 	return buf;
   9198 }
   9199 
   9200 uint8 *
   9201 _bcm_unpack_hash_flex_field(uint8 *buf, bcm_hash_flex_field_t *var)
   9202 {
   9203 	BCM_UNPACK_U32(buf, var->field_id);
   9204 	BCM_UNPACK_U32(buf, var->value);
   9205 	BCM_UNPACK_U32(buf, var->mask);
   9206 	return buf;
   9207 }
   9208 
   9209 uint8 *
   9210 _bcm_pack_ifa_collector_info(uint8 *buf, bcm_ifa_collector_info_t *var)
   9211 {
   9212 	BCM_PACK_U32(buf, var->transport_type);
   9213 	{
   9214 		int _i;
   9215 
   9216 		for (_i = 0; _i < 6; _i++) {
   9217 			BCM_PACK_U8(buf, var->eth.dst_mac[_i]);
   9218 		}
   9219 	}
   9220 	{
   9221 		int _i;
   9222 
   9223 		for (_i = 0; _i < 6; _i++) {
   9224 			BCM_PACK_U8(buf, var->eth.src_mac[_i]);
   9225 		}
   9226 	}
   9227 	BCM_PACK_U8(buf, var->eth.vlan_tag_structure);
   9228 	BCM_PACK_U16(buf, var->eth.outer_tpid);
   9229 	BCM_PACK_U16(buf, var->eth.inner_tpid);
   9230 	BCM_PACK_U32(buf, var->eth.outer_vlan_tag);
   9231 	BCM_PACK_U32(buf, var->eth.inner_vlan_tag);
   9232 	BCM_PACK_U32(buf, var->ipv4.src_ip);
   9233 	BCM_PACK_U32(buf, var->ipv4.dst_ip);
   9234 	BCM_PACK_U8(buf, var->ipv4.dscp);
   9235 	BCM_PACK_U8(buf, var->ipv4.ttl);
   9236 	{
   9237 		int _i;
   9238 
   9239 		for (_i = 0; _i < 16; _i++) {
   9240 			BCM_PACK_U8(buf, var->ipv6.src_ip[_i]);
   9241 		}
   9242 	}
   9243 	{
   9244 		int _i;
   9245 
   9246 		for (_i = 0; _i < 16; _i++) {
   9247 			BCM_PACK_U8(buf, var->ipv6.dst_ip[_i]);
   9248 		}
   9249 	}
   9250 	BCM_PACK_U8(buf, var->ipv6.traffic_class);
   9251 	BCM_PACK_U32(buf, var->ipv6.flow_label);
   9252 	BCM_PACK_U8(buf, var->ipv6.hop_limit);
   9253 	BCM_PACK_U32(buf, var->udp.src_port);
   9254 	BCM_PACK_U32(buf, var->udp.dst_port);
   9255 	BCM_PACK_U16(buf, var->mtu);
   9256 	return buf;
   9257 }
   9258 
   9259 uint8 *
   9260 _bcm_unpack_ifa_collector_info(uint8 *buf, bcm_ifa_collector_info_t *var)
   9261 {
   9262 	BCM_UNPACK_U32(buf, var->transport_type);
   9263 	{
   9264 		int _i;
   9265 
   9266 		for (_i = 0; _i < 6; _i++) {
   9267 			BCM_UNPACK_U8(buf, var->eth.dst_mac[_i]);
   9268 		}
   9269 	}
   9270 	{
   9271 		int _i;
   9272 
   9273 		for (_i = 0; _i < 6; _i++) {
   9274 			BCM_UNPACK_U8(buf, var->eth.src_mac[_i]);
   9275 		}
   9276 	}
   9277 	BCM_UNPACK_U8(buf, var->eth.vlan_tag_structure);
   9278 	BCM_UNPACK_U16(buf, var->eth.outer_tpid);
   9279 	BCM_UNPACK_U16(buf, var->eth.inner_tpid);
   9280 	BCM_UNPACK_U32(buf, var->eth.outer_vlan_tag);
   9281 	BCM_UNPACK_U32(buf, var->eth.inner_vlan_tag);
   9282 	BCM_UNPACK_U32(buf, var->ipv4.src_ip);
   9283 	BCM_UNPACK_U32(buf, var->ipv4.dst_ip);
   9284 	BCM_UNPACK_U8(buf, var->ipv4.dscp);
   9285 	BCM_UNPACK_U8(buf, var->ipv4.ttl);
   9286 	{
   9287 		int _i;
   9288 
   9289 		for (_i = 0; _i < 16; _i++) {
   9290 			BCM_UNPACK_U8(buf, var->ipv6.src_ip[_i]);
   9291 		}
   9292 	}
   9293 	{
   9294 		int _i;
   9295 
   9296 		for (_i = 0; _i < 16; _i++) {
   9297 			BCM_UNPACK_U8(buf, var->ipv6.dst_ip[_i]);
   9298 		}
   9299 	}
   9300 	BCM_UNPACK_U8(buf, var->ipv6.traffic_class);
   9301 	BCM_UNPACK_U32(buf, var->ipv6.flow_label);
   9302 	BCM_UNPACK_U8(buf, var->ipv6.hop_limit);
   9303 	BCM_UNPACK_U32(buf, var->udp.src_port);
   9304 	BCM_UNPACK_U32(buf, var->udp.dst_port);
   9305 	BCM_UNPACK_U16(buf, var->mtu);
   9306 	return buf;
   9307 }
   9308 
   9309 uint8 *
   9310 _bcm_pack_ifa_config_info(uint8 *buf, bcm_ifa_config_info_t *var)
   9311 {
   9312 	BCM_PACK_U32(buf, var->probemarker_1);
   9313 	BCM_PACK_U32(buf, var->probemarker_2);
   9314 	BCM_PACK_U32(buf, var->device_id);
   9315 	BCM_PACK_U16(buf, var->max_payload_length);
   9316 	BCM_PACK_U16(buf, var->module_id);
   9317 	BCM_PACK_U8(buf, var->hop_limit);
   9318 	BCM_PACK_U16(buf, var->rx_packet_payload_length);
   9319 	BCM_PACK_U16(buf, var->lb_port_1);
   9320 	BCM_PACK_U16(buf, var->lb_port_2);
   9321 	BCM_PACK_U8(buf, var->optional_headers);
   9322 	BCM_PACK_U8(buf, var->true_hop_count);
   9323 	return buf;
   9324 }
   9325 
   9326 uint8 *
   9327 _bcm_unpack_ifa_config_info(uint8 *buf, bcm_ifa_config_info_t *var)
   9328 {
   9329 	BCM_UNPACK_U32(buf, var->probemarker_1);
   9330 	BCM_UNPACK_U32(buf, var->probemarker_2);
   9331 	BCM_UNPACK_U32(buf, var->device_id);
   9332 	BCM_UNPACK_U16(buf, var->max_payload_length);
   9333 	BCM_UNPACK_U16(buf, var->module_id);
   9334 	BCM_UNPACK_U8(buf, var->hop_limit);
   9335 	BCM_UNPACK_U16(buf, var->rx_packet_payload_length);
   9336 	BCM_UNPACK_U16(buf, var->lb_port_1);
   9337 	BCM_UNPACK_U16(buf, var->lb_port_2);
   9338 	BCM_UNPACK_U8(buf, var->optional_headers);
   9339 	BCM_UNPACK_U8(buf, var->true_hop_count);
   9340 	return buf;
   9341 }
   9342 
   9343 uint8 *
   9344 _bcm_pack_ifa_stat_info(uint8 *buf, bcm_ifa_stat_info_t *var)
   9345 {
   9346 	BCM_PACK_U32(buf, var->rx_pkt_cnt);
   9347 	BCM_PACK_U32(buf, var->tx_pkt_cnt);
   9348 	BCM_PACK_U32(buf, var->ifa_no_config_drop);
   9349 	BCM_PACK_U32(buf, var->ifa_collector_not_present_drop);
   9350 	BCM_PACK_U32(buf, var->ifa_hop_cnt_invalid_drop);
   9351 	BCM_PACK_U32(buf, var->ifa_int_hdr_len_invalid_drop);
   9352 	BCM_PACK_U32(buf, var->ifa_pkt_size_invalid_drop);
   9353 	return buf;
   9354 }
   9355 
   9356 uint8 *
   9357 _bcm_unpack_ifa_stat_info(uint8 *buf, bcm_ifa_stat_info_t *var)
   9358 {
   9359 	BCM_UNPACK_U32(buf, var->rx_pkt_cnt);
   9360 	BCM_UNPACK_U32(buf, var->tx_pkt_cnt);
   9361 	BCM_UNPACK_U32(buf, var->ifa_no_config_drop);
   9362 	BCM_UNPACK_U32(buf, var->ifa_collector_not_present_drop);
   9363 	BCM_UNPACK_U32(buf, var->ifa_hop_cnt_invalid_drop);
   9364 	BCM_UNPACK_U32(buf, var->ifa_int_hdr_len_invalid_drop);
   9365 	BCM_UNPACK_U32(buf, var->ifa_pkt_size_invalid_drop);
   9366 	return buf;
   9367 }
   9368 
   9369 uint8 *
   9370 _bcm_pack_info(uint8 *buf, bcm_info_t *var)
   9371 {
   9372 	BCM_PACK_U32(buf, var->vendor);
   9373 	BCM_PACK_U32(buf, var->device);
   9374 	BCM_PACK_U32(buf, var->revision);
   9375 	BCM_PACK_U32(buf, var->capability);
   9376 	BCM_PACK_U32(buf, var->num_pipes);
   9377 	return buf;
   9378 }
   9379 
   9380 uint8 *
   9381 _bcm_unpack_info(uint8 *buf, bcm_info_t *var)
   9382 {
   9383 	BCM_UNPACK_U32(buf, var->vendor);
   9384 	BCM_UNPACK_U32(buf, var->device);
   9385 	BCM_UNPACK_U32(buf, var->revision);
   9386 	BCM_UNPACK_U32(buf, var->capability);
   9387 	BCM_UNPACK_U32(buf, var->num_pipes);
   9388 	return buf;
   9389 }
   9390 
   9391 uint8 *
   9392 _bcm_pack_instru_eventor_builder_conf(uint8 *buf, bcm_instru_eventor_builder_conf_t *var)
   9393 {
   9394 	BCM_PACK_U32(buf, var->flags);
   9395 	BCM_PACK_U32(buf, var->thresh_size);
   9396 	BCM_PACK_U32(buf, var->thresh_time);
   9397 	BCM_PACK_U32(buf, var->header_length);
   9398 	BCM_PACK_U8(buf, *var->header_data);
   9399 	return buf;
   9400 }
   9401 
   9402 uint8 *
   9403 _bcm_unpack_instru_eventor_builder_conf(uint8 *buf, bcm_instru_eventor_builder_conf_t *var)
   9404 {
   9405 	BCM_UNPACK_U32(buf, var->flags);
   9406 	BCM_UNPACK_U32(buf, var->thresh_size);
   9407 	BCM_UNPACK_U32(buf, var->thresh_time);
   9408 	BCM_UNPACK_U32(buf, var->header_length);
   9409 	BCM_UNPACK_U8(buf, *var->header_data);
   9410 	return buf;
   9411 }
   9412 
   9413 uint8 *
   9414 _bcm_pack_instru_eventor_context_conf(uint8 *buf, bcm_instru_eventor_context_conf_t *var)
   9415 {
   9416 	BCM_PACK_U32(buf, var->flags);
   9417 	BCM_PACK_U16(buf, var->bank1);
   9418 	BCM_PACK_U16(buf, var->bank2);
   9419 	BCM_PACK_U32(buf, var->buffer_size);
   9420 	BCM_PACK_U32(buf, var->buffer1_start);
   9421 	BCM_PACK_U32(buf, var->buffer2_start);
   9422 	BCM_PACK_U32(buf, var->program1_start);
   9423 	BCM_PACK_U32(buf, var->program2_start);
   9424 	BCM_PACK_U32(buf, var->nof_operations);
   9425 	BCM_PACK_U32(buf, var->operations.flags);
   9426 	BCM_PACK_U32(buf, var->operations.buf_offset);
   9427 	BCM_PACK_U32(buf, var->operations.access_info);
   9428 	BCM_PACK_U32(buf, var->nof_const_values);
   9429 	BCM_PACK_U32(buf, var->const_values->value);
   9430 	BCM_PACK_U32(buf, var->const_values->offset);
   9431 	return buf;
   9432 }
   9433 
   9434 uint8 *
   9435 _bcm_unpack_instru_eventor_context_conf(uint8 *buf, bcm_instru_eventor_context_conf_t *var)
   9436 {
   9437 	BCM_UNPACK_U32(buf, var->flags);
   9438 	BCM_UNPACK_U16(buf, var->bank1);
   9439 	BCM_UNPACK_U16(buf, var->bank2);
   9440 	BCM_UNPACK_U32(buf, var->buffer_size);
   9441 	BCM_UNPACK_U32(buf, var->buffer1_start);
   9442 	BCM_UNPACK_U32(buf, var->buffer2_start);
   9443 	BCM_UNPACK_U32(buf, var->program1_start);
   9444 	BCM_UNPACK_U32(buf, var->program2_start);
   9445 	BCM_UNPACK_U32(buf, var->nof_operations);
   9446 	BCM_UNPACK_U32(buf, var->operations.flags);
   9447 	BCM_UNPACK_U32(buf, var->operations.buf_offset);
   9448 	BCM_UNPACK_U32(buf, var->operations.access_info);
   9449 	BCM_UNPACK_U32(buf, var->nof_const_values);
   9450 	BCM_UNPACK_U32(buf, var->const_values->value);
   9451 	BCM_UNPACK_U32(buf, var->const_values->offset);
   9452 	return buf;
   9453 }
   9454 
   9455 uint8 *
   9456 _bcm_pack_instru_ipt(uint8 *buf, bcm_instru_ipt_t *var)
   9457 {
   9458 	BCM_PACK_U32(buf, var->node_type);
   9459 	BCM_PACK_U32(buf, var->metadata_flags);
   9460 	BCM_PACK_U32(buf, var->first_node_header.options);
   9461 	BCM_PACK_U32(buf, var->first_node_header.type);
   9462 	BCM_PACK_U32(buf, var->first_node_header.length);
   9463 	return buf;
   9464 }
   9465 
   9466 uint8 *
   9467 _bcm_unpack_instru_ipt(uint8 *buf, bcm_instru_ipt_t *var)
   9468 {
   9469 	BCM_UNPACK_U32(buf, var->node_type);
   9470 	BCM_UNPACK_U32(buf, var->metadata_flags);
   9471 	BCM_UNPACK_U32(buf, var->first_node_header.options);
   9472 	BCM_UNPACK_U32(buf, var->first_node_header.type);
   9473 	BCM_UNPACK_U32(buf, var->first_node_header.length);
   9474 	return buf;
   9475 }
   9476 
   9477 uint8 *
   9478 _bcm_pack_instru_sflow_encap_info(uint8 *buf, bcm_instru_sflow_encap_info_t *var)
   9479 {
   9480 	BCM_PACK_U32(buf, var->flags);
   9481 	BCM_PACK_U32(buf, var->sflow_encap_id);
   9482 	BCM_PACK_U32(buf, var->tunnel_id);
   9483 	BCM_PACK_U32(buf, var->stat_cmd);
   9484 	BCM_PACK_U32(buf, var->counter_command_id);
   9485 	BCM_PACK_U32(buf, var->sub_agent_id);
   9486 	BCM_PACK_U16(buf, var->eventor_id);
   9487 	return buf;
   9488 }
   9489 
   9490 uint8 *
   9491 _bcm_unpack_instru_sflow_encap_info(uint8 *buf, bcm_instru_sflow_encap_info_t *var)
   9492 {
   9493 	BCM_UNPACK_U32(buf, var->flags);
   9494 	BCM_UNPACK_U32(buf, var->sflow_encap_id);
   9495 	BCM_UNPACK_U32(buf, var->tunnel_id);
   9496 	BCM_UNPACK_U32(buf, var->stat_cmd);
   9497 	BCM_UNPACK_U32(buf, var->counter_command_id);
   9498 	BCM_UNPACK_U32(buf, var->sub_agent_id);
   9499 	BCM_UNPACK_U16(buf, var->eventor_id);
   9500 	return buf;
   9501 }
   9502 
   9503 #ifdef	INCLUDE_INT
   9504 
   9505 uint8 *
   9506 _bcm_pack_int_turnaround_config(uint8 *buf, bcm_int_turnaround_config_t *var)
   9507 {
   9508 	{
   9509 		int _i;
   9510 
   9511 		for (_i = 0; _i < 6; _i++) {
   9512 			BCM_PACK_U8(buf, var->src_mac[_i]);
   9513 		}
   9514 	}
   9515 	return buf;
   9516 }
   9517 
   9518 uint8 *
   9519 _bcm_unpack_int_turnaround_config(uint8 *buf, bcm_int_turnaround_config_t *var)
   9520 {
   9521 	{
   9522 		int _i;
   9523 
   9524 		for (_i = 0; _i < 6; _i++) {
   9525 			BCM_UNPACK_U8(buf, var->src_mac[_i]);
   9526 		}
   9527 	}
   9528 	return buf;
   9529 }
   9530 
   9531 uint8 *
   9532 _bcm_pack_int_turnaround_stat(uint8 *buf, bcm_int_turnaround_stat_t *var)
   9533 {
   9534 	{
   9535 		uint32 _u32;
   9536 
   9537 		_u32 = COMPILER_64_HI(var->rx_pkt_cnt);
   9538 		BCM_PACK_U32(buf, _u32);
   9539 		_u32 = COMPILER_64_LO(var->rx_pkt_cnt);
   9540 		BCM_PACK_U32(buf, _u32);
   9541 	}
   9542 	{
   9543 		uint32 _u32;
   9544 
   9545 		_u32 = COMPILER_64_HI(var->tx_pkt_cnt);
   9546 		BCM_PACK_U32(buf, _u32);
   9547 		_u32 = COMPILER_64_LO(var->tx_pkt_cnt);
   9548 		BCM_PACK_U32(buf, _u32);
   9549 	}
   9550 	{
   9551 		uint32 _u32;
   9552 
   9553 		_u32 = COMPILER_64_HI(var->drop_pkt_cnt);
   9554 		BCM_PACK_U32(buf, _u32);
   9555 		_u32 = COMPILER_64_LO(var->drop_pkt_cnt);
   9556 		BCM_PACK_U32(buf, _u32);
   9557 	}
   9558 	{
   9559 		uint32 _u32;
   9560 
   9561 		_u32 = COMPILER_64_HI(var->int_init_config_drop);
   9562 		BCM_PACK_U32(buf, _u32);
   9563 		_u32 = COMPILER_64_LO(var->int_init_config_drop);
   9564 		BCM_PACK_U32(buf, _u32);
   9565 	}
   9566 	{
   9567 		uint32 _u32;
   9568 
   9569 		_u32 = COMPILER_64_HI(var->int_hop_cnt_invalid_drop);
   9570 		BCM_PACK_U32(buf, _u32);
   9571 		_u32 = COMPILER_64_LO(var->int_hop_cnt_invalid_drop);
   9572 		BCM_PACK_U32(buf, _u32);
   9573 	}
   9574 	{
   9575 		uint32 _u32;
   9576 
   9577 		_u32 = COMPILER_64_HI(var->int_hdr_len_invalid_drop);
   9578 		BCM_PACK_U32(buf, _u32);
   9579 		_u32 = COMPILER_64_LO(var->int_hdr_len_invalid_drop);
   9580 		BCM_PACK_U32(buf, _u32);
   9581 	}
   9582 	{
   9583 		uint32 _u32;
   9584 
   9585 		_u32 = COMPILER_64_HI(var->int_pkt_size_invalid_drop);
   9586 		BCM_PACK_U32(buf, _u32);
   9587 		_u32 = COMPILER_64_LO(var->int_pkt_size_invalid_drop);
   9588 		BCM_PACK_U32(buf, _u32);
   9589 	}
   9590 	return buf;
   9591 }
   9592 
   9593 uint8 *
   9594 _bcm_unpack_int_turnaround_stat(uint8 *buf, bcm_int_turnaround_stat_t *var)
   9595 {
   9596 	{
   9597 		uint32 _u32h, _u32l;
   9598 
   9599 		BCM_UNPACK_U32(buf, _u32h);
   9600 		BCM_UNPACK_U32(buf, _u32l);
   9601 		COMPILER_64_SET(var->rx_pkt_cnt, _u32h, _u32l);
   9602 	}
   9603 	{
   9604 		uint32 _u32h, _u32l;
   9605 
   9606 		BCM_UNPACK_U32(buf, _u32h);
   9607 		BCM_UNPACK_U32(buf, _u32l);
   9608 		COMPILER_64_SET(var->tx_pkt_cnt, _u32h, _u32l);
   9609 	}
   9610 	{
   9611 		uint32 _u32h, _u32l;
   9612 
   9613 		BCM_UNPACK_U32(buf, _u32h);
   9614 		BCM_UNPACK_U32(buf, _u32l);
   9615 		COMPILER_64_SET(var->drop_pkt_cnt, _u32h, _u32l);
   9616 	}
   9617 	{
   9618 		uint32 _u32h, _u32l;
   9619 
   9620 		BCM_UNPACK_U32(buf, _u32h);
   9621 		BCM_UNPACK_U32(buf, _u32l);
   9622 		COMPILER_64_SET(var->int_init_config_drop, _u32h, _u32l);
   9623 	}
   9624 	{
   9625 		uint32 _u32h, _u32l;
   9626 
   9627 		BCM_UNPACK_U32(buf, _u32h);
   9628 		BCM_UNPACK_U32(buf, _u32l);
   9629 		COMPILER_64_SET(var->int_hop_cnt_invalid_drop, _u32h, _u32l);
   9630 	}
   9631 	{
   9632 		uint32 _u32h, _u32l;
   9633 
   9634 		BCM_UNPACK_U32(buf, _u32h);
   9635 		BCM_UNPACK_U32(buf, _u32l);
   9636 		COMPILER_64_SET(var->int_hdr_len_invalid_drop, _u32h, _u32l);
   9637 	}
   9638 	{
   9639 		uint32 _u32h, _u32l;
   9640 
   9641 		BCM_UNPACK_U32(buf, _u32h);
   9642 		BCM_UNPACK_U32(buf, _u32l);
   9643 		COMPILER_64_SET(var->int_pkt_size_invalid_drop, _u32h, _u32l);
   9644 	}
   9645 	return buf;
   9646 }
   9647 
   9648 #endif	/* INCLUDE_INT */
   9649 
   9650 uint8 *
   9651 _bcm_pack_ip6(uint8 *buf, bcm_ip6_t var)
   9652 {
   9653 	{
   9654 		int _i;
   9655 
   9656 		for (_i = 0; _i < 16; _i++) {
   9657 			BCM_PACK_U8(buf, var[_i]);
   9658 		}
   9659 	}
   9660 	return buf;
   9661 }
   9662 
   9663 uint8 *
   9664 _bcm_unpack_ip6(uint8 *buf, bcm_ip6_t var)
   9665 {
   9666 	{
   9667 		int _i;
   9668 
   9669 		for (_i = 0; _i < 16; _i++) {
   9670 			BCM_UNPACK_U8(buf, var[_i]);
   9671 		}
   9672 	}
   9673 	return buf;
   9674 }
   9675 
   9676 uint8 *
   9677 _bcm_pack_ipfix_config(uint8 *buf, bcm_ipfix_config_t *var)
   9678 {
   9679 	BCM_PACK_U32(buf, var->flags);
   9680 	{
   9681 		int _i;
   9682 
   9683 		for (_i = 0; _i < 64; _i++) {
   9684 			BCM_PACK_U8(buf, var->dscp_mask[_i]);
   9685 		}
   9686 	}
   9687 	BCM_PACK_U32(buf, var->src_ip4_mask);
   9688 	BCM_PACK_U32(buf, var->dst_ip4_mask);
   9689 	BCM_PACK_U32(buf, var->tunnel_src_ip4_mask);
   9690 	BCM_PACK_U32(buf, var->tunnel_dst_ip4_mask);
   9691 	{
   9692 		int _i;
   9693 
   9694 		for (_i = 0; _i < 16; _i++) {
   9695 			BCM_PACK_U8(buf, var->src_ip6_mask[_i]);
   9696 		}
   9697 	}
   9698 	{
   9699 		int _i;
   9700 
   9701 		for (_i = 0; _i < 16; _i++) {
   9702 			BCM_PACK_U8(buf, var->dst_ip6_mask[_i]);
   9703 		}
   9704 	}
   9705 	{
   9706 		int _i;
   9707 
   9708 		for (_i = 0; _i < 16; _i++) {
   9709 			BCM_PACK_U8(buf, var->tunnel_src_ip6_mask[_i]);
   9710 		}
   9711 	}
   9712 	{
   9713 		int _i;
   9714 
   9715 		for (_i = 0; _i < 16; _i++) {
   9716 			BCM_PACK_U8(buf, var->tunnel_dst_ip6_mask[_i]);
   9717 		}
   9718 	}
   9719 	BCM_PACK_U32(buf, var->entry_limit);
   9720 	BCM_PACK_U32(buf, var->min_time);
   9721 	BCM_PACK_U32(buf, var->max_time);
   9722 	BCM_PACK_U32(buf, var->max_idle_time);
   9723 	BCM_PACK_U32(buf, var->sample_rate);
   9724 	return buf;
   9725 }
   9726 
   9727 uint8 *
   9728 _bcm_unpack_ipfix_config(uint8 *buf, bcm_ipfix_config_t *var)
   9729 {
   9730 	BCM_UNPACK_U32(buf, var->flags);
   9731 	{
   9732 		int _i;
   9733 
   9734 		for (_i = 0; _i < 64; _i++) {
   9735 			BCM_UNPACK_U8(buf, var->dscp_mask[_i]);
   9736 		}
   9737 	}
   9738 	BCM_UNPACK_U32(buf, var->src_ip4_mask);
   9739 	BCM_UNPACK_U32(buf, var->dst_ip4_mask);
   9740 	BCM_UNPACK_U32(buf, var->tunnel_src_ip4_mask);
   9741 	BCM_UNPACK_U32(buf, var->tunnel_dst_ip4_mask);
   9742 	{
   9743 		int _i;
   9744 
   9745 		for (_i = 0; _i < 16; _i++) {
   9746 			BCM_UNPACK_U8(buf, var->src_ip6_mask[_i]);
   9747 		}
   9748 	}
   9749 	{
   9750 		int _i;
   9751 
   9752 		for (_i = 0; _i < 16; _i++) {
   9753 			BCM_UNPACK_U8(buf, var->dst_ip6_mask[_i]);
   9754 		}
   9755 	}
   9756 	{
   9757 		int _i;
   9758 
   9759 		for (_i = 0; _i < 16; _i++) {
   9760 			BCM_UNPACK_U8(buf, var->tunnel_src_ip6_mask[_i]);
   9761 		}
   9762 	}
   9763 	{
   9764 		int _i;
   9765 
   9766 		for (_i = 0; _i < 16; _i++) {
   9767 			BCM_UNPACK_U8(buf, var->tunnel_dst_ip6_mask[_i]);
   9768 		}
   9769 	}
   9770 	BCM_UNPACK_U32(buf, var->entry_limit);
   9771 	BCM_UNPACK_U32(buf, var->min_time);
   9772 	BCM_UNPACK_U32(buf, var->max_time);
   9773 	BCM_UNPACK_U32(buf, var->max_idle_time);
   9774 	BCM_UNPACK_U32(buf, var->sample_rate);
   9775 	return buf;
   9776 }
   9777 
   9778 uint8 *
   9779 _bcm_pack_ipfix_mirror_config(uint8 *buf, bcm_ipfix_mirror_config_t *var)
   9780 {
   9781 	BCM_PACK_U32(buf, var->flags);
   9782 	BCM_PACK_U32(buf, var->pkt_count);
   9783 	BCM_PACK_U8(buf, var->tcp_flags_mask);
   9784 	BCM_PACK_U8(buf, var->ttl_offset_max);
   9785 	return buf;
   9786 }
   9787 
   9788 uint8 *
   9789 _bcm_unpack_ipfix_mirror_config(uint8 *buf, bcm_ipfix_mirror_config_t *var)
   9790 {
   9791 	BCM_UNPACK_U32(buf, var->flags);
   9792 	BCM_UNPACK_U32(buf, var->pkt_count);
   9793 	BCM_UNPACK_U8(buf, var->tcp_flags_mask);
   9794 	BCM_UNPACK_U8(buf, var->ttl_offset_max);
   9795 	return buf;
   9796 }
   9797 
   9798 uint8 *
   9799 _bcm_pack_ipfix_rate(uint8 *buf, bcm_ipfix_rate_t *var)
   9800 {
   9801 	BCM_PACK_U32(buf, var->rate_id);
   9802 	BCM_PACK_U32(buf, var->flags);
   9803 	BCM_PACK_U32(buf, var->count);
   9804 	BCM_PACK_U32(buf, var->limit);
   9805 	BCM_PACK_U32(buf, var->rate);
   9806 	BCM_PACK_U8(buf, var->dscp);
   9807 	BCM_PACK_U32(buf, var->color);
   9808 	BCM_PACK_U32(buf, var->pkt_pri);
   9809 	BCM_PACK_U32(buf, var->int_pri);
   9810 	return buf;
   9811 }
   9812 
   9813 uint8 *
   9814 _bcm_unpack_ipfix_rate(uint8 *buf, bcm_ipfix_rate_t *var)
   9815 {
   9816 	BCM_UNPACK_U32(buf, var->rate_id);
   9817 	BCM_UNPACK_U32(buf, var->flags);
   9818 	BCM_UNPACK_U32(buf, var->count);
   9819 	BCM_UNPACK_U32(buf, var->limit);
   9820 	BCM_UNPACK_U32(buf, var->rate);
   9821 	BCM_UNPACK_U8(buf, var->dscp);
   9822 	BCM_UNPACK_U32(buf, var->color);
   9823 	BCM_UNPACK_U32(buf, var->pkt_pri);
   9824 	BCM_UNPACK_U32(buf, var->int_pri);
   9825 	return buf;
   9826 }
   9827 
   9828 #ifdef	INCLUDE_L3
   9829 
   9830 uint8 *
   9831 _bcm_pack_ipmc_addr(uint8 *buf, bcm_ipmc_addr_t *var)
   9832 {
   9833 	BCM_PACK_U32(buf, var->s_ip_addr);
   9834 	BCM_PACK_U32(buf, var->mc_ip_addr);
   9835 	{
   9836 		int _i;
   9837 
   9838 		for (_i = 0; _i < 16; _i++) {
   9839 			BCM_PACK_U8(buf, var->s_ip6_addr[_i]);
   9840 		}
   9841 	}
   9842 	{
   9843 		int _i;
   9844 
   9845 		for (_i = 0; _i < 16; _i++) {
   9846 			BCM_PACK_U8(buf, var->mc_ip6_addr[_i]);
   9847 		}
   9848 	}
   9849 	BCM_PACK_U16(buf, var->vid);
   9850 	BCM_PACK_U32(buf, var->vrf);
   9851 	BCM_PACK_U32(buf, var->cos);
   9852 	BCM_PACK_U32(buf, var->ts);
   9853 	BCM_PACK_U32(buf, var->port_tgid);
   9854 	BCM_PACK_U32(buf, var->v);
   9855 	BCM_PACK_U32(buf, var->mod_id);
   9856 	BCM_PACK_U32(buf, var->group);
   9857 	BCM_PACK_U32(buf, var->flags);
   9858 	BCM_PACK_U32(buf, var->lookup_class);
   9859 	BCM_PACK_U32(buf, var->distribution_class);
   9860 	BCM_PACK_U32(buf, var->l3a_intf);
   9861 	BCM_PACK_U32(buf, var->rp_id);
   9862 	BCM_PACK_U32(buf, var->s_ip_mask);
   9863 	BCM_PACK_U32(buf, var->ing_intf);
   9864 	BCM_PACK_U32(buf, var->mc_ip_mask);
   9865 	{
   9866 		int _i;
   9867 
   9868 		for (_i = 0; _i < 16; _i++) {
   9869 			BCM_PACK_U8(buf, var->mc_ip6_mask[_i]);
   9870 		}
   9871 	}
   9872 	BCM_PACK_U32(buf, var->group_l2);
   9873 	BCM_PACK_U32(buf, var->stat_id);
   9874 	BCM_PACK_U32(buf, var->stat_pp_profile);
   9875 	{
   9876 		int _i;
   9877 
   9878 		for (_i = 0; _i < 16; _i++) {
   9879 			BCM_PACK_U8(buf, var->s_ip6_mask[_i]);
   9880 		}
   9881 	}
   9882 	BCM_PACK_U32(buf, var->priority);
   9883 	BCM_PACK_U32(buf, var->flow_handle);
   9884 	BCM_PACK_U32(buf, var->flow_option_handle);
   9885 	{
   9886 		int _i;
   9887 
   9888 		for (_i = 0; _i < 20; _i++) {
   9889 			BCM_PACK_U32(buf, var->logical_fields[_i].id);
   9890 			BCM_PACK_U32(buf, var->logical_fields[_i].value);
   9891 		}
   9892 	}
   9893 	BCM_PACK_U32(buf, var->num_logical_fields);
   9894 	return buf;
   9895 }
   9896 
   9897 uint8 *
   9898 _bcm_unpack_ipmc_addr(uint8 *buf, bcm_ipmc_addr_t *var)
   9899 {
   9900 	BCM_UNPACK_U32(buf, var->s_ip_addr);
   9901 	BCM_UNPACK_U32(buf, var->mc_ip_addr);
   9902 	{
   9903 		int _i;
   9904 
   9905 		for (_i = 0; _i < 16; _i++) {
   9906 			BCM_UNPACK_U8(buf, var->s_ip6_addr[_i]);
   9907 		}
   9908 	}
   9909 	{
   9910 		int _i;
   9911 
   9912 		for (_i = 0; _i < 16; _i++) {
   9913 			BCM_UNPACK_U8(buf, var->mc_ip6_addr[_i]);
   9914 		}
   9915 	}
   9916 	BCM_UNPACK_U16(buf, var->vid);
   9917 	BCM_UNPACK_U32(buf, var->vrf);
   9918 	BCM_UNPACK_U32(buf, var->cos);
   9919 	BCM_UNPACK_U32(buf, var->ts);
   9920 	BCM_UNPACK_U32(buf, var->port_tgid);
   9921 	BCM_UNPACK_U32(buf, var->v);
   9922 	BCM_UNPACK_U32(buf, var->mod_id);
   9923 	BCM_UNPACK_U32(buf, var->group);
   9924 	BCM_UNPACK_U32(buf, var->flags);
   9925 	BCM_UNPACK_U32(buf, var->lookup_class);
   9926 	BCM_UNPACK_U32(buf, var->distribution_class);
   9927 	BCM_UNPACK_U32(buf, var->l3a_intf);
   9928 	BCM_UNPACK_U32(buf, var->rp_id);
   9929 	BCM_UNPACK_U32(buf, var->s_ip_mask);
   9930 	BCM_UNPACK_U32(buf, var->ing_intf);
   9931 	BCM_UNPACK_U32(buf, var->mc_ip_mask);
   9932 	{
   9933 		int _i;
   9934 
   9935 		for (_i = 0; _i < 16; _i++) {
   9936 			BCM_UNPACK_U8(buf, var->mc_ip6_mask[_i]);
   9937 		}
   9938 	}
   9939 	BCM_UNPACK_U32(buf, var->group_l2);
   9940 	BCM_UNPACK_U32(buf, var->stat_id);
   9941 	BCM_UNPACK_U32(buf, var->stat_pp_profile);
   9942 	{
   9943 		int _i;
   9944 
   9945 		for (_i = 0; _i < 16; _i++) {
   9946 			BCM_UNPACK_U8(buf, var->s_ip6_mask[_i]);
   9947 		}
   9948 	}
   9949 	BCM_UNPACK_U32(buf, var->priority);
   9950 	BCM_UNPACK_U32(buf, var->flow_handle);
   9951 	BCM_UNPACK_U32(buf, var->flow_option_handle);
   9952 	{
   9953 		int _i;
   9954 
   9955 		for (_i = 0; _i < 20; _i++) {
   9956 			BCM_UNPACK_U32(buf, var->logical_fields[_i].id);
   9957 			BCM_UNPACK_U32(buf, var->logical_fields[_i].value);
   9958 		}
   9959 	}
   9960 	BCM_UNPACK_U32(buf, var->num_logical_fields);
   9961 	return buf;
   9962 }
   9963 
   9964 uint8 *
   9965 _bcm_pack_ipmc_counters(uint8 *buf, bcm_ipmc_counters_t *var)
   9966 {
   9967 	{
   9968 		uint32 _u32;
   9969 
   9970 		_u32 = COMPILER_64_HI(var->rmca);
   9971 		BCM_PACK_U32(buf, _u32);
   9972 		_u32 = COMPILER_64_LO(var->rmca);
   9973 		BCM_PACK_U32(buf, _u32);
   9974 	}
   9975 	{
   9976 		uint32 _u32;
   9977 
   9978 		_u32 = COMPILER_64_HI(var->tmca);
   9979 		BCM_PACK_U32(buf, _u32);
   9980 		_u32 = COMPILER_64_LO(var->tmca);
   9981 		BCM_PACK_U32(buf, _u32);
   9982 	}
   9983 	{
   9984 		uint32 _u32;
   9985 
   9986 		_u32 = COMPILER_64_HI(var->imbp);
   9987 		BCM_PACK_U32(buf, _u32);
   9988 		_u32 = COMPILER_64_LO(var->imbp);
   9989 		BCM_PACK_U32(buf, _u32);
   9990 	}
   9991 	{
   9992 		uint32 _u32;
   9993 
   9994 		_u32 = COMPILER_64_HI(var->imrp);
   9995 		BCM_PACK_U32(buf, _u32);
   9996 		_u32 = COMPILER_64_LO(var->imrp);
   9997 		BCM_PACK_U32(buf, _u32);
   9998 	}
   9999 	{
  10000 		uint32 _u32;
  10001 
  10002 		_u32 = COMPILER_64_HI(var->rimdr);
  10003 		BCM_PACK_U32(buf, _u32);
  10004 		_u32 = COMPILER_64_LO(var->rimdr);
  10005 		BCM_PACK_U32(buf, _u32);
  10006 	}
  10007 	{
  10008 		uint32 _u32;
  10009 
  10010 		_u32 = COMPILER_64_HI(var->timdr);
  10011 		BCM_PACK_U32(buf, _u32);
  10012 		_u32 = COMPILER_64_LO(var->timdr);
  10013 		BCM_PACK_U32(buf, _u32);
  10014 	}
  10015 	return buf;
  10016 }
  10017 
  10018 uint8 *
  10019 _bcm_unpack_ipmc_counters(uint8 *buf, bcm_ipmc_counters_t *var)
  10020 {
  10021 	{
  10022 		uint32 _u32h, _u32l;
  10023 
  10024 		BCM_UNPACK_U32(buf, _u32h);
  10025 		BCM_UNPACK_U32(buf, _u32l);
  10026 		COMPILER_64_SET(var->rmca, _u32h, _u32l);
  10027 	}
  10028 	{
  10029 		uint32 _u32h, _u32l;
  10030 
  10031 		BCM_UNPACK_U32(buf, _u32h);
  10032 		BCM_UNPACK_U32(buf, _u32l);
  10033 		COMPILER_64_SET(var->tmca, _u32h, _u32l);
  10034 	}
  10035 	{
  10036 		uint32 _u32h, _u32l;
  10037 
  10038 		BCM_UNPACK_U32(buf, _u32h);
  10039 		BCM_UNPACK_U32(buf, _u32l);
  10040 		COMPILER_64_SET(var->imbp, _u32h, _u32l);
  10041 	}
  10042 	{
  10043 		uint32 _u32h, _u32l;
  10044 
  10045 		BCM_UNPACK_U32(buf, _u32h);
  10046 		BCM_UNPACK_U32(buf, _u32l);
  10047 		COMPILER_64_SET(var->imrp, _u32h, _u32l);
  10048 	}
  10049 	{
  10050 		uint32 _u32h, _u32l;
  10051 
  10052 		BCM_UNPACK_U32(buf, _u32h);
  10053 		BCM_UNPACK_U32(buf, _u32l);
  10054 		COMPILER_64_SET(var->rimdr, _u32h, _u32l);
  10055 	}
  10056 	{
  10057 		uint32 _u32h, _u32l;
  10058 
  10059 		BCM_UNPACK_U32(buf, _u32h);
  10060 		BCM_UNPACK_U32(buf, _u32l);
  10061 		COMPILER_64_SET(var->timdr, _u32h, _u32l);
  10062 	}
  10063 	return buf;
  10064 }
  10065 
  10066 uint8 *
  10067 _bcm_pack_ipmc_range(uint8 *buf, bcm_ipmc_range_t *var)
  10068 {
  10069 	BCM_PACK_U32(buf, var->flags);
  10070 	BCM_PACK_U32(buf, var->priority);
  10071 	BCM_PACK_U32(buf, var->mc_ip_addr);
  10072 	BCM_PACK_U32(buf, var->mc_ip_addr_mask);
  10073 	{
  10074 		int _i;
  10075 
  10076 		for (_i = 0; _i < 16; _i++) {
  10077 			BCM_PACK_U8(buf, var->mc_ip6_addr[_i]);
  10078 		}
  10079 	}
  10080 	{
  10081 		int _i;
  10082 
  10083 		for (_i = 0; _i < 16; _i++) {
  10084 			BCM_PACK_U8(buf, var->mc_ip6_addr_mask[_i]);
  10085 		}
  10086 	}
  10087 	BCM_PACK_U32(buf, var->vrf);
  10088 	BCM_PACK_U32(buf, var->vrf_mask);
  10089 	BCM_PACK_U32(buf, var->rp_id);
  10090 	return buf;
  10091 }
  10092 
  10093 uint8 *
  10094 _bcm_unpack_ipmc_range(uint8 *buf, bcm_ipmc_range_t *var)
  10095 {
  10096 	BCM_UNPACK_U32(buf, var->flags);
  10097 	BCM_UNPACK_U32(buf, var->priority);
  10098 	BCM_UNPACK_U32(buf, var->mc_ip_addr);
  10099 	BCM_UNPACK_U32(buf, var->mc_ip_addr_mask);
  10100 	{
  10101 		int _i;
  10102 
  10103 		for (_i = 0; _i < 16; _i++) {
  10104 			BCM_UNPACK_U8(buf, var->mc_ip6_addr[_i]);
  10105 		}
  10106 	}
  10107 	{
  10108 		int _i;
  10109 
  10110 		for (_i = 0; _i < 16; _i++) {
  10111 			BCM_UNPACK_U8(buf, var->mc_ip6_addr_mask[_i]);
  10112 		}
  10113 	}
  10114 	BCM_UNPACK_U32(buf, var->vrf);
  10115 	BCM_UNPACK_U32(buf, var->vrf_mask);
  10116 	BCM_UNPACK_U32(buf, var->rp_id);
  10117 	return buf;
  10118 }
  10119 
  10120 #endif	/* INCLUDE_L3 */
  10121 
  10122 uint8 *
  10123 _bcm_pack_ipsec_config(uint8 *buf, bcm_ipsec_config_t *var)
  10124 {
  10125 	BCM_PACK_U32(buf, var->num_of_ipsec_channels);
  10126 	BCM_PACK_U32(buf, var->num_of_bfd_channels);
  10127 	return buf;
  10128 }
  10129 
  10130 uint8 *
  10131 _bcm_unpack_ipsec_config(uint8 *buf, bcm_ipsec_config_t *var)
  10132 {
  10133 	BCM_UNPACK_U32(buf, var->num_of_ipsec_channels);
  10134 	BCM_UNPACK_U32(buf, var->num_of_bfd_channels);
  10135 	return buf;
  10136 }
  10137 
  10138 uint8 *
  10139 _bcm_pack_ipsec_sa_info(uint8 *buf, bcm_ipsec_sa_info_t *var)
  10140 {
  10141 	BCM_PACK_U32(buf, var->initial_seq_num);
  10142 	BCM_PACK_U32(buf, var->mtu);
  10143 	BCM_PACK_U8(buf, var->fragmentation_enable);
  10144 	BCM_PACK_U32(buf, var->encrypt_type);
  10145 	BCM_PACK_U32(buf, var->auth_type);
  10146 	BCM_PACK_U32(buf, var->sa_direction);
  10147 	BCM_PACK_U32(buf, var->spi);
  10148 	return buf;
  10149 }
  10150 
  10151 uint8 *
  10152 _bcm_unpack_ipsec_sa_info(uint8 *buf, bcm_ipsec_sa_info_t *var)
  10153 {
  10154 	BCM_UNPACK_U32(buf, var->initial_seq_num);
  10155 	BCM_UNPACK_U32(buf, var->mtu);
  10156 	BCM_UNPACK_U8(buf, var->fragmentation_enable);
  10157 	BCM_UNPACK_U32(buf, var->encrypt_type);
  10158 	BCM_UNPACK_U32(buf, var->auth_type);
  10159 	BCM_UNPACK_U32(buf, var->sa_direction);
  10160 	BCM_UNPACK_U32(buf, var->spi);
  10161 	return buf;
  10162 }
  10163 
  10164 uint8 *
  10165 _bcm_pack_ipsec_sa_keys(uint8 *buf, bcm_ipsec_sa_keys_t *var)
  10166 {
  10167 	{
  10168 		int _i;
  10169 
  10170 		for (_i = 0; _i < 8; _i++) {
  10171 			BCM_PACK_U32(buf, var->enc_key[_i]);
  10172 		}
  10173 	}
  10174 	{
  10175 		int _i;
  10176 
  10177 		for (_i = 0; _i < 8; _i++) {
  10178 			BCM_PACK_U32(buf, var->auth_key[_i]);
  10179 		}
  10180 	}
  10181 	return buf;
  10182 }
  10183 
  10184 uint8 *
  10185 _bcm_unpack_ipsec_sa_keys(uint8 *buf, bcm_ipsec_sa_keys_t *var)
  10186 {
  10187 	{
  10188 		int _i;
  10189 
  10190 		for (_i = 0; _i < 8; _i++) {
  10191 			BCM_UNPACK_U32(buf, var->enc_key[_i]);
  10192 		}
  10193 	}
  10194 	{
  10195 		int _i;
  10196 
  10197 		for (_i = 0; _i < 8; _i++) {
  10198 			BCM_UNPACK_U32(buf, var->auth_key[_i]);
  10199 		}
  10200 	}
  10201 	return buf;
  10202 }
  10203 
  10204 uint8 *
  10205 _bcm_pack_ipsec_tunnel_info(uint8 *buf, bcm_ipsec_tunnel_info_t *var)
  10206 {
  10207 	BCM_PACK_U32(buf, var->context_id);
  10208 	BCM_PACK_U32(buf, var->local_ip.ipv4_addr);
  10209 	{
  10210 		int _i;
  10211 
  10212 		for (_i = 0; _i < 16; _i++) {
  10213 			BCM_PACK_U8(buf, var->local_ip.ipv6_addr[_i]);
  10214 		}
  10215 	}
  10216 	BCM_PACK_U32(buf, var->remote_ip.ipv4_addr);
  10217 	{
  10218 		int _i;
  10219 
  10220 		for (_i = 0; _i < 16; _i++) {
  10221 			BCM_PACK_U8(buf, var->remote_ip.ipv6_addr[_i]);
  10222 		}
  10223 	}
  10224 	BCM_PACK_U32(buf, var->protocol);
  10225 	BCM_PACK_U8(buf, var->ttl);
  10226 	BCM_PACK_U8(buf, var->dscp);
  10227 	BCM_PACK_U32(buf, var->port);
  10228 	return buf;
  10229 }
  10230 
  10231 uint8 *
  10232 _bcm_unpack_ipsec_tunnel_info(uint8 *buf, bcm_ipsec_tunnel_info_t *var)
  10233 {
  10234 	BCM_UNPACK_U32(buf, var->context_id);
  10235 	BCM_UNPACK_U32(buf, var->local_ip.ipv4_addr);
  10236 	{
  10237 		int _i;
  10238 
  10239 		for (_i = 0; _i < 16; _i++) {
  10240 			BCM_UNPACK_U8(buf, var->local_ip.ipv6_addr[_i]);
  10241 		}
  10242 	}
  10243 	BCM_UNPACK_U32(buf, var->remote_ip.ipv4_addr);
  10244 	{
  10245 		int _i;
  10246 
  10247 		for (_i = 0; _i < 16; _i++) {
  10248 			BCM_UNPACK_U8(buf, var->remote_ip.ipv6_addr[_i]);
  10249 		}
  10250 	}
  10251 	BCM_UNPACK_U32(buf, var->protocol);
  10252 	BCM_UNPACK_U8(buf, var->ttl);
  10253 	BCM_UNPACK_U8(buf, var->dscp);
  10254 	BCM_UNPACK_U32(buf, var->port);
  10255 	return buf;
  10256 }
  10257 
  10258 uint8 *
  10259 _bcm_pack_l2_addr_distribute(uint8 *buf, bcm_l2_addr_distribute_t *var)
  10260 {
  10261 	BCM_PACK_U32(buf, var->flags);
  10262 	BCM_PACK_U16(buf, var->vid);
  10263 	return buf;
  10264 }
  10265 
  10266 uint8 *
  10267 _bcm_unpack_l2_addr_distribute(uint8 *buf, bcm_l2_addr_distribute_t *var)
  10268 {
  10269 	BCM_UNPACK_U32(buf, var->flags);
  10270 	BCM_UNPACK_U16(buf, var->vid);
  10271 	return buf;
  10272 }
  10273 
  10274 uint8 *
  10275 _bcm_pack_l2_addr(uint8 *buf, bcm_l2_addr_t *var)
  10276 {
  10277 	BCM_PACK_U32(buf, var->flags);
  10278 	BCM_PACK_U32(buf, var->flags2);
  10279 	BCM_PACK_U32(buf, var->station_flags);
  10280 	{
  10281 		int _i;
  10282 
  10283 		for (_i = 0; _i < 6; _i++) {
  10284 			BCM_PACK_U8(buf, var->mac[_i]);
  10285 		}
  10286 	}
  10287 	BCM_PACK_U16(buf, var->vid);
  10288 	BCM_PACK_U32(buf, var->port);
  10289 	BCM_PACK_U32(buf, var->modid);
  10290 	BCM_PACK_U32(buf, var->tgid);
  10291 	BCM_PACK_U32(buf, var->cos_dst);
  10292 	BCM_PACK_U32(buf, var->cos_src);
  10293 	BCM_PACK_U32(buf, var->l2mc_group);
  10294 	BCM_PACK_U32(buf, var->egress_if);
  10295 	BCM_PACK_U32(buf, var->l3mc_group);
  10296 	buf = _bcm_pack_pbmp(buf, &(*var).block_bitmap);
  10297 	BCM_PACK_U32(buf, var->auth);
  10298 	BCM_PACK_U32(buf, var->group);
  10299 	BCM_PACK_U32(buf, var->distribution_class);
  10300 	BCM_PACK_U32(buf, var->encap_id);
  10301 	BCM_PACK_U32(buf, var->age_state);
  10302 	BCM_PACK_U32(buf, var->flow_handle);
  10303 	BCM_PACK_U32(buf, var->flow_option_handle);
  10304 	{
  10305 		int _i;
  10306 
  10307 		for (_i = 0; _i < 20; _i++) {
  10308 			BCM_PACK_U32(buf, var->logical_fields[_i].id);
  10309 			BCM_PACK_U32(buf, var->logical_fields[_i].value);
  10310 		}
  10311 	}
  10312 	BCM_PACK_U32(buf, var->num_of_fields);
  10313 	buf = _bcm_pack_pbmp(buf, &(*var).sa_source_filter_pbmp);
  10314 	BCM_PACK_U32(buf, var->tsn_flowset);
  10315 	BCM_PACK_U32(buf, var->sr_flowset);
  10316 	BCM_PACK_U32(buf, var->policer_id);
  10317 	BCM_PACK_U32(buf, var->taf_gate_primap);
  10318 	BCM_PACK_U32(buf, var->stat_id);
  10319 	BCM_PACK_U32(buf, var->stat_pp_profile);
  10320 	return buf;
  10321 }
  10322 
  10323 uint8 *
  10324 _bcm_unpack_l2_addr(uint8 *buf, bcm_l2_addr_t *var)
  10325 {
  10326 	BCM_UNPACK_U32(buf, var->flags);
  10327 	BCM_UNPACK_U32(buf, var->flags2);
  10328 	BCM_UNPACK_U32(buf, var->station_flags);
  10329 	{
  10330 		int _i;
  10331 
  10332 		for (_i = 0; _i < 6; _i++) {
  10333 			BCM_UNPACK_U8(buf, var->mac[_i]);
  10334 		}
  10335 	}
  10336 	BCM_UNPACK_U16(buf, var->vid);
  10337 	BCM_UNPACK_U32(buf, var->port);
  10338 	BCM_UNPACK_U32(buf, var->modid);
  10339 	BCM_UNPACK_U32(buf, var->tgid);
  10340 	BCM_UNPACK_U32(buf, var->cos_dst);
  10341 	BCM_UNPACK_U32(buf, var->cos_src);
  10342 	BCM_UNPACK_U32(buf, var->l2mc_group);
  10343 	BCM_UNPACK_U32(buf, var->egress_if);
  10344 	BCM_UNPACK_U32(buf, var->l3mc_group);
  10345 	buf = _bcm_unpack_pbmp(buf, &(*var).block_bitmap);
  10346 	BCM_UNPACK_U32(buf, var->auth);
  10347 	BCM_UNPACK_U32(buf, var->group);
  10348 	BCM_UNPACK_U32(buf, var->distribution_class);
  10349 	BCM_UNPACK_U32(buf, var->encap_id);
  10350 	BCM_UNPACK_U32(buf, var->age_state);
  10351 	BCM_UNPACK_U32(buf, var->flow_handle);
  10352 	BCM_UNPACK_U32(buf, var->flow_option_handle);
  10353 	{
  10354 		int _i;
  10355 
  10356 		for (_i = 0; _i < 20; _i++) {
  10357 			BCM_UNPACK_U32(buf, var->logical_fields[_i].id);
  10358 			BCM_UNPACK_U32(buf, var->logical_fields[_i].value);
  10359 		}
  10360 	}
  10361 	BCM_UNPACK_U32(buf, var->num_of_fields);
  10362 	buf = _bcm_unpack_pbmp(buf, &(*var).sa_source_filter_pbmp);
  10363 	BCM_UNPACK_U32(buf, var->tsn_flowset);
  10364 	BCM_UNPACK_U32(buf, var->sr_flowset);
  10365 	BCM_UNPACK_U32(buf, var->policer_id);
  10366 	BCM_UNPACK_U32(buf, var->taf_gate_primap);
  10367 	BCM_UNPACK_U32(buf, var->stat_id);
  10368 	BCM_UNPACK_U32(buf, var->stat_pp_profile);
  10369 	return buf;
  10370 }
  10371 
  10372 uint8 *
  10373 _bcm_pack_l2_auth_addr(uint8 *buf, bcm_l2_auth_addr_t *var)
  10374 {
  10375 	BCM_PACK_U32(buf, var->flags);
  10376 	{
  10377 		int _i;
  10378 
  10379 		for (_i = 0; _i < 6; _i++) {
  10380 			BCM_PACK_U8(buf, var->sa_mac[_i]);
  10381 		}
  10382 	}
  10383 	BCM_PACK_U16(buf, var->vlan);
  10384 	BCM_PACK_U32(buf, var->src_port);
  10385 	return buf;
  10386 }
  10387 
  10388 uint8 *
  10389 _bcm_unpack_l2_auth_addr(uint8 *buf, bcm_l2_auth_addr_t *var)
  10390 {
  10391 	BCM_UNPACK_U32(buf, var->flags);
  10392 	{
  10393 		int _i;
  10394 
  10395 		for (_i = 0; _i < 6; _i++) {
  10396 			BCM_UNPACK_U8(buf, var->sa_mac[_i]);
  10397 		}
  10398 	}
  10399 	BCM_UNPACK_U16(buf, var->vlan);
  10400 	BCM_UNPACK_U32(buf, var->src_port);
  10401 	return buf;
  10402 }
  10403 
  10404 uint8 *
  10405 _bcm_pack_l2_cache_addr(uint8 *buf, bcm_l2_cache_addr_t *var)
  10406 {
  10407 	BCM_PACK_U32(buf, var->flags);
  10408 	BCM_PACK_U32(buf, var->station_flags);
  10409 	{
  10410 		int _i;
  10411 
  10412 		for (_i = 0; _i < 6; _i++) {
  10413 			BCM_PACK_U8(buf, var->mac[_i]);
  10414 		}
  10415 	}
  10416 	{
  10417 		int _i;
  10418 
  10419 		for (_i = 0; _i < 6; _i++) {
  10420 			BCM_PACK_U8(buf, var->mac_mask[_i]);
  10421 		}
  10422 	}
  10423 	BCM_PACK_U16(buf, var->vlan);
  10424 	BCM_PACK_U16(buf, var->vlan_mask);
  10425 	BCM_PACK_U32(buf, var->src_port);
  10426 	BCM_PACK_U32(buf, var->src_port_mask);
  10427 	BCM_PACK_U32(buf, var->dest_modid);
  10428 	BCM_PACK_U32(buf, var->dest_port);
  10429 	BCM_PACK_U32(buf, var->dest_trunk);
  10430 	BCM_PACK_U32(buf, var->prio);
  10431 	buf = _bcm_pack_pbmp(buf, &(*var).dest_ports);
  10432 	BCM_PACK_U32(buf, var->lookup_class);
  10433 	BCM_PACK_U8(buf, var->subtype);
  10434 	BCM_PACK_U32(buf, var->encap_id);
  10435 	BCM_PACK_U32(buf, var->group);
  10436 	BCM_PACK_U16(buf, var->ethertype);
  10437 	BCM_PACK_U16(buf, var->ethertype_mask);
  10438 	return buf;
  10439 }
  10440 
  10441 uint8 *
  10442 _bcm_unpack_l2_cache_addr(uint8 *buf, bcm_l2_cache_addr_t *var)
  10443 {
  10444 	BCM_UNPACK_U32(buf, var->flags);
  10445 	BCM_UNPACK_U32(buf, var->station_flags);
  10446 	{
  10447 		int _i;
  10448 
  10449 		for (_i = 0; _i < 6; _i++) {
  10450 			BCM_UNPACK_U8(buf, var->mac[_i]);
  10451 		}
  10452 	}
  10453 	{
  10454 		int _i;
  10455 
  10456 		for (_i = 0; _i < 6; _i++) {
  10457 			BCM_UNPACK_U8(buf, var->mac_mask[_i]);
  10458 		}
  10459 	}
  10460 	BCM_UNPACK_U16(buf, var->vlan);
  10461 	BCM_UNPACK_U16(buf, var->vlan_mask);
  10462 	BCM_UNPACK_U32(buf, var->src_port);
  10463 	BCM_UNPACK_U32(buf, var->src_port_mask);
  10464 	BCM_UNPACK_U32(buf, var->dest_modid);
  10465 	BCM_UNPACK_U32(buf, var->dest_port);
  10466 	BCM_UNPACK_U32(buf, var->dest_trunk);
  10467 	BCM_UNPACK_U32(buf, var->prio);
  10468 	buf = _bcm_unpack_pbmp(buf, &(*var).dest_ports);
  10469 	BCM_UNPACK_U32(buf, var->lookup_class);
  10470 	BCM_UNPACK_U8(buf, var->subtype);
  10471 	BCM_UNPACK_U32(buf, var->encap_id);
  10472 	BCM_UNPACK_U32(buf, var->group);
  10473 	BCM_UNPACK_U16(buf, var->ethertype);
  10474 	BCM_UNPACK_U16(buf, var->ethertype_mask);
  10475 	return buf;
  10476 }
  10477 
  10478 #ifdef	INCLUDE_L3
  10479 
  10480 uint8 *
  10481 _bcm_pack_l2_change_fields(uint8 *buf, bcm_l2_change_fields_t *var)
  10482 {
  10483 	BCM_PACK_U32(buf, var->flags);
  10484 	{
  10485 		int _i;
  10486 
  10487 		for (_i = 0; _i < 6; _i++) {
  10488 			BCM_PACK_U8(buf, var->macda[_i]);
  10489 		}
  10490 	}
  10491 	{
  10492 		int _i;
  10493 
  10494 		for (_i = 0; _i < 6; _i++) {
  10495 			BCM_PACK_U8(buf, var->macsa[_i]);
  10496 		}
  10497 	}
  10498 	BCM_PACK_U8(buf, var->pri);
  10499 	BCM_PACK_U8(buf, var->cfi);
  10500 	BCM_PACK_U16(buf, var->tpid);
  10501 	BCM_PACK_U16(buf, var->vlan);
  10502 	BCM_PACK_U32(buf, var->change_l2_fields_class_id);
  10503 	BCM_PACK_U32(buf, var->dvp);
  10504 	return buf;
  10505 }
  10506 
  10507 uint8 *
  10508 _bcm_unpack_l2_change_fields(uint8 *buf, bcm_l2_change_fields_t *var)
  10509 {
  10510 	BCM_UNPACK_U32(buf, var->flags);
  10511 	{
  10512 		int _i;
  10513 
  10514 		for (_i = 0; _i < 6; _i++) {
  10515 			BCM_UNPACK_U8(buf, var->macda[_i]);
  10516 		}
  10517 	}
  10518 	{
  10519 		int _i;
  10520 
  10521 		for (_i = 0; _i < 6; _i++) {
  10522 			BCM_UNPACK_U8(buf, var->macsa[_i]);
  10523 		}
  10524 	}
  10525 	BCM_UNPACK_U8(buf, var->pri);
  10526 	BCM_UNPACK_U8(buf, var->cfi);
  10527 	BCM_UNPACK_U16(buf, var->tpid);
  10528 	BCM_UNPACK_U16(buf, var->vlan);
  10529 	BCM_UNPACK_U32(buf, var->change_l2_fields_class_id);
  10530 	BCM_UNPACK_U32(buf, var->dvp);
  10531 	return buf;
  10532 }
  10533 
  10534 #endif	/* INCLUDE_L3 */
  10535 
  10536 uint8 *
  10537 _bcm_pack_l2_egress(uint8 *buf, bcm_l2_egress_t *var)
  10538 {
  10539 	BCM_PACK_U32(buf, var->flags);
  10540 	{
  10541 		int _i;
  10542 
  10543 		for (_i = 0; _i < 6; _i++) {
  10544 			BCM_PACK_U8(buf, var->dest_mac[_i]);
  10545 		}
  10546 	}
  10547 	{
  10548 		int _i;
  10549 
  10550 		for (_i = 0; _i < 6; _i++) {
  10551 			BCM_PACK_U8(buf, var->src_mac[_i]);
  10552 		}
  10553 	}
  10554 	BCM_PACK_U16(buf, var->outer_vlan);
  10555 	BCM_PACK_U16(buf, var->inner_vlan);
  10556 	BCM_PACK_U16(buf, var->ethertype);
  10557 	BCM_PACK_U32(buf, var->dest_port);
  10558 	BCM_PACK_U32(buf, var->encap_id);
  10559 	BCM_PACK_U16(buf, var->outer_tpid);
  10560 	BCM_PACK_U8(buf, var->outer_prio);
  10561 	BCM_PACK_U16(buf, var->inner_tpid);
  10562 	BCM_PACK_U32(buf, var->l3_intf);
  10563 	BCM_PACK_U32(buf, var->vlan_qos_map_id);
  10564 	BCM_PACK_U32(buf, var->mpls_extended_label_value);
  10565 	return buf;
  10566 }
  10567 
  10568 uint8 *
  10569 _bcm_unpack_l2_egress(uint8 *buf, bcm_l2_egress_t *var)
  10570 {
  10571 	BCM_UNPACK_U32(buf, var->flags);
  10572 	{
  10573 		int _i;
  10574 
  10575 		for (_i = 0; _i < 6; _i++) {
  10576 			BCM_UNPACK_U8(buf, var->dest_mac[_i]);
  10577 		}
  10578 	}
  10579 	{
  10580 		int _i;
  10581 
  10582 		for (_i = 0; _i < 6; _i++) {
  10583 			BCM_UNPACK_U8(buf, var->src_mac[_i]);
  10584 		}
  10585 	}
  10586 	BCM_UNPACK_U16(buf, var->outer_vlan);
  10587 	BCM_UNPACK_U16(buf, var->inner_vlan);
  10588 	BCM_UNPACK_U16(buf, var->ethertype);
  10589 	BCM_UNPACK_U32(buf, var->dest_port);
  10590 	BCM_UNPACK_U32(buf, var->encap_id);
  10591 	BCM_UNPACK_U16(buf, var->outer_tpid);
  10592 	BCM_UNPACK_U8(buf, var->outer_prio);
  10593 	BCM_UNPACK_U16(buf, var->inner_tpid);
  10594 	BCM_UNPACK_U32(buf, var->l3_intf);
  10595 	BCM_UNPACK_U32(buf, var->vlan_qos_map_id);
  10596 	BCM_UNPACK_U32(buf, var->mpls_extended_label_value);
  10597 	return buf;
  10598 }
  10599 
  10600 uint8 *
  10601 _bcm_pack_l2_gport_forward_info(uint8 *buf, bcm_l2_gport_forward_info_t *var)
  10602 {
  10603 	BCM_PACK_U32(buf, var->phy_gport);
  10604 	BCM_PACK_U32(buf, var->encap_id);
  10605 	return buf;
  10606 }
  10607 
  10608 uint8 *
  10609 _bcm_unpack_l2_gport_forward_info(uint8 *buf, bcm_l2_gport_forward_info_t *var)
  10610 {
  10611 	BCM_UNPACK_U32(buf, var->phy_gport);
  10612 	BCM_UNPACK_U32(buf, var->encap_id);
  10613 	return buf;
  10614 }
  10615 
  10616 uint8 *
  10617 _bcm_pack_l2_learn_limit(uint8 *buf, bcm_l2_learn_limit_t *var)
  10618 {
  10619 	BCM_PACK_U32(buf, var->flags);
  10620 	BCM_PACK_U16(buf, var->vlan);
  10621 	BCM_PACK_U32(buf, var->port);
  10622 	BCM_PACK_U32(buf, var->trunk);
  10623 	BCM_PACK_U32(buf, var->tunnel_id);
  10624 	BCM_PACK_U32(buf, var->limit);
  10625 	return buf;
  10626 }
  10627 
  10628 uint8 *
  10629 _bcm_unpack_l2_learn_limit(uint8 *buf, bcm_l2_learn_limit_t *var)
  10630 {
  10631 	BCM_UNPACK_U32(buf, var->flags);
  10632 	BCM_UNPACK_U16(buf, var->vlan);
  10633 	BCM_UNPACK_U32(buf, var->port);
  10634 	BCM_UNPACK_U32(buf, var->trunk);
  10635 	BCM_UNPACK_U32(buf, var->tunnel_id);
  10636 	BCM_UNPACK_U32(buf, var->limit);
  10637 	return buf;
  10638 }
  10639 
  10640 uint8 *
  10641 _bcm_pack_l2_learn_msgs_config(uint8 *buf, bcm_l2_learn_msgs_config_t *var)
  10642 {
  10643 	BCM_PACK_U32(buf, var->flags);
  10644 	BCM_PACK_U32(buf, var->dest_port);
  10645 	BCM_PACK_U32(buf, var->dest_group);
  10646 	BCM_PACK_U16(buf, var->vlan);
  10647 	BCM_PACK_U16(buf, var->tpid);
  10648 	BCM_PACK_U16(buf, var->vlan_prio);
  10649 	BCM_PACK_U16(buf, var->ether_type);
  10650 	{
  10651 		int _i;
  10652 
  10653 		for (_i = 0; _i < 6; _i++) {
  10654 			BCM_PACK_U8(buf, var->src_mac_addr[_i]);
  10655 		}
  10656 	}
  10657 	{
  10658 		int _i;
  10659 
  10660 		for (_i = 0; _i < 6; _i++) {
  10661 			BCM_PACK_U8(buf, var->dst_mac_addr[_i]);
  10662 		}
  10663 	}
  10664 	BCM_PACK_U8(buf, var->priority);
  10665 	BCM_PACK_U8(buf, var->color);
  10666 	return buf;
  10667 }
  10668 
  10669 uint8 *
  10670 _bcm_unpack_l2_learn_msgs_config(uint8 *buf, bcm_l2_learn_msgs_config_t *var)
  10671 {
  10672 	BCM_UNPACK_U32(buf, var->flags);
  10673 	BCM_UNPACK_U32(buf, var->dest_port);
  10674 	BCM_UNPACK_U32(buf, var->dest_group);
  10675 	BCM_UNPACK_U16(buf, var->vlan);
  10676 	BCM_UNPACK_U16(buf, var->tpid);
  10677 	BCM_UNPACK_U16(buf, var->vlan_prio);
  10678 	BCM_UNPACK_U16(buf, var->ether_type);
  10679 	{
  10680 		int _i;
  10681 
  10682 		for (_i = 0; _i < 6; _i++) {
  10683 			BCM_UNPACK_U8(buf, var->src_mac_addr[_i]);
  10684 		}
  10685 	}
  10686 	{
  10687 		int _i;
  10688 
  10689 		for (_i = 0; _i < 6; _i++) {
  10690 			BCM_UNPACK_U8(buf, var->dst_mac_addr[_i]);
  10691 		}
  10692 	}
  10693 	BCM_UNPACK_U8(buf, var->priority);
  10694 	BCM_UNPACK_U8(buf, var->color);
  10695 	return buf;
  10696 }
  10697 
  10698 uint8 *
  10699 _bcm_pack_l2_learn_stat(uint8 *buf, bcm_l2_learn_stat_t *var)
  10700 {
  10701 	BCM_PACK_U32(buf, var->type);
  10702 	BCM_PACK_U32(buf, var->value);
  10703 	return buf;
  10704 }
  10705 
  10706 uint8 *
  10707 _bcm_unpack_l2_learn_stat(uint8 *buf, bcm_l2_learn_stat_t *var)
  10708 {
  10709 	BCM_UNPACK_U32(buf, var->type);
  10710 	BCM_UNPACK_U32(buf, var->value);
  10711 	return buf;
  10712 }
  10713 
  10714 uint8 *
  10715 _bcm_pack_l2_mac_port(uint8 *buf, bcm_l2_mac_port_t *var)
  10716 {
  10717 	BCM_PACK_U32(buf, var->flags);
  10718 	{
  10719 		int _i;
  10720 
  10721 		for (_i = 0; _i < 6; _i++) {
  10722 			BCM_PACK_U8(buf, var->mac[_i]);
  10723 		}
  10724 	}
  10725 	BCM_PACK_U32(buf, var->port);
  10726 	BCM_PACK_U32(buf, var->mac_port_id);
  10727 	return buf;
  10728 }
  10729 
  10730 uint8 *
  10731 _bcm_unpack_l2_mac_port(uint8 *buf, bcm_l2_mac_port_t *var)
  10732 {
  10733 	BCM_UNPACK_U32(buf, var->flags);
  10734 	{
  10735 		int _i;
  10736 
  10737 		for (_i = 0; _i < 6; _i++) {
  10738 			BCM_UNPACK_U8(buf, var->mac[_i]);
  10739 		}
  10740 	}
  10741 	BCM_UNPACK_U32(buf, var->port);
  10742 	BCM_UNPACK_U32(buf, var->mac_port_id);
  10743 	return buf;
  10744 }
  10745 
  10746 uint8 *
  10747 _bcm_pack_l2_ring(uint8 *buf, bcm_l2_ring_t *var)
  10748 {
  10749 	BCM_PACK_U32(buf, var->flags);
  10750 	{
  10751 		int _i;
  10752 
  10753 		for (_i = 0; _i < 128; _i++) {
  10754 			BCM_PACK_U32(buf, var->vlan_vector[_i]);
  10755 		}
  10756 	}
  10757 	BCM_PACK_U32(buf, var->port0);
  10758 	BCM_PACK_U32(buf, var->port1);
  10759 	{
  10760 		int _i;
  10761 
  10762 		for (_i = 0; _i < 128; _i++) {
  10763 			BCM_PACK_U32(buf, var->vpn_vector[_i]);
  10764 		}
  10765 	}
  10766 	return buf;
  10767 }
  10768 
  10769 uint8 *
  10770 _bcm_unpack_l2_ring(uint8 *buf, bcm_l2_ring_t *var)
  10771 {
  10772 	BCM_UNPACK_U32(buf, var->flags);
  10773 	{
  10774 		int _i;
  10775 
  10776 		for (_i = 0; _i < 128; _i++) {
  10777 			BCM_UNPACK_U32(buf, var->vlan_vector[_i]);
  10778 		}
  10779 	}
  10780 	BCM_UNPACK_U32(buf, var->port0);
  10781 	BCM_UNPACK_U32(buf, var->port1);
  10782 	{
  10783 		int _i;
  10784 
  10785 		for (_i = 0; _i < 128; _i++) {
  10786 			BCM_UNPACK_U32(buf, var->vpn_vector[_i]);
  10787 		}
  10788 	}
  10789 	return buf;
  10790 }
  10791 
  10792 uint8 *
  10793 _bcm_pack_l2_station(uint8 *buf, bcm_l2_station_t *var)
  10794 {
  10795 	BCM_PACK_U32(buf, var->flags);
  10796 	BCM_PACK_U32(buf, var->priority);
  10797 	{
  10798 		int _i;
  10799 
  10800 		for (_i = 0; _i < 6; _i++) {
  10801 			BCM_PACK_U8(buf, var->dst_mac[_i]);
  10802 		}
  10803 	}
  10804 	{
  10805 		int _i;
  10806 
  10807 		for (_i = 0; _i < 6; _i++) {
  10808 			BCM_PACK_U8(buf, var->dst_mac_mask[_i]);
  10809 		}
  10810 	}
  10811 	BCM_PACK_U16(buf, var->vlan);
  10812 	BCM_PACK_U16(buf, var->vlan_mask);
  10813 	BCM_PACK_U32(buf, var->src_port);
  10814 	BCM_PACK_U32(buf, var->src_port_mask);
  10815 	BCM_PACK_U32(buf, var->taf_gate_primap);
  10816 	return buf;
  10817 }
  10818 
  10819 uint8 *
  10820 _bcm_unpack_l2_station(uint8 *buf, bcm_l2_station_t *var)
  10821 {
  10822 	BCM_UNPACK_U32(buf, var->flags);
  10823 	BCM_UNPACK_U32(buf, var->priority);
  10824 	{
  10825 		int _i;
  10826 
  10827 		for (_i = 0; _i < 6; _i++) {
  10828 			BCM_UNPACK_U8(buf, var->dst_mac[_i]);
  10829 		}
  10830 	}
  10831 	{
  10832 		int _i;
  10833 
  10834 		for (_i = 0; _i < 6; _i++) {
  10835 			BCM_UNPACK_U8(buf, var->dst_mac_mask[_i]);
  10836 		}
  10837 	}
  10838 	BCM_UNPACK_U16(buf, var->vlan);
  10839 	BCM_UNPACK_U16(buf, var->vlan_mask);
  10840 	BCM_UNPACK_U32(buf, var->src_port);
  10841 	BCM_UNPACK_U32(buf, var->src_port_mask);
  10842 	BCM_UNPACK_U32(buf, var->taf_gate_primap);
  10843 	return buf;
  10844 }
  10845 
  10846 uint8 *
  10847 _bcm_pack_l2cp_profile_info(uint8 *buf, bcm_l2cp_profile_info_t *var)
  10848 {
  10849 	BCM_PACK_U32(buf, var->nof_entries);
  10850 	{
  10851 		int _i;
  10852 
  10853 		for (_i = 0; _i < 64; _i++) {
  10854 			{
  10855 				int _j;
  10856 
  10857 				for (_j = 0; _j < 6; _j++) {
  10858 					BCM_PACK_U8(buf, var->mac_add[_i][_j]);
  10859 				}
  10860 			}
  10861 		}
  10862 	}
  10863 	return buf;
  10864 }
  10865 
  10866 uint8 *
  10867 _bcm_unpack_l2cp_profile_info(uint8 *buf, bcm_l2cp_profile_info_t *var)
  10868 {
  10869 	BCM_UNPACK_U32(buf, var->nof_entries);
  10870 	{
  10871 		int _i;
  10872 
  10873 		for (_i = 0; _i < 64; _i++) {
  10874 			{
  10875 				int _j;
  10876 
  10877 				for (_j = 0; _j < 6; _j++) {
  10878 					BCM_UNPACK_U8(buf, var->mac_add[_i][_j]);
  10879 				}
  10880 			}
  10881 		}
  10882 	}
  10883 	return buf;
  10884 }
  10885 
  10886 #ifdef	INCLUDE_L3
  10887 
  10888 uint8 *
  10889 _bcm_pack_l2gre_port(uint8 *buf, bcm_l2gre_port_t *var)
  10890 {
  10891 	BCM_PACK_U32(buf, var->l2gre_port_id);
  10892 	BCM_PACK_U32(buf, var->flags);
  10893 	BCM_PACK_U32(buf, var->if_class);
  10894 	BCM_PACK_U16(buf, var->int_pri);
  10895 	BCM_PACK_U8(buf, var->pkt_pri);
  10896 	BCM_PACK_U8(buf, var->pkt_cfi);
  10897 	BCM_PACK_U16(buf, var->egress_service_tpid);
  10898 	BCM_PACK_U16(buf, var->egress_service_vlan);
  10899 	BCM_PACK_U16(buf, var->mtu);
  10900 	BCM_PACK_U32(buf, var->match_port);
  10901 	BCM_PACK_U32(buf, var->criteria);
  10902 	BCM_PACK_U16(buf, var->match_vlan);
  10903 	BCM_PACK_U16(buf, var->match_inner_vlan);
  10904 	BCM_PACK_U32(buf, var->egress_tunnel_id);
  10905 	BCM_PACK_U32(buf, var->match_tunnel_id);
  10906 	BCM_PACK_U32(buf, var->egress_if);
  10907 	BCM_PACK_U32(buf, var->network_group_id);
  10908 	return buf;
  10909 }
  10910 
  10911 uint8 *
  10912 _bcm_unpack_l2gre_port(uint8 *buf, bcm_l2gre_port_t *var)
  10913 {
  10914 	BCM_UNPACK_U32(buf, var->l2gre_port_id);
  10915 	BCM_UNPACK_U32(buf, var->flags);
  10916 	BCM_UNPACK_U32(buf, var->if_class);
  10917 	BCM_UNPACK_U16(buf, var->int_pri);
  10918 	BCM_UNPACK_U8(buf, var->pkt_pri);
  10919 	BCM_UNPACK_U8(buf, var->pkt_cfi);
  10920 	BCM_UNPACK_U16(buf, var->egress_service_tpid);
  10921 	BCM_UNPACK_U16(buf, var->egress_service_vlan);
  10922 	BCM_UNPACK_U16(buf, var->mtu);
  10923 	BCM_UNPACK_U32(buf, var->match_port);
  10924 	BCM_UNPACK_U32(buf, var->criteria);
  10925 	BCM_UNPACK_U16(buf, var->match_vlan);
  10926 	BCM_UNPACK_U16(buf, var->match_inner_vlan);
  10927 	BCM_UNPACK_U32(buf, var->egress_tunnel_id);
  10928 	BCM_UNPACK_U32(buf, var->match_tunnel_id);
  10929 	BCM_UNPACK_U32(buf, var->egress_if);
  10930 	BCM_UNPACK_U32(buf, var->network_group_id);
  10931 	return buf;
  10932 }
  10933 
  10934 uint8 *
  10935 _bcm_pack_l2gre_vpn_config(uint8 *buf, bcm_l2gre_vpn_config_t *var)
  10936 {
  10937 	BCM_PACK_U32(buf, var->flags);
  10938 	BCM_PACK_U16(buf, var->vpn);
  10939 	BCM_PACK_U32(buf, var->vpnid);
  10940 	BCM_PACK_U8(buf, var->pkt_pri);
  10941 	BCM_PACK_U8(buf, var->pkt_cfi);
  10942 	BCM_PACK_U16(buf, var->egress_service_tpid);
  10943 	BCM_PACK_U16(buf, var->egress_service_vlan);
  10944 	BCM_PACK_U32(buf, var->broadcast_group);
  10945 	BCM_PACK_U32(buf, var->unknown_unicast_group);
  10946 	BCM_PACK_U32(buf, var->unknown_multicast_group);
  10947 	BCM_PACK_U32(buf, var->match_port_class);
  10948 	return buf;
  10949 }
  10950 
  10951 uint8 *
  10952 _bcm_unpack_l2gre_vpn_config(uint8 *buf, bcm_l2gre_vpn_config_t *var)
  10953 {
  10954 	BCM_UNPACK_U32(buf, var->flags);
  10955 	BCM_UNPACK_U16(buf, var->vpn);
  10956 	BCM_UNPACK_U32(buf, var->vpnid);
  10957 	BCM_UNPACK_U8(buf, var->pkt_pri);
  10958 	BCM_UNPACK_U8(buf, var->pkt_cfi);
  10959 	BCM_UNPACK_U16(buf, var->egress_service_tpid);
  10960 	BCM_UNPACK_U16(buf, var->egress_service_vlan);
  10961 	BCM_UNPACK_U32(buf, var->broadcast_group);
  10962 	BCM_UNPACK_U32(buf, var->unknown_unicast_group);
  10963 	BCM_UNPACK_U32(buf, var->unknown_multicast_group);
  10964 	BCM_UNPACK_U32(buf, var->match_port_class);
  10965 	return buf;
  10966 }
  10967 
  10968 uint8 *
  10969 _bcm_pack_l3_ecmp_dlb_mon_cfg(uint8 *buf, bcm_l3_ecmp_dlb_mon_cfg_t *var)
  10970 {
  10971 	BCM_PACK_U32(buf, var->sample_rate);
  10972 	BCM_PACK_U32(buf, var->action);
  10973 	BCM_PACK_U32(buf, var->enable);
  10974 	return buf;
  10975 }
  10976 
  10977 uint8 *
  10978 _bcm_unpack_l3_ecmp_dlb_mon_cfg(uint8 *buf, bcm_l3_ecmp_dlb_mon_cfg_t *var)
  10979 {
  10980 	BCM_UNPACK_U32(buf, var->sample_rate);
  10981 	BCM_UNPACK_U32(buf, var->action);
  10982 	BCM_UNPACK_U32(buf, var->enable);
  10983 	return buf;
  10984 }
  10985 
  10986 uint8 *
  10987 _bcm_pack_l3_ecmp_member(uint8 *buf, bcm_l3_ecmp_member_t *var)
  10988 {
  10989 	BCM_PACK_U32(buf, var->flags);
  10990 	BCM_PACK_U32(buf, var->egress_if);
  10991 	BCM_PACK_U32(buf, var->failover_id);
  10992 	BCM_PACK_U32(buf, var->failover_egress_if);
  10993 	BCM_PACK_U32(buf, var->status);
  10994 	return buf;
  10995 }
  10996 
  10997 uint8 *
  10998 _bcm_unpack_l3_ecmp_member(uint8 *buf, bcm_l3_ecmp_member_t *var)
  10999 {
  11000 	BCM_UNPACK_U32(buf, var->flags);
  11001 	BCM_UNPACK_U32(buf, var->egress_if);
  11002 	BCM_UNPACK_U32(buf, var->failover_id);
  11003 	BCM_UNPACK_U32(buf, var->failover_egress_if);
  11004 	BCM_UNPACK_U32(buf, var->status);
  11005 	return buf;
  11006 }
  11007 
  11008 uint8 *
  11009 _bcm_pack_l3_egress_ecmp_resilient_entry(uint8 *buf, bcm_l3_egress_ecmp_resilient_entry_t *var)
  11010 {
  11011 	{
  11012 		uint32 _u32;
  11013 
  11014 		_u32 = COMPILER_64_HI(var->hash_key);
  11015 		BCM_PACK_U32(buf, _u32);
  11016 		_u32 = COMPILER_64_LO(var->hash_key);
  11017 		BCM_PACK_U32(buf, _u32);
  11018 	}
  11019 	BCM_PACK_U32(buf, var->ecmp.flags);
  11020 	BCM_PACK_U32(buf, var->ecmp.ecmp_intf);
  11021 	BCM_PACK_U32(buf, var->ecmp.max_paths);
  11022 	BCM_PACK_U32(buf, var->ecmp.ecmp_group_flags);
  11023 	BCM_PACK_U32(buf, var->ecmp.dynamic_mode);
  11024 	BCM_PACK_U32(buf, var->ecmp.dynamic_size);
  11025 	BCM_PACK_U32(buf, var->ecmp.dynamic_age);
  11026 	BCM_PACK_U32(buf, var->ecmp.dynamic_load_exponent);
  11027 	BCM_PACK_U32(buf, var->ecmp.dynamic_expected_load_exponent);
  11028 	BCM_PACK_U32(buf, var->ecmp.dgm.threshold);
  11029 	BCM_PACK_U32(buf, var->ecmp.dgm.cost);
  11030 	BCM_PACK_U32(buf, var->ecmp.dgm.bias);
  11031 	BCM_PACK_U32(buf, var->ecmp.stat_id);
  11032 	BCM_PACK_U32(buf, var->ecmp.stat_pp_profile);
  11033 	BCM_PACK_U32(buf, var->ecmp.rpf_mode);
  11034 	BCM_PACK_U32(buf, var->intf);
  11035 	return buf;
  11036 }
  11037 
  11038 uint8 *
  11039 _bcm_unpack_l3_egress_ecmp_resilient_entry(uint8 *buf, bcm_l3_egress_ecmp_resilient_entry_t *var)
  11040 {
  11041 	{
  11042 		uint32 _u32h, _u32l;
  11043 
  11044 		BCM_UNPACK_U32(buf, _u32h);
  11045 		BCM_UNPACK_U32(buf, _u32l);
  11046 		COMPILER_64_SET(var->hash_key, _u32h, _u32l);
  11047 	}
  11048 	BCM_UNPACK_U32(buf, var->ecmp.flags);
  11049 	BCM_UNPACK_U32(buf, var->ecmp.ecmp_intf);
  11050 	BCM_UNPACK_U32(buf, var->ecmp.max_paths);
  11051 	BCM_UNPACK_U32(buf, var->ecmp.ecmp_group_flags);
  11052 	BCM_UNPACK_U32(buf, var->ecmp.dynamic_mode);
  11053 	BCM_UNPACK_U32(buf, var->ecmp.dynamic_size);
  11054 	BCM_UNPACK_U32(buf, var->ecmp.dynamic_age);
  11055 	BCM_UNPACK_U32(buf, var->ecmp.dynamic_load_exponent);
  11056 	BCM_UNPACK_U32(buf, var->ecmp.dynamic_expected_load_exponent);
  11057 	BCM_UNPACK_U32(buf, var->ecmp.dgm.threshold);
  11058 	BCM_UNPACK_U32(buf, var->ecmp.dgm.cost);
  11059 	BCM_UNPACK_U32(buf, var->ecmp.dgm.bias);
  11060 	BCM_UNPACK_U32(buf, var->ecmp.stat_id);
  11061 	BCM_UNPACK_U32(buf, var->ecmp.stat_pp_profile);
  11062 	BCM_UNPACK_U32(buf, var->ecmp.rpf_mode);
  11063 	BCM_UNPACK_U32(buf, var->intf);
  11064 	return buf;
  11065 }
  11066 
  11067 uint8 *
  11068 _bcm_pack_l3_egress_ecmp(uint8 *buf, bcm_l3_egress_ecmp_t *var)
  11069 {
  11070 	BCM_PACK_U32(buf, var->flags);
  11071 	BCM_PACK_U32(buf, var->ecmp_intf);
  11072 	BCM_PACK_U32(buf, var->max_paths);
  11073 	BCM_PACK_U32(buf, var->ecmp_group_flags);
  11074 	BCM_PACK_U32(buf, var->dynamic_mode);
  11075 	BCM_PACK_U32(buf, var->dynamic_size);
  11076 	BCM_PACK_U32(buf, var->dynamic_age);
  11077 	BCM_PACK_U32(buf, var->dynamic_load_exponent);
  11078 	BCM_PACK_U32(buf, var->dynamic_expected_load_exponent);
  11079 	BCM_PACK_U32(buf, var->dgm.threshold);
  11080 	BCM_PACK_U32(buf, var->dgm.cost);
  11081 	BCM_PACK_U32(buf, var->dgm.bias);
  11082 	BCM_PACK_U32(buf, var->stat_id);
  11083 	BCM_PACK_U32(buf, var->stat_pp_profile);
  11084 	BCM_PACK_U32(buf, var->rpf_mode);
  11085 	return buf;
  11086 }
  11087 
  11088 uint8 *
  11089 _bcm_unpack_l3_egress_ecmp(uint8 *buf, bcm_l3_egress_ecmp_t *var)
  11090 {
  11091 	BCM_UNPACK_U32(buf, var->flags);
  11092 	BCM_UNPACK_U32(buf, var->ecmp_intf);
  11093 	BCM_UNPACK_U32(buf, var->max_paths);
  11094 	BCM_UNPACK_U32(buf, var->ecmp_group_flags);
  11095 	BCM_UNPACK_U32(buf, var->dynamic_mode);
  11096 	BCM_UNPACK_U32(buf, var->dynamic_size);
  11097 	BCM_UNPACK_U32(buf, var->dynamic_age);
  11098 	BCM_UNPACK_U32(buf, var->dynamic_load_exponent);
  11099 	BCM_UNPACK_U32(buf, var->dynamic_expected_load_exponent);
  11100 	BCM_UNPACK_U32(buf, var->dgm.threshold);
  11101 	BCM_UNPACK_U32(buf, var->dgm.cost);
  11102 	BCM_UNPACK_U32(buf, var->dgm.bias);
  11103 	BCM_UNPACK_U32(buf, var->stat_id);
  11104 	BCM_UNPACK_U32(buf, var->stat_pp_profile);
  11105 	BCM_UNPACK_U32(buf, var->rpf_mode);
  11106 	return buf;
  11107 }
  11108 
  11109 uint8 *
  11110 _bcm_pack_l3_egress_multi_info(uint8 *buf, bcm_l3_egress_multi_info_t *var)
  11111 {
  11112 	BCM_PACK_U32(buf, var->flags);
  11113 	BCM_PACK_U32(buf, var->number_of_elements);
  11114 	return buf;
  11115 }
  11116 
  11117 uint8 *
  11118 _bcm_unpack_l3_egress_multi_info(uint8 *buf, bcm_l3_egress_multi_info_t *var)
  11119 {
  11120 	BCM_UNPACK_U32(buf, var->flags);
  11121 	BCM_UNPACK_U32(buf, var->number_of_elements);
  11122 	return buf;
  11123 }
  11124 
  11125 uint8 *
  11126 _bcm_pack_l3_egress(uint8 *buf, bcm_l3_egress_t *var)
  11127 {
  11128 	BCM_PACK_U32(buf, var->flags);
  11129 	BCM_PACK_U32(buf, var->flags2);
  11130 	BCM_PACK_U32(buf, var->intf);
  11131 	{
  11132 		int _i;
  11133 
  11134 		for (_i = 0; _i < 6; _i++) {
  11135 			BCM_PACK_U8(buf, var->mac_addr[_i]);
  11136 		}
  11137 	}
  11138 	BCM_PACK_U16(buf, var->vlan);
  11139 	BCM_PACK_U32(buf, var->module);
  11140 	BCM_PACK_U32(buf, var->port);
  11141 	BCM_PACK_U32(buf, var->trunk);
  11142 	BCM_PACK_U32(buf, var->mpls_flags);
  11143 	BCM_PACK_U32(buf, var->mpls_label);
  11144 	BCM_PACK_U32(buf, var->mpls_action);
  11145 	BCM_PACK_U32(buf, var->mpls_qos_map_id);
  11146 	BCM_PACK_U32(buf, var->mpls_ttl);
  11147 	BCM_PACK_U8(buf, var->mpls_pkt_pri);
  11148 	BCM_PACK_U8(buf, var->mpls_pkt_cfi);
  11149 	BCM_PACK_U8(buf, var->mpls_exp);
  11150 	BCM_PACK_U32(buf, var->qos_map_id);
  11151 	BCM_PACK_U32(buf, var->encap_id);
  11152 	BCM_PACK_U32(buf, var->failover_id);
  11153 	BCM_PACK_U32(buf, var->failover_if_id);
  11154 	BCM_PACK_U32(buf, var->failover_mc_group);
  11155 	BCM_PACK_U32(buf, var->dynamic_scaling_factor);
  11156 	BCM_PACK_U32(buf, var->dynamic_load_weight);
  11157 	BCM_PACK_U32(buf, var->dynamic_queue_size_weight);
  11158 	BCM_PACK_U32(buf, var->intf_class);
  11159 	BCM_PACK_U32(buf, var->multicast_flags);
  11160 	BCM_PACK_U16(buf, var->oam_global_context_id);
  11161 	BCM_PACK_U8(buf, var->vntag.direction);
  11162 	BCM_PACK_U8(buf, var->vntag.pointer);
  11163 	BCM_PACK_U16(buf, var->vntag.dst_vif);
  11164 	BCM_PACK_U8(buf, var->vntag.loop);
  11165 	BCM_PACK_U16(buf, var->vntag.src_vif);
  11166 	BCM_PACK_U32(buf, var->vntag_action);
  11167 	BCM_PACK_U8(buf, var->etag.pcp);
  11168 	BCM_PACK_U8(buf, var->etag.de);
  11169 	BCM_PACK_U16(buf, var->etag.src_vid);
  11170 	BCM_PACK_U16(buf, var->etag.vid);
  11171 	BCM_PACK_U32(buf, var->etag_action);
  11172 	BCM_PACK_U32(buf, var->flow_handle);
  11173 	BCM_PACK_U32(buf, var->flow_option_handle);
  11174 	BCM_PACK_U32(buf, var->flow_label_option_handle);
  11175 	{
  11176 		int _i;
  11177 
  11178 		for (_i = 0; _i < 20; _i++) {
  11179 			BCM_PACK_U32(buf, var->logical_fields[_i].id);
  11180 			BCM_PACK_U32(buf, var->logical_fields[_i].value);
  11181 		}
  11182 	}
  11183 	BCM_PACK_U32(buf, var->num_of_fields);
  11184 	BCM_PACK_U32(buf, var->counting_profile);
  11185 	BCM_PACK_U32(buf, var->mpls_ecn_map_id);
  11186 	BCM_PACK_U32(buf, var->urpf_mode);
  11187 	BCM_PACK_U32(buf, var->mc_group);
  11188 	{
  11189 		int _i;
  11190 
  11191 		for (_i = 0; _i < 6; _i++) {
  11192 			BCM_PACK_U8(buf, var->src_mac_addr[_i]);
  11193 		}
  11194 	}
  11195 	BCM_PACK_U32(buf, var->hierarchical_gport);
  11196 	BCM_PACK_U32(buf, var->stat_id);
  11197 	BCM_PACK_U32(buf, var->stat_pp_profile);
  11198 	BCM_PACK_U32(buf, var->vlan_port_id);
  11199 	BCM_PACK_U32(buf, var->replication_id);
  11200 	return buf;
  11201 }
  11202 
  11203 uint8 *
  11204 _bcm_unpack_l3_egress(uint8 *buf, bcm_l3_egress_t *var)
  11205 {
  11206 	BCM_UNPACK_U32(buf, var->flags);
  11207 	BCM_UNPACK_U32(buf, var->flags2);
  11208 	BCM_UNPACK_U32(buf, var->intf);
  11209 	{
  11210 		int _i;
  11211 
  11212 		for (_i = 0; _i < 6; _i++) {
  11213 			BCM_UNPACK_U8(buf, var->mac_addr[_i]);
  11214 		}
  11215 	}
  11216 	BCM_UNPACK_U16(buf, var->vlan);
  11217 	BCM_UNPACK_U32(buf, var->module);
  11218 	BCM_UNPACK_U32(buf, var->port);
  11219 	BCM_UNPACK_U32(buf, var->trunk);
  11220 	BCM_UNPACK_U32(buf, var->mpls_flags);
  11221 	BCM_UNPACK_U32(buf, var->mpls_label);
  11222 	BCM_UNPACK_U32(buf, var->mpls_action);
  11223 	BCM_UNPACK_U32(buf, var->mpls_qos_map_id);
  11224 	BCM_UNPACK_U32(buf, var->mpls_ttl);
  11225 	BCM_UNPACK_U8(buf, var->mpls_pkt_pri);
  11226 	BCM_UNPACK_U8(buf, var->mpls_pkt_cfi);
  11227 	BCM_UNPACK_U8(buf, var->mpls_exp);
  11228 	BCM_UNPACK_U32(buf, var->qos_map_id);
  11229 	BCM_UNPACK_U32(buf, var->encap_id);
  11230 	BCM_UNPACK_U32(buf, var->failover_id);
  11231 	BCM_UNPACK_U32(buf, var->failover_if_id);
  11232 	BCM_UNPACK_U32(buf, var->failover_mc_group);
  11233 	BCM_UNPACK_U32(buf, var->dynamic_scaling_factor);
  11234 	BCM_UNPACK_U32(buf, var->dynamic_load_weight);
  11235 	BCM_UNPACK_U32(buf, var->dynamic_queue_size_weight);
  11236 	BCM_UNPACK_U32(buf, var->intf_class);
  11237 	BCM_UNPACK_U32(buf, var->multicast_flags);
  11238 	BCM_UNPACK_U16(buf, var->oam_global_context_id);
  11239 	BCM_UNPACK_U8(buf, var->vntag.direction);
  11240 	BCM_UNPACK_U8(buf, var->vntag.pointer);
  11241 	BCM_UNPACK_U16(buf, var->vntag.dst_vif);
  11242 	BCM_UNPACK_U8(buf, var->vntag.loop);
  11243 	BCM_UNPACK_U16(buf, var->vntag.src_vif);
  11244 	BCM_UNPACK_U32(buf, var->vntag_action);
  11245 	BCM_UNPACK_U8(buf, var->etag.pcp);
  11246 	BCM_UNPACK_U8(buf, var->etag.de);
  11247 	BCM_UNPACK_U16(buf, var->etag.src_vid);
  11248 	BCM_UNPACK_U16(buf, var->etag.vid);
  11249 	BCM_UNPACK_U32(buf, var->etag_action);
  11250 	BCM_UNPACK_U32(buf, var->flow_handle);
  11251 	BCM_UNPACK_U32(buf, var->flow_option_handle);
  11252 	BCM_UNPACK_U32(buf, var->flow_label_option_handle);
  11253 	{
  11254 		int _i;
  11255 
  11256 		for (_i = 0; _i < 20; _i++) {
  11257 			BCM_UNPACK_U32(buf, var->logical_fields[_i].id);
  11258 			BCM_UNPACK_U32(buf, var->logical_fields[_i].value);
  11259 		}
  11260 	}
  11261 	BCM_UNPACK_U32(buf, var->num_of_fields);
  11262 	BCM_UNPACK_U32(buf, var->counting_profile);
  11263 	BCM_UNPACK_U32(buf, var->mpls_ecn_map_id);
  11264 	BCM_UNPACK_U32(buf, var->urpf_mode);
  11265 	BCM_UNPACK_U32(buf, var->mc_group);
  11266 	{
  11267 		int _i;
  11268 
  11269 		for (_i = 0; _i < 6; _i++) {
  11270 			BCM_UNPACK_U8(buf, var->src_mac_addr[_i]);
  11271 		}
  11272 	}
  11273 	BCM_UNPACK_U32(buf, var->hierarchical_gport);
  11274 	BCM_UNPACK_U32(buf, var->stat_id);
  11275 	BCM_UNPACK_U32(buf, var->stat_pp_profile);
  11276 	BCM_UNPACK_U32(buf, var->vlan_port_id);
  11277 	BCM_UNPACK_U32(buf, var->replication_id);
  11278 	return buf;
  11279 }
  11280 
  11281 uint8 *
  11282 _bcm_pack_l3_host(uint8 *buf, bcm_l3_host_t *var)
  11283 {
  11284 	BCM_PACK_U32(buf, var->l3a_flags);
  11285 	BCM_PACK_U32(buf, var->l3a_flags2);
  11286 	BCM_PACK_U32(buf, var->l3a_vrf);
  11287 	BCM_PACK_U32(buf, var->l3a_ip_addr);
  11288 	{
  11289 		int _i;
  11290 
  11291 		for (_i = 0; _i < 16; _i++) {
  11292 			BCM_PACK_U8(buf, var->l3a_ip6_addr[_i]);
  11293 		}
  11294 	}
  11295 	BCM_PACK_U32(buf, var->l3a_pri);
  11296 	BCM_PACK_U32(buf, var->l3a_intf);
  11297 	{
  11298 		int _i;
  11299 
  11300 		for (_i = 0; _i < 6; _i++) {
  11301 			BCM_PACK_U8(buf, var->l3a_nexthop_mac[_i]);
  11302 		}
  11303 	}
  11304 	BCM_PACK_U32(buf, var->l3a_modid);
  11305 	BCM_PACK_U32(buf, var->l3a_port_tgid);
  11306 	BCM_PACK_U32(buf, var->l3a_stack_port);
  11307 	BCM_PACK_U32(buf, var->l3a_ipmc_ptr);
  11308 	BCM_PACK_U32(buf, var->l3a_lookup_class);
  11309 	BCM_PACK_U32(buf, var->encap_id);
  11310 	BCM_PACK_U32(buf, var->native_intf);
  11311 	BCM_PACK_U32(buf, var->flow_handle);
  11312 	BCM_PACK_U32(buf, var->flow_option_handle);
  11313 	{
  11314 		int _i;
  11315 
  11316 		for (_i = 0; _i < 20; _i++) {
  11317 			BCM_PACK_U32(buf, var->logical_fields[_i].id);
  11318 			BCM_PACK_U32(buf, var->logical_fields[_i].value);
  11319 		}
  11320 	}
  11321 	BCM_PACK_U32(buf, var->num_of_fields);
  11322 	BCM_PACK_U32(buf, var->l3a_ipmc_ptr_l2);
  11323 	BCM_PACK_U32(buf, var->stat_id);
  11324 	BCM_PACK_U32(buf, var->stat_pp_profile);
  11325 	return buf;
  11326 }
  11327 
  11328 uint8 *
  11329 _bcm_unpack_l3_host(uint8 *buf, bcm_l3_host_t *var)
  11330 {
  11331 	BCM_UNPACK_U32(buf, var->l3a_flags);
  11332 	BCM_UNPACK_U32(buf, var->l3a_flags2);
  11333 	BCM_UNPACK_U32(buf, var->l3a_vrf);
  11334 	BCM_UNPACK_U32(buf, var->l3a_ip_addr);
  11335 	{
  11336 		int _i;
  11337 
  11338 		for (_i = 0; _i < 16; _i++) {
  11339 			BCM_UNPACK_U8(buf, var->l3a_ip6_addr[_i]);
  11340 		}
  11341 	}
  11342 	BCM_UNPACK_U32(buf, var->l3a_pri);
  11343 	BCM_UNPACK_U32(buf, var->l3a_intf);
  11344 	{
  11345 		int _i;
  11346 
  11347 		for (_i = 0; _i < 6; _i++) {
  11348 			BCM_UNPACK_U8(buf, var->l3a_nexthop_mac[_i]);
  11349 		}
  11350 	}
  11351 	BCM_UNPACK_U32(buf, var->l3a_modid);
  11352 	BCM_UNPACK_U32(buf, var->l3a_port_tgid);
  11353 	BCM_UNPACK_U32(buf, var->l3a_stack_port);
  11354 	BCM_UNPACK_U32(buf, var->l3a_ipmc_ptr);
  11355 	BCM_UNPACK_U32(buf, var->l3a_lookup_class);
  11356 	BCM_UNPACK_U32(buf, var->encap_id);
  11357 	BCM_UNPACK_U32(buf, var->native_intf);
  11358 	BCM_UNPACK_U32(buf, var->flow_handle);
  11359 	BCM_UNPACK_U32(buf, var->flow_option_handle);
  11360 	{
  11361 		int _i;
  11362 
  11363 		for (_i = 0; _i < 20; _i++) {
  11364 			BCM_UNPACK_U32(buf, var->logical_fields[_i].id);
  11365 			BCM_UNPACK_U32(buf, var->logical_fields[_i].value);
  11366 		}
  11367 	}
  11368 	BCM_UNPACK_U32(buf, var->num_of_fields);
  11369 	BCM_UNPACK_U32(buf, var->l3a_ipmc_ptr_l2);
  11370 	BCM_UNPACK_U32(buf, var->stat_id);
  11371 	BCM_UNPACK_U32(buf, var->stat_pp_profile);
  11372 	return buf;
  11373 }
  11374 
  11375 uint8 *
  11376 _bcm_pack_l3_info(uint8 *buf, bcm_l3_info_t *var)
  11377 {
  11378 	BCM_PACK_U32(buf, var->l3info_max_vrf);
  11379 	BCM_PACK_U32(buf, var->l3info_used_vrf);
  11380 	BCM_PACK_U32(buf, var->l3info_max_intf);
  11381 	BCM_PACK_U32(buf, var->l3info_max_intf_group);
  11382 	BCM_PACK_U32(buf, var->l3info_max_host);
  11383 	BCM_PACK_U32(buf, var->l3info_max_route);
  11384 	BCM_PACK_U32(buf, var->l3info_max_ecmp_groups);
  11385 	BCM_PACK_U32(buf, var->l3info_max_ecmp);
  11386 	BCM_PACK_U32(buf, var->l3info_used_intf);
  11387 	BCM_PACK_U32(buf, var->l3info_used_host);
  11388 	BCM_PACK_U32(buf, var->l3info_used_route);
  11389 	BCM_PACK_U32(buf, var->l3info_max_lpm_block);
  11390 	BCM_PACK_U32(buf, var->l3info_used_lpm_block);
  11391 	BCM_PACK_U32(buf, var->l3info_max_l3);
  11392 	BCM_PACK_U32(buf, var->l3info_max_defip);
  11393 	BCM_PACK_U32(buf, var->l3info_used_l3);
  11394 	BCM_PACK_U32(buf, var->l3info_used_defip);
  11395 	BCM_PACK_U32(buf, var->l3info_max_nexthop);
  11396 	BCM_PACK_U32(buf, var->l3info_used_nexthop);
  11397 	BCM_PACK_U32(buf, var->l3info_max_tunnel_init);
  11398 	BCM_PACK_U32(buf, var->l3info_used_tunnel_init);
  11399 	BCM_PACK_U32(buf, var->l3info_max_tunnel_term);
  11400 	BCM_PACK_U32(buf, var->l3info_used_tunnel_term);
  11401 	BCM_PACK_U32(buf, var->l3info_used_host_ip4);
  11402 	BCM_PACK_U32(buf, var->l3info_used_host_ip6);
  11403 	return buf;
  11404 }
  11405 
  11406 uint8 *
  11407 _bcm_unpack_l3_info(uint8 *buf, bcm_l3_info_t *var)
  11408 {
  11409 	BCM_UNPACK_U32(buf, var->l3info_max_vrf);
  11410 	BCM_UNPACK_U32(buf, var->l3info_used_vrf);
  11411 	BCM_UNPACK_U32(buf, var->l3info_max_intf);
  11412 	BCM_UNPACK_U32(buf, var->l3info_max_intf_group);
  11413 	BCM_UNPACK_U32(buf, var->l3info_max_host);
  11414 	BCM_UNPACK_U32(buf, var->l3info_max_route);
  11415 	BCM_UNPACK_U32(buf, var->l3info_max_ecmp_groups);
  11416 	BCM_UNPACK_U32(buf, var->l3info_max_ecmp);
  11417 	BCM_UNPACK_U32(buf, var->l3info_used_intf);
  11418 	BCM_UNPACK_U32(buf, var->l3info_used_host);
  11419 	BCM_UNPACK_U32(buf, var->l3info_used_route);
  11420 	BCM_UNPACK_U32(buf, var->l3info_max_lpm_block);
  11421 	BCM_UNPACK_U32(buf, var->l3info_used_lpm_block);
  11422 	BCM_UNPACK_U32(buf, var->l3info_max_l3);
  11423 	BCM_UNPACK_U32(buf, var->l3info_max_defip);
  11424 	BCM_UNPACK_U32(buf, var->l3info_used_l3);
  11425 	BCM_UNPACK_U32(buf, var->l3info_used_defip);
  11426 	BCM_UNPACK_U32(buf, var->l3info_max_nexthop);
  11427 	BCM_UNPACK_U32(buf, var->l3info_used_nexthop);
  11428 	BCM_UNPACK_U32(buf, var->l3info_max_tunnel_init);
  11429 	BCM_UNPACK_U32(buf, var->l3info_used_tunnel_init);
  11430 	BCM_UNPACK_U32(buf, var->l3info_max_tunnel_term);
  11431 	BCM_UNPACK_U32(buf, var->l3info_used_tunnel_term);
  11432 	BCM_UNPACK_U32(buf, var->l3info_used_host_ip4);
  11433 	BCM_UNPACK_U32(buf, var->l3info_used_host_ip6);
  11434 	return buf;
  11435 }
  11436 
  11437 uint8 *
  11438 _bcm_pack_l3_ingress(uint8 *buf, bcm_l3_ingress_t *var)
  11439 {
  11440 	BCM_PACK_U32(buf, var->flags);
  11441 	BCM_PACK_U32(buf, var->vrf);
  11442 	BCM_PACK_U32(buf, var->urpf_mode);
  11443 	BCM_PACK_U32(buf, var->intf_class);
  11444 	BCM_PACK_U16(buf, var->ipmc_intf_id);
  11445 	BCM_PACK_U32(buf, var->qos_map_id);
  11446 	BCM_PACK_U32(buf, var->ip4_options_profile_id);
  11447 	BCM_PACK_U32(buf, var->nat_realm_id);
  11448 	BCM_PACK_U32(buf, var->tunnel_term_ecn_map_id);
  11449 	BCM_PACK_U32(buf, var->intf_class_route_disable);
  11450 	BCM_PACK_U32(buf, var->oam_default_profile);
  11451 	return buf;
  11452 }
  11453 
  11454 uint8 *
  11455 _bcm_unpack_l3_ingress(uint8 *buf, bcm_l3_ingress_t *var)
  11456 {
  11457 	BCM_UNPACK_U32(buf, var->flags);
  11458 	BCM_UNPACK_U32(buf, var->vrf);
  11459 	BCM_UNPACK_U32(buf, var->urpf_mode);
  11460 	BCM_UNPACK_U32(buf, var->intf_class);
  11461 	BCM_UNPACK_U16(buf, var->ipmc_intf_id);
  11462 	BCM_UNPACK_U32(buf, var->qos_map_id);
  11463 	BCM_UNPACK_U32(buf, var->ip4_options_profile_id);
  11464 	BCM_UNPACK_U32(buf, var->nat_realm_id);
  11465 	BCM_UNPACK_U32(buf, var->tunnel_term_ecn_map_id);
  11466 	BCM_UNPACK_U32(buf, var->intf_class_route_disable);
  11467 	BCM_UNPACK_U32(buf, var->oam_default_profile);
  11468 	return buf;
  11469 }
  11470 
  11471 uint8 *
  11472 _bcm_pack_l3_intf(uint8 *buf, bcm_l3_intf_t *var)
  11473 {
  11474 	BCM_PACK_U32(buf, var->l3a_flags);
  11475 	BCM_PACK_U32(buf, var->l3a_flags2);
  11476 	BCM_PACK_U32(buf, var->l3a_vrf);
  11477 	BCM_PACK_U32(buf, var->l3a_intf_id);
  11478 	{
  11479 		int _i;
  11480 
  11481 		for (_i = 0; _i < 6; _i++) {
  11482 			BCM_PACK_U8(buf, var->l3a_mac_addr[_i]);
  11483 		}
  11484 	}
  11485 	BCM_PACK_U16(buf, var->l3a_vid);
  11486 	BCM_PACK_U16(buf, var->l3a_inner_vlan);
  11487 	BCM_PACK_U32(buf, var->l3a_tunnel_idx);
  11488 	BCM_PACK_U32(buf, var->l3a_ttl);
  11489 	BCM_PACK_U32(buf, var->l3a_mtu);
  11490 	BCM_PACK_U32(buf, var->l3a_mtu_forwarding);
  11491 	BCM_PACK_U32(buf, var->l3a_group);
  11492 	BCM_PACK_U32(buf, var->vlan_qos.flags);
  11493 	BCM_PACK_U32(buf, var->vlan_qos.qos_map_id);
  11494 	BCM_PACK_U8(buf, var->vlan_qos.pri);
  11495 	BCM_PACK_U8(buf, var->vlan_qos.cfi);
  11496 	BCM_PACK_U32(buf, var->vlan_qos.dscp);
  11497 	BCM_PACK_U32(buf, var->inner_vlan_qos.flags);
  11498 	BCM_PACK_U32(buf, var->inner_vlan_qos.qos_map_id);
  11499 	BCM_PACK_U8(buf, var->inner_vlan_qos.pri);
  11500 	BCM_PACK_U8(buf, var->inner_vlan_qos.cfi);
  11501 	BCM_PACK_U32(buf, var->inner_vlan_qos.dscp);
  11502 	BCM_PACK_U32(buf, var->dscp_qos.flags);
  11503 	BCM_PACK_U32(buf, var->dscp_qos.qos_map_id);
  11504 	BCM_PACK_U8(buf, var->dscp_qos.pri);
  11505 	BCM_PACK_U8(buf, var->dscp_qos.cfi);
  11506 	BCM_PACK_U32(buf, var->dscp_qos.dscp);
  11507 	BCM_PACK_U32(buf, var->l3a_intf_class);
  11508 	BCM_PACK_U32(buf, var->l3a_ip4_options_profile_id);
  11509 	BCM_PACK_U32(buf, var->l3a_nat_realm_id);
  11510 	BCM_PACK_U16(buf, var->outer_tpid);
  11511 	BCM_PACK_U32(buf, var->l3a_intf_flags);
  11512 	BCM_PACK_U8(buf, var->native_routing_vlan_tags);
  11513 	BCM_PACK_U32(buf, var->l3a_source_vp);
  11514 	BCM_PACK_U32(buf, var->flow_handle);
  11515 	BCM_PACK_U32(buf, var->flow_option_handle);
  11516 	{
  11517 		int _i;
  11518 
  11519 		for (_i = 0; _i < 20; _i++) {
  11520 			BCM_PACK_U32(buf, var->logical_fields[_i].id);
  11521 			BCM_PACK_U32(buf, var->logical_fields[_i].value);
  11522 		}
  11523 	}
  11524 	BCM_PACK_U32(buf, var->num_of_fields);
  11525 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_phb);
  11526 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_remark);
  11527 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_ttl);
  11528 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_ecn);
  11529 	BCM_PACK_U32(buf, var->egress_qos_model.egress_qos);
  11530 	BCM_PACK_U32(buf, var->egress_qos_model.egress_ttl);
  11531 	BCM_PACK_U8(buf, var->egress_qos_model.ecn_eligible);
  11532 	BCM_PACK_U32(buf, var->stat_id);
  11533 	BCM_PACK_U32(buf, var->stat_pp_profile);
  11534 	return buf;
  11535 }
  11536 
  11537 uint8 *
  11538 _bcm_unpack_l3_intf(uint8 *buf, bcm_l3_intf_t *var)
  11539 {
  11540 	BCM_UNPACK_U32(buf, var->l3a_flags);
  11541 	BCM_UNPACK_U32(buf, var->l3a_flags2);
  11542 	BCM_UNPACK_U32(buf, var->l3a_vrf);
  11543 	BCM_UNPACK_U32(buf, var->l3a_intf_id);
  11544 	{
  11545 		int _i;
  11546 
  11547 		for (_i = 0; _i < 6; _i++) {
  11548 			BCM_UNPACK_U8(buf, var->l3a_mac_addr[_i]);
  11549 		}
  11550 	}
  11551 	BCM_UNPACK_U16(buf, var->l3a_vid);
  11552 	BCM_UNPACK_U16(buf, var->l3a_inner_vlan);
  11553 	BCM_UNPACK_U32(buf, var->l3a_tunnel_idx);
  11554 	BCM_UNPACK_U32(buf, var->l3a_ttl);
  11555 	BCM_UNPACK_U32(buf, var->l3a_mtu);
  11556 	BCM_UNPACK_U32(buf, var->l3a_mtu_forwarding);
  11557 	BCM_UNPACK_U32(buf, var->l3a_group);
  11558 	BCM_UNPACK_U32(buf, var->vlan_qos.flags);
  11559 	BCM_UNPACK_U32(buf, var->vlan_qos.qos_map_id);
  11560 	BCM_UNPACK_U8(buf, var->vlan_qos.pri);
  11561 	BCM_UNPACK_U8(buf, var->vlan_qos.cfi);
  11562 	BCM_UNPACK_U32(buf, var->vlan_qos.dscp);
  11563 	BCM_UNPACK_U32(buf, var->inner_vlan_qos.flags);
  11564 	BCM_UNPACK_U32(buf, var->inner_vlan_qos.qos_map_id);
  11565 	BCM_UNPACK_U8(buf, var->inner_vlan_qos.pri);
  11566 	BCM_UNPACK_U8(buf, var->inner_vlan_qos.cfi);
  11567 	BCM_UNPACK_U32(buf, var->inner_vlan_qos.dscp);
  11568 	BCM_UNPACK_U32(buf, var->dscp_qos.flags);
  11569 	BCM_UNPACK_U32(buf, var->dscp_qos.qos_map_id);
  11570 	BCM_UNPACK_U8(buf, var->dscp_qos.pri);
  11571 	BCM_UNPACK_U8(buf, var->dscp_qos.cfi);
  11572 	BCM_UNPACK_U32(buf, var->dscp_qos.dscp);
  11573 	BCM_UNPACK_U32(buf, var->l3a_intf_class);
  11574 	BCM_UNPACK_U32(buf, var->l3a_ip4_options_profile_id);
  11575 	BCM_UNPACK_U32(buf, var->l3a_nat_realm_id);
  11576 	BCM_UNPACK_U16(buf, var->outer_tpid);
  11577 	BCM_UNPACK_U32(buf, var->l3a_intf_flags);
  11578 	BCM_UNPACK_U8(buf, var->native_routing_vlan_tags);
  11579 	BCM_UNPACK_U32(buf, var->l3a_source_vp);
  11580 	BCM_UNPACK_U32(buf, var->flow_handle);
  11581 	BCM_UNPACK_U32(buf, var->flow_option_handle);
  11582 	{
  11583 		int _i;
  11584 
  11585 		for (_i = 0; _i < 20; _i++) {
  11586 			BCM_UNPACK_U32(buf, var->logical_fields[_i].id);
  11587 			BCM_UNPACK_U32(buf, var->logical_fields[_i].value);
  11588 		}
  11589 	}
  11590 	BCM_UNPACK_U32(buf, var->num_of_fields);
  11591 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_phb);
  11592 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_remark);
  11593 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_ttl);
  11594 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_ecn);
  11595 	BCM_UNPACK_U32(buf, var->egress_qos_model.egress_qos);
  11596 	BCM_UNPACK_U32(buf, var->egress_qos_model.egress_ttl);
  11597 	BCM_UNPACK_U8(buf, var->egress_qos_model.ecn_eligible);
  11598 	BCM_UNPACK_U32(buf, var->stat_id);
  11599 	BCM_UNPACK_U32(buf, var->stat_pp_profile);
  11600 	return buf;
  11601 }
  11602 
  11603 uint8 *
  11604 _bcm_pack_l3_key(uint8 *buf, bcm_l3_key_t *var)
  11605 {
  11606 	BCM_PACK_U32(buf, var->l3k_flags);
  11607 	BCM_PACK_U32(buf, var->l3k_ip_addr);
  11608 	{
  11609 		int _i;
  11610 
  11611 		for (_i = 0; _i < 16; _i++) {
  11612 			BCM_PACK_U8(buf, var->l3k_ip6_addr[_i]);
  11613 		}
  11614 	}
  11615 	BCM_PACK_U32(buf, var->l3k_sip_addr);
  11616 	{
  11617 		int _i;
  11618 
  11619 		for (_i = 0; _i < 16; _i++) {
  11620 			BCM_PACK_U8(buf, var->l3k_sip6_addr[_i]);
  11621 		}
  11622 	}
  11623 	BCM_PACK_U16(buf, var->l3k_vid);
  11624 	BCM_PACK_U32(buf, var->l3k_vrf);
  11625 	return buf;
  11626 }
  11627 
  11628 uint8 *
  11629 _bcm_unpack_l3_key(uint8 *buf, bcm_l3_key_t *var)
  11630 {
  11631 	BCM_UNPACK_U32(buf, var->l3k_flags);
  11632 	BCM_UNPACK_U32(buf, var->l3k_ip_addr);
  11633 	{
  11634 		int _i;
  11635 
  11636 		for (_i = 0; _i < 16; _i++) {
  11637 			BCM_UNPACK_U8(buf, var->l3k_ip6_addr[_i]);
  11638 		}
  11639 	}
  11640 	BCM_UNPACK_U32(buf, var->l3k_sip_addr);
  11641 	{
  11642 		int _i;
  11643 
  11644 		for (_i = 0; _i < 16; _i++) {
  11645 			BCM_UNPACK_U8(buf, var->l3k_sip6_addr[_i]);
  11646 		}
  11647 	}
  11648 	BCM_UNPACK_U16(buf, var->l3k_vid);
  11649 	BCM_UNPACK_U32(buf, var->l3k_vrf);
  11650 	return buf;
  11651 }
  11652 
  11653 uint8 *
  11654 _bcm_pack_l3_large_nat_egress(uint8 *buf, bcm_l3_large_nat_egress_t *var)
  11655 {
  11656 	BCM_PACK_U32(buf, var->flags);
  11657 	BCM_PACK_U32(buf, var->sip_addr);
  11658 	BCM_PACK_U16(buf, var->src_port);
  11659 	BCM_PACK_U32(buf, var->dip_addr);
  11660 	BCM_PACK_U16(buf, var->dst_port);
  11661 	BCM_PACK_U32(buf, var->intf_class_id);
  11662 	BCM_PACK_U32(buf, var->nat_class_id);
  11663 	BCM_PACK_U32(buf, var->replication_id);
  11664 	return buf;
  11665 }
  11666 
  11667 uint8 *
  11668 _bcm_unpack_l3_large_nat_egress(uint8 *buf, bcm_l3_large_nat_egress_t *var)
  11669 {
  11670 	BCM_UNPACK_U32(buf, var->flags);
  11671 	BCM_UNPACK_U32(buf, var->sip_addr);
  11672 	BCM_UNPACK_U16(buf, var->src_port);
  11673 	BCM_UNPACK_U32(buf, var->dip_addr);
  11674 	BCM_UNPACK_U16(buf, var->dst_port);
  11675 	BCM_UNPACK_U32(buf, var->intf_class_id);
  11676 	BCM_UNPACK_U32(buf, var->nat_class_id);
  11677 	BCM_UNPACK_U32(buf, var->replication_id);
  11678 	return buf;
  11679 }
  11680 
  11681 uint8 *
  11682 _bcm_pack_l3_nat_egress(uint8 *buf, bcm_l3_nat_egress_t *var)
  11683 {
  11684 	BCM_PACK_U32(buf, var->flags);
  11685 	BCM_PACK_U32(buf, var->nat_id);
  11686 	BCM_PACK_U32(buf, var->sip_addr);
  11687 	BCM_PACK_U32(buf, var->sip_addr_mask);
  11688 	BCM_PACK_U16(buf, var->src_port);
  11689 	BCM_PACK_U32(buf, var->dip_addr);
  11690 	BCM_PACK_U32(buf, var->dip_addr_mask);
  11691 	BCM_PACK_U16(buf, var->dst_port);
  11692 	return buf;
  11693 }
  11694 
  11695 uint8 *
  11696 _bcm_unpack_l3_nat_egress(uint8 *buf, bcm_l3_nat_egress_t *var)
  11697 {
  11698 	BCM_UNPACK_U32(buf, var->flags);
  11699 	BCM_UNPACK_U32(buf, var->nat_id);
  11700 	BCM_UNPACK_U32(buf, var->sip_addr);
  11701 	BCM_UNPACK_U32(buf, var->sip_addr_mask);
  11702 	BCM_UNPACK_U16(buf, var->src_port);
  11703 	BCM_UNPACK_U32(buf, var->dip_addr);
  11704 	BCM_UNPACK_U32(buf, var->dip_addr_mask);
  11705 	BCM_UNPACK_U16(buf, var->dst_port);
  11706 	return buf;
  11707 }
  11708 
  11709 uint8 *
  11710 _bcm_pack_l3_nat_ingress(uint8 *buf, bcm_l3_nat_ingress_t *var)
  11711 {
  11712 	BCM_PACK_U32(buf, var->flags);
  11713 	BCM_PACK_U32(buf, var->ip_addr);
  11714 	BCM_PACK_U32(buf, var->vrf);
  11715 	BCM_PACK_U16(buf, var->l4_port);
  11716 	BCM_PACK_U8(buf, var->ip_proto);
  11717 	BCM_PACK_U32(buf, var->nat_id);
  11718 	BCM_PACK_U32(buf, var->pri);
  11719 	BCM_PACK_U32(buf, var->class_id);
  11720 	BCM_PACK_U32(buf, var->nexthop);
  11721 	return buf;
  11722 }
  11723 
  11724 uint8 *
  11725 _bcm_unpack_l3_nat_ingress(uint8 *buf, bcm_l3_nat_ingress_t *var)
  11726 {
  11727 	BCM_UNPACK_U32(buf, var->flags);
  11728 	BCM_UNPACK_U32(buf, var->ip_addr);
  11729 	BCM_UNPACK_U32(buf, var->vrf);
  11730 	BCM_UNPACK_U16(buf, var->l4_port);
  11731 	BCM_UNPACK_U8(buf, var->ip_proto);
  11732 	BCM_UNPACK_U32(buf, var->nat_id);
  11733 	BCM_UNPACK_U32(buf, var->pri);
  11734 	BCM_UNPACK_U32(buf, var->class_id);
  11735 	BCM_UNPACK_U32(buf, var->nexthop);
  11736 	return buf;
  11737 }
  11738 
  11739 uint8 *
  11740 _bcm_pack_l3_route(uint8 *buf, bcm_l3_route_t *var)
  11741 {
  11742 	BCM_PACK_U32(buf, var->l3a_flags);
  11743 	BCM_PACK_U32(buf, var->l3a_flags2);
  11744 	BCM_PACK_U32(buf, var->l3a_ipmc_flags);
  11745 	BCM_PACK_U32(buf, var->l3a_vrf);
  11746 	BCM_PACK_U32(buf, var->l3a_subnet);
  11747 	{
  11748 		int _i;
  11749 
  11750 		for (_i = 0; _i < 16; _i++) {
  11751 			BCM_PACK_U8(buf, var->l3a_ip6_net[_i]);
  11752 		}
  11753 	}
  11754 	BCM_PACK_U32(buf, var->l3a_ip_mask);
  11755 	{
  11756 		int _i;
  11757 
  11758 		for (_i = 0; _i < 16; _i++) {
  11759 			BCM_PACK_U8(buf, var->l3a_ip6_mask[_i]);
  11760 		}
  11761 	}
  11762 	BCM_PACK_U32(buf, var->l3a_intf);
  11763 	BCM_PACK_U32(buf, var->l3a_nexthop_ip);
  11764 	{
  11765 		int _i;
  11766 
  11767 		for (_i = 0; _i < 6; _i++) {
  11768 			BCM_PACK_U8(buf, var->l3a_nexthop_mac[_i]);
  11769 		}
  11770 	}
  11771 	BCM_PACK_U32(buf, var->l3a_modid);
  11772 	BCM_PACK_U32(buf, var->l3a_port_tgid);
  11773 	BCM_PACK_U32(buf, var->l3a_stack_port);
  11774 	BCM_PACK_U16(buf, var->l3a_vid);
  11775 	BCM_PACK_U32(buf, var->l3a_pri);
  11776 	BCM_PACK_U32(buf, var->l3a_tunnel_option);
  11777 	BCM_PACK_U32(buf, var->l3a_mpls_label);
  11778 	BCM_PACK_U32(buf, var->l3a_lookup_class);
  11779 	BCM_PACK_U32(buf, var->l3a_expected_intf);
  11780 	BCM_PACK_U32(buf, var->l3a_rp);
  11781 	BCM_PACK_U32(buf, var->l3a_mc_group);
  11782 	BCM_PACK_U32(buf, var->l3a_expected_src_gport);
  11783 	BCM_PACK_U32(buf, var->flow_handle);
  11784 	BCM_PACK_U32(buf, var->flow_option_handle);
  11785 	{
  11786 		int _i;
  11787 
  11788 		for (_i = 0; _i < 20; _i++) {
  11789 			BCM_PACK_U32(buf, var->logical_fields[_i].id);
  11790 			BCM_PACK_U32(buf, var->logical_fields[_i].value);
  11791 		}
  11792 	}
  11793 	BCM_PACK_U32(buf, var->num_of_fields);
  11794 	return buf;
  11795 }
  11796 
  11797 uint8 *
  11798 _bcm_unpack_l3_route(uint8 *buf, bcm_l3_route_t *var)
  11799 {
  11800 	BCM_UNPACK_U32(buf, var->l3a_flags);
  11801 	BCM_UNPACK_U32(buf, var->l3a_flags2);
  11802 	BCM_UNPACK_U32(buf, var->l3a_ipmc_flags);
  11803 	BCM_UNPACK_U32(buf, var->l3a_vrf);
  11804 	BCM_UNPACK_U32(buf, var->l3a_subnet);
  11805 	{
  11806 		int _i;
  11807 
  11808 		for (_i = 0; _i < 16; _i++) {
  11809 			BCM_UNPACK_U8(buf, var->l3a_ip6_net[_i]);
  11810 		}
  11811 	}
  11812 	BCM_UNPACK_U32(buf, var->l3a_ip_mask);
  11813 	{
  11814 		int _i;
  11815 
  11816 		for (_i = 0; _i < 16; _i++) {
  11817 			BCM_UNPACK_U8(buf, var->l3a_ip6_mask[_i]);
  11818 		}
  11819 	}
  11820 	BCM_UNPACK_U32(buf, var->l3a_intf);
  11821 	BCM_UNPACK_U32(buf, var->l3a_nexthop_ip);
  11822 	{
  11823 		int _i;
  11824 
  11825 		for (_i = 0; _i < 6; _i++) {
  11826 			BCM_UNPACK_U8(buf, var->l3a_nexthop_mac[_i]);
  11827 		}
  11828 	}
  11829 	BCM_UNPACK_U32(buf, var->l3a_modid);
  11830 	BCM_UNPACK_U32(buf, var->l3a_port_tgid);
  11831 	BCM_UNPACK_U32(buf, var->l3a_stack_port);
  11832 	BCM_UNPACK_U16(buf, var->l3a_vid);
  11833 	BCM_UNPACK_U32(buf, var->l3a_pri);
  11834 	BCM_UNPACK_U32(buf, var->l3a_tunnel_option);
  11835 	BCM_UNPACK_U32(buf, var->l3a_mpls_label);
  11836 	BCM_UNPACK_U32(buf, var->l3a_lookup_class);
  11837 	BCM_UNPACK_U32(buf, var->l3a_expected_intf);
  11838 	BCM_UNPACK_U32(buf, var->l3a_rp);
  11839 	BCM_UNPACK_U32(buf, var->l3a_mc_group);
  11840 	BCM_UNPACK_U32(buf, var->l3a_expected_src_gport);
  11841 	BCM_UNPACK_U32(buf, var->flow_handle);
  11842 	BCM_UNPACK_U32(buf, var->flow_option_handle);
  11843 	{
  11844 		int _i;
  11845 
  11846 		for (_i = 0; _i < 20; _i++) {
  11847 			BCM_UNPACK_U32(buf, var->logical_fields[_i].id);
  11848 			BCM_UNPACK_U32(buf, var->logical_fields[_i].value);
  11849 		}
  11850 	}
  11851 	BCM_UNPACK_U32(buf, var->num_of_fields);
  11852 	return buf;
  11853 }
  11854 
  11855 uint8 *
  11856 _bcm_pack_l3_source_bind(uint8 *buf, bcm_l3_source_bind_t *var)
  11857 {
  11858 	BCM_PACK_U32(buf, var->flags);
  11859 	BCM_PACK_U32(buf, var->port);
  11860 	BCM_PACK_U32(buf, var->ip);
  11861 	{
  11862 		int _i;
  11863 
  11864 		for (_i = 0; _i < 16; _i++) {
  11865 			BCM_PACK_U8(buf, var->ip6[_i]);
  11866 		}
  11867 	}
  11868 	{
  11869 		int _i;
  11870 
  11871 		for (_i = 0; _i < 6; _i++) {
  11872 			BCM_PACK_U8(buf, var->mac[_i]);
  11873 		}
  11874 	}
  11875 	BCM_PACK_U32(buf, var->rate_id);
  11876 	BCM_PACK_U32(buf, var->ip_mask);
  11877 	{
  11878 		int _i;
  11879 
  11880 		for (_i = 0; _i < 16; _i++) {
  11881 			BCM_PACK_U8(buf, var->ip6_mask[_i]);
  11882 		}
  11883 	}
  11884 	BCM_PACK_U32(buf, var->session_id);
  11885 	return buf;
  11886 }
  11887 
  11888 uint8 *
  11889 _bcm_unpack_l3_source_bind(uint8 *buf, bcm_l3_source_bind_t *var)
  11890 {
  11891 	BCM_UNPACK_U32(buf, var->flags);
  11892 	BCM_UNPACK_U32(buf, var->port);
  11893 	BCM_UNPACK_U32(buf, var->ip);
  11894 	{
  11895 		int _i;
  11896 
  11897 		for (_i = 0; _i < 16; _i++) {
  11898 			BCM_UNPACK_U8(buf, var->ip6[_i]);
  11899 		}
  11900 	}
  11901 	{
  11902 		int _i;
  11903 
  11904 		for (_i = 0; _i < 6; _i++) {
  11905 			BCM_UNPACK_U8(buf, var->mac[_i]);
  11906 		}
  11907 	}
  11908 	BCM_UNPACK_U32(buf, var->rate_id);
  11909 	BCM_UNPACK_U32(buf, var->ip_mask);
  11910 	{
  11911 		int _i;
  11912 
  11913 		for (_i = 0; _i < 16; _i++) {
  11914 			BCM_UNPACK_U8(buf, var->ip6_mask[_i]);
  11915 		}
  11916 	}
  11917 	BCM_UNPACK_U32(buf, var->session_id);
  11918 	return buf;
  11919 }
  11920 
  11921 uint8 *
  11922 _bcm_pack_l3_vpbr_entry(uint8 *buf, bcm_l3_vpbr_entry_t *var)
  11923 {
  11924 	BCM_PACK_U32(buf, var->flags);
  11925 	BCM_PACK_U32(buf, var->priority);
  11926 	BCM_PACK_U32(buf, var->vrf);
  11927 	BCM_PACK_U32(buf, var->vrf_mask);
  11928 	BCM_PACK_U32(buf, var->sip_addr);
  11929 	BCM_PACK_U32(buf, var->sip_addr_mask);
  11930 	BCM_PACK_U32(buf, var->dip_addr);
  11931 	BCM_PACK_U32(buf, var->dip_addr_mask);
  11932 	{
  11933 		int _i;
  11934 
  11935 		for (_i = 0; _i < 16; _i++) {
  11936 			BCM_PACK_U8(buf, var->sip6_addr[_i]);
  11937 		}
  11938 	}
  11939 	{
  11940 		int _i;
  11941 
  11942 		for (_i = 0; _i < 16; _i++) {
  11943 			BCM_PACK_U8(buf, var->sip6_addr_mask[_i]);
  11944 		}
  11945 	}
  11946 	{
  11947 		int _i;
  11948 
  11949 		for (_i = 0; _i < 16; _i++) {
  11950 			BCM_PACK_U8(buf, var->dip6_addr[_i]);
  11951 		}
  11952 	}
  11953 	{
  11954 		int _i;
  11955 
  11956 		for (_i = 0; _i < 16; _i++) {
  11957 			BCM_PACK_U8(buf, var->dip6_addr_mask[_i]);
  11958 		}
  11959 	}
  11960 	BCM_PACK_U32(buf, var->dscp);
  11961 	BCM_PACK_U32(buf, var->dscp_mask);
  11962 	BCM_PACK_U32(buf, var->src_port);
  11963 	BCM_PACK_U32(buf, var->src_port_mask);
  11964 	BCM_PACK_U32(buf, var->dst_port);
  11965 	BCM_PACK_U32(buf, var->dst_port_mask);
  11966 	BCM_PACK_U32(buf, var->new_vrf);
  11967 	BCM_PACK_U32(buf, var->l3_intf_id);
  11968 	BCM_PACK_U32(buf, var->l3_intf_id_mask);
  11969 	BCM_PACK_U8(buf, var->ip_protocol);
  11970 	BCM_PACK_U8(buf, var->ip_protocol_mask);
  11971 	return buf;
  11972 }
  11973 
  11974 uint8 *
  11975 _bcm_unpack_l3_vpbr_entry(uint8 *buf, bcm_l3_vpbr_entry_t *var)
  11976 {
  11977 	BCM_UNPACK_U32(buf, var->flags);
  11978 	BCM_UNPACK_U32(buf, var->priority);
  11979 	BCM_UNPACK_U32(buf, var->vrf);
  11980 	BCM_UNPACK_U32(buf, var->vrf_mask);
  11981 	BCM_UNPACK_U32(buf, var->sip_addr);
  11982 	BCM_UNPACK_U32(buf, var->sip_addr_mask);
  11983 	BCM_UNPACK_U32(buf, var->dip_addr);
  11984 	BCM_UNPACK_U32(buf, var->dip_addr_mask);
  11985 	{
  11986 		int _i;
  11987 
  11988 		for (_i = 0; _i < 16; _i++) {
  11989 			BCM_UNPACK_U8(buf, var->sip6_addr[_i]);
  11990 		}
  11991 	}
  11992 	{
  11993 		int _i;
  11994 
  11995 		for (_i = 0; _i < 16; _i++) {
  11996 			BCM_UNPACK_U8(buf, var->sip6_addr_mask[_i]);
  11997 		}
  11998 	}
  11999 	{
  12000 		int _i;
  12001 
  12002 		for (_i = 0; _i < 16; _i++) {
  12003 			BCM_UNPACK_U8(buf, var->dip6_addr[_i]);
  12004 		}
  12005 	}
  12006 	{
  12007 		int _i;
  12008 
  12009 		for (_i = 0; _i < 16; _i++) {
  12010 			BCM_UNPACK_U8(buf, var->dip6_addr_mask[_i]);
  12011 		}
  12012 	}
  12013 	BCM_UNPACK_U32(buf, var->dscp);
  12014 	BCM_UNPACK_U32(buf, var->dscp_mask);
  12015 	BCM_UNPACK_U32(buf, var->src_port);
  12016 	BCM_UNPACK_U32(buf, var->src_port_mask);
  12017 	BCM_UNPACK_U32(buf, var->dst_port);
  12018 	BCM_UNPACK_U32(buf, var->dst_port_mask);
  12019 	BCM_UNPACK_U32(buf, var->new_vrf);
  12020 	BCM_UNPACK_U32(buf, var->l3_intf_id);
  12021 	BCM_UNPACK_U32(buf, var->l3_intf_id_mask);
  12022 	BCM_UNPACK_U8(buf, var->ip_protocol);
  12023 	BCM_UNPACK_U8(buf, var->ip_protocol_mask);
  12024 	return buf;
  12025 }
  12026 
  12027 #endif	/* INCLUDE_L3 */
  12028 
  12029 uint8 *
  12030 _bcm_pack_latency_monitor_cosq_info(uint8 *buf, bcm_latency_monitor_cosq_info_t *var)
  12031 {
  12032 	BCM_PACK_U8(buf, var->bucket_count);
  12033 	{
  12034 		int _i;
  12035 
  12036 		for (_i = 0; _i < 7; _i++) {
  12037 			BCM_PACK_U8(buf, var->latency_index_array[_i]);
  12038 		}
  12039 	}
  12040 	return buf;
  12041 }
  12042 
  12043 uint8 *
  12044 _bcm_unpack_latency_monitor_cosq_info(uint8 *buf, bcm_latency_monitor_cosq_info_t *var)
  12045 {
  12046 	BCM_UNPACK_U8(buf, var->bucket_count);
  12047 	{
  12048 		int _i;
  12049 
  12050 		for (_i = 0; _i < 7; _i++) {
  12051 			BCM_UNPACK_U8(buf, var->latency_index_array[_i]);
  12052 		}
  12053 	}
  12054 	return buf;
  12055 }
  12056 
  12057 uint8 *
  12058 _bcm_pack_latency_monitor_histogram(uint8 *buf, bcm_latency_monitor_histogram_t *var)
  12059 {
  12060 	BCM_PACK_U8(buf, var->histogram_size);
  12061 	{
  12062 		int _i;
  12063 
  12064 		for (_i = 0; _i < 8; _i++) {
  12065 			{
  12066 				uint32 _u32;
  12067 
  12068 				_u32 = COMPILER_64_HI(var->histogram[_i]);
  12069 				BCM_PACK_U32(buf, _u32);
  12070 				_u32 = COMPILER_64_LO(var->histogram[_i]);
  12071 				BCM_PACK_U32(buf, _u32);
  12072 			}
  12073 		}
  12074 	}
  12075 	return buf;
  12076 }
  12077 
  12078 uint8 *
  12079 _bcm_unpack_latency_monitor_histogram(uint8 *buf, bcm_latency_monitor_histogram_t *var)
  12080 {
  12081 	BCM_UNPACK_U8(buf, var->histogram_size);
  12082 	{
  12083 		int _i;
  12084 
  12085 		for (_i = 0; _i < 8; _i++) {
  12086 			{
  12087 				uint32 _u32h, _u32l;
  12088 
  12089 				BCM_UNPACK_U32(buf, _u32h);
  12090 				BCM_UNPACK_U32(buf, _u32l);
  12091 				COMPILER_64_SET(var->histogram[_i], _u32h, _u32l);
  12092 			}
  12093 		}
  12094 	}
  12095 	return buf;
  12096 }
  12097 
  12098 uint8 *
  12099 _bcm_pack_lb_lbg_weight(uint8 *buf, bcm_lb_lbg_weight_t *var)
  12100 {
  12101 	BCM_PACK_U32(buf, var->lbg_id);
  12102 	BCM_PACK_U32(buf, var->lbg_weight);
  12103 	return buf;
  12104 }
  12105 
  12106 uint8 *
  12107 _bcm_unpack_lb_lbg_weight(uint8 *buf, bcm_lb_lbg_weight_t *var)
  12108 {
  12109 	BCM_UNPACK_U32(buf, var->lbg_id);
  12110 	BCM_UNPACK_U32(buf, var->lbg_weight);
  12111 	return buf;
  12112 }
  12113 
  12114 uint8 *
  12115 _bcm_pack_lb_modem_packet_config(uint8 *buf, bcm_lb_modem_packet_config_t *var)
  12116 {
  12117 	BCM_PACK_U32(buf, var->pkt_format);
  12118 	{
  12119 		int _i;
  12120 
  12121 		for (_i = 0; _i < 6; _i++) {
  12122 			BCM_PACK_U8(buf, var->dst_mac[_i]);
  12123 		}
  12124 	}
  12125 	{
  12126 		int _i;
  12127 
  12128 		for (_i = 0; _i < 6; _i++) {
  12129 			BCM_PACK_U8(buf, var->src_mac[_i]);
  12130 		}
  12131 	}
  12132 	BCM_PACK_U16(buf, var->vlan);
  12133 	BCM_PACK_U32(buf, var->use_global_priority_map);
  12134 	return buf;
  12135 }
  12136 
  12137 uint8 *
  12138 _bcm_unpack_lb_modem_packet_config(uint8 *buf, bcm_lb_modem_packet_config_t *var)
  12139 {
  12140 	BCM_UNPACK_U32(buf, var->pkt_format);
  12141 	{
  12142 		int _i;
  12143 
  12144 		for (_i = 0; _i < 6; _i++) {
  12145 			BCM_UNPACK_U8(buf, var->dst_mac[_i]);
  12146 		}
  12147 	}
  12148 	{
  12149 		int _i;
  12150 
  12151 		for (_i = 0; _i < 6; _i++) {
  12152 			BCM_UNPACK_U8(buf, var->src_mac[_i]);
  12153 		}
  12154 	}
  12155 	BCM_UNPACK_U16(buf, var->vlan);
  12156 	BCM_UNPACK_U32(buf, var->use_global_priority_map);
  12157 	return buf;
  12158 }
  12159 
  12160 uint8 *
  12161 _bcm_pack_lb_modem_shaper_config(uint8 *buf, bcm_lb_modem_shaper_config_t *var)
  12162 {
  12163 	BCM_PACK_U32(buf, var->enable);
  12164 	BCM_PACK_U32(buf, var->rate);
  12165 	BCM_PACK_U32(buf, var->max_burst);
  12166 	return buf;
  12167 }
  12168 
  12169 uint8 *
  12170 _bcm_unpack_lb_modem_shaper_config(uint8 *buf, bcm_lb_modem_shaper_config_t *var)
  12171 {
  12172 	BCM_UNPACK_U32(buf, var->enable);
  12173 	BCM_UNPACK_U32(buf, var->rate);
  12174 	BCM_UNPACK_U32(buf, var->max_burst);
  12175 	return buf;
  12176 }
  12177 
  12178 uint8 *
  12179 _bcm_pack_lb_pkt_pri(uint8 *buf, bcm_lb_pkt_pri_t *var)
  12180 {
  12181 	BCM_PACK_U32(buf, var->pkt_pri);
  12182 	BCM_PACK_U32(buf, var->pkt_cfi);
  12183 	BCM_PACK_U32(buf, var->pkt_dp);
  12184 	return buf;
  12185 }
  12186 
  12187 uint8 *
  12188 _bcm_unpack_lb_pkt_pri(uint8 *buf, bcm_lb_pkt_pri_t *var)
  12189 {
  12190 	BCM_UNPACK_U32(buf, var->pkt_pri);
  12191 	BCM_UNPACK_U32(buf, var->pkt_cfi);
  12192 	BCM_UNPACK_U32(buf, var->pkt_dp);
  12193 	return buf;
  12194 }
  12195 
  12196 uint8 *
  12197 _bcm_pack_lb_rx_modem_map_config(uint8 *buf, bcm_lb_rx_modem_map_config_t *var)
  12198 {
  12199 	BCM_PACK_U32(buf, var->lbg_type);
  12200 	BCM_PACK_U32(buf, var->modem_id);
  12201 	return buf;
  12202 }
  12203 
  12204 uint8 *
  12205 _bcm_unpack_lb_rx_modem_map_config(uint8 *buf, bcm_lb_rx_modem_map_config_t *var)
  12206 {
  12207 	BCM_UNPACK_U32(buf, var->lbg_type);
  12208 	BCM_UNPACK_U32(buf, var->modem_id);
  12209 	return buf;
  12210 }
  12211 
  12212 uint8 *
  12213 _bcm_pack_lb_rx_modem_map_index(uint8 *buf, bcm_lb_rx_modem_map_index_t *var)
  12214 {
  12215 	BCM_PACK_U32(buf, var->port);
  12216 	BCM_PACK_U16(buf, var->vlan);
  12217 	return buf;
  12218 }
  12219 
  12220 uint8 *
  12221 _bcm_unpack_lb_rx_modem_map_index(uint8 *buf, bcm_lb_rx_modem_map_index_t *var)
  12222 {
  12223 	BCM_UNPACK_U32(buf, var->port);
  12224 	BCM_UNPACK_U16(buf, var->vlan);
  12225 	return buf;
  12226 }
  12227 
  12228 uint8 *
  12229 _bcm_pack_lb_tc_dp(uint8 *buf, bcm_lb_tc_dp_t *var)
  12230 {
  12231 	BCM_PACK_U32(buf, var->tc);
  12232 	BCM_PACK_U32(buf, var->dp);
  12233 	return buf;
  12234 }
  12235 
  12236 uint8 *
  12237 _bcm_unpack_lb_tc_dp(uint8 *buf, bcm_lb_tc_dp_t *var)
  12238 {
  12239 	BCM_UNPACK_U32(buf, var->tc);
  12240 	BCM_UNPACK_U32(buf, var->dp);
  12241 	return buf;
  12242 }
  12243 
  12244 uint8 *
  12245 _bcm_pack_mac(uint8 *buf, bcm_mac_t var)
  12246 {
  12247 	{
  12248 		int _i;
  12249 
  12250 		for (_i = 0; _i < 6; _i++) {
  12251 			BCM_PACK_U8(buf, var[_i]);
  12252 		}
  12253 	}
  12254 	return buf;
  12255 }
  12256 
  12257 uint8 *
  12258 _bcm_unpack_mac(uint8 *buf, bcm_mac_t var)
  12259 {
  12260 	{
  12261 		int _i;
  12262 
  12263 		for (_i = 0; _i < 6; _i++) {
  12264 			BCM_UNPACK_U8(buf, var[_i]);
  12265 		}
  12266 	}
  12267 	return buf;
  12268 }
  12269 
  12270 uint8 *
  12271 _bcm_pack_mcast_addr(uint8 *buf, bcm_mcast_addr_t *var)
  12272 {
  12273 	{
  12274 		int _i;
  12275 
  12276 		for (_i = 0; _i < 6; _i++) {
  12277 			BCM_PACK_U8(buf, var->mac[_i]);
  12278 		}
  12279 	}
  12280 	BCM_PACK_U16(buf, var->vid);
  12281 	BCM_PACK_U32(buf, var->cos_dst);
  12282 	buf = _bcm_pack_pbmp(buf, &(*var).pbmp);
  12283 	buf = _bcm_pack_pbmp(buf, &(*var).ubmp);
  12284 	BCM_PACK_U32(buf, var->l2mc_index);
  12285 	BCM_PACK_U32(buf, var->flags);
  12286 	BCM_PACK_U32(buf, var->distribution_class);
  12287 	return buf;
  12288 }
  12289 
  12290 uint8 *
  12291 _bcm_unpack_mcast_addr(uint8 *buf, bcm_mcast_addr_t *var)
  12292 {
  12293 	{
  12294 		int _i;
  12295 
  12296 		for (_i = 0; _i < 6; _i++) {
  12297 			BCM_UNPACK_U8(buf, var->mac[_i]);
  12298 		}
  12299 	}
  12300 	BCM_UNPACK_U16(buf, var->vid);
  12301 	BCM_UNPACK_U32(buf, var->cos_dst);
  12302 	buf = _bcm_unpack_pbmp(buf, &(*var).pbmp);
  12303 	buf = _bcm_unpack_pbmp(buf, &(*var).ubmp);
  12304 	BCM_UNPACK_U32(buf, var->l2mc_index);
  12305 	BCM_UNPACK_U32(buf, var->flags);
  12306 	BCM_UNPACK_U32(buf, var->distribution_class);
  12307 	return buf;
  12308 }
  12309 
  12310 #ifdef	INCLUDE_L3
  12311 
  12312 uint8 *
  12313 _bcm_pack_mim_port(uint8 *buf, bcm_mim_port_t *var)
  12314 {
  12315 	BCM_PACK_U32(buf, var->mim_port_id);
  12316 	BCM_PACK_U32(buf, var->flags);
  12317 	BCM_PACK_U32(buf, var->if_class);
  12318 	BCM_PACK_U32(buf, var->port);
  12319 	BCM_PACK_U32(buf, var->criteria);
  12320 	BCM_PACK_U16(buf, var->match_vlan);
  12321 	BCM_PACK_U16(buf, var->match_inner_vlan);
  12322 	BCM_PACK_U32(buf, var->match_label);
  12323 	BCM_PACK_U16(buf, var->match_tunnel_vlan);
  12324 	{
  12325 		int _i;
  12326 
  12327 		for (_i = 0; _i < 6; _i++) {
  12328 			BCM_PACK_U8(buf, var->match_tunnel_srcmac[_i]);
  12329 		}
  12330 	}
  12331 	BCM_PACK_U16(buf, var->match_service_tpid);
  12332 	BCM_PACK_U16(buf, var->egress_tunnel_vlan);
  12333 	{
  12334 		int _i;
  12335 
  12336 		for (_i = 0; _i < 6; _i++) {
  12337 			BCM_PACK_U8(buf, var->egress_tunnel_srcmac[_i]);
  12338 		}
  12339 	}
  12340 	{
  12341 		int _i;
  12342 
  12343 		for (_i = 0; _i < 6; _i++) {
  12344 			BCM_PACK_U8(buf, var->egress_tunnel_dstmac[_i]);
  12345 		}
  12346 	}
  12347 	BCM_PACK_U32(buf, var->egress_tunnel_service);
  12348 	BCM_PACK_U16(buf, var->egress_service_tpid);
  12349 	BCM_PACK_U16(buf, var->egress_service_vlan);
  12350 	BCM_PACK_U8(buf, var->egress_service_pri);
  12351 	BCM_PACK_U8(buf, var->egress_service_cfi);
  12352 	BCM_PACK_U32(buf, var->encap_id);
  12353 	BCM_PACK_U32(buf, var->failover_id);
  12354 	BCM_PACK_U32(buf, var->failover_gport_id);
  12355 	BCM_PACK_U32(buf, var->policer_id);
  12356 	BCM_PACK_U32(buf, var->failover_mc_group);
  12357 	BCM_PACK_U32(buf, var->ingress_failover_id);
  12358 	BCM_PACK_U32(buf, var->service_encap_id);
  12359 	BCM_PACK_U8(buf, var->int_pri);
  12360 	BCM_PACK_U32(buf, var->network_group_id);
  12361 	BCM_PACK_U32(buf, var->inlif_counting_profile);
  12362 	BCM_PACK_U32(buf, var->outlif_counting_profile);
  12363 	return buf;
  12364 }
  12365 
  12366 uint8 *
  12367 _bcm_unpack_mim_port(uint8 *buf, bcm_mim_port_t *var)
  12368 {
  12369 	BCM_UNPACK_U32(buf, var->mim_port_id);
  12370 	BCM_UNPACK_U32(buf, var->flags);
  12371 	BCM_UNPACK_U32(buf, var->if_class);
  12372 	BCM_UNPACK_U32(buf, var->port);
  12373 	BCM_UNPACK_U32(buf, var->criteria);
  12374 	BCM_UNPACK_U16(buf, var->match_vlan);
  12375 	BCM_UNPACK_U16(buf, var->match_inner_vlan);
  12376 	BCM_UNPACK_U32(buf, var->match_label);
  12377 	BCM_UNPACK_U16(buf, var->match_tunnel_vlan);
  12378 	{
  12379 		int _i;
  12380 
  12381 		for (_i = 0; _i < 6; _i++) {
  12382 			BCM_UNPACK_U8(buf, var->match_tunnel_srcmac[_i]);
  12383 		}
  12384 	}
  12385 	BCM_UNPACK_U16(buf, var->match_service_tpid);
  12386 	BCM_UNPACK_U16(buf, var->egress_tunnel_vlan);
  12387 	{
  12388 		int _i;
  12389 
  12390 		for (_i = 0; _i < 6; _i++) {
  12391 			BCM_UNPACK_U8(buf, var->egress_tunnel_srcmac[_i]);
  12392 		}
  12393 	}
  12394 	{
  12395 		int _i;
  12396 
  12397 		for (_i = 0; _i < 6; _i++) {
  12398 			BCM_UNPACK_U8(buf, var->egress_tunnel_dstmac[_i]);
  12399 		}
  12400 	}
  12401 	BCM_UNPACK_U32(buf, var->egress_tunnel_service);
  12402 	BCM_UNPACK_U16(buf, var->egress_service_tpid);
  12403 	BCM_UNPACK_U16(buf, var->egress_service_vlan);
  12404 	BCM_UNPACK_U8(buf, var->egress_service_pri);
  12405 	BCM_UNPACK_U8(buf, var->egress_service_cfi);
  12406 	BCM_UNPACK_U32(buf, var->encap_id);
  12407 	BCM_UNPACK_U32(buf, var->failover_id);
  12408 	BCM_UNPACK_U32(buf, var->failover_gport_id);
  12409 	BCM_UNPACK_U32(buf, var->policer_id);
  12410 	BCM_UNPACK_U32(buf, var->failover_mc_group);
  12411 	BCM_UNPACK_U32(buf, var->ingress_failover_id);
  12412 	BCM_UNPACK_U32(buf, var->service_encap_id);
  12413 	BCM_UNPACK_U8(buf, var->int_pri);
  12414 	BCM_UNPACK_U32(buf, var->network_group_id);
  12415 	BCM_UNPACK_U32(buf, var->inlif_counting_profile);
  12416 	BCM_UNPACK_U32(buf, var->outlif_counting_profile);
  12417 	return buf;
  12418 }
  12419 
  12420 uint8 *
  12421 _bcm_pack_mim_vpn_config(uint8 *buf, bcm_mim_vpn_config_t *var)
  12422 {
  12423 	BCM_PACK_U32(buf, var->flags);
  12424 	BCM_PACK_U16(buf, var->vpn);
  12425 	BCM_PACK_U32(buf, var->lookup_id);
  12426 	BCM_PACK_U16(buf, var->match_service_tpid);
  12427 	BCM_PACK_U32(buf, var->broadcast_group);
  12428 	BCM_PACK_U32(buf, var->unknown_unicast_group);
  12429 	BCM_PACK_U32(buf, var->unknown_multicast_group);
  12430 	BCM_PACK_U32(buf, var->policer_id);
  12431 	BCM_PACK_U32(buf, var->service_encap_id);
  12432 	BCM_PACK_U8(buf, var->int_pri);
  12433 	BCM_PACK_U32(buf, var->qos_map_id);
  12434 	BCM_PACK_U16(buf, var->tunnel_vlan);
  12435 	BCM_PACK_U32(buf, var->inlif_counting_profile);
  12436 	BCM_PACK_U32(buf, var->outlif_counting_profile);
  12437 	BCM_PACK_U32(buf, var->protocol_pkt.mmrp_action);
  12438 	BCM_PACK_U32(buf, var->protocol_pkt.srp_action);
  12439 	BCM_PACK_U32(buf, var->protocol_pkt.arp_reply_action);
  12440 	BCM_PACK_U32(buf, var->protocol_pkt.arp_request_action);
  12441 	BCM_PACK_U32(buf, var->protocol_pkt.nd_action);
  12442 	BCM_PACK_U32(buf, var->protocol_pkt.dhcp_action);
  12443 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_report_leave_action);
  12444 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_query_action);
  12445 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_unknown_msg_action);
  12446 	BCM_PACK_U32(buf, var->protocol_pkt.mld_report_done_action);
  12447 	BCM_PACK_U32(buf, var->protocol_pkt.mld_query_action);
  12448 	BCM_PACK_U32(buf, var->protocol_pkt.ip4_rsvd_mc_action);
  12449 	BCM_PACK_U32(buf, var->protocol_pkt.ip6_rsvd_mc_action);
  12450 	BCM_PACK_U32(buf, var->protocol_pkt.ip4_mc_router_adv_action);
  12451 	BCM_PACK_U32(buf, var->protocol_pkt.ip6_mc_router_adv_action);
  12452 	BCM_PACK_U32(buf, var->protocol_pkt.flood_action_according_to_pfm);
  12453 	BCM_PACK_U16(buf, var->egress_service_tpid);
  12454 	{
  12455 		int _i;
  12456 
  12457 		for (_i = 0; _i < 6; _i++) {
  12458 			BCM_PACK_U8(buf, var->match_service_smac[_i]);
  12459 		}
  12460 	}
  12461 	return buf;
  12462 }
  12463 
  12464 uint8 *
  12465 _bcm_unpack_mim_vpn_config(uint8 *buf, bcm_mim_vpn_config_t *var)
  12466 {
  12467 	BCM_UNPACK_U32(buf, var->flags);
  12468 	BCM_UNPACK_U16(buf, var->vpn);
  12469 	BCM_UNPACK_U32(buf, var->lookup_id);
  12470 	BCM_UNPACK_U16(buf, var->match_service_tpid);
  12471 	BCM_UNPACK_U32(buf, var->broadcast_group);
  12472 	BCM_UNPACK_U32(buf, var->unknown_unicast_group);
  12473 	BCM_UNPACK_U32(buf, var->unknown_multicast_group);
  12474 	BCM_UNPACK_U32(buf, var->policer_id);
  12475 	BCM_UNPACK_U32(buf, var->service_encap_id);
  12476 	BCM_UNPACK_U8(buf, var->int_pri);
  12477 	BCM_UNPACK_U32(buf, var->qos_map_id);
  12478 	BCM_UNPACK_U16(buf, var->tunnel_vlan);
  12479 	BCM_UNPACK_U32(buf, var->inlif_counting_profile);
  12480 	BCM_UNPACK_U32(buf, var->outlif_counting_profile);
  12481 	BCM_UNPACK_U32(buf, var->protocol_pkt.mmrp_action);
  12482 	BCM_UNPACK_U32(buf, var->protocol_pkt.srp_action);
  12483 	BCM_UNPACK_U32(buf, var->protocol_pkt.arp_reply_action);
  12484 	BCM_UNPACK_U32(buf, var->protocol_pkt.arp_request_action);
  12485 	BCM_UNPACK_U32(buf, var->protocol_pkt.nd_action);
  12486 	BCM_UNPACK_U32(buf, var->protocol_pkt.dhcp_action);
  12487 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_report_leave_action);
  12488 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_query_action);
  12489 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_unknown_msg_action);
  12490 	BCM_UNPACK_U32(buf, var->protocol_pkt.mld_report_done_action);
  12491 	BCM_UNPACK_U32(buf, var->protocol_pkt.mld_query_action);
  12492 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip4_rsvd_mc_action);
  12493 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip6_rsvd_mc_action);
  12494 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip4_mc_router_adv_action);
  12495 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip6_mc_router_adv_action);
  12496 	BCM_UNPACK_U32(buf, var->protocol_pkt.flood_action_according_to_pfm);
  12497 	BCM_UNPACK_U16(buf, var->egress_service_tpid);
  12498 	{
  12499 		int _i;
  12500 
  12501 		for (_i = 0; _i < 6; _i++) {
  12502 			BCM_UNPACK_U8(buf, var->match_service_smac[_i]);
  12503 		}
  12504 	}
  12505 	return buf;
  12506 }
  12507 
  12508 #endif	/* INCLUDE_L3 */
  12509 
  12510 uint8 *
  12511 _bcm_pack_mirror_destination(uint8 *buf, bcm_mirror_destination_t *var)
  12512 {
  12513 	BCM_PACK_U32(buf, var->mirror_dest_id);
  12514 	BCM_PACK_U32(buf, var->flags);
  12515 	BCM_PACK_U32(buf, var->gport);
  12516 	BCM_PACK_U8(buf, var->version);
  12517 	BCM_PACK_U8(buf, var->tos);
  12518 	BCM_PACK_U8(buf, var->ttl);
  12519 	BCM_PACK_U32(buf, var->src_addr);
  12520 	BCM_PACK_U32(buf, var->dst_addr);
  12521 	{
  12522 		int _i;
  12523 
  12524 		for (_i = 0; _i < 16; _i++) {
  12525 			BCM_PACK_U8(buf, var->src6_addr[_i]);
  12526 		}
  12527 	}
  12528 	{
  12529 		int _i;
  12530 
  12531 		for (_i = 0; _i < 16; _i++) {
  12532 			BCM_PACK_U8(buf, var->dst6_addr[_i]);
  12533 		}
  12534 	}
  12535 	BCM_PACK_U32(buf, var->flow_label);
  12536 	{
  12537 		int _i;
  12538 
  12539 		for (_i = 0; _i < 6; _i++) {
  12540 			BCM_PACK_U8(buf, var->src_mac[_i]);
  12541 		}
  12542 	}
  12543 	{
  12544 		int _i;
  12545 
  12546 		for (_i = 0; _i < 6; _i++) {
  12547 			BCM_PACK_U8(buf, var->dst_mac[_i]);
  12548 		}
  12549 	}
  12550 	BCM_PACK_U16(buf, var->tpid);
  12551 	BCM_PACK_U16(buf, var->vlan_id);
  12552 	BCM_PACK_U32(buf, var->trill_src_name);
  12553 	BCM_PACK_U32(buf, var->trill_dst_name);
  12554 	BCM_PACK_U32(buf, var->trill_hopcount);
  12555 	BCM_PACK_U16(buf, var->niv_src_vif);
  12556 	BCM_PACK_U16(buf, var->niv_dst_vif);
  12557 	BCM_PACK_U32(buf, var->niv_flags);
  12558 	BCM_PACK_U16(buf, var->gre_protocol);
  12559 	BCM_PACK_U32(buf, var->policer_id);
  12560 	BCM_PACK_U32(buf, var->stat_id);
  12561 	BCM_PACK_U32(buf, var->stat_id2);
  12562 	BCM_PACK_U32(buf, var->encap_id);
  12563 	BCM_PACK_U32(buf, var->tunnel_id);
  12564 	BCM_PACK_U16(buf, var->span_id);
  12565 	BCM_PACK_U8(buf, var->pkt_prio);
  12566 	BCM_PACK_U32(buf, var->sample_rate_dividend);
  12567 	BCM_PACK_U32(buf, var->sample_rate_divisor);
  12568 	BCM_PACK_U8(buf, var->int_pri);
  12569 	BCM_PACK_U16(buf, var->etag_src_vid);
  12570 	BCM_PACK_U16(buf, var->etag_dst_vid);
  12571 	BCM_PACK_U16(buf, var->udp_src_port);
  12572 	BCM_PACK_U16(buf, var->udp_dst_port);
  12573 	BCM_PACK_U32(buf, var->egress_sample_rate_dividend);
  12574 	BCM_PACK_U32(buf, var->egress_sample_rate_divisor);
  12575 	BCM_PACK_U8(buf, var->recycle_context);
  12576 	BCM_PACK_U16(buf, var->packet_copy_size);
  12577 	BCM_PACK_U16(buf, var->egress_packet_copy_size);
  12578 	BCM_PACK_U32(buf, var->packet_control_updates.valid);
  12579 	BCM_PACK_U32(buf, var->packet_control_updates.color);
  12580 	BCM_PACK_U8(buf, var->packet_control_updates.prio);
  12581 	BCM_PACK_U8(buf, var->packet_control_updates.ecn_value);
  12582 	BCM_PACK_U8(buf, var->packet_control_updates.cnm_cancel);
  12583 	BCM_PACK_U32(buf, var->packet_control_updates.trunk_hash_result);
  12584 	BCM_PACK_U32(buf, var->packet_control_updates.in_port);
  12585 	BCM_PACK_U16(buf, var->packet_control_updates.vsq);
  12586 	BCM_PACK_U16(buf, var->packet_control_updates.fabric_header_editing);
  12587 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh_valid);
  12588 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.internal_valid);
  12589 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts_valid);
  12590 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.packet_size);
  12591 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.prio);
  12592 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.src_sysport);
  12593 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.dst_port);
  12594 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.ftmh_dp);
  12595 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.action_type);
  12596 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.out_mirror_disable);
  12597 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.is_mc_traffic);
  12598 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.multicast_id);
  12599 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.out_vport);
  12600 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.cni);
  12601 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.lb_ext.valid);
  12602 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.lb_ext.lb_key);
  12603 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.dest_ext.valid);
  12604 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.dest_ext.dst_sysport);
  12605 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.stack_ext.valid);
  12606 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.stack_ext.stack_route_history_bmp);
  12607 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.valid);
  12608 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_type);
  12609 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.direction);
  12610 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.truncated_flag);
  12611 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.en);
  12612 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.cos);
  12613 	BCM_PACK_U16(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.vlan);
  12614 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.flow_id_ext.valid);
  12615 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.flow_id_ext.flow_id);
  12616 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.flow_id_ext.flow_profile);
  12617 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.internal.trap_qualifier);
  12618 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.internal.trap_id);
  12619 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.otsh_type);
  12620 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.oam_sub_type);
  12621 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.oam_up_mep);
  12622 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.tp_cmd);
  12623 	BCM_PACK_U8(buf, var->packet_control_updates.header_fabric.oam_ts.ts_encap);
  12624 	{
  12625 		uint32 _u32;
  12626 
  12627 		_u32 = COMPILER_64_HI(var->packet_control_updates.header_fabric.oam_ts.oam_ts_data);
  12628 		BCM_PACK_U32(buf, _u32);
  12629 		_u32 = COMPILER_64_LO(var->packet_control_updates.header_fabric.oam_ts.oam_ts_data);
  12630 		BCM_PACK_U32(buf, _u32);
  12631 	}
  12632 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.latency_flow_ID);
  12633 	BCM_PACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.offset);
  12634 	BCM_PACK_U32(buf, var->packet_control_updates.metadata);
  12635 	BCM_PACK_U32(buf, var->rtag);
  12636 	BCM_PACK_U8(buf, var->df);
  12637 	BCM_PACK_U8(buf, var->truncate);
  12638 	BCM_PACK_U16(buf, var->template_id);
  12639 	BCM_PACK_U32(buf, var->observation_domain);
  12640 	BCM_PACK_U32(buf, var->is_recycle_strict_priority);
  12641 	BCM_PACK_U32(buf, var->ext_stat_id[0]);
  12642 	BCM_PACK_U32(buf, var->ext_stat_id[1]);
  12643 	BCM_PACK_U32(buf, var->ext_stat_id[2]);
  12644 	BCM_PACK_U32(buf, var->ext_stat_id[3]);
  12645 	BCM_PACK_U32(buf, var->flags2);
  12646 	BCM_PACK_U32(buf, var->vni);
  12647 	BCM_PACK_U32(buf, var->gre_seq_number);
  12648 	BCM_PACK_U8(buf, var->erspan_header.truncated_flag);
  12649 	BCM_PACK_U16(buf, var->erspan_header.session_id);
  12650 	BCM_PACK_U16(buf, var->erspan_header.gbp_sid);
  12651 	BCM_PACK_U8(buf, var->erspan_header.hw_id);
  12652 	BCM_PACK_U8(buf, var->erspan_header.timestamp_granularity);
  12653 	BCM_PACK_U8(buf, var->erspan_header.optional_hdr);
  12654 	BCM_PACK_U8(buf, var->erspan_header.platform_id);
  12655 	BCM_PACK_U16(buf, var->erspan_header.user_defined_value);
  12656 	BCM_PACK_U16(buf, var->erspan_header.switch_id);
  12657 	BCM_PACK_U32(buf, var->initial_seq_number);
  12658 	BCM_PACK_U32(buf, var->meta_data_type);
  12659 	BCM_PACK_U16(buf, var->meta_data);
  12660 	BCM_PACK_U32(buf, var->ext_stat_valid);
  12661 	BCM_PACK_U32(buf, var->ext_stat_type_id[0]);
  12662 	BCM_PACK_U32(buf, var->ext_stat_type_id[1]);
  12663 	BCM_PACK_U32(buf, var->ext_stat_type_id[2]);
  12664 	BCM_PACK_U32(buf, var->ext_stat_type_id[3]);
  12665 	return buf;
  12666 }
  12667 
  12668 uint8 *
  12669 _bcm_unpack_mirror_destination(uint8 *buf, bcm_mirror_destination_t *var)
  12670 {
  12671 	BCM_UNPACK_U32(buf, var->mirror_dest_id);
  12672 	BCM_UNPACK_U32(buf, var->flags);
  12673 	BCM_UNPACK_U32(buf, var->gport);
  12674 	BCM_UNPACK_U8(buf, var->version);
  12675 	BCM_UNPACK_U8(buf, var->tos);
  12676 	BCM_UNPACK_U8(buf, var->ttl);
  12677 	BCM_UNPACK_U32(buf, var->src_addr);
  12678 	BCM_UNPACK_U32(buf, var->dst_addr);
  12679 	{
  12680 		int _i;
  12681 
  12682 		for (_i = 0; _i < 16; _i++) {
  12683 			BCM_UNPACK_U8(buf, var->src6_addr[_i]);
  12684 		}
  12685 	}
  12686 	{
  12687 		int _i;
  12688 
  12689 		for (_i = 0; _i < 16; _i++) {
  12690 			BCM_UNPACK_U8(buf, var->dst6_addr[_i]);
  12691 		}
  12692 	}
  12693 	BCM_UNPACK_U32(buf, var->flow_label);
  12694 	{
  12695 		int _i;
  12696 
  12697 		for (_i = 0; _i < 6; _i++) {
  12698 			BCM_UNPACK_U8(buf, var->src_mac[_i]);
  12699 		}
  12700 	}
  12701 	{
  12702 		int _i;
  12703 
  12704 		for (_i = 0; _i < 6; _i++) {
  12705 			BCM_UNPACK_U8(buf, var->dst_mac[_i]);
  12706 		}
  12707 	}
  12708 	BCM_UNPACK_U16(buf, var->tpid);
  12709 	BCM_UNPACK_U16(buf, var->vlan_id);
  12710 	BCM_UNPACK_U32(buf, var->trill_src_name);
  12711 	BCM_UNPACK_U32(buf, var->trill_dst_name);
  12712 	BCM_UNPACK_U32(buf, var->trill_hopcount);
  12713 	BCM_UNPACK_U16(buf, var->niv_src_vif);
  12714 	BCM_UNPACK_U16(buf, var->niv_dst_vif);
  12715 	BCM_UNPACK_U32(buf, var->niv_flags);
  12716 	BCM_UNPACK_U16(buf, var->gre_protocol);
  12717 	BCM_UNPACK_U32(buf, var->policer_id);
  12718 	BCM_UNPACK_U32(buf, var->stat_id);
  12719 	BCM_UNPACK_U32(buf, var->stat_id2);
  12720 	BCM_UNPACK_U32(buf, var->encap_id);
  12721 	BCM_UNPACK_U32(buf, var->tunnel_id);
  12722 	BCM_UNPACK_U16(buf, var->span_id);
  12723 	BCM_UNPACK_U8(buf, var->pkt_prio);
  12724 	BCM_UNPACK_U32(buf, var->sample_rate_dividend);
  12725 	BCM_UNPACK_U32(buf, var->sample_rate_divisor);
  12726 	BCM_UNPACK_U8(buf, var->int_pri);
  12727 	BCM_UNPACK_U16(buf, var->etag_src_vid);
  12728 	BCM_UNPACK_U16(buf, var->etag_dst_vid);
  12729 	BCM_UNPACK_U16(buf, var->udp_src_port);
  12730 	BCM_UNPACK_U16(buf, var->udp_dst_port);
  12731 	BCM_UNPACK_U32(buf, var->egress_sample_rate_dividend);
  12732 	BCM_UNPACK_U32(buf, var->egress_sample_rate_divisor);
  12733 	BCM_UNPACK_U8(buf, var->recycle_context);
  12734 	BCM_UNPACK_U16(buf, var->packet_copy_size);
  12735 	BCM_UNPACK_U16(buf, var->egress_packet_copy_size);
  12736 	BCM_UNPACK_U32(buf, var->packet_control_updates.valid);
  12737 	BCM_UNPACK_U32(buf, var->packet_control_updates.color);
  12738 	BCM_UNPACK_U8(buf, var->packet_control_updates.prio);
  12739 	BCM_UNPACK_U8(buf, var->packet_control_updates.ecn_value);
  12740 	BCM_UNPACK_U8(buf, var->packet_control_updates.cnm_cancel);
  12741 	BCM_UNPACK_U32(buf, var->packet_control_updates.trunk_hash_result);
  12742 	BCM_UNPACK_U32(buf, var->packet_control_updates.in_port);
  12743 	BCM_UNPACK_U16(buf, var->packet_control_updates.vsq);
  12744 	BCM_UNPACK_U16(buf, var->packet_control_updates.fabric_header_editing);
  12745 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh_valid);
  12746 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.internal_valid);
  12747 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts_valid);
  12748 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.packet_size);
  12749 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.prio);
  12750 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.src_sysport);
  12751 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.dst_port);
  12752 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.ftmh_dp);
  12753 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.action_type);
  12754 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.out_mirror_disable);
  12755 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.is_mc_traffic);
  12756 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.multicast_id);
  12757 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.out_vport);
  12758 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.cni);
  12759 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.lb_ext.valid);
  12760 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.lb_ext.lb_key);
  12761 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.dest_ext.valid);
  12762 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.dest_ext.dst_sysport);
  12763 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.stack_ext.valid);
  12764 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.stack_ext.stack_route_history_bmp);
  12765 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.valid);
  12766 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_type);
  12767 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.direction);
  12768 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.truncated_flag);
  12769 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.en);
  12770 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.cos);
  12771 	BCM_UNPACK_U16(buf, var->packet_control_updates.header_fabric.ftmh.ase_ext.ase_info.erspan_info.vlan);
  12772 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.flow_id_ext.valid);
  12773 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.ftmh.flow_id_ext.flow_id);
  12774 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.ftmh.flow_id_ext.flow_profile);
  12775 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.internal.trap_qualifier);
  12776 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.internal.trap_id);
  12777 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.otsh_type);
  12778 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.oam_sub_type);
  12779 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.oam_up_mep);
  12780 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.tp_cmd);
  12781 	BCM_UNPACK_U8(buf, var->packet_control_updates.header_fabric.oam_ts.ts_encap);
  12782 	{
  12783 		uint32 _u32h, _u32l;
  12784 
  12785 		BCM_UNPACK_U32(buf, _u32h);
  12786 		BCM_UNPACK_U32(buf, _u32l);
  12787 		COMPILER_64_SET(var->packet_control_updates.header_fabric.oam_ts.oam_ts_data, _u32h, _u32l);
  12788 	}
  12789 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.latency_flow_ID);
  12790 	BCM_UNPACK_U32(buf, var->packet_control_updates.header_fabric.oam_ts.offset);
  12791 	BCM_UNPACK_U32(buf, var->packet_control_updates.metadata);
  12792 	BCM_UNPACK_U32(buf, var->rtag);
  12793 	BCM_UNPACK_U8(buf, var->df);
  12794 	BCM_UNPACK_U8(buf, var->truncate);
  12795 	BCM_UNPACK_U16(buf, var->template_id);
  12796 	BCM_UNPACK_U32(buf, var->observation_domain);
  12797 	BCM_UNPACK_U32(buf, var->is_recycle_strict_priority);
  12798 	BCM_UNPACK_U32(buf, var->ext_stat_id[0]);
  12799 	BCM_UNPACK_U32(buf, var->ext_stat_id[1]);
  12800 	BCM_UNPACK_U32(buf, var->ext_stat_id[2]);
  12801 	BCM_UNPACK_U32(buf, var->ext_stat_id[3]);
  12802 	BCM_UNPACK_U32(buf, var->flags2);
  12803 	BCM_UNPACK_U32(buf, var->vni);
  12804 	BCM_UNPACK_U32(buf, var->gre_seq_number);
  12805 	BCM_UNPACK_U8(buf, var->erspan_header.truncated_flag);
  12806 	BCM_UNPACK_U16(buf, var->erspan_header.session_id);
  12807 	BCM_UNPACK_U16(buf, var->erspan_header.gbp_sid);
  12808 	BCM_UNPACK_U8(buf, var->erspan_header.hw_id);
  12809 	BCM_UNPACK_U8(buf, var->erspan_header.timestamp_granularity);
  12810 	BCM_UNPACK_U8(buf, var->erspan_header.optional_hdr);
  12811 	BCM_UNPACK_U8(buf, var->erspan_header.platform_id);
  12812 	BCM_UNPACK_U16(buf, var->erspan_header.user_defined_value);
  12813 	BCM_UNPACK_U16(buf, var->erspan_header.switch_id);
  12814 	BCM_UNPACK_U32(buf, var->initial_seq_number);
  12815 	BCM_UNPACK_U32(buf, var->meta_data_type);
  12816 	BCM_UNPACK_U16(buf, var->meta_data);
  12817 	BCM_UNPACK_U32(buf, var->ext_stat_valid);
  12818 	BCM_UNPACK_U32(buf, var->ext_stat_type_id[0]);
  12819 	BCM_UNPACK_U32(buf, var->ext_stat_type_id[1]);
  12820 	BCM_UNPACK_U32(buf, var->ext_stat_type_id[2]);
  12821 	BCM_UNPACK_U32(buf, var->ext_stat_type_id[3]);
  12822 	return buf;
  12823 }
  12824 
  12825 uint8 *
  12826 _bcm_pack_mirror_header_info(uint8 *buf, bcm_mirror_header_info_t *var)
  12827 {
  12828 	BCM_PACK_U32(buf, var->tm.src_sysport);
  12829 	BCM_PACK_U8(buf, var->tm.tc);
  12830 	BCM_PACK_U8(buf, var->tm.dp);
  12831 	BCM_PACK_U8(buf, var->tm.is_mc_traffic);
  12832 	BCM_PACK_U32(buf, var->tm.mc_id);
  12833 	BCM_PACK_U32(buf, var->tm.out_vport);
  12834 	BCM_PACK_U8(buf, var->tm.ase_ext.valid);
  12835 	BCM_PACK_U32(buf, var->tm.ase_ext.ase_type);
  12836 	BCM_PACK_U8(buf, var->tm.ase_ext.ase_info.erspan_info.direction);
  12837 	BCM_PACK_U8(buf, var->tm.ase_ext.ase_info.erspan_info.truncated_flag);
  12838 	BCM_PACK_U8(buf, var->tm.ase_ext.ase_info.erspan_info.en);
  12839 	BCM_PACK_U8(buf, var->tm.ase_ext.ase_info.erspan_info.cos);
  12840 	BCM_PACK_U16(buf, var->tm.ase_ext.ase_info.erspan_info.vlan);
  12841 	BCM_PACK_U8(buf, var->tm.flow_id_ext.valid);
  12842 	BCM_PACK_U32(buf, var->tm.flow_id_ext.flow_id);
  12843 	BCM_PACK_U8(buf, var->tm.flow_id_ext.flow_profile);
  12844 	BCM_PACK_U8(buf, var->pp.tailedit_en);
  12845 	BCM_PACK_U32(buf, var->pp.out_vport_ext[0]);
  12846 	BCM_PACK_U32(buf, var->pp.out_vport_ext[1]);
  12847 	BCM_PACK_U32(buf, var->pp.out_vport_ext[2]);
  12848 	BCM_PACK_U8(buf, var->udh[0].size);
  12849 	BCM_PACK_U32(buf, var->udh[0].data);
  12850 	BCM_PACK_U8(buf, var->udh[1].size);
  12851 	BCM_PACK_U32(buf, var->udh[1].data);
  12852 	BCM_PACK_U8(buf, var->udh[2].size);
  12853 	BCM_PACK_U32(buf, var->udh[2].data);
  12854 	BCM_PACK_U8(buf, var->udh[3].size);
  12855 	BCM_PACK_U32(buf, var->udh[3].data);
  12856 	return buf;
  12857 }
  12858 
  12859 uint8 *
  12860 _bcm_unpack_mirror_header_info(uint8 *buf, bcm_mirror_header_info_t *var)
  12861 {
  12862 	BCM_UNPACK_U32(buf, var->tm.src_sysport);
  12863 	BCM_UNPACK_U8(buf, var->tm.tc);
  12864 	BCM_UNPACK_U8(buf, var->tm.dp);
  12865 	BCM_UNPACK_U8(buf, var->tm.is_mc_traffic);
  12866 	BCM_UNPACK_U32(buf, var->tm.mc_id);
  12867 	BCM_UNPACK_U32(buf, var->tm.out_vport);
  12868 	BCM_UNPACK_U8(buf, var->tm.ase_ext.valid);
  12869 	BCM_UNPACK_U32(buf, var->tm.ase_ext.ase_type);
  12870 	BCM_UNPACK_U8(buf, var->tm.ase_ext.ase_info.erspan_info.direction);
  12871 	BCM_UNPACK_U8(buf, var->tm.ase_ext.ase_info.erspan_info.truncated_flag);
  12872 	BCM_UNPACK_U8(buf, var->tm.ase_ext.ase_info.erspan_info.en);
  12873 	BCM_UNPACK_U8(buf, var->tm.ase_ext.ase_info.erspan_info.cos);
  12874 	BCM_UNPACK_U16(buf, var->tm.ase_ext.ase_info.erspan_info.vlan);
  12875 	BCM_UNPACK_U8(buf, var->tm.flow_id_ext.valid);
  12876 	BCM_UNPACK_U32(buf, var->tm.flow_id_ext.flow_id);
  12877 	BCM_UNPACK_U8(buf, var->tm.flow_id_ext.flow_profile);
  12878 	BCM_UNPACK_U8(buf, var->pp.tailedit_en);
  12879 	BCM_UNPACK_U32(buf, var->pp.out_vport_ext[0]);
  12880 	BCM_UNPACK_U32(buf, var->pp.out_vport_ext[1]);
  12881 	BCM_UNPACK_U32(buf, var->pp.out_vport_ext[2]);
  12882 	BCM_UNPACK_U8(buf, var->udh[0].size);
  12883 	BCM_UNPACK_U32(buf, var->udh[0].data);
  12884 	BCM_UNPACK_U8(buf, var->udh[1].size);
  12885 	BCM_UNPACK_U32(buf, var->udh[1].data);
  12886 	BCM_UNPACK_U8(buf, var->udh[2].size);
  12887 	BCM_UNPACK_U32(buf, var->udh[2].data);
  12888 	BCM_UNPACK_U8(buf, var->udh[3].size);
  12889 	BCM_UNPACK_U32(buf, var->udh[3].data);
  12890 	return buf;
  12891 }
  12892 
  12893 uint8 *
  12894 _bcm_pack_mirror_payload_zero_info(uint8 *buf, bcm_mirror_payload_zero_info_t *var)
  12895 {
  12896 	BCM_PACK_U32(buf, var->field_id);
  12897 	BCM_PACK_U32(buf, var->protocol_port_value);
  12898 	BCM_PACK_U32(buf, var->protocol_port_offset);
  12899 	return buf;
  12900 }
  12901 
  12902 uint8 *
  12903 _bcm_unpack_mirror_payload_zero_info(uint8 *buf, bcm_mirror_payload_zero_info_t *var)
  12904 {
  12905 	BCM_UNPACK_U32(buf, var->field_id);
  12906 	BCM_UNPACK_U32(buf, var->protocol_port_value);
  12907 	BCM_UNPACK_U32(buf, var->protocol_port_offset);
  12908 	return buf;
  12909 }
  12910 
  12911 uint8 *
  12912 _bcm_pack_mirror_payload_zero_offsets(uint8 *buf, bcm_mirror_payload_zero_offsets_t *var)
  12913 {
  12914 	BCM_PACK_U32(buf, var->l2_offset);
  12915 	BCM_PACK_U32(buf, var->l3_offset);
  12916 	BCM_PACK_U32(buf, var->udp_offset);
  12917 	return buf;
  12918 }
  12919 
  12920 uint8 *
  12921 _bcm_unpack_mirror_payload_zero_offsets(uint8 *buf, bcm_mirror_payload_zero_offsets_t *var)
  12922 {
  12923 	BCM_UNPACK_U32(buf, var->l2_offset);
  12924 	BCM_UNPACK_U32(buf, var->l3_offset);
  12925 	BCM_UNPACK_U32(buf, var->udp_offset);
  12926 	return buf;
  12927 }
  12928 
  12929 uint8 *
  12930 _bcm_pack_mirror_port_to_rcy_map_info(uint8 *buf, bcm_mirror_port_to_rcy_map_info_t *var)
  12931 {
  12932 	BCM_PACK_U32(buf, var->rcy_mirror_port);
  12933 	BCM_PACK_U32(buf, var->priority_bitmap);
  12934 	return buf;
  12935 }
  12936 
  12937 uint8 *
  12938 _bcm_unpack_mirror_port_to_rcy_map_info(uint8 *buf, bcm_mirror_port_to_rcy_map_info_t *var)
  12939 {
  12940 	BCM_UNPACK_U32(buf, var->rcy_mirror_port);
  12941 	BCM_UNPACK_U32(buf, var->priority_bitmap);
  12942 	return buf;
  12943 }
  12944 
  12945 uint8 *
  12946 _bcm_pack_mirror_profile_cmd_count(uint8 *buf, bcm_mirror_profile_cmd_count_t *var)
  12947 {
  12948 	BCM_PACK_U32(buf, var->is_counted);
  12949 	BCM_PACK_U32(buf, var->object_stat_id);
  12950 	BCM_PACK_U32(buf, var->type_id);
  12951 	BCM_PACK_U32(buf, var->is_meter);
  12952 	return buf;
  12953 }
  12954 
  12955 uint8 *
  12956 _bcm_unpack_mirror_profile_cmd_count(uint8 *buf, bcm_mirror_profile_cmd_count_t *var)
  12957 {
  12958 	BCM_UNPACK_U32(buf, var->is_counted);
  12959 	BCM_UNPACK_U32(buf, var->object_stat_id);
  12960 	BCM_UNPACK_U32(buf, var->type_id);
  12961 	BCM_UNPACK_U32(buf, var->is_meter);
  12962 	return buf;
  12963 }
  12964 
  12965 uint8 *
  12966 _bcm_pack_mpls_egress_label(uint8 *buf, bcm_mpls_egress_label_t *var)
  12967 {
  12968 	BCM_PACK_U32(buf, var->flags);
  12969 	BCM_PACK_U32(buf, var->label);
  12970 	BCM_PACK_U32(buf, var->qos_map_id);
  12971 	BCM_PACK_U8(buf, var->exp);
  12972 	BCM_PACK_U8(buf, var->ttl);
  12973 	BCM_PACK_U8(buf, var->pkt_pri);
  12974 	BCM_PACK_U8(buf, var->pkt_cfi);
  12975 	BCM_PACK_U32(buf, var->tunnel_id);
  12976 	BCM_PACK_U32(buf, var->l3_intf_id);
  12977 	BCM_PACK_U32(buf, var->action);
  12978 	BCM_PACK_U32(buf, var->ecn_map_id);
  12979 	BCM_PACK_U32(buf, var->int_cn_map_id);
  12980 	BCM_PACK_U32(buf, var->egress_failover_id);
  12981 	BCM_PACK_U32(buf, var->egress_failover_if_id);
  12982 	BCM_PACK_U32(buf, var->outlif_counting_profile);
  12983 	BCM_PACK_U32(buf, var->spl_label_push_type);
  12984 	BCM_PACK_U32(buf, var->encap_access);
  12985 	BCM_PACK_U32(buf, var->egress_qos_model.egress_qos);
  12986 	BCM_PACK_U32(buf, var->egress_qos_model.egress_ttl);
  12987 	BCM_PACK_U8(buf, var->egress_qos_model.ecn_eligible);
  12988 	return buf;
  12989 }
  12990 
  12991 uint8 *
  12992 _bcm_unpack_mpls_egress_label(uint8 *buf, bcm_mpls_egress_label_t *var)
  12993 {
  12994 	BCM_UNPACK_U32(buf, var->flags);
  12995 	BCM_UNPACK_U32(buf, var->label);
  12996 	BCM_UNPACK_U32(buf, var->qos_map_id);
  12997 	BCM_UNPACK_U8(buf, var->exp);
  12998 	BCM_UNPACK_U8(buf, var->ttl);
  12999 	BCM_UNPACK_U8(buf, var->pkt_pri);
  13000 	BCM_UNPACK_U8(buf, var->pkt_cfi);
  13001 	BCM_UNPACK_U32(buf, var->tunnel_id);
  13002 	BCM_UNPACK_U32(buf, var->l3_intf_id);
  13003 	BCM_UNPACK_U32(buf, var->action);
  13004 	BCM_UNPACK_U32(buf, var->ecn_map_id);
  13005 	BCM_UNPACK_U32(buf, var->int_cn_map_id);
  13006 	BCM_UNPACK_U32(buf, var->egress_failover_id);
  13007 	BCM_UNPACK_U32(buf, var->egress_failover_if_id);
  13008 	BCM_UNPACK_U32(buf, var->outlif_counting_profile);
  13009 	BCM_UNPACK_U32(buf, var->spl_label_push_type);
  13010 	BCM_UNPACK_U32(buf, var->encap_access);
  13011 	BCM_UNPACK_U32(buf, var->egress_qos_model.egress_qos);
  13012 	BCM_UNPACK_U32(buf, var->egress_qos_model.egress_ttl);
  13013 	BCM_UNPACK_U8(buf, var->egress_qos_model.ecn_eligible);
  13014 	return buf;
  13015 }
  13016 
  13017 #ifdef	INCLUDE_L3
  13018 
  13019 uint8 *
  13020 _bcm_pack_mpls_entropy_identifier(uint8 *buf, bcm_mpls_entropy_identifier_t *var)
  13021 {
  13022 	BCM_PACK_U32(buf, var->label);
  13023 	BCM_PACK_U32(buf, var->mask);
  13024 	BCM_PACK_U32(buf, var->pri);
  13025 	BCM_PACK_U32(buf, var->flags);
  13026 	return buf;
  13027 }
  13028 
  13029 uint8 *
  13030 _bcm_unpack_mpls_entropy_identifier(uint8 *buf, bcm_mpls_entropy_identifier_t *var)
  13031 {
  13032 	BCM_UNPACK_U32(buf, var->label);
  13033 	BCM_UNPACK_U32(buf, var->mask);
  13034 	BCM_UNPACK_U32(buf, var->pri);
  13035 	BCM_UNPACK_U32(buf, var->flags);
  13036 	return buf;
  13037 }
  13038 
  13039 uint8 *
  13040 _bcm_pack_mpls_esi_info(uint8 *buf, bcm_mpls_esi_info_t *var)
  13041 {
  13042 	BCM_PACK_U32(buf, var->flags);
  13043 	BCM_PACK_U32(buf, var->src_port);
  13044 	BCM_PACK_U32(buf, var->out_class_id);
  13045 	BCM_PACK_U32(buf, var->esi_label);
  13046 	return buf;
  13047 }
  13048 
  13049 uint8 *
  13050 _bcm_unpack_mpls_esi_info(uint8 *buf, bcm_mpls_esi_info_t *var)
  13051 {
  13052 	BCM_UNPACK_U32(buf, var->flags);
  13053 	BCM_UNPACK_U32(buf, var->src_port);
  13054 	BCM_UNPACK_U32(buf, var->out_class_id);
  13055 	BCM_UNPACK_U32(buf, var->esi_label);
  13056 	return buf;
  13057 }
  13058 
  13059 uint8 *
  13060 _bcm_pack_mpls_exp_map(uint8 *buf, bcm_mpls_exp_map_t *var)
  13061 {
  13062 	BCM_PACK_U32(buf, var->priority);
  13063 	BCM_PACK_U32(buf, var->color);
  13064 	BCM_PACK_U8(buf, var->dscp);
  13065 	BCM_PACK_U8(buf, var->exp);
  13066 	BCM_PACK_U8(buf, var->pkt_pri);
  13067 	BCM_PACK_U8(buf, var->pkt_cfi);
  13068 	return buf;
  13069 }
  13070 
  13071 uint8 *
  13072 _bcm_unpack_mpls_exp_map(uint8 *buf, bcm_mpls_exp_map_t *var)
  13073 {
  13074 	BCM_UNPACK_U32(buf, var->priority);
  13075 	BCM_UNPACK_U32(buf, var->color);
  13076 	BCM_UNPACK_U8(buf, var->dscp);
  13077 	BCM_UNPACK_U8(buf, var->exp);
  13078 	BCM_UNPACK_U8(buf, var->pkt_pri);
  13079 	BCM_UNPACK_U8(buf, var->pkt_cfi);
  13080 	return buf;
  13081 }
  13082 
  13083 uint8 *
  13084 _bcm_pack_mpls_port(uint8 *buf, bcm_mpls_port_t *var)
  13085 {
  13086 	BCM_PACK_U32(buf, var->mpls_port_id);
  13087 	BCM_PACK_U32(buf, var->flags);
  13088 	BCM_PACK_U32(buf, var->flags2);
  13089 	BCM_PACK_U32(buf, var->if_class);
  13090 	BCM_PACK_U32(buf, var->exp_map);
  13091 	BCM_PACK_U32(buf, var->int_pri);
  13092 	BCM_PACK_U8(buf, var->pkt_pri);
  13093 	BCM_PACK_U8(buf, var->pkt_cfi);
  13094 	BCM_PACK_U16(buf, var->service_tpid);
  13095 	BCM_PACK_U32(buf, var->port);
  13096 	BCM_PACK_U32(buf, var->criteria);
  13097 	BCM_PACK_U16(buf, var->match_vlan);
  13098 	BCM_PACK_U16(buf, var->match_inner_vlan);
  13099 	BCM_PACK_U32(buf, var->match_label);
  13100 	BCM_PACK_U32(buf, var->egress_tunnel_if);
  13101 	BCM_PACK_U32(buf, var->egress_label.flags);
  13102 	BCM_PACK_U32(buf, var->egress_label.label);
  13103 	BCM_PACK_U32(buf, var->egress_label.qos_map_id);
  13104 	BCM_PACK_U8(buf, var->egress_label.exp);
  13105 	BCM_PACK_U8(buf, var->egress_label.ttl);
  13106 	BCM_PACK_U8(buf, var->egress_label.pkt_pri);
  13107 	BCM_PACK_U8(buf, var->egress_label.pkt_cfi);
  13108 	BCM_PACK_U32(buf, var->egress_label.tunnel_id);
  13109 	BCM_PACK_U32(buf, var->egress_label.l3_intf_id);
  13110 	BCM_PACK_U32(buf, var->egress_label.action);
  13111 	BCM_PACK_U32(buf, var->egress_label.ecn_map_id);
  13112 	BCM_PACK_U32(buf, var->egress_label.int_cn_map_id);
  13113 	BCM_PACK_U32(buf, var->egress_label.egress_failover_id);
  13114 	BCM_PACK_U32(buf, var->egress_label.egress_failover_if_id);
  13115 	BCM_PACK_U32(buf, var->egress_label.outlif_counting_profile);
  13116 	BCM_PACK_U32(buf, var->egress_label.spl_label_push_type);
  13117 	BCM_PACK_U32(buf, var->egress_label.encap_access);
  13118 	BCM_PACK_U32(buf, var->egress_label.egress_qos_model.egress_qos);
  13119 	BCM_PACK_U32(buf, var->egress_label.egress_qos_model.egress_ttl);
  13120 	BCM_PACK_U8(buf, var->egress_label.egress_qos_model.ecn_eligible);
  13121 	BCM_PACK_U32(buf, var->mtu);
  13122 	BCM_PACK_U16(buf, var->egress_service_vlan);
  13123 	BCM_PACK_U32(buf, var->pw_seq_number);
  13124 	BCM_PACK_U32(buf, var->encap_id);
  13125 	BCM_PACK_U32(buf, var->ingress_failover_id);
  13126 	BCM_PACK_U32(buf, var->ingress_failover_port_id);
  13127 	BCM_PACK_U32(buf, var->failover_id);
  13128 	BCM_PACK_U32(buf, var->failover_port_id);
  13129 	BCM_PACK_U32(buf, var->policer_id);
  13130 	BCM_PACK_U32(buf, var->failover_mc_group);
  13131 	BCM_PACK_U32(buf, var->pw_failover_id);
  13132 	BCM_PACK_U32(buf, var->pw_failover_port_id);
  13133 	BCM_PACK_U32(buf, var->vccv_type);
  13134 	BCM_PACK_U32(buf, var->network_group_id);
  13135 	BCM_PACK_U16(buf, var->match_subport_pkt_vid);
  13136 	BCM_PACK_U32(buf, var->tunnel_id);
  13137 	BCM_PACK_U32(buf, var->per_flow_queue_base);
  13138 	BCM_PACK_U32(buf, var->qos_map_id);
  13139 	BCM_PACK_U32(buf, var->egress_failover_id);
  13140 	BCM_PACK_U32(buf, var->egress_failover_port_id);
  13141 	BCM_PACK_U32(buf, var->ecn_map_id);
  13142 	BCM_PACK_U32(buf, var->class_id);
  13143 	BCM_PACK_U32(buf, var->egress_class_id);
  13144 	BCM_PACK_U32(buf, var->inlif_counting_profile);
  13145 	BCM_PACK_U32(buf, var->egress_tunnel_label.flags);
  13146 	BCM_PACK_U32(buf, var->egress_tunnel_label.label);
  13147 	BCM_PACK_U32(buf, var->egress_tunnel_label.qos_map_id);
  13148 	BCM_PACK_U8(buf, var->egress_tunnel_label.exp);
  13149 	BCM_PACK_U8(buf, var->egress_tunnel_label.ttl);
  13150 	BCM_PACK_U8(buf, var->egress_tunnel_label.pkt_pri);
  13151 	BCM_PACK_U8(buf, var->egress_tunnel_label.pkt_cfi);
  13152 	BCM_PACK_U32(buf, var->egress_tunnel_label.tunnel_id);
  13153 	BCM_PACK_U32(buf, var->egress_tunnel_label.l3_intf_id);
  13154 	BCM_PACK_U32(buf, var->egress_tunnel_label.action);
  13155 	BCM_PACK_U32(buf, var->egress_tunnel_label.ecn_map_id);
  13156 	BCM_PACK_U32(buf, var->egress_tunnel_label.int_cn_map_id);
  13157 	BCM_PACK_U32(buf, var->egress_tunnel_label.egress_failover_id);
  13158 	BCM_PACK_U32(buf, var->egress_tunnel_label.egress_failover_if_id);
  13159 	BCM_PACK_U32(buf, var->egress_tunnel_label.outlif_counting_profile);
  13160 	BCM_PACK_U32(buf, var->egress_tunnel_label.spl_label_push_type);
  13161 	BCM_PACK_U32(buf, var->egress_tunnel_label.encap_access);
  13162 	BCM_PACK_U32(buf, var->egress_tunnel_label.egress_qos_model.egress_qos);
  13163 	BCM_PACK_U32(buf, var->egress_tunnel_label.egress_qos_model.egress_ttl);
  13164 	BCM_PACK_U8(buf, var->egress_tunnel_label.egress_qos_model.ecn_eligible);
  13165 	BCM_PACK_U32(buf, var->nof_service_tags);
  13166 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_phb);
  13167 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_remark);
  13168 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_ttl);
  13169 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_ecn);
  13170 	BCM_PACK_U32(buf, var->context_label);
  13171 	BCM_PACK_U32(buf, var->ingress_if);
  13172 	return buf;
  13173 }
  13174 
  13175 uint8 *
  13176 _bcm_unpack_mpls_port(uint8 *buf, bcm_mpls_port_t *var)
  13177 {
  13178 	BCM_UNPACK_U32(buf, var->mpls_port_id);
  13179 	BCM_UNPACK_U32(buf, var->flags);
  13180 	BCM_UNPACK_U32(buf, var->flags2);
  13181 	BCM_UNPACK_U32(buf, var->if_class);
  13182 	BCM_UNPACK_U32(buf, var->exp_map);
  13183 	BCM_UNPACK_U32(buf, var->int_pri);
  13184 	BCM_UNPACK_U8(buf, var->pkt_pri);
  13185 	BCM_UNPACK_U8(buf, var->pkt_cfi);
  13186 	BCM_UNPACK_U16(buf, var->service_tpid);
  13187 	BCM_UNPACK_U32(buf, var->port);
  13188 	BCM_UNPACK_U32(buf, var->criteria);
  13189 	BCM_UNPACK_U16(buf, var->match_vlan);
  13190 	BCM_UNPACK_U16(buf, var->match_inner_vlan);
  13191 	BCM_UNPACK_U32(buf, var->match_label);
  13192 	BCM_UNPACK_U32(buf, var->egress_tunnel_if);
  13193 	BCM_UNPACK_U32(buf, var->egress_label.flags);
  13194 	BCM_UNPACK_U32(buf, var->egress_label.label);
  13195 	BCM_UNPACK_U32(buf, var->egress_label.qos_map_id);
  13196 	BCM_UNPACK_U8(buf, var->egress_label.exp);
  13197 	BCM_UNPACK_U8(buf, var->egress_label.ttl);
  13198 	BCM_UNPACK_U8(buf, var->egress_label.pkt_pri);
  13199 	BCM_UNPACK_U8(buf, var->egress_label.pkt_cfi);
  13200 	BCM_UNPACK_U32(buf, var->egress_label.tunnel_id);
  13201 	BCM_UNPACK_U32(buf, var->egress_label.l3_intf_id);
  13202 	BCM_UNPACK_U32(buf, var->egress_label.action);
  13203 	BCM_UNPACK_U32(buf, var->egress_label.ecn_map_id);
  13204 	BCM_UNPACK_U32(buf, var->egress_label.int_cn_map_id);
  13205 	BCM_UNPACK_U32(buf, var->egress_label.egress_failover_id);
  13206 	BCM_UNPACK_U32(buf, var->egress_label.egress_failover_if_id);
  13207 	BCM_UNPACK_U32(buf, var->egress_label.outlif_counting_profile);
  13208 	BCM_UNPACK_U32(buf, var->egress_label.spl_label_push_type);
  13209 	BCM_UNPACK_U32(buf, var->egress_label.encap_access);
  13210 	BCM_UNPACK_U32(buf, var->egress_label.egress_qos_model.egress_qos);
  13211 	BCM_UNPACK_U32(buf, var->egress_label.egress_qos_model.egress_ttl);
  13212 	BCM_UNPACK_U8(buf, var->egress_label.egress_qos_model.ecn_eligible);
  13213 	BCM_UNPACK_U32(buf, var->mtu);
  13214 	BCM_UNPACK_U16(buf, var->egress_service_vlan);
  13215 	BCM_UNPACK_U32(buf, var->pw_seq_number);
  13216 	BCM_UNPACK_U32(buf, var->encap_id);
  13217 	BCM_UNPACK_U32(buf, var->ingress_failover_id);
  13218 	BCM_UNPACK_U32(buf, var->ingress_failover_port_id);
  13219 	BCM_UNPACK_U32(buf, var->failover_id);
  13220 	BCM_UNPACK_U32(buf, var->failover_port_id);
  13221 	BCM_UNPACK_U32(buf, var->policer_id);
  13222 	BCM_UNPACK_U32(buf, var->failover_mc_group);
  13223 	BCM_UNPACK_U32(buf, var->pw_failover_id);
  13224 	BCM_UNPACK_U32(buf, var->pw_failover_port_id);
  13225 	BCM_UNPACK_U32(buf, var->vccv_type);
  13226 	BCM_UNPACK_U32(buf, var->network_group_id);
  13227 	BCM_UNPACK_U16(buf, var->match_subport_pkt_vid);
  13228 	BCM_UNPACK_U32(buf, var->tunnel_id);
  13229 	BCM_UNPACK_U32(buf, var->per_flow_queue_base);
  13230 	BCM_UNPACK_U32(buf, var->qos_map_id);
  13231 	BCM_UNPACK_U32(buf, var->egress_failover_id);
  13232 	BCM_UNPACK_U32(buf, var->egress_failover_port_id);
  13233 	BCM_UNPACK_U32(buf, var->ecn_map_id);
  13234 	BCM_UNPACK_U32(buf, var->class_id);
  13235 	BCM_UNPACK_U32(buf, var->egress_class_id);
  13236 	BCM_UNPACK_U32(buf, var->inlif_counting_profile);
  13237 	BCM_UNPACK_U32(buf, var->egress_tunnel_label.flags);
  13238 	BCM_UNPACK_U32(buf, var->egress_tunnel_label.label);
  13239 	BCM_UNPACK_U32(buf, var->egress_tunnel_label.qos_map_id);
  13240 	BCM_UNPACK_U8(buf, var->egress_tunnel_label.exp);
  13241 	BCM_UNPACK_U8(buf, var->egress_tunnel_label.ttl);
  13242 	BCM_UNPACK_U8(buf, var->egress_tunnel_label.pkt_pri);
  13243 	BCM_UNPACK_U8(buf, var->egress_tunnel_label.pkt_cfi);
  13244 	BCM_UNPACK_U32(buf, var->egress_tunnel_label.tunnel_id);
  13245 	BCM_UNPACK_U32(buf, var->egress_tunnel_label.l3_intf_id);
  13246 	BCM_UNPACK_U32(buf, var->egress_tunnel_label.action);
  13247 	BCM_UNPACK_U32(buf, var->egress_tunnel_label.ecn_map_id);
  13248 	BCM_UNPACK_U32(buf, var->egress_tunnel_label.int_cn_map_id);
  13249 	BCM_UNPACK_U32(buf, var->egress_tunnel_label.egress_failover_id);
  13250 	BCM_UNPACK_U32(buf, var->egress_tunnel_label.egress_failover_if_id);
  13251 	BCM_UNPACK_U32(buf, var->egress_tunnel_label.outlif_counting_profile);
  13252 	BCM_UNPACK_U32(buf, var->egress_tunnel_label.spl_label_push_type);
  13253 	BCM_UNPACK_U32(buf, var->egress_tunnel_label.encap_access);
  13254 	BCM_UNPACK_U32(buf, var->egress_tunnel_label.egress_qos_model.egress_qos);
  13255 	BCM_UNPACK_U32(buf, var->egress_tunnel_label.egress_qos_model.egress_ttl);
  13256 	BCM_UNPACK_U8(buf, var->egress_tunnel_label.egress_qos_model.ecn_eligible);
  13257 	BCM_UNPACK_U32(buf, var->nof_service_tags);
  13258 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_phb);
  13259 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_remark);
  13260 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_ttl);
  13261 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_ecn);
  13262 	BCM_UNPACK_U32(buf, var->context_label);
  13263 	BCM_UNPACK_U32(buf, var->ingress_if);
  13264 	return buf;
  13265 }
  13266 
  13267 uint8 *
  13268 _bcm_pack_mpls_range_action(uint8 *buf, bcm_mpls_range_action_t *var)
  13269 {
  13270 	BCM_PACK_U32(buf, var->flags);
  13271 	BCM_PACK_U32(buf, var->compressed_label);
  13272 	return buf;
  13273 }
  13274 
  13275 uint8 *
  13276 _bcm_unpack_mpls_range_action(uint8 *buf, bcm_mpls_range_action_t *var)
  13277 {
  13278 	BCM_UNPACK_U32(buf, var->flags);
  13279 	BCM_UNPACK_U32(buf, var->compressed_label);
  13280 	return buf;
  13281 }
  13282 
  13283 uint8 *
  13284 _bcm_pack_mpls_special_label_push_element(uint8 *buf, bcm_mpls_special_label_push_element_t *var)
  13285 {
  13286 	BCM_PACK_U32(buf, var->gport);
  13287 	BCM_PACK_U32(buf, var->egr_obj_id);
  13288 	return buf;
  13289 }
  13290 
  13291 uint8 *
  13292 _bcm_unpack_mpls_special_label_push_element(uint8 *buf, bcm_mpls_special_label_push_element_t *var)
  13293 {
  13294 	BCM_UNPACK_U32(buf, var->gport);
  13295 	BCM_UNPACK_U32(buf, var->egr_obj_id);
  13296 	return buf;
  13297 }
  13298 
  13299 uint8 *
  13300 _bcm_pack_mpls_special_label(uint8 *buf, bcm_mpls_special_label_t *var)
  13301 {
  13302 	BCM_PACK_U32(buf, var->flags);
  13303 	BCM_PACK_U32(buf, var->label_value);
  13304 	BCM_PACK_U32(buf, var->label_mask);
  13305 	BCM_PACK_U32(buf, var->exp);
  13306 	BCM_PACK_U32(buf, var->exp_mask);
  13307 	BCM_PACK_U32(buf, var->ttl);
  13308 	BCM_PACK_U32(buf, var->ttl_mask);
  13309 	return buf;
  13310 }
  13311 
  13312 uint8 *
  13313 _bcm_unpack_mpls_special_label(uint8 *buf, bcm_mpls_special_label_t *var)
  13314 {
  13315 	BCM_UNPACK_U32(buf, var->flags);
  13316 	BCM_UNPACK_U32(buf, var->label_value);
  13317 	BCM_UNPACK_U32(buf, var->label_mask);
  13318 	BCM_UNPACK_U32(buf, var->exp);
  13319 	BCM_UNPACK_U32(buf, var->exp_mask);
  13320 	BCM_UNPACK_U32(buf, var->ttl);
  13321 	BCM_UNPACK_U32(buf, var->ttl_mask);
  13322 	return buf;
  13323 }
  13324 
  13325 uint8 *
  13326 _bcm_pack_mpls_stat_info(uint8 *buf, bcm_mpls_stat_info_t *var)
  13327 {
  13328 	BCM_PACK_U32(buf, var->stat);
  13329 	BCM_PACK_U32(buf, var->num_entries);
  13330 	BCM_PACK_U32(buf, *var->counter_indexes);
  13331 	BCM_PACK_U32(buf, var->counter_values->packets);
  13332 	{
  13333 		uint32 _u32;
  13334 
  13335 		_u32 = COMPILER_64_HI(var->counter_values->bytes);
  13336 		BCM_PACK_U32(buf, _u32);
  13337 		_u32 = COMPILER_64_LO(var->counter_values->bytes);
  13338 		BCM_PACK_U32(buf, _u32);
  13339 	}
  13340 	{
  13341 		uint32 _u32;
  13342 
  13343 		_u32 = COMPILER_64_HI(var->counter_values->packets64);
  13344 		BCM_PACK_U32(buf, _u32);
  13345 		_u32 = COMPILER_64_LO(var->counter_values->packets64);
  13346 		BCM_PACK_U32(buf, _u32);
  13347 	}
  13348 	return buf;
  13349 }
  13350 
  13351 uint8 *
  13352 _bcm_unpack_mpls_stat_info(uint8 *buf, bcm_mpls_stat_info_t *var)
  13353 {
  13354 	BCM_UNPACK_U32(buf, var->stat);
  13355 	BCM_UNPACK_U32(buf, var->num_entries);
  13356 	BCM_UNPACK_U32(buf, *var->counter_indexes);
  13357 	BCM_UNPACK_U32(buf, var->counter_values->packets);
  13358 	{
  13359 		uint32 _u32h, _u32l;
  13360 
  13361 		BCM_UNPACK_U32(buf, _u32h);
  13362 		BCM_UNPACK_U32(buf, _u32l);
  13363 		COMPILER_64_SET(var->counter_values->bytes, _u32h, _u32l);
  13364 	}
  13365 	{
  13366 		uint32 _u32h, _u32l;
  13367 
  13368 		BCM_UNPACK_U32(buf, _u32h);
  13369 		BCM_UNPACK_U32(buf, _u32l);
  13370 		COMPILER_64_SET(var->counter_values->packets64, _u32h, _u32l);
  13371 	}
  13372 	return buf;
  13373 }
  13374 
  13375 uint8 *
  13376 _bcm_pack_mpls_tunnel_switch(uint8 *buf, bcm_mpls_tunnel_switch_t *var)
  13377 {
  13378 	BCM_PACK_U32(buf, var->flags);
  13379 	BCM_PACK_U32(buf, var->flags2);
  13380 	BCM_PACK_U32(buf, var->label);
  13381 	BCM_PACK_U32(buf, var->second_label);
  13382 	BCM_PACK_U32(buf, var->port);
  13383 	BCM_PACK_U32(buf, var->action);
  13384 	BCM_PACK_U32(buf, var->action_if_bos);
  13385 	BCM_PACK_U32(buf, var->action_if_not_bos);
  13386 	BCM_PACK_U32(buf, var->mc_group);
  13387 	BCM_PACK_U32(buf, var->exp_map);
  13388 	BCM_PACK_U32(buf, var->int_pri);
  13389 	BCM_PACK_U32(buf, var->policer_id);
  13390 	BCM_PACK_U16(buf, var->vpn);
  13391 	BCM_PACK_U32(buf, var->egress_label.flags);
  13392 	BCM_PACK_U32(buf, var->egress_label.label);
  13393 	BCM_PACK_U32(buf, var->egress_label.qos_map_id);
  13394 	BCM_PACK_U8(buf, var->egress_label.exp);
  13395 	BCM_PACK_U8(buf, var->egress_label.ttl);
  13396 	BCM_PACK_U8(buf, var->egress_label.pkt_pri);
  13397 	BCM_PACK_U8(buf, var->egress_label.pkt_cfi);
  13398 	BCM_PACK_U32(buf, var->egress_label.tunnel_id);
  13399 	BCM_PACK_U32(buf, var->egress_label.l3_intf_id);
  13400 	BCM_PACK_U32(buf, var->egress_label.action);
  13401 	BCM_PACK_U32(buf, var->egress_label.ecn_map_id);
  13402 	BCM_PACK_U32(buf, var->egress_label.int_cn_map_id);
  13403 	BCM_PACK_U32(buf, var->egress_label.egress_failover_id);
  13404 	BCM_PACK_U32(buf, var->egress_label.egress_failover_if_id);
  13405 	BCM_PACK_U32(buf, var->egress_label.outlif_counting_profile);
  13406 	BCM_PACK_U32(buf, var->egress_label.spl_label_push_type);
  13407 	BCM_PACK_U32(buf, var->egress_label.encap_access);
  13408 	BCM_PACK_U32(buf, var->egress_label.egress_qos_model.egress_qos);
  13409 	BCM_PACK_U32(buf, var->egress_label.egress_qos_model.egress_ttl);
  13410 	BCM_PACK_U8(buf, var->egress_label.egress_qos_model.ecn_eligible);
  13411 	BCM_PACK_U32(buf, var->egress_if);
  13412 	BCM_PACK_U32(buf, var->ingress_if);
  13413 	BCM_PACK_U32(buf, var->mtu);
  13414 	BCM_PACK_U32(buf, var->qos_map_id);
  13415 	BCM_PACK_U32(buf, var->failover_id);
  13416 	BCM_PACK_U32(buf, var->tunnel_id);
  13417 	BCM_PACK_U32(buf, var->failover_tunnel_id);
  13418 	BCM_PACK_U32(buf, var->tunnel_if);
  13419 	BCM_PACK_U32(buf, var->egress_port);
  13420 	BCM_PACK_U16(buf, var->oam_global_context_id);
  13421 	BCM_PACK_U32(buf, var->class_id);
  13422 	BCM_PACK_U32(buf, var->inlif_counting_profile);
  13423 	BCM_PACK_U32(buf, var->ecn_map_id);
  13424 	BCM_PACK_U32(buf, var->tunnel_term_ecn_map_id);
  13425 	BCM_PACK_U32(buf, var->stat_id);
  13426 	BCM_PACK_U32(buf, var->stat_pp_profile);
  13427 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_phb);
  13428 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_remark);
  13429 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_ttl);
  13430 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_ecn);
  13431 	BCM_PACK_U8(buf, var->pkt_pri);
  13432 	BCM_PACK_U8(buf, var->pkt_cfi);
  13433 	return buf;
  13434 }
  13435 
  13436 uint8 *
  13437 _bcm_unpack_mpls_tunnel_switch(uint8 *buf, bcm_mpls_tunnel_switch_t *var)
  13438 {
  13439 	BCM_UNPACK_U32(buf, var->flags);
  13440 	BCM_UNPACK_U32(buf, var->flags2);
  13441 	BCM_UNPACK_U32(buf, var->label);
  13442 	BCM_UNPACK_U32(buf, var->second_label);
  13443 	BCM_UNPACK_U32(buf, var->port);
  13444 	BCM_UNPACK_U32(buf, var->action);
  13445 	BCM_UNPACK_U32(buf, var->action_if_bos);
  13446 	BCM_UNPACK_U32(buf, var->action_if_not_bos);
  13447 	BCM_UNPACK_U32(buf, var->mc_group);
  13448 	BCM_UNPACK_U32(buf, var->exp_map);
  13449 	BCM_UNPACK_U32(buf, var->int_pri);
  13450 	BCM_UNPACK_U32(buf, var->policer_id);
  13451 	BCM_UNPACK_U16(buf, var->vpn);
  13452 	BCM_UNPACK_U32(buf, var->egress_label.flags);
  13453 	BCM_UNPACK_U32(buf, var->egress_label.label);
  13454 	BCM_UNPACK_U32(buf, var->egress_label.qos_map_id);
  13455 	BCM_UNPACK_U8(buf, var->egress_label.exp);
  13456 	BCM_UNPACK_U8(buf, var->egress_label.ttl);
  13457 	BCM_UNPACK_U8(buf, var->egress_label.pkt_pri);
  13458 	BCM_UNPACK_U8(buf, var->egress_label.pkt_cfi);
  13459 	BCM_UNPACK_U32(buf, var->egress_label.tunnel_id);
  13460 	BCM_UNPACK_U32(buf, var->egress_label.l3_intf_id);
  13461 	BCM_UNPACK_U32(buf, var->egress_label.action);
  13462 	BCM_UNPACK_U32(buf, var->egress_label.ecn_map_id);
  13463 	BCM_UNPACK_U32(buf, var->egress_label.int_cn_map_id);
  13464 	BCM_UNPACK_U32(buf, var->egress_label.egress_failover_id);
  13465 	BCM_UNPACK_U32(buf, var->egress_label.egress_failover_if_id);
  13466 	BCM_UNPACK_U32(buf, var->egress_label.outlif_counting_profile);
  13467 	BCM_UNPACK_U32(buf, var->egress_label.spl_label_push_type);
  13468 	BCM_UNPACK_U32(buf, var->egress_label.encap_access);
  13469 	BCM_UNPACK_U32(buf, var->egress_label.egress_qos_model.egress_qos);
  13470 	BCM_UNPACK_U32(buf, var->egress_label.egress_qos_model.egress_ttl);
  13471 	BCM_UNPACK_U8(buf, var->egress_label.egress_qos_model.ecn_eligible);
  13472 	BCM_UNPACK_U32(buf, var->egress_if);
  13473 	BCM_UNPACK_U32(buf, var->ingress_if);
  13474 	BCM_UNPACK_U32(buf, var->mtu);
  13475 	BCM_UNPACK_U32(buf, var->qos_map_id);
  13476 	BCM_UNPACK_U32(buf, var->failover_id);
  13477 	BCM_UNPACK_U32(buf, var->tunnel_id);
  13478 	BCM_UNPACK_U32(buf, var->failover_tunnel_id);
  13479 	BCM_UNPACK_U32(buf, var->tunnel_if);
  13480 	BCM_UNPACK_U32(buf, var->egress_port);
  13481 	BCM_UNPACK_U16(buf, var->oam_global_context_id);
  13482 	BCM_UNPACK_U32(buf, var->class_id);
  13483 	BCM_UNPACK_U32(buf, var->inlif_counting_profile);
  13484 	BCM_UNPACK_U32(buf, var->ecn_map_id);
  13485 	BCM_UNPACK_U32(buf, var->tunnel_term_ecn_map_id);
  13486 	BCM_UNPACK_U32(buf, var->stat_id);
  13487 	BCM_UNPACK_U32(buf, var->stat_pp_profile);
  13488 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_phb);
  13489 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_remark);
  13490 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_ttl);
  13491 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_ecn);
  13492 	BCM_UNPACK_U8(buf, var->pkt_pri);
  13493 	BCM_UNPACK_U8(buf, var->pkt_cfi);
  13494 	return buf;
  13495 }
  13496 
  13497 uint8 *
  13498 _bcm_pack_mpls_vpn_config(uint8 *buf, bcm_mpls_vpn_config_t *var)
  13499 {
  13500 	BCM_PACK_U32(buf, var->flags);
  13501 	BCM_PACK_U16(buf, var->vpn);
  13502 	BCM_PACK_U32(buf, var->lookup_id);
  13503 	BCM_PACK_U32(buf, var->broadcast_group);
  13504 	BCM_PACK_U32(buf, var->unknown_unicast_group);
  13505 	BCM_PACK_U32(buf, var->unknown_multicast_group);
  13506 	BCM_PACK_U32(buf, var->policer_id);
  13507 	BCM_PACK_U32(buf, var->protocol_pkt.mmrp_action);
  13508 	BCM_PACK_U32(buf, var->protocol_pkt.srp_action);
  13509 	BCM_PACK_U32(buf, var->protocol_pkt.arp_reply_action);
  13510 	BCM_PACK_U32(buf, var->protocol_pkt.arp_request_action);
  13511 	BCM_PACK_U32(buf, var->protocol_pkt.nd_action);
  13512 	BCM_PACK_U32(buf, var->protocol_pkt.dhcp_action);
  13513 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_report_leave_action);
  13514 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_query_action);
  13515 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_unknown_msg_action);
  13516 	BCM_PACK_U32(buf, var->protocol_pkt.mld_report_done_action);
  13517 	BCM_PACK_U32(buf, var->protocol_pkt.mld_query_action);
  13518 	BCM_PACK_U32(buf, var->protocol_pkt.ip4_rsvd_mc_action);
  13519 	BCM_PACK_U32(buf, var->protocol_pkt.ip6_rsvd_mc_action);
  13520 	BCM_PACK_U32(buf, var->protocol_pkt.ip4_mc_router_adv_action);
  13521 	BCM_PACK_U32(buf, var->protocol_pkt.ip6_mc_router_adv_action);
  13522 	BCM_PACK_U32(buf, var->protocol_pkt.flood_action_according_to_pfm);
  13523 	return buf;
  13524 }
  13525 
  13526 uint8 *
  13527 _bcm_unpack_mpls_vpn_config(uint8 *buf, bcm_mpls_vpn_config_t *var)
  13528 {
  13529 	BCM_UNPACK_U32(buf, var->flags);
  13530 	BCM_UNPACK_U16(buf, var->vpn);
  13531 	BCM_UNPACK_U32(buf, var->lookup_id);
  13532 	BCM_UNPACK_U32(buf, var->broadcast_group);
  13533 	BCM_UNPACK_U32(buf, var->unknown_unicast_group);
  13534 	BCM_UNPACK_U32(buf, var->unknown_multicast_group);
  13535 	BCM_UNPACK_U32(buf, var->policer_id);
  13536 	BCM_UNPACK_U32(buf, var->protocol_pkt.mmrp_action);
  13537 	BCM_UNPACK_U32(buf, var->protocol_pkt.srp_action);
  13538 	BCM_UNPACK_U32(buf, var->protocol_pkt.arp_reply_action);
  13539 	BCM_UNPACK_U32(buf, var->protocol_pkt.arp_request_action);
  13540 	BCM_UNPACK_U32(buf, var->protocol_pkt.nd_action);
  13541 	BCM_UNPACK_U32(buf, var->protocol_pkt.dhcp_action);
  13542 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_report_leave_action);
  13543 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_query_action);
  13544 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_unknown_msg_action);
  13545 	BCM_UNPACK_U32(buf, var->protocol_pkt.mld_report_done_action);
  13546 	BCM_UNPACK_U32(buf, var->protocol_pkt.mld_query_action);
  13547 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip4_rsvd_mc_action);
  13548 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip6_rsvd_mc_action);
  13549 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip4_mc_router_adv_action);
  13550 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip6_mc_router_adv_action);
  13551 	BCM_UNPACK_U32(buf, var->protocol_pkt.flood_action_according_to_pfm);
  13552 	return buf;
  13553 }
  13554 
  13555 #endif	/* INCLUDE_L3 */
  13556 
  13557 uint8 *
  13558 _bcm_pack_multicast_multi_info(uint8 *buf, bcm_multicast_multi_info_t *var)
  13559 {
  13560 	BCM_PACK_U32(buf, var->flags);
  13561 	BCM_PACK_U32(buf, var->number_of_elements);
  13562 	return buf;
  13563 }
  13564 
  13565 uint8 *
  13566 _bcm_unpack_multicast_multi_info(uint8 *buf, bcm_multicast_multi_info_t *var)
  13567 {
  13568 	BCM_UNPACK_U32(buf, var->flags);
  13569 	BCM_UNPACK_U32(buf, var->number_of_elements);
  13570 	return buf;
  13571 }
  13572 
  13573 uint8 *
  13574 _bcm_pack_multicast_replication(uint8 *buf, bcm_multicast_replication_t *var)
  13575 {
  13576 	BCM_PACK_U32(buf, var->flags);
  13577 	BCM_PACK_U32(buf, var->port);
  13578 	BCM_PACK_U32(buf, var->encap1);
  13579 	BCM_PACK_U32(buf, var->encap2);
  13580 	return buf;
  13581 }
  13582 
  13583 uint8 *
  13584 _bcm_unpack_multicast_replication(uint8 *buf, bcm_multicast_replication_t *var)
  13585 {
  13586 	BCM_UNPACK_U32(buf, var->flags);
  13587 	BCM_UNPACK_U32(buf, var->port);
  13588 	BCM_UNPACK_U32(buf, var->encap1);
  13589 	BCM_UNPACK_U32(buf, var->encap2);
  13590 	return buf;
  13591 }
  13592 
  13593 #ifdef	INCLUDE_L3
  13594 
  13595 uint8 *
  13596 _bcm_pack_niv_egress(uint8 *buf, bcm_niv_egress_t *var)
  13597 {
  13598 	BCM_PACK_U32(buf, var->flags);
  13599 	BCM_PACK_U32(buf, var->port);
  13600 	BCM_PACK_U16(buf, var->virtual_interface_id);
  13601 	BCM_PACK_U16(buf, var->match_vlan);
  13602 	BCM_PACK_U32(buf, var->egress_if);
  13603 	BCM_PACK_U16(buf, var->service_tpid);
  13604 	BCM_PACK_U16(buf, var->service_vlan);
  13605 	BCM_PACK_U8(buf, var->service_pri);
  13606 	BCM_PACK_U8(buf, var->service_cfi);
  13607 	BCM_PACK_U32(buf, var->service_qos_map_id);
  13608 	BCM_PACK_U32(buf, var->intf);
  13609 	BCM_PACK_U32(buf, var->multicast_flags);
  13610 	return buf;
  13611 }
  13612 
  13613 uint8 *
  13614 _bcm_unpack_niv_egress(uint8 *buf, bcm_niv_egress_t *var)
  13615 {
  13616 	BCM_UNPACK_U32(buf, var->flags);
  13617 	BCM_UNPACK_U32(buf, var->port);
  13618 	BCM_UNPACK_U16(buf, var->virtual_interface_id);
  13619 	BCM_UNPACK_U16(buf, var->match_vlan);
  13620 	BCM_UNPACK_U32(buf, var->egress_if);
  13621 	BCM_UNPACK_U16(buf, var->service_tpid);
  13622 	BCM_UNPACK_U16(buf, var->service_vlan);
  13623 	BCM_UNPACK_U8(buf, var->service_pri);
  13624 	BCM_UNPACK_U8(buf, var->service_cfi);
  13625 	BCM_UNPACK_U32(buf, var->service_qos_map_id);
  13626 	BCM_UNPACK_U32(buf, var->intf);
  13627 	BCM_UNPACK_U32(buf, var->multicast_flags);
  13628 	return buf;
  13629 }
  13630 
  13631 uint8 *
  13632 _bcm_pack_niv_forward(uint8 *buf, bcm_niv_forward_t *var)
  13633 {
  13634 	BCM_PACK_U32(buf, var->flags);
  13635 	BCM_PACK_U16(buf, var->name_space);
  13636 	BCM_PACK_U16(buf, var->virtual_interface_id);
  13637 	BCM_PACK_U32(buf, var->dest_port);
  13638 	BCM_PACK_U32(buf, var->dest_multicast);
  13639 	return buf;
  13640 }
  13641 
  13642 uint8 *
  13643 _bcm_unpack_niv_forward(uint8 *buf, bcm_niv_forward_t *var)
  13644 {
  13645 	BCM_UNPACK_U32(buf, var->flags);
  13646 	BCM_UNPACK_U16(buf, var->name_space);
  13647 	BCM_UNPACK_U16(buf, var->virtual_interface_id);
  13648 	BCM_UNPACK_U32(buf, var->dest_port);
  13649 	BCM_UNPACK_U32(buf, var->dest_multicast);
  13650 	return buf;
  13651 }
  13652 
  13653 uint8 *
  13654 _bcm_pack_niv_port(uint8 *buf, bcm_niv_port_t *var)
  13655 {
  13656 	BCM_PACK_U32(buf, var->flags);
  13657 	BCM_PACK_U32(buf, var->niv_port_id);
  13658 	BCM_PACK_U32(buf, var->port);
  13659 	BCM_PACK_U16(buf, var->virtual_interface_id);
  13660 	BCM_PACK_U16(buf, var->match_vlan);
  13661 	BCM_PACK_U16(buf, var->match_service_tpid);
  13662 	BCM_PACK_U32(buf, var->if_class);
  13663 	return buf;
  13664 }
  13665 
  13666 uint8 *
  13667 _bcm_unpack_niv_port(uint8 *buf, bcm_niv_port_t *var)
  13668 {
  13669 	BCM_UNPACK_U32(buf, var->flags);
  13670 	BCM_UNPACK_U32(buf, var->niv_port_id);
  13671 	BCM_UNPACK_U32(buf, var->port);
  13672 	BCM_UNPACK_U16(buf, var->virtual_interface_id);
  13673 	BCM_UNPACK_U16(buf, var->match_vlan);
  13674 	BCM_UNPACK_U16(buf, var->match_service_tpid);
  13675 	BCM_UNPACK_U32(buf, var->if_class);
  13676 	return buf;
  13677 }
  13678 
  13679 #endif	/* INCLUDE_L3 */
  13680 
  13681 uint8 *
  13682 _bcm_pack_oam_action_key(uint8 *buf, bcm_oam_action_key_t *var)
  13683 {
  13684 	BCM_PACK_U32(buf, var->flags);
  13685 	BCM_PACK_U32(buf, var->opcode);
  13686 	BCM_PACK_U32(buf, var->dest_mac_type);
  13687 	BCM_PACK_U32(buf, var->endpoint_type);
  13688 	BCM_PACK_U8(buf, var->inject);
  13689 	return buf;
  13690 }
  13691 
  13692 uint8 *
  13693 _bcm_unpack_oam_action_key(uint8 *buf, bcm_oam_action_key_t *var)
  13694 {
  13695 	BCM_UNPACK_U32(buf, var->flags);
  13696 	BCM_UNPACK_U32(buf, var->opcode);
  13697 	BCM_UNPACK_U32(buf, var->dest_mac_type);
  13698 	BCM_UNPACK_U32(buf, var->endpoint_type);
  13699 	BCM_UNPACK_U8(buf, var->inject);
  13700 	return buf;
  13701 }
  13702 
  13703 uint8 *
  13704 _bcm_pack_oam_action_result(uint8 *buf, bcm_oam_action_result_t *var)
  13705 {
  13706 	BCM_PACK_U32(buf, var->flags);
  13707 	BCM_PACK_U8(buf, var->counter_increment);
  13708 	BCM_PACK_U8(buf, var->meter_enable);
  13709 	BCM_PACK_U32(buf, var->destination);
  13710 	return buf;
  13711 }
  13712 
  13713 uint8 *
  13714 _bcm_unpack_oam_action_result(uint8 *buf, bcm_oam_action_result_t *var)
  13715 {
  13716 	BCM_UNPACK_U32(buf, var->flags);
  13717 	BCM_UNPACK_U8(buf, var->counter_increment);
  13718 	BCM_UNPACK_U8(buf, var->meter_enable);
  13719 	BCM_UNPACK_U32(buf, var->destination);
  13720 	return buf;
  13721 }
  13722 
  13723 uint8 *
  13724 _bcm_pack_oam_ais(uint8 *buf, bcm_oam_ais_t *var)
  13725 {
  13726 	BCM_PACK_U32(buf, var->flags);
  13727 	BCM_PACK_U32(buf, var->ais_id);
  13728 	BCM_PACK_U32(buf, var->id);
  13729 	BCM_PACK_U32(buf, var->period);
  13730 	BCM_PACK_U32(buf, var->level);
  13731 	{
  13732 		int _i;
  13733 
  13734 		for (_i = 0; _i < 6; _i++) {
  13735 			BCM_PACK_U8(buf, var->peer_da_mac_address[_i]);
  13736 		}
  13737 	}
  13738 	BCM_PACK_U8(buf, var->pkt_pri);
  13739 	BCM_PACK_U8(buf, var->drop_eligible);
  13740 	BCM_PACK_U16(buf, var->outer_vlan);
  13741 	BCM_PACK_U8(buf, var->outer_pkt_pri);
  13742 	BCM_PACK_U16(buf, var->outer_tpid);
  13743 	BCM_PACK_U16(buf, var->inner_vlan);
  13744 	BCM_PACK_U8(buf, var->inner_pkt_pri);
  13745 	BCM_PACK_U16(buf, var->inner_tpid);
  13746 	return buf;
  13747 }
  13748 
  13749 uint8 *
  13750 _bcm_unpack_oam_ais(uint8 *buf, bcm_oam_ais_t *var)
  13751 {
  13752 	BCM_UNPACK_U32(buf, var->flags);
  13753 	BCM_UNPACK_U32(buf, var->ais_id);
  13754 	BCM_UNPACK_U32(buf, var->id);
  13755 	BCM_UNPACK_U32(buf, var->period);
  13756 	BCM_UNPACK_U32(buf, var->level);
  13757 	{
  13758 		int _i;
  13759 
  13760 		for (_i = 0; _i < 6; _i++) {
  13761 			BCM_UNPACK_U8(buf, var->peer_da_mac_address[_i]);
  13762 		}
  13763 	}
  13764 	BCM_UNPACK_U8(buf, var->pkt_pri);
  13765 	BCM_UNPACK_U8(buf, var->drop_eligible);
  13766 	BCM_UNPACK_U16(buf, var->outer_vlan);
  13767 	BCM_UNPACK_U8(buf, var->outer_pkt_pri);
  13768 	BCM_UNPACK_U16(buf, var->outer_tpid);
  13769 	BCM_UNPACK_U16(buf, var->inner_vlan);
  13770 	BCM_UNPACK_U8(buf, var->inner_pkt_pri);
  13771 	BCM_UNPACK_U16(buf, var->inner_tpid);
  13772 	return buf;
  13773 }
  13774 
  13775 uint8 *
  13776 _bcm_pack_oam_control_key(uint8 *buf, bcm_oam_control_key_t *var)
  13777 {
  13778 	BCM_PACK_U32(buf, var->type);
  13779 	BCM_PACK_U32(buf, var->index);
  13780 	return buf;
  13781 }
  13782 
  13783 uint8 *
  13784 _bcm_unpack_oam_control_key(uint8 *buf, bcm_oam_control_key_t *var)
  13785 {
  13786 	BCM_UNPACK_U32(buf, var->type);
  13787 	BCM_UNPACK_U32(buf, var->index);
  13788 	return buf;
  13789 }
  13790 
  13791 uint8 *
  13792 _bcm_pack_oam_csf(uint8 *buf, bcm_oam_csf_t *var)
  13793 {
  13794 	BCM_PACK_U32(buf, var->flags);
  13795 	BCM_PACK_U32(buf, var->type);
  13796 	BCM_PACK_U32(buf, var->id);
  13797 	BCM_PACK_U32(buf, var->period);
  13798 	BCM_PACK_U8(buf, var->pkt_pri);
  13799 	BCM_PACK_U32(buf, var->int_pri);
  13800 	BCM_PACK_U32(buf, var->csf_tx_update_lm_counter_base_id[0]);
  13801 	BCM_PACK_U32(buf, var->csf_tx_update_lm_counter_base_id[1]);
  13802 	BCM_PACK_U32(buf, var->csf_tx_update_lm_counter_base_id[2]);
  13803 	BCM_PACK_U32(buf, var->csf_tx_update_lm_counter_offset[0]);
  13804 	BCM_PACK_U32(buf, var->csf_tx_update_lm_counter_offset[1]);
  13805 	BCM_PACK_U32(buf, var->csf_tx_update_lm_counter_offset[2]);
  13806 	BCM_PACK_U8(buf, var->csf_tx_update_lm_counter_size);
  13807 	return buf;
  13808 }
  13809 
  13810 uint8 *
  13811 _bcm_unpack_oam_csf(uint8 *buf, bcm_oam_csf_t *var)
  13812 {
  13813 	BCM_UNPACK_U32(buf, var->flags);
  13814 	BCM_UNPACK_U32(buf, var->type);
  13815 	BCM_UNPACK_U32(buf, var->id);
  13816 	BCM_UNPACK_U32(buf, var->period);
  13817 	BCM_UNPACK_U8(buf, var->pkt_pri);
  13818 	BCM_UNPACK_U32(buf, var->int_pri);
  13819 	BCM_UNPACK_U32(buf, var->csf_tx_update_lm_counter_base_id[0]);
  13820 	BCM_UNPACK_U32(buf, var->csf_tx_update_lm_counter_base_id[1]);
  13821 	BCM_UNPACK_U32(buf, var->csf_tx_update_lm_counter_base_id[2]);
  13822 	BCM_UNPACK_U32(buf, var->csf_tx_update_lm_counter_offset[0]);
  13823 	BCM_UNPACK_U32(buf, var->csf_tx_update_lm_counter_offset[1]);
  13824 	BCM_UNPACK_U32(buf, var->csf_tx_update_lm_counter_offset[2]);
  13825 	BCM_UNPACK_U8(buf, var->csf_tx_update_lm_counter_size);
  13826 	return buf;
  13827 }
  13828 
  13829 uint8 *
  13830 _bcm_pack_oam_delay(uint8 *buf, bcm_oam_delay_t *var)
  13831 {
  13832 	BCM_PACK_U32(buf, var->flags);
  13833 	BCM_PACK_U32(buf, var->delay_id);
  13834 	BCM_PACK_U32(buf, var->id);
  13835 	BCM_PACK_U32(buf, var->remote_id);
  13836 	BCM_PACK_U32(buf, var->period);
  13837 	BCM_PACK_U8(buf, var->delay_min.isnegative);
  13838 	{
  13839 		uint32 _u32;
  13840 
  13841 		_u32 = COMPILER_64_HI(var->delay_min.seconds);
  13842 		BCM_PACK_U32(buf, _u32);
  13843 		_u32 = COMPILER_64_LO(var->delay_min.seconds);
  13844 		BCM_PACK_U32(buf, _u32);
  13845 	}
  13846 	BCM_PACK_U32(buf, var->delay_min.nanoseconds);
  13847 	BCM_PACK_U8(buf, var->delay_max.isnegative);
  13848 	{
  13849 		uint32 _u32;
  13850 
  13851 		_u32 = COMPILER_64_HI(var->delay_max.seconds);
  13852 		BCM_PACK_U32(buf, _u32);
  13853 		_u32 = COMPILER_64_LO(var->delay_max.seconds);
  13854 		BCM_PACK_U32(buf, _u32);
  13855 	}
  13856 	BCM_PACK_U32(buf, var->delay_max.nanoseconds);
  13857 	BCM_PACK_U8(buf, var->delay.isnegative);
  13858 	{
  13859 		uint32 _u32;
  13860 
  13861 		_u32 = COMPILER_64_HI(var->delay.seconds);
  13862 		BCM_PACK_U32(buf, _u32);
  13863 		_u32 = COMPILER_64_LO(var->delay.seconds);
  13864 		BCM_PACK_U32(buf, _u32);
  13865 	}
  13866 	BCM_PACK_U32(buf, var->delay.nanoseconds);
  13867 	BCM_PACK_U8(buf, var->txf.isnegative);
  13868 	{
  13869 		uint32 _u32;
  13870 
  13871 		_u32 = COMPILER_64_HI(var->txf.seconds);
  13872 		BCM_PACK_U32(buf, _u32);
  13873 		_u32 = COMPILER_64_LO(var->txf.seconds);
  13874 		BCM_PACK_U32(buf, _u32);
  13875 	}
  13876 	BCM_PACK_U32(buf, var->txf.nanoseconds);
  13877 	BCM_PACK_U8(buf, var->rxf.isnegative);
  13878 	{
  13879 		uint32 _u32;
  13880 
  13881 		_u32 = COMPILER_64_HI(var->rxf.seconds);
  13882 		BCM_PACK_U32(buf, _u32);
  13883 		_u32 = COMPILER_64_LO(var->rxf.seconds);
  13884 		BCM_PACK_U32(buf, _u32);
  13885 	}
  13886 	BCM_PACK_U32(buf, var->rxf.nanoseconds);
  13887 	BCM_PACK_U8(buf, var->txb.isnegative);
  13888 	{
  13889 		uint32 _u32;
  13890 
  13891 		_u32 = COMPILER_64_HI(var->txb.seconds);
  13892 		BCM_PACK_U32(buf, _u32);
  13893 		_u32 = COMPILER_64_LO(var->txb.seconds);
  13894 		BCM_PACK_U32(buf, _u32);
  13895 	}
  13896 	BCM_PACK_U32(buf, var->txb.nanoseconds);
  13897 	BCM_PACK_U8(buf, var->rxb.isnegative);
  13898 	{
  13899 		uint32 _u32;
  13900 
  13901 		_u32 = COMPILER_64_HI(var->rxb.seconds);
  13902 		BCM_PACK_U32(buf, _u32);
  13903 		_u32 = COMPILER_64_LO(var->rxb.seconds);
  13904 		BCM_PACK_U32(buf, _u32);
  13905 	}
  13906 	BCM_PACK_U32(buf, var->rxb.nanoseconds);
  13907 	BCM_PACK_U8(buf, var->pkt_pri);
  13908 	BCM_PACK_U8(buf, var->pkt_pri_bitmap);
  13909 	BCM_PACK_U32(buf, var->int_pri);
  13910 	BCM_PACK_U32(buf, var->rx_oam_packets);
  13911 	BCM_PACK_U32(buf, var->tx_oam_packets);
  13912 	BCM_PACK_U32(buf, var->timestamp_format);
  13913 	{
  13914 		int _i;
  13915 
  13916 		for (_i = 0; _i < 6; _i++) {
  13917 			BCM_PACK_U8(buf, var->peer_da_mac_address[_i]);
  13918 		}
  13919 	}
  13920 	BCM_PACK_U32(buf, var->pm_id);
  13921 	BCM_PACK_U32(buf, var->dm_tx_update_lm_counter_base_id[0]);
  13922 	BCM_PACK_U32(buf, var->dm_tx_update_lm_counter_base_id[1]);
  13923 	BCM_PACK_U32(buf, var->dm_tx_update_lm_counter_base_id[2]);
  13924 	BCM_PACK_U32(buf, var->dm_tx_update_lm_counter_offset[0]);
  13925 	BCM_PACK_U32(buf, var->dm_tx_update_lm_counter_offset[1]);
  13926 	BCM_PACK_U32(buf, var->dm_tx_update_lm_counter_offset[2]);
  13927 	BCM_PACK_U32(buf, var->dm_tx_update_lm_counter_byte_offset[0]);
  13928 	BCM_PACK_U32(buf, var->dm_tx_update_lm_counter_byte_offset[1]);
  13929 	BCM_PACK_U32(buf, var->dm_tx_update_lm_counter_byte_offset[2]);
  13930 	BCM_PACK_U8(buf, var->dm_tx_update_lm_counter_size);
  13931 	BCM_PACK_U32(buf, var->tlvs[0].tlv_type);
  13932 	BCM_PACK_U32(buf, var->tlvs[0].tlv_length);
  13933 	BCM_PACK_U32(buf, var->tlvs[0].four_byte_repeatable_pattern);
  13934 	return buf;
  13935 }
  13936 
  13937 uint8 *
  13938 _bcm_unpack_oam_delay(uint8 *buf, bcm_oam_delay_t *var)
  13939 {
  13940 	BCM_UNPACK_U32(buf, var->flags);
  13941 	BCM_UNPACK_U32(buf, var->delay_id);
  13942 	BCM_UNPACK_U32(buf, var->id);
  13943 	BCM_UNPACK_U32(buf, var->remote_id);
  13944 	BCM_UNPACK_U32(buf, var->period);
  13945 	BCM_UNPACK_U8(buf, var->delay_min.isnegative);
  13946 	{
  13947 		uint32 _u32h, _u32l;
  13948 
  13949 		BCM_UNPACK_U32(buf, _u32h);
  13950 		BCM_UNPACK_U32(buf, _u32l);
  13951 		COMPILER_64_SET(var->delay_min.seconds, _u32h, _u32l);
  13952 	}
  13953 	BCM_UNPACK_U32(buf, var->delay_min.nanoseconds);
  13954 	BCM_UNPACK_U8(buf, var->delay_max.isnegative);
  13955 	{
  13956 		uint32 _u32h, _u32l;
  13957 
  13958 		BCM_UNPACK_U32(buf, _u32h);
  13959 		BCM_UNPACK_U32(buf, _u32l);
  13960 		COMPILER_64_SET(var->delay_max.seconds, _u32h, _u32l);
  13961 	}
  13962 	BCM_UNPACK_U32(buf, var->delay_max.nanoseconds);
  13963 	BCM_UNPACK_U8(buf, var->delay.isnegative);
  13964 	{
  13965 		uint32 _u32h, _u32l;
  13966 
  13967 		BCM_UNPACK_U32(buf, _u32h);
  13968 		BCM_UNPACK_U32(buf, _u32l);
  13969 		COMPILER_64_SET(var->delay.seconds, _u32h, _u32l);
  13970 	}
  13971 	BCM_UNPACK_U32(buf, var->delay.nanoseconds);
  13972 	BCM_UNPACK_U8(buf, var->txf.isnegative);
  13973 	{
  13974 		uint32 _u32h, _u32l;
  13975 
  13976 		BCM_UNPACK_U32(buf, _u32h);
  13977 		BCM_UNPACK_U32(buf, _u32l);
  13978 		COMPILER_64_SET(var->txf.seconds, _u32h, _u32l);
  13979 	}
  13980 	BCM_UNPACK_U32(buf, var->txf.nanoseconds);
  13981 	BCM_UNPACK_U8(buf, var->rxf.isnegative);
  13982 	{
  13983 		uint32 _u32h, _u32l;
  13984 
  13985 		BCM_UNPACK_U32(buf, _u32h);
  13986 		BCM_UNPACK_U32(buf, _u32l);
  13987 		COMPILER_64_SET(var->rxf.seconds, _u32h, _u32l);
  13988 	}
  13989 	BCM_UNPACK_U32(buf, var->rxf.nanoseconds);
  13990 	BCM_UNPACK_U8(buf, var->txb.isnegative);
  13991 	{
  13992 		uint32 _u32h, _u32l;
  13993 
  13994 		BCM_UNPACK_U32(buf, _u32h);
  13995 		BCM_UNPACK_U32(buf, _u32l);
  13996 		COMPILER_64_SET(var->txb.seconds, _u32h, _u32l);
  13997 	}
  13998 	BCM_UNPACK_U32(buf, var->txb.nanoseconds);
  13999 	BCM_UNPACK_U8(buf, var->rxb.isnegative);
  14000 	{
  14001 		uint32 _u32h, _u32l;
  14002 
  14003 		BCM_UNPACK_U32(buf, _u32h);
  14004 		BCM_UNPACK_U32(buf, _u32l);
  14005 		COMPILER_64_SET(var->rxb.seconds, _u32h, _u32l);
  14006 	}
  14007 	BCM_UNPACK_U32(buf, var->rxb.nanoseconds);
  14008 	BCM_UNPACK_U8(buf, var->pkt_pri);
  14009 	BCM_UNPACK_U8(buf, var->pkt_pri_bitmap);
  14010 	BCM_UNPACK_U32(buf, var->int_pri);
  14011 	BCM_UNPACK_U32(buf, var->rx_oam_packets);
  14012 	BCM_UNPACK_U32(buf, var->tx_oam_packets);
  14013 	BCM_UNPACK_U32(buf, var->timestamp_format);
  14014 	{
  14015 		int _i;
  14016 
  14017 		for (_i = 0; _i < 6; _i++) {
  14018 			BCM_UNPACK_U8(buf, var->peer_da_mac_address[_i]);
  14019 		}
  14020 	}
  14021 	BCM_UNPACK_U32(buf, var->pm_id);
  14022 	BCM_UNPACK_U32(buf, var->dm_tx_update_lm_counter_base_id[0]);
  14023 	BCM_UNPACK_U32(buf, var->dm_tx_update_lm_counter_base_id[1]);
  14024 	BCM_UNPACK_U32(buf, var->dm_tx_update_lm_counter_base_id[2]);
  14025 	BCM_UNPACK_U32(buf, var->dm_tx_update_lm_counter_offset[0]);
  14026 	BCM_UNPACK_U32(buf, var->dm_tx_update_lm_counter_offset[1]);
  14027 	BCM_UNPACK_U32(buf, var->dm_tx_update_lm_counter_offset[2]);
  14028 	BCM_UNPACK_U32(buf, var->dm_tx_update_lm_counter_byte_offset[0]);
  14029 	BCM_UNPACK_U32(buf, var->dm_tx_update_lm_counter_byte_offset[1]);
  14030 	BCM_UNPACK_U32(buf, var->dm_tx_update_lm_counter_byte_offset[2]);
  14031 	BCM_UNPACK_U8(buf, var->dm_tx_update_lm_counter_size);
  14032 	BCM_UNPACK_U32(buf, var->tlvs[0].tlv_type);
  14033 	BCM_UNPACK_U32(buf, var->tlvs[0].tlv_length);
  14034 	BCM_UNPACK_U32(buf, var->tlvs[0].four_byte_repeatable_pattern);
  14035 	return buf;
  14036 }
  14037 
  14038 uint8 *
  14039 _bcm_pack_oam_endpoint_action(uint8 *buf, bcm_oam_endpoint_action_t *var)
  14040 {
  14041 	BCM_PACK_U32(buf, var->flags);
  14042 	{
  14043 		int _i;
  14044 
  14045 		for (_i = 0; _i < 8; _i++) {
  14046 			BCM_PACK_U32(buf, var->opcode_bmp[_i]);
  14047 		}
  14048 	}
  14049 	BCM_PACK_U32(buf, var->opcode_actions[0]);
  14050 	BCM_PACK_U32(buf, var->destination);
  14051 	BCM_PACK_U32(buf, var->destination2);
  14052 	return buf;
  14053 }
  14054 
  14055 uint8 *
  14056 _bcm_unpack_oam_endpoint_action(uint8 *buf, bcm_oam_endpoint_action_t *var)
  14057 {
  14058 	BCM_UNPACK_U32(buf, var->flags);
  14059 	{
  14060 		int _i;
  14061 
  14062 		for (_i = 0; _i < 8; _i++) {
  14063 			BCM_UNPACK_U32(buf, var->opcode_bmp[_i]);
  14064 		}
  14065 	}
  14066 	BCM_UNPACK_U32(buf, var->opcode_actions[0]);
  14067 	BCM_UNPACK_U32(buf, var->destination);
  14068 	BCM_UNPACK_U32(buf, var->destination2);
  14069 	return buf;
  14070 }
  14071 
  14072 uint8 *
  14073 _bcm_pack_oam_endpoint_fault(uint8 *buf, bcm_oam_endpoint_fault_t *var)
  14074 {
  14075 	BCM_PACK_U32(buf, var->endpoint_id);
  14076 	BCM_PACK_U32(buf, var->faults);
  14077 	return buf;
  14078 }
  14079 
  14080 uint8 *
  14081 _bcm_unpack_oam_endpoint_fault(uint8 *buf, bcm_oam_endpoint_fault_t *var)
  14082 {
  14083 	BCM_UNPACK_U32(buf, var->endpoint_id);
  14084 	BCM_UNPACK_U32(buf, var->faults);
  14085 	return buf;
  14086 }
  14087 
  14088 uint8 *
  14089 _bcm_pack_oam_endpoint_info(uint8 *buf, bcm_oam_endpoint_info_t *var)
  14090 {
  14091 	BCM_PACK_U32(buf, var->flags);
  14092 	BCM_PACK_U32(buf, var->flags2);
  14093 	BCM_PACK_U32(buf, var->opcode_flags);
  14094 	BCM_PACK_U32(buf, var->lm_flags);
  14095 	BCM_PACK_U32(buf, var->id);
  14096 	BCM_PACK_U32(buf, var->type);
  14097 	BCM_PACK_U32(buf, var->group);
  14098 	BCM_PACK_U16(buf, var->name);
  14099 	BCM_PACK_U32(buf, var->local_id);
  14100 	BCM_PACK_U32(buf, var->level);
  14101 	BCM_PACK_U32(buf, var->ccm_period);
  14102 	BCM_PACK_U16(buf, var->vlan);
  14103 	BCM_PACK_U16(buf, var->inner_vlan);
  14104 	BCM_PACK_U32(buf, var->gport);
  14105 	BCM_PACK_U32(buf, var->tx_gport);
  14106 	BCM_PACK_U32(buf, var->trunk_index);
  14107 	BCM_PACK_U32(buf, var->intf_id);
  14108 	BCM_PACK_U32(buf, var->mpls_label);
  14109 	BCM_PACK_U32(buf, var->egress_label.flags);
  14110 	BCM_PACK_U32(buf, var->egress_label.label);
  14111 	BCM_PACK_U32(buf, var->egress_label.qos_map_id);
  14112 	BCM_PACK_U8(buf, var->egress_label.exp);
  14113 	BCM_PACK_U8(buf, var->egress_label.ttl);
  14114 	BCM_PACK_U8(buf, var->egress_label.pkt_pri);
  14115 	BCM_PACK_U8(buf, var->egress_label.pkt_cfi);
  14116 	BCM_PACK_U32(buf, var->egress_label.tunnel_id);
  14117 	BCM_PACK_U32(buf, var->egress_label.l3_intf_id);
  14118 	BCM_PACK_U32(buf, var->egress_label.action);
  14119 	BCM_PACK_U32(buf, var->egress_label.ecn_map_id);
  14120 	BCM_PACK_U32(buf, var->egress_label.int_cn_map_id);
  14121 	BCM_PACK_U32(buf, var->egress_label.egress_failover_id);
  14122 	BCM_PACK_U32(buf, var->egress_label.egress_failover_if_id);
  14123 	BCM_PACK_U32(buf, var->egress_label.outlif_counting_profile);
  14124 	BCM_PACK_U32(buf, var->egress_label.spl_label_push_type);
  14125 	BCM_PACK_U32(buf, var->egress_label.encap_access);
  14126 	BCM_PACK_U32(buf, var->egress_label.egress_qos_model.egress_qos);
  14127 	BCM_PACK_U32(buf, var->egress_label.egress_qos_model.egress_ttl);
  14128 	BCM_PACK_U8(buf, var->egress_label.egress_qos_model.ecn_eligible);
  14129 	BCM_PACK_U8(buf, var->mpls_network_info.function_type);
  14130 	{
  14131 		int _i;
  14132 
  14133 		for (_i = 0; _i < 16; _i++) {
  14134 			BCM_PACK_U8(buf, var->mpls_network_info.lsr_id[_i]);
  14135 		}
  14136 	}
  14137 	BCM_PACK_U32(buf, var->mpls_network_info.lsp_id);
  14138 	{
  14139 		int _i;
  14140 
  14141 		for (_i = 0; _i < 6; _i++) {
  14142 			BCM_PACK_U8(buf, var->dst_mac_address[_i]);
  14143 		}
  14144 	}
  14145 	{
  14146 		int _i;
  14147 
  14148 		for (_i = 0; _i < 6; _i++) {
  14149 			BCM_PACK_U8(buf, var->src_mac_address[_i]);
  14150 		}
  14151 	}
  14152 	BCM_PACK_U8(buf, var->pkt_pri);
  14153 	BCM_PACK_U8(buf, var->inner_pkt_pri);
  14154 	BCM_PACK_U16(buf, var->inner_tpid);
  14155 	BCM_PACK_U16(buf, var->outer_tpid);
  14156 	BCM_PACK_U32(buf, var->int_pri);
  14157 	BCM_PACK_U8(buf, var->cpu_qid);
  14158 	{
  14159 		int _i;
  14160 
  14161 		for (_i = 0; _i < 16; _i++) {
  14162 			BCM_PACK_U8(buf, var->pri_map[_i]);
  14163 		}
  14164 	}
  14165 	BCM_PACK_U32(buf, var->faults);
  14166 	BCM_PACK_U32(buf, var->persistent_faults);
  14167 	BCM_PACK_U32(buf, var->clear_persistent_faults);
  14168 	BCM_PACK_U32(buf, var->ing_map);
  14169 	BCM_PACK_U32(buf, var->egr_map);
  14170 	BCM_PACK_U8(buf, var->ms_pw_ttl);
  14171 	BCM_PACK_U8(buf, var->port_state);
  14172 	BCM_PACK_U8(buf, var->interface_state);
  14173 	BCM_PACK_U32(buf, var->vccv_type);
  14174 	BCM_PACK_U16(buf, var->vpn);
  14175 	BCM_PACK_U32(buf, var->lm_counter_base_id);
  14176 	BCM_PACK_U8(buf, var->lm_counter_if);
  14177 	BCM_PACK_U8(buf, var->loc_clear_threshold);
  14178 	BCM_PACK_U32(buf, var->timestamp_format);
  14179 	BCM_PACK_U16(buf, var->subport_tpid);
  14180 	BCM_PACK_U32(buf, var->remote_gport);
  14181 	BCM_PACK_U32(buf, var->mpls_out_gport);
  14182 	BCM_PACK_U32(buf, var->sampling_ratio);
  14183 	BCM_PACK_U32(buf, var->lm_payload_offset);
  14184 	BCM_PACK_U32(buf, var->lm_cos_offset);
  14185 	BCM_PACK_U32(buf, var->lm_ctr_type);
  14186 	BCM_PACK_U32(buf, var->lm_ctr_sample_size);
  14187 	BCM_PACK_U32(buf, var->pri_map_id);
  14188 	BCM_PACK_U32(buf, var->lm_ctr_pool_id);
  14189 	BCM_PACK_U32(buf, var->ccm_tx_update_lm_counter_base_id[0]);
  14190 	BCM_PACK_U32(buf, var->ccm_tx_update_lm_counter_base_id[1]);
  14191 	BCM_PACK_U32(buf, var->ccm_tx_update_lm_counter_base_id[2]);
  14192 	BCM_PACK_U32(buf, var->ccm_tx_update_lm_counter_offset[0]);
  14193 	BCM_PACK_U32(buf, var->ccm_tx_update_lm_counter_offset[1]);
  14194 	BCM_PACK_U32(buf, var->ccm_tx_update_lm_counter_offset[2]);
  14195 	BCM_PACK_U8(buf, var->ccm_tx_update_lm_counter_action[0]);
  14196 	BCM_PACK_U8(buf, var->ccm_tx_update_lm_counter_action[1]);
  14197 	BCM_PACK_U8(buf, var->ccm_tx_update_lm_counter_action[2]);
  14198 	BCM_PACK_U8(buf, var->ccm_tx_update_lm_counter_size);
  14199 	BCM_PACK_U32(buf, var->session_id);
  14200 	BCM_PACK_U8(buf, var->session_num_entries);
  14201 	BCM_PACK_U8(buf, var->lm_count_profile);
  14202 	BCM_PACK_U8(buf, var->mpls_exp);
  14203 	BCM_PACK_U32(buf, var->action_reference_id);
  14204 	BCM_PACK_U32(buf, var->acc_profile_id);
  14205 	BCM_PACK_U32(buf, var->endpoint_memory_type);
  14206 	return buf;
  14207 }
  14208 
  14209 uint8 *
  14210 _bcm_unpack_oam_endpoint_info(uint8 *buf, bcm_oam_endpoint_info_t *var)
  14211 {
  14212 	BCM_UNPACK_U32(buf, var->flags);
  14213 	BCM_UNPACK_U32(buf, var->flags2);
  14214 	BCM_UNPACK_U32(buf, var->opcode_flags);
  14215 	BCM_UNPACK_U32(buf, var->lm_flags);
  14216 	BCM_UNPACK_U32(buf, var->id);
  14217 	BCM_UNPACK_U32(buf, var->type);
  14218 	BCM_UNPACK_U32(buf, var->group);
  14219 	BCM_UNPACK_U16(buf, var->name);
  14220 	BCM_UNPACK_U32(buf, var->local_id);
  14221 	BCM_UNPACK_U32(buf, var->level);
  14222 	BCM_UNPACK_U32(buf, var->ccm_period);
  14223 	BCM_UNPACK_U16(buf, var->vlan);
  14224 	BCM_UNPACK_U16(buf, var->inner_vlan);
  14225 	BCM_UNPACK_U32(buf, var->gport);
  14226 	BCM_UNPACK_U32(buf, var->tx_gport);
  14227 	BCM_UNPACK_U32(buf, var->trunk_index);
  14228 	BCM_UNPACK_U32(buf, var->intf_id);
  14229 	BCM_UNPACK_U32(buf, var->mpls_label);
  14230 	BCM_UNPACK_U32(buf, var->egress_label.flags);
  14231 	BCM_UNPACK_U32(buf, var->egress_label.label);
  14232 	BCM_UNPACK_U32(buf, var->egress_label.qos_map_id);
  14233 	BCM_UNPACK_U8(buf, var->egress_label.exp);
  14234 	BCM_UNPACK_U8(buf, var->egress_label.ttl);
  14235 	BCM_UNPACK_U8(buf, var->egress_label.pkt_pri);
  14236 	BCM_UNPACK_U8(buf, var->egress_label.pkt_cfi);
  14237 	BCM_UNPACK_U32(buf, var->egress_label.tunnel_id);
  14238 	BCM_UNPACK_U32(buf, var->egress_label.l3_intf_id);
  14239 	BCM_UNPACK_U32(buf, var->egress_label.action);
  14240 	BCM_UNPACK_U32(buf, var->egress_label.ecn_map_id);
  14241 	BCM_UNPACK_U32(buf, var->egress_label.int_cn_map_id);
  14242 	BCM_UNPACK_U32(buf, var->egress_label.egress_failover_id);
  14243 	BCM_UNPACK_U32(buf, var->egress_label.egress_failover_if_id);
  14244 	BCM_UNPACK_U32(buf, var->egress_label.outlif_counting_profile);
  14245 	BCM_UNPACK_U32(buf, var->egress_label.spl_label_push_type);
  14246 	BCM_UNPACK_U32(buf, var->egress_label.encap_access);
  14247 	BCM_UNPACK_U32(buf, var->egress_label.egress_qos_model.egress_qos);
  14248 	BCM_UNPACK_U32(buf, var->egress_label.egress_qos_model.egress_ttl);
  14249 	BCM_UNPACK_U8(buf, var->egress_label.egress_qos_model.ecn_eligible);
  14250 	BCM_UNPACK_U8(buf, var->mpls_network_info.function_type);
  14251 	{
  14252 		int _i;
  14253 
  14254 		for (_i = 0; _i < 16; _i++) {
  14255 			BCM_UNPACK_U8(buf, var->mpls_network_info.lsr_id[_i]);
  14256 		}
  14257 	}
  14258 	BCM_UNPACK_U32(buf, var->mpls_network_info.lsp_id);
  14259 	{
  14260 		int _i;
  14261 
  14262 		for (_i = 0; _i < 6; _i++) {
  14263 			BCM_UNPACK_U8(buf, var->dst_mac_address[_i]);
  14264 		}
  14265 	}
  14266 	{
  14267 		int _i;
  14268 
  14269 		for (_i = 0; _i < 6; _i++) {
  14270 			BCM_UNPACK_U8(buf, var->src_mac_address[_i]);
  14271 		}
  14272 	}
  14273 	BCM_UNPACK_U8(buf, var->pkt_pri);
  14274 	BCM_UNPACK_U8(buf, var->inner_pkt_pri);
  14275 	BCM_UNPACK_U16(buf, var->inner_tpid);
  14276 	BCM_UNPACK_U16(buf, var->outer_tpid);
  14277 	BCM_UNPACK_U32(buf, var->int_pri);
  14278 	BCM_UNPACK_U8(buf, var->cpu_qid);
  14279 	{
  14280 		int _i;
  14281 
  14282 		for (_i = 0; _i < 16; _i++) {
  14283 			BCM_UNPACK_U8(buf, var->pri_map[_i]);
  14284 		}
  14285 	}
  14286 	BCM_UNPACK_U32(buf, var->faults);
  14287 	BCM_UNPACK_U32(buf, var->persistent_faults);
  14288 	BCM_UNPACK_U32(buf, var->clear_persistent_faults);
  14289 	BCM_UNPACK_U32(buf, var->ing_map);
  14290 	BCM_UNPACK_U32(buf, var->egr_map);
  14291 	BCM_UNPACK_U8(buf, var->ms_pw_ttl);
  14292 	BCM_UNPACK_U8(buf, var->port_state);
  14293 	BCM_UNPACK_U8(buf, var->interface_state);
  14294 	BCM_UNPACK_U32(buf, var->vccv_type);
  14295 	BCM_UNPACK_U16(buf, var->vpn);
  14296 	BCM_UNPACK_U32(buf, var->lm_counter_base_id);
  14297 	BCM_UNPACK_U8(buf, var->lm_counter_if);
  14298 	BCM_UNPACK_U8(buf, var->loc_clear_threshold);
  14299 	BCM_UNPACK_U32(buf, var->timestamp_format);
  14300 	BCM_UNPACK_U16(buf, var->subport_tpid);
  14301 	BCM_UNPACK_U32(buf, var->remote_gport);
  14302 	BCM_UNPACK_U32(buf, var->mpls_out_gport);
  14303 	BCM_UNPACK_U32(buf, var->sampling_ratio);
  14304 	BCM_UNPACK_U32(buf, var->lm_payload_offset);
  14305 	BCM_UNPACK_U32(buf, var->lm_cos_offset);
  14306 	BCM_UNPACK_U32(buf, var->lm_ctr_type);
  14307 	BCM_UNPACK_U32(buf, var->lm_ctr_sample_size);
  14308 	BCM_UNPACK_U32(buf, var->pri_map_id);
  14309 	BCM_UNPACK_U32(buf, var->lm_ctr_pool_id);
  14310 	BCM_UNPACK_U32(buf, var->ccm_tx_update_lm_counter_base_id[0]);
  14311 	BCM_UNPACK_U32(buf, var->ccm_tx_update_lm_counter_base_id[1]);
  14312 	BCM_UNPACK_U32(buf, var->ccm_tx_update_lm_counter_base_id[2]);
  14313 	BCM_UNPACK_U32(buf, var->ccm_tx_update_lm_counter_offset[0]);
  14314 	BCM_UNPACK_U32(buf, var->ccm_tx_update_lm_counter_offset[1]);
  14315 	BCM_UNPACK_U32(buf, var->ccm_tx_update_lm_counter_offset[2]);
  14316 	BCM_UNPACK_U8(buf, var->ccm_tx_update_lm_counter_action[0]);
  14317 	BCM_UNPACK_U8(buf, var->ccm_tx_update_lm_counter_action[1]);
  14318 	BCM_UNPACK_U8(buf, var->ccm_tx_update_lm_counter_action[2]);
  14319 	BCM_UNPACK_U8(buf, var->ccm_tx_update_lm_counter_size);
  14320 	BCM_UNPACK_U32(buf, var->session_id);
  14321 	BCM_UNPACK_U8(buf, var->session_num_entries);
  14322 	BCM_UNPACK_U8(buf, var->lm_count_profile);
  14323 	BCM_UNPACK_U8(buf, var->mpls_exp);
  14324 	BCM_UNPACK_U32(buf, var->action_reference_id);
  14325 	BCM_UNPACK_U32(buf, var->acc_profile_id);
  14326 	BCM_UNPACK_U32(buf, var->endpoint_memory_type);
  14327 	return buf;
  14328 }
  14329 
  14330 uint8 *
  14331 _bcm_pack_oam_event_types(uint8 *buf, bcm_oam_event_types_t *var)
  14332 {
  14333 	BCM_PACK_U32(buf, var->w[0]);
  14334 	BCM_PACK_U32(buf, var->w[1]);
  14335 	BCM_PACK_U32(buf, var->w[2]);
  14336 	return buf;
  14337 }
  14338 
  14339 uint8 *
  14340 _bcm_unpack_oam_event_types(uint8 *buf, bcm_oam_event_types_t *var)
  14341 {
  14342 	BCM_UNPACK_U32(buf, var->w[0]);
  14343 	BCM_UNPACK_U32(buf, var->w[1]);
  14344 	BCM_UNPACK_U32(buf, var->w[2]);
  14345 	return buf;
  14346 }
  14347 
  14348 uint8 *
  14349 _bcm_pack_oam_group_info(uint8 *buf, bcm_oam_group_info_t *var)
  14350 {
  14351 	BCM_PACK_U32(buf, var->flags);
  14352 	BCM_PACK_U32(buf, var->id);
  14353 	{
  14354 		int _i;
  14355 
  14356 		for (_i = 0; _i < 48; _i++) {
  14357 			BCM_PACK_U8(buf, var->name[_i]);
  14358 		}
  14359 	}
  14360 	{
  14361 		int _i;
  14362 
  14363 		for (_i = 0; _i < 48; _i++) {
  14364 			BCM_PACK_U8(buf, var->rx_name[_i]);
  14365 		}
  14366 	}
  14367 	BCM_PACK_U32(buf, var->faults);
  14368 	BCM_PACK_U32(buf, var->persistent_faults);
  14369 	BCM_PACK_U32(buf, var->clear_persistent_faults);
  14370 	BCM_PACK_U32(buf, var->lowest_alarm_priority);
  14371 	BCM_PACK_U32(buf, var->group_name_index);
  14372 	return buf;
  14373 }
  14374 
  14375 uint8 *
  14376 _bcm_unpack_oam_group_info(uint8 *buf, bcm_oam_group_info_t *var)
  14377 {
  14378 	BCM_UNPACK_U32(buf, var->flags);
  14379 	BCM_UNPACK_U32(buf, var->id);
  14380 	{
  14381 		int _i;
  14382 
  14383 		for (_i = 0; _i < 48; _i++) {
  14384 			BCM_UNPACK_U8(buf, var->name[_i]);
  14385 		}
  14386 	}
  14387 	{
  14388 		int _i;
  14389 
  14390 		for (_i = 0; _i < 48; _i++) {
  14391 			BCM_UNPACK_U8(buf, var->rx_name[_i]);
  14392 		}
  14393 	}
  14394 	BCM_UNPACK_U32(buf, var->faults);
  14395 	BCM_UNPACK_U32(buf, var->persistent_faults);
  14396 	BCM_UNPACK_U32(buf, var->clear_persistent_faults);
  14397 	BCM_UNPACK_U32(buf, var->lowest_alarm_priority);
  14398 	BCM_UNPACK_U32(buf, var->group_name_index);
  14399 	return buf;
  14400 }
  14401 
  14402 uint8 *
  14403 _bcm_pack_oam_loopback(uint8 *buf, bcm_oam_loopback_t *var)
  14404 {
  14405 	BCM_PACK_U32(buf, var->flags);
  14406 	BCM_PACK_U32(buf, var->id);
  14407 	BCM_PACK_U32(buf, var->remote_id);
  14408 	BCM_PACK_U32(buf, var->period);
  14409 	BCM_PACK_U32(buf, var->ttl);
  14410 	BCM_PACK_U32(buf, var->discovered_me.flags);
  14411 	BCM_PACK_U32(buf, var->discovered_me.id);
  14412 	BCM_PACK_U32(buf, var->discovered_me.ttl);
  14413 	BCM_PACK_U16(buf, var->discovered_me.name);
  14414 	BCM_PACK_U32(buf, var->rx_count);
  14415 	BCM_PACK_U32(buf, var->tx_count);
  14416 	BCM_PACK_U32(buf, var->drop_count);
  14417 	BCM_PACK_U32(buf, var->unexpected_response);
  14418 	BCM_PACK_U32(buf, var->out_of_sequence);
  14419 	BCM_PACK_U32(buf, var->local_mipid_missmatch);
  14420 	BCM_PACK_U32(buf, var->remote_mipid_missmatch);
  14421 	BCM_PACK_U32(buf, var->invalid_target_mep_tlv);
  14422 	BCM_PACK_U32(buf, var->invalid_mep_tlv_subtype);
  14423 	BCM_PACK_U32(buf, var->invalid_tlv_offset);
  14424 	{
  14425 		int _i;
  14426 
  14427 		for (_i = 0; _i < 6; _i++) {
  14428 			BCM_PACK_U8(buf, var->peer_da_mac_address[_i]);
  14429 		}
  14430 	}
  14431 	BCM_PACK_U32(buf, var->num_tlvs);
  14432 	BCM_PACK_U32(buf, var->invalid_tlv_count);
  14433 	BCM_PACK_U32(buf, var->ctf_id);
  14434 	BCM_PACK_U32(buf, var->gtf_id);
  14435 	BCM_PACK_U32(buf, var->tlvs[0].tlv_type);
  14436 	BCM_PACK_U32(buf, var->tlvs[0].tlv_length);
  14437 	BCM_PACK_U32(buf, var->tlvs[0].four_byte_repeatable_pattern);
  14438 	BCM_PACK_U32(buf, var->tlvs[1].tlv_type);
  14439 	BCM_PACK_U32(buf, var->tlvs[1].tlv_length);
  14440 	BCM_PACK_U32(buf, var->tlvs[1].four_byte_repeatable_pattern);
  14441 	BCM_PACK_U32(buf, var->lb_tx_update_lm_counter_base_id[0]);
  14442 	BCM_PACK_U32(buf, var->lb_tx_update_lm_counter_base_id[1]);
  14443 	BCM_PACK_U32(buf, var->lb_tx_update_lm_counter_base_id[2]);
  14444 	BCM_PACK_U32(buf, var->lb_tx_update_lm_counter_offset[0]);
  14445 	BCM_PACK_U32(buf, var->lb_tx_update_lm_counter_offset[1]);
  14446 	BCM_PACK_U32(buf, var->lb_tx_update_lm_counter_offset[2]);
  14447 	BCM_PACK_U8(buf, var->lb_tx_update_lm_counter_size);
  14448 	BCM_PACK_U32(buf, var->int_pri);
  14449 	BCM_PACK_U8(buf, var->pkt_pri);
  14450 	BCM_PACK_U8(buf, var->inner_pkt_pri);
  14451 	return buf;
  14452 }
  14453 
  14454 uint8 *
  14455 _bcm_unpack_oam_loopback(uint8 *buf, bcm_oam_loopback_t *var)
  14456 {
  14457 	BCM_UNPACK_U32(buf, var->flags);
  14458 	BCM_UNPACK_U32(buf, var->id);
  14459 	BCM_UNPACK_U32(buf, var->remote_id);
  14460 	BCM_UNPACK_U32(buf, var->period);
  14461 	BCM_UNPACK_U32(buf, var->ttl);
  14462 	BCM_UNPACK_U32(buf, var->discovered_me.flags);
  14463 	BCM_UNPACK_U32(buf, var->discovered_me.id);
  14464 	BCM_UNPACK_U32(buf, var->discovered_me.ttl);
  14465 	BCM_UNPACK_U16(buf, var->discovered_me.name);
  14466 	BCM_UNPACK_U32(buf, var->rx_count);
  14467 	BCM_UNPACK_U32(buf, var->tx_count);
  14468 	BCM_UNPACK_U32(buf, var->drop_count);
  14469 	BCM_UNPACK_U32(buf, var->unexpected_response);
  14470 	BCM_UNPACK_U32(buf, var->out_of_sequence);
  14471 	BCM_UNPACK_U32(buf, var->local_mipid_missmatch);
  14472 	BCM_UNPACK_U32(buf, var->remote_mipid_missmatch);
  14473 	BCM_UNPACK_U32(buf, var->invalid_target_mep_tlv);
  14474 	BCM_UNPACK_U32(buf, var->invalid_mep_tlv_subtype);
  14475 	BCM_UNPACK_U32(buf, var->invalid_tlv_offset);
  14476 	{
  14477 		int _i;
  14478 
  14479 		for (_i = 0; _i < 6; _i++) {
  14480 			BCM_UNPACK_U8(buf, var->peer_da_mac_address[_i]);
  14481 		}
  14482 	}
  14483 	BCM_UNPACK_U32(buf, var->num_tlvs);
  14484 	BCM_UNPACK_U32(buf, var->invalid_tlv_count);
  14485 	BCM_UNPACK_U32(buf, var->ctf_id);
  14486 	BCM_UNPACK_U32(buf, var->gtf_id);
  14487 	BCM_UNPACK_U32(buf, var->tlvs[0].tlv_type);
  14488 	BCM_UNPACK_U32(buf, var->tlvs[0].tlv_length);
  14489 	BCM_UNPACK_U32(buf, var->tlvs[0].four_byte_repeatable_pattern);
  14490 	BCM_UNPACK_U32(buf, var->tlvs[1].tlv_type);
  14491 	BCM_UNPACK_U32(buf, var->tlvs[1].tlv_length);
  14492 	BCM_UNPACK_U32(buf, var->tlvs[1].four_byte_repeatable_pattern);
  14493 	BCM_UNPACK_U32(buf, var->lb_tx_update_lm_counter_base_id[0]);
  14494 	BCM_UNPACK_U32(buf, var->lb_tx_update_lm_counter_base_id[1]);
  14495 	BCM_UNPACK_U32(buf, var->lb_tx_update_lm_counter_base_id[2]);
  14496 	BCM_UNPACK_U32(buf, var->lb_tx_update_lm_counter_offset[0]);
  14497 	BCM_UNPACK_U32(buf, var->lb_tx_update_lm_counter_offset[1]);
  14498 	BCM_UNPACK_U32(buf, var->lb_tx_update_lm_counter_offset[2]);
  14499 	BCM_UNPACK_U8(buf, var->lb_tx_update_lm_counter_size);
  14500 	BCM_UNPACK_U32(buf, var->int_pri);
  14501 	BCM_UNPACK_U8(buf, var->pkt_pri);
  14502 	BCM_UNPACK_U8(buf, var->inner_pkt_pri);
  14503 	return buf;
  14504 }
  14505 
  14506 uint8 *
  14507 _bcm_pack_oam_loss(uint8 *buf, bcm_oam_loss_t *var)
  14508 {
  14509 	BCM_PACK_U32(buf, var->flags);
  14510 	BCM_PACK_U32(buf, var->loss_id);
  14511 	BCM_PACK_U32(buf, var->id);
  14512 	BCM_PACK_U32(buf, var->remote_id);
  14513 	BCM_PACK_U32(buf, var->period);
  14514 	BCM_PACK_U32(buf, var->loss_threshold);
  14515 	BCM_PACK_U32(buf, var->loss_nearend);
  14516 	BCM_PACK_U32(buf, var->loss_farend);
  14517 	BCM_PACK_U32(buf, var->loss_nearend_byte);
  14518 	BCM_PACK_U32(buf, var->loss_farend_byte);
  14519 	BCM_PACK_U32(buf, var->loss_nearend_byte_upper);
  14520 	BCM_PACK_U32(buf, var->loss_farend_byte_upper);
  14521 	BCM_PACK_U32(buf, var->loss_nearend_max);
  14522 	BCM_PACK_U32(buf, var->loss_nearend_acc);
  14523 	BCM_PACK_U32(buf, var->loss_farend_max);
  14524 	BCM_PACK_U32(buf, var->loss_farend_acc);
  14525 	BCM_PACK_U32(buf, var->tx_nearend);
  14526 	BCM_PACK_U32(buf, var->rx_nearend);
  14527 	BCM_PACK_U32(buf, var->tx_farend);
  14528 	BCM_PACK_U32(buf, var->rx_farend);
  14529 	BCM_PACK_U32(buf, var->tx_nearend_byte);
  14530 	BCM_PACK_U32(buf, var->rx_nearend_byte);
  14531 	BCM_PACK_U32(buf, var->tx_farend_byte);
  14532 	BCM_PACK_U32(buf, var->rx_farend_byte);
  14533 	BCM_PACK_U32(buf, var->tx_nearend_byte_upper);
  14534 	BCM_PACK_U32(buf, var->rx_nearend_byte_upper);
  14535 	BCM_PACK_U32(buf, var->tx_farend_byte_upper);
  14536 	BCM_PACK_U32(buf, var->rx_farend_byte_upper);
  14537 	BCM_PACK_U8(buf, var->pkt_pri_bitmap);
  14538 	BCM_PACK_U8(buf, var->pkt_dp_bitmap);
  14539 	BCM_PACK_U8(buf, var->pkt_pri);
  14540 	BCM_PACK_U32(buf, var->int_pri);
  14541 	BCM_PACK_U32(buf, var->gport);
  14542 	BCM_PACK_U32(buf, var->rx_oam_packets);
  14543 	BCM_PACK_U32(buf, var->tx_oam_packets);
  14544 	{
  14545 		int _i;
  14546 
  14547 		for (_i = 0; _i < 6; _i++) {
  14548 			BCM_PACK_U8(buf, var->peer_da_mac_address[_i]);
  14549 		}
  14550 	}
  14551 	BCM_PACK_U32(buf, var->lm_counter_base_id[0]);
  14552 	BCM_PACK_U32(buf, var->lm_counter_base_id[1]);
  14553 	BCM_PACK_U32(buf, var->lm_counter_base_id[2]);
  14554 	BCM_PACK_U32(buf, var->lm_counter_offset[0]);
  14555 	BCM_PACK_U32(buf, var->lm_counter_offset[1]);
  14556 	BCM_PACK_U32(buf, var->lm_counter_offset[2]);
  14557 	BCM_PACK_U32(buf, var->lm_counter_action[0]);
  14558 	BCM_PACK_U32(buf, var->lm_counter_action[1]);
  14559 	BCM_PACK_U32(buf, var->lm_counter_action[2]);
  14560 	BCM_PACK_U32(buf, var->lm_counter_byte_offset[0]);
  14561 	BCM_PACK_U32(buf, var->lm_counter_byte_offset[1]);
  14562 	BCM_PACK_U32(buf, var->lm_counter_byte_offset[2]);
  14563 	BCM_PACK_U32(buf, var->lm_counter_size);
  14564 	BCM_PACK_U32(buf, var->pm_id);
  14565 	return buf;
  14566 }
  14567 
  14568 uint8 *
  14569 _bcm_unpack_oam_loss(uint8 *buf, bcm_oam_loss_t *var)
  14570 {
  14571 	BCM_UNPACK_U32(buf, var->flags);
  14572 	BCM_UNPACK_U32(buf, var->loss_id);
  14573 	BCM_UNPACK_U32(buf, var->id);
  14574 	BCM_UNPACK_U32(buf, var->remote_id);
  14575 	BCM_UNPACK_U32(buf, var->period);
  14576 	BCM_UNPACK_U32(buf, var->loss_threshold);
  14577 	BCM_UNPACK_U32(buf, var->loss_nearend);
  14578 	BCM_UNPACK_U32(buf, var->loss_farend);
  14579 	BCM_UNPACK_U32(buf, var->loss_nearend_byte);
  14580 	BCM_UNPACK_U32(buf, var->loss_farend_byte);
  14581 	BCM_UNPACK_U32(buf, var->loss_nearend_byte_upper);
  14582 	BCM_UNPACK_U32(buf, var->loss_farend_byte_upper);
  14583 	BCM_UNPACK_U32(buf, var->loss_nearend_max);
  14584 	BCM_UNPACK_U32(buf, var->loss_nearend_acc);
  14585 	BCM_UNPACK_U32(buf, var->loss_farend_max);
  14586 	BCM_UNPACK_U32(buf, var->loss_farend_acc);
  14587 	BCM_UNPACK_U32(buf, var->tx_nearend);
  14588 	BCM_UNPACK_U32(buf, var->rx_nearend);
  14589 	BCM_UNPACK_U32(buf, var->tx_farend);
  14590 	BCM_UNPACK_U32(buf, var->rx_farend);
  14591 	BCM_UNPACK_U32(buf, var->tx_nearend_byte);
  14592 	BCM_UNPACK_U32(buf, var->rx_nearend_byte);
  14593 	BCM_UNPACK_U32(buf, var->tx_farend_byte);
  14594 	BCM_UNPACK_U32(buf, var->rx_farend_byte);
  14595 	BCM_UNPACK_U32(buf, var->tx_nearend_byte_upper);
  14596 	BCM_UNPACK_U32(buf, var->rx_nearend_byte_upper);
  14597 	BCM_UNPACK_U32(buf, var->tx_farend_byte_upper);
  14598 	BCM_UNPACK_U32(buf, var->rx_farend_byte_upper);
  14599 	BCM_UNPACK_U8(buf, var->pkt_pri_bitmap);
  14600 	BCM_UNPACK_U8(buf, var->pkt_dp_bitmap);
  14601 	BCM_UNPACK_U8(buf, var->pkt_pri);
  14602 	BCM_UNPACK_U32(buf, var->int_pri);
  14603 	BCM_UNPACK_U32(buf, var->gport);
  14604 	BCM_UNPACK_U32(buf, var->rx_oam_packets);
  14605 	BCM_UNPACK_U32(buf, var->tx_oam_packets);
  14606 	{
  14607 		int _i;
  14608 
  14609 		for (_i = 0; _i < 6; _i++) {
  14610 			BCM_UNPACK_U8(buf, var->peer_da_mac_address[_i]);
  14611 		}
  14612 	}
  14613 	BCM_UNPACK_U32(buf, var->lm_counter_base_id[0]);
  14614 	BCM_UNPACK_U32(buf, var->lm_counter_base_id[1]);
  14615 	BCM_UNPACK_U32(buf, var->lm_counter_base_id[2]);
  14616 	BCM_UNPACK_U32(buf, var->lm_counter_offset[0]);
  14617 	BCM_UNPACK_U32(buf, var->lm_counter_offset[1]);
  14618 	BCM_UNPACK_U32(buf, var->lm_counter_offset[2]);
  14619 	BCM_UNPACK_U32(buf, var->lm_counter_action[0]);
  14620 	BCM_UNPACK_U32(buf, var->lm_counter_action[1]);
  14621 	BCM_UNPACK_U32(buf, var->lm_counter_action[2]);
  14622 	BCM_UNPACK_U32(buf, var->lm_counter_byte_offset[0]);
  14623 	BCM_UNPACK_U32(buf, var->lm_counter_byte_offset[1]);
  14624 	BCM_UNPACK_U32(buf, var->lm_counter_byte_offset[2]);
  14625 	BCM_UNPACK_U32(buf, var->lm_counter_size);
  14626 	BCM_UNPACK_U32(buf, var->pm_id);
  14627 	return buf;
  14628 }
  14629 
  14630 uint8 *
  14631 _bcm_pack_oam_opcodes(uint8 *buf, bcm_oam_opcodes_t *var)
  14632 {
  14633 	{
  14634 		int _i;
  14635 
  14636 		for (_i = 0; _i < 8; _i++) {
  14637 			BCM_PACK_U32(buf, var->opcode_bmp[_i]);
  14638 		}
  14639 	}
  14640 	return buf;
  14641 }
  14642 
  14643 uint8 *
  14644 _bcm_unpack_oam_opcodes(uint8 *buf, bcm_oam_opcodes_t *var)
  14645 {
  14646 	{
  14647 		int _i;
  14648 
  14649 		for (_i = 0; _i < 8; _i++) {
  14650 			BCM_UNPACK_U32(buf, var->opcode_bmp[_i]);
  14651 		}
  14652 	}
  14653 	return buf;
  14654 }
  14655 
  14656 uint8 *
  14657 _bcm_pack_oam_pm_profile_info(uint8 *buf, bcm_oam_pm_profile_info_t *var)
  14658 {
  14659 	BCM_PACK_U32(buf, var->id);
  14660 	BCM_PACK_U32(buf, var->flags);
  14661 	{
  14662 		int _i;
  14663 
  14664 		for (_i = 0; _i < 7; _i++) {
  14665 			BCM_PACK_U32(buf, var->bin_edges[_i]);
  14666 		}
  14667 	}
  14668 	return buf;
  14669 }
  14670 
  14671 uint8 *
  14672 _bcm_unpack_oam_pm_profile_info(uint8 *buf, bcm_oam_pm_profile_info_t *var)
  14673 {
  14674 	BCM_UNPACK_U32(buf, var->id);
  14675 	BCM_UNPACK_U32(buf, var->flags);
  14676 	{
  14677 		int _i;
  14678 
  14679 		for (_i = 0; _i < 7; _i++) {
  14680 			BCM_UNPACK_U32(buf, var->bin_edges[_i]);
  14681 		}
  14682 	}
  14683 	return buf;
  14684 }
  14685 
  14686 uint8 *
  14687 _bcm_pack_oam_pm_stats(uint8 *buf, bcm_oam_pm_stats_t *var)
  14688 {
  14689 	BCM_PACK_U32(buf, var->far_loss_min);
  14690 	BCM_PACK_U32(buf, var->far_tx_min);
  14691 	BCM_PACK_U32(buf, var->far_loss_max);
  14692 	BCM_PACK_U32(buf, var->far_tx_max);
  14693 	BCM_PACK_U32(buf, var->far_loss);
  14694 	BCM_PACK_U32(buf, var->near_loss_min);
  14695 	BCM_PACK_U32(buf, var->near_tx_min);
  14696 	BCM_PACK_U32(buf, var->near_loss_max);
  14697 	BCM_PACK_U32(buf, var->near_tx_max);
  14698 	BCM_PACK_U32(buf, var->near_loss);
  14699 	BCM_PACK_U32(buf, var->lm_tx_count);
  14700 	BCM_PACK_U32(buf, var->DM_min);
  14701 	BCM_PACK_U32(buf, var->DM_max);
  14702 	BCM_PACK_U32(buf, var->DM_avg);
  14703 	BCM_PACK_U32(buf, var->dm_tx_count);
  14704 	BCM_PACK_U8(buf, var->profile_id);
  14705 	{
  14706 		int _i;
  14707 
  14708 		for (_i = 0; _i < 8; _i++) {
  14709 			BCM_PACK_U32(buf, var->bin_counters[_i]);
  14710 		}
  14711 	}
  14712 	BCM_PACK_U32(buf, var->lm_rx_count);
  14713 	BCM_PACK_U32(buf, var->dm_rx_count);
  14714 	BCM_PACK_U32(buf, var->far_total_tx_pkt_count);
  14715 	BCM_PACK_U32(buf, var->near_total_tx_pkt_count);
  14716 	BCM_PACK_U32(buf, var->flags);
  14717 	return buf;
  14718 }
  14719 
  14720 uint8 *
  14721 _bcm_unpack_oam_pm_stats(uint8 *buf, bcm_oam_pm_stats_t *var)
  14722 {
  14723 	BCM_UNPACK_U32(buf, var->far_loss_min);
  14724 	BCM_UNPACK_U32(buf, var->far_tx_min);
  14725 	BCM_UNPACK_U32(buf, var->far_loss_max);
  14726 	BCM_UNPACK_U32(buf, var->far_tx_max);
  14727 	BCM_UNPACK_U32(buf, var->far_loss);
  14728 	BCM_UNPACK_U32(buf, var->near_loss_min);
  14729 	BCM_UNPACK_U32(buf, var->near_tx_min);
  14730 	BCM_UNPACK_U32(buf, var->near_loss_max);
  14731 	BCM_UNPACK_U32(buf, var->near_tx_max);
  14732 	BCM_UNPACK_U32(buf, var->near_loss);
  14733 	BCM_UNPACK_U32(buf, var->lm_tx_count);
  14734 	BCM_UNPACK_U32(buf, var->DM_min);
  14735 	BCM_UNPACK_U32(buf, var->DM_max);
  14736 	BCM_UNPACK_U32(buf, var->DM_avg);
  14737 	BCM_UNPACK_U32(buf, var->dm_tx_count);
  14738 	BCM_UNPACK_U8(buf, var->profile_id);
  14739 	{
  14740 		int _i;
  14741 
  14742 		for (_i = 0; _i < 8; _i++) {
  14743 			BCM_UNPACK_U32(buf, var->bin_counters[_i]);
  14744 		}
  14745 	}
  14746 	BCM_UNPACK_U32(buf, var->lm_rx_count);
  14747 	BCM_UNPACK_U32(buf, var->dm_rx_count);
  14748 	BCM_UNPACK_U32(buf, var->far_total_tx_pkt_count);
  14749 	BCM_UNPACK_U32(buf, var->near_total_tx_pkt_count);
  14750 	BCM_UNPACK_U32(buf, var->flags);
  14751 	return buf;
  14752 }
  14753 
  14754 uint8 *
  14755 _bcm_pack_oam_psc(uint8 *buf, bcm_oam_psc_t *var)
  14756 {
  14757 	BCM_PACK_U32(buf, var->flags);
  14758 	BCM_PACK_U32(buf, var->id);
  14759 	BCM_PACK_U32(buf, var->remote_id);
  14760 	BCM_PACK_U32(buf, var->version);
  14761 	BCM_PACK_U32(buf, var->request);
  14762 	BCM_PACK_U32(buf, var->pt);
  14763 	BCM_PACK_U8(buf, var->fpath);
  14764 	BCM_PACK_U8(buf, var->path);
  14765 	BCM_PACK_U32(buf, var->burst_rate);
  14766 	BCM_PACK_U32(buf, var->slow_rate);
  14767 	BCM_PACK_U32(buf, var->tlv_length);
  14768 	BCM_PACK_U8(buf, var->tlv);
  14769 	return buf;
  14770 }
  14771 
  14772 uint8 *
  14773 _bcm_unpack_oam_psc(uint8 *buf, bcm_oam_psc_t *var)
  14774 {
  14775 	BCM_UNPACK_U32(buf, var->flags);
  14776 	BCM_UNPACK_U32(buf, var->id);
  14777 	BCM_UNPACK_U32(buf, var->remote_id);
  14778 	BCM_UNPACK_U32(buf, var->version);
  14779 	BCM_UNPACK_U32(buf, var->request);
  14780 	BCM_UNPACK_U32(buf, var->pt);
  14781 	BCM_UNPACK_U8(buf, var->fpath);
  14782 	BCM_UNPACK_U8(buf, var->path);
  14783 	BCM_UNPACK_U32(buf, var->burst_rate);
  14784 	BCM_UNPACK_U32(buf, var->slow_rate);
  14785 	BCM_UNPACK_U32(buf, var->tlv_length);
  14786 	BCM_UNPACK_U8(buf, var->tlv);
  14787 	return buf;
  14788 }
  14789 
  14790 uint8 *
  14791 _bcm_pack_oam_pw_status(uint8 *buf, bcm_oam_pw_status_t *var)
  14792 {
  14793 	BCM_PACK_U32(buf, var->flags);
  14794 	BCM_PACK_U32(buf, var->id);
  14795 	BCM_PACK_U32(buf, var->remote_id);
  14796 	BCM_PACK_U32(buf, var->burst_rate);
  14797 	BCM_PACK_U32(buf, var->refresh);
  14798 	BCM_PACK_U32(buf, var->ack);
  14799 	BCM_PACK_U8(buf, var->tlv_length);
  14800 	BCM_PACK_U8(buf, var->tlv);
  14801 	return buf;
  14802 }
  14803 
  14804 uint8 *
  14805 _bcm_unpack_oam_pw_status(uint8 *buf, bcm_oam_pw_status_t *var)
  14806 {
  14807 	BCM_UNPACK_U32(buf, var->flags);
  14808 	BCM_UNPACK_U32(buf, var->id);
  14809 	BCM_UNPACK_U32(buf, var->remote_id);
  14810 	BCM_UNPACK_U32(buf, var->burst_rate);
  14811 	BCM_UNPACK_U32(buf, var->refresh);
  14812 	BCM_UNPACK_U32(buf, var->ack);
  14813 	BCM_UNPACK_U8(buf, var->tlv_length);
  14814 	BCM_UNPACK_U8(buf, var->tlv);
  14815 	return buf;
  14816 }
  14817 
  14818 uint8 *
  14819 _bcm_pack_oam_sd_sf_detection(uint8 *buf, bcm_oam_sd_sf_detection_t *var)
  14820 {
  14821 	BCM_PACK_U32(buf, var->mep_id);
  14822 	BCM_PACK_U32(buf, var->rmep_id);
  14823 	BCM_PACK_U16(buf, var->sd_set_threshold);
  14824 	BCM_PACK_U16(buf, var->sf_set_threshold);
  14825 	BCM_PACK_U16(buf, var->sd_clear_threshold);
  14826 	BCM_PACK_U16(buf, var->sf_clear_threshold);
  14827 	BCM_PACK_U8(buf, var->flags);
  14828 	BCM_PACK_U8(buf, var->sd_indication);
  14829 	BCM_PACK_U8(buf, var->sf_indication);
  14830 	BCM_PACK_U16(buf, var->sliding_window_length);
  14831 	{
  14832 		int _i;
  14833 
  14834 		for (_i = 0; _i < 256; _i++) {
  14835 			BCM_PACK_U16(buf, var->sliding_window_cnt[_i]);
  14836 		}
  14837 	}
  14838 	BCM_PACK_U16(buf, var->sum_cnt);
  14839 	return buf;
  14840 }
  14841 
  14842 uint8 *
  14843 _bcm_unpack_oam_sd_sf_detection(uint8 *buf, bcm_oam_sd_sf_detection_t *var)
  14844 {
  14845 	BCM_UNPACK_U32(buf, var->mep_id);
  14846 	BCM_UNPACK_U32(buf, var->rmep_id);
  14847 	BCM_UNPACK_U16(buf, var->sd_set_threshold);
  14848 	BCM_UNPACK_U16(buf, var->sf_set_threshold);
  14849 	BCM_UNPACK_U16(buf, var->sd_clear_threshold);
  14850 	BCM_UNPACK_U16(buf, var->sf_clear_threshold);
  14851 	BCM_UNPACK_U8(buf, var->flags);
  14852 	BCM_UNPACK_U8(buf, var->sd_indication);
  14853 	BCM_UNPACK_U8(buf, var->sf_indication);
  14854 	BCM_UNPACK_U16(buf, var->sliding_window_length);
  14855 	{
  14856 		int _i;
  14857 
  14858 		for (_i = 0; _i < 256; _i++) {
  14859 			BCM_UNPACK_U16(buf, var->sliding_window_cnt[_i]);
  14860 		}
  14861 	}
  14862 	BCM_UNPACK_U16(buf, var->sum_cnt);
  14863 	return buf;
  14864 }
  14865 
  14866 uint8 *
  14867 _bcm_pack_oam_tod_leap_control(uint8 *buf, bcm_oam_tod_leap_control_t *var)
  14868 {
  14869 	BCM_PACK_U8(buf, var->leap_ctrl_enable);
  14870 	BCM_PACK_U32(buf, var->leap_sec_control);
  14871 	return buf;
  14872 }
  14873 
  14874 uint8 *
  14875 _bcm_unpack_oam_tod_leap_control(uint8 *buf, bcm_oam_tod_leap_control_t *var)
  14876 {
  14877 	BCM_UNPACK_U8(buf, var->leap_ctrl_enable);
  14878 	BCM_UNPACK_U32(buf, var->leap_sec_control);
  14879 	return buf;
  14880 }
  14881 
  14882 uint8 *
  14883 _bcm_pack_oam_tst_rx(uint8 *buf, bcm_oam_tst_rx_t *var)
  14884 {
  14885 	BCM_PACK_U32(buf, var->endpoint_id);
  14886 	BCM_PACK_U32(buf, var->ctf_id);
  14887 	BCM_PACK_U32(buf, var->flags);
  14888 	BCM_PACK_U32(buf, var->expected_tlv.tlv_type);
  14889 	BCM_PACK_U32(buf, var->expected_tlv.tlv_length);
  14890 	BCM_PACK_U32(buf, var->expected_tlv.four_byte_repeatable_pattern);
  14891 	{
  14892 		uint32 _u32;
  14893 
  14894 		_u32 = COMPILER_64_HI(var->rx_count);
  14895 		BCM_PACK_U32(buf, _u32);
  14896 		_u32 = COMPILER_64_LO(var->rx_count);
  14897 		BCM_PACK_U32(buf, _u32);
  14898 	}
  14899 	{
  14900 		uint32 _u32;
  14901 
  14902 		_u32 = COMPILER_64_HI(var->invalid_tlv_count);
  14903 		BCM_PACK_U32(buf, _u32);
  14904 		_u32 = COMPILER_64_LO(var->invalid_tlv_count);
  14905 		BCM_PACK_U32(buf, _u32);
  14906 	}
  14907 	{
  14908 		uint32 _u32;
  14909 
  14910 		_u32 = COMPILER_64_HI(var->out_of_sequence);
  14911 		BCM_PACK_U32(buf, _u32);
  14912 		_u32 = COMPILER_64_LO(var->out_of_sequence);
  14913 		BCM_PACK_U32(buf, _u32);
  14914 	}
  14915 	return buf;
  14916 }
  14917 
  14918 uint8 *
  14919 _bcm_unpack_oam_tst_rx(uint8 *buf, bcm_oam_tst_rx_t *var)
  14920 {
  14921 	BCM_UNPACK_U32(buf, var->endpoint_id);
  14922 	BCM_UNPACK_U32(buf, var->ctf_id);
  14923 	BCM_UNPACK_U32(buf, var->flags);
  14924 	BCM_UNPACK_U32(buf, var->expected_tlv.tlv_type);
  14925 	BCM_UNPACK_U32(buf, var->expected_tlv.tlv_length);
  14926 	BCM_UNPACK_U32(buf, var->expected_tlv.four_byte_repeatable_pattern);
  14927 	{
  14928 		uint32 _u32h, _u32l;
  14929 
  14930 		BCM_UNPACK_U32(buf, _u32h);
  14931 		BCM_UNPACK_U32(buf, _u32l);
  14932 		COMPILER_64_SET(var->rx_count, _u32h, _u32l);
  14933 	}
  14934 	{
  14935 		uint32 _u32h, _u32l;
  14936 
  14937 		BCM_UNPACK_U32(buf, _u32h);
  14938 		BCM_UNPACK_U32(buf, _u32l);
  14939 		COMPILER_64_SET(var->invalid_tlv_count, _u32h, _u32l);
  14940 	}
  14941 	{
  14942 		uint32 _u32h, _u32l;
  14943 
  14944 		BCM_UNPACK_U32(buf, _u32h);
  14945 		BCM_UNPACK_U32(buf, _u32l);
  14946 		COMPILER_64_SET(var->out_of_sequence, _u32h, _u32l);
  14947 	}
  14948 	return buf;
  14949 }
  14950 
  14951 uint8 *
  14952 _bcm_pack_oam_tst_tx(uint8 *buf, bcm_oam_tst_tx_t *var)
  14953 {
  14954 	BCM_PACK_U32(buf, var->endpoint_id);
  14955 	BCM_PACK_U32(buf, var->gtf_id);
  14956 	BCM_PACK_U32(buf, var->flags);
  14957 	{
  14958 		int _i;
  14959 
  14960 		for (_i = 0; _i < 6; _i++) {
  14961 			BCM_PACK_U8(buf, var->peer_da_mac_address[_i]);
  14962 		}
  14963 	}
  14964 	BCM_PACK_U32(buf, var->tlv.tlv_type);
  14965 	BCM_PACK_U32(buf, var->tlv.tlv_length);
  14966 	BCM_PACK_U32(buf, var->tlv.four_byte_repeatable_pattern);
  14967 	return buf;
  14968 }
  14969 
  14970 uint8 *
  14971 _bcm_unpack_oam_tst_tx(uint8 *buf, bcm_oam_tst_tx_t *var)
  14972 {
  14973 	BCM_UNPACK_U32(buf, var->endpoint_id);
  14974 	BCM_UNPACK_U32(buf, var->gtf_id);
  14975 	BCM_UNPACK_U32(buf, var->flags);
  14976 	{
  14977 		int _i;
  14978 
  14979 		for (_i = 0; _i < 6; _i++) {
  14980 			BCM_UNPACK_U8(buf, var->peer_da_mac_address[_i]);
  14981 		}
  14982 	}
  14983 	BCM_UNPACK_U32(buf, var->tlv.tlv_type);
  14984 	BCM_UNPACK_U32(buf, var->tlv.tlv_length);
  14985 	BCM_UNPACK_U32(buf, var->tlv.four_byte_repeatable_pattern);
  14986 	return buf;
  14987 }
  14988 
  14989 uint8 *
  14990 _bcm_pack_oam_y_1711_alarm(uint8 *buf, bcm_oam_y_1711_alarm_t *var)
  14991 {
  14992 	BCM_PACK_U32(buf, var->mep_id);
  14993 	BCM_PACK_U32(buf, var->rmep_id);
  14994 	BCM_PACK_U8(buf, var->d_excess_threshold);
  14995 	BCM_PACK_U8(buf, var->indicator_low_threshold);
  14996 	BCM_PACK_U8(buf, var->indicator_high_threshold);
  14997 	BCM_PACK_U8(buf, var->flags);
  14998 	BCM_PACK_U8(buf, var->d_excess);
  14999 	BCM_PACK_U8(buf, var->d_mismatch);
  15000 	BCM_PACK_U8(buf, var->d_mismerge);
  15001 	return buf;
  15002 }
  15003 
  15004 uint8 *
  15005 _bcm_unpack_oam_y_1711_alarm(uint8 *buf, bcm_oam_y_1711_alarm_t *var)
  15006 {
  15007 	BCM_UNPACK_U32(buf, var->mep_id);
  15008 	BCM_UNPACK_U32(buf, var->rmep_id);
  15009 	BCM_UNPACK_U8(buf, var->d_excess_threshold);
  15010 	BCM_UNPACK_U8(buf, var->indicator_low_threshold);
  15011 	BCM_UNPACK_U8(buf, var->indicator_high_threshold);
  15012 	BCM_UNPACK_U8(buf, var->flags);
  15013 	BCM_UNPACK_U8(buf, var->d_excess);
  15014 	BCM_UNPACK_U8(buf, var->d_mismatch);
  15015 	BCM_UNPACK_U8(buf, var->d_mismerge);
  15016 	return buf;
  15017 }
  15018 
  15019 uint8 *
  15020 _bcm_pack_oob_fc_rx_config(uint8 *buf, bcm_oob_fc_rx_config_t *var)
  15021 {
  15022 	BCM_PACK_U8(buf, var->channel_base);
  15023 	BCM_PACK_U32(buf, var->enable);
  15024 	return buf;
  15025 }
  15026 
  15027 uint8 *
  15028 _bcm_unpack_oob_fc_rx_config(uint8 *buf, bcm_oob_fc_rx_config_t *var)
  15029 {
  15030 	BCM_UNPACK_U8(buf, var->channel_base);
  15031 	BCM_UNPACK_U32(buf, var->enable);
  15032 	return buf;
  15033 }
  15034 
  15035 uint8 *
  15036 _bcm_pack_oob_fc_tx_config(uint8 *buf, bcm_oob_fc_tx_config_t *var)
  15037 {
  15038 	BCM_PACK_U32(buf, var->flags);
  15039 	BCM_PACK_U8(buf, var->inter_pkt_gap);
  15040 	BCM_PACK_U32(buf, var->gcs_id);
  15041 	BCM_PACK_U32(buf, var->egr_mode);
  15042 	return buf;
  15043 }
  15044 
  15045 uint8 *
  15046 _bcm_unpack_oob_fc_tx_config(uint8 *buf, bcm_oob_fc_tx_config_t *var)
  15047 {
  15048 	BCM_UNPACK_U32(buf, var->flags);
  15049 	BCM_UNPACK_U8(buf, var->inter_pkt_gap);
  15050 	BCM_UNPACK_U32(buf, var->gcs_id);
  15051 	BCM_UNPACK_U32(buf, var->egr_mode);
  15052 	return buf;
  15053 }
  15054 
  15055 uint8 *
  15056 _bcm_pack_oob_fc_tx_info(uint8 *buf, bcm_oob_fc_tx_info_t *var)
  15057 {
  15058 	BCM_PACK_U8(buf, var->ing_base);
  15059 	BCM_PACK_U8(buf, var->ucast_base);
  15060 	BCM_PACK_U8(buf, var->mcast_base);
  15061 	BCM_PACK_U8(buf, var->cos_base);
  15062 	BCM_PACK_U8(buf, var->pool_base);
  15063 	return buf;
  15064 }
  15065 
  15066 uint8 *
  15067 _bcm_unpack_oob_fc_tx_info(uint8 *buf, bcm_oob_fc_tx_info_t *var)
  15068 {
  15069 	BCM_UNPACK_U8(buf, var->ing_base);
  15070 	BCM_UNPACK_U8(buf, var->ucast_base);
  15071 	BCM_UNPACK_U8(buf, var->mcast_base);
  15072 	BCM_UNPACK_U8(buf, var->cos_base);
  15073 	BCM_UNPACK_U8(buf, var->pool_base);
  15074 	return buf;
  15075 }
  15076 
  15077 uint8 *
  15078 _bcm_pack_oob_fc_tx_queue_config(uint8 *buf, bcm_oob_fc_tx_queue_config_t *var)
  15079 {
  15080 	BCM_PACK_U32(buf, var->cosq);
  15081 	BCM_PACK_U8(buf, var->queue_enable);
  15082 	BCM_PACK_U32(buf, var->queue_offset);
  15083 	return buf;
  15084 }
  15085 
  15086 uint8 *
  15087 _bcm_unpack_oob_fc_tx_queue_config(uint8 *buf, bcm_oob_fc_tx_queue_config_t *var)
  15088 {
  15089 	BCM_UNPACK_U32(buf, var->cosq);
  15090 	BCM_UNPACK_U8(buf, var->queue_enable);
  15091 	BCM_UNPACK_U32(buf, var->queue_offset);
  15092 	return buf;
  15093 }
  15094 
  15095 uint8 *
  15096 _bcm_pack_oob_stats_config(uint8 *buf, bcm_oob_stats_config_t *var)
  15097 {
  15098 	BCM_PACK_U32(buf, var->flags);
  15099 	BCM_PACK_U8(buf, var->inter_pkt_gap);
  15100 	BCM_PACK_U8(buf, var->config_id);
  15101 	return buf;
  15102 }
  15103 
  15104 uint8 *
  15105 _bcm_unpack_oob_stats_config(uint8 *buf, bcm_oob_stats_config_t *var)
  15106 {
  15107 	BCM_UNPACK_U32(buf, var->flags);
  15108 	BCM_UNPACK_U8(buf, var->inter_pkt_gap);
  15109 	BCM_UNPACK_U8(buf, var->config_id);
  15110 	return buf;
  15111 }
  15112 
  15113 uint8 *
  15114 _bcm_pack_phy_config(uint8 *buf, bcm_phy_config_t *var)
  15115 {
  15116 	BCM_PACK_U32(buf, var->enable);
  15117 	BCM_PACK_U32(buf, var->preferred);
  15118 	BCM_PACK_U32(buf, var->autoneg_enable);
  15119 	BCM_PACK_U32(buf, var->autoneg_advert);
  15120 	BCM_PACK_U32(buf, var->advert_ability.speed_half_duplex);
  15121 	BCM_PACK_U32(buf, var->advert_ability.speed_full_duplex);
  15122 	BCM_PACK_U32(buf, var->advert_ability.pause);
  15123 	BCM_PACK_U32(buf, var->advert_ability.interface);
  15124 	BCM_PACK_U32(buf, var->advert_ability.medium);
  15125 	BCM_PACK_U32(buf, var->advert_ability.loopback);
  15126 	BCM_PACK_U32(buf, var->advert_ability.flags);
  15127 	BCM_PACK_U32(buf, var->advert_ability.eee);
  15128 	BCM_PACK_U32(buf, var->advert_ability.rsvd);
  15129 	BCM_PACK_U32(buf, var->advert_ability.encap);
  15130 	BCM_PACK_U32(buf, var->advert_ability.fec);
  15131 	BCM_PACK_U32(buf, var->advert_ability.channel);
  15132 	BCM_PACK_U32(buf, var->force_speed);
  15133 	BCM_PACK_U32(buf, var->force_duplex);
  15134 	BCM_PACK_U32(buf, var->master);
  15135 	BCM_PACK_U32(buf, var->mdix);
  15136 	return buf;
  15137 }
  15138 
  15139 uint8 *
  15140 _bcm_unpack_phy_config(uint8 *buf, bcm_phy_config_t *var)
  15141 {
  15142 	BCM_UNPACK_U32(buf, var->enable);
  15143 	BCM_UNPACK_U32(buf, var->preferred);
  15144 	BCM_UNPACK_U32(buf, var->autoneg_enable);
  15145 	BCM_UNPACK_U32(buf, var->autoneg_advert);
  15146 	BCM_UNPACK_U32(buf, var->advert_ability.speed_half_duplex);
  15147 	BCM_UNPACK_U32(buf, var->advert_ability.speed_full_duplex);
  15148 	BCM_UNPACK_U32(buf, var->advert_ability.pause);
  15149 	BCM_UNPACK_U32(buf, var->advert_ability.interface);
  15150 	BCM_UNPACK_U32(buf, var->advert_ability.medium);
  15151 	BCM_UNPACK_U32(buf, var->advert_ability.loopback);
  15152 	BCM_UNPACK_U32(buf, var->advert_ability.flags);
  15153 	BCM_UNPACK_U32(buf, var->advert_ability.eee);
  15154 	BCM_UNPACK_U32(buf, var->advert_ability.rsvd);
  15155 	BCM_UNPACK_U32(buf, var->advert_ability.encap);
  15156 	BCM_UNPACK_U32(buf, var->advert_ability.fec);
  15157 	BCM_UNPACK_U32(buf, var->advert_ability.channel);
  15158 	BCM_UNPACK_U32(buf, var->force_speed);
  15159 	BCM_UNPACK_U32(buf, var->force_duplex);
  15160 	BCM_UNPACK_U32(buf, var->master);
  15161 	BCM_UNPACK_U32(buf, var->mdix);
  15162 	return buf;
  15163 }
  15164 
  15165 uint8 *
  15166 _bcm_pack_pkt_blk(uint8 *buf, bcm_pkt_blk_t *var)
  15167 {
  15168 	BCM_PACK_U8(buf, *var->data);
  15169 	BCM_PACK_U32(buf, var->len);
  15170 	return buf;
  15171 }
  15172 
  15173 uint8 *
  15174 _bcm_unpack_pkt_blk(uint8 *buf, bcm_pkt_blk_t *var)
  15175 {
  15176 	BCM_UNPACK_U8(buf, *var->data);
  15177 	BCM_UNPACK_U32(buf, var->len);
  15178 	return buf;
  15179 }
  15180 
  15181 uint8 *
  15182 _bcm_pack_policer_aggregate_group_info(uint8 *buf, bcm_policer_aggregate_group_info_t *var)
  15183 {
  15184 	BCM_PACK_U32(buf, var->mode);
  15185 	BCM_PACK_U32(buf, var->core);
  15186 	BCM_PACK_U32(buf, var->flags);
  15187 	return buf;
  15188 }
  15189 
  15190 uint8 *
  15191 _bcm_unpack_policer_aggregate_group_info(uint8 *buf, bcm_policer_aggregate_group_info_t *var)
  15192 {
  15193 	BCM_UNPACK_U32(buf, var->mode);
  15194 	BCM_UNPACK_U32(buf, var->core);
  15195 	BCM_UNPACK_U32(buf, var->flags);
  15196 	return buf;
  15197 }
  15198 
  15199 uint8 *
  15200 _bcm_pack_policer_color_decision(uint8 *buf, bcm_policer_color_decision_t *var)
  15201 {
  15202 	BCM_PACK_U32(buf, var->flags);
  15203 	BCM_PACK_U32(buf, var->policer0_color);
  15204 	BCM_PACK_U8(buf, var->policer0_other_bucket_has_credits);
  15205 	BCM_PACK_U32(buf, var->policer1_color);
  15206 	BCM_PACK_U8(buf, var->policer1_other_bucket_has_credits);
  15207 	BCM_PACK_U32(buf, var->policer0_mark_drop_as_black);
  15208 	BCM_PACK_U32(buf, var->policer1_mark_drop_as_black);
  15209 	BCM_PACK_U32(buf, var->policer0_update_bucket);
  15210 	BCM_PACK_U32(buf, var->policer1_update_bucket);
  15211 	BCM_PACK_U32(buf, var->policer_color);
  15212 	return buf;
  15213 }
  15214 
  15215 uint8 *
  15216 _bcm_unpack_policer_color_decision(uint8 *buf, bcm_policer_color_decision_t *var)
  15217 {
  15218 	BCM_UNPACK_U32(buf, var->flags);
  15219 	BCM_UNPACK_U32(buf, var->policer0_color);
  15220 	BCM_UNPACK_U8(buf, var->policer0_other_bucket_has_credits);
  15221 	BCM_UNPACK_U32(buf, var->policer1_color);
  15222 	BCM_UNPACK_U8(buf, var->policer1_other_bucket_has_credits);
  15223 	BCM_UNPACK_U32(buf, var->policer0_mark_drop_as_black);
  15224 	BCM_UNPACK_U32(buf, var->policer1_mark_drop_as_black);
  15225 	BCM_UNPACK_U32(buf, var->policer0_update_bucket);
  15226 	BCM_UNPACK_U32(buf, var->policer1_update_bucket);
  15227 	BCM_UNPACK_U32(buf, var->policer_color);
  15228 	return buf;
  15229 }
  15230 
  15231 uint8 *
  15232 _bcm_pack_policer_color_resolution(uint8 *buf, bcm_policer_color_resolution_t *var)
  15233 {
  15234 	BCM_PACK_U32(buf, var->flags);
  15235 	BCM_PACK_U32(buf, var->policer_action);
  15236 	BCM_PACK_U32(buf, var->incoming_color);
  15237 	BCM_PACK_U32(buf, var->ethernet_policer_color);
  15238 	BCM_PACK_U32(buf, var->policer_color);
  15239 	BCM_PACK_U32(buf, var->ingress_color);
  15240 	BCM_PACK_U32(buf, var->egress_color);
  15241 	return buf;
  15242 }
  15243 
  15244 uint8 *
  15245 _bcm_unpack_policer_color_resolution(uint8 *buf, bcm_policer_color_resolution_t *var)
  15246 {
  15247 	BCM_UNPACK_U32(buf, var->flags);
  15248 	BCM_UNPACK_U32(buf, var->policer_action);
  15249 	BCM_UNPACK_U32(buf, var->incoming_color);
  15250 	BCM_UNPACK_U32(buf, var->ethernet_policer_color);
  15251 	BCM_UNPACK_U32(buf, var->policer_color);
  15252 	BCM_UNPACK_U32(buf, var->ingress_color);
  15253 	BCM_UNPACK_U32(buf, var->egress_color);
  15254 	return buf;
  15255 }
  15256 
  15257 uint8 *
  15258 _bcm_pack_policer_config(uint8 *buf, bcm_policer_config_t *var)
  15259 {
  15260 	BCM_PACK_U32(buf, var->flags);
  15261 	BCM_PACK_U32(buf, var->mode);
  15262 	BCM_PACK_U32(buf, var->ckbits_sec);
  15263 	BCM_PACK_U32(buf, var->cbits_sec_lower);
  15264 	BCM_PACK_U32(buf, var->max_ckbits_sec);
  15265 	BCM_PACK_U32(buf, var->max_cbits_sec_lower);
  15266 	BCM_PACK_U32(buf, var->ckbits_burst);
  15267 	BCM_PACK_U32(buf, var->cbits_burst_lower);
  15268 	BCM_PACK_U32(buf, var->pkbits_sec);
  15269 	BCM_PACK_U32(buf, var->pbits_sec_lower);
  15270 	BCM_PACK_U32(buf, var->max_pkbits_sec);
  15271 	BCM_PACK_U32(buf, var->max_pbits_sec_lower);
  15272 	BCM_PACK_U32(buf, var->pkbits_burst);
  15273 	BCM_PACK_U32(buf, var->pbits_burst_lower);
  15274 	BCM_PACK_U32(buf, var->kbits_current);
  15275 	BCM_PACK_U32(buf, var->bits_current_lower);
  15276 	BCM_PACK_U32(buf, var->action_id);
  15277 	BCM_PACK_U32(buf, var->sharing_mode);
  15278 	BCM_PACK_U32(buf, var->entropy_id);
  15279 	BCM_PACK_U32(buf, var->pool_id);
  15280 	BCM_PACK_U32(buf, var->bucket_width);
  15281 	BCM_PACK_U32(buf, var->token_gran);
  15282 	BCM_PACK_U32(buf, var->bucket_init_val);
  15283 	BCM_PACK_U32(buf, var->bucket_rollover_val);
  15284 	BCM_PACK_U32(buf, var->core_id);
  15285 	BCM_PACK_U32(buf, var->ncoflow_policer_id);
  15286 	BCM_PACK_U32(buf, var->npoflow_policer_id);
  15287 	BCM_PACK_U32(buf, var->actual_ckbits_sec);
  15288 	BCM_PACK_U32(buf, var->actual_cbits_sec_lower);
  15289 	BCM_PACK_U32(buf, var->actual_ckbits_burst);
  15290 	BCM_PACK_U32(buf, var->actual_cbits_burst_lower);
  15291 	BCM_PACK_U32(buf, var->actual_pkbits_sec);
  15292 	BCM_PACK_U32(buf, var->actual_pbits_sec_lower);
  15293 	BCM_PACK_U32(buf, var->actual_pkbits_burst);
  15294 	BCM_PACK_U32(buf, var->actual_pbits_burst_lower);
  15295 	BCM_PACK_U32(buf, var->average_pkt_size);
  15296 	BCM_PACK_U32(buf, var->mark_drop_as_black);
  15297 	BCM_PACK_U32(buf, var->color_resolve_profile);
  15298 	return buf;
  15299 }
  15300 
  15301 uint8 *
  15302 _bcm_unpack_policer_config(uint8 *buf, bcm_policer_config_t *var)
  15303 {
  15304 	BCM_UNPACK_U32(buf, var->flags);
  15305 	BCM_UNPACK_U32(buf, var->mode);
  15306 	BCM_UNPACK_U32(buf, var->ckbits_sec);
  15307 	BCM_UNPACK_U32(buf, var->cbits_sec_lower);
  15308 	BCM_UNPACK_U32(buf, var->max_ckbits_sec);
  15309 	BCM_UNPACK_U32(buf, var->max_cbits_sec_lower);
  15310 	BCM_UNPACK_U32(buf, var->ckbits_burst);
  15311 	BCM_UNPACK_U32(buf, var->cbits_burst_lower);
  15312 	BCM_UNPACK_U32(buf, var->pkbits_sec);
  15313 	BCM_UNPACK_U32(buf, var->pbits_sec_lower);
  15314 	BCM_UNPACK_U32(buf, var->max_pkbits_sec);
  15315 	BCM_UNPACK_U32(buf, var->max_pbits_sec_lower);
  15316 	BCM_UNPACK_U32(buf, var->pkbits_burst);
  15317 	BCM_UNPACK_U32(buf, var->pbits_burst_lower);
  15318 	BCM_UNPACK_U32(buf, var->kbits_current);
  15319 	BCM_UNPACK_U32(buf, var->bits_current_lower);
  15320 	BCM_UNPACK_U32(buf, var->action_id);
  15321 	BCM_UNPACK_U32(buf, var->sharing_mode);
  15322 	BCM_UNPACK_U32(buf, var->entropy_id);
  15323 	BCM_UNPACK_U32(buf, var->pool_id);
  15324 	BCM_UNPACK_U32(buf, var->bucket_width);
  15325 	BCM_UNPACK_U32(buf, var->token_gran);
  15326 	BCM_UNPACK_U32(buf, var->bucket_init_val);
  15327 	BCM_UNPACK_U32(buf, var->bucket_rollover_val);
  15328 	BCM_UNPACK_U32(buf, var->core_id);
  15329 	BCM_UNPACK_U32(buf, var->ncoflow_policer_id);
  15330 	BCM_UNPACK_U32(buf, var->npoflow_policer_id);
  15331 	BCM_UNPACK_U32(buf, var->actual_ckbits_sec);
  15332 	BCM_UNPACK_U32(buf, var->actual_cbits_sec_lower);
  15333 	BCM_UNPACK_U32(buf, var->actual_ckbits_burst);
  15334 	BCM_UNPACK_U32(buf, var->actual_cbits_burst_lower);
  15335 	BCM_UNPACK_U32(buf, var->actual_pkbits_sec);
  15336 	BCM_UNPACK_U32(buf, var->actual_pbits_sec_lower);
  15337 	BCM_UNPACK_U32(buf, var->actual_pkbits_burst);
  15338 	BCM_UNPACK_U32(buf, var->actual_pbits_burst_lower);
  15339 	BCM_UNPACK_U32(buf, var->average_pkt_size);
  15340 	BCM_UNPACK_U32(buf, var->mark_drop_as_black);
  15341 	BCM_UNPACK_U32(buf, var->color_resolve_profile);
  15342 	return buf;
  15343 }
  15344 
  15345 uint8 *
  15346 _bcm_pack_policer_database_attach_config(uint8 *buf, bcm_policer_database_attach_config_t *var)
  15347 {
  15348 	BCM_PACK_U32(buf, var->policer_database_handle);
  15349 	BCM_PACK_U32(buf, var->object_stat_pointer_base);
  15350 	return buf;
  15351 }
  15352 
  15353 uint8 *
  15354 _bcm_unpack_policer_database_attach_config(uint8 *buf, bcm_policer_database_attach_config_t *var)
  15355 {
  15356 	BCM_UNPACK_U32(buf, var->policer_database_handle);
  15357 	BCM_UNPACK_U32(buf, var->object_stat_pointer_base);
  15358 	return buf;
  15359 }
  15360 
  15361 uint8 *
  15362 _bcm_pack_policer_database_config(uint8 *buf, bcm_policer_database_config_t *var)
  15363 {
  15364 	BCM_PACK_U32(buf, var->expansion_enable);
  15365 	BCM_PACK_U32(buf, var->is_single_bucket);
  15366 	return buf;
  15367 }
  15368 
  15369 uint8 *
  15370 _bcm_unpack_policer_database_config(uint8 *buf, bcm_policer_database_config_t *var)
  15371 {
  15372 	BCM_UNPACK_U32(buf, var->expansion_enable);
  15373 	BCM_UNPACK_U32(buf, var->is_single_bucket);
  15374 	return buf;
  15375 }
  15376 
  15377 uint8 *
  15378 _bcm_pack_policer_engine(uint8 *buf, bcm_policer_engine_t *var)
  15379 {
  15380 	BCM_PACK_U32(buf, var->core_id);
  15381 	BCM_PACK_U32(buf, var->engine_id);
  15382 	BCM_PACK_U32(buf, var->section);
  15383 	return buf;
  15384 }
  15385 
  15386 uint8 *
  15387 _bcm_unpack_policer_engine(uint8 *buf, bcm_policer_engine_t *var)
  15388 {
  15389 	BCM_UNPACK_U32(buf, var->core_id);
  15390 	BCM_UNPACK_U32(buf, var->engine_id);
  15391 	BCM_UNPACK_U32(buf, var->section);
  15392 	return buf;
  15393 }
  15394 
  15395 uint8 *
  15396 _bcm_pack_policer_expansion_group(uint8 *buf, bcm_policer_expansion_group_t *var)
  15397 {
  15398 	{
  15399 		int _i;
  15400 
  15401 		for (_i = 0; _i < 5; _i++) {
  15402 			BCM_PACK_U32(buf, var->config[_i].offset);
  15403 			BCM_PACK_U32(buf, var->config[_i].valid);
  15404 		}
  15405 	}
  15406 	return buf;
  15407 }
  15408 
  15409 uint8 *
  15410 _bcm_unpack_policer_expansion_group(uint8 *buf, bcm_policer_expansion_group_t *var)
  15411 {
  15412 	{
  15413 		int _i;
  15414 
  15415 		for (_i = 0; _i < 5; _i++) {
  15416 			BCM_UNPACK_U32(buf, var->config[_i].offset);
  15417 			BCM_UNPACK_U32(buf, var->config[_i].valid);
  15418 		}
  15419 	}
  15420 	return buf;
  15421 }
  15422 
  15423 uint8 *
  15424 _bcm_pack_policer_global_meter_config(uint8 *buf, bcm_policer_global_meter_config_t *var)
  15425 {
  15426 	BCM_PACK_U8(buf, var->ifg_enable);
  15427 	{
  15428 		int _i;
  15429 
  15430 		for (_i = 0; _i < 7; _i++) {
  15431 			BCM_PACK_U32(buf, var->source_order[_i]);
  15432 		}
  15433 	}
  15434 	BCM_PACK_U32(buf, var->source_order_count);
  15435 	return buf;
  15436 }
  15437 
  15438 uint8 *
  15439 _bcm_unpack_policer_global_meter_config(uint8 *buf, bcm_policer_global_meter_config_t *var)
  15440 {
  15441 	BCM_UNPACK_U8(buf, var->ifg_enable);
  15442 	{
  15443 		int _i;
  15444 
  15445 		for (_i = 0; _i < 7; _i++) {
  15446 			BCM_UNPACK_U32(buf, var->source_order[_i]);
  15447 		}
  15448 	}
  15449 	BCM_UNPACK_U32(buf, var->source_order_count);
  15450 	return buf;
  15451 }
  15452 
  15453 uint8 *
  15454 _bcm_pack_policer_group_info(uint8 *buf, bcm_policer_group_info_t *var)
  15455 {
  15456 	BCM_PACK_U32(buf, var->policer_id);
  15457 	BCM_PACK_U32(buf, var->direction);
  15458 	BCM_PACK_U32(buf, var->mode_id);
  15459 	BCM_PACK_U32(buf, var->mode);
  15460 	BCM_PACK_U32(buf, var->pool_id);
  15461 	BCM_PACK_U32(buf, var->base_offset);
  15462 	BCM_PACK_U32(buf, var->num_policers);
  15463 	BCM_PACK_U32(buf, var->num_offset_reserved);
  15464 	BCM_PACK_U32(buf, var->macro_policer_id);
  15465 	return buf;
  15466 }
  15467 
  15468 uint8 *
  15469 _bcm_unpack_policer_group_info(uint8 *buf, bcm_policer_group_info_t *var)
  15470 {
  15471 	BCM_UNPACK_U32(buf, var->policer_id);
  15472 	BCM_UNPACK_U32(buf, var->direction);
  15473 	BCM_UNPACK_U32(buf, var->mode_id);
  15474 	BCM_UNPACK_U32(buf, var->mode);
  15475 	BCM_UNPACK_U32(buf, var->pool_id);
  15476 	BCM_UNPACK_U32(buf, var->base_offset);
  15477 	BCM_UNPACK_U32(buf, var->num_policers);
  15478 	BCM_UNPACK_U32(buf, var->num_offset_reserved);
  15479 	BCM_UNPACK_U32(buf, var->macro_policer_id);
  15480 	return buf;
  15481 }
  15482 
  15483 uint8 *
  15484 _bcm_pack_policer_group_mode_attr_selector(uint8 *buf, bcm_policer_group_mode_attr_selector_t *var)
  15485 {
  15486 	BCM_PACK_U32(buf, var->flags);
  15487 	BCM_PACK_U32(buf, var->policer_offset);
  15488 	BCM_PACK_U32(buf, var->attr);
  15489 	BCM_PACK_U32(buf, var->attr_value);
  15490 	BCM_PACK_U32(buf, var->attr_value_mask);
  15491 	BCM_PACK_U32(buf, var->udf_id);
  15492 	BCM_PACK_U32(buf, var->offset);
  15493 	BCM_PACK_U32(buf, var->width);
  15494 	BCM_PACK_U32(buf, var->multi_attr_count);
  15495 	{
  15496 		int _i;
  15497 
  15498 		for (_i = 0; _i < 18; _i++) {
  15499 			BCM_PACK_U32(buf, var->multi_attr_flags[_i]);
  15500 		}
  15501 	}
  15502 	{
  15503 		int _i;
  15504 
  15505 		for (_i = 0; _i < 18; _i++) {
  15506 			BCM_PACK_U32(buf, var->multi_attr[_i]);
  15507 		}
  15508 	}
  15509 	{
  15510 		int _i;
  15511 
  15512 		for (_i = 0; _i < 18; _i++) {
  15513 			BCM_PACK_U32(buf, var->multi_attr_value[_i]);
  15514 		}
  15515 	}
  15516 	{
  15517 		int _i;
  15518 
  15519 		for (_i = 0; _i < 18; _i++) {
  15520 			BCM_PACK_U32(buf, var->multi_attr_value_mask[_i]);
  15521 		}
  15522 	}
  15523 	{
  15524 		int _i;
  15525 
  15526 		for (_i = 0; _i < 18; _i++) {
  15527 			BCM_PACK_U32(buf, var->multi_udf_id[_i]);
  15528 		}
  15529 	}
  15530 	{
  15531 		int _i;
  15532 
  15533 		for (_i = 0; _i < 18; _i++) {
  15534 			BCM_PACK_U32(buf, var->multi_offset[_i]);
  15535 		}
  15536 	}
  15537 	{
  15538 		int _i;
  15539 
  15540 		for (_i = 0; _i < 18; _i++) {
  15541 			BCM_PACK_U32(buf, var->multi_width[_i]);
  15542 		}
  15543 	}
  15544 	return buf;
  15545 }
  15546 
  15547 uint8 *
  15548 _bcm_unpack_policer_group_mode_attr_selector(uint8 *buf, bcm_policer_group_mode_attr_selector_t *var)
  15549 {
  15550 	BCM_UNPACK_U32(buf, var->flags);
  15551 	BCM_UNPACK_U32(buf, var->policer_offset);
  15552 	BCM_UNPACK_U32(buf, var->attr);
  15553 	BCM_UNPACK_U32(buf, var->attr_value);
  15554 	BCM_UNPACK_U32(buf, var->attr_value_mask);
  15555 	BCM_UNPACK_U32(buf, var->udf_id);
  15556 	BCM_UNPACK_U32(buf, var->offset);
  15557 	BCM_UNPACK_U32(buf, var->width);
  15558 	BCM_UNPACK_U32(buf, var->multi_attr_count);
  15559 	{
  15560 		int _i;
  15561 
  15562 		for (_i = 0; _i < 18; _i++) {
  15563 			BCM_UNPACK_U32(buf, var->multi_attr_flags[_i]);
  15564 		}
  15565 	}
  15566 	{
  15567 		int _i;
  15568 
  15569 		for (_i = 0; _i < 18; _i++) {
  15570 			BCM_UNPACK_U32(buf, var->multi_attr[_i]);
  15571 		}
  15572 	}
  15573 	{
  15574 		int _i;
  15575 
  15576 		for (_i = 0; _i < 18; _i++) {
  15577 			BCM_UNPACK_U32(buf, var->multi_attr_value[_i]);
  15578 		}
  15579 	}
  15580 	{
  15581 		int _i;
  15582 
  15583 		for (_i = 0; _i < 18; _i++) {
  15584 			BCM_UNPACK_U32(buf, var->multi_attr_value_mask[_i]);
  15585 		}
  15586 	}
  15587 	{
  15588 		int _i;
  15589 
  15590 		for (_i = 0; _i < 18; _i++) {
  15591 			BCM_UNPACK_U32(buf, var->multi_udf_id[_i]);
  15592 		}
  15593 	}
  15594 	{
  15595 		int _i;
  15596 
  15597 		for (_i = 0; _i < 18; _i++) {
  15598 			BCM_UNPACK_U32(buf, var->multi_offset[_i]);
  15599 		}
  15600 	}
  15601 	{
  15602 		int _i;
  15603 
  15604 		for (_i = 0; _i < 18; _i++) {
  15605 			BCM_UNPACK_U32(buf, var->multi_width[_i]);
  15606 		}
  15607 	}
  15608 	return buf;
  15609 }
  15610 
  15611 uint8 *
  15612 _bcm_pack_policer_map(uint8 *buf, bcm_policer_map_t *var)
  15613 {
  15614 	BCM_PACK_U32(buf, var->count);
  15615 	BCM_PACK_U8(buf, *var->offset_map);
  15616 	return buf;
  15617 }
  15618 
  15619 uint8 *
  15620 _bcm_unpack_policer_map(uint8 *buf, bcm_policer_map_t *var)
  15621 {
  15622 	BCM_UNPACK_U32(buf, var->count);
  15623 	BCM_UNPACK_U8(buf, *var->offset_map);
  15624 	return buf;
  15625 }
  15626 
  15627 uint8 *
  15628 _bcm_pack_policer_primary_color_resolution_config(uint8 *buf, bcm_policer_primary_color_resolution_config_t *var)
  15629 {
  15630 	BCM_PACK_U32(buf, var->policer_count[0]);
  15631 	BCM_PACK_U32(buf, var->policer_count[1]);
  15632 	BCM_PACK_U32(buf, var->policer_count[2]);
  15633 	BCM_PACK_U32(buf, var->policer_color[0]);
  15634 	BCM_PACK_U32(buf, var->policer_color[1]);
  15635 	BCM_PACK_U32(buf, var->policer_color[2]);
  15636 	BCM_PACK_U32(buf, var->policer_update_bucket[0]);
  15637 	BCM_PACK_U32(buf, var->policer_update_bucket[1]);
  15638 	BCM_PACK_U32(buf, var->policer_update_bucket[2]);
  15639 	BCM_PACK_U32(buf, var->resolved_color);
  15640 	return buf;
  15641 }
  15642 
  15643 uint8 *
  15644 _bcm_unpack_policer_primary_color_resolution_config(uint8 *buf, bcm_policer_primary_color_resolution_config_t *var)
  15645 {
  15646 	BCM_UNPACK_U32(buf, var->policer_count[0]);
  15647 	BCM_UNPACK_U32(buf, var->policer_count[1]);
  15648 	BCM_UNPACK_U32(buf, var->policer_count[2]);
  15649 	BCM_UNPACK_U32(buf, var->policer_color[0]);
  15650 	BCM_UNPACK_U32(buf, var->policer_color[1]);
  15651 	BCM_UNPACK_U32(buf, var->policer_color[2]);
  15652 	BCM_UNPACK_U32(buf, var->policer_update_bucket[0]);
  15653 	BCM_UNPACK_U32(buf, var->policer_update_bucket[1]);
  15654 	BCM_UNPACK_U32(buf, var->policer_update_bucket[2]);
  15655 	BCM_UNPACK_U32(buf, var->resolved_color);
  15656 	return buf;
  15657 }
  15658 
  15659 uint8 *
  15660 _bcm_pack_policer_primary_color_resolution_key(uint8 *buf, bcm_policer_primary_color_resolution_key_t *var)
  15661 {
  15662 	BCM_PACK_U32(buf, var->core_id);
  15663 	BCM_PACK_U32(buf, var->is_ingress);
  15664 	BCM_PACK_U32(buf, var->action);
  15665 	BCM_PACK_U32(buf, var->color_data[0].policer_color);
  15666 	BCM_PACK_U32(buf, var->color_data[0].policer_other_bucket_has_credits);
  15667 	BCM_PACK_U32(buf, var->color_data[1].policer_color);
  15668 	BCM_PACK_U32(buf, var->color_data[1].policer_other_bucket_has_credits);
  15669 	BCM_PACK_U32(buf, var->color_data[2].policer_color);
  15670 	BCM_PACK_U32(buf, var->color_data[2].policer_other_bucket_has_credits);
  15671 	return buf;
  15672 }
  15673 
  15674 uint8 *
  15675 _bcm_unpack_policer_primary_color_resolution_key(uint8 *buf, bcm_policer_primary_color_resolution_key_t *var)
  15676 {
  15677 	BCM_UNPACK_U32(buf, var->core_id);
  15678 	BCM_UNPACK_U32(buf, var->is_ingress);
  15679 	BCM_UNPACK_U32(buf, var->action);
  15680 	BCM_UNPACK_U32(buf, var->color_data[0].policer_color);
  15681 	BCM_UNPACK_U32(buf, var->color_data[0].policer_other_bucket_has_credits);
  15682 	BCM_UNPACK_U32(buf, var->color_data[1].policer_color);
  15683 	BCM_UNPACK_U32(buf, var->color_data[1].policer_other_bucket_has_credits);
  15684 	BCM_UNPACK_U32(buf, var->color_data[2].policer_color);
  15685 	BCM_UNPACK_U32(buf, var->color_data[2].policer_other_bucket_has_credits);
  15686 	return buf;
  15687 }
  15688 
  15689 uint8 *
  15690 _bcm_pack_port_ability(uint8 *buf, bcm_port_ability_t *var)
  15691 {
  15692 	BCM_PACK_U32(buf, var->speed_half_duplex);
  15693 	BCM_PACK_U32(buf, var->speed_full_duplex);
  15694 	BCM_PACK_U32(buf, var->pause);
  15695 	BCM_PACK_U32(buf, var->interface);
  15696 	BCM_PACK_U32(buf, var->medium);
  15697 	BCM_PACK_U32(buf, var->loopback);
  15698 	BCM_PACK_U32(buf, var->flags);
  15699 	BCM_PACK_U32(buf, var->eee);
  15700 	BCM_PACK_U32(buf, var->rsvd);
  15701 	BCM_PACK_U32(buf, var->encap);
  15702 	BCM_PACK_U32(buf, var->fec);
  15703 	BCM_PACK_U32(buf, var->channel);
  15704 	return buf;
  15705 }
  15706 
  15707 uint8 *
  15708 _bcm_unpack_port_ability(uint8 *buf, bcm_port_ability_t *var)
  15709 {
  15710 	BCM_UNPACK_U32(buf, var->speed_half_duplex);
  15711 	BCM_UNPACK_U32(buf, var->speed_full_duplex);
  15712 	BCM_UNPACK_U32(buf, var->pause);
  15713 	BCM_UNPACK_U32(buf, var->interface);
  15714 	BCM_UNPACK_U32(buf, var->medium);
  15715 	BCM_UNPACK_U32(buf, var->loopback);
  15716 	BCM_UNPACK_U32(buf, var->flags);
  15717 	BCM_UNPACK_U32(buf, var->eee);
  15718 	BCM_UNPACK_U32(buf, var->rsvd);
  15719 	BCM_UNPACK_U32(buf, var->encap);
  15720 	BCM_UNPACK_U32(buf, var->fec);
  15721 	BCM_UNPACK_U32(buf, var->channel);
  15722 	return buf;
  15723 }
  15724 
  15725 uint8 *
  15726 _bcm_pack_port_cable_diag(uint8 *buf, bcm_port_cable_diag_t *var)
  15727 {
  15728 	BCM_PACK_U32(buf, var->state);
  15729 	BCM_PACK_U32(buf, var->npairs);
  15730 	BCM_PACK_U32(buf, var->pair_state[0]);
  15731 	BCM_PACK_U32(buf, var->pair_state[1]);
  15732 	BCM_PACK_U32(buf, var->pair_state[2]);
  15733 	BCM_PACK_U32(buf, var->pair_state[3]);
  15734 	BCM_PACK_U32(buf, var->pair_len[0]);
  15735 	BCM_PACK_U32(buf, var->pair_len[1]);
  15736 	BCM_PACK_U32(buf, var->pair_len[2]);
  15737 	BCM_PACK_U32(buf, var->pair_len[3]);
  15738 	BCM_PACK_U32(buf, var->fuzz_len);
  15739 	return buf;
  15740 }
  15741 
  15742 uint8 *
  15743 _bcm_unpack_port_cable_diag(uint8 *buf, bcm_port_cable_diag_t *var)
  15744 {
  15745 	BCM_UNPACK_U32(buf, var->state);
  15746 	BCM_UNPACK_U32(buf, var->npairs);
  15747 	BCM_UNPACK_U32(buf, var->pair_state[0]);
  15748 	BCM_UNPACK_U32(buf, var->pair_state[1]);
  15749 	BCM_UNPACK_U32(buf, var->pair_state[2]);
  15750 	BCM_UNPACK_U32(buf, var->pair_state[3]);
  15751 	BCM_UNPACK_U32(buf, var->pair_len[0]);
  15752 	BCM_UNPACK_U32(buf, var->pair_len[1]);
  15753 	BCM_UNPACK_U32(buf, var->pair_len[2]);
  15754 	BCM_UNPACK_U32(buf, var->pair_len[3]);
  15755 	BCM_UNPACK_U32(buf, var->fuzz_len);
  15756 	return buf;
  15757 }
  15758 
  15759 uint8 *
  15760 _bcm_pack_port_config_phy_oam(uint8 *buf, bcm_port_config_phy_oam_t *var)
  15761 {
  15762 	BCM_PACK_U32(buf, var->tx_dm_config.flags);
  15763 	BCM_PACK_U32(buf, var->tx_dm_config.mode);
  15764 	BCM_PACK_U32(buf, var->rx_dm_config.flags);
  15765 	BCM_PACK_U32(buf, var->rx_dm_config.mode);
  15766 	return buf;
  15767 }
  15768 
  15769 uint8 *
  15770 _bcm_unpack_port_config_phy_oam(uint8 *buf, bcm_port_config_phy_oam_t *var)
  15771 {
  15772 	BCM_UNPACK_U32(buf, var->tx_dm_config.flags);
  15773 	BCM_UNPACK_U32(buf, var->tx_dm_config.mode);
  15774 	BCM_UNPACK_U32(buf, var->rx_dm_config.flags);
  15775 	BCM_UNPACK_U32(buf, var->rx_dm_config.mode);
  15776 	return buf;
  15777 }
  15778 
  15779 uint8 *
  15780 _bcm_pack_port_config(uint8 *buf, bcm_port_config_t *var)
  15781 {
  15782 	buf = _bcm_pack_pbmp(buf, &(*var).fe);
  15783 	buf = _bcm_pack_pbmp(buf, &(*var).ge);
  15784 	buf = _bcm_pack_pbmp(buf, &(*var).xe);
  15785 	buf = _bcm_pack_pbmp(buf, &(*var).ce);
  15786 	buf = _bcm_pack_pbmp(buf, &(*var).le);
  15787 	buf = _bcm_pack_pbmp(buf, &(*var).cc);
  15788 	buf = _bcm_pack_pbmp(buf, &(*var).cd);
  15789 	buf = _bcm_pack_pbmp(buf, &(*var).e);
  15790 	buf = _bcm_pack_pbmp(buf, &(*var).hg);
  15791 	buf = _bcm_pack_pbmp(buf, &(*var).sci);
  15792 	buf = _bcm_pack_pbmp(buf, &(*var).sfi);
  15793 	buf = _bcm_pack_pbmp(buf, &(*var).spi);
  15794 	buf = _bcm_pack_pbmp(buf, &(*var).spi_subport);
  15795 	buf = _bcm_pack_pbmp(buf, &(*var).port);
  15796 	buf = _bcm_pack_pbmp(buf, &(*var).cpu);
  15797 	buf = _bcm_pack_pbmp(buf, &(*var).all);
  15798 	buf = _bcm_pack_pbmp(buf, &(*var).stack_int);
  15799 	buf = _bcm_pack_pbmp(buf, &(*var).stack_ext);
  15800 	buf = _bcm_pack_pbmp(buf, &(*var).tdm);
  15801 	buf = _bcm_pack_pbmp(buf, &(*var).pon);
  15802 	buf = _bcm_pack_pbmp(buf, &(*var).llid);
  15803 	buf = _bcm_pack_pbmp(buf, &(*var).il);
  15804 	buf = _bcm_pack_pbmp(buf, &(*var).xl);
  15805 	buf = _bcm_pack_pbmp(buf, &(*var).rcy);
  15806 	buf = _bcm_pack_pbmp(buf, &(*var).sat);
  15807 	buf = _bcm_pack_pbmp(buf, &(*var).ipsec);
  15808 	{
  15809 		int _i;
  15810 
  15811 		for (_i = 0; _i < 8; _i++) {
  15812 			buf = _bcm_pack_pbmp(buf, &var->per_pipe[_i]);
  15813 		}
  15814 	}
  15815 	buf = _bcm_pack_pbmp(buf, &(*var).nif);
  15816 	buf = _bcm_pack_pbmp(buf, &(*var).control);
  15817 	buf = _bcm_pack_pbmp(buf, &(*var).eventor);
  15818 	buf = _bcm_pack_pbmp(buf, &(*var).olp);
  15819 	buf = _bcm_pack_pbmp(buf, &(*var).oamp);
  15820 	buf = _bcm_pack_pbmp(buf, &(*var).erp);
  15821 	buf = _bcm_pack_pbmp(buf, &(*var).roe);
  15822 	buf = _bcm_pack_pbmp(buf, &(*var).rcy_mirror);
  15823 	return buf;
  15824 }
  15825 
  15826 uint8 *
  15827 _bcm_unpack_port_config(uint8 *buf, bcm_port_config_t *var)
  15828 {
  15829 	buf = _bcm_unpack_pbmp(buf, &(*var).fe);
  15830 	buf = _bcm_unpack_pbmp(buf, &(*var).ge);
  15831 	buf = _bcm_unpack_pbmp(buf, &(*var).xe);
  15832 	buf = _bcm_unpack_pbmp(buf, &(*var).ce);
  15833 	buf = _bcm_unpack_pbmp(buf, &(*var).le);
  15834 	buf = _bcm_unpack_pbmp(buf, &(*var).cc);
  15835 	buf = _bcm_unpack_pbmp(buf, &(*var).cd);
  15836 	buf = _bcm_unpack_pbmp(buf, &(*var).e);
  15837 	buf = _bcm_unpack_pbmp(buf, &(*var).hg);
  15838 	buf = _bcm_unpack_pbmp(buf, &(*var).sci);
  15839 	buf = _bcm_unpack_pbmp(buf, &(*var).sfi);
  15840 	buf = _bcm_unpack_pbmp(buf, &(*var).spi);
  15841 	buf = _bcm_unpack_pbmp(buf, &(*var).spi_subport);
  15842 	buf = _bcm_unpack_pbmp(buf, &(*var).port);
  15843 	buf = _bcm_unpack_pbmp(buf, &(*var).cpu);
  15844 	buf = _bcm_unpack_pbmp(buf, &(*var).all);
  15845 	buf = _bcm_unpack_pbmp(buf, &(*var).stack_int);
  15846 	buf = _bcm_unpack_pbmp(buf, &(*var).stack_ext);
  15847 	buf = _bcm_unpack_pbmp(buf, &(*var).tdm);
  15848 	buf = _bcm_unpack_pbmp(buf, &(*var).pon);
  15849 	buf = _bcm_unpack_pbmp(buf, &(*var).llid);
  15850 	buf = _bcm_unpack_pbmp(buf, &(*var).il);
  15851 	buf = _bcm_unpack_pbmp(buf, &(*var).xl);
  15852 	buf = _bcm_unpack_pbmp(buf, &(*var).rcy);
  15853 	buf = _bcm_unpack_pbmp(buf, &(*var).sat);
  15854 	buf = _bcm_unpack_pbmp(buf, &(*var).ipsec);
  15855 	{
  15856 		int _i;
  15857 
  15858 		for (_i = 0; _i < 8; _i++) {
  15859 			buf = _bcm_unpack_pbmp(buf, &var->per_pipe[_i]);
  15860 		}
  15861 	}
  15862 	buf = _bcm_unpack_pbmp(buf, &(*var).nif);
  15863 	buf = _bcm_unpack_pbmp(buf, &(*var).control);
  15864 	buf = _bcm_unpack_pbmp(buf, &(*var).eventor);
  15865 	buf = _bcm_unpack_pbmp(buf, &(*var).olp);
  15866 	buf = _bcm_unpack_pbmp(buf, &(*var).oamp);
  15867 	buf = _bcm_unpack_pbmp(buf, &(*var).erp);
  15868 	buf = _bcm_unpack_pbmp(buf, &(*var).roe);
  15869 	buf = _bcm_unpack_pbmp(buf, &(*var).rcy_mirror);
  15870 	return buf;
  15871 }
  15872 
  15873 uint8 *
  15874 _bcm_pack_port_congestion_config(uint8 *buf, bcm_port_congestion_config_t *var)
  15875 {
  15876 	BCM_PACK_U32(buf, var->flags);
  15877 	BCM_PACK_U8(buf, var->port_bits);
  15878 	BCM_PACK_U32(buf, var->packets_per_sec);
  15879 	BCM_PACK_U32(buf, var->src_port);
  15880 	BCM_PACK_U16(buf, var->multicast_id);
  15881 	BCM_PACK_U32(buf, var->traffic_class);
  15882 	BCM_PACK_U32(buf, var->color);
  15883 	BCM_PACK_U16(buf, var->vlan);
  15884 	BCM_PACK_U8(buf, var->pri);
  15885 	BCM_PACK_U8(buf, var->cfi);
  15886 	{
  15887 		int _i;
  15888 
  15889 		for (_i = 0; _i < 6; _i++) {
  15890 			BCM_PACK_U8(buf, var->src_mac[_i]);
  15891 		}
  15892 	}
  15893 	{
  15894 		int _i;
  15895 
  15896 		for (_i = 0; _i < 6; _i++) {
  15897 			BCM_PACK_U8(buf, var->dest_mac[_i]);
  15898 		}
  15899 	}
  15900 	BCM_PACK_U16(buf, var->ethertype);
  15901 	BCM_PACK_U16(buf, var->opcode);
  15902 	BCM_PACK_U8(buf, var->version);
  15903 	BCM_PACK_U8(buf, var->reserved_v);
  15904 	BCM_PACK_U32(buf, var->dst_port);
  15905 	return buf;
  15906 }
  15907 
  15908 uint8 *
  15909 _bcm_unpack_port_congestion_config(uint8 *buf, bcm_port_congestion_config_t *var)
  15910 {
  15911 	BCM_UNPACK_U32(buf, var->flags);
  15912 	BCM_UNPACK_U8(buf, var->port_bits);
  15913 	BCM_UNPACK_U32(buf, var->packets_per_sec);
  15914 	BCM_UNPACK_U32(buf, var->src_port);
  15915 	BCM_UNPACK_U16(buf, var->multicast_id);
  15916 	BCM_UNPACK_U32(buf, var->traffic_class);
  15917 	BCM_UNPACK_U32(buf, var->color);
  15918 	BCM_UNPACK_U16(buf, var->vlan);
  15919 	BCM_UNPACK_U8(buf, var->pri);
  15920 	BCM_UNPACK_U8(buf, var->cfi);
  15921 	{
  15922 		int _i;
  15923 
  15924 		for (_i = 0; _i < 6; _i++) {
  15925 			BCM_UNPACK_U8(buf, var->src_mac[_i]);
  15926 		}
  15927 	}
  15928 	{
  15929 		int _i;
  15930 
  15931 		for (_i = 0; _i < 6; _i++) {
  15932 			BCM_UNPACK_U8(buf, var->dest_mac[_i]);
  15933 		}
  15934 	}
  15935 	BCM_UNPACK_U16(buf, var->ethertype);
  15936 	BCM_UNPACK_U16(buf, var->opcode);
  15937 	BCM_UNPACK_U8(buf, var->version);
  15938 	BCM_UNPACK_U8(buf, var->reserved_v);
  15939 	BCM_UNPACK_U32(buf, var->dst_port);
  15940 	return buf;
  15941 }
  15942 
  15943 uint8 *
  15944 _bcm_pack_port_dest_info(uint8 *buf, bcm_port_dest_info_t *var)
  15945 {
  15946 	BCM_PACK_U32(buf, var->flags);
  15947 	BCM_PACK_U32(buf, var->gport);
  15948 	BCM_PACK_U32(buf, var->priority);
  15949 	BCM_PACK_U32(buf, var->dp);
  15950 	return buf;
  15951 }
  15952 
  15953 uint8 *
  15954 _bcm_unpack_port_dest_info(uint8 *buf, bcm_port_dest_info_t *var)
  15955 {
  15956 	BCM_UNPACK_U32(buf, var->flags);
  15957 	BCM_UNPACK_U32(buf, var->gport);
  15958 	BCM_UNPACK_U32(buf, var->priority);
  15959 	BCM_UNPACK_U32(buf, var->dp);
  15960 	return buf;
  15961 }
  15962 
  15963 uint8 *
  15964 _bcm_pack_port_e2efc_remote_module_config(uint8 *buf, bcm_port_e2efc_remote_module_config_t *var)
  15965 {
  15966 	BCM_PACK_U32(buf, var->local_port);
  15967 	BCM_PACK_U32(buf, var->pkt_per_second);
  15968 	return buf;
  15969 }
  15970 
  15971 uint8 *
  15972 _bcm_unpack_port_e2efc_remote_module_config(uint8 *buf, bcm_port_e2efc_remote_module_config_t *var)
  15973 {
  15974 	BCM_UNPACK_U32(buf, var->local_port);
  15975 	BCM_UNPACK_U32(buf, var->pkt_per_second);
  15976 	return buf;
  15977 }
  15978 
  15979 uint8 *
  15980 _bcm_pack_port_e2efc_remote_port_config(uint8 *buf, bcm_port_e2efc_remote_port_config_t *var)
  15981 {
  15982 	BCM_PACK_U32(buf, var->remote_module);
  15983 	BCM_PACK_U32(buf, var->remote_port);
  15984 	BCM_PACK_U32(buf, var->xoff_threshold_bytes);
  15985 	BCM_PACK_U32(buf, var->xoff_threshold_packets);
  15986 	BCM_PACK_U32(buf, var->xon_threshold_bytes);
  15987 	BCM_PACK_U32(buf, var->xon_threshold_packets);
  15988 	BCM_PACK_U32(buf, var->drop_threshold_bytes);
  15989 	BCM_PACK_U32(buf, var->drop_threshold_packets);
  15990 	BCM_PACK_U32(buf, var->e2efc_resource_type);
  15991 	return buf;
  15992 }
  15993 
  15994 uint8 *
  15995 _bcm_unpack_port_e2efc_remote_port_config(uint8 *buf, bcm_port_e2efc_remote_port_config_t *var)
  15996 {
  15997 	BCM_UNPACK_U32(buf, var->remote_module);
  15998 	BCM_UNPACK_U32(buf, var->remote_port);
  15999 	BCM_UNPACK_U32(buf, var->xoff_threshold_bytes);
  16000 	BCM_UNPACK_U32(buf, var->xoff_threshold_packets);
  16001 	BCM_UNPACK_U32(buf, var->xon_threshold_bytes);
  16002 	BCM_UNPACK_U32(buf, var->xon_threshold_packets);
  16003 	BCM_UNPACK_U32(buf, var->drop_threshold_bytes);
  16004 	BCM_UNPACK_U32(buf, var->drop_threshold_packets);
  16005 	BCM_UNPACK_U32(buf, var->e2efc_resource_type);
  16006 	return buf;
  16007 }
  16008 
  16009 uint8 *
  16010 _bcm_pack_port_encap_config(uint8 *buf, bcm_port_encap_config_t *var)
  16011 {
  16012 	BCM_PACK_U32(buf, var->encap);
  16013 	BCM_PACK_U16(buf, var->oui_ethertype);
  16014 	BCM_PACK_U16(buf, var->higig_ethertype);
  16015 	BCM_PACK_U8(buf, var->oui[0]);
  16016 	BCM_PACK_U8(buf, var->oui[1]);
  16017 	BCM_PACK_U8(buf, var->oui[2]);
  16018 	BCM_PACK_U16(buf, var->hgoe_reserved);
  16019 	{
  16020 		int _i;
  16021 
  16022 		for (_i = 0; _i < 6; _i++) {
  16023 			BCM_PACK_U8(buf, var->dst_mac[_i]);
  16024 		}
  16025 	}
  16026 	{
  16027 		int _i;
  16028 
  16029 		for (_i = 0; _i < 6; _i++) {
  16030 			BCM_PACK_U8(buf, var->src_mac[_i]);
  16031 		}
  16032 	}
  16033 	BCM_PACK_U16(buf, var->tpid);
  16034 	BCM_PACK_U16(buf, var->vlan);
  16035 	BCM_PACK_U8(buf, var->ttl);
  16036 	BCM_PACK_U8(buf, var->tos);
  16037 	BCM_PACK_U32(buf, var->src_addr);
  16038 	BCM_PACK_U32(buf, var->dst_addr);
  16039 	return buf;
  16040 }
  16041 
  16042 uint8 *
  16043 _bcm_unpack_port_encap_config(uint8 *buf, bcm_port_encap_config_t *var)
  16044 {
  16045 	BCM_UNPACK_U32(buf, var->encap);
  16046 	BCM_UNPACK_U16(buf, var->oui_ethertype);
  16047 	BCM_UNPACK_U16(buf, var->higig_ethertype);
  16048 	BCM_UNPACK_U8(buf, var->oui[0]);
  16049 	BCM_UNPACK_U8(buf, var->oui[1]);
  16050 	BCM_UNPACK_U8(buf, var->oui[2]);
  16051 	BCM_UNPACK_U16(buf, var->hgoe_reserved);
  16052 	{
  16053 		int _i;
  16054 
  16055 		for (_i = 0; _i < 6; _i++) {
  16056 			BCM_UNPACK_U8(buf, var->dst_mac[_i]);
  16057 		}
  16058 	}
  16059 	{
  16060 		int _i;
  16061 
  16062 		for (_i = 0; _i < 6; _i++) {
  16063 			BCM_UNPACK_U8(buf, var->src_mac[_i]);
  16064 		}
  16065 	}
  16066 	BCM_UNPACK_U16(buf, var->tpid);
  16067 	BCM_UNPACK_U16(buf, var->vlan);
  16068 	BCM_UNPACK_U8(buf, var->ttl);
  16069 	BCM_UNPACK_U8(buf, var->tos);
  16070 	BCM_UNPACK_U32(buf, var->src_addr);
  16071 	BCM_UNPACK_U32(buf, var->dst_addr);
  16072 	return buf;
  16073 }
  16074 
  16075 uint8 *
  16076 _bcm_pack_port_extender_mapping_info(uint8 *buf, bcm_port_extender_mapping_info_t *var)
  16077 {
  16078 	BCM_PACK_U32(buf, var->pp_port);
  16079 	BCM_PACK_U32(buf, var->tunnel_id);
  16080 	BCM_PACK_U32(buf, var->phy_port);
  16081 	BCM_PACK_U16(buf, var->vlan);
  16082 	BCM_PACK_U32(buf, var->user_define_value);
  16083 	return buf;
  16084 }
  16085 
  16086 uint8 *
  16087 _bcm_unpack_port_extender_mapping_info(uint8 *buf, bcm_port_extender_mapping_info_t *var)
  16088 {
  16089 	BCM_UNPACK_U32(buf, var->pp_port);
  16090 	BCM_UNPACK_U32(buf, var->tunnel_id);
  16091 	BCM_UNPACK_U32(buf, var->phy_port);
  16092 	BCM_UNPACK_U16(buf, var->vlan);
  16093 	BCM_UNPACK_U32(buf, var->user_define_value);
  16094 	return buf;
  16095 }
  16096 
  16097 uint8 *
  16098 _bcm_pack_port_flood_group(uint8 *buf, bcm_port_flood_group_t *var)
  16099 {
  16100 	BCM_PACK_U32(buf, var->unknown_unicast_group);
  16101 	BCM_PACK_U32(buf, var->unknown_multicast_group);
  16102 	BCM_PACK_U32(buf, var->broadcast_group);
  16103 	return buf;
  16104 }
  16105 
  16106 uint8 *
  16107 _bcm_unpack_port_flood_group(uint8 *buf, bcm_port_flood_group_t *var)
  16108 {
  16109 	BCM_UNPACK_U32(buf, var->unknown_unicast_group);
  16110 	BCM_UNPACK_U32(buf, var->unknown_multicast_group);
  16111 	BCM_UNPACK_U32(buf, var->broadcast_group);
  16112 	return buf;
  16113 }
  16114 
  16115 uint8 *
  16116 _bcm_pack_port_info(uint8 *buf, bcm_port_info_t *var)
  16117 {
  16118 	BCM_PACK_U32(buf, var->action_mask);
  16119 	BCM_PACK_U32(buf, var->action_mask2);
  16120 	BCM_PACK_U32(buf, var->enable);
  16121 	BCM_PACK_U32(buf, var->linkstatus);
  16122 	BCM_PACK_U32(buf, var->autoneg);
  16123 	BCM_PACK_U32(buf, var->speed);
  16124 	BCM_PACK_U32(buf, var->duplex);
  16125 	BCM_PACK_U32(buf, var->linkscan);
  16126 	BCM_PACK_U32(buf, var->learn);
  16127 	BCM_PACK_U32(buf, var->discard);
  16128 	BCM_PACK_U32(buf, var->vlanfilter);
  16129 	BCM_PACK_U32(buf, var->untagged_priority);
  16130 	BCM_PACK_U16(buf, var->untagged_vlan);
  16131 	BCM_PACK_U32(buf, var->stp_state);
  16132 	BCM_PACK_U32(buf, var->pfm);
  16133 	BCM_PACK_U32(buf, var->loopback);
  16134 	BCM_PACK_U32(buf, var->phy_master);
  16135 	BCM_PACK_U32(buf, var->interface);
  16136 	BCM_PACK_U32(buf, var->pause_tx);
  16137 	BCM_PACK_U32(buf, var->pause_rx);
  16138 	BCM_PACK_U32(buf, var->encap_mode);
  16139 	{
  16140 		int _i;
  16141 
  16142 		for (_i = 0; _i < 6; _i++) {
  16143 			BCM_PACK_U8(buf, var->pause_mac[_i]);
  16144 		}
  16145 	}
  16146 	BCM_PACK_U32(buf, var->local_advert);
  16147 	BCM_PACK_U32(buf, var->local_ability.speed_half_duplex);
  16148 	BCM_PACK_U32(buf, var->local_ability.speed_full_duplex);
  16149 	BCM_PACK_U32(buf, var->local_ability.pause);
  16150 	BCM_PACK_U32(buf, var->local_ability.interface);
  16151 	BCM_PACK_U32(buf, var->local_ability.medium);
  16152 	BCM_PACK_U32(buf, var->local_ability.loopback);
  16153 	BCM_PACK_U32(buf, var->local_ability.flags);
  16154 	BCM_PACK_U32(buf, var->local_ability.eee);
  16155 	BCM_PACK_U32(buf, var->local_ability.rsvd);
  16156 	BCM_PACK_U32(buf, var->local_ability.encap);
  16157 	BCM_PACK_U32(buf, var->local_ability.fec);
  16158 	BCM_PACK_U32(buf, var->local_ability.channel);
  16159 	BCM_PACK_U32(buf, var->remote_advert_valid);
  16160 	BCM_PACK_U32(buf, var->remote_advert);
  16161 	BCM_PACK_U32(buf, var->remote_ability.speed_half_duplex);
  16162 	BCM_PACK_U32(buf, var->remote_ability.speed_full_duplex);
  16163 	BCM_PACK_U32(buf, var->remote_ability.pause);
  16164 	BCM_PACK_U32(buf, var->remote_ability.interface);
  16165 	BCM_PACK_U32(buf, var->remote_ability.medium);
  16166 	BCM_PACK_U32(buf, var->remote_ability.loopback);
  16167 	BCM_PACK_U32(buf, var->remote_ability.flags);
  16168 	BCM_PACK_U32(buf, var->remote_ability.eee);
  16169 	BCM_PACK_U32(buf, var->remote_ability.rsvd);
  16170 	BCM_PACK_U32(buf, var->remote_ability.encap);
  16171 	BCM_PACK_U32(buf, var->remote_ability.fec);
  16172 	BCM_PACK_U32(buf, var->remote_ability.channel);
  16173 	BCM_PACK_U32(buf, var->mcast_limit);
  16174 	BCM_PACK_U32(buf, var->mcast_limit_enable);
  16175 	BCM_PACK_U32(buf, var->bcast_limit);
  16176 	BCM_PACK_U32(buf, var->bcast_limit_enable);
  16177 	BCM_PACK_U32(buf, var->dlfbc_limit);
  16178 	BCM_PACK_U32(buf, var->dlfbc_limit_enable);
  16179 	BCM_PACK_U32(buf, var->speed_max);
  16180 	BCM_PACK_U32(buf, var->ability);
  16181 	BCM_PACK_U32(buf, var->port_ability.speed_half_duplex);
  16182 	BCM_PACK_U32(buf, var->port_ability.speed_full_duplex);
  16183 	BCM_PACK_U32(buf, var->port_ability.pause);
  16184 	BCM_PACK_U32(buf, var->port_ability.interface);
  16185 	BCM_PACK_U32(buf, var->port_ability.medium);
  16186 	BCM_PACK_U32(buf, var->port_ability.loopback);
  16187 	BCM_PACK_U32(buf, var->port_ability.flags);
  16188 	BCM_PACK_U32(buf, var->port_ability.eee);
  16189 	BCM_PACK_U32(buf, var->port_ability.rsvd);
  16190 	BCM_PACK_U32(buf, var->port_ability.encap);
  16191 	BCM_PACK_U32(buf, var->port_ability.fec);
  16192 	BCM_PACK_U32(buf, var->port_ability.channel);
  16193 	BCM_PACK_U32(buf, var->frame_max);
  16194 	BCM_PACK_U32(buf, var->mdix);
  16195 	BCM_PACK_U32(buf, var->mdix_status);
  16196 	BCM_PACK_U32(buf, var->medium);
  16197 	BCM_PACK_U32(buf, var->fault);
  16198 	return buf;
  16199 }
  16200 
  16201 uint8 *
  16202 _bcm_unpack_port_info(uint8 *buf, bcm_port_info_t *var)
  16203 {
  16204 	BCM_UNPACK_U32(buf, var->action_mask);
  16205 	BCM_UNPACK_U32(buf, var->action_mask2);
  16206 	BCM_UNPACK_U32(buf, var->enable);
  16207 	BCM_UNPACK_U32(buf, var->linkstatus);
  16208 	BCM_UNPACK_U32(buf, var->autoneg);
  16209 	BCM_UNPACK_U32(buf, var->speed);
  16210 	BCM_UNPACK_U32(buf, var->duplex);
  16211 	BCM_UNPACK_U32(buf, var->linkscan);
  16212 	BCM_UNPACK_U32(buf, var->learn);
  16213 	BCM_UNPACK_U32(buf, var->discard);
  16214 	BCM_UNPACK_U32(buf, var->vlanfilter);
  16215 	BCM_UNPACK_U32(buf, var->untagged_priority);
  16216 	BCM_UNPACK_U16(buf, var->untagged_vlan);
  16217 	BCM_UNPACK_U32(buf, var->stp_state);
  16218 	BCM_UNPACK_U32(buf, var->pfm);
  16219 	BCM_UNPACK_U32(buf, var->loopback);
  16220 	BCM_UNPACK_U32(buf, var->phy_master);
  16221 	BCM_UNPACK_U32(buf, var->interface);
  16222 	BCM_UNPACK_U32(buf, var->pause_tx);
  16223 	BCM_UNPACK_U32(buf, var->pause_rx);
  16224 	BCM_UNPACK_U32(buf, var->encap_mode);
  16225 	{
  16226 		int _i;
  16227 
  16228 		for (_i = 0; _i < 6; _i++) {
  16229 			BCM_UNPACK_U8(buf, var->pause_mac[_i]);
  16230 		}
  16231 	}
  16232 	BCM_UNPACK_U32(buf, var->local_advert);
  16233 	BCM_UNPACK_U32(buf, var->local_ability.speed_half_duplex);
  16234 	BCM_UNPACK_U32(buf, var->local_ability.speed_full_duplex);
  16235 	BCM_UNPACK_U32(buf, var->local_ability.pause);
  16236 	BCM_UNPACK_U32(buf, var->local_ability.interface);
  16237 	BCM_UNPACK_U32(buf, var->local_ability.medium);
  16238 	BCM_UNPACK_U32(buf, var->local_ability.loopback);
  16239 	BCM_UNPACK_U32(buf, var->local_ability.flags);
  16240 	BCM_UNPACK_U32(buf, var->local_ability.eee);
  16241 	BCM_UNPACK_U32(buf, var->local_ability.rsvd);
  16242 	BCM_UNPACK_U32(buf, var->local_ability.encap);
  16243 	BCM_UNPACK_U32(buf, var->local_ability.fec);
  16244 	BCM_UNPACK_U32(buf, var->local_ability.channel);
  16245 	BCM_UNPACK_U32(buf, var->remote_advert_valid);
  16246 	BCM_UNPACK_U32(buf, var->remote_advert);
  16247 	BCM_UNPACK_U32(buf, var->remote_ability.speed_half_duplex);
  16248 	BCM_UNPACK_U32(buf, var->remote_ability.speed_full_duplex);
  16249 	BCM_UNPACK_U32(buf, var->remote_ability.pause);
  16250 	BCM_UNPACK_U32(buf, var->remote_ability.interface);
  16251 	BCM_UNPACK_U32(buf, var->remote_ability.medium);
  16252 	BCM_UNPACK_U32(buf, var->remote_ability.loopback);
  16253 	BCM_UNPACK_U32(buf, var->remote_ability.flags);
  16254 	BCM_UNPACK_U32(buf, var->remote_ability.eee);
  16255 	BCM_UNPACK_U32(buf, var->remote_ability.rsvd);
  16256 	BCM_UNPACK_U32(buf, var->remote_ability.encap);
  16257 	BCM_UNPACK_U32(buf, var->remote_ability.fec);
  16258 	BCM_UNPACK_U32(buf, var->remote_ability.channel);
  16259 	BCM_UNPACK_U32(buf, var->mcast_limit);
  16260 	BCM_UNPACK_U32(buf, var->mcast_limit_enable);
  16261 	BCM_UNPACK_U32(buf, var->bcast_limit);
  16262 	BCM_UNPACK_U32(buf, var->bcast_limit_enable);
  16263 	BCM_UNPACK_U32(buf, var->dlfbc_limit);
  16264 	BCM_UNPACK_U32(buf, var->dlfbc_limit_enable);
  16265 	BCM_UNPACK_U32(buf, var->speed_max);
  16266 	BCM_UNPACK_U32(buf, var->ability);
  16267 	BCM_UNPACK_U32(buf, var->port_ability.speed_half_duplex);
  16268 	BCM_UNPACK_U32(buf, var->port_ability.speed_full_duplex);
  16269 	BCM_UNPACK_U32(buf, var->port_ability.pause);
  16270 	BCM_UNPACK_U32(buf, var->port_ability.interface);
  16271 	BCM_UNPACK_U32(buf, var->port_ability.medium);
  16272 	BCM_UNPACK_U32(buf, var->port_ability.loopback);
  16273 	BCM_UNPACK_U32(buf, var->port_ability.flags);
  16274 	BCM_UNPACK_U32(buf, var->port_ability.eee);
  16275 	BCM_UNPACK_U32(buf, var->port_ability.rsvd);
  16276 	BCM_UNPACK_U32(buf, var->port_ability.encap);
  16277 	BCM_UNPACK_U32(buf, var->port_ability.fec);
  16278 	BCM_UNPACK_U32(buf, var->port_ability.channel);
  16279 	BCM_UNPACK_U32(buf, var->frame_max);
  16280 	BCM_UNPACK_U32(buf, var->mdix);
  16281 	BCM_UNPACK_U32(buf, var->mdix_status);
  16282 	BCM_UNPACK_U32(buf, var->medium);
  16283 	BCM_UNPACK_U32(buf, var->fault);
  16284 	return buf;
  16285 }
  16286 
  16287 uint8 *
  16288 _bcm_pack_port_interface_config(uint8 *buf, bcm_port_interface_config_t *var)
  16289 {
  16290 	BCM_PACK_U32(buf, var->flags);
  16291 	BCM_PACK_U32(buf, var->channel);
  16292 	BCM_PACK_U32(buf, var->phy_port);
  16293 	BCM_PACK_U32(buf, var->interface);
  16294 	return buf;
  16295 }
  16296 
  16297 uint8 *
  16298 _bcm_unpack_port_interface_config(uint8 *buf, bcm_port_interface_config_t *var)
  16299 {
  16300 	BCM_UNPACK_U32(buf, var->flags);
  16301 	BCM_UNPACK_U32(buf, var->channel);
  16302 	BCM_UNPACK_U32(buf, var->phy_port);
  16303 	BCM_UNPACK_U32(buf, var->interface);
  16304 	return buf;
  16305 }
  16306 
  16307 uint8 *
  16308 _bcm_pack_port_interface_info(uint8 *buf, bcm_port_interface_info_t *var)
  16309 {
  16310 	BCM_PACK_U32(buf, var->phy_port);
  16311 	BCM_PACK_U32(buf, var->interface);
  16312 	BCM_PACK_U32(buf, var->num_lanes);
  16313 	buf = _bcm_pack_pbmp(buf, &(*var).phy_pbmp);
  16314 	BCM_PACK_U32(buf, var->interface_id);
  16315 	return buf;
  16316 }
  16317 
  16318 uint8 *
  16319 _bcm_unpack_port_interface_info(uint8 *buf, bcm_port_interface_info_t *var)
  16320 {
  16321 	BCM_UNPACK_U32(buf, var->phy_port);
  16322 	BCM_UNPACK_U32(buf, var->interface);
  16323 	BCM_UNPACK_U32(buf, var->num_lanes);
  16324 	buf = _bcm_unpack_pbmp(buf, &(*var).phy_pbmp);
  16325 	BCM_UNPACK_U32(buf, var->interface_id);
  16326 	return buf;
  16327 }
  16328 
  16329 uint8 *
  16330 _bcm_pack_port_lane_to_serdes_map(uint8 *buf, bcm_port_lane_to_serdes_map_t *var)
  16331 {
  16332 	BCM_PACK_U32(buf, var->serdes_rx_id);
  16333 	BCM_PACK_U32(buf, var->serdes_tx_id);
  16334 	return buf;
  16335 }
  16336 
  16337 uint8 *
  16338 _bcm_unpack_port_lane_to_serdes_map(uint8 *buf, bcm_port_lane_to_serdes_map_t *var)
  16339 {
  16340 	BCM_UNPACK_U32(buf, var->serdes_rx_id);
  16341 	BCM_UNPACK_U32(buf, var->serdes_tx_id);
  16342 	return buf;
  16343 }
  16344 
  16345 uint8 *
  16346 _bcm_pack_port_link_state(uint8 *buf, bcm_port_link_state_t *var)
  16347 {
  16348 	BCM_PACK_U32(buf, var->status);
  16349 	BCM_PACK_U32(buf, var->latch_down);
  16350 	return buf;
  16351 }
  16352 
  16353 uint8 *
  16354 _bcm_unpack_port_link_state(uint8 *buf, bcm_port_link_state_t *var)
  16355 {
  16356 	BCM_UNPACK_U32(buf, var->status);
  16357 	BCM_UNPACK_U32(buf, var->latch_down);
  16358 	return buf;
  16359 }
  16360 
  16361 uint8 *
  16362 _bcm_pack_port_management_packet_config(uint8 *buf, bcm_port_management_packet_config_t *var)
  16363 {
  16364 	BCM_PACK_U32(buf, var->flags);
  16365 	BCM_PACK_U16(buf, var->ethertype);
  16366 	{
  16367 		int _i;
  16368 
  16369 		for (_i = 0; _i < 6; _i++) {
  16370 			BCM_PACK_U8(buf, var->dest_mac[_i]);
  16371 		}
  16372 	}
  16373 	return buf;
  16374 }
  16375 
  16376 uint8 *
  16377 _bcm_unpack_port_management_packet_config(uint8 *buf, bcm_port_management_packet_config_t *var)
  16378 {
  16379 	BCM_UNPACK_U32(buf, var->flags);
  16380 	BCM_UNPACK_U16(buf, var->ethertype);
  16381 	{
  16382 		int _i;
  16383 
  16384 		for (_i = 0; _i < 6; _i++) {
  16385 			BCM_UNPACK_U8(buf, var->dest_mac[_i]);
  16386 		}
  16387 	}
  16388 	return buf;
  16389 }
  16390 
  16391 uint8 *
  16392 _bcm_pack_port_mapping_info(uint8 *buf, bcm_port_mapping_info_t *var)
  16393 {
  16394 	BCM_PACK_U32(buf, var->channel);
  16395 	BCM_PACK_U32(buf, var->core);
  16396 	BCM_PACK_U32(buf, var->tm_port);
  16397 	BCM_PACK_U32(buf, var->pp_port);
  16398 	BCM_PACK_U32(buf, var->base_q_pair);
  16399 	BCM_PACK_U32(buf, var->num_priorities);
  16400 	return buf;
  16401 }
  16402 
  16403 uint8 *
  16404 _bcm_unpack_port_mapping_info(uint8 *buf, bcm_port_mapping_info_t *var)
  16405 {
  16406 	BCM_UNPACK_U32(buf, var->channel);
  16407 	BCM_UNPACK_U32(buf, var->core);
  16408 	BCM_UNPACK_U32(buf, var->tm_port);
  16409 	BCM_UNPACK_U32(buf, var->pp_port);
  16410 	BCM_UNPACK_U32(buf, var->base_q_pair);
  16411 	BCM_UNPACK_U32(buf, var->num_priorities);
  16412 	return buf;
  16413 }
  16414 
  16415 uint8 *
  16416 _bcm_pack_port_match_info(uint8 *buf, bcm_port_match_info_t *var)
  16417 {
  16418 	BCM_PACK_U32(buf, var->match);
  16419 	BCM_PACK_U32(buf, var->port);
  16420 	BCM_PACK_U16(buf, var->match_vlan);
  16421 	BCM_PACK_U16(buf, var->match_vlan_max);
  16422 	BCM_PACK_U16(buf, var->match_inner_vlan);
  16423 	BCM_PACK_U16(buf, var->match_inner_vlan_max);
  16424 	BCM_PACK_U16(buf, var->match_tunnel_vlan);
  16425 	{
  16426 		int _i;
  16427 
  16428 		for (_i = 0; _i < 6; _i++) {
  16429 			BCM_PACK_U8(buf, var->match_tunnel_srcmac[_i]);
  16430 		}
  16431 	}
  16432 	BCM_PACK_U32(buf, var->match_label);
  16433 	BCM_PACK_U32(buf, var->flags);
  16434 	BCM_PACK_U32(buf, var->match_pon_tunnel);
  16435 	BCM_PACK_U16(buf, var->match_ethertype);
  16436 	BCM_PACK_U32(buf, var->match_pcp);
  16437 	BCM_PACK_U16(buf, var->action->new_outer_vlan);
  16438 	BCM_PACK_U16(buf, var->action->new_inner_vlan);
  16439 	BCM_PACK_U8(buf, var->action->new_inner_pkt_prio);
  16440 	BCM_PACK_U8(buf, var->action->new_outer_cfi);
  16441 	BCM_PACK_U8(buf, var->action->new_inner_cfi);
  16442 	BCM_PACK_U32(buf, var->action->ingress_if);
  16443 	BCM_PACK_U32(buf, var->action->priority);
  16444 	BCM_PACK_U32(buf, var->action->dt_outer);
  16445 	BCM_PACK_U32(buf, var->action->dt_outer_prio);
  16446 	BCM_PACK_U32(buf, var->action->dt_outer_pkt_prio);
  16447 	BCM_PACK_U32(buf, var->action->dt_outer_cfi);
  16448 	BCM_PACK_U32(buf, var->action->dt_inner);
  16449 	BCM_PACK_U32(buf, var->action->dt_inner_prio);
  16450 	BCM_PACK_U32(buf, var->action->dt_inner_pkt_prio);
  16451 	BCM_PACK_U32(buf, var->action->dt_inner_cfi);
  16452 	BCM_PACK_U32(buf, var->action->ot_outer);
  16453 	BCM_PACK_U32(buf, var->action->ot_outer_prio);
  16454 	BCM_PACK_U32(buf, var->action->ot_outer_pkt_prio);
  16455 	BCM_PACK_U32(buf, var->action->ot_outer_cfi);
  16456 	BCM_PACK_U32(buf, var->action->ot_inner);
  16457 	BCM_PACK_U32(buf, var->action->ot_inner_pkt_prio);
  16458 	BCM_PACK_U32(buf, var->action->ot_inner_cfi);
  16459 	BCM_PACK_U32(buf, var->action->it_outer);
  16460 	BCM_PACK_U32(buf, var->action->it_outer_pkt_prio);
  16461 	BCM_PACK_U32(buf, var->action->it_outer_cfi);
  16462 	BCM_PACK_U32(buf, var->action->it_inner);
  16463 	BCM_PACK_U32(buf, var->action->it_inner_prio);
  16464 	BCM_PACK_U32(buf, var->action->it_inner_pkt_prio);
  16465 	BCM_PACK_U32(buf, var->action->it_inner_cfi);
  16466 	BCM_PACK_U32(buf, var->action->ut_outer);
  16467 	BCM_PACK_U32(buf, var->action->ut_outer_pkt_prio);
  16468 	BCM_PACK_U32(buf, var->action->ut_outer_cfi);
  16469 	BCM_PACK_U32(buf, var->action->ut_inner);
  16470 	BCM_PACK_U32(buf, var->action->ut_inner_pkt_prio);
  16471 	BCM_PACK_U32(buf, var->action->ut_inner_cfi);
  16472 	BCM_PACK_U32(buf, var->action->outer_pcp);
  16473 	BCM_PACK_U32(buf, var->action->inner_pcp);
  16474 	BCM_PACK_U32(buf, var->action->policer_id);
  16475 	BCM_PACK_U16(buf, var->action->outer_tpid);
  16476 	BCM_PACK_U16(buf, var->action->inner_tpid);
  16477 	BCM_PACK_U32(buf, var->action->outer_tpid_action);
  16478 	BCM_PACK_U32(buf, var->action->inner_tpid_action);
  16479 	BCM_PACK_U32(buf, var->action->action_id);
  16480 	BCM_PACK_U32(buf, var->action->class_id);
  16481 	BCM_PACK_U32(buf, var->action->taf_gate_primap);
  16482 	BCM_PACK_U32(buf, var->action->flags);
  16483 	BCM_PACK_U16(buf, var->extended_port_vid);
  16484 	BCM_PACK_U16(buf, var->vpn);
  16485 	BCM_PACK_U16(buf, var->niv_port_vif);
  16486 	BCM_PACK_U32(buf, var->isid);
  16487 	{
  16488 		int _i;
  16489 
  16490 		for (_i = 0; _i < 6; _i++) {
  16491 			BCM_PACK_U8(buf, var->src_mac[_i]);
  16492 		}
  16493 	}
  16494 	BCM_PACK_U32(buf, var->port_class);
  16495 	return buf;
  16496 }
  16497 
  16498 uint8 *
  16499 _bcm_unpack_port_match_info(uint8 *buf, bcm_port_match_info_t *var)
  16500 {
  16501 	BCM_UNPACK_U32(buf, var->match);
  16502 	BCM_UNPACK_U32(buf, var->port);
  16503 	BCM_UNPACK_U16(buf, var->match_vlan);
  16504 	BCM_UNPACK_U16(buf, var->match_vlan_max);
  16505 	BCM_UNPACK_U16(buf, var->match_inner_vlan);
  16506 	BCM_UNPACK_U16(buf, var->match_inner_vlan_max);
  16507 	BCM_UNPACK_U16(buf, var->match_tunnel_vlan);
  16508 	{
  16509 		int _i;
  16510 
  16511 		for (_i = 0; _i < 6; _i++) {
  16512 			BCM_UNPACK_U8(buf, var->match_tunnel_srcmac[_i]);
  16513 		}
  16514 	}
  16515 	BCM_UNPACK_U32(buf, var->match_label);
  16516 	BCM_UNPACK_U32(buf, var->flags);
  16517 	BCM_UNPACK_U32(buf, var->match_pon_tunnel);
  16518 	BCM_UNPACK_U16(buf, var->match_ethertype);
  16519 	BCM_UNPACK_U32(buf, var->match_pcp);
  16520 	BCM_UNPACK_U16(buf, var->action->new_outer_vlan);
  16521 	BCM_UNPACK_U16(buf, var->action->new_inner_vlan);
  16522 	BCM_UNPACK_U8(buf, var->action->new_inner_pkt_prio);
  16523 	BCM_UNPACK_U8(buf, var->action->new_outer_cfi);
  16524 	BCM_UNPACK_U8(buf, var->action->new_inner_cfi);
  16525 	BCM_UNPACK_U32(buf, var->action->ingress_if);
  16526 	BCM_UNPACK_U32(buf, var->action->priority);
  16527 	BCM_UNPACK_U32(buf, var->action->dt_outer);
  16528 	BCM_UNPACK_U32(buf, var->action->dt_outer_prio);
  16529 	BCM_UNPACK_U32(buf, var->action->dt_outer_pkt_prio);
  16530 	BCM_UNPACK_U32(buf, var->action->dt_outer_cfi);
  16531 	BCM_UNPACK_U32(buf, var->action->dt_inner);
  16532 	BCM_UNPACK_U32(buf, var->action->dt_inner_prio);
  16533 	BCM_UNPACK_U32(buf, var->action->dt_inner_pkt_prio);
  16534 	BCM_UNPACK_U32(buf, var->action->dt_inner_cfi);
  16535 	BCM_UNPACK_U32(buf, var->action->ot_outer);
  16536 	BCM_UNPACK_U32(buf, var->action->ot_outer_prio);
  16537 	BCM_UNPACK_U32(buf, var->action->ot_outer_pkt_prio);
  16538 	BCM_UNPACK_U32(buf, var->action->ot_outer_cfi);
  16539 	BCM_UNPACK_U32(buf, var->action->ot_inner);
  16540 	BCM_UNPACK_U32(buf, var->action->ot_inner_pkt_prio);
  16541 	BCM_UNPACK_U32(buf, var->action->ot_inner_cfi);
  16542 	BCM_UNPACK_U32(buf, var->action->it_outer);
  16543 	BCM_UNPACK_U32(buf, var->action->it_outer_pkt_prio);
  16544 	BCM_UNPACK_U32(buf, var->action->it_outer_cfi);
  16545 	BCM_UNPACK_U32(buf, var->action->it_inner);
  16546 	BCM_UNPACK_U32(buf, var->action->it_inner_prio);
  16547 	BCM_UNPACK_U32(buf, var->action->it_inner_pkt_prio);
  16548 	BCM_UNPACK_U32(buf, var->action->it_inner_cfi);
  16549 	BCM_UNPACK_U32(buf, var->action->ut_outer);
  16550 	BCM_UNPACK_U32(buf, var->action->ut_outer_pkt_prio);
  16551 	BCM_UNPACK_U32(buf, var->action->ut_outer_cfi);
  16552 	BCM_UNPACK_U32(buf, var->action->ut_inner);
  16553 	BCM_UNPACK_U32(buf, var->action->ut_inner_pkt_prio);
  16554 	BCM_UNPACK_U32(buf, var->action->ut_inner_cfi);
  16555 	BCM_UNPACK_U32(buf, var->action->outer_pcp);
  16556 	BCM_UNPACK_U32(buf, var->action->inner_pcp);
  16557 	BCM_UNPACK_U32(buf, var->action->policer_id);
  16558 	BCM_UNPACK_U16(buf, var->action->outer_tpid);
  16559 	BCM_UNPACK_U16(buf, var->action->inner_tpid);
  16560 	BCM_UNPACK_U32(buf, var->action->outer_tpid_action);
  16561 	BCM_UNPACK_U32(buf, var->action->inner_tpid_action);
  16562 	BCM_UNPACK_U32(buf, var->action->action_id);
  16563 	BCM_UNPACK_U32(buf, var->action->class_id);
  16564 	BCM_UNPACK_U32(buf, var->action->taf_gate_primap);
  16565 	BCM_UNPACK_U32(buf, var->action->flags);
  16566 	BCM_UNPACK_U16(buf, var->extended_port_vid);
  16567 	BCM_UNPACK_U16(buf, var->vpn);
  16568 	BCM_UNPACK_U16(buf, var->niv_port_vif);
  16569 	BCM_UNPACK_U32(buf, var->isid);
  16570 	{
  16571 		int _i;
  16572 
  16573 		for (_i = 0; _i < 6; _i++) {
  16574 			BCM_UNPACK_U8(buf, var->src_mac[_i]);
  16575 		}
  16576 	}
  16577 	BCM_UNPACK_U32(buf, var->port_class);
  16578 	return buf;
  16579 }
  16580 
  16581 uint8 *
  16582 _bcm_pack_port_phy_timesync_config(uint8 *buf, bcm_port_phy_timesync_config_t *var)
  16583 {
  16584 	BCM_PACK_U32(buf, var->capabilities);
  16585 	BCM_PACK_U32(buf, var->validity_mask);
  16586 	BCM_PACK_U32(buf, var->flags);
  16587 	BCM_PACK_U16(buf, var->itpid);
  16588 	BCM_PACK_U16(buf, var->otpid);
  16589 	BCM_PACK_U16(buf, var->otpid2);
  16590 	BCM_PACK_U32(buf, var->timer_adjust.mode);
  16591 	BCM_PACK_U32(buf, var->timer_adjust.delta);
  16592 	BCM_PACK_U32(buf, var->inband_control.flags);
  16593 	BCM_PACK_U32(buf, var->inband_control.resv0_id);
  16594 	BCM_PACK_U32(buf, var->inband_control.timer_mode);
  16595 	BCM_PACK_U32(buf, var->gmode);
  16596 	BCM_PACK_U32(buf, var->framesync.mode);
  16597 	BCM_PACK_U32(buf, var->framesync.length_threshold);
  16598 	BCM_PACK_U32(buf, var->framesync.event_offset);
  16599 	BCM_PACK_U32(buf, var->syncout.mode);
  16600 	BCM_PACK_U16(buf, var->syncout.pulse_1_length);
  16601 	BCM_PACK_U16(buf, var->syncout.pulse_2_length);
  16602 	BCM_PACK_U32(buf, var->syncout.interval);
  16603 	{
  16604 		uint32 _u32;
  16605 
  16606 		_u32 = COMPILER_64_HI(var->syncout.syncout_ts);
  16607 		BCM_PACK_U32(buf, _u32);
  16608 		_u32 = COMPILER_64_LO(var->syncout.syncout_ts);
  16609 		BCM_PACK_U32(buf, _u32);
  16610 	}
  16611 	BCM_PACK_U16(buf, var->ts_divider);
  16612 	BCM_PACK_U8(buf, var->original_timecode.isnegative);
  16613 	{
  16614 		uint32 _u32;
  16615 
  16616 		_u32 = COMPILER_64_HI(var->original_timecode.seconds);
  16617 		BCM_PACK_U32(buf, _u32);
  16618 		_u32 = COMPILER_64_LO(var->original_timecode.seconds);
  16619 		BCM_PACK_U32(buf, _u32);
  16620 	}
  16621 	BCM_PACK_U32(buf, var->original_timecode.nanoseconds);
  16622 	BCM_PACK_U32(buf, var->tx_timestamp_offset);
  16623 	BCM_PACK_U32(buf, var->rx_timestamp_offset);
  16624 	BCM_PACK_U32(buf, var->rx_link_delay);
  16625 	BCM_PACK_U32(buf, var->tx_sync_mode);
  16626 	BCM_PACK_U32(buf, var->tx_delay_request_mode);
  16627 	BCM_PACK_U32(buf, var->tx_pdelay_request_mode);
  16628 	BCM_PACK_U32(buf, var->tx_pdelay_response_mode);
  16629 	BCM_PACK_U32(buf, var->rx_sync_mode);
  16630 	BCM_PACK_U32(buf, var->rx_delay_request_mode);
  16631 	BCM_PACK_U32(buf, var->rx_pdelay_request_mode);
  16632 	BCM_PACK_U32(buf, var->rx_pdelay_response_mode);
  16633 	BCM_PACK_U32(buf, var->mpls_control.flags);
  16634 	BCM_PACK_U32(buf, var->mpls_control.special_label);
  16635 	{
  16636 		int _i;
  16637 
  16638 		for (_i = 0; _i < 10; _i++) {
  16639 			BCM_PACK_U32(buf, var->mpls_control.labels[_i].value);
  16640 			BCM_PACK_U32(buf, var->mpls_control.labels[_i].mask);
  16641 			BCM_PACK_U32(buf, var->mpls_control.labels[_i].flags);
  16642 		}
  16643 	}
  16644 	BCM_PACK_U32(buf, var->mpls_control.size);
  16645 	BCM_PACK_U32(buf, var->sync_freq);
  16646 	BCM_PACK_U16(buf, var->phy_1588_dpll_k1);
  16647 	BCM_PACK_U16(buf, var->phy_1588_dpll_k2);
  16648 	BCM_PACK_U16(buf, var->phy_1588_dpll_k3);
  16649 	{
  16650 		uint32 _u32;
  16651 
  16652 		_u32 = COMPILER_64_HI(var->phy_1588_dpll_loop_filter);
  16653 		BCM_PACK_U32(buf, _u32);
  16654 		_u32 = COMPILER_64_LO(var->phy_1588_dpll_loop_filter);
  16655 		BCM_PACK_U32(buf, _u32);
  16656 	}
  16657 	{
  16658 		uint32 _u32;
  16659 
  16660 		_u32 = COMPILER_64_HI(var->phy_1588_dpll_ref_phase);
  16661 		BCM_PACK_U32(buf, _u32);
  16662 		_u32 = COMPILER_64_LO(var->phy_1588_dpll_ref_phase);
  16663 		BCM_PACK_U32(buf, _u32);
  16664 	}
  16665 	BCM_PACK_U32(buf, var->phy_1588_dpll_ref_phase_delta);
  16666 	return buf;
  16667 }
  16668 
  16669 uint8 *
  16670 _bcm_unpack_port_phy_timesync_config(uint8 *buf, bcm_port_phy_timesync_config_t *var)
  16671 {
  16672 	BCM_UNPACK_U32(buf, var->capabilities);
  16673 	BCM_UNPACK_U32(buf, var->validity_mask);
  16674 	BCM_UNPACK_U32(buf, var->flags);
  16675 	BCM_UNPACK_U16(buf, var->itpid);
  16676 	BCM_UNPACK_U16(buf, var->otpid);
  16677 	BCM_UNPACK_U16(buf, var->otpid2);
  16678 	BCM_UNPACK_U32(buf, var->timer_adjust.mode);
  16679 	BCM_UNPACK_U32(buf, var->timer_adjust.delta);
  16680 	BCM_UNPACK_U32(buf, var->inband_control.flags);
  16681 	BCM_UNPACK_U32(buf, var->inband_control.resv0_id);
  16682 	BCM_UNPACK_U32(buf, var->inband_control.timer_mode);
  16683 	BCM_UNPACK_U32(buf, var->gmode);
  16684 	BCM_UNPACK_U32(buf, var->framesync.mode);
  16685 	BCM_UNPACK_U32(buf, var->framesync.length_threshold);
  16686 	BCM_UNPACK_U32(buf, var->framesync.event_offset);
  16687 	BCM_UNPACK_U32(buf, var->syncout.mode);
  16688 	BCM_UNPACK_U16(buf, var->syncout.pulse_1_length);
  16689 	BCM_UNPACK_U16(buf, var->syncout.pulse_2_length);
  16690 	BCM_UNPACK_U32(buf, var->syncout.interval);
  16691 	{
  16692 		uint32 _u32h, _u32l;
  16693 
  16694 		BCM_UNPACK_U32(buf, _u32h);
  16695 		BCM_UNPACK_U32(buf, _u32l);
  16696 		COMPILER_64_SET(var->syncout.syncout_ts, _u32h, _u32l);
  16697 	}
  16698 	BCM_UNPACK_U16(buf, var->ts_divider);
  16699 	BCM_UNPACK_U8(buf, var->original_timecode.isnegative);
  16700 	{
  16701 		uint32 _u32h, _u32l;
  16702 
  16703 		BCM_UNPACK_U32(buf, _u32h);
  16704 		BCM_UNPACK_U32(buf, _u32l);
  16705 		COMPILER_64_SET(var->original_timecode.seconds, _u32h, _u32l);
  16706 	}
  16707 	BCM_UNPACK_U32(buf, var->original_timecode.nanoseconds);
  16708 	BCM_UNPACK_U32(buf, var->tx_timestamp_offset);
  16709 	BCM_UNPACK_U32(buf, var->rx_timestamp_offset);
  16710 	BCM_UNPACK_U32(buf, var->rx_link_delay);
  16711 	BCM_UNPACK_U32(buf, var->tx_sync_mode);
  16712 	BCM_UNPACK_U32(buf, var->tx_delay_request_mode);
  16713 	BCM_UNPACK_U32(buf, var->tx_pdelay_request_mode);
  16714 	BCM_UNPACK_U32(buf, var->tx_pdelay_response_mode);
  16715 	BCM_UNPACK_U32(buf, var->rx_sync_mode);
  16716 	BCM_UNPACK_U32(buf, var->rx_delay_request_mode);
  16717 	BCM_UNPACK_U32(buf, var->rx_pdelay_request_mode);
  16718 	BCM_UNPACK_U32(buf, var->rx_pdelay_response_mode);
  16719 	BCM_UNPACK_U32(buf, var->mpls_control.flags);
  16720 	BCM_UNPACK_U32(buf, var->mpls_control.special_label);
  16721 	{
  16722 		int _i;
  16723 
  16724 		for (_i = 0; _i < 10; _i++) {
  16725 			BCM_UNPACK_U32(buf, var->mpls_control.labels[_i].value);
  16726 			BCM_UNPACK_U32(buf, var->mpls_control.labels[_i].mask);
  16727 			BCM_UNPACK_U32(buf, var->mpls_control.labels[_i].flags);
  16728 		}
  16729 	}
  16730 	BCM_UNPACK_U32(buf, var->mpls_control.size);
  16731 	BCM_UNPACK_U32(buf, var->sync_freq);
  16732 	BCM_UNPACK_U16(buf, var->phy_1588_dpll_k1);
  16733 	BCM_UNPACK_U16(buf, var->phy_1588_dpll_k2);
  16734 	BCM_UNPACK_U16(buf, var->phy_1588_dpll_k3);
  16735 	{
  16736 		uint32 _u32h, _u32l;
  16737 
  16738 		BCM_UNPACK_U32(buf, _u32h);
  16739 		BCM_UNPACK_U32(buf, _u32l);
  16740 		COMPILER_64_SET(var->phy_1588_dpll_loop_filter, _u32h, _u32l);
  16741 	}
  16742 	{
  16743 		uint32 _u32h, _u32l;
  16744 
  16745 		BCM_UNPACK_U32(buf, _u32h);
  16746 		BCM_UNPACK_U32(buf, _u32l);
  16747 		COMPILER_64_SET(var->phy_1588_dpll_ref_phase, _u32h, _u32l);
  16748 	}
  16749 	BCM_UNPACK_U32(buf, var->phy_1588_dpll_ref_phase_delta);
  16750 	return buf;
  16751 }
  16752 
  16753 uint8 *
  16754 _bcm_pack_port_phy_timesync_enhanced_capture(uint8 *buf, bcm_port_phy_timesync_enhanced_capture_t *var)
  16755 {
  16756 	BCM_PACK_U32(buf, var->msg_type);
  16757 	BCM_PACK_U32(buf, var->protocol);
  16758 	BCM_PACK_U32(buf, var->direction);
  16759 	BCM_PACK_U32(buf, var->seq_id);
  16760 	BCM_PACK_U32(buf, var->domain);
  16761 	{
  16762 		uint32 _u32;
  16763 
  16764 		_u32 = COMPILER_64_HI(var->timestamp);
  16765 		BCM_PACK_U32(buf, _u32);
  16766 		_u32 = COMPILER_64_LO(var->timestamp);
  16767 		BCM_PACK_U32(buf, _u32);
  16768 	}
  16769 	{
  16770 		uint32 _u32;
  16771 
  16772 		_u32 = COMPILER_64_HI(var->source_port_identity);
  16773 		BCM_PACK_U32(buf, _u32);
  16774 		_u32 = COMPILER_64_LO(var->source_port_identity);
  16775 		BCM_PACK_U32(buf, _u32);
  16776 	}
  16777 	BCM_PACK_U16(buf, var->source_port);
  16778 	BCM_PACK_U16(buf, var->vlan_id);
  16779 	return buf;
  16780 }
  16781 
  16782 uint8 *
  16783 _bcm_unpack_port_phy_timesync_enhanced_capture(uint8 *buf, bcm_port_phy_timesync_enhanced_capture_t *var)
  16784 {
  16785 	BCM_UNPACK_U32(buf, var->msg_type);
  16786 	BCM_UNPACK_U32(buf, var->protocol);
  16787 	BCM_UNPACK_U32(buf, var->direction);
  16788 	BCM_UNPACK_U32(buf, var->seq_id);
  16789 	BCM_UNPACK_U32(buf, var->domain);
  16790 	{
  16791 		uint32 _u32h, _u32l;
  16792 
  16793 		BCM_UNPACK_U32(buf, _u32h);
  16794 		BCM_UNPACK_U32(buf, _u32l);
  16795 		COMPILER_64_SET(var->timestamp, _u32h, _u32l);
  16796 	}
  16797 	{
  16798 		uint32 _u32h, _u32l;
  16799 
  16800 		BCM_UNPACK_U32(buf, _u32h);
  16801 		BCM_UNPACK_U32(buf, _u32l);
  16802 		COMPILER_64_SET(var->source_port_identity, _u32h, _u32l);
  16803 	}
  16804 	BCM_UNPACK_U16(buf, var->source_port);
  16805 	BCM_UNPACK_U16(buf, var->vlan_id);
  16806 	return buf;
  16807 }
  16808 
  16809 uint8 *
  16810 _bcm_pack_port_phy_tx(uint8 *buf, bcm_port_phy_tx_t *var)
  16811 {
  16812 	BCM_PACK_U32(buf, var->pre2);
  16813 	BCM_PACK_U32(buf, var->pre);
  16814 	BCM_PACK_U32(buf, var->main);
  16815 	BCM_PACK_U32(buf, var->post);
  16816 	BCM_PACK_U32(buf, var->post2);
  16817 	BCM_PACK_U32(buf, var->post3);
  16818 	BCM_PACK_U32(buf, var->tx_tap_mode);
  16819 	BCM_PACK_U32(buf, var->signalling_mode);
  16820 	return buf;
  16821 }
  16822 
  16823 uint8 *
  16824 _bcm_unpack_port_phy_tx(uint8 *buf, bcm_port_phy_tx_t *var)
  16825 {
  16826 	BCM_UNPACK_U32(buf, var->pre2);
  16827 	BCM_UNPACK_U32(buf, var->pre);
  16828 	BCM_UNPACK_U32(buf, var->main);
  16829 	BCM_UNPACK_U32(buf, var->post);
  16830 	BCM_UNPACK_U32(buf, var->post2);
  16831 	BCM_UNPACK_U32(buf, var->post3);
  16832 	BCM_UNPACK_U32(buf, var->tx_tap_mode);
  16833 	BCM_UNPACK_U32(buf, var->signalling_mode);
  16834 	return buf;
  16835 }
  16836 
  16837 uint8 *
  16838 _bcm_pack_port_pon_info(uint8 *buf, bcm_port_pon_info_t *var)
  16839 {
  16840 	BCM_PACK_U32(buf, var->llid);
  16841 	BCM_PACK_U32(buf, var->enable);
  16842 	BCM_PACK_U32(buf, var->linkstatus);
  16843 	BCM_PACK_U32(buf, var->oam_discovery_status);
  16844 	BCM_PACK_U32(buf, var->loopback);
  16845 	{
  16846 		int _i;
  16847 
  16848 		for (_i = 0; _i < 6; _i++) {
  16849 			BCM_PACK_U8(buf, var->olt_mac_addr[_i]);
  16850 		}
  16851 	}
  16852 	{
  16853 		int _i;
  16854 
  16855 		for (_i = 0; _i < 8; _i++) {
  16856 			BCM_PACK_U32(buf, var->polling_intervals[_i]);
  16857 		}
  16858 	}
  16859 	return buf;
  16860 }
  16861 
  16862 uint8 *
  16863 _bcm_unpack_port_pon_info(uint8 *buf, bcm_port_pon_info_t *var)
  16864 {
  16865 	BCM_UNPACK_U32(buf, var->llid);
  16866 	BCM_UNPACK_U32(buf, var->enable);
  16867 	BCM_UNPACK_U32(buf, var->linkstatus);
  16868 	BCM_UNPACK_U32(buf, var->oam_discovery_status);
  16869 	BCM_UNPACK_U32(buf, var->loopback);
  16870 	{
  16871 		int _i;
  16872 
  16873 		for (_i = 0; _i < 6; _i++) {
  16874 			BCM_UNPACK_U8(buf, var->olt_mac_addr[_i]);
  16875 		}
  16876 	}
  16877 	{
  16878 		int _i;
  16879 
  16880 		for (_i = 0; _i < 8; _i++) {
  16881 			BCM_UNPACK_U32(buf, var->polling_intervals[_i]);
  16882 		}
  16883 	}
  16884 	return buf;
  16885 }
  16886 
  16887 uint8 *
  16888 _bcm_pack_port_prio_config(uint8 *buf, bcm_port_prio_config_t *var)
  16889 {
  16890 	BCM_PACK_U32(buf, var->nof_priority_groups);
  16891 	BCM_PACK_U32(buf, var->priority_groups[0].source_priority);
  16892 	BCM_PACK_U32(buf, var->priority_groups[0].sch_priority);
  16893 	BCM_PACK_U32(buf, var->priority_groups[0].num_of_entries);
  16894 	BCM_PACK_U32(buf, var->priority_groups[1].source_priority);
  16895 	BCM_PACK_U32(buf, var->priority_groups[1].sch_priority);
  16896 	BCM_PACK_U32(buf, var->priority_groups[1].num_of_entries);
  16897 	BCM_PACK_U32(buf, var->priority_groups[2].source_priority);
  16898 	BCM_PACK_U32(buf, var->priority_groups[2].sch_priority);
  16899 	BCM_PACK_U32(buf, var->priority_groups[2].num_of_entries);
  16900 	return buf;
  16901 }
  16902 
  16903 uint8 *
  16904 _bcm_unpack_port_prio_config(uint8 *buf, bcm_port_prio_config_t *var)
  16905 {
  16906 	BCM_UNPACK_U32(buf, var->nof_priority_groups);
  16907 	BCM_UNPACK_U32(buf, var->priority_groups[0].source_priority);
  16908 	BCM_UNPACK_U32(buf, var->priority_groups[0].sch_priority);
  16909 	BCM_UNPACK_U32(buf, var->priority_groups[0].num_of_entries);
  16910 	BCM_UNPACK_U32(buf, var->priority_groups[1].source_priority);
  16911 	BCM_UNPACK_U32(buf, var->priority_groups[1].sch_priority);
  16912 	BCM_UNPACK_U32(buf, var->priority_groups[1].num_of_entries);
  16913 	BCM_UNPACK_U32(buf, var->priority_groups[2].source_priority);
  16914 	BCM_UNPACK_U32(buf, var->priority_groups[2].sch_priority);
  16915 	BCM_UNPACK_U32(buf, var->priority_groups[2].num_of_entries);
  16916 	return buf;
  16917 }
  16918 
  16919 uint8 *
  16920 _bcm_pack_port_priority_group_config(uint8 *buf, bcm_port_priority_group_config_t *var)
  16921 {
  16922 	BCM_PACK_U32(buf, var->shared_pool_xoff_enable);
  16923 	BCM_PACK_U32(buf, var->shared_pool_discard_enable);
  16924 	BCM_PACK_U32(buf, var->pfc_transmit_enable);
  16925 	BCM_PACK_U16(buf, var->priority_enable_vector_mask);
  16926 	return buf;
  16927 }
  16928 
  16929 uint8 *
  16930 _bcm_unpack_port_priority_group_config(uint8 *buf, bcm_port_priority_group_config_t *var)
  16931 {
  16932 	BCM_UNPACK_U32(buf, var->shared_pool_xoff_enable);
  16933 	BCM_UNPACK_U32(buf, var->shared_pool_discard_enable);
  16934 	BCM_UNPACK_U32(buf, var->pfc_transmit_enable);
  16935 	BCM_UNPACK_U16(buf, var->priority_enable_vector_mask);
  16936 	return buf;
  16937 }
  16938 
  16939 uint8 *
  16940 _bcm_pack_port_redirect_config(uint8 *buf, bcm_port_redirect_config_t *var)
  16941 {
  16942 	BCM_PACK_U32(buf, var->flags);
  16943 	BCM_PACK_U32(buf, var->strength);
  16944 	BCM_PACK_U32(buf, var->buffer_priority);
  16945 	BCM_PACK_U32(buf, var->destination);
  16946 	BCM_PACK_U32(buf, var->priority);
  16947 	BCM_PACK_U32(buf, var->color);
  16948 	return buf;
  16949 }
  16950 
  16951 uint8 *
  16952 _bcm_unpack_port_redirect_config(uint8 *buf, bcm_port_redirect_config_t *var)
  16953 {
  16954 	BCM_UNPACK_U32(buf, var->flags);
  16955 	BCM_UNPACK_U32(buf, var->strength);
  16956 	BCM_UNPACK_U32(buf, var->buffer_priority);
  16957 	BCM_UNPACK_U32(buf, var->destination);
  16958 	BCM_UNPACK_U32(buf, var->priority);
  16959 	BCM_UNPACK_U32(buf, var->color);
  16960 	return buf;
  16961 }
  16962 
  16963 uint8 *
  16964 _bcm_pack_port_resource(uint8 *buf, bcm_port_resource_t *var)
  16965 {
  16966 	BCM_PACK_U32(buf, var->flags);
  16967 	BCM_PACK_U32(buf, var->port);
  16968 	BCM_PACK_U32(buf, var->physical_port);
  16969 	BCM_PACK_U32(buf, var->speed);
  16970 	BCM_PACK_U32(buf, var->lanes);
  16971 	BCM_PACK_U32(buf, var->encap);
  16972 	BCM_PACK_U32(buf, var->fec_type);
  16973 	BCM_PACK_U32(buf, var->phy_lane_config);
  16974 	BCM_PACK_U32(buf, var->link_training);
  16975 	BCM_PACK_U32(buf, var->roe_compression);
  16976 	return buf;
  16977 }
  16978 
  16979 uint8 *
  16980 _bcm_unpack_port_resource(uint8 *buf, bcm_port_resource_t *var)
  16981 {
  16982 	BCM_UNPACK_U32(buf, var->flags);
  16983 	BCM_UNPACK_U32(buf, var->port);
  16984 	BCM_UNPACK_U32(buf, var->physical_port);
  16985 	BCM_UNPACK_U32(buf, var->speed);
  16986 	BCM_UNPACK_U32(buf, var->lanes);
  16987 	BCM_UNPACK_U32(buf, var->encap);
  16988 	BCM_UNPACK_U32(buf, var->fec_type);
  16989 	BCM_UNPACK_U32(buf, var->phy_lane_config);
  16990 	BCM_UNPACK_U32(buf, var->link_training);
  16991 	BCM_UNPACK_U32(buf, var->roe_compression);
  16992 	return buf;
  16993 }
  16994 
  16995 uint8 *
  16996 _bcm_pack_port_rlm_config(uint8 *buf, bcm_port_rlm_config_t *var)
  16997 {
  16998 	BCM_PACK_U32(buf, var->is_initiator);
  16999 	BCM_PACK_U32(buf, var->active_lane_bit_map);
  17000 	return buf;
  17001 }
  17002 
  17003 uint8 *
  17004 _bcm_unpack_port_rlm_config(uint8 *buf, bcm_port_rlm_config_t *var)
  17005 {
  17006 	BCM_UNPACK_U32(buf, var->is_initiator);
  17007 	BCM_UNPACK_U32(buf, var->active_lane_bit_map);
  17008 	return buf;
  17009 }
  17010 
  17011 uint8 *
  17012 _bcm_pack_port_speed_ability(uint8 *buf, bcm_port_speed_ability_t *var)
  17013 {
  17014 	BCM_PACK_U32(buf, var->speed);
  17015 	BCM_PACK_U32(buf, var->resolved_num_lanes);
  17016 	BCM_PACK_U32(buf, var->fec_type);
  17017 	BCM_PACK_U32(buf, var->medium);
  17018 	BCM_PACK_U32(buf, var->pause);
  17019 	BCM_PACK_U32(buf, var->channel);
  17020 	BCM_PACK_U32(buf, var->an_mode);
  17021 	return buf;
  17022 }
  17023 
  17024 uint8 *
  17025 _bcm_unpack_port_speed_ability(uint8 *buf, bcm_port_speed_ability_t *var)
  17026 {
  17027 	BCM_UNPACK_U32(buf, var->speed);
  17028 	BCM_UNPACK_U32(buf, var->resolved_num_lanes);
  17029 	BCM_UNPACK_U32(buf, var->fec_type);
  17030 	BCM_UNPACK_U32(buf, var->medium);
  17031 	BCM_UNPACK_U32(buf, var->pause);
  17032 	BCM_UNPACK_U32(buf, var->channel);
  17033 	BCM_UNPACK_U32(buf, var->an_mode);
  17034 	return buf;
  17035 }
  17036 
  17037 uint8 *
  17038 _bcm_pack_port_timestamp_adjust(uint8 *buf, bcm_port_timestamp_adjust_t *var)
  17039 {
  17040 	BCM_PACK_U32(buf, var->osts_adjust);
  17041 	BCM_PACK_U32(buf, var->tsts_adjust);
  17042 	return buf;
  17043 }
  17044 
  17045 uint8 *
  17046 _bcm_unpack_port_timestamp_adjust(uint8 *buf, bcm_port_timestamp_adjust_t *var)
  17047 {
  17048 	BCM_UNPACK_U32(buf, var->osts_adjust);
  17049 	BCM_UNPACK_U32(buf, var->tsts_adjust);
  17050 	return buf;
  17051 }
  17052 
  17053 uint8 *
  17054 _bcm_pack_port_timesync_config(uint8 *buf, bcm_port_timesync_config_t *var)
  17055 {
  17056 	BCM_PACK_U32(buf, var->flags);
  17057 	BCM_PACK_U32(buf, var->pkt_drop);
  17058 	BCM_PACK_U32(buf, var->pkt_tocpu);
  17059 	BCM_PACK_U32(buf, var->mpls_min_label);
  17060 	BCM_PACK_U32(buf, var->mpls_max_label);
  17061 	{
  17062 		int _i;
  17063 
  17064 		for (_i = 0; _i < 6; _i++) {
  17065 			BCM_PACK_U8(buf, var->src_mac_addr[_i]);
  17066 		}
  17067 	}
  17068 	BCM_PACK_U32(buf, var->user_trap_id);
  17069 	return buf;
  17070 }
  17071 
  17072 uint8 *
  17073 _bcm_unpack_port_timesync_config(uint8 *buf, bcm_port_timesync_config_t *var)
  17074 {
  17075 	BCM_UNPACK_U32(buf, var->flags);
  17076 	BCM_UNPACK_U32(buf, var->pkt_drop);
  17077 	BCM_UNPACK_U32(buf, var->pkt_tocpu);
  17078 	BCM_UNPACK_U32(buf, var->mpls_min_label);
  17079 	BCM_UNPACK_U32(buf, var->mpls_max_label);
  17080 	{
  17081 		int _i;
  17082 
  17083 		for (_i = 0; _i < 6; _i++) {
  17084 			BCM_UNPACK_U8(buf, var->src_mac_addr[_i]);
  17085 		}
  17086 	}
  17087 	BCM_UNPACK_U32(buf, var->user_trap_id);
  17088 	return buf;
  17089 }
  17090 
  17091 uint8 *
  17092 _bcm_pack_port_timesync_tx_info(uint8 *buf, bcm_port_timesync_tx_info_t *var)
  17093 {
  17094 	{
  17095 		uint32 _u32;
  17096 
  17097 		_u32 = COMPILER_64_HI(var->timestamp);
  17098 		BCM_PACK_U32(buf, _u32);
  17099 		_u32 = COMPILER_64_LO(var->timestamp);
  17100 		BCM_PACK_U32(buf, _u32);
  17101 	}
  17102 	BCM_PACK_U32(buf, var->sequence_id);
  17103 	BCM_PACK_U32(buf, var->sub_ns);
  17104 	return buf;
  17105 }
  17106 
  17107 uint8 *
  17108 _bcm_unpack_port_timesync_tx_info(uint8 *buf, bcm_port_timesync_tx_info_t *var)
  17109 {
  17110 	{
  17111 		uint32 _u32h, _u32l;
  17112 
  17113 		BCM_UNPACK_U32(buf, _u32h);
  17114 		BCM_UNPACK_U32(buf, _u32l);
  17115 		COMPILER_64_SET(var->timestamp, _u32h, _u32l);
  17116 	}
  17117 	BCM_UNPACK_U32(buf, var->sequence_id);
  17118 	BCM_UNPACK_U32(buf, var->sub_ns);
  17119 	return buf;
  17120 }
  17121 
  17122 uint8 *
  17123 _bcm_pack_port_tpid_class(uint8 *buf, bcm_port_tpid_class_t *var)
  17124 {
  17125 	BCM_PACK_U32(buf, var->flags);
  17126 	BCM_PACK_U32(buf, var->port);
  17127 	BCM_PACK_U32(buf, var->tpid1);
  17128 	BCM_PACK_U32(buf, var->tpid2);
  17129 	BCM_PACK_U16(buf, var->tag_format_class_id);
  17130 	BCM_PACK_U32(buf, var->vlan_translation_action_id);
  17131 	BCM_PACK_U32(buf, var->vlan_translation_qos_map_id);
  17132 	BCM_PACK_U32(buf, var->tpid_class_id);
  17133 	return buf;
  17134 }
  17135 
  17136 uint8 *
  17137 _bcm_unpack_port_tpid_class(uint8 *buf, bcm_port_tpid_class_t *var)
  17138 {
  17139 	BCM_UNPACK_U32(buf, var->flags);
  17140 	BCM_UNPACK_U32(buf, var->port);
  17141 	BCM_UNPACK_U32(buf, var->tpid1);
  17142 	BCM_UNPACK_U32(buf, var->tpid2);
  17143 	BCM_UNPACK_U16(buf, var->tag_format_class_id);
  17144 	BCM_UNPACK_U32(buf, var->vlan_translation_action_id);
  17145 	BCM_UNPACK_U32(buf, var->vlan_translation_qos_map_id);
  17146 	BCM_UNPACK_U32(buf, var->tpid_class_id);
  17147 	return buf;
  17148 }
  17149 
  17150 uint8 *
  17151 _bcm_pack_priority_mapping(uint8 *buf, bcm_priority_mapping_t *var)
  17152 {
  17153 	BCM_PACK_U32(buf, var->internal_pri);
  17154 	BCM_PACK_U32(buf, var->color);
  17155 	BCM_PACK_U32(buf, var->remark_internal_pri);
  17156 	BCM_PACK_U32(buf, var->remark_color);
  17157 	BCM_PACK_U32(buf, var->policer_offset);
  17158 	return buf;
  17159 }
  17160 
  17161 uint8 *
  17162 _bcm_unpack_priority_mapping(uint8 *buf, bcm_priority_mapping_t *var)
  17163 {
  17164 	BCM_UNPACK_U32(buf, var->internal_pri);
  17165 	BCM_UNPACK_U32(buf, var->color);
  17166 	BCM_UNPACK_U32(buf, var->remark_internal_pri);
  17167 	BCM_UNPACK_U32(buf, var->remark_color);
  17168 	BCM_UNPACK_U32(buf, var->policer_offset);
  17169 	return buf;
  17170 }
  17171 
  17172 #ifdef	INCLUDE_L3
  17173 
  17174 uint8 *
  17175 _bcm_pack_proxy_egress(uint8 *buf, bcm_proxy_egress_t *var)
  17176 {
  17177 	BCM_PACK_U32(buf, var->flags);
  17178 	BCM_PACK_U32(buf, var->gport);
  17179 	return buf;
  17180 }
  17181 
  17182 uint8 *
  17183 _bcm_unpack_proxy_egress(uint8 *buf, bcm_proxy_egress_t *var)
  17184 {
  17185 	BCM_UNPACK_U32(buf, var->flags);
  17186 	BCM_UNPACK_U32(buf, var->gport);
  17187 	return buf;
  17188 }
  17189 
  17190 uint8 *
  17191 _bcm_pack_proxy_server(uint8 *buf, bcm_proxy_server_t *var)
  17192 {
  17193 	BCM_PACK_U32(buf, var->flags);
  17194 	BCM_PACK_U32(buf, var->server_gport);
  17195 	BCM_PACK_U32(buf, var->server_gport_mask);
  17196 	BCM_PACK_U32(buf, var->mode);
  17197 	BCM_PACK_U32(buf, var->flow_type);
  17198 	return buf;
  17199 }
  17200 
  17201 uint8 *
  17202 _bcm_unpack_proxy_server(uint8 *buf, bcm_proxy_server_t *var)
  17203 {
  17204 	BCM_UNPACK_U32(buf, var->flags);
  17205 	BCM_UNPACK_U32(buf, var->server_gport);
  17206 	BCM_UNPACK_U32(buf, var->server_gport_mask);
  17207 	BCM_UNPACK_U32(buf, var->mode);
  17208 	BCM_UNPACK_U32(buf, var->flow_type);
  17209 	return buf;
  17210 }
  17211 
  17212 #endif	/* INCLUDE_L3 */
  17213 #ifdef	INCLUDE_PSTATS
  17214 
  17215 uint8 *
  17216 _bcm_pack_pstats_data(uint8 *buf, bcm_pstats_data_t *var)
  17217 {
  17218 	BCM_PACK_U32(buf, var->array_count);
  17219 	{
  17220 		int _i;
  17221 
  17222 		for (_i = 0; _i < 8; _i++) {
  17223 			BCM_PACK_U32(buf, var->use_counts_array[_i]);
  17224 		}
  17225 	}
  17226 	return buf;
  17227 }
  17228 
  17229 uint8 *
  17230 _bcm_unpack_pstats_data(uint8 *buf, bcm_pstats_data_t *var)
  17231 {
  17232 	BCM_UNPACK_U32(buf, var->array_count);
  17233 	{
  17234 		int _i;
  17235 
  17236 		for (_i = 0; _i < 8; _i++) {
  17237 			BCM_UNPACK_U32(buf, var->use_counts_array[_i]);
  17238 		}
  17239 	}
  17240 	return buf;
  17241 }
  17242 
  17243 uint8 *
  17244 _bcm_pack_pstats_session_element(uint8 *buf, bcm_pstats_session_element_t *var)
  17245 {
  17246 	BCM_PACK_U32(buf, var->type);
  17247 	BCM_PACK_U32(buf, var->gport);
  17248 	BCM_PACK_U32(buf, var->cosq);
  17249 	BCM_PACK_U32(buf, var->pool);
  17250 	return buf;
  17251 }
  17252 
  17253 uint8 *
  17254 _bcm_unpack_pstats_session_element(uint8 *buf, bcm_pstats_session_element_t *var)
  17255 {
  17256 	BCM_UNPACK_U32(buf, var->type);
  17257 	BCM_UNPACK_U32(buf, var->gport);
  17258 	BCM_UNPACK_U32(buf, var->cosq);
  17259 	BCM_UNPACK_U32(buf, var->pool);
  17260 	return buf;
  17261 }
  17262 
  17263 uint8 *
  17264 _bcm_pack_pstats_timestamp(uint8 *buf, bcm_pstats_timestamp_t *var)
  17265 {
  17266 	{
  17267 		uint32 _u32;
  17268 
  17269 		_u32 = COMPILER_64_HI(var->seconds);
  17270 		BCM_PACK_U32(buf, _u32);
  17271 		_u32 = COMPILER_64_LO(var->seconds);
  17272 		BCM_PACK_U32(buf, _u32);
  17273 	}
  17274 	BCM_PACK_U32(buf, var->nanoseconds);
  17275 	return buf;
  17276 }
  17277 
  17278 uint8 *
  17279 _bcm_unpack_pstats_timestamp(uint8 *buf, bcm_pstats_timestamp_t *var)
  17280 {
  17281 	{
  17282 		uint32 _u32h, _u32l;
  17283 
  17284 		BCM_UNPACK_U32(buf, _u32h);
  17285 		BCM_UNPACK_U32(buf, _u32l);
  17286 		COMPILER_64_SET(var->seconds, _u32h, _u32l);
  17287 	}
  17288 	BCM_UNPACK_U32(buf, var->nanoseconds);
  17289 	return buf;
  17290 }
  17291 
  17292 #endif	/* INCLUDE_PSTATS */
  17293 
  17294 uint8 *
  17295 _bcm_pack_qos_map(uint8 *buf, bcm_qos_map_t *var)
  17296 {
  17297 	BCM_PACK_U8(buf, var->pkt_pri);
  17298 	BCM_PACK_U8(buf, var->pkt_cfi);
  17299 	BCM_PACK_U32(buf, var->dscp);
  17300 	BCM_PACK_U32(buf, var->exp);
  17301 	BCM_PACK_U32(buf, var->int_pri);
  17302 	BCM_PACK_U32(buf, var->color);
  17303 	BCM_PACK_U32(buf, var->remark_int_pri);
  17304 	BCM_PACK_U32(buf, var->remark_color);
  17305 	BCM_PACK_U32(buf, var->policer_offset);
  17306 	BCM_PACK_U32(buf, var->queue_offset);
  17307 	BCM_PACK_U32(buf, var->port_offset);
  17308 	BCM_PACK_U8(buf, var->etag_pcp);
  17309 	BCM_PACK_U8(buf, var->etag_de);
  17310 	BCM_PACK_U32(buf, var->counter_offset);
  17311 	BCM_PACK_U32(buf, var->inherited_dscp_exp);
  17312 	BCM_PACK_U32(buf, var->opcode);
  17313 	return buf;
  17314 }
  17315 
  17316 uint8 *
  17317 _bcm_unpack_qos_map(uint8 *buf, bcm_qos_map_t *var)
  17318 {
  17319 	BCM_UNPACK_U8(buf, var->pkt_pri);
  17320 	BCM_UNPACK_U8(buf, var->pkt_cfi);
  17321 	BCM_UNPACK_U32(buf, var->dscp);
  17322 	BCM_UNPACK_U32(buf, var->exp);
  17323 	BCM_UNPACK_U32(buf, var->int_pri);
  17324 	BCM_UNPACK_U32(buf, var->color);
  17325 	BCM_UNPACK_U32(buf, var->remark_int_pri);
  17326 	BCM_UNPACK_U32(buf, var->remark_color);
  17327 	BCM_UNPACK_U32(buf, var->policer_offset);
  17328 	BCM_UNPACK_U32(buf, var->queue_offset);
  17329 	BCM_UNPACK_U32(buf, var->port_offset);
  17330 	BCM_UNPACK_U8(buf, var->etag_pcp);
  17331 	BCM_UNPACK_U8(buf, var->etag_de);
  17332 	BCM_UNPACK_U32(buf, var->counter_offset);
  17333 	BCM_UNPACK_U32(buf, var->inherited_dscp_exp);
  17334 	BCM_UNPACK_U32(buf, var->opcode);
  17335 	return buf;
  17336 }
  17337 
  17338 uint8 *
  17339 _bcm_pack_range_config(uint8 *buf, bcm_range_config_t *var)
  17340 {
  17341 	BCM_PACK_U32(buf, var->rid);
  17342 	BCM_PACK_U32(buf, var->rtype);
  17343 	BCM_PACK_U32(buf, var->min);
  17344 	BCM_PACK_U32(buf, var->max);
  17345 	BCM_PACK_U8(buf, var->offset);
  17346 	BCM_PACK_U8(buf, var->width);
  17347 	BCM_PACK_U32(buf, var->udf_id);
  17348 	buf = _bcm_pack_pbmp(buf, &(*var).ports);
  17349 	return buf;
  17350 }
  17351 
  17352 uint8 *
  17353 _bcm_unpack_range_config(uint8 *buf, bcm_range_config_t *var)
  17354 {
  17355 	BCM_UNPACK_U32(buf, var->rid);
  17356 	BCM_UNPACK_U32(buf, var->rtype);
  17357 	BCM_UNPACK_U32(buf, var->min);
  17358 	BCM_UNPACK_U32(buf, var->max);
  17359 	BCM_UNPACK_U8(buf, var->offset);
  17360 	BCM_UNPACK_U8(buf, var->width);
  17361 	BCM_UNPACK_U32(buf, var->udf_id);
  17362 	buf = _bcm_unpack_pbmp(buf, &(*var).ports);
  17363 	return buf;
  17364 }
  17365 
  17366 uint8 *
  17367 _bcm_pack_range_group_config(uint8 *buf, bcm_range_group_config_t *var)
  17368 {
  17369 	BCM_PACK_U16(buf, var->flags);
  17370 	buf = _bcm_pack_pbmp(buf, &(*var).ports);
  17371 	{
  17372 		int _i;
  17373 
  17374 		for (_i = 0; _i < 16; _i++) {
  17375 			BCM_PACK_U32(buf, var->range_bmp.w[_i]);
  17376 		}
  17377 	}
  17378 	BCM_PACK_U32(buf, var->range_group_id);
  17379 	return buf;
  17380 }
  17381 
  17382 uint8 *
  17383 _bcm_unpack_range_group_config(uint8 *buf, bcm_range_group_config_t *var)
  17384 {
  17385 	BCM_UNPACK_U16(buf, var->flags);
  17386 	buf = _bcm_unpack_pbmp(buf, &(*var).ports);
  17387 	{
  17388 		int _i;
  17389 
  17390 		for (_i = 0; _i < 16; _i++) {
  17391 			BCM_UNPACK_U32(buf, var->range_bmp.w[_i]);
  17392 		}
  17393 	}
  17394 	BCM_UNPACK_U32(buf, var->range_group_id);
  17395 	return buf;
  17396 }
  17397 
  17398 uint8 *
  17399 _bcm_pack_rate_limit(uint8 *buf, bcm_rate_limit_t *var)
  17400 {
  17401 	BCM_PACK_U32(buf, var->br_dlfbc_rate);
  17402 	BCM_PACK_U32(buf, var->br_mcast_rate);
  17403 	BCM_PACK_U32(buf, var->br_bcast_rate);
  17404 	BCM_PACK_U32(buf, var->flags);
  17405 	return buf;
  17406 }
  17407 
  17408 uint8 *
  17409 _bcm_unpack_rate_limit(uint8 *buf, bcm_rate_limit_t *var)
  17410 {
  17411 	BCM_UNPACK_U32(buf, var->br_dlfbc_rate);
  17412 	BCM_UNPACK_U32(buf, var->br_mcast_rate);
  17413 	BCM_UNPACK_U32(buf, var->br_bcast_rate);
  17414 	BCM_UNPACK_U32(buf, var->flags);
  17415 	return buf;
  17416 }
  17417 
  17418 uint8 *
  17419 _bcm_pack_rate_packet(uint8 *buf, bcm_rate_packet_t *var)
  17420 {
  17421 	BCM_PACK_U32(buf, var->flags);
  17422 	BCM_PACK_U32(buf, var->pps);
  17423 	BCM_PACK_U32(buf, var->kbits_burst);
  17424 	return buf;
  17425 }
  17426 
  17427 uint8 *
  17428 _bcm_unpack_rate_packet(uint8 *buf, bcm_rate_packet_t *var)
  17429 {
  17430 	BCM_UNPACK_U32(buf, var->flags);
  17431 	BCM_UNPACK_U32(buf, var->pps);
  17432 	BCM_UNPACK_U32(buf, var->kbits_burst);
  17433 	return buf;
  17434 }
  17435 
  17436 uint8 *
  17437 _bcm_pack_rsvd4_control_flow_config(uint8 *buf, bcm_rsvd4_control_flow_config_t *var)
  17438 {
  17439 	BCM_PACK_U32(buf, var->match_mask);
  17440 	BCM_PACK_U32(buf, var->match_data);
  17441 	BCM_PACK_U8(buf, var->queue_num);
  17442 	BCM_PACK_U32(buf, var->type);
  17443 	BCM_PACK_U32(buf, var->sync_en);
  17444 	BCM_PACK_U8(buf, var->sync_profile);
  17445 	BCM_PACK_U8(buf, var->priority);
  17446 	BCM_PACK_U32(buf, var->queue_size);
  17447 	return buf;
  17448 }
  17449 
  17450 uint8 *
  17451 _bcm_unpack_rsvd4_control_flow_config(uint8 *buf, bcm_rsvd4_control_flow_config_t *var)
  17452 {
  17453 	BCM_UNPACK_U32(buf, var->match_mask);
  17454 	BCM_UNPACK_U32(buf, var->match_data);
  17455 	BCM_UNPACK_U8(buf, var->queue_num);
  17456 	BCM_UNPACK_U32(buf, var->type);
  17457 	BCM_UNPACK_U32(buf, var->sync_en);
  17458 	BCM_UNPACK_U8(buf, var->sync_profile);
  17459 	BCM_UNPACK_U8(buf, var->priority);
  17460 	BCM_UNPACK_U32(buf, var->queue_size);
  17461 	return buf;
  17462 }
  17463 
  17464 uint8 *
  17465 _bcm_pack_rsvd4_dbm_entry(uint8 *buf, bcm_rsvd4_dbm_entry_t *var)
  17466 {
  17467 	BCM_PACK_U8(buf, var->bm1_multiple);
  17468 	BCM_PACK_U32(buf, var->bm1[0]);
  17469 	BCM_PACK_U32(buf, var->bm1[1]);
  17470 	BCM_PACK_U32(buf, var->bm1[2]);
  17471 	BCM_PACK_U8(buf, var->bm1_size);
  17472 	BCM_PACK_U32(buf, var->bm2[0]);
  17473 	BCM_PACK_U32(buf, var->bm2[1]);
  17474 	BCM_PACK_U8(buf, var->bm2_size);
  17475 	BCM_PACK_U8(buf, var->num_slots);
  17476 	BCM_PACK_U8(buf, var->pos_index);
  17477 	BCM_PACK_U8(buf, var->pos_entries);
  17478 	return buf;
  17479 }
  17480 
  17481 uint8 *
  17482 _bcm_unpack_rsvd4_dbm_entry(uint8 *buf, bcm_rsvd4_dbm_entry_t *var)
  17483 {
  17484 	BCM_UNPACK_U8(buf, var->bm1_multiple);
  17485 	BCM_UNPACK_U32(buf, var->bm1[0]);
  17486 	BCM_UNPACK_U32(buf, var->bm1[1]);
  17487 	BCM_UNPACK_U32(buf, var->bm1[2]);
  17488 	BCM_UNPACK_U8(buf, var->bm1_size);
  17489 	BCM_UNPACK_U32(buf, var->bm2[0]);
  17490 	BCM_UNPACK_U32(buf, var->bm2[1]);
  17491 	BCM_UNPACK_U8(buf, var->bm2_size);
  17492 	BCM_UNPACK_U8(buf, var->num_slots);
  17493 	BCM_UNPACK_U8(buf, var->pos_index);
  17494 	BCM_UNPACK_U8(buf, var->pos_entries);
  17495 	return buf;
  17496 }
  17497 
  17498 uint8 *
  17499 _bcm_pack_rsvd4_fast_eth_config_info(uint8 *buf, bcm_rsvd4_fast_eth_config_info_t *var)
  17500 {
  17501 	BCM_PACK_U32(buf, var->queue_num);
  17502 	BCM_PACK_U32(buf, var->no_fcs_err_check);
  17503 	BCM_PACK_U32(buf, var->min_packet_size);
  17504 	BCM_PACK_U32(buf, var->max_packet_size);
  17505 	BCM_PACK_U32(buf, var->min_packet_drop);
  17506 	BCM_PACK_U32(buf, var->max_packet_drop);
  17507 	BCM_PACK_U32(buf, var->strip_crc);
  17508 	return buf;
  17509 }
  17510 
  17511 uint8 *
  17512 _bcm_unpack_rsvd4_fast_eth_config_info(uint8 *buf, bcm_rsvd4_fast_eth_config_info_t *var)
  17513 {
  17514 	BCM_UNPACK_U32(buf, var->queue_num);
  17515 	BCM_UNPACK_U32(buf, var->no_fcs_err_check);
  17516 	BCM_UNPACK_U32(buf, var->min_packet_size);
  17517 	BCM_UNPACK_U32(buf, var->max_packet_size);
  17518 	BCM_UNPACK_U32(buf, var->min_packet_drop);
  17519 	BCM_UNPACK_U32(buf, var->max_packet_drop);
  17520 	BCM_UNPACK_U32(buf, var->strip_crc);
  17521 	return buf;
  17522 }
  17523 
  17524 uint8 *
  17525 _bcm_pack_rsvd4_rx_flow_info(uint8 *buf, bcm_rsvd4_rx_flow_info_t *var)
  17526 {
  17527 	BCM_PACK_U32(buf, var->mask);
  17528 	BCM_PACK_U32(buf, var->match_data);
  17529 	BCM_PACK_U16(buf, var->payload_size);
  17530 	BCM_PACK_U16(buf, var->last_payload_index);
  17531 	BCM_PACK_U32(buf, var->msg_ts_mode);
  17532 	BCM_PACK_U32(buf, var->sync_mode);
  17533 	BCM_PACK_U16(buf, var->stuffing_count);
  17534 	BCM_PACK_U32(buf, var->message_number_offset);
  17535 	BCM_PACK_U16(buf, var->master_frame_offset);
  17536 	BCM_PACK_U16(buf, var->msg_ts_count);
  17537 	BCM_PACK_U16(buf, var->container_blk_count);
  17538 	BCM_PACK_U8(buf, var->priority);
  17539 	BCM_PACK_U32(buf, var->queue_size);
  17540 	BCM_PACK_U8(buf, var->gsm_pad_size);
  17541 	BCM_PACK_U8(buf, var->gsm_extra_pad_size);
  17542 	BCM_PACK_U8(buf, var->gsm_pad_en);
  17543 	BCM_PACK_U8(buf, var->gsm_ctrl_loc);
  17544 	BCM_PACK_U32(buf, var->axc_id);
  17545 	BCM_PACK_U32(buf, var->last_payload_size);
  17546 	BCM_PACK_U8(buf, var->gsm_tsn_bitmap);
  17547 	return buf;
  17548 }
  17549 
  17550 uint8 *
  17551 _bcm_unpack_rsvd4_rx_flow_info(uint8 *buf, bcm_rsvd4_rx_flow_info_t *var)
  17552 {
  17553 	BCM_UNPACK_U32(buf, var->mask);
  17554 	BCM_UNPACK_U32(buf, var->match_data);
  17555 	BCM_UNPACK_U16(buf, var->payload_size);
  17556 	BCM_UNPACK_U16(buf, var->last_payload_index);
  17557 	BCM_UNPACK_U32(buf, var->msg_ts_mode);
  17558 	BCM_UNPACK_U32(buf, var->sync_mode);
  17559 	BCM_UNPACK_U16(buf, var->stuffing_count);
  17560 	BCM_UNPACK_U32(buf, var->message_number_offset);
  17561 	BCM_UNPACK_U16(buf, var->master_frame_offset);
  17562 	BCM_UNPACK_U16(buf, var->msg_ts_count);
  17563 	BCM_UNPACK_U16(buf, var->container_blk_count);
  17564 	BCM_UNPACK_U8(buf, var->priority);
  17565 	BCM_UNPACK_U32(buf, var->queue_size);
  17566 	BCM_UNPACK_U8(buf, var->gsm_pad_size);
  17567 	BCM_UNPACK_U8(buf, var->gsm_extra_pad_size);
  17568 	BCM_UNPACK_U8(buf, var->gsm_pad_en);
  17569 	BCM_UNPACK_U8(buf, var->gsm_ctrl_loc);
  17570 	BCM_UNPACK_U32(buf, var->axc_id);
  17571 	BCM_UNPACK_U32(buf, var->last_payload_size);
  17572 	BCM_UNPACK_U8(buf, var->gsm_tsn_bitmap);
  17573 	return buf;
  17574 }
  17575 
  17576 uint8 *
  17577 _bcm_pack_rsvd4_secondary_dbm_entry(uint8 *buf, bcm_rsvd4_secondary_dbm_entry_t *var)
  17578 {
  17579 	BCM_PACK_U8(buf, var->bm1_multiple);
  17580 	BCM_PACK_U8(buf, var->bm1);
  17581 	BCM_PACK_U8(buf, var->bm1_size);
  17582 	BCM_PACK_U8(buf, var->bm2);
  17583 	BCM_PACK_U8(buf, var->bm2_size);
  17584 	BCM_PACK_U8(buf, var->num_slots);
  17585 	return buf;
  17586 }
  17587 
  17588 uint8 *
  17589 _bcm_unpack_rsvd4_secondary_dbm_entry(uint8 *buf, bcm_rsvd4_secondary_dbm_entry_t *var)
  17590 {
  17591 	BCM_UNPACK_U8(buf, var->bm1_multiple);
  17592 	BCM_UNPACK_U8(buf, var->bm1);
  17593 	BCM_UNPACK_U8(buf, var->bm1_size);
  17594 	BCM_UNPACK_U8(buf, var->bm2);
  17595 	BCM_UNPACK_U8(buf, var->bm2_size);
  17596 	BCM_UNPACK_U8(buf, var->num_slots);
  17597 	return buf;
  17598 }
  17599 
  17600 uint8 *
  17601 _bcm_pack_rsvd4_sync_profile_entry(uint8 *buf, bcm_rsvd4_sync_profile_entry_t *var)
  17602 {
  17603 	BCM_PACK_U32(buf, var->master_frame_offset);
  17604 	BCM_PACK_U32(buf, var->message_offset);
  17605 	BCM_PACK_U32(buf, var->count_cycle);
  17606 	return buf;
  17607 }
  17608 
  17609 uint8 *
  17610 _bcm_unpack_rsvd4_sync_profile_entry(uint8 *buf, bcm_rsvd4_sync_profile_entry_t *var)
  17611 {
  17612 	BCM_UNPACK_U32(buf, var->master_frame_offset);
  17613 	BCM_UNPACK_U32(buf, var->message_offset);
  17614 	BCM_UNPACK_U32(buf, var->count_cycle);
  17615 	return buf;
  17616 }
  17617 
  17618 uint8 *
  17619 _bcm_pack_rsvd4_tx_control_flow_config(uint8 *buf, bcm_rsvd4_tx_control_flow_config_t *var)
  17620 {
  17621 	BCM_PACK_U8(buf, var->queue_num);
  17622 	BCM_PACK_U8(buf, var->crc_mode);
  17623 	BCM_PACK_U32(buf, var->cycle_size);
  17624 	BCM_PACK_U32(buf, var->queue_size);
  17625 	BCM_PACK_U32(buf, var->type);
  17626 	return buf;
  17627 }
  17628 
  17629 uint8 *
  17630 _bcm_unpack_rsvd4_tx_control_flow_config(uint8 *buf, bcm_rsvd4_tx_control_flow_config_t *var)
  17631 {
  17632 	BCM_UNPACK_U8(buf, var->queue_num);
  17633 	BCM_UNPACK_U8(buf, var->crc_mode);
  17634 	BCM_UNPACK_U32(buf, var->cycle_size);
  17635 	BCM_UNPACK_U32(buf, var->queue_size);
  17636 	BCM_UNPACK_U32(buf, var->type);
  17637 	return buf;
  17638 }
  17639 
  17640 uint8 *
  17641 _bcm_pack_rsvd4_tx_control_flow_group_config(uint8 *buf, bcm_rsvd4_tx_control_flow_group_config_t *var)
  17642 {
  17643 	BCM_PACK_U8(buf, var->queue_num);
  17644 	BCM_PACK_U32(buf, var->type);
  17645 	BCM_PACK_U32(buf, var->priority);
  17646 	return buf;
  17647 }
  17648 
  17649 uint8 *
  17650 _bcm_unpack_rsvd4_tx_control_flow_group_config(uint8 *buf, bcm_rsvd4_tx_control_flow_group_config_t *var)
  17651 {
  17652 	BCM_UNPACK_U8(buf, var->queue_num);
  17653 	BCM_UNPACK_U32(buf, var->type);
  17654 	BCM_UNPACK_U32(buf, var->priority);
  17655 	return buf;
  17656 }
  17657 
  17658 uint8 *
  17659 _bcm_pack_rsvd4_tx_flow_info(uint8 *buf, bcm_rsvd4_tx_flow_info_t *var)
  17660 {
  17661 	BCM_PACK_U32(buf, var->axc_id);
  17662 	BCM_PACK_U16(buf, var->stuffing_count);
  17663 	BCM_PACK_U32(buf, var->message_number_offset);
  17664 	BCM_PACK_U16(buf, var->master_frame_offset);
  17665 	BCM_PACK_U32(buf, var->container_blk_count);
  17666 	BCM_PACK_U16(buf, var->message_addr);
  17667 	BCM_PACK_U32(buf, var->msg_ts_offset);
  17668 	BCM_PACK_U32(buf, var->msg_ts_mode);
  17669 	BCM_PACK_U8(buf, var->message_type);
  17670 	BCM_PACK_U32(buf, var->sync_mode);
  17671 	BCM_PACK_U16(buf, var->msg_ts_count);
  17672 	BCM_PACK_U8(buf, var->index_to_secondary_dbm);
  17673 	BCM_PACK_U8(buf, var->secondary_dbm_enable);
  17674 	BCM_PACK_U8(buf, var->num_active_slot);
  17675 	BCM_PACK_U16(buf, var->payload_size);
  17676 	BCM_PACK_U16(buf, var->last_payload_size);
  17677 	BCM_PACK_U8(buf, var->last_index);
  17678 	BCM_PACK_U8(buf, var->pad_enable);
  17679 	BCM_PACK_U8(buf, var->pad_size);
  17680 	BCM_PACK_U8(buf, var->extra_pad_size);
  17681 	BCM_PACK_U8(buf, var->cycle_size);
  17682 	BCM_PACK_U32(buf, var->buffer_size);
  17683 	BCM_PACK_U8(buf, var->gsm_ctrl_loc);
  17684 	return buf;
  17685 }
  17686 
  17687 uint8 *
  17688 _bcm_unpack_rsvd4_tx_flow_info(uint8 *buf, bcm_rsvd4_tx_flow_info_t *var)
  17689 {
  17690 	BCM_UNPACK_U32(buf, var->axc_id);
  17691 	BCM_UNPACK_U16(buf, var->stuffing_count);
  17692 	BCM_UNPACK_U32(buf, var->message_number_offset);
  17693 	BCM_UNPACK_U16(buf, var->master_frame_offset);
  17694 	BCM_UNPACK_U32(buf, var->container_blk_count);
  17695 	BCM_UNPACK_U16(buf, var->message_addr);
  17696 	BCM_UNPACK_U32(buf, var->msg_ts_offset);
  17697 	BCM_UNPACK_U32(buf, var->msg_ts_mode);
  17698 	BCM_UNPACK_U8(buf, var->message_type);
  17699 	BCM_UNPACK_U32(buf, var->sync_mode);
  17700 	BCM_UNPACK_U16(buf, var->msg_ts_count);
  17701 	BCM_UNPACK_U8(buf, var->index_to_secondary_dbm);
  17702 	BCM_UNPACK_U8(buf, var->secondary_dbm_enable);
  17703 	BCM_UNPACK_U8(buf, var->num_active_slot);
  17704 	BCM_UNPACK_U16(buf, var->payload_size);
  17705 	BCM_UNPACK_U16(buf, var->last_payload_size);
  17706 	BCM_UNPACK_U8(buf, var->last_index);
  17707 	BCM_UNPACK_U8(buf, var->pad_enable);
  17708 	BCM_UNPACK_U8(buf, var->pad_size);
  17709 	BCM_UNPACK_U8(buf, var->extra_pad_size);
  17710 	BCM_UNPACK_U8(buf, var->cycle_size);
  17711 	BCM_UNPACK_U32(buf, var->buffer_size);
  17712 	BCM_UNPACK_U8(buf, var->gsm_ctrl_loc);
  17713 	return buf;
  17714 }
  17715 
  17716 uint8 *
  17717 _bcm_pack_rsvd4_tx_frame_config(uint8 *buf, bcm_rsvd4_tx_frame_config_t *var)
  17718 {
  17719 	BCM_PACK_U8(buf, var->los_enable);
  17720 	BCM_PACK_U8(buf, var->rsvd4_scrambler_seed);
  17721 	BCM_PACK_U32(buf, var->speed_multiple);
  17722 	return buf;
  17723 }
  17724 
  17725 uint8 *
  17726 _bcm_unpack_rsvd4_tx_frame_config(uint8 *buf, bcm_rsvd4_tx_frame_config_t *var)
  17727 {
  17728 	BCM_UNPACK_U8(buf, var->los_enable);
  17729 	BCM_UNPACK_U8(buf, var->rsvd4_scrambler_seed);
  17730 	BCM_UNPACK_U32(buf, var->speed_multiple);
  17731 	return buf;
  17732 }
  17733 
  17734 uint8 *
  17735 _bcm_pack_rx_CopyToCpu_config(uint8 *buf, bcm_rx_CopyToCpu_config_t *var)
  17736 {
  17737 	BCM_PACK_U32(buf, var->flags);
  17738 	BCM_PACK_U32(buf, var->index);
  17739 	BCM_PACK_U32(buf, var->drop_reason_vector.rbits[0]);
  17740 	BCM_PACK_U32(buf, var->strength);
  17741 	BCM_PACK_U32(buf, var->buffer_priority);
  17742 	BCM_PACK_U32(buf, var->cpu_cosq);
  17743 	return buf;
  17744 }
  17745 
  17746 uint8 *
  17747 _bcm_unpack_rx_CopyToCpu_config(uint8 *buf, bcm_rx_CopyToCpu_config_t *var)
  17748 {
  17749 	BCM_UNPACK_U32(buf, var->flags);
  17750 	BCM_UNPACK_U32(buf, var->index);
  17751 	BCM_UNPACK_U32(buf, var->drop_reason_vector.rbits[0]);
  17752 	BCM_UNPACK_U32(buf, var->strength);
  17753 	BCM_UNPACK_U32(buf, var->buffer_priority);
  17754 	BCM_UNPACK_U32(buf, var->cpu_cosq);
  17755 	return buf;
  17756 }
  17757 
  17758 uint8 *
  17759 _bcm_pack_rx_cosq_mapping(uint8 *buf, bcm_rx_cosq_mapping_t *var)
  17760 {
  17761 	BCM_PACK_U32(buf, var->flags);
  17762 	BCM_PACK_U32(buf, var->index);
  17763 	{
  17764 		int _i;
  17765 
  17766 		for (_i = 0; _i < 7; _i++) {
  17767 			BCM_PACK_U32(buf, var->reasons.pbits[_i]);
  17768 		}
  17769 	}
  17770 	{
  17771 		int _i;
  17772 
  17773 		for (_i = 0; _i < 7; _i++) {
  17774 			BCM_PACK_U32(buf, var->reasons_mask.pbits[_i]);
  17775 		}
  17776 	}
  17777 	BCM_PACK_U8(buf, var->int_prio);
  17778 	BCM_PACK_U8(buf, var->int_prio_mask);
  17779 	BCM_PACK_U32(buf, var->packet_type);
  17780 	BCM_PACK_U32(buf, var->packet_type_mask);
  17781 	BCM_PACK_U32(buf, var->cosq);
  17782 	return buf;
  17783 }
  17784 
  17785 uint8 *
  17786 _bcm_unpack_rx_cosq_mapping(uint8 *buf, bcm_rx_cosq_mapping_t *var)
  17787 {
  17788 	BCM_UNPACK_U32(buf, var->flags);
  17789 	BCM_UNPACK_U32(buf, var->index);
  17790 	{
  17791 		int _i;
  17792 
  17793 		for (_i = 0; _i < 7; _i++) {
  17794 			BCM_UNPACK_U32(buf, var->reasons.pbits[_i]);
  17795 		}
  17796 	}
  17797 	{
  17798 		int _i;
  17799 
  17800 		for (_i = 0; _i < 7; _i++) {
  17801 			BCM_UNPACK_U32(buf, var->reasons_mask.pbits[_i]);
  17802 		}
  17803 	}
  17804 	BCM_UNPACK_U8(buf, var->int_prio);
  17805 	BCM_UNPACK_U8(buf, var->int_prio_mask);
  17806 	BCM_UNPACK_U32(buf, var->packet_type);
  17807 	BCM_UNPACK_U32(buf, var->packet_type_mask);
  17808 	BCM_UNPACK_U32(buf, var->cosq);
  17809 	return buf;
  17810 }
  17811 
  17812 uint8 *
  17813 _bcm_pack_rx_mtu_config(uint8 *buf, bcm_rx_mtu_config_t *var)
  17814 {
  17815 	BCM_PACK_U32(buf, var->flags);
  17816 	BCM_PACK_U32(buf, var->intf);
  17817 	BCM_PACK_U32(buf, var->gport);
  17818 	BCM_PACK_U32(buf, var->mtu);
  17819 	BCM_PACK_U8(buf, var->mtu_profile);
  17820 	return buf;
  17821 }
  17822 
  17823 uint8 *
  17824 _bcm_unpack_rx_mtu_config(uint8 *buf, bcm_rx_mtu_config_t *var)
  17825 {
  17826 	BCM_UNPACK_U32(buf, var->flags);
  17827 	BCM_UNPACK_U32(buf, var->intf);
  17828 	BCM_UNPACK_U32(buf, var->gport);
  17829 	BCM_UNPACK_U32(buf, var->mtu);
  17830 	BCM_UNPACK_U8(buf, var->mtu_profile);
  17831 	return buf;
  17832 }
  17833 
  17834 uint8 *
  17835 _bcm_pack_rx_mtu_profile_value(uint8 *buf, bcm_rx_mtu_profile_value_t *var)
  17836 {
  17837 	BCM_PACK_U32(buf, var->mtu_val);
  17838 	BCM_PACK_U32(buf, var->trap_gport);
  17839 	return buf;
  17840 }
  17841 
  17842 uint8 *
  17843 _bcm_unpack_rx_mtu_profile_value(uint8 *buf, bcm_rx_mtu_profile_value_t *var)
  17844 {
  17845 	BCM_UNPACK_U32(buf, var->mtu_val);
  17846 	BCM_UNPACK_U32(buf, var->trap_gport);
  17847 	return buf;
  17848 }
  17849 
  17850 uint8 *
  17851 _bcm_pack_rx_reasons(uint8 *buf, bcm_rx_reasons_t *var)
  17852 {
  17853 	{
  17854 		int _i;
  17855 
  17856 		for (_i = 0; _i < 7; _i++) {
  17857 			BCM_PACK_U32(buf, var->pbits[_i]);
  17858 		}
  17859 	}
  17860 	return buf;
  17861 }
  17862 
  17863 uint8 *
  17864 _bcm_unpack_rx_reasons(uint8 *buf, bcm_rx_reasons_t *var)
  17865 {
  17866 	{
  17867 		int _i;
  17868 
  17869 		for (_i = 0; _i < 7; _i++) {
  17870 			BCM_UNPACK_U32(buf, var->pbits[_i]);
  17871 		}
  17872 	}
  17873 	return buf;
  17874 }
  17875 
  17876 uint8 *
  17877 _bcm_pack_rx_snoop_config(uint8 *buf, bcm_rx_snoop_config_t *var)
  17878 {
  17879 	BCM_PACK_U32(buf, var->flags);
  17880 	BCM_PACK_U32(buf, var->dest_port);
  17881 	BCM_PACK_U32(buf, var->dest_group);
  17882 	BCM_PACK_U32(buf, var->prio);
  17883 	BCM_PACK_U32(buf, var->color);
  17884 	BCM_PACK_U32(buf, var->policer_id);
  17885 	BCM_PACK_U32(buf, var->counter_num);
  17886 	BCM_PACK_U32(buf, var->size);
  17887 	BCM_PACK_U32(buf, var->probability);
  17888 	BCM_PACK_U32(buf, var->encap_id);
  17889 	return buf;
  17890 }
  17891 
  17892 uint8 *
  17893 _bcm_unpack_rx_snoop_config(uint8 *buf, bcm_rx_snoop_config_t *var)
  17894 {
  17895 	BCM_UNPACK_U32(buf, var->flags);
  17896 	BCM_UNPACK_U32(buf, var->dest_port);
  17897 	BCM_UNPACK_U32(buf, var->dest_group);
  17898 	BCM_UNPACK_U32(buf, var->prio);
  17899 	BCM_UNPACK_U32(buf, var->color);
  17900 	BCM_UNPACK_U32(buf, var->policer_id);
  17901 	BCM_UNPACK_U32(buf, var->counter_num);
  17902 	BCM_UNPACK_U32(buf, var->size);
  17903 	BCM_UNPACK_U32(buf, var->probability);
  17904 	BCM_UNPACK_U32(buf, var->encap_id);
  17905 	return buf;
  17906 }
  17907 
  17908 uint8 *
  17909 _bcm_pack_rx_trap_config(uint8 *buf, bcm_rx_trap_config_t *var)
  17910 {
  17911 	BCM_PACK_U32(buf, var->flags);
  17912 	BCM_PACK_U32(buf, var->dest_port);
  17913 	BCM_PACK_U32(buf, var->dest_group);
  17914 	BCM_PACK_U32(buf, var->prio);
  17915 	BCM_PACK_U32(buf, var->color);
  17916 	BCM_PACK_U32(buf, var->ether_policer_id);
  17917 	BCM_PACK_U32(buf, var->policer_id);
  17918 	BCM_PACK_U32(buf, var->counter_num);
  17919 	BCM_PACK_U32(buf, var->trap_strength);
  17920 	BCM_PACK_U32(buf, var->snoop_cmnd);
  17921 	BCM_PACK_U32(buf, var->snoop_strength);
  17922 	BCM_PACK_U32(buf, var->forwarding_type);
  17923 	BCM_PACK_U32(buf, var->forwarding_header);
  17924 	BCM_PACK_U32(buf, var->encap_id);
  17925 	BCM_PACK_U32(buf, var->mirror_cmd->flags);
  17926 	BCM_PACK_U8(buf, var->mirror_cmd->forward_strength);
  17927 	BCM_PACK_U8(buf, var->mirror_cmd->copy_strength);
  17928 	BCM_PACK_U32(buf, var->mirror_cmd->recycle_cmd);
  17929 	BCM_PACK_U32(buf, var->core_config_arr->dest_port);
  17930 	BCM_PACK_U32(buf, var->core_config_arr->encap_id);
  17931 	BCM_PACK_U32(buf, var->core_config_arr->encap_id2);
  17932 	BCM_PACK_U32(buf, var->core_config_arr_len);
  17933 	BCM_PACK_U32(buf, var->qos_map_id);
  17934 	BCM_PACK_U32(buf, var->tunnel_termination_trap_strength);
  17935 	BCM_PACK_U32(buf, var->tunnel_termination_snoop_strength);
  17936 	BCM_PACK_U32(buf, var->meter_cmd);
  17937 	BCM_PACK_U8(buf, var->mapped_trap_strength);
  17938 	BCM_PACK_U8(buf, var->is_recycle_high_priority);
  17939 	BCM_PACK_U8(buf, var->is_recycle_crop_pkt);
  17940 	BCM_PACK_U8(buf, var->is_recycle_append_ftmh);
  17941 	BCM_PACK_U32(buf, var->cpu_trap_gport);
  17942 	BCM_PACK_U32(buf, var->stamped_trap_code);
  17943 	BCM_PACK_U32(buf, var->encap_id2);
  17944 	BCM_PACK_U8(buf, var->ecn_value);
  17945 	BCM_PACK_U16(buf, var->vsq);
  17946 	BCM_PACK_U8(buf, var->latency_flow_id_clear);
  17947 	BCM_PACK_U8(buf, var->visibility_value);
  17948 	BCM_PACK_U32(buf, var->stat_clear_bitmap);
  17949 	{
  17950 		int _i;
  17951 
  17952 		for (_i = 0; _i < 10; _i++) {
  17953 			BCM_PACK_U32(buf, var->stat_obj_config_arr[_i].counter_command_id);
  17954 			BCM_PACK_U32(buf, var->stat_obj_config_arr[_i].stat_id);
  17955 			BCM_PACK_U8(buf, var->stat_obj_config_arr[_i].is_offset_by_qual_enable);
  17956 			BCM_PACK_U32(buf, var->stat_obj_config_arr[_i].stat_object_type);
  17957 			BCM_PACK_U8(buf, var->stat_obj_config_arr[_i].is_meter);
  17958 			BCM_PACK_U32(buf, var->stat_obj_config_arr[_i].stat_profile);
  17959 		}
  17960 	}
  17961 	BCM_PACK_U32(buf, var->stat_obj_config_len);
  17962 	BCM_PACK_U32(buf, var->stat_metadata_mask);
  17963 	BCM_PACK_U32(buf, var->mirror_profile);
  17964 	BCM_PACK_U32(buf, var->egress_forwarding_index);
  17965 	BCM_PACK_U32(buf, var->pp_drop_reason);
  17966 	return buf;
  17967 }
  17968 
  17969 uint8 *
  17970 _bcm_unpack_rx_trap_config(uint8 *buf, bcm_rx_trap_config_t *var)
  17971 {
  17972 	BCM_UNPACK_U32(buf, var->flags);
  17973 	BCM_UNPACK_U32(buf, var->dest_port);
  17974 	BCM_UNPACK_U32(buf, var->dest_group);
  17975 	BCM_UNPACK_U32(buf, var->prio);
  17976 	BCM_UNPACK_U32(buf, var->color);
  17977 	BCM_UNPACK_U32(buf, var->ether_policer_id);
  17978 	BCM_UNPACK_U32(buf, var->policer_id);
  17979 	BCM_UNPACK_U32(buf, var->counter_num);
  17980 	BCM_UNPACK_U32(buf, var->trap_strength);
  17981 	BCM_UNPACK_U32(buf, var->snoop_cmnd);
  17982 	BCM_UNPACK_U32(buf, var->snoop_strength);
  17983 	BCM_UNPACK_U32(buf, var->forwarding_type);
  17984 	BCM_UNPACK_U32(buf, var->forwarding_header);
  17985 	BCM_UNPACK_U32(buf, var->encap_id);
  17986 	BCM_UNPACK_U32(buf, var->mirror_cmd->flags);
  17987 	BCM_UNPACK_U8(buf, var->mirror_cmd->forward_strength);
  17988 	BCM_UNPACK_U8(buf, var->mirror_cmd->copy_strength);
  17989 	BCM_UNPACK_U32(buf, var->mirror_cmd->recycle_cmd);
  17990 	BCM_UNPACK_U32(buf, var->core_config_arr->dest_port);
  17991 	BCM_UNPACK_U32(buf, var->core_config_arr->encap_id);
  17992 	BCM_UNPACK_U32(buf, var->core_config_arr->encap_id2);
  17993 	BCM_UNPACK_U32(buf, var->core_config_arr_len);
  17994 	BCM_UNPACK_U32(buf, var->qos_map_id);
  17995 	BCM_UNPACK_U32(buf, var->tunnel_termination_trap_strength);
  17996 	BCM_UNPACK_U32(buf, var->tunnel_termination_snoop_strength);
  17997 	BCM_UNPACK_U32(buf, var->meter_cmd);
  17998 	BCM_UNPACK_U8(buf, var->mapped_trap_strength);
  17999 	BCM_UNPACK_U8(buf, var->is_recycle_high_priority);
  18000 	BCM_UNPACK_U8(buf, var->is_recycle_crop_pkt);
  18001 	BCM_UNPACK_U8(buf, var->is_recycle_append_ftmh);
  18002 	BCM_UNPACK_U32(buf, var->cpu_trap_gport);
  18003 	BCM_UNPACK_U32(buf, var->stamped_trap_code);
  18004 	BCM_UNPACK_U32(buf, var->encap_id2);
  18005 	BCM_UNPACK_U8(buf, var->ecn_value);
  18006 	BCM_UNPACK_U16(buf, var->vsq);
  18007 	BCM_UNPACK_U8(buf, var->latency_flow_id_clear);
  18008 	BCM_UNPACK_U8(buf, var->visibility_value);
  18009 	BCM_UNPACK_U32(buf, var->stat_clear_bitmap);
  18010 	{
  18011 		int _i;
  18012 
  18013 		for (_i = 0; _i < 10; _i++) {
  18014 			BCM_UNPACK_U32(buf, var->stat_obj_config_arr[_i].counter_command_id);
  18015 			BCM_UNPACK_U32(buf, var->stat_obj_config_arr[_i].stat_id);
  18016 			BCM_UNPACK_U8(buf, var->stat_obj_config_arr[_i].is_offset_by_qual_enable);
  18017 			BCM_UNPACK_U32(buf, var->stat_obj_config_arr[_i].stat_object_type);
  18018 			BCM_UNPACK_U8(buf, var->stat_obj_config_arr[_i].is_meter);
  18019 			BCM_UNPACK_U32(buf, var->stat_obj_config_arr[_i].stat_profile);
  18020 		}
  18021 	}
  18022 	BCM_UNPACK_U32(buf, var->stat_obj_config_len);
  18023 	BCM_UNPACK_U32(buf, var->stat_metadata_mask);
  18024 	BCM_UNPACK_U32(buf, var->mirror_profile);
  18025 	BCM_UNPACK_U32(buf, var->egress_forwarding_index);
  18026 	BCM_UNPACK_U32(buf, var->pp_drop_reason);
  18027 	return buf;
  18028 }
  18029 
  18030 uint8 *
  18031 _bcm_pack_rx_trap_lif_config(uint8 *buf, bcm_rx_trap_lif_config_t *var)
  18032 {
  18033 	BCM_PACK_U32(buf, var->lif_type);
  18034 	BCM_PACK_U32(buf, var->rif_intf);
  18035 	BCM_PACK_U32(buf, var->lif_gport);
  18036 	BCM_PACK_U32(buf, var->action_gport);
  18037 	return buf;
  18038 }
  18039 
  18040 uint8 *
  18041 _bcm_unpack_rx_trap_lif_config(uint8 *buf, bcm_rx_trap_lif_config_t *var)
  18042 {
  18043 	BCM_UNPACK_U32(buf, var->lif_type);
  18044 	BCM_UNPACK_U32(buf, var->rif_intf);
  18045 	BCM_UNPACK_U32(buf, var->lif_gport);
  18046 	BCM_UNPACK_U32(buf, var->action_gport);
  18047 	return buf;
  18048 }
  18049 
  18050 uint8 *
  18051 _bcm_pack_rx_trap_prog_config(uint8 *buf, bcm_rx_trap_prog_config_t *var)
  18052 {
  18053 	BCM_PACK_U32(buf, var->src_mac_enable);
  18054 	{
  18055 		int _i;
  18056 
  18057 		for (_i = 0; _i < 6; _i++) {
  18058 			BCM_PACK_U8(buf, var->src_mac[_i]);
  18059 		}
  18060 	}
  18061 	BCM_PACK_U8(buf, var->src_mac_nof_bits);
  18062 	BCM_PACK_U32(buf, var->dest_mac_enable);
  18063 	{
  18064 		int _i;
  18065 
  18066 		for (_i = 0; _i < 6; _i++) {
  18067 			BCM_PACK_U8(buf, var->dest_mac[_i]);
  18068 		}
  18069 	}
  18070 	BCM_PACK_U8(buf, var->dest_mac_nof_bits);
  18071 	BCM_PACK_U32(buf, var->ether_type_enable);
  18072 	BCM_PACK_U16(buf, var->ether_type);
  18073 	BCM_PACK_U32(buf, var->sub_type_enable);
  18074 	BCM_PACK_U8(buf, var->sub_type);
  18075 	BCM_PACK_U8(buf, var->sub_type_mask);
  18076 	BCM_PACK_U32(buf, var->ip_protocol_enable);
  18077 	BCM_PACK_U8(buf, var->ip_protocol);
  18078 	BCM_PACK_U32(buf, var->l4_ports_enable);
  18079 	BCM_PACK_U32(buf, var->src_port);
  18080 	BCM_PACK_U16(buf, var->src_port_mask);
  18081 	BCM_PACK_U32(buf, var->dest_port);
  18082 	BCM_PACK_U16(buf, var->dest_port_mask);
  18083 	BCM_PACK_U32(buf, var->tcp_flags_enable);
  18084 	BCM_PACK_U16(buf, var->tcp_flags);
  18085 	BCM_PACK_U16(buf, var->tcp_flags_mask);
  18086 	BCM_PACK_U32(buf, var->tcp_seq_is_zero_enable);
  18087 	BCM_PACK_U32(buf, var->trap_gport);
  18088 	return buf;
  18089 }
  18090 
  18091 uint8 *
  18092 _bcm_unpack_rx_trap_prog_config(uint8 *buf, bcm_rx_trap_prog_config_t *var)
  18093 {
  18094 	BCM_UNPACK_U32(buf, var->src_mac_enable);
  18095 	{
  18096 		int _i;
  18097 
  18098 		for (_i = 0; _i < 6; _i++) {
  18099 			BCM_UNPACK_U8(buf, var->src_mac[_i]);
  18100 		}
  18101 	}
  18102 	BCM_UNPACK_U8(buf, var->src_mac_nof_bits);
  18103 	BCM_UNPACK_U32(buf, var->dest_mac_enable);
  18104 	{
  18105 		int _i;
  18106 
  18107 		for (_i = 0; _i < 6; _i++) {
  18108 			BCM_UNPACK_U8(buf, var->dest_mac[_i]);
  18109 		}
  18110 	}
  18111 	BCM_UNPACK_U8(buf, var->dest_mac_nof_bits);
  18112 	BCM_UNPACK_U32(buf, var->ether_type_enable);
  18113 	BCM_UNPACK_U16(buf, var->ether_type);
  18114 	BCM_UNPACK_U32(buf, var->sub_type_enable);
  18115 	BCM_UNPACK_U8(buf, var->sub_type);
  18116 	BCM_UNPACK_U8(buf, var->sub_type_mask);
  18117 	BCM_UNPACK_U32(buf, var->ip_protocol_enable);
  18118 	BCM_UNPACK_U8(buf, var->ip_protocol);
  18119 	BCM_UNPACK_U32(buf, var->l4_ports_enable);
  18120 	BCM_UNPACK_U32(buf, var->src_port);
  18121 	BCM_UNPACK_U16(buf, var->src_port_mask);
  18122 	BCM_UNPACK_U32(buf, var->dest_port);
  18123 	BCM_UNPACK_U16(buf, var->dest_port_mask);
  18124 	BCM_UNPACK_U32(buf, var->tcp_flags_enable);
  18125 	BCM_UNPACK_U16(buf, var->tcp_flags);
  18126 	BCM_UNPACK_U16(buf, var->tcp_flags_mask);
  18127 	BCM_UNPACK_U32(buf, var->tcp_seq_is_zero_enable);
  18128 	BCM_UNPACK_U32(buf, var->trap_gport);
  18129 	return buf;
  18130 }
  18131 
  18132 uint8 *
  18133 _bcm_pack_rx_trap_protocol_key(uint8 *buf, bcm_rx_trap_protocol_key_t *var)
  18134 {
  18135 	BCM_PACK_U32(buf, var->protocol_type);
  18136 	BCM_PACK_U8(buf, var->protocol_trap_profile);
  18137 	BCM_PACK_U32(buf, var->trap_args);
  18138 	return buf;
  18139 }
  18140 
  18141 uint8 *
  18142 _bcm_unpack_rx_trap_protocol_key(uint8 *buf, bcm_rx_trap_protocol_key_t *var)
  18143 {
  18144 	BCM_UNPACK_U32(buf, var->protocol_type);
  18145 	BCM_UNPACK_U8(buf, var->protocol_trap_profile);
  18146 	BCM_UNPACK_U32(buf, var->trap_args);
  18147 	return buf;
  18148 }
  18149 
  18150 uint8 *
  18151 _bcm_pack_rx_trap_protocol_profiles(uint8 *buf, bcm_rx_trap_protocol_profiles_t *var)
  18152 {
  18153 	BCM_PACK_U8(buf, var->icmpv6_trap_profile);
  18154 	BCM_PACK_U8(buf, var->icmpv4_trap_profile);
  18155 	BCM_PACK_U8(buf, var->l2cp_trap_profile);
  18156 	BCM_PACK_U8(buf, var->arp_trap_profile);
  18157 	BCM_PACK_U8(buf, var->igmp_trap_profile);
  18158 	BCM_PACK_U8(buf, var->dhcp_trap_profile);
  18159 	BCM_PACK_U8(buf, var->non_auth_8021x_trap_profile);
  18160 	return buf;
  18161 }
  18162 
  18163 uint8 *
  18164 _bcm_unpack_rx_trap_protocol_profiles(uint8 *buf, bcm_rx_trap_protocol_profiles_t *var)
  18165 {
  18166 	BCM_UNPACK_U8(buf, var->icmpv6_trap_profile);
  18167 	BCM_UNPACK_U8(buf, var->icmpv4_trap_profile);
  18168 	BCM_UNPACK_U8(buf, var->l2cp_trap_profile);
  18169 	BCM_UNPACK_U8(buf, var->arp_trap_profile);
  18170 	BCM_UNPACK_U8(buf, var->igmp_trap_profile);
  18171 	BCM_UNPACK_U8(buf, var->dhcp_trap_profile);
  18172 	BCM_UNPACK_U8(buf, var->non_auth_8021x_trap_profile);
  18173 	return buf;
  18174 }
  18175 
  18176 uint8 *
  18177 _bcm_pack_sat_config(uint8 *buf, bcm_sat_config_t *var)
  18178 {
  18179 	BCM_PACK_U32(buf, var->timestamp_format);
  18180 	BCM_PACK_U32(buf, var->config_flags);
  18181 	BCM_PACK_U32(buf, var->seq_number_wrap_around);
  18182 	return buf;
  18183 }
  18184 
  18185 uint8 *
  18186 _bcm_unpack_sat_config(uint8 *buf, bcm_sat_config_t *var)
  18187 {
  18188 	BCM_UNPACK_U32(buf, var->timestamp_format);
  18189 	BCM_UNPACK_U32(buf, var->config_flags);
  18190 	BCM_UNPACK_U32(buf, var->seq_number_wrap_around);
  18191 	return buf;
  18192 }
  18193 
  18194 uint8 *
  18195 _bcm_pack_sat_ctf_availability_config(uint8 *buf, bcm_sat_ctf_availability_config_t *var)
  18196 {
  18197 	BCM_PACK_U32(buf, var->switch_state_num_of_slots);
  18198 	BCM_PACK_U32(buf, var->switch_state_threshold_per_slot);
  18199 	return buf;
  18200 }
  18201 
  18202 uint8 *
  18203 _bcm_unpack_sat_ctf_availability_config(uint8 *buf, bcm_sat_ctf_availability_config_t *var)
  18204 {
  18205 	BCM_UNPACK_U32(buf, var->switch_state_num_of_slots);
  18206 	BCM_UNPACK_U32(buf, var->switch_state_threshold_per_slot);
  18207 	return buf;
  18208 }
  18209 
  18210 uint8 *
  18211 _bcm_pack_sat_ctf_bin_limit(uint8 *buf, bcm_sat_ctf_bin_limit_t *var)
  18212 {
  18213 	BCM_PACK_U32(buf, var->bin_select);
  18214 	BCM_PACK_U32(buf, var->bin_limit);
  18215 	return buf;
  18216 }
  18217 
  18218 uint8 *
  18219 _bcm_unpack_sat_ctf_bin_limit(uint8 *buf, bcm_sat_ctf_bin_limit_t *var)
  18220 {
  18221 	BCM_UNPACK_U32(buf, var->bin_select);
  18222 	BCM_UNPACK_U32(buf, var->bin_limit);
  18223 	return buf;
  18224 }
  18225 
  18226 uint8 *
  18227 _bcm_pack_sat_ctf_identifier(uint8 *buf, bcm_sat_ctf_identifier_t *var)
  18228 {
  18229 	BCM_PACK_U32(buf, var->tc);
  18230 	BCM_PACK_U32(buf, var->color);
  18231 	BCM_PACK_U32(buf, var->trap_id);
  18232 	BCM_PACK_U32(buf, var->session_id);
  18233 	return buf;
  18234 }
  18235 
  18236 uint8 *
  18237 _bcm_unpack_sat_ctf_identifier(uint8 *buf, bcm_sat_ctf_identifier_t *var)
  18238 {
  18239 	BCM_UNPACK_U32(buf, var->tc);
  18240 	BCM_UNPACK_U32(buf, var->color);
  18241 	BCM_UNPACK_U32(buf, var->trap_id);
  18242 	BCM_UNPACK_U32(buf, var->session_id);
  18243 	return buf;
  18244 }
  18245 
  18246 uint8 *
  18247 _bcm_pack_sat_ctf_packet_info(uint8 *buf, bcm_sat_ctf_packet_info_t *var)
  18248 {
  18249 	BCM_PACK_U32(buf, var->sat_header_type);
  18250 	BCM_PACK_U32(buf, var->payload.payload_type);
  18251 	{
  18252 		int _i;
  18253 
  18254 		for (_i = 0; _i < 8; _i++) {
  18255 			BCM_PACK_U8(buf, var->payload.payload_pattern[_i]);
  18256 		}
  18257 	}
  18258 	BCM_PACK_U32(buf, var->flags);
  18259 	BCM_PACK_U32(buf, var->offsets.payload_offset);
  18260 	BCM_PACK_U32(buf, var->offsets.timestamp_offset);
  18261 	BCM_PACK_U32(buf, var->offsets.seq_number_offset);
  18262 	BCM_PACK_U32(buf, var->offsets.crc_byte_offset);
  18263 	return buf;
  18264 }
  18265 
  18266 uint8 *
  18267 _bcm_unpack_sat_ctf_packet_info(uint8 *buf, bcm_sat_ctf_packet_info_t *var)
  18268 {
  18269 	BCM_UNPACK_U32(buf, var->sat_header_type);
  18270 	BCM_UNPACK_U32(buf, var->payload.payload_type);
  18271 	{
  18272 		int _i;
  18273 
  18274 		for (_i = 0; _i < 8; _i++) {
  18275 			BCM_UNPACK_U8(buf, var->payload.payload_pattern[_i]);
  18276 		}
  18277 	}
  18278 	BCM_UNPACK_U32(buf, var->flags);
  18279 	BCM_UNPACK_U32(buf, var->offsets.payload_offset);
  18280 	BCM_UNPACK_U32(buf, var->offsets.timestamp_offset);
  18281 	BCM_UNPACK_U32(buf, var->offsets.seq_number_offset);
  18282 	BCM_UNPACK_U32(buf, var->offsets.crc_byte_offset);
  18283 	return buf;
  18284 }
  18285 
  18286 uint8 *
  18287 _bcm_pack_sat_ctf_report_config(uint8 *buf, bcm_sat_ctf_report_config_t *var)
  18288 {
  18289 	BCM_PACK_U32(buf, var->report_sampling_percent);
  18290 	BCM_PACK_U32(buf, var->flags);
  18291 	return buf;
  18292 }
  18293 
  18294 uint8 *
  18295 _bcm_unpack_sat_ctf_report_config(uint8 *buf, bcm_sat_ctf_report_config_t *var)
  18296 {
  18297 	BCM_UNPACK_U32(buf, var->report_sampling_percent);
  18298 	BCM_UNPACK_U32(buf, var->flags);
  18299 	return buf;
  18300 }
  18301 
  18302 uint8 *
  18303 _bcm_pack_sat_ctf_stat_config(uint8 *buf, bcm_sat_ctf_stat_config_t *var)
  18304 {
  18305 	BCM_PACK_U32(buf, var->use_global_bin_config);
  18306 	BCM_PACK_U32(buf, var->bin_min_delay);
  18307 	BCM_PACK_U32(buf, var->bin_step);
  18308 	BCM_PACK_U32(buf, var->update_counters_in_unvavail_state);
  18309 	return buf;
  18310 }
  18311 
  18312 uint8 *
  18313 _bcm_unpack_sat_ctf_stat_config(uint8 *buf, bcm_sat_ctf_stat_config_t *var)
  18314 {
  18315 	BCM_UNPACK_U32(buf, var->use_global_bin_config);
  18316 	BCM_UNPACK_U32(buf, var->bin_min_delay);
  18317 	BCM_UNPACK_U32(buf, var->bin_step);
  18318 	BCM_UNPACK_U32(buf, var->update_counters_in_unvavail_state);
  18319 	return buf;
  18320 }
  18321 
  18322 uint8 *
  18323 _bcm_pack_sat_ctf_stat(uint8 *buf, bcm_sat_ctf_stat_t *var)
  18324 {
  18325 	{
  18326 		uint32 _u32;
  18327 
  18328 		_u32 = COMPILER_64_HI(var->received_packet_cnt);
  18329 		BCM_PACK_U32(buf, _u32);
  18330 		_u32 = COMPILER_64_LO(var->received_packet_cnt);
  18331 		BCM_PACK_U32(buf, _u32);
  18332 	}
  18333 	{
  18334 		uint32 _u32;
  18335 
  18336 		_u32 = COMPILER_64_HI(var->out_of_order_packet_cnt);
  18337 		BCM_PACK_U32(buf, _u32);
  18338 		_u32 = COMPILER_64_LO(var->out_of_order_packet_cnt);
  18339 		BCM_PACK_U32(buf, _u32);
  18340 	}
  18341 	{
  18342 		uint32 _u32;
  18343 
  18344 		_u32 = COMPILER_64_HI(var->err_packet_cnt);
  18345 		BCM_PACK_U32(buf, _u32);
  18346 		_u32 = COMPILER_64_LO(var->err_packet_cnt);
  18347 		BCM_PACK_U32(buf, _u32);
  18348 	}
  18349 	{
  18350 		uint32 _u32;
  18351 
  18352 		_u32 = COMPILER_64_HI(var->received_octet_cnt);
  18353 		BCM_PACK_U32(buf, _u32);
  18354 		_u32 = COMPILER_64_LO(var->received_octet_cnt);
  18355 		BCM_PACK_U32(buf, _u32);
  18356 	}
  18357 	{
  18358 		uint32 _u32;
  18359 
  18360 		_u32 = COMPILER_64_HI(var->out_of_order_octet_cnt);
  18361 		BCM_PACK_U32(buf, _u32);
  18362 		_u32 = COMPILER_64_LO(var->out_of_order_octet_cnt);
  18363 		BCM_PACK_U32(buf, _u32);
  18364 	}
  18365 	{
  18366 		uint32 _u32;
  18367 
  18368 		_u32 = COMPILER_64_HI(var->err_octet_cnt);
  18369 		BCM_PACK_U32(buf, _u32);
  18370 		_u32 = COMPILER_64_LO(var->err_octet_cnt);
  18371 		BCM_PACK_U32(buf, _u32);
  18372 	}
  18373 	{
  18374 		uint32 _u32;
  18375 
  18376 		_u32 = COMPILER_64_HI(var->last_packet_delay);
  18377 		BCM_PACK_U32(buf, _u32);
  18378 		_u32 = COMPILER_64_LO(var->last_packet_delay);
  18379 		BCM_PACK_U32(buf, _u32);
  18380 	}
  18381 	{
  18382 		int _i;
  18383 
  18384 		for (_i = 0; _i < 10; _i++) {
  18385 			{
  18386 				uint32 _u32;
  18387 
  18388 				_u32 = COMPILER_64_HI(var->bin_delay_counters[_i]);
  18389 				BCM_PACK_U32(buf, _u32);
  18390 				_u32 = COMPILER_64_LO(var->bin_delay_counters[_i]);
  18391 				BCM_PACK_U32(buf, _u32);
  18392 			}
  18393 		}
  18394 	}
  18395 	{
  18396 		uint32 _u32;
  18397 
  18398 		_u32 = COMPILER_64_HI(var->accumulated_delay_count);
  18399 		BCM_PACK_U32(buf, _u32);
  18400 		_u32 = COMPILER_64_LO(var->accumulated_delay_count);
  18401 		BCM_PACK_U32(buf, _u32);
  18402 	}
  18403 	{
  18404 		uint32 _u32;
  18405 
  18406 		_u32 = COMPILER_64_HI(var->max_packet_delay);
  18407 		BCM_PACK_U32(buf, _u32);
  18408 		_u32 = COMPILER_64_LO(var->max_packet_delay);
  18409 		BCM_PACK_U32(buf, _u32);
  18410 	}
  18411 	{
  18412 		uint32 _u32;
  18413 
  18414 		_u32 = COMPILER_64_HI(var->min_packet_delay);
  18415 		BCM_PACK_U32(buf, _u32);
  18416 		_u32 = COMPILER_64_LO(var->min_packet_delay);
  18417 		BCM_PACK_U32(buf, _u32);
  18418 	}
  18419 	{
  18420 		uint32 _u32;
  18421 
  18422 		_u32 = COMPILER_64_HI(var->time_of_day_stamp);
  18423 		BCM_PACK_U32(buf, _u32);
  18424 		_u32 = COMPILER_64_LO(var->time_of_day_stamp);
  18425 		BCM_PACK_U32(buf, _u32);
  18426 	}
  18427 	{
  18428 		uint32 _u32;
  18429 
  18430 		_u32 = COMPILER_64_HI(var->sec_in_avail_state_counter);
  18431 		BCM_PACK_U32(buf, _u32);
  18432 		_u32 = COMPILER_64_LO(var->sec_in_avail_state_counter);
  18433 		BCM_PACK_U32(buf, _u32);
  18434 	}
  18435 	{
  18436 		uint32 _u32;
  18437 
  18438 		_u32 = COMPILER_64_HI(var->last_packet_seq_number);
  18439 		BCM_PACK_U32(buf, _u32);
  18440 		_u32 = COMPILER_64_LO(var->last_packet_seq_number);
  18441 		BCM_PACK_U32(buf, _u32);
  18442 	}
  18443 	return buf;
  18444 }
  18445 
  18446 uint8 *
  18447 _bcm_unpack_sat_ctf_stat(uint8 *buf, bcm_sat_ctf_stat_t *var)
  18448 {
  18449 	{
  18450 		uint32 _u32h, _u32l;
  18451 
  18452 		BCM_UNPACK_U32(buf, _u32h);
  18453 		BCM_UNPACK_U32(buf, _u32l);
  18454 		COMPILER_64_SET(var->received_packet_cnt, _u32h, _u32l);
  18455 	}
  18456 	{
  18457 		uint32 _u32h, _u32l;
  18458 
  18459 		BCM_UNPACK_U32(buf, _u32h);
  18460 		BCM_UNPACK_U32(buf, _u32l);
  18461 		COMPILER_64_SET(var->out_of_order_packet_cnt, _u32h, _u32l);
  18462 	}
  18463 	{
  18464 		uint32 _u32h, _u32l;
  18465 
  18466 		BCM_UNPACK_U32(buf, _u32h);
  18467 		BCM_UNPACK_U32(buf, _u32l);
  18468 		COMPILER_64_SET(var->err_packet_cnt, _u32h, _u32l);
  18469 	}
  18470 	{
  18471 		uint32 _u32h, _u32l;
  18472 
  18473 		BCM_UNPACK_U32(buf, _u32h);
  18474 		BCM_UNPACK_U32(buf, _u32l);
  18475 		COMPILER_64_SET(var->received_octet_cnt, _u32h, _u32l);
  18476 	}
  18477 	{
  18478 		uint32 _u32h, _u32l;
  18479 
  18480 		BCM_UNPACK_U32(buf, _u32h);
  18481 		BCM_UNPACK_U32(buf, _u32l);
  18482 		COMPILER_64_SET(var->out_of_order_octet_cnt, _u32h, _u32l);
  18483 	}
  18484 	{
  18485 		uint32 _u32h, _u32l;
  18486 
  18487 		BCM_UNPACK_U32(buf, _u32h);
  18488 		BCM_UNPACK_U32(buf, _u32l);
  18489 		COMPILER_64_SET(var->err_octet_cnt, _u32h, _u32l);
  18490 	}
  18491 	{
  18492 		uint32 _u32h, _u32l;
  18493 
  18494 		BCM_UNPACK_U32(buf, _u32h);
  18495 		BCM_UNPACK_U32(buf, _u32l);
  18496 		COMPILER_64_SET(var->last_packet_delay, _u32h, _u32l);
  18497 	}
  18498 	{
  18499 		int _i;
  18500 
  18501 		for (_i = 0; _i < 10; _i++) {
  18502 			{
  18503 				uint32 _u32h, _u32l;
  18504 
  18505 				BCM_UNPACK_U32(buf, _u32h);
  18506 				BCM_UNPACK_U32(buf, _u32l);
  18507 				COMPILER_64_SET(var->bin_delay_counters[_i], _u32h, _u32l);
  18508 			}
  18509 		}
  18510 	}
  18511 	{
  18512 		uint32 _u32h, _u32l;
  18513 
  18514 		BCM_UNPACK_U32(buf, _u32h);
  18515 		BCM_UNPACK_U32(buf, _u32l);
  18516 		COMPILER_64_SET(var->accumulated_delay_count, _u32h, _u32l);
  18517 	}
  18518 	{
  18519 		uint32 _u32h, _u32l;
  18520 
  18521 		BCM_UNPACK_U32(buf, _u32h);
  18522 		BCM_UNPACK_U32(buf, _u32l);
  18523 		COMPILER_64_SET(var->max_packet_delay, _u32h, _u32l);
  18524 	}
  18525 	{
  18526 		uint32 _u32h, _u32l;
  18527 
  18528 		BCM_UNPACK_U32(buf, _u32h);
  18529 		BCM_UNPACK_U32(buf, _u32l);
  18530 		COMPILER_64_SET(var->min_packet_delay, _u32h, _u32l);
  18531 	}
  18532 	{
  18533 		uint32 _u32h, _u32l;
  18534 
  18535 		BCM_UNPACK_U32(buf, _u32h);
  18536 		BCM_UNPACK_U32(buf, _u32l);
  18537 		COMPILER_64_SET(var->time_of_day_stamp, _u32h, _u32l);
  18538 	}
  18539 	{
  18540 		uint32 _u32h, _u32l;
  18541 
  18542 		BCM_UNPACK_U32(buf, _u32h);
  18543 		BCM_UNPACK_U32(buf, _u32l);
  18544 		COMPILER_64_SET(var->sec_in_avail_state_counter, _u32h, _u32l);
  18545 	}
  18546 	{
  18547 		uint32 _u32h, _u32l;
  18548 
  18549 		BCM_UNPACK_U32(buf, _u32h);
  18550 		BCM_UNPACK_U32(buf, _u32l);
  18551 		COMPILER_64_SET(var->last_packet_seq_number, _u32h, _u32l);
  18552 	}
  18553 	return buf;
  18554 }
  18555 
  18556 uint8 *
  18557 _bcm_pack_sat_endpoint_info(uint8 *buf, bcm_sat_endpoint_info_t *var)
  18558 {
  18559 	BCM_PACK_U32(buf, var->ep_id);
  18560 	BCM_PACK_U32(buf, var->flags);
  18561 	BCM_PACK_U32(buf, var->src_gport);
  18562 	BCM_PACK_U16(buf, var->outer_vlan);
  18563 	BCM_PACK_U16(buf, var->inner_vlan);
  18564 	{
  18565 		int _i;
  18566 
  18567 		for (_i = 0; _i < 6; _i++) {
  18568 			BCM_PACK_U8(buf, var->dst_mac_address[_i]);
  18569 		}
  18570 	}
  18571 	{
  18572 		int _i;
  18573 
  18574 		for (_i = 0; _i < 6; _i++) {
  18575 			BCM_PACK_U8(buf, var->src_mac_address[_i]);
  18576 		}
  18577 	}
  18578 	BCM_PACK_U16(buf, var->ether_type);
  18579 	BCM_PACK_U32(buf, var->action_flags);
  18580 	BCM_PACK_U8(buf, var->pkt_pri);
  18581 	BCM_PACK_U32(buf, var->dest_gport);
  18582 	BCM_PACK_U32(buf, var->timestamp_format);
  18583 	BCM_PACK_U16(buf, var->session_id);
  18584 	return buf;
  18585 }
  18586 
  18587 uint8 *
  18588 _bcm_unpack_sat_endpoint_info(uint8 *buf, bcm_sat_endpoint_info_t *var)
  18589 {
  18590 	BCM_UNPACK_U32(buf, var->ep_id);
  18591 	BCM_UNPACK_U32(buf, var->flags);
  18592 	BCM_UNPACK_U32(buf, var->src_gport);
  18593 	BCM_UNPACK_U16(buf, var->outer_vlan);
  18594 	BCM_UNPACK_U16(buf, var->inner_vlan);
  18595 	{
  18596 		int _i;
  18597 
  18598 		for (_i = 0; _i < 6; _i++) {
  18599 			BCM_UNPACK_U8(buf, var->dst_mac_address[_i]);
  18600 		}
  18601 	}
  18602 	{
  18603 		int _i;
  18604 
  18605 		for (_i = 0; _i < 6; _i++) {
  18606 			BCM_UNPACK_U8(buf, var->src_mac_address[_i]);
  18607 		}
  18608 	}
  18609 	BCM_UNPACK_U16(buf, var->ether_type);
  18610 	BCM_UNPACK_U32(buf, var->action_flags);
  18611 	BCM_UNPACK_U8(buf, var->pkt_pri);
  18612 	BCM_UNPACK_U32(buf, var->dest_gport);
  18613 	BCM_UNPACK_U32(buf, var->timestamp_format);
  18614 	BCM_UNPACK_U16(buf, var->session_id);
  18615 	return buf;
  18616 }
  18617 
  18618 uint8 *
  18619 _bcm_pack_sat_gtf_bandwidth(uint8 *buf, bcm_sat_gtf_bandwidth_t *var)
  18620 {
  18621 	BCM_PACK_U32(buf, var->flags);
  18622 	BCM_PACK_U32(buf, var->rate);
  18623 	BCM_PACK_U32(buf, var->max_burst);
  18624 	BCM_PACK_U32(buf, var->granularity);
  18625 	return buf;
  18626 }
  18627 
  18628 uint8 *
  18629 _bcm_unpack_sat_gtf_bandwidth(uint8 *buf, bcm_sat_gtf_bandwidth_t *var)
  18630 {
  18631 	BCM_UNPACK_U32(buf, var->flags);
  18632 	BCM_UNPACK_U32(buf, var->rate);
  18633 	BCM_UNPACK_U32(buf, var->max_burst);
  18634 	BCM_UNPACK_U32(buf, var->granularity);
  18635 	return buf;
  18636 }
  18637 
  18638 uint8 *
  18639 _bcm_pack_sat_gtf_rate_pattern(uint8 *buf, bcm_sat_gtf_rate_pattern_t *var)
  18640 {
  18641 	BCM_PACK_U32(buf, var->rate_pattern_mode);
  18642 	BCM_PACK_U32(buf, var->high_threshold);
  18643 	BCM_PACK_U32(buf, var->low_threshold);
  18644 	BCM_PACK_U32(buf, var->stop_iter_count);
  18645 	BCM_PACK_U32(buf, var->stop_burst_count);
  18646 	BCM_PACK_U32(buf, var->stop_interval_count);
  18647 	BCM_PACK_U32(buf, var->burst_packet_weight);
  18648 	BCM_PACK_U32(buf, var->interval_packet_weight);
  18649 	BCM_PACK_U32(buf, var->flags);
  18650 	return buf;
  18651 }
  18652 
  18653 uint8 *
  18654 _bcm_unpack_sat_gtf_rate_pattern(uint8 *buf, bcm_sat_gtf_rate_pattern_t *var)
  18655 {
  18656 	BCM_UNPACK_U32(buf, var->rate_pattern_mode);
  18657 	BCM_UNPACK_U32(buf, var->high_threshold);
  18658 	BCM_UNPACK_U32(buf, var->low_threshold);
  18659 	BCM_UNPACK_U32(buf, var->stop_iter_count);
  18660 	BCM_UNPACK_U32(buf, var->stop_burst_count);
  18661 	BCM_UNPACK_U32(buf, var->stop_interval_count);
  18662 	BCM_UNPACK_U32(buf, var->burst_packet_weight);
  18663 	BCM_UNPACK_U32(buf, var->interval_packet_weight);
  18664 	BCM_UNPACK_U32(buf, var->flags);
  18665 	return buf;
  18666 }
  18667 
  18668 uint8 *
  18669 _bcm_pack_sat_gtf_stat_multi(uint8 *buf, bcm_sat_gtf_stat_multi_t *var)
  18670 {
  18671 	{
  18672 		uint32 _u32;
  18673 
  18674 		_u32 = COMPILER_64_HI(var->transmitted_packet_cnt);
  18675 		BCM_PACK_U32(buf, _u32);
  18676 		_u32 = COMPILER_64_LO(var->transmitted_packet_cnt);
  18677 		BCM_PACK_U32(buf, _u32);
  18678 	}
  18679 	{
  18680 		uint32 _u32;
  18681 
  18682 		_u32 = COMPILER_64_HI(var->transmitted_byte_cnt);
  18683 		BCM_PACK_U32(buf, _u32);
  18684 		_u32 = COMPILER_64_LO(var->transmitted_byte_cnt);
  18685 		BCM_PACK_U32(buf, _u32);
  18686 	}
  18687 	return buf;
  18688 }
  18689 
  18690 uint8 *
  18691 _bcm_unpack_sat_gtf_stat_multi(uint8 *buf, bcm_sat_gtf_stat_multi_t *var)
  18692 {
  18693 	{
  18694 		uint32 _u32h, _u32l;
  18695 
  18696 		BCM_UNPACK_U32(buf, _u32h);
  18697 		BCM_UNPACK_U32(buf, _u32l);
  18698 		COMPILER_64_SET(var->transmitted_packet_cnt, _u32h, _u32l);
  18699 	}
  18700 	{
  18701 		uint32 _u32h, _u32l;
  18702 
  18703 		BCM_UNPACK_U32(buf, _u32h);
  18704 		BCM_UNPACK_U32(buf, _u32l);
  18705 		COMPILER_64_SET(var->transmitted_byte_cnt, _u32h, _u32l);
  18706 	}
  18707 	return buf;
  18708 }
  18709 
  18710 uint8 *
  18711 _bcm_pack_srv6_sid_initiator_info(uint8 *buf, bcm_srv6_sid_initiator_info_t *var)
  18712 {
  18713 	BCM_PACK_U32(buf, var->flags);
  18714 	BCM_PACK_U32(buf, var->tunnel_id);
  18715 	{
  18716 		int _i;
  18717 
  18718 		for (_i = 0; _i < 16; _i++) {
  18719 			BCM_PACK_U8(buf, var->sid[_i]);
  18720 		}
  18721 	}
  18722 	BCM_PACK_U32(buf, var->encap_access);
  18723 	BCM_PACK_U32(buf, var->next_encap_id);
  18724 	return buf;
  18725 }
  18726 
  18727 uint8 *
  18728 _bcm_unpack_srv6_sid_initiator_info(uint8 *buf, bcm_srv6_sid_initiator_info_t *var)
  18729 {
  18730 	BCM_UNPACK_U32(buf, var->flags);
  18731 	BCM_UNPACK_U32(buf, var->tunnel_id);
  18732 	{
  18733 		int _i;
  18734 
  18735 		for (_i = 0; _i < 16; _i++) {
  18736 			BCM_UNPACK_U8(buf, var->sid[_i]);
  18737 		}
  18738 	}
  18739 	BCM_UNPACK_U32(buf, var->encap_access);
  18740 	BCM_UNPACK_U32(buf, var->next_encap_id);
  18741 	return buf;
  18742 }
  18743 
  18744 uint8 *
  18745 _bcm_pack_srv6_srh_base_initiator_info(uint8 *buf, bcm_srv6_srh_base_initiator_info_t *var)
  18746 {
  18747 	BCM_PACK_U32(buf, var->flags);
  18748 	BCM_PACK_U32(buf, var->tunnel_id);
  18749 	BCM_PACK_U32(buf, var->nof_sids);
  18750 	BCM_PACK_U32(buf, var->qos_map_id);
  18751 	BCM_PACK_U32(buf, var->ttl);
  18752 	BCM_PACK_U32(buf, var->dscp);
  18753 	BCM_PACK_U32(buf, var->egress_qos_model.egress_qos);
  18754 	BCM_PACK_U32(buf, var->egress_qos_model.egress_ttl);
  18755 	BCM_PACK_U8(buf, var->egress_qos_model.ecn_eligible);
  18756 	BCM_PACK_U32(buf, var->next_encap_id);
  18757 	return buf;
  18758 }
  18759 
  18760 uint8 *
  18761 _bcm_unpack_srv6_srh_base_initiator_info(uint8 *buf, bcm_srv6_srh_base_initiator_info_t *var)
  18762 {
  18763 	BCM_UNPACK_U32(buf, var->flags);
  18764 	BCM_UNPACK_U32(buf, var->tunnel_id);
  18765 	BCM_UNPACK_U32(buf, var->nof_sids);
  18766 	BCM_UNPACK_U32(buf, var->qos_map_id);
  18767 	BCM_UNPACK_U32(buf, var->ttl);
  18768 	BCM_UNPACK_U32(buf, var->dscp);
  18769 	BCM_UNPACK_U32(buf, var->egress_qos_model.egress_qos);
  18770 	BCM_UNPACK_U32(buf, var->egress_qos_model.egress_ttl);
  18771 	BCM_UNPACK_U8(buf, var->egress_qos_model.ecn_eligible);
  18772 	BCM_UNPACK_U32(buf, var->next_encap_id);
  18773 	return buf;
  18774 }
  18775 
  18776 uint8 *
  18777 _bcm_pack_srv6_terminator_next_protocol_mapping(uint8 *buf, bcm_srv6_terminator_next_protocol_mapping_t *var)
  18778 {
  18779 	BCM_PACK_U32(buf, var->flags);
  18780 	BCM_PACK_U32(buf, var->next_protocol);
  18781 	BCM_PACK_U32(buf, var->encap_id);
  18782 	BCM_PACK_U32(buf, var->port);
  18783 	return buf;
  18784 }
  18785 
  18786 uint8 *
  18787 _bcm_unpack_srv6_terminator_next_protocol_mapping(uint8 *buf, bcm_srv6_terminator_next_protocol_mapping_t *var)
  18788 {
  18789 	BCM_UNPACK_U32(buf, var->flags);
  18790 	BCM_UNPACK_U32(buf, var->next_protocol);
  18791 	BCM_UNPACK_U32(buf, var->encap_id);
  18792 	BCM_UNPACK_U32(buf, var->port);
  18793 	return buf;
  18794 }
  18795 
  18796 uint8 *
  18797 _bcm_pack_stat_counter_command_id_key(uint8 *buf, bcm_stat_counter_command_id_key_t *var)
  18798 {
  18799 	BCM_PACK_U32(buf, var->core_id);
  18800 	BCM_PACK_U32(buf, var->source);
  18801 	BCM_PACK_U32(buf, var->command_id);
  18802 	return buf;
  18803 }
  18804 
  18805 uint8 *
  18806 _bcm_unpack_stat_counter_command_id_key(uint8 *buf, bcm_stat_counter_command_id_key_t *var)
  18807 {
  18808 	BCM_UNPACK_U32(buf, var->core_id);
  18809 	BCM_UNPACK_U32(buf, var->source);
  18810 	BCM_UNPACK_U32(buf, var->command_id);
  18811 	return buf;
  18812 }
  18813 
  18814 uint8 *
  18815 _bcm_pack_stat_counter_config(uint8 *buf, bcm_stat_counter_config_t *var)
  18816 {
  18817 	BCM_PACK_U32(buf, var->format.format_type);
  18818 	BCM_PACK_U32(buf, var->format.counter_set_mapping.counter_set_size);
  18819 	BCM_PACK_U32(buf, var->format.counter_set_mapping.num_of_mapping_entries);
  18820 	{
  18821 		int _i;
  18822 
  18823 		for (_i = 0; _i < 8; _i++) {
  18824 			BCM_PACK_U32(buf, var->format.counter_set_mapping.entry_mapping[_i].entry.color);
  18825 			BCM_PACK_U8(buf, var->format.counter_set_mapping.entry_mapping[_i].entry.is_forward_not_drop);
  18826 			BCM_PACK_U32(buf, var->format.counter_set_mapping.entry_mapping[_i].offset);
  18827 		}
  18828 	}
  18829 	BCM_PACK_U32(buf, var->source.core_id);
  18830 	BCM_PACK_U32(buf, var->source.engine_source);
  18831 	BCM_PACK_U32(buf, var->source.pointer_range.start);
  18832 	BCM_PACK_U32(buf, var->source.pointer_range.end);
  18833 	BCM_PACK_U32(buf, var->source.command_id);
  18834 	BCM_PACK_U32(buf, var->source.num_voqs_per_entry);
  18835 	BCM_PACK_U32(buf, var->source.offset);
  18836 	return buf;
  18837 }
  18838 
  18839 uint8 *
  18840 _bcm_unpack_stat_counter_config(uint8 *buf, bcm_stat_counter_config_t *var)
  18841 {
  18842 	BCM_UNPACK_U32(buf, var->format.format_type);
  18843 	BCM_UNPACK_U32(buf, var->format.counter_set_mapping.counter_set_size);
  18844 	BCM_UNPACK_U32(buf, var->format.counter_set_mapping.num_of_mapping_entries);
  18845 	{
  18846 		int _i;
  18847 
  18848 		for (_i = 0; _i < 8; _i++) {
  18849 			BCM_UNPACK_U32(buf, var->format.counter_set_mapping.entry_mapping[_i].entry.color);
  18850 			BCM_UNPACK_U8(buf, var->format.counter_set_mapping.entry_mapping[_i].entry.is_forward_not_drop);
  18851 			BCM_UNPACK_U32(buf, var->format.counter_set_mapping.entry_mapping[_i].offset);
  18852 		}
  18853 	}
  18854 	BCM_UNPACK_U32(buf, var->source.core_id);
  18855 	BCM_UNPACK_U32(buf, var->source.engine_source);
  18856 	BCM_UNPACK_U32(buf, var->source.pointer_range.start);
  18857 	BCM_UNPACK_U32(buf, var->source.pointer_range.end);
  18858 	BCM_UNPACK_U32(buf, var->source.command_id);
  18859 	BCM_UNPACK_U32(buf, var->source.num_voqs_per_entry);
  18860 	BCM_UNPACK_U32(buf, var->source.offset);
  18861 	return buf;
  18862 }
  18863 
  18864 uint8 *
  18865 _bcm_pack_stat_counter_database(uint8 *buf, bcm_stat_counter_database_t *var)
  18866 {
  18867 	BCM_PACK_U32(buf, var->database_id);
  18868 	BCM_PACK_U32(buf, var->core_id);
  18869 	return buf;
  18870 }
  18871 
  18872 uint8 *
  18873 _bcm_unpack_stat_counter_database(uint8 *buf, bcm_stat_counter_database_t *var)
  18874 {
  18875 	BCM_UNPACK_U32(buf, var->database_id);
  18876 	BCM_UNPACK_U32(buf, var->core_id);
  18877 	return buf;
  18878 }
  18879 
  18880 uint8 *
  18881 _bcm_pack_stat_counter_enable(uint8 *buf, bcm_stat_counter_enable_t *var)
  18882 {
  18883 	BCM_PACK_U32(buf, var->enable_counting);
  18884 	BCM_PACK_U32(buf, var->enable_eviction);
  18885 	return buf;
  18886 }
  18887 
  18888 uint8 *
  18889 _bcm_unpack_stat_counter_enable(uint8 *buf, bcm_stat_counter_enable_t *var)
  18890 {
  18891 	BCM_UNPACK_U32(buf, var->enable_counting);
  18892 	BCM_UNPACK_U32(buf, var->enable_eviction);
  18893 	return buf;
  18894 }
  18895 
  18896 uint8 *
  18897 _bcm_pack_stat_counter_engine(uint8 *buf, bcm_stat_counter_engine_t *var)
  18898 {
  18899 	BCM_PACK_U32(buf, var->flags);
  18900 	BCM_PACK_U32(buf, var->engine_id);
  18901 	return buf;
  18902 }
  18903 
  18904 uint8 *
  18905 _bcm_unpack_stat_counter_engine(uint8 *buf, bcm_stat_counter_engine_t *var)
  18906 {
  18907 	BCM_UNPACK_U32(buf, var->flags);
  18908 	BCM_UNPACK_U32(buf, var->engine_id);
  18909 	return buf;
  18910 }
  18911 
  18912 uint8 *
  18913 _bcm_pack_stat_counter_explicit_input_data(uint8 *buf, bcm_stat_counter_explicit_input_data_t *var)
  18914 {
  18915 	BCM_PACK_U32(buf, var->engine.engine_id);
  18916 	BCM_PACK_U32(buf, var->engine.core_id);
  18917 	BCM_PACK_U32(buf, var->object_stat_id);
  18918 	BCM_PACK_U32(buf, var->type_id);
  18919 	BCM_PACK_U32(buf, var->nstat);
  18920 	BCM_PACK_U32(buf, *var->stat_arr);
  18921 	return buf;
  18922 }
  18923 
  18924 uint8 *
  18925 _bcm_unpack_stat_counter_explicit_input_data(uint8 *buf, bcm_stat_counter_explicit_input_data_t *var)
  18926 {
  18927 	BCM_UNPACK_U32(buf, var->engine.engine_id);
  18928 	BCM_UNPACK_U32(buf, var->engine.core_id);
  18929 	BCM_UNPACK_U32(buf, var->object_stat_id);
  18930 	BCM_UNPACK_U32(buf, var->type_id);
  18931 	BCM_UNPACK_U32(buf, var->nstat);
  18932 	BCM_UNPACK_U32(buf, *var->stat_arr);
  18933 	return buf;
  18934 }
  18935 
  18936 uint8 *
  18937 _bcm_pack_stat_counter_interface_key(uint8 *buf, bcm_stat_counter_interface_key_t *var)
  18938 {
  18939 	BCM_PACK_U32(buf, var->core_id);
  18940 	BCM_PACK_U32(buf, var->interface_source);
  18941 	BCM_PACK_U32(buf, var->command_id);
  18942 	BCM_PACK_U32(buf, var->type_id);
  18943 	return buf;
  18944 }
  18945 
  18946 uint8 *
  18947 _bcm_unpack_stat_counter_interface_key(uint8 *buf, bcm_stat_counter_interface_key_t *var)
  18948 {
  18949 	BCM_UNPACK_U32(buf, var->core_id);
  18950 	BCM_UNPACK_U32(buf, var->interface_source);
  18951 	BCM_UNPACK_U32(buf, var->command_id);
  18952 	BCM_UNPACK_U32(buf, var->type_id);
  18953 	return buf;
  18954 }
  18955 
  18956 uint8 *
  18957 _bcm_pack_stat_counter_interface(uint8 *buf, bcm_stat_counter_interface_t *var)
  18958 {
  18959 	BCM_PACK_U32(buf, var->source);
  18960 	BCM_PACK_U32(buf, var->command_id);
  18961 	BCM_PACK_U32(buf, var->type_config[0].valid);
  18962 	BCM_PACK_U32(buf, var->type_config[0].object_type_offset);
  18963 	BCM_PACK_U32(buf, var->type_config[0].start);
  18964 	BCM_PACK_U32(buf, var->type_config[0].end);
  18965 	BCM_PACK_U32(buf, var->type_config[1].valid);
  18966 	BCM_PACK_U32(buf, var->type_config[1].object_type_offset);
  18967 	BCM_PACK_U32(buf, var->type_config[1].start);
  18968 	BCM_PACK_U32(buf, var->type_config[1].end);
  18969 	BCM_PACK_U32(buf, var->type_config[2].valid);
  18970 	BCM_PACK_U32(buf, var->type_config[2].object_type_offset);
  18971 	BCM_PACK_U32(buf, var->type_config[2].start);
  18972 	BCM_PACK_U32(buf, var->type_config[2].end);
  18973 	BCM_PACK_U32(buf, var->type_config[3].valid);
  18974 	BCM_PACK_U32(buf, var->type_config[3].object_type_offset);
  18975 	BCM_PACK_U32(buf, var->type_config[3].start);
  18976 	BCM_PACK_U32(buf, var->type_config[3].end);
  18977 	BCM_PACK_U32(buf, var->format_type);
  18978 	BCM_PACK_U32(buf, var->counter_set_size);
  18979 	return buf;
  18980 }
  18981 
  18982 uint8 *
  18983 _bcm_unpack_stat_counter_interface(uint8 *buf, bcm_stat_counter_interface_t *var)
  18984 {
  18985 	BCM_UNPACK_U32(buf, var->source);
  18986 	BCM_UNPACK_U32(buf, var->command_id);
  18987 	BCM_UNPACK_U32(buf, var->type_config[0].valid);
  18988 	BCM_UNPACK_U32(buf, var->type_config[0].object_type_offset);
  18989 	BCM_UNPACK_U32(buf, var->type_config[0].start);
  18990 	BCM_UNPACK_U32(buf, var->type_config[0].end);
  18991 	BCM_UNPACK_U32(buf, var->type_config[1].valid);
  18992 	BCM_UNPACK_U32(buf, var->type_config[1].object_type_offset);
  18993 	BCM_UNPACK_U32(buf, var->type_config[1].start);
  18994 	BCM_UNPACK_U32(buf, var->type_config[1].end);
  18995 	BCM_UNPACK_U32(buf, var->type_config[2].valid);
  18996 	BCM_UNPACK_U32(buf, var->type_config[2].object_type_offset);
  18997 	BCM_UNPACK_U32(buf, var->type_config[2].start);
  18998 	BCM_UNPACK_U32(buf, var->type_config[2].end);
  18999 	BCM_UNPACK_U32(buf, var->type_config[3].valid);
  19000 	BCM_UNPACK_U32(buf, var->type_config[3].object_type_offset);
  19001 	BCM_UNPACK_U32(buf, var->type_config[3].start);
  19002 	BCM_UNPACK_U32(buf, var->type_config[3].end);
  19003 	BCM_UNPACK_U32(buf, var->format_type);
  19004 	BCM_UNPACK_U32(buf, var->counter_set_size);
  19005 	return buf;
  19006 }
  19007 
  19008 uint8 *
  19009 _bcm_pack_stat_counter_lif_counting_range(uint8 *buf, bcm_stat_counter_lif_counting_range_t *var)
  19010 {
  19011 	BCM_PACK_U32(buf, var->start);
  19012 	BCM_PACK_U32(buf, var->end);
  19013 	BCM_PACK_U32(buf, var->is_double_entry);
  19014 	return buf;
  19015 }
  19016 
  19017 uint8 *
  19018 _bcm_unpack_stat_counter_lif_counting_range(uint8 *buf, bcm_stat_counter_lif_counting_range_t *var)
  19019 {
  19020 	BCM_UNPACK_U32(buf, var->start);
  19021 	BCM_UNPACK_U32(buf, var->end);
  19022 	BCM_UNPACK_U32(buf, var->is_double_entry);
  19023 	return buf;
  19024 }
  19025 
  19026 uint8 *
  19027 _bcm_pack_stat_counter_lif_mask(uint8 *buf, bcm_stat_counter_lif_mask_t *var)
  19028 {
  19029 	BCM_PACK_U32(buf, var->lif_counting_mask[0]);
  19030 	BCM_PACK_U32(buf, var->lif_counting_mask[1]);
  19031 	BCM_PACK_U32(buf, var->lif_counting_mask[2]);
  19032 	BCM_PACK_U32(buf, var->lif_counting_mask[3]);
  19033 	return buf;
  19034 }
  19035 
  19036 uint8 *
  19037 _bcm_unpack_stat_counter_lif_mask(uint8 *buf, bcm_stat_counter_lif_mask_t *var)
  19038 {
  19039 	BCM_UNPACK_U32(buf, var->lif_counting_mask[0]);
  19040 	BCM_UNPACK_U32(buf, var->lif_counting_mask[1]);
  19041 	BCM_UNPACK_U32(buf, var->lif_counting_mask[2]);
  19042 	BCM_UNPACK_U32(buf, var->lif_counting_mask[3]);
  19043 	return buf;
  19044 }
  19045 
  19046 uint8 *
  19047 _bcm_pack_stat_counter_output_data(uint8 *buf, bcm_stat_counter_output_data_t *var)
  19048 {
  19049 	{
  19050 		uint32 _u32;
  19051 
  19052 		_u32 = COMPILER_64_HI(var->value_arr->value);
  19053 		BCM_PACK_U32(buf, _u32);
  19054 		_u32 = COMPILER_64_LO(var->value_arr->value);
  19055 		BCM_PACK_U32(buf, _u32);
  19056 	}
  19057 	return buf;
  19058 }
  19059 
  19060 uint8 *
  19061 _bcm_unpack_stat_counter_output_data(uint8 *buf, bcm_stat_counter_output_data_t *var)
  19062 {
  19063 	{
  19064 		uint32 _u32h, _u32l;
  19065 
  19066 		BCM_UNPACK_U32(buf, _u32h);
  19067 		BCM_UNPACK_U32(buf, _u32l);
  19068 		COMPILER_64_SET(var->value_arr->value, _u32h, _u32l);
  19069 	}
  19070 	return buf;
  19071 }
  19072 
  19073 uint8 *
  19074 _bcm_pack_stat_counter_set_map(uint8 *buf, bcm_stat_counter_set_map_t *var)
  19075 {
  19076 	BCM_PACK_U32(buf, var->nof_entries);
  19077 	BCM_PACK_U32(buf, var->expansion_data_mapping->nof_key_conditions);
  19078 	{
  19079 		int _i;
  19080 
  19081 		for (_i = 0; _i < 7; _i++) {
  19082 			BCM_PACK_U32(buf, var->expansion_data_mapping->key[_i].type);
  19083 			BCM_PACK_U32(buf, var->expansion_data_mapping->key[_i].value);
  19084 		}
  19085 	}
  19086 	BCM_PACK_U32(buf, var->expansion_data_mapping->value.counter_set_offset);
  19087 	BCM_PACK_U32(buf, var->expansion_data_mapping->value.valid);
  19088 	return buf;
  19089 }
  19090 
  19091 uint8 *
  19092 _bcm_unpack_stat_counter_set_map(uint8 *buf, bcm_stat_counter_set_map_t *var)
  19093 {
  19094 	BCM_UNPACK_U32(buf, var->nof_entries);
  19095 	BCM_UNPACK_U32(buf, var->expansion_data_mapping->nof_key_conditions);
  19096 	{
  19097 		int _i;
  19098 
  19099 		for (_i = 0; _i < 7; _i++) {
  19100 			BCM_UNPACK_U32(buf, var->expansion_data_mapping->key[_i].type);
  19101 			BCM_UNPACK_U32(buf, var->expansion_data_mapping->key[_i].value);
  19102 		}
  19103 	}
  19104 	BCM_UNPACK_U32(buf, var->expansion_data_mapping->value.counter_set_offset);
  19105 	BCM_UNPACK_U32(buf, var->expansion_data_mapping->value.valid);
  19106 	return buf;
  19107 }
  19108 
  19109 uint8 *
  19110 _bcm_pack_stat_counter_source(uint8 *buf, bcm_stat_counter_source_t *var)
  19111 {
  19112 	BCM_PACK_U32(buf, var->core_id);
  19113 	BCM_PACK_U32(buf, var->engine_source);
  19114 	BCM_PACK_U32(buf, var->pointer_range.start);
  19115 	BCM_PACK_U32(buf, var->pointer_range.end);
  19116 	BCM_PACK_U32(buf, var->command_id);
  19117 	BCM_PACK_U32(buf, var->num_voqs_per_entry);
  19118 	BCM_PACK_U32(buf, var->offset);
  19119 	return buf;
  19120 }
  19121 
  19122 uint8 *
  19123 _bcm_unpack_stat_counter_source(uint8 *buf, bcm_stat_counter_source_t *var)
  19124 {
  19125 	BCM_UNPACK_U32(buf, var->core_id);
  19126 	BCM_UNPACK_U32(buf, var->engine_source);
  19127 	BCM_UNPACK_U32(buf, var->pointer_range.start);
  19128 	BCM_UNPACK_U32(buf, var->pointer_range.end);
  19129 	BCM_UNPACK_U32(buf, var->command_id);
  19130 	BCM_UNPACK_U32(buf, var->num_voqs_per_entry);
  19131 	BCM_UNPACK_U32(buf, var->offset);
  19132 	return buf;
  19133 }
  19134 
  19135 uint8 *
  19136 _bcm_pack_stat_custom_counter_info(uint8 *buf, bcm_stat_custom_counter_info_t *var)
  19137 {
  19138 	BCM_PACK_U32(buf, var->ctr_tbl_mode_id);
  19139 	BCM_PACK_U32(buf, var->ctr_tbl_pool_id);
  19140 	BCM_PACK_U32(buf, var->ctr_tbl_pool_base_idx);
  19141 	BCM_PACK_U32(buf, var->offset_tbl_base_idx);
  19142 	BCM_PACK_U32(buf, var->num_counters);
  19143 	BCM_PACK_U32(buf, var->stat_counter_id);
  19144 	BCM_PACK_U32(buf, var->object);
  19145 	return buf;
  19146 }
  19147 
  19148 uint8 *
  19149 _bcm_unpack_stat_custom_counter_info(uint8 *buf, bcm_stat_custom_counter_info_t *var)
  19150 {
  19151 	BCM_UNPACK_U32(buf, var->ctr_tbl_mode_id);
  19152 	BCM_UNPACK_U32(buf, var->ctr_tbl_pool_id);
  19153 	BCM_UNPACK_U32(buf, var->ctr_tbl_pool_base_idx);
  19154 	BCM_UNPACK_U32(buf, var->offset_tbl_base_idx);
  19155 	BCM_UNPACK_U32(buf, var->num_counters);
  19156 	BCM_UNPACK_U32(buf, var->stat_counter_id);
  19157 	BCM_UNPACK_U32(buf, var->object);
  19158 	return buf;
  19159 }
  19160 
  19161 uint8 *
  19162 _bcm_pack_stat_egress_receive_tm_pointer_format(uint8 *buf, bcm_stat_egress_receive_tm_pointer_format_t *var)
  19163 {
  19164 	BCM_PACK_U32(buf, var->queue_pair_mask);
  19165 	BCM_PACK_U32(buf, var->traffic_class_mask);
  19166 	BCM_PACK_U32(buf, var->cast_mask);
  19167 	return buf;
  19168 }
  19169 
  19170 uint8 *
  19171 _bcm_unpack_stat_egress_receive_tm_pointer_format(uint8 *buf, bcm_stat_egress_receive_tm_pointer_format_t *var)
  19172 {
  19173 	BCM_UNPACK_U32(buf, var->queue_pair_mask);
  19174 	BCM_UNPACK_U32(buf, var->traffic_class_mask);
  19175 	BCM_UNPACK_U32(buf, var->cast_mask);
  19176 	return buf;
  19177 }
  19178 
  19179 uint8 *
  19180 _bcm_pack_stat_engine(uint8 *buf, bcm_stat_engine_t *var)
  19181 {
  19182 	BCM_PACK_U32(buf, var->engine_id);
  19183 	BCM_PACK_U32(buf, var->core_id);
  19184 	return buf;
  19185 }
  19186 
  19187 uint8 *
  19188 _bcm_unpack_stat_engine(uint8 *buf, bcm_stat_engine_t *var)
  19189 {
  19190 	BCM_UNPACK_U32(buf, var->engine_id);
  19191 	BCM_UNPACK_U32(buf, var->core_id);
  19192 	return buf;
  19193 }
  19194 
  19195 uint8 *
  19196 _bcm_pack_stat_eviction_boundaries(uint8 *buf, bcm_stat_eviction_boundaries_t *var)
  19197 {
  19198 	BCM_PACK_U32(buf, var->start);
  19199 	BCM_PACK_U32(buf, var->end);
  19200 	return buf;
  19201 }
  19202 
  19203 uint8 *
  19204 _bcm_unpack_stat_eviction_boundaries(uint8 *buf, bcm_stat_eviction_boundaries_t *var)
  19205 {
  19206 	BCM_UNPACK_U32(buf, var->start);
  19207 	BCM_UNPACK_U32(buf, var->end);
  19208 	return buf;
  19209 }
  19210 
  19211 uint8 *
  19212 _bcm_pack_stat_eviction(uint8 *buf, bcm_stat_eviction_t *var)
  19213 {
  19214 	BCM_PACK_U32(buf, var->dma_fifo_select);
  19215 	BCM_PACK_U32(buf, var->type);
  19216 	BCM_PACK_U32(buf, var->record_format);
  19217 	BCM_PACK_U32(buf, var->eviction_event_id);
  19218 	return buf;
  19219 }
  19220 
  19221 uint8 *
  19222 _bcm_unpack_stat_eviction(uint8 *buf, bcm_stat_eviction_t *var)
  19223 {
  19224 	BCM_UNPACK_U32(buf, var->dma_fifo_select);
  19225 	BCM_UNPACK_U32(buf, var->type);
  19226 	BCM_UNPACK_U32(buf, var->record_format);
  19227 	BCM_UNPACK_U32(buf, var->eviction_event_id);
  19228 	return buf;
  19229 }
  19230 
  19231 uint8 *
  19232 _bcm_pack_stat_expansion_select(uint8 *buf, bcm_stat_expansion_select_t *var)
  19233 {
  19234 	BCM_PACK_U32(buf, var->nof_elements);
  19235 	{
  19236 		int _i;
  19237 
  19238 		for (_i = 0; _i < 22; _i++) {
  19239 			BCM_PACK_U32(buf, var->expansion_elements[_i].type);
  19240 			BCM_PACK_U32(buf, var->expansion_elements[_i].bitmap);
  19241 		}
  19242 	}
  19243 	return buf;
  19244 }
  19245 
  19246 uint8 *
  19247 _bcm_unpack_stat_expansion_select(uint8 *buf, bcm_stat_expansion_select_t *var)
  19248 {
  19249 	BCM_UNPACK_U32(buf, var->nof_elements);
  19250 	{
  19251 		int _i;
  19252 
  19253 		for (_i = 0; _i < 22; _i++) {
  19254 			BCM_UNPACK_U32(buf, var->expansion_elements[_i].type);
  19255 			BCM_UNPACK_U32(buf, var->expansion_elements[_i].bitmap);
  19256 		}
  19257 	}
  19258 	return buf;
  19259 }
  19260 
  19261 uint8 *
  19262 _bcm_pack_stat_flex_pool_stat_info(uint8 *buf, bcm_stat_flex_pool_stat_info_t *var)
  19263 {
  19264 	BCM_PACK_U32(buf, var->pool_id);
  19265 	BCM_PACK_U32(buf, var->total_entries);
  19266 	BCM_PACK_U32(buf, var->used_entries);
  19267 	BCM_PACK_U32(buf, var->attached_entries);
  19268 	BCM_PACK_U32(buf, var->free_entries);
  19269 	BCM_PACK_U32(buf, var->used_by_objects[0]);
  19270 	BCM_PACK_U32(buf, var->used_by_objects[1]);
  19271 	return buf;
  19272 }
  19273 
  19274 uint8 *
  19275 _bcm_unpack_stat_flex_pool_stat_info(uint8 *buf, bcm_stat_flex_pool_stat_info_t *var)
  19276 {
  19277 	BCM_UNPACK_U32(buf, var->pool_id);
  19278 	BCM_UNPACK_U32(buf, var->total_entries);
  19279 	BCM_UNPACK_U32(buf, var->used_entries);
  19280 	BCM_UNPACK_U32(buf, var->attached_entries);
  19281 	BCM_UNPACK_U32(buf, var->free_entries);
  19282 	BCM_UNPACK_U32(buf, var->used_by_objects[0]);
  19283 	BCM_UNPACK_U32(buf, var->used_by_objects[1]);
  19284 	return buf;
  19285 }
  19286 
  19287 uint8 *
  19288 _bcm_pack_stat_group_mode_attr_selector(uint8 *buf, bcm_stat_group_mode_attr_selector_t *var)
  19289 {
  19290 	BCM_PACK_U32(buf, var->counter_offset);
  19291 	BCM_PACK_U32(buf, var->attr);
  19292 	BCM_PACK_U32(buf, var->attr_value);
  19293 	BCM_PACK_U32(buf, var->udf_bitmap);
  19294 	return buf;
  19295 }
  19296 
  19297 uint8 *
  19298 _bcm_unpack_stat_group_mode_attr_selector(uint8 *buf, bcm_stat_group_mode_attr_selector_t *var)
  19299 {
  19300 	BCM_UNPACK_U32(buf, var->counter_offset);
  19301 	BCM_UNPACK_U32(buf, var->attr);
  19302 	BCM_UNPACK_U32(buf, var->attr_value);
  19303 	BCM_UNPACK_U32(buf, var->udf_bitmap);
  19304 	return buf;
  19305 }
  19306 
  19307 uint8 *
  19308 _bcm_pack_stat_group_mode_id_config(uint8 *buf, bcm_stat_group_mode_id_config_t *var)
  19309 {
  19310 	BCM_PACK_U32(buf, var->flags);
  19311 	BCM_PACK_U32(buf, var->total_counters);
  19312 	BCM_PACK_U32(buf, var->hint.type);
  19313 	BCM_PACK_U32(buf, var->hint.value);
  19314 	return buf;
  19315 }
  19316 
  19317 uint8 *
  19318 _bcm_unpack_stat_group_mode_id_config(uint8 *buf, bcm_stat_group_mode_id_config_t *var)
  19319 {
  19320 	BCM_UNPACK_U32(buf, var->flags);
  19321 	BCM_UNPACK_U32(buf, var->total_counters);
  19322 	BCM_UNPACK_U32(buf, var->hint.type);
  19323 	BCM_UNPACK_U32(buf, var->hint.value);
  19324 	return buf;
  19325 }
  19326 
  19327 uint8 *
  19328 _bcm_pack_stat_latency_port_stat_id_key(uint8 *buf, bcm_stat_latency_port_stat_id_key_t *var)
  19329 {
  19330 	BCM_PACK_U32(buf, var->is_multicast);
  19331 	BCM_PACK_U32(buf, var->traffic_class);
  19332 	BCM_PACK_U32(buf, var->port);
  19333 	return buf;
  19334 }
  19335 
  19336 uint8 *
  19337 _bcm_unpack_stat_latency_port_stat_id_key(uint8 *buf, bcm_stat_latency_port_stat_id_key_t *var)
  19338 {
  19339 	BCM_UNPACK_U32(buf, var->is_multicast);
  19340 	BCM_UNPACK_U32(buf, var->traffic_class);
  19341 	BCM_UNPACK_U32(buf, var->port);
  19342 	return buf;
  19343 }
  19344 
  19345 uint8 *
  19346 _bcm_pack_stat_lif_counting_source(uint8 *buf, bcm_stat_lif_counting_source_t *var)
  19347 {
  19348 	BCM_PACK_U32(buf, var->type);
  19349 	BCM_PACK_U32(buf, var->command_id);
  19350 	BCM_PACK_U32(buf, var->stif_counter_id);
  19351 	BCM_PACK_U32(buf, var->offset);
  19352 	BCM_PACK_U32(buf, var->engine_range_offset);
  19353 	return buf;
  19354 }
  19355 
  19356 uint8 *
  19357 _bcm_unpack_stat_lif_counting_source(uint8 *buf, bcm_stat_lif_counting_source_t *var)
  19358 {
  19359 	BCM_UNPACK_U32(buf, var->type);
  19360 	BCM_UNPACK_U32(buf, var->command_id);
  19361 	BCM_UNPACK_U32(buf, var->stif_counter_id);
  19362 	BCM_UNPACK_U32(buf, var->offset);
  19363 	BCM_UNPACK_U32(buf, var->engine_range_offset);
  19364 	return buf;
  19365 }
  19366 
  19367 uint8 *
  19368 _bcm_pack_stat_lif_counting(uint8 *buf, bcm_stat_lif_counting_t *var)
  19369 {
  19370 	BCM_PACK_U32(buf, var->source.type);
  19371 	BCM_PACK_U32(buf, var->source.command_id);
  19372 	BCM_PACK_U32(buf, var->source.stif_counter_id);
  19373 	BCM_PACK_U32(buf, var->source.offset);
  19374 	BCM_PACK_U32(buf, var->source.engine_range_offset);
  19375 	BCM_PACK_U32(buf, var->range.start);
  19376 	BCM_PACK_U32(buf, var->range.end);
  19377 	BCM_PACK_U32(buf, var->range.is_double_entry);
  19378 	return buf;
  19379 }
  19380 
  19381 uint8 *
  19382 _bcm_unpack_stat_lif_counting(uint8 *buf, bcm_stat_lif_counting_t *var)
  19383 {
  19384 	BCM_UNPACK_U32(buf, var->source.type);
  19385 	BCM_UNPACK_U32(buf, var->source.command_id);
  19386 	BCM_UNPACK_U32(buf, var->source.stif_counter_id);
  19387 	BCM_UNPACK_U32(buf, var->source.offset);
  19388 	BCM_UNPACK_U32(buf, var->source.engine_range_offset);
  19389 	BCM_UNPACK_U32(buf, var->range.start);
  19390 	BCM_UNPACK_U32(buf, var->range.end);
  19391 	BCM_UNPACK_U32(buf, var->range.is_double_entry);
  19392 	return buf;
  19393 }
  19394 
  19395 uint8 *
  19396 _bcm_pack_stat_pp_info(uint8 *buf, bcm_stat_pp_info_t *var)
  19397 {
  19398 	BCM_PACK_U32(buf, var->flags);
  19399 	BCM_PACK_U32(buf, var->stat_id);
  19400 	BCM_PACK_U32(buf, var->stat_pp_profile);
  19401 	return buf;
  19402 }
  19403 
  19404 uint8 *
  19405 _bcm_unpack_stat_pp_info(uint8 *buf, bcm_stat_pp_info_t *var)
  19406 {
  19407 	BCM_UNPACK_U32(buf, var->flags);
  19408 	BCM_UNPACK_U32(buf, var->stat_id);
  19409 	BCM_UNPACK_U32(buf, var->stat_pp_profile);
  19410 	return buf;
  19411 }
  19412 
  19413 uint8 *
  19414 _bcm_pack_stat_pp_profile_info(uint8 *buf, bcm_stat_pp_profile_info_t *var)
  19415 {
  19416 	BCM_PACK_U32(buf, var->counter_command_id);
  19417 	BCM_PACK_U32(buf, var->stat_object_type);
  19418 	BCM_PACK_U32(buf, var->meter_command_id);
  19419 	BCM_PACK_U32(buf, var->meter_qos_map_id);
  19420 	BCM_PACK_U8(buf, var->is_meter_enable);
  19421 	BCM_PACK_U8(buf, var->is_fp_cs_var);
  19422 	return buf;
  19423 }
  19424 
  19425 uint8 *
  19426 _bcm_unpack_stat_pp_profile_info(uint8 *buf, bcm_stat_pp_profile_info_t *var)
  19427 {
  19428 	BCM_UNPACK_U32(buf, var->counter_command_id);
  19429 	BCM_UNPACK_U32(buf, var->stat_object_type);
  19430 	BCM_UNPACK_U32(buf, var->meter_command_id);
  19431 	BCM_UNPACK_U32(buf, var->meter_qos_map_id);
  19432 	BCM_UNPACK_U8(buf, var->is_meter_enable);
  19433 	BCM_UNPACK_U8(buf, var->is_fp_cs_var);
  19434 	return buf;
  19435 }
  19436 
  19437 uint8 *
  19438 _bcm_pack_stat_stif_record_format_element(uint8 *buf, bcm_stat_stif_record_format_element_t *var)
  19439 {
  19440 	BCM_PACK_U32(buf, var->element_type);
  19441 	BCM_PACK_U32(buf, var->mask);
  19442 	return buf;
  19443 }
  19444 
  19445 uint8 *
  19446 _bcm_unpack_stat_stif_record_format_element(uint8 *buf, bcm_stat_stif_record_format_element_t *var)
  19447 {
  19448 	BCM_UNPACK_U32(buf, var->element_type);
  19449 	BCM_UNPACK_U32(buf, var->mask);
  19450 	return buf;
  19451 }
  19452 
  19453 uint8 *
  19454 _bcm_pack_stat_stif_source(uint8 *buf, bcm_stat_stif_source_t *var)
  19455 {
  19456 	BCM_PACK_U32(buf, var->core);
  19457 	BCM_PACK_U32(buf, var->src_type);
  19458 	return buf;
  19459 }
  19460 
  19461 uint8 *
  19462 _bcm_unpack_stat_stif_source(uint8 *buf, bcm_stat_stif_source_t *var)
  19463 {
  19464 	BCM_UNPACK_U32(buf, var->core);
  19465 	BCM_UNPACK_U32(buf, var->src_type);
  19466 	return buf;
  19467 }
  19468 
  19469 uint8 *
  19470 _bcm_pack_stat_threshold(uint8 *buf, bcm_stat_threshold_t *var)
  19471 {
  19472 	BCM_PACK_U32(buf, var->type);
  19473 	BCM_PACK_U32(buf, var->flags);
  19474 	BCM_PACK_U32(buf, var->arg1);
  19475 	BCM_PACK_U32(buf, var->arg2);
  19476 	return buf;
  19477 }
  19478 
  19479 uint8 *
  19480 _bcm_unpack_stat_threshold(uint8 *buf, bcm_stat_threshold_t *var)
  19481 {
  19482 	BCM_UNPACK_U32(buf, var->type);
  19483 	BCM_UNPACK_U32(buf, var->flags);
  19484 	BCM_UNPACK_U32(buf, var->arg1);
  19485 	BCM_UNPACK_U32(buf, var->arg2);
  19486 	return buf;
  19487 }
  19488 
  19489 uint8 *
  19490 _bcm_pack_stat_value(uint8 *buf, bcm_stat_value_t *var)
  19491 {
  19492 	BCM_PACK_U32(buf, var->packets);
  19493 	{
  19494 		uint32 _u32;
  19495 
  19496 		_u32 = COMPILER_64_HI(var->bytes);
  19497 		BCM_PACK_U32(buf, _u32);
  19498 		_u32 = COMPILER_64_LO(var->bytes);
  19499 		BCM_PACK_U32(buf, _u32);
  19500 	}
  19501 	{
  19502 		uint32 _u32;
  19503 
  19504 		_u32 = COMPILER_64_HI(var->packets64);
  19505 		BCM_PACK_U32(buf, _u32);
  19506 		_u32 = COMPILER_64_LO(var->packets64);
  19507 		BCM_PACK_U32(buf, _u32);
  19508 	}
  19509 	return buf;
  19510 }
  19511 
  19512 uint8 *
  19513 _bcm_unpack_stat_value(uint8 *buf, bcm_stat_value_t *var)
  19514 {
  19515 	BCM_UNPACK_U32(buf, var->packets);
  19516 	{
  19517 		uint32 _u32h, _u32l;
  19518 
  19519 		BCM_UNPACK_U32(buf, _u32h);
  19520 		BCM_UNPACK_U32(buf, _u32l);
  19521 		COMPILER_64_SET(var->bytes, _u32h, _u32l);
  19522 	}
  19523 	{
  19524 		uint32 _u32h, _u32l;
  19525 
  19526 		BCM_UNPACK_U32(buf, _u32h);
  19527 		BCM_UNPACK_U32(buf, _u32l);
  19528 		COMPILER_64_SET(var->packets64, _u32h, _u32l);
  19529 	}
  19530 	return buf;
  19531 }
  19532 
  19533 uint8 *
  19534 _bcm_pack_stk_modid_config(uint8 *buf, bcm_stk_modid_config_t *var)
  19535 {
  19536 	BCM_PACK_U32(buf, var->flags);
  19537 	BCM_PACK_U32(buf, var->modid);
  19538 	BCM_PACK_U32(buf, var->num_ports);
  19539 	BCM_PACK_U32(buf, var->modid_type);
  19540 	BCM_PACK_U32(buf, var->num_mods);
  19541 	return buf;
  19542 }
  19543 
  19544 uint8 *
  19545 _bcm_unpack_stk_modid_config(uint8 *buf, bcm_stk_modid_config_t *var)
  19546 {
  19547 	BCM_UNPACK_U32(buf, var->flags);
  19548 	BCM_UNPACK_U32(buf, var->modid);
  19549 	BCM_UNPACK_U32(buf, var->num_ports);
  19550 	BCM_UNPACK_U32(buf, var->modid_type);
  19551 	BCM_UNPACK_U32(buf, var->num_mods);
  19552 	return buf;
  19553 }
  19554 
  19555 uint8 *
  19556 _bcm_pack_stk_system_gport_map(uint8 *buf, bcm_stk_system_gport_map_t *var)
  19557 {
  19558 	BCM_PACK_U32(buf, var->flags);
  19559 	BCM_PACK_U32(buf, var->modid);
  19560 	BCM_PACK_U32(buf, var->dest_gport);
  19561 	BCM_PACK_U32(buf, var->system_gport);
  19562 	return buf;
  19563 }
  19564 
  19565 uint8 *
  19566 _bcm_unpack_stk_system_gport_map(uint8 *buf, bcm_stk_system_gport_map_t *var)
  19567 {
  19568 	BCM_UNPACK_U32(buf, var->flags);
  19569 	BCM_UNPACK_U32(buf, var->modid);
  19570 	BCM_UNPACK_U32(buf, var->dest_gport);
  19571 	BCM_UNPACK_U32(buf, var->system_gport);
  19572 	return buf;
  19573 }
  19574 
  19575 uint8 *
  19576 _bcm_pack_subport_config(uint8 *buf, bcm_subport_config_t *var)
  19577 {
  19578 	BCM_PACK_U32(buf, var->group);
  19579 	BCM_PACK_U16(buf, var->pkt_vlan);
  19580 	BCM_PACK_U16(buf, var->inner_vlan);
  19581 	BCM_PACK_U16(buf, var->outer_vlan);
  19582 	BCM_PACK_U32(buf, var->int_pri);
  19583 	BCM_PACK_U32(buf, var->prop_flags);
  19584 	BCM_PACK_U16(buf, var->stream_id_array[0]);
  19585 	BCM_PACK_U16(buf, var->stream_id_array[1]);
  19586 	BCM_PACK_U32(buf, var->num_streams);
  19587 	BCM_PACK_U32(buf, var->color);
  19588 	BCM_PACK_U32(buf, var->criteria);
  19589 	BCM_PACK_U32(buf, var->subport_modport);
  19590 	return buf;
  19591 }
  19592 
  19593 uint8 *
  19594 _bcm_unpack_subport_config(uint8 *buf, bcm_subport_config_t *var)
  19595 {
  19596 	BCM_UNPACK_U32(buf, var->group);
  19597 	BCM_UNPACK_U16(buf, var->pkt_vlan);
  19598 	BCM_UNPACK_U16(buf, var->inner_vlan);
  19599 	BCM_UNPACK_U16(buf, var->outer_vlan);
  19600 	BCM_UNPACK_U32(buf, var->int_pri);
  19601 	BCM_UNPACK_U32(buf, var->prop_flags);
  19602 	BCM_UNPACK_U16(buf, var->stream_id_array[0]);
  19603 	BCM_UNPACK_U16(buf, var->stream_id_array[1]);
  19604 	BCM_UNPACK_U32(buf, var->num_streams);
  19605 	BCM_UNPACK_U32(buf, var->color);
  19606 	BCM_UNPACK_U32(buf, var->criteria);
  19607 	BCM_UNPACK_U32(buf, var->subport_modport);
  19608 	return buf;
  19609 }
  19610 
  19611 uint8 *
  19612 _bcm_pack_subport_group_config(uint8 *buf, bcm_subport_group_config_t *var)
  19613 {
  19614 	BCM_PACK_U32(buf, var->flags);
  19615 	BCM_PACK_U32(buf, var->port);
  19616 	BCM_PACK_U16(buf, var->vlan);
  19617 	BCM_PACK_U32(buf, var->if_class);
  19618 	BCM_PACK_U32(buf, var->prop_flags);
  19619 	BCM_PACK_U32(buf, var->queue_base);
  19620 	BCM_PACK_U32(buf, var->qos_map_id);
  19621 	return buf;
  19622 }
  19623 
  19624 uint8 *
  19625 _bcm_unpack_subport_group_config(uint8 *buf, bcm_subport_group_config_t *var)
  19626 {
  19627 	BCM_UNPACK_U32(buf, var->flags);
  19628 	BCM_UNPACK_U32(buf, var->port);
  19629 	BCM_UNPACK_U16(buf, var->vlan);
  19630 	BCM_UNPACK_U32(buf, var->if_class);
  19631 	BCM_UNPACK_U32(buf, var->prop_flags);
  19632 	BCM_UNPACK_U32(buf, var->queue_base);
  19633 	BCM_UNPACK_U32(buf, var->qos_map_id);
  19634 	return buf;
  19635 }
  19636 
  19637 uint8 *
  19638 _bcm_pack_subport_group_linkphy_config(uint8 *buf, bcm_subport_group_linkphy_config_t *var)
  19639 {
  19640 	BCM_PACK_U32(buf, var->action_mask);
  19641 	BCM_PACK_U16(buf, var->base_stream_id);
  19642 	BCM_PACK_U32(buf, var->header_mode);
  19643 	BCM_PACK_U32(buf, var->rx_check_flags);
  19644 	BCM_PACK_U16(buf, var->rx_vlan_tpid);
  19645 	{
  19646 		int _i;
  19647 
  19648 		for (_i = 0; _i < 6; _i++) {
  19649 			BCM_PACK_U8(buf, var->rx_nearend_mac[_i]);
  19650 		}
  19651 	}
  19652 	{
  19653 		int _i;
  19654 
  19655 		for (_i = 0; _i < 6; _i++) {
  19656 			BCM_PACK_U8(buf, var->rx_farend_mac[_i]);
  19657 		}
  19658 	}
  19659 	{
  19660 		int _i;
  19661 
  19662 		for (_i = 0; _i < 6; _i++) {
  19663 			BCM_PACK_U8(buf, var->rx_dfc_dest_mac[_i]);
  19664 		}
  19665 	}
  19666 	BCM_PACK_U16(buf, var->rx_dfc_opcode);
  19667 	BCM_PACK_U16(buf, var->rx_dfc_time);
  19668 	BCM_PACK_U16(buf, var->rx_dfc_mac_type);
  19669 	BCM_PACK_U16(buf, var->tx_vlan_tpid);
  19670 	{
  19671 		int _i;
  19672 
  19673 		for (_i = 0; _i < 6; _i++) {
  19674 			BCM_PACK_U8(buf, var->tx_nearend_mac[_i]);
  19675 		}
  19676 	}
  19677 	{
  19678 		int _i;
  19679 
  19680 		for (_i = 0; _i < 6; _i++) {
  19681 			BCM_PACK_U8(buf, var->tx_farend_mac[_i]);
  19682 		}
  19683 	}
  19684 	return buf;
  19685 }
  19686 
  19687 uint8 *
  19688 _bcm_unpack_subport_group_linkphy_config(uint8 *buf, bcm_subport_group_linkphy_config_t *var)
  19689 {
  19690 	BCM_UNPACK_U32(buf, var->action_mask);
  19691 	BCM_UNPACK_U16(buf, var->base_stream_id);
  19692 	BCM_UNPACK_U32(buf, var->header_mode);
  19693 	BCM_UNPACK_U32(buf, var->rx_check_flags);
  19694 	BCM_UNPACK_U16(buf, var->rx_vlan_tpid);
  19695 	{
  19696 		int _i;
  19697 
  19698 		for (_i = 0; _i < 6; _i++) {
  19699 			BCM_UNPACK_U8(buf, var->rx_nearend_mac[_i]);
  19700 		}
  19701 	}
  19702 	{
  19703 		int _i;
  19704 
  19705 		for (_i = 0; _i < 6; _i++) {
  19706 			BCM_UNPACK_U8(buf, var->rx_farend_mac[_i]);
  19707 		}
  19708 	}
  19709 	{
  19710 		int _i;
  19711 
  19712 		for (_i = 0; _i < 6; _i++) {
  19713 			BCM_UNPACK_U8(buf, var->rx_dfc_dest_mac[_i]);
  19714 		}
  19715 	}
  19716 	BCM_UNPACK_U16(buf, var->rx_dfc_opcode);
  19717 	BCM_UNPACK_U16(buf, var->rx_dfc_time);
  19718 	BCM_UNPACK_U16(buf, var->rx_dfc_mac_type);
  19719 	BCM_UNPACK_U16(buf, var->tx_vlan_tpid);
  19720 	{
  19721 		int _i;
  19722 
  19723 		for (_i = 0; _i < 6; _i++) {
  19724 			BCM_UNPACK_U8(buf, var->tx_nearend_mac[_i]);
  19725 		}
  19726 	}
  19727 	{
  19728 		int _i;
  19729 
  19730 		for (_i = 0; _i < 6; _i++) {
  19731 			BCM_UNPACK_U8(buf, var->tx_farend_mac[_i]);
  19732 		}
  19733 	}
  19734 	return buf;
  19735 }
  19736 
  19737 uint8 *
  19738 _bcm_pack_sum_config(uint8 *buf, bcm_sum_config_t *var)
  19739 {
  19740 	BCM_PACK_U32(buf, var->usec_sample_interval);
  19741 	BCM_PACK_U32(buf, var->max_history);
  19742 	BCM_PACK_U32(buf, var->sum_type);
  19743 	return buf;
  19744 }
  19745 
  19746 uint8 *
  19747 _bcm_unpack_sum_config(uint8 *buf, bcm_sum_config_t *var)
  19748 {
  19749 	BCM_UNPACK_U32(buf, var->usec_sample_interval);
  19750 	BCM_UNPACK_U32(buf, var->max_history);
  19751 	BCM_UNPACK_U32(buf, var->sum_type);
  19752 	return buf;
  19753 }
  19754 
  19755 uint8 *
  19756 _bcm_pack_sum_stat_info(uint8 *buf, bcm_sum_stat_info_t *var)
  19757 {
  19758 	{
  19759 		uint32 _u32;
  19760 
  19761 		_u32 = COMPILER_64_HI(var->sequence_num);
  19762 		BCM_PACK_U32(buf, _u32);
  19763 		_u32 = COMPILER_64_LO(var->sequence_num);
  19764 		BCM_PACK_U32(buf, _u32);
  19765 	}
  19766 	{
  19767 		uint32 _u32;
  19768 
  19769 		_u32 = COMPILER_64_HI(var->time_stamp);
  19770 		BCM_PACK_U32(buf, _u32);
  19771 		_u32 = COMPILER_64_LO(var->time_stamp);
  19772 		BCM_PACK_U32(buf, _u32);
  19773 	}
  19774 	{
  19775 		uint32 _u32;
  19776 
  19777 		_u32 = COMPILER_64_HI(var->tx_pkt_count);
  19778 		BCM_PACK_U32(buf, _u32);
  19779 		_u32 = COMPILER_64_LO(var->tx_pkt_count);
  19780 		BCM_PACK_U32(buf, _u32);
  19781 	}
  19782 	{
  19783 		uint32 _u32;
  19784 
  19785 		_u32 = COMPILER_64_HI(var->rx_pkt_count);
  19786 		BCM_PACK_U32(buf, _u32);
  19787 		_u32 = COMPILER_64_LO(var->rx_pkt_count);
  19788 		BCM_PACK_U32(buf, _u32);
  19789 	}
  19790 	{
  19791 		uint32 _u32;
  19792 
  19793 		_u32 = COMPILER_64_HI(var->tx_byte_count);
  19794 		BCM_PACK_U32(buf, _u32);
  19795 		_u32 = COMPILER_64_LO(var->tx_byte_count);
  19796 		BCM_PACK_U32(buf, _u32);
  19797 	}
  19798 	{
  19799 		uint32 _u32;
  19800 
  19801 		_u32 = COMPILER_64_HI(var->rx_byte_count);
  19802 		BCM_PACK_U32(buf, _u32);
  19803 		_u32 = COMPILER_64_LO(var->rx_byte_count);
  19804 		BCM_PACK_U32(buf, _u32);
  19805 	}
  19806 	BCM_PACK_U32(buf, var->sum_type);
  19807 	return buf;
  19808 }
  19809 
  19810 uint8 *
  19811 _bcm_unpack_sum_stat_info(uint8 *buf, bcm_sum_stat_info_t *var)
  19812 {
  19813 	{
  19814 		uint32 _u32h, _u32l;
  19815 
  19816 		BCM_UNPACK_U32(buf, _u32h);
  19817 		BCM_UNPACK_U32(buf, _u32l);
  19818 		COMPILER_64_SET(var->sequence_num, _u32h, _u32l);
  19819 	}
  19820 	{
  19821 		uint32 _u32h, _u32l;
  19822 
  19823 		BCM_UNPACK_U32(buf, _u32h);
  19824 		BCM_UNPACK_U32(buf, _u32l);
  19825 		COMPILER_64_SET(var->time_stamp, _u32h, _u32l);
  19826 	}
  19827 	{
  19828 		uint32 _u32h, _u32l;
  19829 
  19830 		BCM_UNPACK_U32(buf, _u32h);
  19831 		BCM_UNPACK_U32(buf, _u32l);
  19832 		COMPILER_64_SET(var->tx_pkt_count, _u32h, _u32l);
  19833 	}
  19834 	{
  19835 		uint32 _u32h, _u32l;
  19836 
  19837 		BCM_UNPACK_U32(buf, _u32h);
  19838 		BCM_UNPACK_U32(buf, _u32l);
  19839 		COMPILER_64_SET(var->rx_pkt_count, _u32h, _u32l);
  19840 	}
  19841 	{
  19842 		uint32 _u32h, _u32l;
  19843 
  19844 		BCM_UNPACK_U32(buf, _u32h);
  19845 		BCM_UNPACK_U32(buf, _u32l);
  19846 		COMPILER_64_SET(var->tx_byte_count, _u32h, _u32l);
  19847 	}
  19848 	{
  19849 		uint32 _u32h, _u32l;
  19850 
  19851 		BCM_UNPACK_U32(buf, _u32h);
  19852 		BCM_UNPACK_U32(buf, _u32l);
  19853 		COMPILER_64_SET(var->rx_byte_count, _u32h, _u32l);
  19854 	}
  19855 	BCM_UNPACK_U32(buf, var->sum_type);
  19856 	return buf;
  19857 }
  19858 
  19859 uint8 *
  19860 _bcm_pack_switch_agm_info(uint8 *buf, bcm_switch_agm_info_t *var)
  19861 {
  19862 	BCM_PACK_U32(buf, var->agm_id);
  19863 	BCM_PACK_U32(buf, var->agm_type);
  19864 	BCM_PACK_U32(buf, var->num_members);
  19865 	BCM_PACK_U32(buf, var->period_num);
  19866 	BCM_PACK_U32(buf, var->period_interval);
  19867 	return buf;
  19868 }
  19869 
  19870 uint8 *
  19871 _bcm_unpack_switch_agm_info(uint8 *buf, bcm_switch_agm_info_t *var)
  19872 {
  19873 	BCM_UNPACK_U32(buf, var->agm_id);
  19874 	BCM_UNPACK_U32(buf, var->agm_type);
  19875 	BCM_UNPACK_U32(buf, var->num_members);
  19876 	BCM_UNPACK_U32(buf, var->period_num);
  19877 	BCM_UNPACK_U32(buf, var->period_interval);
  19878 	return buf;
  19879 }
  19880 
  19881 uint8 *
  19882 _bcm_pack_switch_agm_stat(uint8 *buf, bcm_switch_agm_stat_t *var)
  19883 {
  19884 	{
  19885 		uint32 _u32;
  19886 
  19887 		_u32 = COMPILER_64_HI(var->packets);
  19888 		BCM_PACK_U32(buf, _u32);
  19889 		_u32 = COMPILER_64_LO(var->packets);
  19890 		BCM_PACK_U32(buf, _u32);
  19891 	}
  19892 	{
  19893 		uint32 _u32;
  19894 
  19895 		_u32 = COMPILER_64_HI(var->bytes);
  19896 		BCM_PACK_U32(buf, _u32);
  19897 		_u32 = COMPILER_64_LO(var->bytes);
  19898 		BCM_PACK_U32(buf, _u32);
  19899 	}
  19900 	BCM_PACK_U32(buf, var->period);
  19901 	BCM_PACK_U32(buf, var->gport_id);
  19902 	BCM_PACK_U32(buf, var->intf_id);
  19903 	return buf;
  19904 }
  19905 
  19906 uint8 *
  19907 _bcm_unpack_switch_agm_stat(uint8 *buf, bcm_switch_agm_stat_t *var)
  19908 {
  19909 	{
  19910 		uint32 _u32h, _u32l;
  19911 
  19912 		BCM_UNPACK_U32(buf, _u32h);
  19913 		BCM_UNPACK_U32(buf, _u32l);
  19914 		COMPILER_64_SET(var->packets, _u32h, _u32l);
  19915 	}
  19916 	{
  19917 		uint32 _u32h, _u32l;
  19918 
  19919 		BCM_UNPACK_U32(buf, _u32h);
  19920 		BCM_UNPACK_U32(buf, _u32l);
  19921 		COMPILER_64_SET(var->bytes, _u32h, _u32l);
  19922 	}
  19923 	BCM_UNPACK_U32(buf, var->period);
  19924 	BCM_UNPACK_U32(buf, var->gport_id);
  19925 	BCM_UNPACK_U32(buf, var->intf_id);
  19926 	return buf;
  19927 }
  19928 
  19929 uint8 *
  19930 _bcm_pack_switch_control_key(uint8 *buf, bcm_switch_control_key_t *var)
  19931 {
  19932 	BCM_PACK_U32(buf, var->type);
  19933 	BCM_PACK_U32(buf, var->index);
  19934 	return buf;
  19935 }
  19936 
  19937 uint8 *
  19938 _bcm_unpack_switch_control_key(uint8 *buf, bcm_switch_control_key_t *var)
  19939 {
  19940 	BCM_UNPACK_U32(buf, var->type);
  19941 	BCM_UNPACK_U32(buf, var->index);
  19942 	return buf;
  19943 }
  19944 
  19945 uint8 *
  19946 _bcm_pack_switch_dram_vendor_info(uint8 *buf, bcm_switch_dram_vendor_info_t *var)
  19947 {
  19948 	BCM_PACK_U32(buf, var->dram_density);
  19949 	BCM_PACK_U32(buf, var->fifo_depth);
  19950 	BCM_PACK_U32(buf, var->revision_id);
  19951 	BCM_PACK_U32(buf, var->manufacture_id);
  19952 	return buf;
  19953 }
  19954 
  19955 uint8 *
  19956 _bcm_unpack_switch_dram_vendor_info(uint8 *buf, bcm_switch_dram_vendor_info_t *var)
  19957 {
  19958 	BCM_UNPACK_U32(buf, var->dram_density);
  19959 	BCM_UNPACK_U32(buf, var->fifo_depth);
  19960 	BCM_UNPACK_U32(buf, var->revision_id);
  19961 	BCM_UNPACK_U32(buf, var->manufacture_id);
  19962 	return buf;
  19963 }
  19964 
  19965 uint8 *
  19966 _bcm_pack_switch_encap_info(uint8 *buf, bcm_switch_encap_info_t *var)
  19967 {
  19968 	BCM_PACK_U32(buf, var->encap_service);
  19969 	BCM_PACK_U32(buf, var->flags);
  19970 	BCM_PACK_U32(buf, var->value32);
  19971 	BCM_PACK_U32(buf, var->qos_map_id);
  19972 	BCM_PACK_U32(buf, var->port);
  19973 	BCM_PACK_U16(buf, var->egress_vlan);
  19974 	{
  19975 		int _i;
  19976 
  19977 		for (_i = 0; _i < 6; _i++) {
  19978 			BCM_PACK_U8(buf, var->egress_srcmac[_i]);
  19979 		}
  19980 	}
  19981 	{
  19982 		int _i;
  19983 
  19984 		for (_i = 0; _i < 6; _i++) {
  19985 			BCM_PACK_U8(buf, var->egress_dstmac[_i]);
  19986 		}
  19987 	}
  19988 	BCM_PACK_U8(buf, var->pkt_pri);
  19989 	BCM_PACK_U8(buf, var->pkt_cfi);
  19990 	BCM_PACK_U8(buf, var->pkt_type);
  19991 	BCM_PACK_U16(buf, var->iid);
  19992 	BCM_PACK_U16(buf, var->length);
  19993 	BCM_PACK_U16(buf, var->higig_vlan);
  19994 	return buf;
  19995 }
  19996 
  19997 uint8 *
  19998 _bcm_unpack_switch_encap_info(uint8 *buf, bcm_switch_encap_info_t *var)
  19999 {
  20000 	BCM_UNPACK_U32(buf, var->encap_service);
  20001 	BCM_UNPACK_U32(buf, var->flags);
  20002 	BCM_UNPACK_U32(buf, var->value32);
  20003 	BCM_UNPACK_U32(buf, var->qos_map_id);
  20004 	BCM_UNPACK_U32(buf, var->port);
  20005 	BCM_UNPACK_U16(buf, var->egress_vlan);
  20006 	{
  20007 		int _i;
  20008 
  20009 		for (_i = 0; _i < 6; _i++) {
  20010 			BCM_UNPACK_U8(buf, var->egress_srcmac[_i]);
  20011 		}
  20012 	}
  20013 	{
  20014 		int _i;
  20015 
  20016 		for (_i = 0; _i < 6; _i++) {
  20017 			BCM_UNPACK_U8(buf, var->egress_dstmac[_i]);
  20018 		}
  20019 	}
  20020 	BCM_UNPACK_U8(buf, var->pkt_pri);
  20021 	BCM_UNPACK_U8(buf, var->pkt_cfi);
  20022 	BCM_UNPACK_U8(buf, var->pkt_type);
  20023 	BCM_UNPACK_U16(buf, var->iid);
  20024 	BCM_UNPACK_U16(buf, var->length);
  20025 	BCM_UNPACK_U16(buf, var->higig_vlan);
  20026 	return buf;
  20027 }
  20028 
  20029 uint8 *
  20030 _bcm_pack_switch_event_control(uint8 *buf, bcm_switch_event_control_t *var)
  20031 {
  20032 	BCM_PACK_U32(buf, var->event_id);
  20033 	BCM_PACK_U32(buf, var->index);
  20034 	BCM_PACK_U32(buf, var->action);
  20035 	return buf;
  20036 }
  20037 
  20038 uint8 *
  20039 _bcm_unpack_switch_event_control(uint8 *buf, bcm_switch_event_control_t *var)
  20040 {
  20041 	BCM_UNPACK_U32(buf, var->event_id);
  20042 	BCM_UNPACK_U32(buf, var->index);
  20043 	BCM_UNPACK_U32(buf, var->action);
  20044 	return buf;
  20045 }
  20046 
  20047 uint8 *
  20048 _bcm_pack_switch_hash_entry_config(uint8 *buf, bcm_switch_hash_entry_config_t *var)
  20049 {
  20050 	BCM_PACK_U32(buf, var->flags);
  20051 	BCM_PACK_U32(buf, var->field);
  20052 	BCM_PACK_U32(buf, var->offset);
  20053 	BCM_PACK_U32(buf, var->mask_length);
  20054 	BCM_PACK_U8(buf, var->mask[0]);
  20055 	BCM_PACK_U8(buf, var->mask[1]);
  20056 	BCM_PACK_U8(buf, var->mask[2]);
  20057 	BCM_PACK_U8(buf, var->mask[3]);
  20058 	BCM_PACK_U32(buf, var->base_layer);
  20059 	BCM_PACK_U32(buf, var->udf_id);
  20060 	return buf;
  20061 }
  20062 
  20063 uint8 *
  20064 _bcm_unpack_switch_hash_entry_config(uint8 *buf, bcm_switch_hash_entry_config_t *var)
  20065 {
  20066 	BCM_UNPACK_U32(buf, var->flags);
  20067 	BCM_UNPACK_U32(buf, var->field);
  20068 	BCM_UNPACK_U32(buf, var->offset);
  20069 	BCM_UNPACK_U32(buf, var->mask_length);
  20070 	BCM_UNPACK_U8(buf, var->mask[0]);
  20071 	BCM_UNPACK_U8(buf, var->mask[1]);
  20072 	BCM_UNPACK_U8(buf, var->mask[2]);
  20073 	BCM_UNPACK_U8(buf, var->mask[3]);
  20074 	BCM_UNPACK_U32(buf, var->base_layer);
  20075 	BCM_UNPACK_U32(buf, var->udf_id);
  20076 	return buf;
  20077 }
  20078 
  20079 uint8 *
  20080 _bcm_pack_switch_kbp_apptype_info(uint8 *buf, bcm_switch_kbp_apptype_info_t *var)
  20081 {
  20082 	BCM_PACK_U32(buf, *var->inst_p);
  20083 	BCM_PACK_U32(buf, *var->fwd_db);
  20084 	BCM_PACK_U32(buf, *var->rpf_db);
  20085 	BCM_PACK_U32(buf, *var->dummy_db);
  20086 	BCM_PACK_U32(buf, *var->fwd_ad_db);
  20087 	BCM_PACK_U32(buf, *var->rpf_ad_db);
  20088 	BCM_PACK_U32(buf, *var->dummy_ad_db);
  20089 	{
  20090 		int _i;
  20091 
  20092 		for (_i = 0; _i < 16; _i++) {
  20093 			BCM_PACK_U8(buf, *var->master_key_segment[_i].segment_name);
  20094 			BCM_PACK_U32(buf, var->master_key_segment[_i].segment_size_bits);
  20095 			BCM_PACK_U32(buf, var->master_key_segment[_i].segment_type);
  20096 		}
  20097 	}
  20098 	BCM_PACK_U32(buf, var->total_segments_size);
  20099 	BCM_PACK_U32(buf, var->opcode);
  20100 	BCM_PACK_U32(buf, var->ltr_index);
  20101 	BCM_PACK_U32(buf, var->master_key_nof_segments);
  20102 	BCM_PACK_U32(buf, var->is_valid);
  20103 	return buf;
  20104 }
  20105 
  20106 uint8 *
  20107 _bcm_unpack_switch_kbp_apptype_info(uint8 *buf, bcm_switch_kbp_apptype_info_t *var)
  20108 {
  20109 	BCM_UNPACK_U32(buf, *var->inst_p);
  20110 	BCM_UNPACK_U32(buf, *var->fwd_db);
  20111 	BCM_UNPACK_U32(buf, *var->rpf_db);
  20112 	BCM_UNPACK_U32(buf, *var->dummy_db);
  20113 	BCM_UNPACK_U32(buf, *var->fwd_ad_db);
  20114 	BCM_UNPACK_U32(buf, *var->rpf_ad_db);
  20115 	BCM_UNPACK_U32(buf, *var->dummy_ad_db);
  20116 	{
  20117 		int _i;
  20118 
  20119 		for (_i = 0; _i < 16; _i++) {
  20120 			BCM_UNPACK_U8(buf, *var->master_key_segment[_i].segment_name);
  20121 			BCM_UNPACK_U32(buf, var->master_key_segment[_i].segment_size_bits);
  20122 			BCM_UNPACK_U32(buf, var->master_key_segment[_i].segment_type);
  20123 		}
  20124 	}
  20125 	BCM_UNPACK_U32(buf, var->total_segments_size);
  20126 	BCM_UNPACK_U32(buf, var->opcode);
  20127 	BCM_UNPACK_U32(buf, var->ltr_index);
  20128 	BCM_UNPACK_U32(buf, var->master_key_nof_segments);
  20129 	BCM_UNPACK_U32(buf, var->is_valid);
  20130 	return buf;
  20131 }
  20132 
  20133 uint8 *
  20134 _bcm_pack_switch_kbp_info(uint8 *buf, bcm_switch_kbp_info_t *var)
  20135 {
  20136 	BCM_PACK_U32(buf, *var->device_p);
  20137 	BCM_PACK_U32(buf, (*var->thread_p)[0]);
  20138 	BCM_PACK_U32(buf, (*var->thread_p)[1]);
  20139 	return buf;
  20140 }
  20141 
  20142 uint8 *
  20143 _bcm_unpack_switch_kbp_info(uint8 *buf, bcm_switch_kbp_info_t *var)
  20144 {
  20145 	BCM_UNPACK_U32(buf, *var->device_p);
  20146 	BCM_UNPACK_U32(buf, (*var->thread_p)[0]);
  20147 	BCM_UNPACK_U32(buf, (*var->thread_p)[1]);
  20148 	return buf;
  20149 }
  20150 
  20151 uint8 *
  20152 _bcm_pack_switch_lif_property_config(uint8 *buf, bcm_switch_lif_property_config_t *var)
  20153 {
  20154 	BCM_PACK_U32(buf, var->key);
  20155 	BCM_PACK_U32(buf, var->value);
  20156 	return buf;
  20157 }
  20158 
  20159 uint8 *
  20160 _bcm_unpack_switch_lif_property_config(uint8 *buf, bcm_switch_lif_property_config_t *var)
  20161 {
  20162 	BCM_UNPACK_U32(buf, var->key);
  20163 	BCM_UNPACK_U32(buf, var->value);
  20164 	return buf;
  20165 }
  20166 
  20167 uint8 *
  20168 _bcm_pack_switch_match_config_info(uint8 *buf, bcm_switch_match_config_info_t *var)
  20169 {
  20170 	BCM_PACK_U32(buf, var->value32);
  20171 	BCM_PACK_U16(buf, var->inner_ethtype);
  20172 	BCM_PACK_U16(buf, var->outer_ethtype);
  20173 	BCM_PACK_U8(buf, var->int_pri);
  20174 	BCM_PACK_U32(buf, var->color);
  20175 	BCM_PACK_U8(buf, var->match_criteria);
  20176 	BCM_PACK_U16(buf, var->dst_port);
  20177 	BCM_PACK_U16(buf, var->src_port);
  20178 	BCM_PACK_U16(buf, var->ethtype1);
  20179 	BCM_PACK_U16(buf, var->ethtype2);
  20180 	{
  20181 		int _i;
  20182 
  20183 		for (_i = 0; _i < 6; _i++) {
  20184 			BCM_PACK_U8(buf, var->dst_mac[_i]);
  20185 		}
  20186 	}
  20187 	{
  20188 		int _i;
  20189 
  20190 		for (_i = 0; _i < 6; _i++) {
  20191 			BCM_PACK_U8(buf, var->dst_mac_mask[_i]);
  20192 		}
  20193 	}
  20194 	return buf;
  20195 }
  20196 
  20197 uint8 *
  20198 _bcm_unpack_switch_match_config_info(uint8 *buf, bcm_switch_match_config_info_t *var)
  20199 {
  20200 	BCM_UNPACK_U32(buf, var->value32);
  20201 	BCM_UNPACK_U16(buf, var->inner_ethtype);
  20202 	BCM_UNPACK_U16(buf, var->outer_ethtype);
  20203 	BCM_UNPACK_U8(buf, var->int_pri);
  20204 	BCM_UNPACK_U32(buf, var->color);
  20205 	BCM_UNPACK_U8(buf, var->match_criteria);
  20206 	BCM_UNPACK_U16(buf, var->dst_port);
  20207 	BCM_UNPACK_U16(buf, var->src_port);
  20208 	BCM_UNPACK_U16(buf, var->ethtype1);
  20209 	BCM_UNPACK_U16(buf, var->ethtype2);
  20210 	{
  20211 		int _i;
  20212 
  20213 		for (_i = 0; _i < 6; _i++) {
  20214 			BCM_UNPACK_U8(buf, var->dst_mac[_i]);
  20215 		}
  20216 	}
  20217 	{
  20218 		int _i;
  20219 
  20220 		for (_i = 0; _i < 6; _i++) {
  20221 			BCM_UNPACK_U8(buf, var->dst_mac_mask[_i]);
  20222 		}
  20223 	}
  20224 	return buf;
  20225 }
  20226 
  20227 uint8 *
  20228 _bcm_pack_switch_match_control_info(uint8 *buf, bcm_switch_match_control_info_t *var)
  20229 {
  20230 	BCM_PACK_U32(buf, var->port_enable);
  20231 	BCM_PACK_U32(buf, var->mask32);
  20232 	return buf;
  20233 }
  20234 
  20235 uint8 *
  20236 _bcm_unpack_switch_match_control_info(uint8 *buf, bcm_switch_match_control_info_t *var)
  20237 {
  20238 	BCM_UNPACK_U32(buf, var->port_enable);
  20239 	BCM_UNPACK_U32(buf, var->mask32);
  20240 	return buf;
  20241 }
  20242 
  20243 uint8 *
  20244 _bcm_pack_switch_network_group_config(uint8 *buf, bcm_switch_network_group_config_t *var)
  20245 {
  20246 	BCM_PACK_U32(buf, var->dest_network_group_id);
  20247 	BCM_PACK_U32(buf, var->config_flags);
  20248 	return buf;
  20249 }
  20250 
  20251 uint8 *
  20252 _bcm_unpack_switch_network_group_config(uint8 *buf, bcm_switch_network_group_config_t *var)
  20253 {
  20254 	BCM_UNPACK_U32(buf, var->dest_network_group_id);
  20255 	BCM_UNPACK_U32(buf, var->config_flags);
  20256 	return buf;
  20257 }
  20258 
  20259 uint8 *
  20260 _bcm_pack_switch_obm_classifier(uint8 *buf, bcm_switch_obm_classifier_t *var)
  20261 {
  20262 	BCM_PACK_U32(buf, var->flags);
  20263 	{
  20264 		int _i;
  20265 
  20266 		for (_i = 0; _i < 6; _i++) {
  20267 			BCM_PACK_U8(buf, var->obm_destination_mac[_i]);
  20268 		}
  20269 	}
  20270 	{
  20271 		int _i;
  20272 
  20273 		for (_i = 0; _i < 6; _i++) {
  20274 			BCM_PACK_U8(buf, var->obm_destination_mac_mask[_i]);
  20275 		}
  20276 	}
  20277 	BCM_PACK_U16(buf, var->obm_ethertype);
  20278 	BCM_PACK_U16(buf, var->obm_ethertype_mask);
  20279 	BCM_PACK_U32(buf, var->obm_code_point);
  20280 	BCM_PACK_U32(buf, var->obm_priority);
  20281 	return buf;
  20282 }
  20283 
  20284 uint8 *
  20285 _bcm_unpack_switch_obm_classifier(uint8 *buf, bcm_switch_obm_classifier_t *var)
  20286 {
  20287 	BCM_UNPACK_U32(buf, var->flags);
  20288 	{
  20289 		int _i;
  20290 
  20291 		for (_i = 0; _i < 6; _i++) {
  20292 			BCM_UNPACK_U8(buf, var->obm_destination_mac[_i]);
  20293 		}
  20294 	}
  20295 	{
  20296 		int _i;
  20297 
  20298 		for (_i = 0; _i < 6; _i++) {
  20299 			BCM_UNPACK_U8(buf, var->obm_destination_mac_mask[_i]);
  20300 		}
  20301 	}
  20302 	BCM_UNPACK_U16(buf, var->obm_ethertype);
  20303 	BCM_UNPACK_U16(buf, var->obm_ethertype_mask);
  20304 	BCM_UNPACK_U32(buf, var->obm_code_point);
  20305 	BCM_UNPACK_U32(buf, var->obm_priority);
  20306 	return buf;
  20307 }
  20308 
  20309 uint8 *
  20310 _bcm_pack_switch_olp_l2_addr(uint8 *buf, bcm_switch_olp_l2_addr_t *var)
  20311 {
  20312 	BCM_PACK_U32(buf, var->port);
  20313 	{
  20314 		int _i;
  20315 
  20316 		for (_i = 0; _i < 6; _i++) {
  20317 			BCM_PACK_U8(buf, var->mac[_i]);
  20318 		}
  20319 	}
  20320 	return buf;
  20321 }
  20322 
  20323 uint8 *
  20324 _bcm_unpack_switch_olp_l2_addr(uint8 *buf, bcm_switch_olp_l2_addr_t *var)
  20325 {
  20326 	BCM_UNPACK_U32(buf, var->port);
  20327 	{
  20328 		int _i;
  20329 
  20330 		for (_i = 0; _i < 6; _i++) {
  20331 			BCM_UNPACK_U8(buf, var->mac[_i]);
  20332 		}
  20333 	}
  20334 	return buf;
  20335 }
  20336 
  20337 uint8 *
  20338 _bcm_pack_switch_opaque_tag_params(uint8 *buf, bcm_switch_opaque_tag_params_t *var)
  20339 {
  20340 	BCM_PACK_U16(buf, var->ethertype);
  20341 	BCM_PACK_U8(buf, var->tag_size);
  20342 	BCM_PACK_U8(buf, var->tag_type);
  20343 	BCM_PACK_U8(buf, var->valid);
  20344 	return buf;
  20345 }
  20346 
  20347 uint8 *
  20348 _bcm_unpack_switch_opaque_tag_params(uint8 *buf, bcm_switch_opaque_tag_params_t *var)
  20349 {
  20350 	BCM_UNPACK_U16(buf, var->ethertype);
  20351 	BCM_UNPACK_U8(buf, var->tag_size);
  20352 	BCM_UNPACK_U8(buf, var->tag_type);
  20353 	BCM_UNPACK_U8(buf, var->valid);
  20354 	return buf;
  20355 }
  20356 
  20357 uint8 *
  20358 _bcm_pack_switch_pkt_info(uint8 *buf, bcm_switch_pkt_info_t *var)
  20359 {
  20360 	BCM_PACK_U32(buf, var->flags);
  20361 	BCM_PACK_U32(buf, var->src_gport);
  20362 	BCM_PACK_U16(buf, var->vid);
  20363 	BCM_PACK_U16(buf, var->ethertype);
  20364 	{
  20365 		int _i;
  20366 
  20367 		for (_i = 0; _i < 6; _i++) {
  20368 			BCM_PACK_U8(buf, var->src_mac[_i]);
  20369 		}
  20370 	}
  20371 	{
  20372 		int _i;
  20373 
  20374 		for (_i = 0; _i < 6; _i++) {
  20375 			BCM_PACK_U8(buf, var->dst_mac[_i]);
  20376 		}
  20377 	}
  20378 	BCM_PACK_U32(buf, var->sip);
  20379 	BCM_PACK_U32(buf, var->dip);
  20380 	{
  20381 		int _i;
  20382 
  20383 		for (_i = 0; _i < 16; _i++) {
  20384 			BCM_PACK_U8(buf, var->sip6[_i]);
  20385 		}
  20386 	}
  20387 	{
  20388 		int _i;
  20389 
  20390 		for (_i = 0; _i < 16; _i++) {
  20391 			BCM_PACK_U8(buf, var->dip6[_i]);
  20392 		}
  20393 	}
  20394 	BCM_PACK_U8(buf, var->protocol);
  20395 	BCM_PACK_U32(buf, var->src_l4_port);
  20396 	BCM_PACK_U32(buf, var->dst_l4_port);
  20397 	BCM_PACK_U32(buf, var->trunk_gport);
  20398 	BCM_PACK_U32(buf, var->mpintf);
  20399 	BCM_PACK_U32(buf, var->fwd_reason);
  20400 	BCM_PACK_U32(buf, var->top_label);
  20401 	BCM_PACK_U32(buf, var->second_label);
  20402 	BCM_PACK_U32(buf, var->third_label);
  20403 	return buf;
  20404 }
  20405 
  20406 uint8 *
  20407 _bcm_unpack_switch_pkt_info(uint8 *buf, bcm_switch_pkt_info_t *var)
  20408 {
  20409 	BCM_UNPACK_U32(buf, var->flags);
  20410 	BCM_UNPACK_U32(buf, var->src_gport);
  20411 	BCM_UNPACK_U16(buf, var->vid);
  20412 	BCM_UNPACK_U16(buf, var->ethertype);
  20413 	{
  20414 		int _i;
  20415 
  20416 		for (_i = 0; _i < 6; _i++) {
  20417 			BCM_UNPACK_U8(buf, var->src_mac[_i]);
  20418 		}
  20419 	}
  20420 	{
  20421 		int _i;
  20422 
  20423 		for (_i = 0; _i < 6; _i++) {
  20424 			BCM_UNPACK_U8(buf, var->dst_mac[_i]);
  20425 		}
  20426 	}
  20427 	BCM_UNPACK_U32(buf, var->sip);
  20428 	BCM_UNPACK_U32(buf, var->dip);
  20429 	{
  20430 		int _i;
  20431 
  20432 		for (_i = 0; _i < 16; _i++) {
  20433 			BCM_UNPACK_U8(buf, var->sip6[_i]);
  20434 		}
  20435 	}
  20436 	{
  20437 		int _i;
  20438 
  20439 		for (_i = 0; _i < 16; _i++) {
  20440 			BCM_UNPACK_U8(buf, var->dip6[_i]);
  20441 		}
  20442 	}
  20443 	BCM_UNPACK_U8(buf, var->protocol);
  20444 	BCM_UNPACK_U32(buf, var->src_l4_port);
  20445 	BCM_UNPACK_U32(buf, var->dst_l4_port);
  20446 	BCM_UNPACK_U32(buf, var->trunk_gport);
  20447 	BCM_UNPACK_U32(buf, var->mpintf);
  20448 	BCM_UNPACK_U32(buf, var->fwd_reason);
  20449 	BCM_UNPACK_U32(buf, var->top_label);
  20450 	BCM_UNPACK_U32(buf, var->second_label);
  20451 	BCM_UNPACK_U32(buf, var->third_label);
  20452 	return buf;
  20453 }
  20454 
  20455 uint8 *
  20456 _bcm_pack_switch_pkt_trace_info(uint8 *buf, bcm_switch_pkt_trace_info_t *var)
  20457 {
  20458 	BCM_PACK_U32(buf, var->pkt_trace_lookup_status.pkt_trace_status_bitmap[0]);
  20459 	BCM_PACK_U32(buf, var->pkt_trace_resolution);
  20460 	BCM_PACK_U32(buf, var->pkt_trace_hash_info.flags);
  20461 	BCM_PACK_U32(buf, var->pkt_trace_hash_info.ecmp_1_group);
  20462 	BCM_PACK_U32(buf, var->pkt_trace_hash_info.ecmp_1_egress);
  20463 	BCM_PACK_U32(buf, var->pkt_trace_hash_info.ecmp_2_group);
  20464 	BCM_PACK_U32(buf, var->pkt_trace_hash_info.ecmp_2_egress);
  20465 	BCM_PACK_U32(buf, var->pkt_trace_hash_info.trunk);
  20466 	BCM_PACK_U32(buf, var->pkt_trace_hash_info.trunk_member);
  20467 	BCM_PACK_U32(buf, var->pkt_trace_hash_info.fabric_trunk);
  20468 	BCM_PACK_U32(buf, var->pkt_trace_hash_info.fabric_trunk_member);
  20469 	BCM_PACK_U32(buf, var->pkt_trace_stp_state);
  20470 	BCM_PACK_U32(buf, var->pkt_trace_drop_reason[0]);
  20471 	BCM_PACK_U32(buf, var->pkt_trace_drop_reason[1]);
  20472 	BCM_PACK_U32(buf, var->pkt_trace_drop_reason[2]);
  20473 	BCM_PACK_U32(buf, var->pkt_trace_drop_reason[3]);
  20474 	BCM_PACK_U32(buf, var->dest_pipe_num);
  20475 	BCM_PACK_U32(buf, var->raw_data_length);
  20476 	{
  20477 		int _i;
  20478 
  20479 		for (_i = 0; _i < 112; _i++) {
  20480 			BCM_PACK_U8(buf, var->raw_data[_i]);
  20481 		}
  20482 	}
  20483 	BCM_PACK_U32(buf, var->pkt_trace_fwd_dst_info.flags);
  20484 	BCM_PACK_U32(buf, var->pkt_trace_fwd_dst_info.egress_intf);
  20485 	BCM_PACK_U32(buf, var->pkt_trace_fwd_dst_info.mc_group);
  20486 	BCM_PACK_U32(buf, var->pkt_trace_fwd_dst_info.port);
  20487 	BCM_PACK_U32(buf, var->pkt_trace_fwd_dst_info.dvp);
  20488 	BCM_PACK_U16(buf, var->pkt_trace_fwd_dst_info.fwd_vlan);
  20489 	return buf;
  20490 }
  20491 
  20492 uint8 *
  20493 _bcm_unpack_switch_pkt_trace_info(uint8 *buf, bcm_switch_pkt_trace_info_t *var)
  20494 {
  20495 	BCM_UNPACK_U32(buf, var->pkt_trace_lookup_status.pkt_trace_status_bitmap[0]);
  20496 	BCM_UNPACK_U32(buf, var->pkt_trace_resolution);
  20497 	BCM_UNPACK_U32(buf, var->pkt_trace_hash_info.flags);
  20498 	BCM_UNPACK_U32(buf, var->pkt_trace_hash_info.ecmp_1_group);
  20499 	BCM_UNPACK_U32(buf, var->pkt_trace_hash_info.ecmp_1_egress);
  20500 	BCM_UNPACK_U32(buf, var->pkt_trace_hash_info.ecmp_2_group);
  20501 	BCM_UNPACK_U32(buf, var->pkt_trace_hash_info.ecmp_2_egress);
  20502 	BCM_UNPACK_U32(buf, var->pkt_trace_hash_info.trunk);
  20503 	BCM_UNPACK_U32(buf, var->pkt_trace_hash_info.trunk_member);
  20504 	BCM_UNPACK_U32(buf, var->pkt_trace_hash_info.fabric_trunk);
  20505 	BCM_UNPACK_U32(buf, var->pkt_trace_hash_info.fabric_trunk_member);
  20506 	BCM_UNPACK_U32(buf, var->pkt_trace_stp_state);
  20507 	BCM_UNPACK_U32(buf, var->pkt_trace_drop_reason[0]);
  20508 	BCM_UNPACK_U32(buf, var->pkt_trace_drop_reason[1]);
  20509 	BCM_UNPACK_U32(buf, var->pkt_trace_drop_reason[2]);
  20510 	BCM_UNPACK_U32(buf, var->pkt_trace_drop_reason[3]);
  20511 	BCM_UNPACK_U32(buf, var->dest_pipe_num);
  20512 	BCM_UNPACK_U32(buf, var->raw_data_length);
  20513 	{
  20514 		int _i;
  20515 
  20516 		for (_i = 0; _i < 112; _i++) {
  20517 			BCM_UNPACK_U8(buf, var->raw_data[_i]);
  20518 		}
  20519 	}
  20520 	BCM_UNPACK_U32(buf, var->pkt_trace_fwd_dst_info.flags);
  20521 	BCM_UNPACK_U32(buf, var->pkt_trace_fwd_dst_info.egress_intf);
  20522 	BCM_UNPACK_U32(buf, var->pkt_trace_fwd_dst_info.mc_group);
  20523 	BCM_UNPACK_U32(buf, var->pkt_trace_fwd_dst_info.port);
  20524 	BCM_UNPACK_U32(buf, var->pkt_trace_fwd_dst_info.dvp);
  20525 	BCM_UNPACK_U16(buf, var->pkt_trace_fwd_dst_info.fwd_vlan);
  20526 	return buf;
  20527 }
  20528 
  20529 uint8 *
  20530 _bcm_pack_switch_profile_mapping(uint8 *buf, bcm_switch_profile_mapping_t *var)
  20531 {
  20532 	BCM_PACK_U32(buf, var->profile_type);
  20533 	BCM_PACK_U32(buf, var->mapped_profile);
  20534 	return buf;
  20535 }
  20536 
  20537 uint8 *
  20538 _bcm_unpack_switch_profile_mapping(uint8 *buf, bcm_switch_profile_mapping_t *var)
  20539 {
  20540 	BCM_UNPACK_U32(buf, var->profile_type);
  20541 	BCM_UNPACK_U32(buf, var->mapped_profile);
  20542 	return buf;
  20543 }
  20544 
  20545 uint8 *
  20546 _bcm_pack_switch_reflector_data(uint8 *buf, bcm_switch_reflector_data_t *var)
  20547 {
  20548 	BCM_PACK_U32(buf, var->type);
  20549 	{
  20550 		int _i;
  20551 
  20552 		for (_i = 0; _i < 6; _i++) {
  20553 			BCM_PACK_U8(buf, var->mc_reflector_my_mac[_i]);
  20554 		}
  20555 	}
  20556 	BCM_PACK_U32(buf, var->error_estimate);
  20557 	BCM_PACK_U32(buf, var->next_encap_id);
  20558 	return buf;
  20559 }
  20560 
  20561 uint8 *
  20562 _bcm_unpack_switch_reflector_data(uint8 *buf, bcm_switch_reflector_data_t *var)
  20563 {
  20564 	BCM_UNPACK_U32(buf, var->type);
  20565 	{
  20566 		int _i;
  20567 
  20568 		for (_i = 0; _i < 6; _i++) {
  20569 			BCM_UNPACK_U8(buf, var->mc_reflector_my_mac[_i]);
  20570 		}
  20571 	}
  20572 	BCM_UNPACK_U32(buf, var->error_estimate);
  20573 	BCM_UNPACK_U32(buf, var->next_encap_id);
  20574 	return buf;
  20575 }
  20576 
  20577 uint8 *
  20578 _bcm_pack_switch_ser_error_stat_type(uint8 *buf, bcm_switch_ser_error_stat_type_t *var)
  20579 {
  20580 	BCM_PACK_U32(buf, var->flags);
  20581 	BCM_PACK_U32(buf, var->block_type);
  20582 	BCM_PACK_U32(buf, var->error_type);
  20583 	BCM_PACK_U32(buf, var->correction_type);
  20584 	return buf;
  20585 }
  20586 
  20587 uint8 *
  20588 _bcm_unpack_switch_ser_error_stat_type(uint8 *buf, bcm_switch_ser_error_stat_type_t *var)
  20589 {
  20590 	BCM_UNPACK_U32(buf, var->flags);
  20591 	BCM_UNPACK_U32(buf, var->block_type);
  20592 	BCM_UNPACK_U32(buf, var->error_type);
  20593 	BCM_UNPACK_U32(buf, var->correction_type);
  20594 	return buf;
  20595 }
  20596 
  20597 uint8 *
  20598 _bcm_pack_switch_ser_log_info(uint8 *buf, bcm_switch_ser_log_info_t *var)
  20599 {
  20600 	BCM_PACK_U32(buf, var->time);
  20601 	BCM_PACK_U32(buf, var->addr);
  20602 	BCM_PACK_U32(buf, var->flags);
  20603 	BCM_PACK_U32(buf, var->mem_reg);
  20604 	{
  20605 		int _i;
  20606 
  20607 		for (_i = 0; _i < 100; _i++) {
  20608 			BCM_PACK_U8(buf, var->name[_i]);
  20609 		}
  20610 	}
  20611 	BCM_PACK_U32(buf, var->index);
  20612 	BCM_PACK_U32(buf, var->port);
  20613 	BCM_PACK_U32(buf, var->pipe);
  20614 	BCM_PACK_U32(buf, var->instance);
  20615 	BCM_PACK_U32(buf, var->block_type);
  20616 	BCM_PACK_U32(buf, var->error_type);
  20617 	BCM_PACK_U32(buf, var->correction_type);
  20618 	{
  20619 		int _i;
  20620 
  20621 		for (_i = 0; _i < 20; _i++) {
  20622 			BCM_PACK_U32(buf, var->entry_data[_i]);
  20623 		}
  20624 	}
  20625 	{
  20626 		int _i;
  20627 
  20628 		for (_i = 0; _i < 20; _i++) {
  20629 			BCM_PACK_U32(buf, var->cache_data[_i]);
  20630 		}
  20631 	}
  20632 	return buf;
  20633 }
  20634 
  20635 uint8 *
  20636 _bcm_unpack_switch_ser_log_info(uint8 *buf, bcm_switch_ser_log_info_t *var)
  20637 {
  20638 	BCM_UNPACK_U32(buf, var->time);
  20639 	BCM_UNPACK_U32(buf, var->addr);
  20640 	BCM_UNPACK_U32(buf, var->flags);
  20641 	BCM_UNPACK_U32(buf, var->mem_reg);
  20642 	{
  20643 		int _i;
  20644 
  20645 		for (_i = 0; _i < 100; _i++) {
  20646 			BCM_UNPACK_U8(buf, var->name[_i]);
  20647 		}
  20648 	}
  20649 	BCM_UNPACK_U32(buf, var->index);
  20650 	BCM_UNPACK_U32(buf, var->port);
  20651 	BCM_UNPACK_U32(buf, var->pipe);
  20652 	BCM_UNPACK_U32(buf, var->instance);
  20653 	BCM_UNPACK_U32(buf, var->block_type);
  20654 	BCM_UNPACK_U32(buf, var->error_type);
  20655 	BCM_UNPACK_U32(buf, var->correction_type);
  20656 	{
  20657 		int _i;
  20658 
  20659 		for (_i = 0; _i < 20; _i++) {
  20660 			BCM_UNPACK_U32(buf, var->entry_data[_i]);
  20661 		}
  20662 	}
  20663 	{
  20664 		int _i;
  20665 
  20666 		for (_i = 0; _i < 20; _i++) {
  20667 			BCM_UNPACK_U32(buf, var->cache_data[_i]);
  20668 		}
  20669 	}
  20670 	return buf;
  20671 }
  20672 
  20673 uint8 *
  20674 _bcm_pack_switch_service_config(uint8 *buf, bcm_switch_service_config_t *var)
  20675 {
  20676 	BCM_PACK_U32(buf, var->flags);
  20677 	BCM_PACK_U32(buf, var->enabled);
  20678 	return buf;
  20679 }
  20680 
  20681 uint8 *
  20682 _bcm_unpack_switch_service_config(uint8 *buf, bcm_switch_service_config_t *var)
  20683 {
  20684 	BCM_UNPACK_U32(buf, var->flags);
  20685 	BCM_UNPACK_U32(buf, var->enabled);
  20686 	return buf;
  20687 }
  20688 
  20689 uint8 *
  20690 _bcm_pack_switch_thermo_sensor(uint8 *buf, bcm_switch_thermo_sensor_t *var)
  20691 {
  20692 	BCM_PACK_U32(buf, var->thermo_sensor_min);
  20693 	BCM_PACK_U32(buf, var->thermo_sensor_max);
  20694 	BCM_PACK_U32(buf, var->thermo_sensor_current);
  20695 	return buf;
  20696 }
  20697 
  20698 uint8 *
  20699 _bcm_unpack_switch_thermo_sensor(uint8 *buf, bcm_switch_thermo_sensor_t *var)
  20700 {
  20701 	BCM_UNPACK_U32(buf, var->thermo_sensor_min);
  20702 	BCM_UNPACK_U32(buf, var->thermo_sensor_max);
  20703 	BCM_UNPACK_U32(buf, var->thermo_sensor_current);
  20704 	return buf;
  20705 }
  20706 
  20707 uint8 *
  20708 _bcm_pack_switch_tpid_class(uint8 *buf, bcm_switch_tpid_class_t *var)
  20709 {
  20710 	BCM_PACK_U32(buf, var->flags);
  20711 	BCM_PACK_U32(buf, var->match);
  20712 	BCM_PACK_U32(buf, var->port);
  20713 	BCM_PACK_U32(buf, var->vlan_translation_action_id);
  20714 	BCM_PACK_U32(buf, var->tpid_class_id);
  20715 	return buf;
  20716 }
  20717 
  20718 uint8 *
  20719 _bcm_unpack_switch_tpid_class(uint8 *buf, bcm_switch_tpid_class_t *var)
  20720 {
  20721 	BCM_UNPACK_U32(buf, var->flags);
  20722 	BCM_UNPACK_U32(buf, var->match);
  20723 	BCM_UNPACK_U32(buf, var->port);
  20724 	BCM_UNPACK_U32(buf, var->vlan_translation_action_id);
  20725 	BCM_UNPACK_U32(buf, var->tpid_class_id);
  20726 	return buf;
  20727 }
  20728 
  20729 uint8 *
  20730 _bcm_pack_switch_tpid_info(uint8 *buf, bcm_switch_tpid_info_t *var)
  20731 {
  20732 	BCM_PACK_U32(buf, var->tpid_type);
  20733 	BCM_PACK_U16(buf, var->tpid_value);
  20734 	BCM_PACK_U32(buf, var->flags);
  20735 	BCM_PACK_U32(buf, var->color);
  20736 	return buf;
  20737 }
  20738 
  20739 uint8 *
  20740 _bcm_unpack_switch_tpid_info(uint8 *buf, bcm_switch_tpid_info_t *var)
  20741 {
  20742 	BCM_UNPACK_U32(buf, var->tpid_type);
  20743 	BCM_UNPACK_U16(buf, var->tpid_value);
  20744 	BCM_UNPACK_U32(buf, var->flags);
  20745 	BCM_UNPACK_U32(buf, var->color);
  20746 	return buf;
  20747 }
  20748 
  20749 uint8 *
  20750 _bcm_pack_telemetry_config(uint8 *buf, bcm_telemetry_config_t *var)
  20751 {
  20752 	{
  20753 		int _i;
  20754 
  20755 		for (_i = 0; _i < 6; _i++) {
  20756 			BCM_PACK_U32(buf, var->object_type[_i]);
  20757 		}
  20758 	}
  20759 	BCM_PACK_U32(buf, var->component_id);
  20760 	BCM_PACK_U32(buf, var->gport);
  20761 	{
  20762 		int _i;
  20763 
  20764 		for (_i = 0; _i < 10; _i++) {
  20765 			BCM_PACK_U8(buf, var->port_name[_i]);
  20766 		}
  20767 	}
  20768 	return buf;
  20769 }
  20770 
  20771 uint8 *
  20772 _bcm_unpack_telemetry_config(uint8 *buf, bcm_telemetry_config_t *var)
  20773 {
  20774 	{
  20775 		int _i;
  20776 
  20777 		for (_i = 0; _i < 6; _i++) {
  20778 			BCM_UNPACK_U32(buf, var->object_type[_i]);
  20779 		}
  20780 	}
  20781 	BCM_UNPACK_U32(buf, var->component_id);
  20782 	BCM_UNPACK_U32(buf, var->gport);
  20783 	{
  20784 		int _i;
  20785 
  20786 		for (_i = 0; _i < 10; _i++) {
  20787 			BCM_UNPACK_U8(buf, var->port_name[_i]);
  20788 		}
  20789 	}
  20790 	return buf;
  20791 }
  20792 
  20793 uint8 *
  20794 _bcm_pack_telemetry_instance_export_stats(uint8 *buf, bcm_telemetry_instance_export_stats_t *var)
  20795 {
  20796 	{
  20797 		uint32 _u32;
  20798 
  20799 		_u32 = COMPILER_64_HI(var->tx_pkts);
  20800 		BCM_PACK_U32(buf, _u32);
  20801 		_u32 = COMPILER_64_LO(var->tx_pkts);
  20802 		BCM_PACK_U32(buf, _u32);
  20803 	}
  20804 	{
  20805 		uint32 _u32;
  20806 
  20807 		_u32 = COMPILER_64_HI(var->tx_pkt_fails);
  20808 		BCM_PACK_U32(buf, _u32);
  20809 		_u32 = COMPILER_64_LO(var->tx_pkt_fails);
  20810 		BCM_PACK_U32(buf, _u32);
  20811 	}
  20812 	return buf;
  20813 }
  20814 
  20815 uint8 *
  20816 _bcm_unpack_telemetry_instance_export_stats(uint8 *buf, bcm_telemetry_instance_export_stats_t *var)
  20817 {
  20818 	{
  20819 		uint32 _u32h, _u32l;
  20820 
  20821 		BCM_UNPACK_U32(buf, _u32h);
  20822 		BCM_UNPACK_U32(buf, _u32l);
  20823 		COMPILER_64_SET(var->tx_pkts, _u32h, _u32l);
  20824 	}
  20825 	{
  20826 		uint32 _u32h, _u32l;
  20827 
  20828 		BCM_UNPACK_U32(buf, _u32h);
  20829 		BCM_UNPACK_U32(buf, _u32l);
  20830 		COMPILER_64_SET(var->tx_pkt_fails, _u32h, _u32l);
  20831 	}
  20832 	return buf;
  20833 }
  20834 
  20835 uint8 *
  20836 _bcm_pack_time_bs_log_cfg(uint8 *buf, bcm_time_bs_log_cfg_t *var)
  20837 {
  20838 	BCM_PACK_U32(buf, var->debug_mask);
  20839 	{
  20840 		uint32 _u32;
  20841 
  20842 		_u32 = COMPILER_64_HI(var->udp_log_mask);
  20843 		BCM_PACK_U32(buf, _u32);
  20844 		_u32 = COMPILER_64_LO(var->udp_log_mask);
  20845 		BCM_PACK_U32(buf, _u32);
  20846 	}
  20847 	{
  20848 		int _i;
  20849 
  20850 		for (_i = 0; _i < 6; _i++) {
  20851 			BCM_PACK_U8(buf, var->src_mac[_i]);
  20852 		}
  20853 	}
  20854 	{
  20855 		int _i;
  20856 
  20857 		for (_i = 0; _i < 6; _i++) {
  20858 			BCM_PACK_U8(buf, var->dest_mac[_i]);
  20859 		}
  20860 	}
  20861 	BCM_PACK_U16(buf, var->tpid);
  20862 	BCM_PACK_U16(buf, var->vid);
  20863 	BCM_PACK_U8(buf, var->ttl);
  20864 	BCM_PACK_U32(buf, var->src_addr);
  20865 	BCM_PACK_U32(buf, var->dest_addr);
  20866 	BCM_PACK_U16(buf, var->udp_port);
  20867 	return buf;
  20868 }
  20869 
  20870 uint8 *
  20871 _bcm_unpack_time_bs_log_cfg(uint8 *buf, bcm_time_bs_log_cfg_t *var)
  20872 {
  20873 	BCM_UNPACK_U32(buf, var->debug_mask);
  20874 	{
  20875 		uint32 _u32h, _u32l;
  20876 
  20877 		BCM_UNPACK_U32(buf, _u32h);
  20878 		BCM_UNPACK_U32(buf, _u32l);
  20879 		COMPILER_64_SET(var->udp_log_mask, _u32h, _u32l);
  20880 	}
  20881 	{
  20882 		int _i;
  20883 
  20884 		for (_i = 0; _i < 6; _i++) {
  20885 			BCM_UNPACK_U8(buf, var->src_mac[_i]);
  20886 		}
  20887 	}
  20888 	{
  20889 		int _i;
  20890 
  20891 		for (_i = 0; _i < 6; _i++) {
  20892 			BCM_UNPACK_U8(buf, var->dest_mac[_i]);
  20893 		}
  20894 	}
  20895 	BCM_UNPACK_U16(buf, var->tpid);
  20896 	BCM_UNPACK_U16(buf, var->vid);
  20897 	BCM_UNPACK_U8(buf, var->ttl);
  20898 	BCM_UNPACK_U32(buf, var->src_addr);
  20899 	BCM_UNPACK_U32(buf, var->dest_addr);
  20900 	BCM_UNPACK_U16(buf, var->udp_port);
  20901 	return buf;
  20902 }
  20903 
  20904 uint8 *
  20905 _bcm_pack_time_capture(uint8 *buf, bcm_time_capture_t *var)
  20906 {
  20907 	BCM_PACK_U32(buf, var->flags);
  20908 	BCM_PACK_U8(buf, var->free.isnegative);
  20909 	{
  20910 		uint32 _u32;
  20911 
  20912 		_u32 = COMPILER_64_HI(var->free.seconds);
  20913 		BCM_PACK_U32(buf, _u32);
  20914 		_u32 = COMPILER_64_LO(var->free.seconds);
  20915 		BCM_PACK_U32(buf, _u32);
  20916 	}
  20917 	BCM_PACK_U32(buf, var->free.nanoseconds);
  20918 	BCM_PACK_U8(buf, var->syntonous.isnegative);
  20919 	{
  20920 		uint32 _u32;
  20921 
  20922 		_u32 = COMPILER_64_HI(var->syntonous.seconds);
  20923 		BCM_PACK_U32(buf, _u32);
  20924 		_u32 = COMPILER_64_LO(var->syntonous.seconds);
  20925 		BCM_PACK_U32(buf, _u32);
  20926 	}
  20927 	BCM_PACK_U32(buf, var->syntonous.nanoseconds);
  20928 	BCM_PACK_U8(buf, var->synchronous.isnegative);
  20929 	{
  20930 		uint32 _u32;
  20931 
  20932 		_u32 = COMPILER_64_HI(var->synchronous.seconds);
  20933 		BCM_PACK_U32(buf, _u32);
  20934 		_u32 = COMPILER_64_LO(var->synchronous.seconds);
  20935 		BCM_PACK_U32(buf, _u32);
  20936 	}
  20937 	BCM_PACK_U32(buf, var->synchronous.nanoseconds);
  20938 	BCM_PACK_U8(buf, var->received.isnegative);
  20939 	{
  20940 		uint32 _u32;
  20941 
  20942 		_u32 = COMPILER_64_HI(var->received.seconds);
  20943 		BCM_PACK_U32(buf, _u32);
  20944 		_u32 = COMPILER_64_LO(var->received.seconds);
  20945 		BCM_PACK_U32(buf, _u32);
  20946 	}
  20947 	BCM_PACK_U32(buf, var->received.nanoseconds);
  20948 	BCM_PACK_U8(buf, var->received_accuracy.isnegative);
  20949 	{
  20950 		uint32 _u32;
  20951 
  20952 		_u32 = COMPILER_64_HI(var->received_accuracy.seconds);
  20953 		BCM_PACK_U32(buf, _u32);
  20954 		_u32 = COMPILER_64_LO(var->received_accuracy.seconds);
  20955 		BCM_PACK_U32(buf, _u32);
  20956 	}
  20957 	BCM_PACK_U32(buf, var->received_accuracy.nanoseconds);
  20958 	BCM_PACK_U32(buf, var->port);
  20959 	BCM_PACK_U32(buf, var->port_event_type);
  20960 	BCM_PACK_U32(buf, var->event_divisor);
  20961 	BCM_PACK_U32(buf, var->ts_counter);
  20962 	return buf;
  20963 }
  20964 
  20965 uint8 *
  20966 _bcm_unpack_time_capture(uint8 *buf, bcm_time_capture_t *var)
  20967 {
  20968 	BCM_UNPACK_U32(buf, var->flags);
  20969 	BCM_UNPACK_U8(buf, var->free.isnegative);
  20970 	{
  20971 		uint32 _u32h, _u32l;
  20972 
  20973 		BCM_UNPACK_U32(buf, _u32h);
  20974 		BCM_UNPACK_U32(buf, _u32l);
  20975 		COMPILER_64_SET(var->free.seconds, _u32h, _u32l);
  20976 	}
  20977 	BCM_UNPACK_U32(buf, var->free.nanoseconds);
  20978 	BCM_UNPACK_U8(buf, var->syntonous.isnegative);
  20979 	{
  20980 		uint32 _u32h, _u32l;
  20981 
  20982 		BCM_UNPACK_U32(buf, _u32h);
  20983 		BCM_UNPACK_U32(buf, _u32l);
  20984 		COMPILER_64_SET(var->syntonous.seconds, _u32h, _u32l);
  20985 	}
  20986 	BCM_UNPACK_U32(buf, var->syntonous.nanoseconds);
  20987 	BCM_UNPACK_U8(buf, var->synchronous.isnegative);
  20988 	{
  20989 		uint32 _u32h, _u32l;
  20990 
  20991 		BCM_UNPACK_U32(buf, _u32h);
  20992 		BCM_UNPACK_U32(buf, _u32l);
  20993 		COMPILER_64_SET(var->synchronous.seconds, _u32h, _u32l);
  20994 	}
  20995 	BCM_UNPACK_U32(buf, var->synchronous.nanoseconds);
  20996 	BCM_UNPACK_U8(buf, var->received.isnegative);
  20997 	{
  20998 		uint32 _u32h, _u32l;
  20999 
  21000 		BCM_UNPACK_U32(buf, _u32h);
  21001 		BCM_UNPACK_U32(buf, _u32l);
  21002 		COMPILER_64_SET(var->received.seconds, _u32h, _u32l);
  21003 	}
  21004 	BCM_UNPACK_U32(buf, var->received.nanoseconds);
  21005 	BCM_UNPACK_U8(buf, var->received_accuracy.isnegative);
  21006 	{
  21007 		uint32 _u32h, _u32l;
  21008 
  21009 		BCM_UNPACK_U32(buf, _u32h);
  21010 		BCM_UNPACK_U32(buf, _u32l);
  21011 		COMPILER_64_SET(var->received_accuracy.seconds, _u32h, _u32l);
  21012 	}
  21013 	BCM_UNPACK_U32(buf, var->received_accuracy.nanoseconds);
  21014 	BCM_UNPACK_U32(buf, var->port);
  21015 	BCM_UNPACK_U32(buf, var->port_event_type);
  21016 	BCM_UNPACK_U32(buf, var->event_divisor);
  21017 	BCM_UNPACK_U32(buf, var->ts_counter);
  21018 	return buf;
  21019 }
  21020 
  21021 uint8 *
  21022 _bcm_pack_time_interface(uint8 *buf, bcm_time_interface_t *var)
  21023 {
  21024 	BCM_PACK_U32(buf, var->flags);
  21025 	BCM_PACK_U32(buf, var->id);
  21026 	BCM_PACK_U8(buf, var->drift.isnegative);
  21027 	{
  21028 		uint32 _u32;
  21029 
  21030 		_u32 = COMPILER_64_HI(var->drift.seconds);
  21031 		BCM_PACK_U32(buf, _u32);
  21032 		_u32 = COMPILER_64_LO(var->drift.seconds);
  21033 		BCM_PACK_U32(buf, _u32);
  21034 	}
  21035 	BCM_PACK_U32(buf, var->drift.nanoseconds);
  21036 	BCM_PACK_U8(buf, var->offset.isnegative);
  21037 	{
  21038 		uint32 _u32;
  21039 
  21040 		_u32 = COMPILER_64_HI(var->offset.seconds);
  21041 		BCM_PACK_U32(buf, _u32);
  21042 		_u32 = COMPILER_64_LO(var->offset.seconds);
  21043 		BCM_PACK_U32(buf, _u32);
  21044 	}
  21045 	BCM_PACK_U32(buf, var->offset.nanoseconds);
  21046 	BCM_PACK_U8(buf, var->accuracy.isnegative);
  21047 	{
  21048 		uint32 _u32;
  21049 
  21050 		_u32 = COMPILER_64_HI(var->accuracy.seconds);
  21051 		BCM_PACK_U32(buf, _u32);
  21052 		_u32 = COMPILER_64_LO(var->accuracy.seconds);
  21053 		BCM_PACK_U32(buf, _u32);
  21054 	}
  21055 	BCM_PACK_U32(buf, var->accuracy.nanoseconds);
  21056 	BCM_PACK_U32(buf, var->heartbeat_hz);
  21057 	BCM_PACK_U32(buf, var->clk_resolution);
  21058 	BCM_PACK_U32(buf, var->bitclock_hz);
  21059 	BCM_PACK_U32(buf, var->status);
  21060 	BCM_PACK_U8(buf, var->ntp_offset.isnegative);
  21061 	{
  21062 		uint32 _u32;
  21063 
  21064 		_u32 = COMPILER_64_HI(var->ntp_offset.seconds);
  21065 		BCM_PACK_U32(buf, _u32);
  21066 		_u32 = COMPILER_64_LO(var->ntp_offset.seconds);
  21067 		BCM_PACK_U32(buf, _u32);
  21068 	}
  21069 	BCM_PACK_U32(buf, var->ntp_offset.nanoseconds);
  21070 	BCM_PACK_U8(buf, var->bs_time.isnegative);
  21071 	{
  21072 		uint32 _u32;
  21073 
  21074 		_u32 = COMPILER_64_HI(var->bs_time.seconds);
  21075 		BCM_PACK_U32(buf, _u32);
  21076 		_u32 = COMPILER_64_LO(var->bs_time.seconds);
  21077 		BCM_PACK_U32(buf, _u32);
  21078 	}
  21079 	BCM_PACK_U32(buf, var->bs_time.nanoseconds);
  21080 	return buf;
  21081 }
  21082 
  21083 uint8 *
  21084 _bcm_unpack_time_interface(uint8 *buf, bcm_time_interface_t *var)
  21085 {
  21086 	BCM_UNPACK_U32(buf, var->flags);
  21087 	BCM_UNPACK_U32(buf, var->id);
  21088 	BCM_UNPACK_U8(buf, var->drift.isnegative);
  21089 	{
  21090 		uint32 _u32h, _u32l;
  21091 
  21092 		BCM_UNPACK_U32(buf, _u32h);
  21093 		BCM_UNPACK_U32(buf, _u32l);
  21094 		COMPILER_64_SET(var->drift.seconds, _u32h, _u32l);
  21095 	}
  21096 	BCM_UNPACK_U32(buf, var->drift.nanoseconds);
  21097 	BCM_UNPACK_U8(buf, var->offset.isnegative);
  21098 	{
  21099 		uint32 _u32h, _u32l;
  21100 
  21101 		BCM_UNPACK_U32(buf, _u32h);
  21102 		BCM_UNPACK_U32(buf, _u32l);
  21103 		COMPILER_64_SET(var->offset.seconds, _u32h, _u32l);
  21104 	}
  21105 	BCM_UNPACK_U32(buf, var->offset.nanoseconds);
  21106 	BCM_UNPACK_U8(buf, var->accuracy.isnegative);
  21107 	{
  21108 		uint32 _u32h, _u32l;
  21109 
  21110 		BCM_UNPACK_U32(buf, _u32h);
  21111 		BCM_UNPACK_U32(buf, _u32l);
  21112 		COMPILER_64_SET(var->accuracy.seconds, _u32h, _u32l);
  21113 	}
  21114 	BCM_UNPACK_U32(buf, var->accuracy.nanoseconds);
  21115 	BCM_UNPACK_U32(buf, var->heartbeat_hz);
  21116 	BCM_UNPACK_U32(buf, var->clk_resolution);
  21117 	BCM_UNPACK_U32(buf, var->bitclock_hz);
  21118 	BCM_UNPACK_U32(buf, var->status);
  21119 	BCM_UNPACK_U8(buf, var->ntp_offset.isnegative);
  21120 	{
  21121 		uint32 _u32h, _u32l;
  21122 
  21123 		BCM_UNPACK_U32(buf, _u32h);
  21124 		BCM_UNPACK_U32(buf, _u32l);
  21125 		COMPILER_64_SET(var->ntp_offset.seconds, _u32h, _u32l);
  21126 	}
  21127 	BCM_UNPACK_U32(buf, var->ntp_offset.nanoseconds);
  21128 	BCM_UNPACK_U8(buf, var->bs_time.isnegative);
  21129 	{
  21130 		uint32 _u32h, _u32l;
  21131 
  21132 		BCM_UNPACK_U32(buf, _u32h);
  21133 		BCM_UNPACK_U32(buf, _u32l);
  21134 		COMPILER_64_SET(var->bs_time.seconds, _u32h, _u32l);
  21135 	}
  21136 	BCM_UNPACK_U32(buf, var->bs_time.nanoseconds);
  21137 	return buf;
  21138 }
  21139 
  21140 uint8 *
  21141 _bcm_pack_time_spec(uint8 *buf, bcm_time_spec_t *var)
  21142 {
  21143 	BCM_PACK_U8(buf, var->isnegative);
  21144 	{
  21145 		uint32 _u32;
  21146 
  21147 		_u32 = COMPILER_64_HI(var->seconds);
  21148 		BCM_PACK_U32(buf, _u32);
  21149 		_u32 = COMPILER_64_LO(var->seconds);
  21150 		BCM_PACK_U32(buf, _u32);
  21151 	}
  21152 	BCM_PACK_U32(buf, var->nanoseconds);
  21153 	return buf;
  21154 }
  21155 
  21156 uint8 *
  21157 _bcm_unpack_time_spec(uint8 *buf, bcm_time_spec_t *var)
  21158 {
  21159 	BCM_UNPACK_U8(buf, var->isnegative);
  21160 	{
  21161 		uint32 _u32h, _u32l;
  21162 
  21163 		BCM_UNPACK_U32(buf, _u32h);
  21164 		BCM_UNPACK_U32(buf, _u32l);
  21165 		COMPILER_64_SET(var->seconds, _u32h, _u32l);
  21166 	}
  21167 	BCM_UNPACK_U32(buf, var->nanoseconds);
  21168 	return buf;
  21169 }
  21170 
  21171 uint8 *
  21172 _bcm_pack_time_synce_clock_source_config(uint8 *buf, bcm_time_synce_clock_source_config_t *var)
  21173 {
  21174 	BCM_PACK_U32(buf, var->clk_src);
  21175 	BCM_PACK_U32(buf, var->input_src);
  21176 	BCM_PACK_U32(buf, var->pll_index);
  21177 	BCM_PACK_U32(buf, var->port);
  21178 	return buf;
  21179 }
  21180 
  21181 uint8 *
  21182 _bcm_unpack_time_synce_clock_source_config(uint8 *buf, bcm_time_synce_clock_source_config_t *var)
  21183 {
  21184 	BCM_UNPACK_U32(buf, var->clk_src);
  21185 	BCM_UNPACK_U32(buf, var->input_src);
  21186 	BCM_UNPACK_U32(buf, var->pll_index);
  21187 	BCM_UNPACK_U32(buf, var->port);
  21188 	return buf;
  21189 }
  21190 
  21191 uint8 *
  21192 _bcm_pack_time_synce_divisor_setting(uint8 *buf, bcm_time_synce_divisor_setting_t *var)
  21193 {
  21194 	BCM_PACK_U32(buf, var->input_src);
  21195 	BCM_PACK_U32(buf, var->index);
  21196 	BCM_PACK_U32(buf, var->stage0_mode);
  21197 	BCM_PACK_U32(buf, var->stage0_sdm_whole);
  21198 	BCM_PACK_U32(buf, var->stage0_sdm_frac);
  21199 	BCM_PACK_U32(buf, var->stage1_div);
  21200 	return buf;
  21201 }
  21202 
  21203 uint8 *
  21204 _bcm_unpack_time_synce_divisor_setting(uint8 *buf, bcm_time_synce_divisor_setting_t *var)
  21205 {
  21206 	BCM_UNPACK_U32(buf, var->input_src);
  21207 	BCM_UNPACK_U32(buf, var->index);
  21208 	BCM_UNPACK_U32(buf, var->stage0_mode);
  21209 	BCM_UNPACK_U32(buf, var->stage0_sdm_whole);
  21210 	BCM_UNPACK_U32(buf, var->stage0_sdm_frac);
  21211 	BCM_UNPACK_U32(buf, var->stage1_div);
  21212 	return buf;
  21213 }
  21214 
  21215 uint8 *
  21216 _bcm_pack_time_tod(uint8 *buf, bcm_time_tod_t *var)
  21217 {
  21218 	BCM_PACK_U32(buf, var->time_format);
  21219 	BCM_PACK_U8(buf, var->ts.isnegative);
  21220 	{
  21221 		uint32 _u32;
  21222 
  21223 		_u32 = COMPILER_64_HI(var->ts.seconds);
  21224 		BCM_PACK_U32(buf, _u32);
  21225 		_u32 = COMPILER_64_LO(var->ts.seconds);
  21226 		BCM_PACK_U32(buf, _u32);
  21227 	}
  21228 	BCM_PACK_U32(buf, var->ts.nanoseconds);
  21229 	{
  21230 		uint32 _u32;
  21231 
  21232 		_u32 = COMPILER_64_HI(var->ts_adjustment_counter_ns);
  21233 		BCM_PACK_U32(buf, _u32);
  21234 		_u32 = COMPILER_64_LO(var->ts_adjustment_counter_ns);
  21235 		BCM_PACK_U32(buf, _u32);
  21236 	}
  21237 	return buf;
  21238 }
  21239 
  21240 uint8 *
  21241 _bcm_unpack_time_tod(uint8 *buf, bcm_time_tod_t *var)
  21242 {
  21243 	BCM_UNPACK_U32(buf, var->time_format);
  21244 	BCM_UNPACK_U8(buf, var->ts.isnegative);
  21245 	{
  21246 		uint32 _u32h, _u32l;
  21247 
  21248 		BCM_UNPACK_U32(buf, _u32h);
  21249 		BCM_UNPACK_U32(buf, _u32l);
  21250 		COMPILER_64_SET(var->ts.seconds, _u32h, _u32l);
  21251 	}
  21252 	BCM_UNPACK_U32(buf, var->ts.nanoseconds);
  21253 	{
  21254 		uint32 _u32h, _u32l;
  21255 
  21256 		BCM_UNPACK_U32(buf, _u32h);
  21257 		BCM_UNPACK_U32(buf, _u32l);
  21258 		COMPILER_64_SET(var->ts_adjustment_counter_ns, _u32h, _u32l);
  21259 	}
  21260 	return buf;
  21261 }
  21262 
  21263 uint8 *
  21264 _bcm_pack_time_ts_counter(uint8 *buf, bcm_time_ts_counter_t *var)
  21265 {
  21266 	BCM_PACK_U32(buf, var->time_format);
  21267 	BCM_PACK_U32(buf, var->enable);
  21268 	BCM_PACK_U32(buf, var->ts_counter);
  21269 	{
  21270 		uint32 _u32;
  21271 
  21272 		_u32 = COMPILER_64_HI(var->ts_counter_ns);
  21273 		BCM_PACK_U32(buf, _u32);
  21274 		_u32 = COMPILER_64_LO(var->ts_counter_ns);
  21275 		BCM_PACK_U32(buf, _u32);
  21276 	}
  21277 	return buf;
  21278 }
  21279 
  21280 uint8 *
  21281 _bcm_unpack_time_ts_counter(uint8 *buf, bcm_time_ts_counter_t *var)
  21282 {
  21283 	BCM_UNPACK_U32(buf, var->time_format);
  21284 	BCM_UNPACK_U32(buf, var->enable);
  21285 	BCM_UNPACK_U32(buf, var->ts_counter);
  21286 	{
  21287 		uint32 _u32h, _u32l;
  21288 
  21289 		BCM_UNPACK_U32(buf, _u32h);
  21290 		BCM_UNPACK_U32(buf, _u32l);
  21291 		COMPILER_64_SET(var->ts_counter_ns, _u32h, _u32l);
  21292 	}
  21293 	return buf;
  21294 }
  21295 
  21296 #ifdef	INCLUDE_L3
  21297 
  21298 uint8 *
  21299 _bcm_pack_trill_multicast_adjacency(uint8 *buf, bcm_trill_multicast_adjacency_t *var)
  21300 {
  21301 	BCM_PACK_U32(buf, var->port);
  21302 	BCM_PACK_U32(buf, var->flags);
  21303 	BCM_PACK_U32(buf, var->encap_intf);
  21304 	return buf;
  21305 }
  21306 
  21307 uint8 *
  21308 _bcm_unpack_trill_multicast_adjacency(uint8 *buf, bcm_trill_multicast_adjacency_t *var)
  21309 {
  21310 	BCM_UNPACK_U32(buf, var->port);
  21311 	BCM_UNPACK_U32(buf, var->flags);
  21312 	BCM_UNPACK_U32(buf, var->encap_intf);
  21313 	return buf;
  21314 }
  21315 
  21316 uint8 *
  21317 _bcm_pack_trill_multicast_entry(uint8 *buf, bcm_trill_multicast_entry_t *var)
  21318 {
  21319 	BCM_PACK_U32(buf, var->flags);
  21320 	BCM_PACK_U32(buf, var->root_name);
  21321 	BCM_PACK_U16(buf, var->c_vlan);
  21322 	{
  21323 		int _i;
  21324 
  21325 		for (_i = 0; _i < 6; _i++) {
  21326 			BCM_PACK_U8(buf, var->c_dmac[_i]);
  21327 		}
  21328 	}
  21329 	BCM_PACK_U32(buf, var->group);
  21330 	BCM_PACK_U32(buf, var->encap_intf);
  21331 	BCM_PACK_U16(buf, var->c_vlan_inner);
  21332 	return buf;
  21333 }
  21334 
  21335 uint8 *
  21336 _bcm_unpack_trill_multicast_entry(uint8 *buf, bcm_trill_multicast_entry_t *var)
  21337 {
  21338 	BCM_UNPACK_U32(buf, var->flags);
  21339 	BCM_UNPACK_U32(buf, var->root_name);
  21340 	BCM_UNPACK_U16(buf, var->c_vlan);
  21341 	{
  21342 		int _i;
  21343 
  21344 		for (_i = 0; _i < 6; _i++) {
  21345 			BCM_UNPACK_U8(buf, var->c_dmac[_i]);
  21346 		}
  21347 	}
  21348 	BCM_UNPACK_U32(buf, var->group);
  21349 	BCM_UNPACK_U32(buf, var->encap_intf);
  21350 	BCM_UNPACK_U16(buf, var->c_vlan_inner);
  21351 	return buf;
  21352 }
  21353 
  21354 uint8 *
  21355 _bcm_pack_trill_port(uint8 *buf, bcm_trill_port_t *var)
  21356 {
  21357 	BCM_PACK_U32(buf, var->trill_port_id);
  21358 	BCM_PACK_U32(buf, var->flags);
  21359 	BCM_PACK_U32(buf, var->if_class);
  21360 	BCM_PACK_U32(buf, var->port);
  21361 	BCM_PACK_U32(buf, var->egress_if);
  21362 	BCM_PACK_U32(buf, var->name);
  21363 	BCM_PACK_U32(buf, var->mtu);
  21364 	BCM_PACK_U32(buf, var->hopcount);
  21365 	BCM_PACK_U32(buf, var->multicast_hopcount);
  21366 	BCM_PACK_U32(buf, var->encap_id);
  21367 	BCM_PACK_U32(buf, var->virtual_name);
  21368 	BCM_PACK_U32(buf, var->network_group_id);
  21369 	BCM_PACK_U32(buf, var->inlif_counting_profile);
  21370 	BCM_PACK_U32(buf, var->outlif_counting_profile);
  21371 	return buf;
  21372 }
  21373 
  21374 uint8 *
  21375 _bcm_unpack_trill_port(uint8 *buf, bcm_trill_port_t *var)
  21376 {
  21377 	BCM_UNPACK_U32(buf, var->trill_port_id);
  21378 	BCM_UNPACK_U32(buf, var->flags);
  21379 	BCM_UNPACK_U32(buf, var->if_class);
  21380 	BCM_UNPACK_U32(buf, var->port);
  21381 	BCM_UNPACK_U32(buf, var->egress_if);
  21382 	BCM_UNPACK_U32(buf, var->name);
  21383 	BCM_UNPACK_U32(buf, var->mtu);
  21384 	BCM_UNPACK_U32(buf, var->hopcount);
  21385 	BCM_UNPACK_U32(buf, var->multicast_hopcount);
  21386 	BCM_UNPACK_U32(buf, var->encap_id);
  21387 	BCM_UNPACK_U32(buf, var->virtual_name);
  21388 	BCM_UNPACK_U32(buf, var->network_group_id);
  21389 	BCM_UNPACK_U32(buf, var->inlif_counting_profile);
  21390 	BCM_UNPACK_U32(buf, var->outlif_counting_profile);
  21391 	return buf;
  21392 }
  21393 
  21394 uint8 *
  21395 _bcm_pack_trill_rbridge(uint8 *buf, bcm_trill_rbridge_t *var)
  21396 {
  21397 	BCM_PACK_U32(buf, var->flags);
  21398 	BCM_PACK_U32(buf, var->name);
  21399 	BCM_PACK_U32(buf, var->egress_if);
  21400 	BCM_PACK_U32(buf, var->mtu);
  21401 	BCM_PACK_U32(buf, var->hopcount);
  21402 	return buf;
  21403 }
  21404 
  21405 uint8 *
  21406 _bcm_unpack_trill_rbridge(uint8 *buf, bcm_trill_rbridge_t *var)
  21407 {
  21408 	BCM_UNPACK_U32(buf, var->flags);
  21409 	BCM_UNPACK_U32(buf, var->name);
  21410 	BCM_UNPACK_U32(buf, var->egress_if);
  21411 	BCM_UNPACK_U32(buf, var->mtu);
  21412 	BCM_UNPACK_U32(buf, var->hopcount);
  21413 	return buf;
  21414 }
  21415 
  21416 uint8 *
  21417 _bcm_pack_trill_vpn_config(uint8 *buf, bcm_trill_vpn_config_t *var)
  21418 {
  21419 	BCM_PACK_U32(buf, var->flags);
  21420 	BCM_PACK_U16(buf, var->vpn);
  21421 	BCM_PACK_U16(buf, var->high_vid);
  21422 	BCM_PACK_U16(buf, var->low_vid);
  21423 	BCM_PACK_U32(buf, var->broadcast_group);
  21424 	BCM_PACK_U32(buf, var->unknown_unicast_group);
  21425 	BCM_PACK_U32(buf, var->unknown_multicast_group);
  21426 	return buf;
  21427 }
  21428 
  21429 uint8 *
  21430 _bcm_unpack_trill_vpn_config(uint8 *buf, bcm_trill_vpn_config_t *var)
  21431 {
  21432 	BCM_UNPACK_U32(buf, var->flags);
  21433 	BCM_UNPACK_U16(buf, var->vpn);
  21434 	BCM_UNPACK_U16(buf, var->high_vid);
  21435 	BCM_UNPACK_U16(buf, var->low_vid);
  21436 	BCM_UNPACK_U32(buf, var->broadcast_group);
  21437 	BCM_UNPACK_U32(buf, var->unknown_unicast_group);
  21438 	BCM_UNPACK_U32(buf, var->unknown_multicast_group);
  21439 	return buf;
  21440 }
  21441 
  21442 #endif	/* INCLUDE_L3 */
  21443 
  21444 uint8 *
  21445 _bcm_pack_trunk_chip_info(uint8 *buf, bcm_trunk_chip_info_t *var)
  21446 {
  21447 	BCM_PACK_U32(buf, var->trunk_group_count);
  21448 	BCM_PACK_U32(buf, var->trunk_id_min);
  21449 	BCM_PACK_U32(buf, var->trunk_id_max);
  21450 	BCM_PACK_U32(buf, var->trunk_ports_max);
  21451 	BCM_PACK_U32(buf, var->trunk_fabric_id_min);
  21452 	BCM_PACK_U32(buf, var->trunk_fabric_id_max);
  21453 	BCM_PACK_U32(buf, var->trunk_fabric_ports_max);
  21454 	BCM_PACK_U32(buf, var->vp_id_min);
  21455 	BCM_PACK_U32(buf, var->vp_id_max);
  21456 	BCM_PACK_U32(buf, var->vp_ports_max);
  21457 	return buf;
  21458 }
  21459 
  21460 uint8 *
  21461 _bcm_unpack_trunk_chip_info(uint8 *buf, bcm_trunk_chip_info_t *var)
  21462 {
  21463 	BCM_UNPACK_U32(buf, var->trunk_group_count);
  21464 	BCM_UNPACK_U32(buf, var->trunk_id_min);
  21465 	BCM_UNPACK_U32(buf, var->trunk_id_max);
  21466 	BCM_UNPACK_U32(buf, var->trunk_ports_max);
  21467 	BCM_UNPACK_U32(buf, var->trunk_fabric_id_min);
  21468 	BCM_UNPACK_U32(buf, var->trunk_fabric_id_max);
  21469 	BCM_UNPACK_U32(buf, var->trunk_fabric_ports_max);
  21470 	BCM_UNPACK_U32(buf, var->vp_id_min);
  21471 	BCM_UNPACK_U32(buf, var->vp_id_max);
  21472 	BCM_UNPACK_U32(buf, var->vp_ports_max);
  21473 	return buf;
  21474 }
  21475 
  21476 uint8 *
  21477 _bcm_pack_trunk_info(uint8 *buf, bcm_trunk_info_t *var)
  21478 {
  21479 	BCM_PACK_U32(buf, var->flags);
  21480 	BCM_PACK_U32(buf, var->psc);
  21481 	{
  21482 		int _i;
  21483 
  21484 		for (_i = 0; _i < 16; _i++) {
  21485 			BCM_PACK_U32(buf, var->psc_info.weight_array[_i]);
  21486 		}
  21487 	}
  21488 	BCM_PACK_U32(buf, var->psc_info.weight_array_size);
  21489 	BCM_PACK_U32(buf, var->psc_info.psc_flags);
  21490 	BCM_PACK_U32(buf, var->psc_info.max_nof_members_in_profile);
  21491 	BCM_PACK_U32(buf, var->ipmc_psc);
  21492 	BCM_PACK_U32(buf, var->dlf_index);
  21493 	BCM_PACK_U32(buf, var->mc_index);
  21494 	BCM_PACK_U32(buf, var->ipmc_index);
  21495 	BCM_PACK_U32(buf, var->dynamic_size);
  21496 	BCM_PACK_U32(buf, var->dynamic_age);
  21497 	BCM_PACK_U32(buf, var->dynamic_load_exponent);
  21498 	BCM_PACK_U32(buf, var->dynamic_expected_load_exponent);
  21499 	BCM_PACK_U32(buf, var->master_tid);
  21500 	return buf;
  21501 }
  21502 
  21503 uint8 *
  21504 _bcm_unpack_trunk_info(uint8 *buf, bcm_trunk_info_t *var)
  21505 {
  21506 	BCM_UNPACK_U32(buf, var->flags);
  21507 	BCM_UNPACK_U32(buf, var->psc);
  21508 	{
  21509 		int _i;
  21510 
  21511 		for (_i = 0; _i < 16; _i++) {
  21512 			BCM_UNPACK_U32(buf, var->psc_info.weight_array[_i]);
  21513 		}
  21514 	}
  21515 	BCM_UNPACK_U32(buf, var->psc_info.weight_array_size);
  21516 	BCM_UNPACK_U32(buf, var->psc_info.psc_flags);
  21517 	BCM_UNPACK_U32(buf, var->psc_info.max_nof_members_in_profile);
  21518 	BCM_UNPACK_U32(buf, var->ipmc_psc);
  21519 	BCM_UNPACK_U32(buf, var->dlf_index);
  21520 	BCM_UNPACK_U32(buf, var->mc_index);
  21521 	BCM_UNPACK_U32(buf, var->ipmc_index);
  21522 	BCM_UNPACK_U32(buf, var->dynamic_size);
  21523 	BCM_UNPACK_U32(buf, var->dynamic_age);
  21524 	BCM_UNPACK_U32(buf, var->dynamic_load_exponent);
  21525 	BCM_UNPACK_U32(buf, var->dynamic_expected_load_exponent);
  21526 	BCM_UNPACK_U32(buf, var->master_tid);
  21527 	return buf;
  21528 }
  21529 
  21530 uint8 *
  21531 _bcm_pack_trunk_member(uint8 *buf, bcm_trunk_member_t *var)
  21532 {
  21533 	BCM_PACK_U32(buf, var->flags);
  21534 	BCM_PACK_U32(buf, var->gport);
  21535 	BCM_PACK_U32(buf, var->dynamic_scaling_factor);
  21536 	BCM_PACK_U32(buf, var->dynamic_load_weight);
  21537 	BCM_PACK_U32(buf, var->dynamic_queue_size_weight);
  21538 	return buf;
  21539 }
  21540 
  21541 uint8 *
  21542 _bcm_unpack_trunk_member(uint8 *buf, bcm_trunk_member_t *var)
  21543 {
  21544 	BCM_UNPACK_U32(buf, var->flags);
  21545 	BCM_UNPACK_U32(buf, var->gport);
  21546 	BCM_UNPACK_U32(buf, var->dynamic_scaling_factor);
  21547 	BCM_UNPACK_U32(buf, var->dynamic_load_weight);
  21548 	BCM_UNPACK_U32(buf, var->dynamic_queue_size_weight);
  21549 	return buf;
  21550 }
  21551 
  21552 uint8 *
  21553 _bcm_pack_trunk_pp_port_allocation_info(uint8 *buf, bcm_trunk_pp_port_allocation_info_t *var)
  21554 {
  21555 	BCM_PACK_U32(buf, var->core_bitmap);
  21556 	{
  21557 		int _i;
  21558 
  21559 		for (_i = 0; _i < 32; _i++) {
  21560 			BCM_PACK_U32(buf, var->pp_port_per_core_array[_i]);
  21561 		}
  21562 	}
  21563 	return buf;
  21564 }
  21565 
  21566 uint8 *
  21567 _bcm_unpack_trunk_pp_port_allocation_info(uint8 *buf, bcm_trunk_pp_port_allocation_info_t *var)
  21568 {
  21569 	BCM_UNPACK_U32(buf, var->core_bitmap);
  21570 	{
  21571 		int _i;
  21572 
  21573 		for (_i = 0; _i < 32; _i++) {
  21574 			BCM_UNPACK_U32(buf, var->pp_port_per_core_array[_i]);
  21575 		}
  21576 	}
  21577 	return buf;
  21578 }
  21579 
  21580 uint8 *
  21581 _bcm_pack_trunk_resilient_entry(uint8 *buf, bcm_trunk_resilient_entry_t *var)
  21582 {
  21583 	{
  21584 		uint32 _u32;
  21585 
  21586 		_u32 = COMPILER_64_HI(var->hash_key);
  21587 		BCM_PACK_U32(buf, _u32);
  21588 		_u32 = COMPILER_64_LO(var->hash_key);
  21589 		BCM_PACK_U32(buf, _u32);
  21590 	}
  21591 	BCM_PACK_U32(buf, var->tid);
  21592 	BCM_PACK_U32(buf, var->member->flags);
  21593 	BCM_PACK_U32(buf, var->member->gport);
  21594 	BCM_PACK_U32(buf, var->member->dynamic_scaling_factor);
  21595 	BCM_PACK_U32(buf, var->member->dynamic_load_weight);
  21596 	BCM_PACK_U32(buf, var->member->dynamic_queue_size_weight);
  21597 	return buf;
  21598 }
  21599 
  21600 uint8 *
  21601 _bcm_unpack_trunk_resilient_entry(uint8 *buf, bcm_trunk_resilient_entry_t *var)
  21602 {
  21603 	{
  21604 		uint32 _u32h, _u32l;
  21605 
  21606 		BCM_UNPACK_U32(buf, _u32h);
  21607 		BCM_UNPACK_U32(buf, _u32l);
  21608 		COMPILER_64_SET(var->hash_key, _u32h, _u32l);
  21609 	}
  21610 	BCM_UNPACK_U32(buf, var->tid);
  21611 	BCM_UNPACK_U32(buf, var->member->flags);
  21612 	BCM_UNPACK_U32(buf, var->member->gport);
  21613 	BCM_UNPACK_U32(buf, var->member->dynamic_scaling_factor);
  21614 	BCM_UNPACK_U32(buf, var->member->dynamic_load_weight);
  21615 	BCM_UNPACK_U32(buf, var->member->dynamic_queue_size_weight);
  21616 	return buf;
  21617 }
  21618 
  21619 uint8 *
  21620 _bcm_pack_tsn_flow_config(uint8 *buf, bcm_tsn_flow_config_t *var)
  21621 {
  21622 	BCM_PACK_U32(buf, var->flags);
  21623 	BCM_PACK_U32(buf, var->ingress_mtu_profile);
  21624 	return buf;
  21625 }
  21626 
  21627 uint8 *
  21628 _bcm_unpack_tsn_flow_config(uint8 *buf, bcm_tsn_flow_config_t *var)
  21629 {
  21630 	BCM_UNPACK_U32(buf, var->flags);
  21631 	BCM_UNPACK_U32(buf, var->ingress_mtu_profile);
  21632 	return buf;
  21633 }
  21634 
  21635 uint8 *
  21636 _bcm_pack_tsn_flowset_status(uint8 *buf, bcm_tsn_flowset_status_t *var)
  21637 {
  21638 	BCM_PACK_U32(buf, var->count);
  21639 	BCM_PACK_U32(buf, var->active);
  21640 	return buf;
  21641 }
  21642 
  21643 uint8 *
  21644 _bcm_unpack_tsn_flowset_status(uint8 *buf, bcm_tsn_flowset_status_t *var)
  21645 {
  21646 	BCM_UNPACK_U32(buf, var->count);
  21647 	BCM_UNPACK_U32(buf, var->active);
  21648 	return buf;
  21649 }
  21650 
  21651 uint8 *
  21652 _bcm_pack_tsn_ingress_mtu_config(uint8 *buf, bcm_tsn_ingress_mtu_config_t *var)
  21653 {
  21654 	BCM_PACK_U32(buf, var->source_order[0]);
  21655 	BCM_PACK_U32(buf, var->source_order[1]);
  21656 	BCM_PACK_U32(buf, var->source_order[2]);
  21657 	BCM_PACK_U32(buf, var->source_order[3]);
  21658 	BCM_PACK_U32(buf, var->source_order_count);
  21659 	return buf;
  21660 }
  21661 
  21662 uint8 *
  21663 _bcm_unpack_tsn_ingress_mtu_config(uint8 *buf, bcm_tsn_ingress_mtu_config_t *var)
  21664 {
  21665 	BCM_UNPACK_U32(buf, var->source_order[0]);
  21666 	BCM_UNPACK_U32(buf, var->source_order[1]);
  21667 	BCM_UNPACK_U32(buf, var->source_order[2]);
  21668 	BCM_UNPACK_U32(buf, var->source_order[3]);
  21669 	BCM_UNPACK_U32(buf, var->source_order_count);
  21670 	return buf;
  21671 }
  21672 
  21673 uint8 *
  21674 _bcm_pack_tsn_ingress_stu_config(uint8 *buf, bcm_tsn_ingress_stu_config_t *var)
  21675 {
  21676 	BCM_PACK_U32(buf, var->source_order[0]);
  21677 	BCM_PACK_U32(buf, var->source_order[1]);
  21678 	BCM_PACK_U32(buf, var->source_order_count);
  21679 	return buf;
  21680 }
  21681 
  21682 uint8 *
  21683 _bcm_unpack_tsn_ingress_stu_config(uint8 *buf, bcm_tsn_ingress_stu_config_t *var)
  21684 {
  21685 	BCM_UNPACK_U32(buf, var->source_order[0]);
  21686 	BCM_UNPACK_U32(buf, var->source_order[1]);
  21687 	BCM_UNPACK_U32(buf, var->source_order_count);
  21688 	return buf;
  21689 }
  21690 
  21691 uint8 *
  21692 _bcm_pack_tsn_pri_map_config(uint8 *buf, bcm_tsn_pri_map_config_t *var)
  21693 {
  21694 	BCM_PACK_U32(buf, var->map_type);
  21695 	BCM_PACK_U32(buf, var->num_map_entries);
  21696 	{
  21697 		int _i;
  21698 
  21699 		for (_i = 0; _i < 16; _i++) {
  21700 			BCM_PACK_U32(buf, var->map_entries[_i].flags);
  21701 			BCM_PACK_U32(buf, var->map_entries[_i].flow_offset);
  21702 			BCM_PACK_U32(buf, var->map_entries[_i].new_int_pri);
  21703 			BCM_PACK_U32(buf, var->map_entries[_i].profile_id);
  21704 			BCM_PACK_U32(buf, var->map_entries[_i].taf_gate_express);
  21705 			BCM_PACK_U32(buf, var->map_entries[_i].taf_gate_preempt);
  21706 		}
  21707 	}
  21708 	return buf;
  21709 }
  21710 
  21711 uint8 *
  21712 _bcm_unpack_tsn_pri_map_config(uint8 *buf, bcm_tsn_pri_map_config_t *var)
  21713 {
  21714 	BCM_UNPACK_U32(buf, var->map_type);
  21715 	BCM_UNPACK_U32(buf, var->num_map_entries);
  21716 	{
  21717 		int _i;
  21718 
  21719 		for (_i = 0; _i < 16; _i++) {
  21720 			BCM_UNPACK_U32(buf, var->map_entries[_i].flags);
  21721 			BCM_UNPACK_U32(buf, var->map_entries[_i].flow_offset);
  21722 			BCM_UNPACK_U32(buf, var->map_entries[_i].new_int_pri);
  21723 			BCM_UNPACK_U32(buf, var->map_entries[_i].profile_id);
  21724 			BCM_UNPACK_U32(buf, var->map_entries[_i].taf_gate_express);
  21725 			BCM_UNPACK_U32(buf, var->map_entries[_i].taf_gate_preempt);
  21726 		}
  21727 	}
  21728 	return buf;
  21729 }
  21730 
  21731 uint8 *
  21732 _bcm_pack_tsn_sr_auto_learn_config(uint8 *buf, bcm_tsn_sr_auto_learn_config_t *var)
  21733 {
  21734 	BCM_PACK_U32(buf, var->num_tx_flows);
  21735 	BCM_PACK_U32(buf, var->num_rx_flows);
  21736 	BCM_PACK_U32(buf, var->tx_flow_config.flags);
  21737 	BCM_PACK_U32(buf, var->tx_flow_config.seq_num);
  21738 	BCM_PACK_U32(buf, var->tx_flow_config.ingress_mtu_profile);
  21739 	BCM_PACK_U32(buf, var->rx_flow_config.flags);
  21740 	BCM_PACK_U32(buf, var->rx_flow_config.seqnum_accept_win_size);
  21741 	BCM_PACK_U32(buf, var->rx_flow_config.seqnum_history_win_size);
  21742 	BCM_PACK_U32(buf, var->rx_flow_config.age_timeout);
  21743 	BCM_PACK_U32(buf, var->rx_flow_config.ingress_mtu_profile);
  21744 	return buf;
  21745 }
  21746 
  21747 uint8 *
  21748 _bcm_unpack_tsn_sr_auto_learn_config(uint8 *buf, bcm_tsn_sr_auto_learn_config_t *var)
  21749 {
  21750 	BCM_UNPACK_U32(buf, var->num_tx_flows);
  21751 	BCM_UNPACK_U32(buf, var->num_rx_flows);
  21752 	BCM_UNPACK_U32(buf, var->tx_flow_config.flags);
  21753 	BCM_UNPACK_U32(buf, var->tx_flow_config.seq_num);
  21754 	BCM_UNPACK_U32(buf, var->tx_flow_config.ingress_mtu_profile);
  21755 	BCM_UNPACK_U32(buf, var->rx_flow_config.flags);
  21756 	BCM_UNPACK_U32(buf, var->rx_flow_config.seqnum_accept_win_size);
  21757 	BCM_UNPACK_U32(buf, var->rx_flow_config.seqnum_history_win_size);
  21758 	BCM_UNPACK_U32(buf, var->rx_flow_config.age_timeout);
  21759 	BCM_UNPACK_U32(buf, var->rx_flow_config.ingress_mtu_profile);
  21760 	return buf;
  21761 }
  21762 
  21763 uint8 *
  21764 _bcm_pack_tsn_sr_auto_learn_group_config(uint8 *buf, bcm_tsn_sr_auto_learn_group_config_t *var)
  21765 {
  21766 	BCM_PACK_U32(buf, var->flags);
  21767 	buf = _bcm_pack_pbmp(buf, &(*var).interlink_ports);
  21768 	buf = _bcm_pack_pbmp(buf, &(*var).redundant_ports);
  21769 	return buf;
  21770 }
  21771 
  21772 uint8 *
  21773 _bcm_unpack_tsn_sr_auto_learn_group_config(uint8 *buf, bcm_tsn_sr_auto_learn_group_config_t *var)
  21774 {
  21775 	BCM_UNPACK_U32(buf, var->flags);
  21776 	buf = _bcm_unpack_pbmp(buf, &(*var).interlink_ports);
  21777 	buf = _bcm_unpack_pbmp(buf, &(*var).redundant_ports);
  21778 	return buf;
  21779 }
  21780 
  21781 uint8 *
  21782 _bcm_pack_tsn_sr_flowset_status(uint8 *buf, bcm_tsn_sr_flowset_status_t *var)
  21783 {
  21784 	BCM_PACK_U32(buf, var->count);
  21785 	BCM_PACK_U32(buf, var->active);
  21786 	return buf;
  21787 }
  21788 
  21789 uint8 *
  21790 _bcm_unpack_tsn_sr_flowset_status(uint8 *buf, bcm_tsn_sr_flowset_status_t *var)
  21791 {
  21792 	BCM_UNPACK_U32(buf, var->count);
  21793 	BCM_UNPACK_U32(buf, var->active);
  21794 	return buf;
  21795 }
  21796 
  21797 uint8 *
  21798 _bcm_pack_tsn_sr_port_config(uint8 *buf, bcm_tsn_sr_port_config_t *var)
  21799 {
  21800 	BCM_PACK_U32(buf, var->port_type);
  21801 	BCM_PACK_U8(buf, var->interlink_role);
  21802 	BCM_PACK_U8(buf, var->mac_da_flows);
  21803 	BCM_PACK_U8(buf, var->lan_id);
  21804 	BCM_PACK_U8(buf, var->net_id);
  21805 	BCM_PACK_U32(buf, var->port_mode);
  21806 	return buf;
  21807 }
  21808 
  21809 uint8 *
  21810 _bcm_unpack_tsn_sr_port_config(uint8 *buf, bcm_tsn_sr_port_config_t *var)
  21811 {
  21812 	BCM_UNPACK_U32(buf, var->port_type);
  21813 	BCM_UNPACK_U8(buf, var->interlink_role);
  21814 	BCM_UNPACK_U8(buf, var->mac_da_flows);
  21815 	BCM_UNPACK_U8(buf, var->lan_id);
  21816 	BCM_UNPACK_U8(buf, var->net_id);
  21817 	BCM_UNPACK_U32(buf, var->port_mode);
  21818 	return buf;
  21819 }
  21820 
  21821 uint8 *
  21822 _bcm_pack_tsn_sr_rx_flow_config(uint8 *buf, bcm_tsn_sr_rx_flow_config_t *var)
  21823 {
  21824 	BCM_PACK_U32(buf, var->flags);
  21825 	BCM_PACK_U32(buf, var->seqnum_accept_win_size);
  21826 	BCM_PACK_U32(buf, var->seqnum_history_win_size);
  21827 	BCM_PACK_U32(buf, var->age_timeout);
  21828 	BCM_PACK_U32(buf, var->ingress_mtu_profile);
  21829 	return buf;
  21830 }
  21831 
  21832 uint8 *
  21833 _bcm_unpack_tsn_sr_rx_flow_config(uint8 *buf, bcm_tsn_sr_rx_flow_config_t *var)
  21834 {
  21835 	BCM_UNPACK_U32(buf, var->flags);
  21836 	BCM_UNPACK_U32(buf, var->seqnum_accept_win_size);
  21837 	BCM_UNPACK_U32(buf, var->seqnum_history_win_size);
  21838 	BCM_UNPACK_U32(buf, var->age_timeout);
  21839 	BCM_UNPACK_U32(buf, var->ingress_mtu_profile);
  21840 	return buf;
  21841 }
  21842 
  21843 uint8 *
  21844 _bcm_pack_tsn_sr_rx_flow_status(uint8 *buf, bcm_tsn_sr_rx_flow_status_t *var)
  21845 {
  21846 	BCM_PACK_U32(buf, var->seqnum_win_in_reset);
  21847 	BCM_PACK_U32(buf, var->seqnum_age_countdown);
  21848 	BCM_PACK_U32(buf, var->last_history_win_seqnum);
  21849 	BCM_PACK_U32(buf, var->last_accepted_seqnum_lan[0]);
  21850 	BCM_PACK_U32(buf, var->last_accepted_seqnum_lan[1]);
  21851 	BCM_PACK_U32(buf, var->wrong_lan[0]);
  21852 	BCM_PACK_U32(buf, var->wrong_lan[1]);
  21853 	BCM_PACK_U32(buf, var->wrong_lan_age_countdown[0]);
  21854 	BCM_PACK_U32(buf, var->wrong_lan_age_countdown[1]);
  21855 	return buf;
  21856 }
  21857 
  21858 uint8 *
  21859 _bcm_unpack_tsn_sr_rx_flow_status(uint8 *buf, bcm_tsn_sr_rx_flow_status_t *var)
  21860 {
  21861 	BCM_UNPACK_U32(buf, var->seqnum_win_in_reset);
  21862 	BCM_UNPACK_U32(buf, var->seqnum_age_countdown);
  21863 	BCM_UNPACK_U32(buf, var->last_history_win_seqnum);
  21864 	BCM_UNPACK_U32(buf, var->last_accepted_seqnum_lan[0]);
  21865 	BCM_UNPACK_U32(buf, var->last_accepted_seqnum_lan[1]);
  21866 	BCM_UNPACK_U32(buf, var->wrong_lan[0]);
  21867 	BCM_UNPACK_U32(buf, var->wrong_lan[1]);
  21868 	BCM_UNPACK_U32(buf, var->wrong_lan_age_countdown[0]);
  21869 	BCM_UNPACK_U32(buf, var->wrong_lan_age_countdown[1]);
  21870 	return buf;
  21871 }
  21872 
  21873 uint8 *
  21874 _bcm_pack_tsn_sr_tx_flow_config(uint8 *buf, bcm_tsn_sr_tx_flow_config_t *var)
  21875 {
  21876 	BCM_PACK_U32(buf, var->flags);
  21877 	BCM_PACK_U32(buf, var->seq_num);
  21878 	BCM_PACK_U32(buf, var->ingress_mtu_profile);
  21879 	return buf;
  21880 }
  21881 
  21882 uint8 *
  21883 _bcm_unpack_tsn_sr_tx_flow_config(uint8 *buf, bcm_tsn_sr_tx_flow_config_t *var)
  21884 {
  21885 	BCM_UNPACK_U32(buf, var->flags);
  21886 	BCM_UNPACK_U32(buf, var->seq_num);
  21887 	BCM_UNPACK_U32(buf, var->ingress_mtu_profile);
  21888 	return buf;
  21889 }
  21890 
  21891 uint8 *
  21892 _bcm_pack_tsn_stat_threshold_config(uint8 *buf, bcm_tsn_stat_threshold_config_t *var)
  21893 {
  21894 	BCM_PACK_U32(buf, var->flags);
  21895 	BCM_PACK_U32(buf, var->threshold);
  21896 	return buf;
  21897 }
  21898 
  21899 uint8 *
  21900 _bcm_unpack_tsn_stat_threshold_config(uint8 *buf, bcm_tsn_stat_threshold_config_t *var)
  21901 {
  21902 	BCM_UNPACK_U32(buf, var->flags);
  21903 	BCM_UNPACK_U32(buf, var->threshold);
  21904 	return buf;
  21905 }
  21906 
  21907 uint8 *
  21908 _bcm_pack_tsn_taf_profile_status(uint8 *buf, bcm_tsn_taf_profile_status_t *var)
  21909 {
  21910 	BCM_PACK_U32(buf, var->profile_state);
  21911 	{
  21912 		uint32 _u32;
  21913 
  21914 		_u32 = COMPILER_64_HI(var->config_change_time.seconds);
  21915 		BCM_PACK_U32(buf, _u32);
  21916 		_u32 = COMPILER_64_LO(var->config_change_time.seconds);
  21917 		BCM_PACK_U32(buf, _u32);
  21918 	}
  21919 	BCM_PACK_U32(buf, var->config_change_time.nanoseconds);
  21920 	BCM_PACK_U32(buf, var->num_entries);
  21921 	{
  21922 		int _i;
  21923 
  21924 		for (_i = 0; _i < 16; _i++) {
  21925 			BCM_PACK_U32(buf, var->entries[_i].ticks);
  21926 			BCM_PACK_U32(buf, var->entries[_i].state);
  21927 			BCM_PACK_U32(buf, var->entries[_i].cos_profile);
  21928 			BCM_PACK_U32(buf, var->entries[_i].maxbyte_profile);
  21929 		}
  21930 	}
  21931 	return buf;
  21932 }
  21933 
  21934 uint8 *
  21935 _bcm_unpack_tsn_taf_profile_status(uint8 *buf, bcm_tsn_taf_profile_status_t *var)
  21936 {
  21937 	BCM_UNPACK_U32(buf, var->profile_state);
  21938 	{
  21939 		uint32 _u32h, _u32l;
  21940 
  21941 		BCM_UNPACK_U32(buf, _u32h);
  21942 		BCM_UNPACK_U32(buf, _u32l);
  21943 		COMPILER_64_SET(var->config_change_time.seconds, _u32h, _u32l);
  21944 	}
  21945 	BCM_UNPACK_U32(buf, var->config_change_time.nanoseconds);
  21946 	BCM_UNPACK_U32(buf, var->num_entries);
  21947 	{
  21948 		int _i;
  21949 
  21950 		for (_i = 0; _i < 16; _i++) {
  21951 			BCM_UNPACK_U32(buf, var->entries[_i].ticks);
  21952 			BCM_UNPACK_U32(buf, var->entries[_i].state);
  21953 			BCM_UNPACK_U32(buf, var->entries[_i].cos_profile);
  21954 			BCM_UNPACK_U32(buf, var->entries[_i].maxbyte_profile);
  21955 		}
  21956 	}
  21957 	return buf;
  21958 }
  21959 
  21960 uint8 *
  21961 _bcm_pack_tsn_taf_profile(uint8 *buf, bcm_tsn_taf_profile_t *var)
  21962 {
  21963 	BCM_PACK_U32(buf, var->num_entries);
  21964 	{
  21965 		int _i;
  21966 
  21967 		for (_i = 0; _i < 16; _i++) {
  21968 			BCM_PACK_U32(buf, var->entries[_i].ticks);
  21969 			BCM_PACK_U32(buf, var->entries[_i].state);
  21970 			BCM_PACK_U32(buf, var->entries[_i].cos_profile);
  21971 			BCM_PACK_U32(buf, var->entries[_i].maxbyte_profile);
  21972 		}
  21973 	}
  21974 	{
  21975 		uint32 _u32;
  21976 
  21977 		_u32 = COMPILER_64_HI(var->ptp_base_time.seconds);
  21978 		BCM_PACK_U32(buf, _u32);
  21979 		_u32 = COMPILER_64_LO(var->ptp_base_time.seconds);
  21980 		BCM_PACK_U32(buf, _u32);
  21981 	}
  21982 	BCM_PACK_U32(buf, var->ptp_base_time.nanoseconds);
  21983 	BCM_PACK_U32(buf, var->ptp_cycle_time);
  21984 	BCM_PACK_U32(buf, var->ptp_max_cycle_extension);
  21985 	return buf;
  21986 }
  21987 
  21988 uint8 *
  21989 _bcm_unpack_tsn_taf_profile(uint8 *buf, bcm_tsn_taf_profile_t *var)
  21990 {
  21991 	BCM_UNPACK_U32(buf, var->num_entries);
  21992 	{
  21993 		int _i;
  21994 
  21995 		for (_i = 0; _i < 16; _i++) {
  21996 			BCM_UNPACK_U32(buf, var->entries[_i].ticks);
  21997 			BCM_UNPACK_U32(buf, var->entries[_i].state);
  21998 			BCM_UNPACK_U32(buf, var->entries[_i].cos_profile);
  21999 			BCM_UNPACK_U32(buf, var->entries[_i].maxbyte_profile);
  22000 		}
  22001 	}
  22002 	{
  22003 		uint32 _u32h, _u32l;
  22004 
  22005 		BCM_UNPACK_U32(buf, _u32h);
  22006 		BCM_UNPACK_U32(buf, _u32l);
  22007 		COMPILER_64_SET(var->ptp_base_time.seconds, _u32h, _u32l);
  22008 	}
  22009 	BCM_UNPACK_U32(buf, var->ptp_base_time.nanoseconds);
  22010 	BCM_UNPACK_U32(buf, var->ptp_cycle_time);
  22011 	BCM_UNPACK_U32(buf, var->ptp_max_cycle_extension);
  22012 	return buf;
  22013 }
  22014 
  22015 #ifdef	INCLUDE_L3
  22016 
  22017 uint8 *
  22018 _bcm_pack_tunnel_config(uint8 *buf, bcm_tunnel_config_t *var)
  22019 {
  22020 	BCM_PACK_U32(buf, var->ip4_id);
  22021 	BCM_PACK_U32(buf, var->ms_pimsm_hdr1);
  22022 	BCM_PACK_U32(buf, var->ls_pimsm_hdr1);
  22023 	BCM_PACK_U32(buf, var->ms_pimsm_hdr2);
  22024 	BCM_PACK_U32(buf, var->ls_pimsm_hdr2);
  22025 	return buf;
  22026 }
  22027 
  22028 uint8 *
  22029 _bcm_unpack_tunnel_config(uint8 *buf, bcm_tunnel_config_t *var)
  22030 {
  22031 	BCM_UNPACK_U32(buf, var->ip4_id);
  22032 	BCM_UNPACK_U32(buf, var->ms_pimsm_hdr1);
  22033 	BCM_UNPACK_U32(buf, var->ls_pimsm_hdr1);
  22034 	BCM_UNPACK_U32(buf, var->ms_pimsm_hdr2);
  22035 	BCM_UNPACK_U32(buf, var->ls_pimsm_hdr2);
  22036 	return buf;
  22037 }
  22038 
  22039 uint8 *
  22040 _bcm_pack_tunnel_dscp_map(uint8 *buf, bcm_tunnel_dscp_map_t *var)
  22041 {
  22042 	BCM_PACK_U32(buf, var->priority);
  22043 	BCM_PACK_U32(buf, var->color);
  22044 	BCM_PACK_U32(buf, var->dscp);
  22045 	return buf;
  22046 }
  22047 
  22048 uint8 *
  22049 _bcm_unpack_tunnel_dscp_map(uint8 *buf, bcm_tunnel_dscp_map_t *var)
  22050 {
  22051 	BCM_UNPACK_U32(buf, var->priority);
  22052 	BCM_UNPACK_U32(buf, var->color);
  22053 	BCM_UNPACK_U32(buf, var->dscp);
  22054 	return buf;
  22055 }
  22056 
  22057 uint8 *
  22058 _bcm_pack_tunnel_initiator(uint8 *buf, bcm_tunnel_initiator_t *var)
  22059 {
  22060 	BCM_PACK_U32(buf, var->flags);
  22061 	BCM_PACK_U32(buf, var->type);
  22062 	BCM_PACK_U32(buf, var->ttl);
  22063 	{
  22064 		int _i;
  22065 
  22066 		for (_i = 0; _i < 6; _i++) {
  22067 			BCM_PACK_U8(buf, var->dmac[_i]);
  22068 		}
  22069 	}
  22070 	BCM_PACK_U32(buf, var->dip);
  22071 	BCM_PACK_U32(buf, var->sip);
  22072 	{
  22073 		int _i;
  22074 
  22075 		for (_i = 0; _i < 16; _i++) {
  22076 			BCM_PACK_U8(buf, var->sip6[_i]);
  22077 		}
  22078 	}
  22079 	{
  22080 		int _i;
  22081 
  22082 		for (_i = 0; _i < 16; _i++) {
  22083 			BCM_PACK_U8(buf, var->dip6[_i]);
  22084 		}
  22085 	}
  22086 	BCM_PACK_U32(buf, var->flow_label);
  22087 	BCM_PACK_U32(buf, var->dscp_sel);
  22088 	BCM_PACK_U32(buf, var->dscp);
  22089 	BCM_PACK_U32(buf, var->dscp_map);
  22090 	BCM_PACK_U32(buf, var->tunnel_id);
  22091 	BCM_PACK_U16(buf, var->udp_dst_port);
  22092 	BCM_PACK_U16(buf, var->udp_src_port);
  22093 	{
  22094 		int _i;
  22095 
  22096 		for (_i = 0; _i < 6; _i++) {
  22097 			BCM_PACK_U8(buf, var->smac[_i]);
  22098 		}
  22099 	}
  22100 	BCM_PACK_U32(buf, var->mtu);
  22101 	BCM_PACK_U16(buf, var->vlan);
  22102 	BCM_PACK_U16(buf, var->tpid);
  22103 	BCM_PACK_U8(buf, var->pkt_pri);
  22104 	BCM_PACK_U8(buf, var->pkt_cfi);
  22105 	BCM_PACK_U16(buf, var->ip4_id);
  22106 	BCM_PACK_U32(buf, var->l3_intf_id);
  22107 	BCM_PACK_U16(buf, var->span_id);
  22108 	BCM_PACK_U32(buf, var->aux_data);
  22109 	BCM_PACK_U32(buf, var->outlif_counting_profile);
  22110 	BCM_PACK_U32(buf, var->encap_access);
  22111 	BCM_PACK_U8(buf, var->hw_id);
  22112 	BCM_PACK_U16(buf, var->switch_id);
  22113 	BCM_PACK_U16(buf, var->class_id);
  22114 	BCM_PACK_U32(buf, var->egress_qos_model.egress_qos);
  22115 	BCM_PACK_U32(buf, var->egress_qos_model.egress_ttl);
  22116 	BCM_PACK_U8(buf, var->egress_qos_model.ecn_eligible);
  22117 	BCM_PACK_U32(buf, var->qos_map_id);
  22118 	return buf;
  22119 }
  22120 
  22121 uint8 *
  22122 _bcm_unpack_tunnel_initiator(uint8 *buf, bcm_tunnel_initiator_t *var)
  22123 {
  22124 	BCM_UNPACK_U32(buf, var->flags);
  22125 	BCM_UNPACK_U32(buf, var->type);
  22126 	BCM_UNPACK_U32(buf, var->ttl);
  22127 	{
  22128 		int _i;
  22129 
  22130 		for (_i = 0; _i < 6; _i++) {
  22131 			BCM_UNPACK_U8(buf, var->dmac[_i]);
  22132 		}
  22133 	}
  22134 	BCM_UNPACK_U32(buf, var->dip);
  22135 	BCM_UNPACK_U32(buf, var->sip);
  22136 	{
  22137 		int _i;
  22138 
  22139 		for (_i = 0; _i < 16; _i++) {
  22140 			BCM_UNPACK_U8(buf, var->sip6[_i]);
  22141 		}
  22142 	}
  22143 	{
  22144 		int _i;
  22145 
  22146 		for (_i = 0; _i < 16; _i++) {
  22147 			BCM_UNPACK_U8(buf, var->dip6[_i]);
  22148 		}
  22149 	}
  22150 	BCM_UNPACK_U32(buf, var->flow_label);
  22151 	BCM_UNPACK_U32(buf, var->dscp_sel);
  22152 	BCM_UNPACK_U32(buf, var->dscp);
  22153 	BCM_UNPACK_U32(buf, var->dscp_map);
  22154 	BCM_UNPACK_U32(buf, var->tunnel_id);
  22155 	BCM_UNPACK_U16(buf, var->udp_dst_port);
  22156 	BCM_UNPACK_U16(buf, var->udp_src_port);
  22157 	{
  22158 		int _i;
  22159 
  22160 		for (_i = 0; _i < 6; _i++) {
  22161 			BCM_UNPACK_U8(buf, var->smac[_i]);
  22162 		}
  22163 	}
  22164 	BCM_UNPACK_U32(buf, var->mtu);
  22165 	BCM_UNPACK_U16(buf, var->vlan);
  22166 	BCM_UNPACK_U16(buf, var->tpid);
  22167 	BCM_UNPACK_U8(buf, var->pkt_pri);
  22168 	BCM_UNPACK_U8(buf, var->pkt_cfi);
  22169 	BCM_UNPACK_U16(buf, var->ip4_id);
  22170 	BCM_UNPACK_U32(buf, var->l3_intf_id);
  22171 	BCM_UNPACK_U16(buf, var->span_id);
  22172 	BCM_UNPACK_U32(buf, var->aux_data);
  22173 	BCM_UNPACK_U32(buf, var->outlif_counting_profile);
  22174 	BCM_UNPACK_U32(buf, var->encap_access);
  22175 	BCM_UNPACK_U8(buf, var->hw_id);
  22176 	BCM_UNPACK_U16(buf, var->switch_id);
  22177 	BCM_UNPACK_U16(buf, var->class_id);
  22178 	BCM_UNPACK_U32(buf, var->egress_qos_model.egress_qos);
  22179 	BCM_UNPACK_U32(buf, var->egress_qos_model.egress_ttl);
  22180 	BCM_UNPACK_U8(buf, var->egress_qos_model.ecn_eligible);
  22181 	BCM_UNPACK_U32(buf, var->qos_map_id);
  22182 	return buf;
  22183 }
  22184 
  22185 uint8 *
  22186 _bcm_pack_tunnel_terminator_config_key(uint8 *buf, bcm_tunnel_terminator_config_key_t *var)
  22187 {
  22188 	BCM_PACK_U32(buf, var->flags);
  22189 	BCM_PACK_U32(buf, var->dip);
  22190 	BCM_PACK_U32(buf, var->dip_mask);
  22191 	{
  22192 		int _i;
  22193 
  22194 		for (_i = 0; _i < 16; _i++) {
  22195 			BCM_PACK_U8(buf, var->dip6[_i]);
  22196 		}
  22197 	}
  22198 	{
  22199 		int _i;
  22200 
  22201 		for (_i = 0; _i < 16; _i++) {
  22202 			BCM_PACK_U8(buf, var->dip6_mask[_i]);
  22203 		}
  22204 	}
  22205 	BCM_PACK_U32(buf, var->type);
  22206 	BCM_PACK_U16(buf, var->udp_dst_port);
  22207 	BCM_PACK_U32(buf, var->vrf);
  22208 	return buf;
  22209 }
  22210 
  22211 uint8 *
  22212 _bcm_unpack_tunnel_terminator_config_key(uint8 *buf, bcm_tunnel_terminator_config_key_t *var)
  22213 {
  22214 	BCM_UNPACK_U32(buf, var->flags);
  22215 	BCM_UNPACK_U32(buf, var->dip);
  22216 	BCM_UNPACK_U32(buf, var->dip_mask);
  22217 	{
  22218 		int _i;
  22219 
  22220 		for (_i = 0; _i < 16; _i++) {
  22221 			BCM_UNPACK_U8(buf, var->dip6[_i]);
  22222 		}
  22223 	}
  22224 	{
  22225 		int _i;
  22226 
  22227 		for (_i = 0; _i < 16; _i++) {
  22228 			BCM_UNPACK_U8(buf, var->dip6_mask[_i]);
  22229 		}
  22230 	}
  22231 	BCM_UNPACK_U32(buf, var->type);
  22232 	BCM_UNPACK_U16(buf, var->udp_dst_port);
  22233 	BCM_UNPACK_U32(buf, var->vrf);
  22234 	return buf;
  22235 }
  22236 
  22237 uint8 *
  22238 _bcm_pack_tunnel_terminator(uint8 *buf, bcm_tunnel_terminator_t *var)
  22239 {
  22240 	BCM_PACK_U32(buf, var->flags);
  22241 	BCM_PACK_U32(buf, var->multicast_flag);
  22242 	BCM_PACK_U32(buf, var->vrf);
  22243 	BCM_PACK_U32(buf, var->sip);
  22244 	BCM_PACK_U32(buf, var->dip);
  22245 	BCM_PACK_U32(buf, var->sip_mask);
  22246 	BCM_PACK_U32(buf, var->dip_mask);
  22247 	{
  22248 		int _i;
  22249 
  22250 		for (_i = 0; _i < 16; _i++) {
  22251 			BCM_PACK_U8(buf, var->sip6[_i]);
  22252 		}
  22253 	}
  22254 	{
  22255 		int _i;
  22256 
  22257 		for (_i = 0; _i < 16; _i++) {
  22258 			BCM_PACK_U8(buf, var->dip6[_i]);
  22259 		}
  22260 	}
  22261 	{
  22262 		int _i;
  22263 
  22264 		for (_i = 0; _i < 16; _i++) {
  22265 			BCM_PACK_U8(buf, var->sip6_mask[_i]);
  22266 		}
  22267 	}
  22268 	{
  22269 		int _i;
  22270 
  22271 		for (_i = 0; _i < 16; _i++) {
  22272 			BCM_PACK_U8(buf, var->dip6_mask[_i]);
  22273 		}
  22274 	}
  22275 	BCM_PACK_U32(buf, var->udp_dst_port);
  22276 	BCM_PACK_U32(buf, var->udp_src_port);
  22277 	BCM_PACK_U32(buf, var->type);
  22278 	buf = _bcm_pack_pbmp(buf, &(*var).pbmp);
  22279 	BCM_PACK_U16(buf, var->vlan);
  22280 	BCM_PACK_U16(buf, var->fwd_vlan);
  22281 	BCM_PACK_U32(buf, var->remote_port);
  22282 	BCM_PACK_U32(buf, var->tunnel_id);
  22283 	BCM_PACK_U32(buf, var->if_class);
  22284 	BCM_PACK_U32(buf, var->failover_mc_group);
  22285 	BCM_PACK_U32(buf, var->ingress_failover_id);
  22286 	BCM_PACK_U32(buf, var->failover_id);
  22287 	BCM_PACK_U32(buf, var->failover_tunnel_id);
  22288 	BCM_PACK_U32(buf, var->tunnel_if);
  22289 	BCM_PACK_U32(buf, var->tunnel_class);
  22290 	BCM_PACK_U32(buf, var->qos_map_id);
  22291 	BCM_PACK_U32(buf, var->inlif_counting_profile);
  22292 	BCM_PACK_U32(buf, var->tunnel_term_ecn_map_id);
  22293 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_phb);
  22294 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_remark);
  22295 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_ttl);
  22296 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_ecn);
  22297 	BCM_PACK_U32(buf, var->priority);
  22298 	return buf;
  22299 }
  22300 
  22301 uint8 *
  22302 _bcm_unpack_tunnel_terminator(uint8 *buf, bcm_tunnel_terminator_t *var)
  22303 {
  22304 	BCM_UNPACK_U32(buf, var->flags);
  22305 	BCM_UNPACK_U32(buf, var->multicast_flag);
  22306 	BCM_UNPACK_U32(buf, var->vrf);
  22307 	BCM_UNPACK_U32(buf, var->sip);
  22308 	BCM_UNPACK_U32(buf, var->dip);
  22309 	BCM_UNPACK_U32(buf, var->sip_mask);
  22310 	BCM_UNPACK_U32(buf, var->dip_mask);
  22311 	{
  22312 		int _i;
  22313 
  22314 		for (_i = 0; _i < 16; _i++) {
  22315 			BCM_UNPACK_U8(buf, var->sip6[_i]);
  22316 		}
  22317 	}
  22318 	{
  22319 		int _i;
  22320 
  22321 		for (_i = 0; _i < 16; _i++) {
  22322 			BCM_UNPACK_U8(buf, var->dip6[_i]);
  22323 		}
  22324 	}
  22325 	{
  22326 		int _i;
  22327 
  22328 		for (_i = 0; _i < 16; _i++) {
  22329 			BCM_UNPACK_U8(buf, var->sip6_mask[_i]);
  22330 		}
  22331 	}
  22332 	{
  22333 		int _i;
  22334 
  22335 		for (_i = 0; _i < 16; _i++) {
  22336 			BCM_UNPACK_U8(buf, var->dip6_mask[_i]);
  22337 		}
  22338 	}
  22339 	BCM_UNPACK_U32(buf, var->udp_dst_port);
  22340 	BCM_UNPACK_U32(buf, var->udp_src_port);
  22341 	BCM_UNPACK_U32(buf, var->type);
  22342 	buf = _bcm_unpack_pbmp(buf, &(*var).pbmp);
  22343 	BCM_UNPACK_U16(buf, var->vlan);
  22344 	BCM_UNPACK_U16(buf, var->fwd_vlan);
  22345 	BCM_UNPACK_U32(buf, var->remote_port);
  22346 	BCM_UNPACK_U32(buf, var->tunnel_id);
  22347 	BCM_UNPACK_U32(buf, var->if_class);
  22348 	BCM_UNPACK_U32(buf, var->failover_mc_group);
  22349 	BCM_UNPACK_U32(buf, var->ingress_failover_id);
  22350 	BCM_UNPACK_U32(buf, var->failover_id);
  22351 	BCM_UNPACK_U32(buf, var->failover_tunnel_id);
  22352 	BCM_UNPACK_U32(buf, var->tunnel_if);
  22353 	BCM_UNPACK_U32(buf, var->tunnel_class);
  22354 	BCM_UNPACK_U32(buf, var->qos_map_id);
  22355 	BCM_UNPACK_U32(buf, var->inlif_counting_profile);
  22356 	BCM_UNPACK_U32(buf, var->tunnel_term_ecn_map_id);
  22357 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_phb);
  22358 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_remark);
  22359 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_ttl);
  22360 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_ecn);
  22361 	BCM_UNPACK_U32(buf, var->priority);
  22362 	return buf;
  22363 }
  22364 
  22365 #endif	/* INCLUDE_L3 */
  22366 
  22367 uint8 *
  22368 _bcm_pack_udf_abstract_pkt_format_info(uint8 *buf, bcm_udf_abstract_pkt_format_info_t *var)
  22369 {
  22370 	BCM_PACK_U32(buf, var->base_offset);
  22371 	BCM_PACK_U32(buf, var->num_chunks_max);
  22372 	BCM_PACK_U32(buf, var->chunk_bmap_used);
  22373 	BCM_PACK_U32(buf, var->unavail_chunk_bmap);
  22374 	return buf;
  22375 }
  22376 
  22377 uint8 *
  22378 _bcm_unpack_udf_abstract_pkt_format_info(uint8 *buf, bcm_udf_abstract_pkt_format_info_t *var)
  22379 {
  22380 	BCM_UNPACK_U32(buf, var->base_offset);
  22381 	BCM_UNPACK_U32(buf, var->num_chunks_max);
  22382 	BCM_UNPACK_U32(buf, var->chunk_bmap_used);
  22383 	BCM_UNPACK_U32(buf, var->unavail_chunk_bmap);
  22384 	return buf;
  22385 }
  22386 
  22387 uint8 *
  22388 _bcm_pack_udf_alloc_hints(uint8 *buf, bcm_udf_alloc_hints_t *var)
  22389 {
  22390 	BCM_PACK_U32(buf, var->flags);
  22391 	BCM_PACK_U32(buf, var->shared_udf);
  22392 	{
  22393 		int _i;
  22394 
  22395 		for (_i = 0; _i < 39; _i++) {
  22396 			BCM_PACK_U32(buf, var->qset.w[_i]);
  22397 		}
  22398 	}
  22399 	{
  22400 		int _i;
  22401 
  22402 		for (_i = 0; _i < 9; _i++) {
  22403 			BCM_PACK_U32(buf, var->qset.udf_map[_i]);
  22404 		}
  22405 	}
  22406 	return buf;
  22407 }
  22408 
  22409 uint8 *
  22410 _bcm_unpack_udf_alloc_hints(uint8 *buf, bcm_udf_alloc_hints_t *var)
  22411 {
  22412 	BCM_UNPACK_U32(buf, var->flags);
  22413 	BCM_UNPACK_U32(buf, var->shared_udf);
  22414 	{
  22415 		int _i;
  22416 
  22417 		for (_i = 0; _i < 39; _i++) {
  22418 			BCM_UNPACK_U32(buf, var->qset.w[_i]);
  22419 		}
  22420 	}
  22421 	{
  22422 		int _i;
  22423 
  22424 		for (_i = 0; _i < 9; _i++) {
  22425 			BCM_UNPACK_U32(buf, var->qset.udf_map[_i]);
  22426 		}
  22427 	}
  22428 	return buf;
  22429 }
  22430 
  22431 uint8 *
  22432 _bcm_pack_udf_chunk_info(uint8 *buf, bcm_udf_chunk_info_t *var)
  22433 {
  22434 	BCM_PACK_U32(buf, var->offset);
  22435 	BCM_PACK_U32(buf, var->width);
  22436 	BCM_PACK_U32(buf, var->chunk_bmap);
  22437 	BCM_PACK_U32(buf, var->abstract_pkt_format);
  22438 	return buf;
  22439 }
  22440 
  22441 uint8 *
  22442 _bcm_unpack_udf_chunk_info(uint8 *buf, bcm_udf_chunk_info_t *var)
  22443 {
  22444 	BCM_UNPACK_U32(buf, var->offset);
  22445 	BCM_UNPACK_U32(buf, var->width);
  22446 	BCM_UNPACK_U32(buf, var->chunk_bmap);
  22447 	BCM_UNPACK_U32(buf, var->abstract_pkt_format);
  22448 	return buf;
  22449 }
  22450 
  22451 uint8 *
  22452 _bcm_pack_udf_hash_config(uint8 *buf, bcm_udf_hash_config_t *var)
  22453 {
  22454 	BCM_PACK_U32(buf, var->flags);
  22455 	BCM_PACK_U32(buf, var->udf_id);
  22456 	BCM_PACK_U32(buf, var->mask_length);
  22457 	BCM_PACK_U8(buf, var->hash_mask[0]);
  22458 	BCM_PACK_U8(buf, var->hash_mask[1]);
  22459 	BCM_PACK_U8(buf, var->hash_mask[2]);
  22460 	BCM_PACK_U8(buf, var->hash_mask[3]);
  22461 	return buf;
  22462 }
  22463 
  22464 uint8 *
  22465 _bcm_unpack_udf_hash_config(uint8 *buf, bcm_udf_hash_config_t *var)
  22466 {
  22467 	BCM_UNPACK_U32(buf, var->flags);
  22468 	BCM_UNPACK_U32(buf, var->udf_id);
  22469 	BCM_UNPACK_U32(buf, var->mask_length);
  22470 	BCM_UNPACK_U8(buf, var->hash_mask[0]);
  22471 	BCM_UNPACK_U8(buf, var->hash_mask[1]);
  22472 	BCM_UNPACK_U8(buf, var->hash_mask[2]);
  22473 	BCM_UNPACK_U8(buf, var->hash_mask[3]);
  22474 	return buf;
  22475 }
  22476 
  22477 uint8 *
  22478 _bcm_pack_udf_pkt_format_info(uint8 *buf, bcm_udf_pkt_format_info_t *var)
  22479 {
  22480 	BCM_PACK_U32(buf, var->prio);
  22481 	BCM_PACK_U16(buf, var->ethertype);
  22482 	BCM_PACK_U16(buf, var->ethertype_mask);
  22483 	BCM_PACK_U8(buf, var->ip_protocol);
  22484 	BCM_PACK_U8(buf, var->ip_protocol_mask);
  22485 	BCM_PACK_U16(buf, var->l2);
  22486 	BCM_PACK_U16(buf, var->vlan_tag);
  22487 	BCM_PACK_U16(buf, var->outer_ip);
  22488 	BCM_PACK_U16(buf, var->inner_ip);
  22489 	BCM_PACK_U16(buf, var->tunnel);
  22490 	BCM_PACK_U16(buf, var->mpls);
  22491 	BCM_PACK_U16(buf, var->fibre_chan_outer);
  22492 	BCM_PACK_U16(buf, var->fibre_chan_inner);
  22493 	BCM_PACK_U16(buf, var->higig);
  22494 	BCM_PACK_U16(buf, var->vntag);
  22495 	BCM_PACK_U16(buf, var->etag);
  22496 	BCM_PACK_U16(buf, var->cntag);
  22497 	BCM_PACK_U16(buf, var->icnm);
  22498 	BCM_PACK_U16(buf, var->subport_tag);
  22499 	BCM_PACK_U32(buf, var->class_id);
  22500 	BCM_PACK_U16(buf, var->inner_protocol);
  22501 	BCM_PACK_U16(buf, var->inner_protocol_mask);
  22502 	BCM_PACK_U32(buf, var->l4_dst_port);
  22503 	BCM_PACK_U32(buf, var->l4_dst_port_mask);
  22504 	BCM_PACK_U8(buf, var->opaque_tag_type);
  22505 	BCM_PACK_U8(buf, var->opaque_tag_type_mask);
  22506 	BCM_PACK_U8(buf, var->int_pkt);
  22507 	BCM_PACK_U8(buf, var->src_port);
  22508 	BCM_PACK_U8(buf, var->src_port_mask);
  22509 	BCM_PACK_U8(buf, var->lb_pkt_type);
  22510 	BCM_PACK_U16(buf, var->first_2bytes_after_mpls_bos);
  22511 	BCM_PACK_U16(buf, var->first_2bytes_after_mpls_bos_mask);
  22512 	return buf;
  22513 }
  22514 
  22515 uint8 *
  22516 _bcm_unpack_udf_pkt_format_info(uint8 *buf, bcm_udf_pkt_format_info_t *var)
  22517 {
  22518 	BCM_UNPACK_U32(buf, var->prio);
  22519 	BCM_UNPACK_U16(buf, var->ethertype);
  22520 	BCM_UNPACK_U16(buf, var->ethertype_mask);
  22521 	BCM_UNPACK_U8(buf, var->ip_protocol);
  22522 	BCM_UNPACK_U8(buf, var->ip_protocol_mask);
  22523 	BCM_UNPACK_U16(buf, var->l2);
  22524 	BCM_UNPACK_U16(buf, var->vlan_tag);
  22525 	BCM_UNPACK_U16(buf, var->outer_ip);
  22526 	BCM_UNPACK_U16(buf, var->inner_ip);
  22527 	BCM_UNPACK_U16(buf, var->tunnel);
  22528 	BCM_UNPACK_U16(buf, var->mpls);
  22529 	BCM_UNPACK_U16(buf, var->fibre_chan_outer);
  22530 	BCM_UNPACK_U16(buf, var->fibre_chan_inner);
  22531 	BCM_UNPACK_U16(buf, var->higig);
  22532 	BCM_UNPACK_U16(buf, var->vntag);
  22533 	BCM_UNPACK_U16(buf, var->etag);
  22534 	BCM_UNPACK_U16(buf, var->cntag);
  22535 	BCM_UNPACK_U16(buf, var->icnm);
  22536 	BCM_UNPACK_U16(buf, var->subport_tag);
  22537 	BCM_UNPACK_U32(buf, var->class_id);
  22538 	BCM_UNPACK_U16(buf, var->inner_protocol);
  22539 	BCM_UNPACK_U16(buf, var->inner_protocol_mask);
  22540 	BCM_UNPACK_U32(buf, var->l4_dst_port);
  22541 	BCM_UNPACK_U32(buf, var->l4_dst_port_mask);
  22542 	BCM_UNPACK_U8(buf, var->opaque_tag_type);
  22543 	BCM_UNPACK_U8(buf, var->opaque_tag_type_mask);
  22544 	BCM_UNPACK_U8(buf, var->int_pkt);
  22545 	BCM_UNPACK_U8(buf, var->src_port);
  22546 	BCM_UNPACK_U8(buf, var->src_port_mask);
  22547 	BCM_UNPACK_U8(buf, var->lb_pkt_type);
  22548 	BCM_UNPACK_U16(buf, var->first_2bytes_after_mpls_bos);
  22549 	BCM_UNPACK_U16(buf, var->first_2bytes_after_mpls_bos_mask);
  22550 	return buf;
  22551 }
  22552 
  22553 uint8 *
  22554 _bcm_pack_udf(uint8 *buf, bcm_udf_t *var)
  22555 {
  22556 	BCM_PACK_U32(buf, var->flags);
  22557 	BCM_PACK_U32(buf, var->layer);
  22558 	BCM_PACK_U32(buf, var->start);
  22559 	BCM_PACK_U32(buf, var->width);
  22560 	buf = _bcm_pack_pbmp(buf, &(*var).ports);
  22561 	return buf;
  22562 }
  22563 
  22564 uint8 *
  22565 _bcm_unpack_udf(uint8 *buf, bcm_udf_t *var)
  22566 {
  22567 	BCM_UNPACK_U32(buf, var->flags);
  22568 	BCM_UNPACK_U32(buf, var->layer);
  22569 	BCM_UNPACK_U32(buf, var->start);
  22570 	BCM_UNPACK_U32(buf, var->width);
  22571 	buf = _bcm_unpack_pbmp(buf, &(*var).ports);
  22572 	return buf;
  22573 }
  22574 
  22575 uint8 *
  22576 _bcm_pack_vlan_action_set(uint8 *buf, bcm_vlan_action_set_t *var)
  22577 {
  22578 	BCM_PACK_U16(buf, var->new_outer_vlan);
  22579 	BCM_PACK_U16(buf, var->new_inner_vlan);
  22580 	BCM_PACK_U8(buf, var->new_inner_pkt_prio);
  22581 	BCM_PACK_U8(buf, var->new_outer_cfi);
  22582 	BCM_PACK_U8(buf, var->new_inner_cfi);
  22583 	BCM_PACK_U32(buf, var->ingress_if);
  22584 	BCM_PACK_U32(buf, var->priority);
  22585 	BCM_PACK_U32(buf, var->dt_outer);
  22586 	BCM_PACK_U32(buf, var->dt_outer_prio);
  22587 	BCM_PACK_U32(buf, var->dt_outer_pkt_prio);
  22588 	BCM_PACK_U32(buf, var->dt_outer_cfi);
  22589 	BCM_PACK_U32(buf, var->dt_inner);
  22590 	BCM_PACK_U32(buf, var->dt_inner_prio);
  22591 	BCM_PACK_U32(buf, var->dt_inner_pkt_prio);
  22592 	BCM_PACK_U32(buf, var->dt_inner_cfi);
  22593 	BCM_PACK_U32(buf, var->ot_outer);
  22594 	BCM_PACK_U32(buf, var->ot_outer_prio);
  22595 	BCM_PACK_U32(buf, var->ot_outer_pkt_prio);
  22596 	BCM_PACK_U32(buf, var->ot_outer_cfi);
  22597 	BCM_PACK_U32(buf, var->ot_inner);
  22598 	BCM_PACK_U32(buf, var->ot_inner_pkt_prio);
  22599 	BCM_PACK_U32(buf, var->ot_inner_cfi);
  22600 	BCM_PACK_U32(buf, var->it_outer);
  22601 	BCM_PACK_U32(buf, var->it_outer_pkt_prio);
  22602 	BCM_PACK_U32(buf, var->it_outer_cfi);
  22603 	BCM_PACK_U32(buf, var->it_inner);
  22604 	BCM_PACK_U32(buf, var->it_inner_prio);
  22605 	BCM_PACK_U32(buf, var->it_inner_pkt_prio);
  22606 	BCM_PACK_U32(buf, var->it_inner_cfi);
  22607 	BCM_PACK_U32(buf, var->ut_outer);
  22608 	BCM_PACK_U32(buf, var->ut_outer_pkt_prio);
  22609 	BCM_PACK_U32(buf, var->ut_outer_cfi);
  22610 	BCM_PACK_U32(buf, var->ut_inner);
  22611 	BCM_PACK_U32(buf, var->ut_inner_pkt_prio);
  22612 	BCM_PACK_U32(buf, var->ut_inner_cfi);
  22613 	BCM_PACK_U32(buf, var->outer_pcp);
  22614 	BCM_PACK_U32(buf, var->inner_pcp);
  22615 	BCM_PACK_U32(buf, var->policer_id);
  22616 	BCM_PACK_U16(buf, var->outer_tpid);
  22617 	BCM_PACK_U16(buf, var->inner_tpid);
  22618 	BCM_PACK_U32(buf, var->outer_tpid_action);
  22619 	BCM_PACK_U32(buf, var->inner_tpid_action);
  22620 	BCM_PACK_U32(buf, var->action_id);
  22621 	BCM_PACK_U32(buf, var->class_id);
  22622 	BCM_PACK_U32(buf, var->taf_gate_primap);
  22623 	BCM_PACK_U32(buf, var->flags);
  22624 	return buf;
  22625 }
  22626 
  22627 uint8 *
  22628 _bcm_unpack_vlan_action_set(uint8 *buf, bcm_vlan_action_set_t *var)
  22629 {
  22630 	BCM_UNPACK_U16(buf, var->new_outer_vlan);
  22631 	BCM_UNPACK_U16(buf, var->new_inner_vlan);
  22632 	BCM_UNPACK_U8(buf, var->new_inner_pkt_prio);
  22633 	BCM_UNPACK_U8(buf, var->new_outer_cfi);
  22634 	BCM_UNPACK_U8(buf, var->new_inner_cfi);
  22635 	BCM_UNPACK_U32(buf, var->ingress_if);
  22636 	BCM_UNPACK_U32(buf, var->priority);
  22637 	BCM_UNPACK_U32(buf, var->dt_outer);
  22638 	BCM_UNPACK_U32(buf, var->dt_outer_prio);
  22639 	BCM_UNPACK_U32(buf, var->dt_outer_pkt_prio);
  22640 	BCM_UNPACK_U32(buf, var->dt_outer_cfi);
  22641 	BCM_UNPACK_U32(buf, var->dt_inner);
  22642 	BCM_UNPACK_U32(buf, var->dt_inner_prio);
  22643 	BCM_UNPACK_U32(buf, var->dt_inner_pkt_prio);
  22644 	BCM_UNPACK_U32(buf, var->dt_inner_cfi);
  22645 	BCM_UNPACK_U32(buf, var->ot_outer);
  22646 	BCM_UNPACK_U32(buf, var->ot_outer_prio);
  22647 	BCM_UNPACK_U32(buf, var->ot_outer_pkt_prio);
  22648 	BCM_UNPACK_U32(buf, var->ot_outer_cfi);
  22649 	BCM_UNPACK_U32(buf, var->ot_inner);
  22650 	BCM_UNPACK_U32(buf, var->ot_inner_pkt_prio);
  22651 	BCM_UNPACK_U32(buf, var->ot_inner_cfi);
  22652 	BCM_UNPACK_U32(buf, var->it_outer);
  22653 	BCM_UNPACK_U32(buf, var->it_outer_pkt_prio);
  22654 	BCM_UNPACK_U32(buf, var->it_outer_cfi);
  22655 	BCM_UNPACK_U32(buf, var->it_inner);
  22656 	BCM_UNPACK_U32(buf, var->it_inner_prio);
  22657 	BCM_UNPACK_U32(buf, var->it_inner_pkt_prio);
  22658 	BCM_UNPACK_U32(buf, var->it_inner_cfi);
  22659 	BCM_UNPACK_U32(buf, var->ut_outer);
  22660 	BCM_UNPACK_U32(buf, var->ut_outer_pkt_prio);
  22661 	BCM_UNPACK_U32(buf, var->ut_outer_cfi);
  22662 	BCM_UNPACK_U32(buf, var->ut_inner);
  22663 	BCM_UNPACK_U32(buf, var->ut_inner_pkt_prio);
  22664 	BCM_UNPACK_U32(buf, var->ut_inner_cfi);
  22665 	BCM_UNPACK_U32(buf, var->outer_pcp);
  22666 	BCM_UNPACK_U32(buf, var->inner_pcp);
  22667 	BCM_UNPACK_U32(buf, var->policer_id);
  22668 	BCM_UNPACK_U16(buf, var->outer_tpid);
  22669 	BCM_UNPACK_U16(buf, var->inner_tpid);
  22670 	BCM_UNPACK_U32(buf, var->outer_tpid_action);
  22671 	BCM_UNPACK_U32(buf, var->inner_tpid_action);
  22672 	BCM_UNPACK_U32(buf, var->action_id);
  22673 	BCM_UNPACK_U32(buf, var->class_id);
  22674 	BCM_UNPACK_U32(buf, var->taf_gate_primap);
  22675 	BCM_UNPACK_U32(buf, var->flags);
  22676 	return buf;
  22677 }
  22678 
  22679 uint8 *
  22680 _bcm_pack_vlan_block(uint8 *buf, bcm_vlan_block_t *var)
  22681 {
  22682 	buf = _bcm_pack_pbmp(buf, &(*var).known_multicast);
  22683 	buf = _bcm_pack_pbmp(buf, &(*var).unknown_multicast);
  22684 	buf = _bcm_pack_pbmp(buf, &(*var).unknown_unicast);
  22685 	buf = _bcm_pack_pbmp(buf, &(*var).broadcast);
  22686 	return buf;
  22687 }
  22688 
  22689 uint8 *
  22690 _bcm_unpack_vlan_block(uint8 *buf, bcm_vlan_block_t *var)
  22691 {
  22692 	buf = _bcm_unpack_pbmp(buf, &(*var).known_multicast);
  22693 	buf = _bcm_unpack_pbmp(buf, &(*var).unknown_multicast);
  22694 	buf = _bcm_unpack_pbmp(buf, &(*var).unknown_unicast);
  22695 	buf = _bcm_unpack_pbmp(buf, &(*var).broadcast);
  22696 	return buf;
  22697 }
  22698 
  22699 uint8 *
  22700 _bcm_pack_vlan_control_vlan(uint8 *buf, bcm_vlan_control_vlan_t *var)
  22701 {
  22702 	BCM_PACK_U32(buf, var->vrf);
  22703 	BCM_PACK_U16(buf, var->forwarding_vlan);
  22704 	BCM_PACK_U32(buf, var->ingress_if);
  22705 	BCM_PACK_U16(buf, var->outer_tpid);
  22706 	BCM_PACK_U32(buf, var->flags);
  22707 	BCM_PACK_U32(buf, var->ip6_mcast_flood_mode);
  22708 	BCM_PACK_U32(buf, var->ip4_mcast_flood_mode);
  22709 	BCM_PACK_U32(buf, var->l2_mcast_flood_mode);
  22710 	BCM_PACK_U32(buf, var->if_class);
  22711 	BCM_PACK_U32(buf, var->forwarding_mode);
  22712 	BCM_PACK_U32(buf, var->urpf_mode);
  22713 	BCM_PACK_U32(buf, var->cosq);
  22714 	BCM_PACK_U32(buf, var->qos_map_id);
  22715 	BCM_PACK_U32(buf, var->distribution_class);
  22716 	BCM_PACK_U32(buf, var->broadcast_group);
  22717 	BCM_PACK_U32(buf, var->unknown_multicast_group);
  22718 	BCM_PACK_U32(buf, var->unknown_unicast_group);
  22719 	BCM_PACK_U32(buf, var->trill_nonunicast_group);
  22720 	BCM_PACK_U32(buf, var->source_trill_name);
  22721 	BCM_PACK_U32(buf, var->trunk_index);
  22722 	BCM_PACK_U32(buf, var->protocol_pkt.mmrp_action);
  22723 	BCM_PACK_U32(buf, var->protocol_pkt.srp_action);
  22724 	BCM_PACK_U32(buf, var->protocol_pkt.arp_reply_action);
  22725 	BCM_PACK_U32(buf, var->protocol_pkt.arp_request_action);
  22726 	BCM_PACK_U32(buf, var->protocol_pkt.nd_action);
  22727 	BCM_PACK_U32(buf, var->protocol_pkt.dhcp_action);
  22728 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_report_leave_action);
  22729 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_query_action);
  22730 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_unknown_msg_action);
  22731 	BCM_PACK_U32(buf, var->protocol_pkt.mld_report_done_action);
  22732 	BCM_PACK_U32(buf, var->protocol_pkt.mld_query_action);
  22733 	BCM_PACK_U32(buf, var->protocol_pkt.ip4_rsvd_mc_action);
  22734 	BCM_PACK_U32(buf, var->protocol_pkt.ip6_rsvd_mc_action);
  22735 	BCM_PACK_U32(buf, var->protocol_pkt.ip4_mc_router_adv_action);
  22736 	BCM_PACK_U32(buf, var->protocol_pkt.ip6_mc_router_adv_action);
  22737 	BCM_PACK_U32(buf, var->protocol_pkt.flood_action_according_to_pfm);
  22738 	BCM_PACK_U32(buf, var->nat_realm_id);
  22739 	BCM_PACK_U32(buf, var->l3_if_class);
  22740 	BCM_PACK_U32(buf, var->vp_mc_ctrl);
  22741 	BCM_PACK_U32(buf, var->aging_cycles);
  22742 	BCM_PACK_U32(buf, var->entropy_id);
  22743 	BCM_PACK_U16(buf, var->vpn);
  22744 	BCM_PACK_U16(buf, var->egress_vlan);
  22745 	BCM_PACK_U32(buf, var->learn_flags);
  22746 	BCM_PACK_U32(buf, var->sr_flags);
  22747 	BCM_PACK_U32(buf, var->flags2);
  22748 	BCM_PACK_U32(buf, var->ingress_stat_id);
  22749 	BCM_PACK_U32(buf, var->ingress_stat_pp_profile);
  22750 	BCM_PACK_U32(buf, var->egress_stat_id);
  22751 	BCM_PACK_U32(buf, var->egress_stat_pp_profile);
  22752 	return buf;
  22753 }
  22754 
  22755 uint8 *
  22756 _bcm_unpack_vlan_control_vlan(uint8 *buf, bcm_vlan_control_vlan_t *var)
  22757 {
  22758 	BCM_UNPACK_U32(buf, var->vrf);
  22759 	BCM_UNPACK_U16(buf, var->forwarding_vlan);
  22760 	BCM_UNPACK_U32(buf, var->ingress_if);
  22761 	BCM_UNPACK_U16(buf, var->outer_tpid);
  22762 	BCM_UNPACK_U32(buf, var->flags);
  22763 	BCM_UNPACK_U32(buf, var->ip6_mcast_flood_mode);
  22764 	BCM_UNPACK_U32(buf, var->ip4_mcast_flood_mode);
  22765 	BCM_UNPACK_U32(buf, var->l2_mcast_flood_mode);
  22766 	BCM_UNPACK_U32(buf, var->if_class);
  22767 	BCM_UNPACK_U32(buf, var->forwarding_mode);
  22768 	BCM_UNPACK_U32(buf, var->urpf_mode);
  22769 	BCM_UNPACK_U32(buf, var->cosq);
  22770 	BCM_UNPACK_U32(buf, var->qos_map_id);
  22771 	BCM_UNPACK_U32(buf, var->distribution_class);
  22772 	BCM_UNPACK_U32(buf, var->broadcast_group);
  22773 	BCM_UNPACK_U32(buf, var->unknown_multicast_group);
  22774 	BCM_UNPACK_U32(buf, var->unknown_unicast_group);
  22775 	BCM_UNPACK_U32(buf, var->trill_nonunicast_group);
  22776 	BCM_UNPACK_U32(buf, var->source_trill_name);
  22777 	BCM_UNPACK_U32(buf, var->trunk_index);
  22778 	BCM_UNPACK_U32(buf, var->protocol_pkt.mmrp_action);
  22779 	BCM_UNPACK_U32(buf, var->protocol_pkt.srp_action);
  22780 	BCM_UNPACK_U32(buf, var->protocol_pkt.arp_reply_action);
  22781 	BCM_UNPACK_U32(buf, var->protocol_pkt.arp_request_action);
  22782 	BCM_UNPACK_U32(buf, var->protocol_pkt.nd_action);
  22783 	BCM_UNPACK_U32(buf, var->protocol_pkt.dhcp_action);
  22784 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_report_leave_action);
  22785 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_query_action);
  22786 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_unknown_msg_action);
  22787 	BCM_UNPACK_U32(buf, var->protocol_pkt.mld_report_done_action);
  22788 	BCM_UNPACK_U32(buf, var->protocol_pkt.mld_query_action);
  22789 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip4_rsvd_mc_action);
  22790 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip6_rsvd_mc_action);
  22791 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip4_mc_router_adv_action);
  22792 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip6_mc_router_adv_action);
  22793 	BCM_UNPACK_U32(buf, var->protocol_pkt.flood_action_according_to_pfm);
  22794 	BCM_UNPACK_U32(buf, var->nat_realm_id);
  22795 	BCM_UNPACK_U32(buf, var->l3_if_class);
  22796 	BCM_UNPACK_U32(buf, var->vp_mc_ctrl);
  22797 	BCM_UNPACK_U32(buf, var->aging_cycles);
  22798 	BCM_UNPACK_U32(buf, var->entropy_id);
  22799 	BCM_UNPACK_U16(buf, var->vpn);
  22800 	BCM_UNPACK_U16(buf, var->egress_vlan);
  22801 	BCM_UNPACK_U32(buf, var->learn_flags);
  22802 	BCM_UNPACK_U32(buf, var->sr_flags);
  22803 	BCM_UNPACK_U32(buf, var->flags2);
  22804 	BCM_UNPACK_U32(buf, var->ingress_stat_id);
  22805 	BCM_UNPACK_U32(buf, var->ingress_stat_pp_profile);
  22806 	BCM_UNPACK_U32(buf, var->egress_stat_id);
  22807 	BCM_UNPACK_U32(buf, var->egress_stat_pp_profile);
  22808 	return buf;
  22809 }
  22810 
  22811 uint8 *
  22812 _bcm_pack_vlan_gport_info(uint8 *buf, bcm_vlan_gport_info_t *var)
  22813 {
  22814 	BCM_PACK_U32(buf, var->flags);
  22815 	BCM_PACK_U16(buf, var->vlan);
  22816 	BCM_PACK_U16(buf, var->vsi);
  22817 	BCM_PACK_U32(buf, var->gport);
  22818 	return buf;
  22819 }
  22820 
  22821 uint8 *
  22822 _bcm_unpack_vlan_gport_info(uint8 *buf, bcm_vlan_gport_info_t *var)
  22823 {
  22824 	BCM_UNPACK_U32(buf, var->flags);
  22825 	BCM_UNPACK_U16(buf, var->vlan);
  22826 	BCM_UNPACK_U16(buf, var->vsi);
  22827 	BCM_UNPACK_U32(buf, var->gport);
  22828 	return buf;
  22829 }
  22830 
  22831 uint8 *
  22832 _bcm_pack_vlan_ip(uint8 *buf, bcm_vlan_ip_t *var)
  22833 {
  22834 	BCM_PACK_U32(buf, var->flags);
  22835 	BCM_PACK_U32(buf, var->ip4);
  22836 	BCM_PACK_U32(buf, var->mask);
  22837 	{
  22838 		int _i;
  22839 
  22840 		for (_i = 0; _i < 16; _i++) {
  22841 			BCM_PACK_U8(buf, var->ip6[_i]);
  22842 		}
  22843 	}
  22844 	BCM_PACK_U32(buf, var->prefix);
  22845 	BCM_PACK_U16(buf, var->vid);
  22846 	BCM_PACK_U32(buf, var->prio);
  22847 	return buf;
  22848 }
  22849 
  22850 uint8 *
  22851 _bcm_unpack_vlan_ip(uint8 *buf, bcm_vlan_ip_t *var)
  22852 {
  22853 	BCM_UNPACK_U32(buf, var->flags);
  22854 	BCM_UNPACK_U32(buf, var->ip4);
  22855 	BCM_UNPACK_U32(buf, var->mask);
  22856 	{
  22857 		int _i;
  22858 
  22859 		for (_i = 0; _i < 16; _i++) {
  22860 			BCM_UNPACK_U8(buf, var->ip6[_i]);
  22861 		}
  22862 	}
  22863 	BCM_UNPACK_U32(buf, var->prefix);
  22864 	BCM_UNPACK_U16(buf, var->vid);
  22865 	BCM_UNPACK_U32(buf, var->prio);
  22866 	return buf;
  22867 }
  22868 
  22869 uint8 *
  22870 _bcm_pack_vlan_match_info(uint8 *buf, bcm_vlan_match_info_t *var)
  22871 {
  22872 	BCM_PACK_U32(buf, var->match);
  22873 	BCM_PACK_U32(buf, var->port);
  22874 	{
  22875 		int _i;
  22876 
  22877 		for (_i = 0; _i < 6; _i++) {
  22878 			BCM_PACK_U8(buf, var->src_mac[_i]);
  22879 		}
  22880 	}
  22881 	BCM_PACK_U32(buf, var->port_class);
  22882 	return buf;
  22883 }
  22884 
  22885 uint8 *
  22886 _bcm_unpack_vlan_match_info(uint8 *buf, bcm_vlan_match_info_t *var)
  22887 {
  22888 	BCM_UNPACK_U32(buf, var->match);
  22889 	BCM_UNPACK_U32(buf, var->port);
  22890 	{
  22891 		int _i;
  22892 
  22893 		for (_i = 0; _i < 6; _i++) {
  22894 			BCM_UNPACK_U8(buf, var->src_mac[_i]);
  22895 		}
  22896 	}
  22897 	BCM_UNPACK_U32(buf, var->port_class);
  22898 	return buf;
  22899 }
  22900 
  22901 uint8 *
  22902 _bcm_pack_vlan_port(uint8 *buf, bcm_vlan_port_t *var)
  22903 {
  22904 	BCM_PACK_U32(buf, var->criteria);
  22905 	BCM_PACK_U32(buf, var->flags);
  22906 	BCM_PACK_U16(buf, var->vsi);
  22907 	BCM_PACK_U16(buf, var->match_vlan);
  22908 	BCM_PACK_U16(buf, var->match_inner_vlan);
  22909 	BCM_PACK_U32(buf, var->match_pcp);
  22910 	BCM_PACK_U32(buf, var->match_tunnel_value);
  22911 	BCM_PACK_U16(buf, var->match_ethertype);
  22912 	BCM_PACK_U32(buf, var->port);
  22913 	BCM_PACK_U8(buf, var->pkt_pri);
  22914 	BCM_PACK_U8(buf, var->pkt_cfi);
  22915 	BCM_PACK_U16(buf, var->egress_service_tpid);
  22916 	BCM_PACK_U16(buf, var->egress_vlan);
  22917 	BCM_PACK_U16(buf, var->egress_inner_vlan);
  22918 	BCM_PACK_U32(buf, var->egress_tunnel_value);
  22919 	BCM_PACK_U32(buf, var->encap_id);
  22920 	BCM_PACK_U32(buf, var->qos_map_id);
  22921 	BCM_PACK_U32(buf, var->policer_id);
  22922 	BCM_PACK_U32(buf, var->egress_policer_id);
  22923 	BCM_PACK_U32(buf, var->failover_id);
  22924 	BCM_PACK_U32(buf, var->failover_port_id);
  22925 	BCM_PACK_U32(buf, var->vlan_port_id);
  22926 	BCM_PACK_U32(buf, var->failover_mc_group);
  22927 	BCM_PACK_U32(buf, var->ingress_failover_id);
  22928 	BCM_PACK_U32(buf, var->egress_failover_id);
  22929 	BCM_PACK_U32(buf, var->egress_failover_port_id);
  22930 	BCM_PACK_U32(buf, var->ingress_network_group_id);
  22931 	BCM_PACK_U32(buf, var->egress_network_group_id);
  22932 	BCM_PACK_U32(buf, var->inlif_counting_profile);
  22933 	BCM_PACK_U32(buf, var->outlif_counting_profile);
  22934 	BCM_PACK_U32(buf, var->if_class);
  22935 	BCM_PACK_U32(buf, var->tunnel_id);
  22936 	BCM_PACK_U32(buf, var->group);
  22937 	BCM_PACK_U32(buf, var->ingress_failover_port_id);
  22938 	BCM_PACK_U32(buf, var->match_class_id);
  22939 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_phb);
  22940 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_remark);
  22941 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_ttl);
  22942 	BCM_PACK_U32(buf, var->ingress_qos_model.ingress_ecn);
  22943 	BCM_PACK_U32(buf, var->egress_qos_model.egress_qos);
  22944 	BCM_PACK_U32(buf, var->egress_qos_model.egress_ttl);
  22945 	BCM_PACK_U8(buf, var->egress_qos_model.ecn_eligible);
  22946 	return buf;
  22947 }
  22948 
  22949 uint8 *
  22950 _bcm_unpack_vlan_port(uint8 *buf, bcm_vlan_port_t *var)
  22951 {
  22952 	BCM_UNPACK_U32(buf, var->criteria);
  22953 	BCM_UNPACK_U32(buf, var->flags);
  22954 	BCM_UNPACK_U16(buf, var->vsi);
  22955 	BCM_UNPACK_U16(buf, var->match_vlan);
  22956 	BCM_UNPACK_U16(buf, var->match_inner_vlan);
  22957 	BCM_UNPACK_U32(buf, var->match_pcp);
  22958 	BCM_UNPACK_U32(buf, var->match_tunnel_value);
  22959 	BCM_UNPACK_U16(buf, var->match_ethertype);
  22960 	BCM_UNPACK_U32(buf, var->port);
  22961 	BCM_UNPACK_U8(buf, var->pkt_pri);
  22962 	BCM_UNPACK_U8(buf, var->pkt_cfi);
  22963 	BCM_UNPACK_U16(buf, var->egress_service_tpid);
  22964 	BCM_UNPACK_U16(buf, var->egress_vlan);
  22965 	BCM_UNPACK_U16(buf, var->egress_inner_vlan);
  22966 	BCM_UNPACK_U32(buf, var->egress_tunnel_value);
  22967 	BCM_UNPACK_U32(buf, var->encap_id);
  22968 	BCM_UNPACK_U32(buf, var->qos_map_id);
  22969 	BCM_UNPACK_U32(buf, var->policer_id);
  22970 	BCM_UNPACK_U32(buf, var->egress_policer_id);
  22971 	BCM_UNPACK_U32(buf, var->failover_id);
  22972 	BCM_UNPACK_U32(buf, var->failover_port_id);
  22973 	BCM_UNPACK_U32(buf, var->vlan_port_id);
  22974 	BCM_UNPACK_U32(buf, var->failover_mc_group);
  22975 	BCM_UNPACK_U32(buf, var->ingress_failover_id);
  22976 	BCM_UNPACK_U32(buf, var->egress_failover_id);
  22977 	BCM_UNPACK_U32(buf, var->egress_failover_port_id);
  22978 	BCM_UNPACK_U32(buf, var->ingress_network_group_id);
  22979 	BCM_UNPACK_U32(buf, var->egress_network_group_id);
  22980 	BCM_UNPACK_U32(buf, var->inlif_counting_profile);
  22981 	BCM_UNPACK_U32(buf, var->outlif_counting_profile);
  22982 	BCM_UNPACK_U32(buf, var->if_class);
  22983 	BCM_UNPACK_U32(buf, var->tunnel_id);
  22984 	BCM_UNPACK_U32(buf, var->group);
  22985 	BCM_UNPACK_U32(buf, var->ingress_failover_port_id);
  22986 	BCM_UNPACK_U32(buf, var->match_class_id);
  22987 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_phb);
  22988 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_remark);
  22989 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_ttl);
  22990 	BCM_UNPACK_U32(buf, var->ingress_qos_model.ingress_ecn);
  22991 	BCM_UNPACK_U32(buf, var->egress_qos_model.egress_qos);
  22992 	BCM_UNPACK_U32(buf, var->egress_qos_model.egress_ttl);
  22993 	BCM_UNPACK_U8(buf, var->egress_qos_model.ecn_eligible);
  22994 	return buf;
  22995 }
  22996 
  22997 uint8 *
  22998 _bcm_pack_vlan_port_translation(uint8 *buf, bcm_vlan_port_translation_t *var)
  22999 {
  23000 	BCM_PACK_U32(buf, var->flags);
  23001 	BCM_PACK_U32(buf, var->gport);
  23002 	BCM_PACK_U32(buf, var->new_outer_vlan);
  23003 	BCM_PACK_U32(buf, var->new_inner_vlan);
  23004 	BCM_PACK_U32(buf, var->vlan_edit_class_id);
  23005 	return buf;
  23006 }
  23007 
  23008 uint8 *
  23009 _bcm_unpack_vlan_port_translation(uint8 *buf, bcm_vlan_port_translation_t *var)
  23010 {
  23011 	BCM_UNPACK_U32(buf, var->flags);
  23012 	BCM_UNPACK_U32(buf, var->gport);
  23013 	BCM_UNPACK_U32(buf, var->new_outer_vlan);
  23014 	BCM_UNPACK_U32(buf, var->new_inner_vlan);
  23015 	BCM_UNPACK_U32(buf, var->vlan_edit_class_id);
  23016 	return buf;
  23017 }
  23018 
  23019 uint8 *
  23020 _bcm_pack_vlan_translate_action_class(uint8 *buf, bcm_vlan_translate_action_class_t *var)
  23021 {
  23022 	BCM_PACK_U32(buf, var->flags);
  23023 	BCM_PACK_U32(buf, var->vlan_edit_class_id);
  23024 	BCM_PACK_U16(buf, var->tag_format_class_id);
  23025 	BCM_PACK_U32(buf, var->vlan_translation_action_id);
  23026 	return buf;
  23027 }
  23028 
  23029 uint8 *
  23030 _bcm_unpack_vlan_translate_action_class(uint8 *buf, bcm_vlan_translate_action_class_t *var)
  23031 {
  23032 	BCM_UNPACK_U32(buf, var->flags);
  23033 	BCM_UNPACK_U32(buf, var->vlan_edit_class_id);
  23034 	BCM_UNPACK_U16(buf, var->tag_format_class_id);
  23035 	BCM_UNPACK_U32(buf, var->vlan_translation_action_id);
  23036 	return buf;
  23037 }
  23038 
  23039 uint8 *
  23040 _bcm_pack_vlan_vector(uint8 *buf, bcm_vlan_vector_t var)
  23041 {
  23042 	{
  23043 		int _i;
  23044 
  23045 		for (_i = 0; _i < 128; _i++) {
  23046 			BCM_PACK_U32(buf, var[_i]);
  23047 		}
  23048 	}
  23049 	return buf;
  23050 }
  23051 
  23052 uint8 *
  23053 _bcm_unpack_vlan_vector(uint8 *buf, bcm_vlan_vector_t var)
  23054 {
  23055 	{
  23056 		int _i;
  23057 
  23058 		for (_i = 0; _i < 128; _i++) {
  23059 			BCM_UNPACK_U32(buf, var[_i]);
  23060 		}
  23061 	}
  23062 	return buf;
  23063 }
  23064 
  23065 #ifdef	INCLUDE_L3
  23066 
  23067 uint8 *
  23068 _bcm_pack_vlan_vpn_config(uint8 *buf, bcm_vlan_vpn_config_t *var)
  23069 {
  23070 	BCM_PACK_U32(buf, var->flags);
  23071 	BCM_PACK_U16(buf, var->vpn);
  23072 	BCM_PACK_U32(buf, var->broadcast_group);
  23073 	BCM_PACK_U32(buf, var->unknown_unicast_group);
  23074 	BCM_PACK_U32(buf, var->unknown_multicast_group);
  23075 	return buf;
  23076 }
  23077 
  23078 uint8 *
  23079 _bcm_unpack_vlan_vpn_config(uint8 *buf, bcm_vlan_vpn_config_t *var)
  23080 {
  23081 	BCM_UNPACK_U32(buf, var->flags);
  23082 	BCM_UNPACK_U16(buf, var->vpn);
  23083 	BCM_UNPACK_U32(buf, var->broadcast_group);
  23084 	BCM_UNPACK_U32(buf, var->unknown_unicast_group);
  23085 	BCM_UNPACK_U32(buf, var->unknown_multicast_group);
  23086 	return buf;
  23087 }
  23088 
  23089 #endif	/* INCLUDE_L3 */
  23090 
  23091 uint8 *
  23092 _bcm_pack_vswitch_cross_connect(uint8 *buf, bcm_vswitch_cross_connect_t *var)
  23093 {
  23094 	BCM_PACK_U32(buf, var->port1);
  23095 	BCM_PACK_U32(buf, var->port2);
  23096 	BCM_PACK_U32(buf, var->encap1);
  23097 	BCM_PACK_U32(buf, var->encap2);
  23098 	BCM_PACK_U32(buf, var->flags);
  23099 	return buf;
  23100 }
  23101 
  23102 uint8 *
  23103 _bcm_unpack_vswitch_cross_connect(uint8 *buf, bcm_vswitch_cross_connect_t *var)
  23104 {
  23105 	BCM_UNPACK_U32(buf, var->port1);
  23106 	BCM_UNPACK_U32(buf, var->port2);
  23107 	BCM_UNPACK_U32(buf, var->encap1);
  23108 	BCM_UNPACK_U32(buf, var->encap2);
  23109 	BCM_UNPACK_U32(buf, var->flags);
  23110 	return buf;
  23111 }
  23112 
  23113 uint8 *
  23114 _bcm_pack_vswitch_flexible_connect_fwd(uint8 *buf, bcm_vswitch_flexible_connect_fwd_t *var)
  23115 {
  23116 	BCM_PACK_U32(buf, var->forward_port);
  23117 	BCM_PACK_U32(buf, var->forward_encap);
  23118 	return buf;
  23119 }
  23120 
  23121 uint8 *
  23122 _bcm_unpack_vswitch_flexible_connect_fwd(uint8 *buf, bcm_vswitch_flexible_connect_fwd_t *var)
  23123 {
  23124 	BCM_UNPACK_U32(buf, var->forward_port);
  23125 	BCM_UNPACK_U32(buf, var->forward_encap);
  23126 	return buf;
  23127 }
  23128 
  23129 uint8 *
  23130 _bcm_pack_vswitch_flexible_connect_match(uint8 *buf, bcm_vswitch_flexible_connect_match_t *var)
  23131 {
  23132 	BCM_PACK_U32(buf, var->match);
  23133 	BCM_PACK_U32(buf, var->match_port);
  23134 	BCM_PACK_U16(buf, var->match_vlan);
  23135 	BCM_PACK_U16(buf, var->match_inner_vlan);
  23136 	return buf;
  23137 }
  23138 
  23139 uint8 *
  23140 _bcm_unpack_vswitch_flexible_connect_match(uint8 *buf, bcm_vswitch_flexible_connect_match_t *var)
  23141 {
  23142 	BCM_UNPACK_U32(buf, var->match);
  23143 	BCM_UNPACK_U32(buf, var->match_port);
  23144 	BCM_UNPACK_U16(buf, var->match_vlan);
  23145 	BCM_UNPACK_U16(buf, var->match_inner_vlan);
  23146 	return buf;
  23147 }
  23148 
  23149 #ifdef	INCLUDE_L3
  23150 
  23151 uint8 *
  23152 _bcm_pack_vxlan_network_domain_config(uint8 *buf, bcm_vxlan_network_domain_config_t *var)
  23153 {
  23154 	BCM_PACK_U32(buf, var->flags);
  23155 	BCM_PACK_U32(buf, var->vsi);
  23156 	BCM_PACK_U32(buf, var->vrf);
  23157 	BCM_PACK_U32(buf, var->network_domain);
  23158 	BCM_PACK_U32(buf, var->vni);
  23159 	BCM_PACK_U32(buf, var->qos_map_id);
  23160 	BCM_PACK_U32(buf, var->vlan_port_id);
  23161 	return buf;
  23162 }
  23163 
  23164 uint8 *
  23165 _bcm_unpack_vxlan_network_domain_config(uint8 *buf, bcm_vxlan_network_domain_config_t *var)
  23166 {
  23167 	BCM_UNPACK_U32(buf, var->flags);
  23168 	BCM_UNPACK_U32(buf, var->vsi);
  23169 	BCM_UNPACK_U32(buf, var->vrf);
  23170 	BCM_UNPACK_U32(buf, var->network_domain);
  23171 	BCM_UNPACK_U32(buf, var->vni);
  23172 	BCM_UNPACK_U32(buf, var->qos_map_id);
  23173 	BCM_UNPACK_U32(buf, var->vlan_port_id);
  23174 	return buf;
  23175 }
  23176 
  23177 uint8 *
  23178 _bcm_pack_vxlan_port(uint8 *buf, bcm_vxlan_port_t *var)
  23179 {
  23180 	BCM_PACK_U32(buf, var->vxlan_port_id);
  23181 	BCM_PACK_U32(buf, var->flags);
  23182 	BCM_PACK_U32(buf, var->if_class);
  23183 	BCM_PACK_U16(buf, var->int_pri);
  23184 	BCM_PACK_U8(buf, var->pkt_pri);
  23185 	BCM_PACK_U8(buf, var->pkt_cfi);
  23186 	BCM_PACK_U16(buf, var->egress_service_tpid);
  23187 	BCM_PACK_U16(buf, var->egress_service_vlan);
  23188 	BCM_PACK_U16(buf, var->mtu);
  23189 	BCM_PACK_U32(buf, var->match_port);
  23190 	BCM_PACK_U32(buf, var->criteria);
  23191 	BCM_PACK_U16(buf, var->match_vlan);
  23192 	BCM_PACK_U16(buf, var->match_inner_vlan);
  23193 	BCM_PACK_U32(buf, var->egress_tunnel_id);
  23194 	BCM_PACK_U32(buf, var->match_tunnel_id);
  23195 	BCM_PACK_U32(buf, var->egress_if);
  23196 	BCM_PACK_U32(buf, var->network_group_id);
  23197 	BCM_PACK_U32(buf, var->vnid);
  23198 	BCM_PACK_U32(buf, var->qos_map_id);
  23199 	BCM_PACK_U8(buf, var->tunnel_pkt_pri);
  23200 	BCM_PACK_U8(buf, var->tunnel_pkt_cfi);
  23201 	return buf;
  23202 }
  23203 
  23204 uint8 *
  23205 _bcm_unpack_vxlan_port(uint8 *buf, bcm_vxlan_port_t *var)
  23206 {
  23207 	BCM_UNPACK_U32(buf, var->vxlan_port_id);
  23208 	BCM_UNPACK_U32(buf, var->flags);
  23209 	BCM_UNPACK_U32(buf, var->if_class);
  23210 	BCM_UNPACK_U16(buf, var->int_pri);
  23211 	BCM_UNPACK_U8(buf, var->pkt_pri);
  23212 	BCM_UNPACK_U8(buf, var->pkt_cfi);
  23213 	BCM_UNPACK_U16(buf, var->egress_service_tpid);
  23214 	BCM_UNPACK_U16(buf, var->egress_service_vlan);
  23215 	BCM_UNPACK_U16(buf, var->mtu);
  23216 	BCM_UNPACK_U32(buf, var->match_port);
  23217 	BCM_UNPACK_U32(buf, var->criteria);
  23218 	BCM_UNPACK_U16(buf, var->match_vlan);
  23219 	BCM_UNPACK_U16(buf, var->match_inner_vlan);
  23220 	BCM_UNPACK_U32(buf, var->egress_tunnel_id);
  23221 	BCM_UNPACK_U32(buf, var->match_tunnel_id);
  23222 	BCM_UNPACK_U32(buf, var->egress_if);
  23223 	BCM_UNPACK_U32(buf, var->network_group_id);
  23224 	BCM_UNPACK_U32(buf, var->vnid);
  23225 	BCM_UNPACK_U32(buf, var->qos_map_id);
  23226 	BCM_UNPACK_U8(buf, var->tunnel_pkt_pri);
  23227 	BCM_UNPACK_U8(buf, var->tunnel_pkt_cfi);
  23228 	return buf;
  23229 }
  23230 
  23231 uint8 *
  23232 _bcm_pack_vxlan_vpn_config(uint8 *buf, bcm_vxlan_vpn_config_t *var)
  23233 {
  23234 	BCM_PACK_U32(buf, var->flags);
  23235 	BCM_PACK_U16(buf, var->vpn);
  23236 	BCM_PACK_U32(buf, var->vnid);
  23237 	BCM_PACK_U8(buf, var->pkt_pri);
  23238 	BCM_PACK_U8(buf, var->pkt_cfi);
  23239 	BCM_PACK_U16(buf, var->egress_service_tpid);
  23240 	BCM_PACK_U16(buf, var->egress_service_vlan);
  23241 	BCM_PACK_U32(buf, var->broadcast_group);
  23242 	BCM_PACK_U32(buf, var->unknown_unicast_group);
  23243 	BCM_PACK_U32(buf, var->unknown_multicast_group);
  23244 	BCM_PACK_U32(buf, var->protocol_pkt.mmrp_action);
  23245 	BCM_PACK_U32(buf, var->protocol_pkt.srp_action);
  23246 	BCM_PACK_U32(buf, var->protocol_pkt.arp_reply_action);
  23247 	BCM_PACK_U32(buf, var->protocol_pkt.arp_request_action);
  23248 	BCM_PACK_U32(buf, var->protocol_pkt.nd_action);
  23249 	BCM_PACK_U32(buf, var->protocol_pkt.dhcp_action);
  23250 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_report_leave_action);
  23251 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_query_action);
  23252 	BCM_PACK_U32(buf, var->protocol_pkt.igmp_unknown_msg_action);
  23253 	BCM_PACK_U32(buf, var->protocol_pkt.mld_report_done_action);
  23254 	BCM_PACK_U32(buf, var->protocol_pkt.mld_query_action);
  23255 	BCM_PACK_U32(buf, var->protocol_pkt.ip4_rsvd_mc_action);
  23256 	BCM_PACK_U32(buf, var->protocol_pkt.ip6_rsvd_mc_action);
  23257 	BCM_PACK_U32(buf, var->protocol_pkt.ip4_mc_router_adv_action);
  23258 	BCM_PACK_U32(buf, var->protocol_pkt.ip6_mc_router_adv_action);
  23259 	BCM_PACK_U32(buf, var->protocol_pkt.flood_action_according_to_pfm);
  23260 	BCM_PACK_U16(buf, var->vlan);
  23261 	BCM_PACK_U32(buf, var->match_port_class);
  23262 	BCM_PACK_U16(buf, var->default_vlan);
  23263 	return buf;
  23264 }
  23265 
  23266 uint8 *
  23267 _bcm_unpack_vxlan_vpn_config(uint8 *buf, bcm_vxlan_vpn_config_t *var)
  23268 {
  23269 	BCM_UNPACK_U32(buf, var->flags);
  23270 	BCM_UNPACK_U16(buf, var->vpn);
  23271 	BCM_UNPACK_U32(buf, var->vnid);
  23272 	BCM_UNPACK_U8(buf, var->pkt_pri);
  23273 	BCM_UNPACK_U8(buf, var->pkt_cfi);
  23274 	BCM_UNPACK_U16(buf, var->egress_service_tpid);
  23275 	BCM_UNPACK_U16(buf, var->egress_service_vlan);
  23276 	BCM_UNPACK_U32(buf, var->broadcast_group);
  23277 	BCM_UNPACK_U32(buf, var->unknown_unicast_group);
  23278 	BCM_UNPACK_U32(buf, var->unknown_multicast_group);
  23279 	BCM_UNPACK_U32(buf, var->protocol_pkt.mmrp_action);
  23280 	BCM_UNPACK_U32(buf, var->protocol_pkt.srp_action);
  23281 	BCM_UNPACK_U32(buf, var->protocol_pkt.arp_reply_action);
  23282 	BCM_UNPACK_U32(buf, var->protocol_pkt.arp_request_action);
  23283 	BCM_UNPACK_U32(buf, var->protocol_pkt.nd_action);
  23284 	BCM_UNPACK_U32(buf, var->protocol_pkt.dhcp_action);
  23285 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_report_leave_action);
  23286 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_query_action);
  23287 	BCM_UNPACK_U32(buf, var->protocol_pkt.igmp_unknown_msg_action);
  23288 	BCM_UNPACK_U32(buf, var->protocol_pkt.mld_report_done_action);
  23289 	BCM_UNPACK_U32(buf, var->protocol_pkt.mld_query_action);
  23290 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip4_rsvd_mc_action);
  23291 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip6_rsvd_mc_action);
  23292 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip4_mc_router_adv_action);
  23293 	BCM_UNPACK_U32(buf, var->protocol_pkt.ip6_mc_router_adv_action);
  23294 	BCM_UNPACK_U32(buf, var->protocol_pkt.flood_action_according_to_pfm);
  23295 	BCM_UNPACK_U16(buf, var->vlan);
  23296 	BCM_UNPACK_U32(buf, var->match_port_class);
  23297 	BCM_UNPACK_U16(buf, var->default_vlan);
  23298 	return buf;
  23299 }
  23300 
  23301 uint8 *
  23302 _bcm_pack_wlan_client(uint8 *buf, bcm_wlan_client_t *var)
  23303 {
  23304 	BCM_PACK_U32(buf, var->flags);
  23305 	BCM_PACK_U32(buf, var->wlan_port_id);
  23306 	{
  23307 		int _i;
  23308 
  23309 		for (_i = 0; _i < 6; _i++) {
  23310 			BCM_PACK_U8(buf, var->mac[_i]);
  23311 		}
  23312 	}
  23313 	BCM_PACK_U32(buf, var->home_agent);
  23314 	BCM_PACK_U32(buf, var->wtp);
  23315 	return buf;
  23316 }
  23317 
  23318 uint8 *
  23319 _bcm_unpack_wlan_client(uint8 *buf, bcm_wlan_client_t *var)
  23320 {
  23321 	BCM_UNPACK_U32(buf, var->flags);
  23322 	BCM_UNPACK_U32(buf, var->wlan_port_id);
  23323 	{
  23324 		int _i;
  23325 
  23326 		for (_i = 0; _i < 6; _i++) {
  23327 			BCM_UNPACK_U8(buf, var->mac[_i]);
  23328 		}
  23329 	}
  23330 	BCM_UNPACK_U32(buf, var->home_agent);
  23331 	BCM_UNPACK_U32(buf, var->wtp);
  23332 	return buf;
  23333 }
  23334 
  23335 uint8 *
  23336 _bcm_pack_wlan_port(uint8 *buf, bcm_wlan_port_t *var)
  23337 {
  23338 	BCM_PACK_U32(buf, var->flags);
  23339 	BCM_PACK_U32(buf, var->wlan_port_id);
  23340 	BCM_PACK_U32(buf, var->port);
  23341 	BCM_PACK_U32(buf, var->if_class);
  23342 	{
  23343 		int _i;
  23344 
  23345 		for (_i = 0; _i < 6; _i++) {
  23346 			BCM_PACK_U8(buf, var->bssid[_i]);
  23347 		}
  23348 	}
  23349 	BCM_PACK_U32(buf, var->radio);
  23350 	BCM_PACK_U32(buf, var->match_tunnel);
  23351 	BCM_PACK_U32(buf, var->egress_tunnel);
  23352 	BCM_PACK_U16(buf, var->client_multicast);
  23353 	BCM_PACK_U32(buf, var->encap_id);
  23354 	return buf;
  23355 }
  23356 
  23357 uint8 *
  23358 _bcm_unpack_wlan_port(uint8 *buf, bcm_wlan_port_t *var)
  23359 {
  23360 	BCM_UNPACK_U32(buf, var->flags);
  23361 	BCM_UNPACK_U32(buf, var->wlan_port_id);
  23362 	BCM_UNPACK_U32(buf, var->port);
  23363 	BCM_UNPACK_U32(buf, var->if_class);
  23364 	{
  23365 		int _i;
  23366 
  23367 		for (_i = 0; _i < 6; _i++) {
  23368 			BCM_UNPACK_U8(buf, var->bssid[_i]);
  23369 		}
  23370 	}
  23371 	BCM_UNPACK_U32(buf, var->radio);
  23372 	BCM_UNPACK_U32(buf, var->match_tunnel);
  23373 	BCM_UNPACK_U32(buf, var->egress_tunnel);
  23374 	BCM_UNPACK_U16(buf, var->client_multicast);
  23375 	BCM_UNPACK_U32(buf, var->encap_id);
  23376 	return buf;
  23377 }
  23378 
  23379 #endif	/* INCLUDE_L3 */
  23380 
  23381 uint8 *
  23382 _bcm_pack_int_aBCM_COS_COUNT(uint8 *buf, int *var)
  23383 {
  23384 	{
  23385 		int _i;
  23386 
  23387 		for (_i = 0; _i < 8; _i++) {
  23388 			BCM_PACK_U32(buf, var[_i]);
  23389 		}
  23390 	}
  23391 	return buf;
  23392 }
  23393 
  23394 uint8 *
  23395 _bcm_unpack_int_aBCM_COS_COUNT(uint8 *buf, int *var)
  23396 {
  23397 	{
  23398 		int _i;
  23399 
  23400 		for (_i = 0; _i < 8; _i++) {
  23401 			BCM_UNPACK_U32(buf, var[_i]);
  23402 		}
  23403 	}
  23404 	return buf;
  23405 }
  23406 
  23407 uint8 *
  23408 _bcm_pack_int_aBCM_FABRIC_NUM_OF_RCI_LEVELS(uint8 *buf, int *var)
  23409 {
  23410 	{
  23411 		int _i;
  23412 
  23413 		for (_i = 0; _i < 7; _i++) {
  23414 			BCM_PACK_U32(buf, var[_i]);
  23415 		}
  23416 	}
  23417 	return buf;
  23418 }
  23419 
  23420 uint8 *
  23421 _bcm_unpack_int_aBCM_FABRIC_NUM_OF_RCI_LEVELS(uint8 *buf, int *var)
  23422 {
  23423 	{
  23424 		int _i;
  23425 
  23426 		for (_i = 0; _i < 7; _i++) {
  23427 			BCM_UNPACK_U32(buf, var[_i]);
  23428 		}
  23429 	}
  23430 	return buf;
  23431 }
  23432 
  23433 uint8 *
  23434 _bcm_pack_int_aBCM_TRUNK_MAX_PORTCNT(uint8 *buf, int *var)
  23435 {
  23436 	{
  23437 		int _i;
  23438 
  23439 		for (_i = 0; _i < 256; _i++) {
  23440 			BCM_PACK_U32(buf, var[_i]);
  23441 		}
  23442 	}
  23443 	return buf;
  23444 }
  23445 
  23446 uint8 *
  23447 _bcm_unpack_int_aBCM_TRUNK_MAX_PORTCNT(uint8 *buf, int *var)
  23448 {
  23449 	{
  23450 		int _i;
  23451 
  23452 		for (_i = 0; _i < 256; _i++) {
  23453 			BCM_UNPACK_U32(buf, var[_i]);
  23454 		}
  23455 	}
  23456 	return buf;
  23457 }
  23458 
  23459 uint8 *
  23460 _bcm_pack_uint32_aBCM_FIELD_ACTION_WIDTH_IN_WORDS(uint8 *buf, uint32 *var)
  23461 {
  23462 	BCM_PACK_U32(buf, var[0]);
  23463 	BCM_PACK_U32(buf, var[1]);
  23464 	BCM_PACK_U32(buf, var[2]);
  23465 	BCM_PACK_U32(buf, var[3]);
  23466 	return buf;
  23467 }
  23468 
  23469 uint8 *
  23470 _bcm_unpack_uint32_aBCM_FIELD_ACTION_WIDTH_IN_WORDS(uint8 *buf, uint32 *var)
  23471 {
  23472 	BCM_UNPACK_U32(buf, var[0]);
  23473 	BCM_UNPACK_U32(buf, var[1]);
  23474 	BCM_UNPACK_U32(buf, var[2]);
  23475 	BCM_UNPACK_U32(buf, var[3]);
  23476 	return buf;
  23477 }
  23478 
  23479 uint8 *
  23480 _bcm_pack_uint32_aBCM_FIELD_QUAL_WIDTH_IN_WORDS(uint8 *buf, uint32 *var)
  23481 {
  23482 	{
  23483 		int _i;
  23484 
  23485 		for (_i = 0; _i < 5; _i++) {
  23486 			BCM_PACK_U32(buf, var[_i]);
  23487 		}
  23488 	}
  23489 	return buf;
  23490 }
  23491 
  23492 uint8 *
  23493 _bcm_unpack_uint32_aBCM_FIELD_QUAL_WIDTH_IN_WORDS(uint8 *buf, uint32 *var)
  23494 {
  23495 	{
  23496 		int _i;
  23497 
  23498 		for (_i = 0; _i < 5; _i++) {
  23499 			BCM_UNPACK_U32(buf, var[_i]);
  23500 		}
  23501 	}
  23502 	return buf;
  23503 }
  23504 
  23505 uint8 *
  23506 _bcm_pack_uint64(uint8 *buf, uint64 *var)
  23507 {
  23508 	{
  23509 		uint32 _u32;
  23510 
  23511 		_u32 = COMPILER_64_HI(*var);
  23512 		BCM_PACK_U32(buf, _u32);
  23513 		_u32 = COMPILER_64_LO(*var);
  23514 		BCM_PACK_U32(buf, _u32);
  23515 	}
  23516 	return buf;
  23517 }
  23518 
  23519 uint8 *
  23520 _bcm_unpack_uint64(uint8 *buf, uint64 *var)
  23521 {
  23522 	{
  23523 		uint32 _u32h, _u32l;
  23524 
  23525 		BCM_UNPACK_U32(buf, _u32h);
  23526 		BCM_UNPACK_U32(buf, _u32l);
  23527 		COMPILER_64_SET(*var, _u32h, _u32l);
  23528 	}
  23529 	return buf;
  23530 }
  23531 
  23532 #endif	/* BCM_RPC_SUPPORT */