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 */