1 2 /* 3 * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved. 4 * SPDX-License-Identifier: ISC 5 */ 6 7 8 9 10 11 12 13 14 15 16 #ifndef _TLV_HDR_H_ 17 #define _TLV_HDR_H_ 18 #if !defined(__ASSEMBLER__) 19 #endif 20 21 #define _TLV_USERID_WIDTH_ 6 22 #define _TLV_DATA_WIDTH_ 32 23 #define _TLV_TAG_WIDTH_ 9 24 25 #define _TLV_MRV_EN_LEN_WIDTH_ 9 26 #define _TLV_MRV_DIS_LEN_WIDTH_ 12 27 28 #define _TLV_16_DATA_WIDTH_ 16 29 #define _TLV_16_TAG_WIDTH_ 5 30 #define _TLV_16_LEN_WIDTH_ 4 31 #define _TLV_CTAG_WIDTH_ 5 32 #define _TLV_44_DATA_WIDTH_ 44 33 #define _TLV_64_DATA_WIDTH_ 64 34 #define _TLV_76_DATA_WIDTH_ 64 35 #define _TLV_CDATA_WIDTH_ 32 36 #define _TLV_CDATA_76_WIDTH_ 64 37 38 struct tlv_usr_16_tlword_t { 39 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 40 uint16_t tlv_cflg_reserved : 1, 41 tlv_tag : _TLV_16_TAG_WIDTH_, 42 tlv_len : _TLV_16_LEN_WIDTH_, 43 tlv_usrid : _TLV_USERID_WIDTH_; 44 #else 45 uint16_t tlv_usrid : _TLV_USERID_WIDTH_, 46 tlv_len : _TLV_16_LEN_WIDTH_, 47 tlv_tag : _TLV_16_TAG_WIDTH_, 48 tlv_cflg_reserved : 1; 49 #endif 50 }; 51 52 struct tlv_16_tlword_t { 53 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 54 uint16_t tlv_cflg_reserved : 1, 55 tlv_len : _TLV_16_LEN_WIDTH_, 56 tlv_tag : _TLV_16_TAG_WIDTH_, 57 tlv_reserved : 6; 58 #else 59 uint16_t tlv_reserved : 6, 60 tlv_tag : _TLV_16_TAG_WIDTH_, 61 tlv_len : _TLV_16_LEN_WIDTH_, 62 tlv_cflg_reserved : 1; 63 #endif 64 }; 65 66 67 68 69 70 71 72 struct tlv_mlo_usr_32_tlword_t { 73 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 74 uint32_t tlv_cflg_reserved : 1, 75 tlv_tag : _TLV_TAG_WIDTH_, 76 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 77 tlv_dst_linkid : 3, 78 tlv_src_linkid : 3, 79 tlv_mrv : 1, 80 tlv_usrid : _TLV_USERID_WIDTH_; 81 #else 82 uint32_t tlv_usrid : _TLV_USERID_WIDTH_, 83 tlv_mrv : 1, 84 tlv_src_linkid : 3, 85 tlv_dst_linkid : 3, 86 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 87 tlv_tag : _TLV_TAG_WIDTH_, 88 tlv_cflg_reserved : 1; 89 #endif 90 }; 91 92 struct tlv_mlo_32_tlword_t { 93 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 94 uint32_t tlv_cflg_reserved : 1, 95 tlv_tag : _TLV_TAG_WIDTH_, 96 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 97 tlv_dst_linkid : 3, 98 tlv_src_linkid : 3, 99 tlv_mrv : 1, 100 tlv_reserved : 6; 101 #else 102 uint32_t tlv_reserved : 6, 103 tlv_mrv : 1, 104 tlv_src_linkid : 3, 105 tlv_dst_linkid : 3, 106 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 107 tlv_tag : _TLV_TAG_WIDTH_, 108 tlv_cflg_reserved : 1; 109 #endif 110 }; 111 112 struct tlv_mlo_usr_64_tlword_t { 113 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 114 uint64_t tlv_cflg_reserved : 1, 115 tlv_tag : _TLV_TAG_WIDTH_, 116 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 117 tlv_dst_linkid : 3, 118 tlv_src_linkid : 3, 119 tlv_mrv : 1, 120 tlv_usrid : _TLV_USERID_WIDTH_, 121 #else 122 uint64_t tlv_usrid : _TLV_USERID_WIDTH_, 123 tlv_mrv : 1, 124 tlv_src_linkid : 3, 125 tlv_dst_linkid : 3, 126 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 127 tlv_tag : _TLV_TAG_WIDTH_, 128 tlv_cflg_reserved : 1, 129 #endif 130 tlv_reserved : 32; 131 }; 132 133 struct tlv_mlo_64_tlword_t { 134 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 135 uint64_t tlv_cflg_reserved : 1, 136 tlv_tag : _TLV_TAG_WIDTH_, 137 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 138 tlv_dst_linkid : 3, 139 tlv_src_linkid : 3, 140 tlv_mrv : 1, 141 tlv_reserved : 38; 142 #else 143 uint64_t tlv_usrid_reserved : _TLV_USERID_WIDTH_, 144 tlv_mrv : 1, 145 tlv_src_linkid : 3, 146 tlv_dst_linkid : 3, 147 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 148 tlv_tag : _TLV_TAG_WIDTH_, 149 tlv_cflg_reserved : 1, 150 tlv_reserved : 32; 151 #endif 152 }; 153 154 struct tlv_mlo_usr_44_tlword_t { 155 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 156 uint64_t tlv_compression : 1, 157 tlv_tag : _TLV_TAG_WIDTH_, 158 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 159 tlv_dst_linkid : 3, 160 tlv_src_linkid : 3, 161 tlv_mrv : 1, 162 tlv_usrid : _TLV_USERID_WIDTH_, 163 tlv_reserved : 10, 164 pad_44to64_bit : 22; 165 #else 166 uint64_t tlv_usrid : _TLV_USERID_WIDTH_, 167 tlv_mrv : 1, 168 tlv_src_linkid : 3, 169 tlv_dst_linkid : 3, 170 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 171 tlv_tag : _TLV_TAG_WIDTH_, 172 tlv_compression : 1, 173 pad_44to64_bit : 22, 174 tlv_reserved : 10; 175 #endif 176 }; 177 178 struct tlv_mlo_44_tlword_t { 179 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 180 uint64_t tlv_compression : 1, 181 tlv_tag : _TLV_TAG_WIDTH_, 182 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 183 tlv_dst_linkid : 3, 184 tlv_src_linkid : 3, 185 tlv_mrv : 1, 186 tlv_reserved : 16, 187 pad_44to64_bit : 22; 188 #else 189 uint64_t tlv_usrid_reserved : _TLV_USERID_WIDTH_, 190 tlv_mrv : 1, 191 tlv_src_linkid : 3, 192 tlv_dst_linkid : 3, 193 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 194 tlv_tag : _TLV_TAG_WIDTH_, 195 tlv_compression : 1, 196 pad_44to64_bit : 22, 197 tlv_reserved : 10; 198 #endif 199 }; 200 201 struct tlv_mlo_usr_76_tlword_t { 202 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 203 uint64_t tlv_compression : 1, 204 tlv_tag : _TLV_TAG_WIDTH_, 205 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 206 tlv_dst_linkid : 3, 207 tlv_src_linkid : 3, 208 tlv_mrv : 1, 209 tlv_usrid : _TLV_USERID_WIDTH_, 210 #else 211 uint64_t tlv_usrid : _TLV_USERID_WIDTH_, 212 tlv_mrv : 1, 213 tlv_src_linkid : 3, 214 tlv_dst_linkid : 3, 215 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 216 tlv_tag : _TLV_TAG_WIDTH_, 217 tlv_compression : 1, 218 #endif 219 tlv_reserved : 32; 220 uint64_t pad_64to128_bit : 64; 221 }; 222 223 struct tlv_mlo_76_tlword_t { 224 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 225 uint64_t tlv_compression : 1, 226 tlv_tag : _TLV_TAG_WIDTH_, 227 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 228 tlv_dst_linkid : 3, 229 tlv_src_linkid : 3, 230 tlv_mrv : 1, 231 tlv_reserved : 38; 232 #else 233 uint64_t tlv_usrid_reserved : _TLV_USERID_WIDTH_, 234 tlv_mrv : 1, 235 tlv_src_linkid : 3, 236 tlv_dst_linkid : 3, 237 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 238 tlv_tag : _TLV_TAG_WIDTH_, 239 tlv_compression : 1, 240 tlv_reserved : 32; 241 #endif 242 uint64_t pad_64to128_bit : 64; 243 }; 244 245 246 247 248 249 250 struct tlv_mac_usr_32_tlword_t { 251 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 252 uint32_t tlv_cflg_reserved : 1, 253 tlv_tag : _TLV_TAG_WIDTH_, 254 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 255 tlv_src_linkid : 3, 256 tlv_mrv : 1, 257 tlv_usrid : _TLV_USERID_WIDTH_; 258 #else 259 uint32_t tlv_usrid : _TLV_USERID_WIDTH_, 260 tlv_mrv : 1, 261 tlv_src_linkid : 3, 262 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 263 tlv_tag : _TLV_TAG_WIDTH_, 264 tlv_cflg_reserved : 1; 265 #endif 266 }; 267 268 struct tlv_mac_32_tlword_t { 269 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 270 uint32_t tlv_cflg_reserved : 1, 271 tlv_tag : _TLV_TAG_WIDTH_, 272 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 273 tlv_src_linkid : 3, 274 tlv_mrv : 1, 275 tlv_reserved : 6; 276 #else 277 uint32_t tlv_reserved : 6, 278 tlv_mrv : 1, 279 tlv_src_linkid : 3, 280 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 281 tlv_tag : _TLV_TAG_WIDTH_, 282 tlv_cflg_reserved : 1; 283 #endif 284 }; 285 286 struct tlv_mac_usr_64_tlword_t { 287 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 288 uint64_t tlv_cflg_reserved : 1, 289 tlv_tag : _TLV_TAG_WIDTH_, 290 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 291 tlv_src_linkid : 3, 292 tlv_mrv : 1, 293 tlv_usrid : _TLV_USERID_WIDTH_, 294 #else 295 uint64_t tlv_usrid : _TLV_USERID_WIDTH_, 296 tlv_mrv : 1, 297 tlv_src_linkid : 3, 298 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 299 tlv_tag : _TLV_TAG_WIDTH_, 300 tlv_cflg_reserved : 1, 301 #endif 302 tlv_reserved : 32; 303 }; 304 305 struct tlv_mac_64_tlword_t { 306 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 307 uint64_t tlv_cflg_reserved : 1, 308 tlv_tag : _TLV_TAG_WIDTH_, 309 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 310 tlv_src_linkid : 3, 311 tlv_mrv : 1, 312 tlv_reserved : 38; 313 #else 314 uint64_t tlv_usrid_reserved : _TLV_USERID_WIDTH_, 315 tlv_mrv : 1, 316 tlv_src_linkid : 3, 317 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 318 tlv_tag : _TLV_TAG_WIDTH_, 319 tlv_cflg_reserved : 1, 320 tlv_reserved : 32; 321 #endif 322 }; 323 324 struct tlv_mac_usr_44_tlword_t { 325 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 326 uint64_t tlv_compression : 1, 327 tlv_tag : _TLV_TAG_WIDTH_, 328 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 329 tlv_src_linkid : 3, 330 tlv_mrv : 1, 331 tlv_usrid : _TLV_USERID_WIDTH_, 332 tlv_reserved : 10, 333 pad_44to64_bit : 22; 334 #else 335 uint64_t tlv_usrid : _TLV_USERID_WIDTH_, 336 tlv_mrv : 1, 337 tlv_src_linkid : 3, 338 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 339 tlv_tag : _TLV_TAG_WIDTH_, 340 tlv_compression : 1, 341 pad_44to64_bit : 22, 342 tlv_reserved : 10; 343 #endif 344 }; 345 346 struct tlv_mac_44_tlword_t { 347 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 348 uint64_t tlv_compression : 1, 349 tlv_tag : _TLV_TAG_WIDTH_, 350 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 351 tlv_src_linkid : 3, 352 tlv_mrv : 1, 353 tlv_reserved : 16, 354 pad_44to64_bit : 22; 355 #else 356 uint64_t tlv_usrid_reserved : _TLV_USERID_WIDTH_, 357 tlv_mrv : 1, 358 tlv_src_linkid : 3, 359 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 360 tlv_tag : _TLV_TAG_WIDTH_, 361 tlv_compression : 1, 362 pad_44to64_bit : 22, 363 tlv_reserved : 10; 364 #endif 365 }; 366 367 struct tlv_mac_usr_76_tlword_t { 368 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 369 uint64_t tlv_compression : 1, 370 tlv_tag : _TLV_TAG_WIDTH_, 371 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 372 tlv_src_linkid : 3, 373 tlv_mrv : 1, 374 tlv_usrid : _TLV_USERID_WIDTH_, 375 #else 376 uint64_t tlv_usrid : _TLV_USERID_WIDTH_, 377 tlv_mrv : 1, 378 tlv_src_linkid : 3, 379 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 380 tlv_tag : _TLV_TAG_WIDTH_, 381 tlv_compression : 1, 382 #endif 383 tlv_reserved : 32; 384 uint64_t pad_64to128_bit : 64; 385 }; 386 387 struct tlv_mac_76_tlword_t { 388 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 389 uint64_t tlv_compression : 1, 390 tlv_tag : _TLV_TAG_WIDTH_, 391 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 392 tlv_src_linkid : 3, 393 tlv_mrv : 1, 394 tlv_reserved : 38; 395 #else 396 uint64_t tlv_usrid_reserved : _TLV_USERID_WIDTH_, 397 tlv_mrv : 1, 398 tlv_src_linkid : 3, 399 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 400 tlv_tag : _TLV_TAG_WIDTH_, 401 tlv_compression : 1, 402 tlv_reserved : 32; 403 #endif 404 uint64_t pad_64to128_bit : 64; 405 }; 406 407 408 409 410 411 struct tlv_usr_c_44_tlword_t { 412 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 413 uint64_t tlv_compression : 1, 414 tlv_ctag : _TLV_CTAG_WIDTH_, 415 tlv_usrid : _TLV_USERID_WIDTH_, 416 tlv_cdata : _TLV_CDATA_WIDTH_, 417 pad_44to64_bit : 20; 418 #else 419 uint64_t tlv_cdata_lower_20 : 20, 420 tlv_usrid : _TLV_USERID_WIDTH_, 421 tlv_ctag : _TLV_CTAG_WIDTH_, 422 tlv_compression : 1, 423 pad_44to64_bit : 20, 424 tlv_cdata_upper_12 : 12; 425 #endif 426 }; 427 428 struct tlv_usr_c_76_tlword_t { 429 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 430 uint64_t tlv_compression : 1, 431 tlv_ctag : _TLV_CTAG_WIDTH_, 432 tlv_usrid : _TLV_USERID_WIDTH_, 433 tlv_cdata_lower_52 : 52; 434 uint64_t tlv_cdata_upper_12 : 12, 435 pad_76to128_bit : 52; 436 #else 437 uint64_t tlv_cdata_lower_20 : 20, 438 tlv_usrid : _TLV_USERID_WIDTH_, 439 tlv_ctag : _TLV_CTAG_WIDTH_, 440 tlv_compression : 1, 441 tlv_cdata_middle_32 : 32; 442 uint64_t pad_76to96_bit : 20, 443 tlv_cdata_upper_12 : 12, 444 pad_96to128_bit : 32; 445 #endif 446 }; 447 448 449 450 451 452 453 454 struct tlv_usr_32_hdr { 455 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 456 uint64_t tlv_cflg_reserved : 1, 457 tlv_tag : _TLV_TAG_WIDTH_, 458 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 459 tlv_src_linkid : 3, 460 tlv_mrv : 1, 461 tlv_usrid : _TLV_USERID_WIDTH_, 462 #else 463 uint32_t tlv_usrid : _TLV_USERID_WIDTH_, 464 tlv_mrv : 1, 465 tlv_src_linkid : 3, 466 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 467 tlv_tag : _TLV_TAG_WIDTH_, 468 tlv_cflg_reserved : 1, 469 #endif 470 tlv_reserved : 32; 471 }; 472 473 struct tlv_32_hdr { 474 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 475 uint64_t tlv_cflg_reserved : 1, 476 tlv_tag : _TLV_TAG_WIDTH_, 477 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 478 tlv_src_linkid : 3, 479 tlv_mrv : 1, 480 tlv_reserved : 38; 481 #else 482 uint64_t tlv_usrid_reserved : _TLV_USERID_WIDTH_, 483 tlv_mrv : 1, 484 tlv_src_linkid : 3, 485 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 486 tlv_tag : _TLV_TAG_WIDTH_, 487 tlv_cflg_reserved : 1, 488 tlv_reserved : 32; 489 #endif 490 }; 491 492 493 494 495 496 497 498 499 struct tlv_mlo_usr_64_tlw32_t { 500 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 501 uint32_t tlv_cflg_reserved : 1, 502 tlv_tag : _TLV_TAG_WIDTH_, 503 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 504 tlv_dst_linkid : 3, 505 tlv_src_linkid : 3, 506 tlv_mrv : 1, 507 tlv_usrid : _TLV_USERID_WIDTH_; 508 #else 509 uint32_t tlv_usrid : _TLV_USERID_WIDTH_, 510 tlv_mrv : 1, 511 tlv_src_linkid : 3, 512 tlv_dst_linkid : 3, 513 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 514 tlv_tag : _TLV_TAG_WIDTH_, 515 tlv_cflg_reserved : 1; 516 #endif 517 uint32_t pad_32to64_bit : 32; 518 }; 519 520 struct tlv_mlo_64_tlw32_t { 521 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 522 uint32_t tlv_cflg_reserved : 1, 523 tlv_tag : _TLV_TAG_WIDTH_, 524 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 525 tlv_dst_linkid : 3, 526 tlv_src_linkid : 3, 527 tlv_mrv : 1, 528 tlv_reserved : _TLV_USERID_WIDTH_; 529 #else 530 uint32_t tlv_reserved : _TLV_USERID_WIDTH_, 531 tlv_mrv : 1, 532 tlv_src_linkid : 3, 533 tlv_dst_linkid : 3, 534 tlv_len : _TLV_MRV_EN_LEN_WIDTH_, 535 tlv_tag : _TLV_TAG_WIDTH_, 536 tlv_cflg_reserved : 1; 537 #endif 538 uint32_t pad_32to64_bit : 32; 539 }; 540 541 struct tlv_mac_usr_64_tlw32_t { 542 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 543 uint32_t tlv_cflg_reserved : 1, 544 tlv_tag : _TLV_TAG_WIDTH_, 545 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 546 tlv_src_linkid : 3, 547 tlv_mrv : 1, 548 tlv_usrid : _TLV_USERID_WIDTH_; 549 #else 550 uint32_t tlv_usrid : _TLV_USERID_WIDTH_, 551 tlv_mrv : 1, 552 tlv_src_linkid : 3, 553 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 554 tlv_tag : _TLV_TAG_WIDTH_, 555 tlv_cflg_reserved : 1; 556 #endif 557 uint32_t pad_32to64_bit : 32; 558 }; 559 560 struct tlv_mac_64_tlw32_t { 561 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 562 uint32_t tlv_cflg_reserved : 1, 563 tlv_tag : _TLV_TAG_WIDTH_, 564 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 565 tlv_src_linkid : 3, 566 tlv_mrv : 1, 567 tlv_reserved : _TLV_USERID_WIDTH_; 568 #else 569 uint32_t tlv_reserved : _TLV_USERID_WIDTH_, 570 tlv_mrv : 1, 571 tlv_src_linkid : 3, 572 tlv_len : _TLV_MRV_DIS_LEN_WIDTH_, 573 tlv_tag : _TLV_TAG_WIDTH_, 574 tlv_cflg_reserved : 1; 575 #endif 576 uint32_t pad_32to64_bit : 32; 577 }; 578 579 580 581 582 583 struct tlv_usr_c_44_tlw32_t { 584 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 585 uint32_t tlv_compression : 1, 586 tlv_ctag : _TLV_CTAG_WIDTH_, 587 tlv_usrid : _TLV_USERID_WIDTH_, 588 tlv_cdata_lower_20 : 20; 589 uint32_t tlv_cdata_upper_12 : 12, 590 pad_44to64_bit : 20; 591 #else 592 uint32_t tlv_cdata_lower_20 : 20, 593 tlv_usrid : _TLV_USERID_WIDTH_, 594 tlv_ctag : _TLV_CTAG_WIDTH_, 595 tlv_compression : 1; 596 uint32_t pad_44to64_bit : 20, 597 tlv_cdata_upper_12 : 12; 598 #endif 599 }; 600 601 struct tlv_usr_c_76_tlw32_t { 602 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 603 uint32_t tlv_compression : 1, 604 tlv_ctag : _TLV_CTAG_WIDTH_, 605 tlv_usrid : _TLV_USERID_WIDTH_, 606 tlv_cdata_lower_20 : 20; 607 uint32_t tlv_cdata_middle_32 : 32; 608 uint32_t tlv_cdata_upper_12 : 12, 609 pad_76to96_bit : 20; 610 uint32_t pad_96to128_bit : 32; 611 #else 612 uint32_t tlv_cdata_lower_20 : 20, 613 tlv_usrid : _TLV_USERID_WIDTH_, 614 tlv_ctag : _TLV_CTAG_WIDTH_, 615 tlv_compression : 1; 616 uint32_t tlv_cdata_middle_32 : 32; 617 uint32_t pad_76to96_bit : 20, 618 tlv_cdata_upper_12 : 12; 619 uint32_t pad_96to128_bit : 32; 620 #endif 621 }; 622 623 624 625 #endif 626