Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sfc: update MCDI protocol headers

Link: https://lore.kernel.org/r/cover.1657878101.git.ecree.xilinx@gmail.com
Signed-off-by: Edward Cree <ecree.xilinx@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Edward Cree and committed by
Jakub Kicinski
1f17708b 769e2695

+7931 -193
+7931 -193
drivers/net/ethernet/sfc/mcdi_pcol.h
··· 165 165 #define FSE_AZ_EV_CODE_MCDI_EVRESPONSE 0xc 166 166 167 167 168 - /* Operation not permitted. */ 169 - #define MC_CMD_ERR_EPERM 1 170 - /* Non-existent command target */ 171 - #define MC_CMD_ERR_ENOENT 2 172 - /* assert() has killed the MC */ 173 - #define MC_CMD_ERR_EINTR 4 174 - /* I/O failure */ 175 - #define MC_CMD_ERR_EIO 5 176 - /* Already exists */ 177 - #define MC_CMD_ERR_EEXIST 6 178 - /* Try again */ 179 - #define MC_CMD_ERR_EAGAIN 11 180 - /* Out of memory */ 181 - #define MC_CMD_ERR_ENOMEM 12 182 - /* Caller does not hold required locks */ 183 - #define MC_CMD_ERR_EACCES 13 184 - /* Resource is currently unavailable (e.g. lock contention) */ 185 - #define MC_CMD_ERR_EBUSY 16 186 - /* No such device */ 187 - #define MC_CMD_ERR_ENODEV 19 188 - /* Invalid argument to target */ 189 - #define MC_CMD_ERR_EINVAL 22 190 - /* Broken pipe */ 191 - #define MC_CMD_ERR_EPIPE 32 192 - /* Read-only */ 193 - #define MC_CMD_ERR_EROFS 30 194 - /* Out of range */ 195 - #define MC_CMD_ERR_ERANGE 34 196 - /* Non-recursive resource is already acquired */ 197 - #define MC_CMD_ERR_EDEADLK 35 198 - /* Operation not implemented */ 199 - #define MC_CMD_ERR_ENOSYS 38 200 - /* Operation timed out */ 201 - #define MC_CMD_ERR_ETIME 62 202 - /* Link has been severed */ 203 - #define MC_CMD_ERR_ENOLINK 67 204 - /* Protocol error */ 205 - #define MC_CMD_ERR_EPROTO 71 206 - /* Operation not supported */ 207 - #define MC_CMD_ERR_ENOTSUP 95 208 - /* Address not available */ 209 - #define MC_CMD_ERR_EADDRNOTAVAIL 99 210 - /* Not connected */ 211 - #define MC_CMD_ERR_ENOTCONN 107 212 - /* Operation already in progress */ 213 - #define MC_CMD_ERR_EALREADY 114 214 - 215 - /* Resource allocation failed. */ 216 - #define MC_CMD_ERR_ALLOC_FAIL 0x1000 217 - /* V-adaptor not found. */ 218 - #define MC_CMD_ERR_NO_VADAPTOR 0x1001 219 - /* EVB port not found. */ 220 - #define MC_CMD_ERR_NO_EVB_PORT 0x1002 221 - /* V-switch not found. */ 222 - #define MC_CMD_ERR_NO_VSWITCH 0x1003 223 - /* Too many VLAN tags. */ 224 - #define MC_CMD_ERR_VLAN_LIMIT 0x1004 225 - /* Bad PCI function number. */ 226 - #define MC_CMD_ERR_BAD_PCI_FUNC 0x1005 227 - /* Invalid VLAN mode. */ 228 - #define MC_CMD_ERR_BAD_VLAN_MODE 0x1006 229 - /* Invalid v-switch type. */ 230 - #define MC_CMD_ERR_BAD_VSWITCH_TYPE 0x1007 231 - /* Invalid v-port type. */ 232 - #define MC_CMD_ERR_BAD_VPORT_TYPE 0x1008 233 - /* MAC address exists. */ 234 - #define MC_CMD_ERR_MAC_EXIST 0x1009 235 - /* Slave core not present */ 236 - #define MC_CMD_ERR_SLAVE_NOT_PRESENT 0x100a 237 - /* The datapath is disabled. */ 238 - #define MC_CMD_ERR_DATAPATH_DISABLED 0x100b 239 - /* The requesting client is not a function */ 240 - #define MC_CMD_ERR_CLIENT_NOT_FN 0x100c 241 - /* The requested operation might require the 242 - command to be passed between MCs, and the 243 - transport doesn't support that. Should 244 - only ever been seen over the UART. */ 245 - #define MC_CMD_ERR_TRANSPORT_NOPROXY 0x100d 246 - /* VLAN tag(s) exists */ 247 - #define MC_CMD_ERR_VLAN_EXIST 0x100e 248 - /* No MAC address assigned to an EVB port */ 249 - #define MC_CMD_ERR_NO_MAC_ADDR 0x100f 250 - /* Notifies the driver that the request has been relayed 251 - * to an admin function for authorization. The driver should 252 - * wait for a PROXY_RESPONSE event and then resend its request. 253 - * This error code is followed by a 32-bit handle that 254 - * helps matching it with the respective PROXY_RESPONSE event. */ 255 - #define MC_CMD_ERR_PROXY_PENDING 0x1010 256 - #define MC_CMD_ERR_PROXY_PENDING_HANDLE_OFST 4 257 - /* The request cannot be passed for authorization because 258 - * another request from the same function is currently being 259 - * authorized. The drvier should try again later. */ 260 - #define MC_CMD_ERR_PROXY_INPROGRESS 0x1011 261 - /* Returned by MC_CMD_PROXY_COMPLETE if the caller is not the function 262 - * that has enabled proxying or BLOCK_INDEX points to a function that 263 - * doesn't await an authorization. */ 264 - #define MC_CMD_ERR_PROXY_UNEXPECTED 0x1012 265 - /* This code is currently only used internally in FW. Its meaning is that 266 - * an operation failed due to lack of SR-IOV privilege. 267 - * Normally it is translated to EPERM by send_cmd_err(), 268 - * but it may also be used to trigger some special mechanism 269 - * for handling such case, e.g. to relay the failed request 270 - * to a designated admin function for authorization. */ 271 - #define MC_CMD_ERR_NO_PRIVILEGE 0x1013 272 - /* Workaround 26807 could not be turned on/off because some functions 273 - * have already installed filters. See the comment at 274 - * MC_CMD_WORKAROUND_BUG26807. 275 - * May also returned for other operations such as sub-variant switching. */ 276 - #define MC_CMD_ERR_FILTERS_PRESENT 0x1014 277 - /* The clock whose frequency you've attempted to set 278 - * doesn't exist on this NIC */ 279 - #define MC_CMD_ERR_NO_CLOCK 0x1015 280 - /* Returned by MC_CMD_TESTASSERT if the action that should 281 - * have caused an assertion failed to do so. */ 282 - #define MC_CMD_ERR_UNREACHABLE 0x1016 283 - /* This command needs to be processed in the background but there were no 284 - * resources to do so. Send it again after a command has completed. */ 285 - #define MC_CMD_ERR_QUEUE_FULL 0x1017 286 - /* The operation could not be completed because the PCIe link has gone 287 - * away. This error code is never expected to be returned over the TLP 288 - * transport. */ 289 - #define MC_CMD_ERR_NO_PCIE 0x1018 290 - /* The operation could not be completed because the datapath has gone 291 - * away. This is distinct from MC_CMD_ERR_DATAPATH_DISABLED in that the 292 - * datapath absence may be temporary*/ 293 - #define MC_CMD_ERR_NO_DATAPATH 0x1019 294 - /* The operation could not complete because some VIs are allocated */ 295 - #define MC_CMD_ERR_VIS_PRESENT 0x101a 296 - /* The operation could not complete because some PIO buffers are allocated */ 297 - #define MC_CMD_ERR_PIOBUFS_PRESENT 0x101b 298 - 299 168 #define MC_CMD_ERR_CODE_OFST 0 169 + #define MC_CMD_ERR_PROXY_PENDING_HANDLE_OFST 4 300 170 301 171 /* We define 8 "escape" commands to allow 302 172 for command number space extension */ ··· 235 365 */ 236 366 #define MC_CMD_ERR_ARG_OFST 4 237 367 238 - /* No space */ 239 - #define MC_CMD_ERR_ENOSPC 28 368 + /* MC_CMD_ERR enum: Public MCDI error codes. Error codes that correspond to 369 + * POSIX errnos should use the same numeric values that linux does. Error codes 370 + * specific to Solarflare firmware should use values in the range 0x1000 - 371 + * 0x10ff. The range 0x2000 - 0x20ff is reserved for private error codes (see 372 + * MC_CMD_ERR_PRIV below). 373 + */ 374 + /* enum: Operation not permitted. */ 375 + #define MC_CMD_ERR_EPERM 0x1 376 + /* enum: Non-existent command target */ 377 + #define MC_CMD_ERR_ENOENT 0x2 378 + /* enum: assert() has killed the MC */ 379 + #define MC_CMD_ERR_EINTR 0x4 380 + /* enum: I/O failure */ 381 + #define MC_CMD_ERR_EIO 0x5 382 + /* enum: Already exists */ 383 + #define MC_CMD_ERR_EEXIST 0x6 384 + /* enum: Try again */ 385 + #define MC_CMD_ERR_EAGAIN 0xb 386 + /* enum: Out of memory */ 387 + #define MC_CMD_ERR_ENOMEM 0xc 388 + /* enum: Caller does not hold required locks */ 389 + #define MC_CMD_ERR_EACCES 0xd 390 + /* enum: Resource is currently unavailable (e.g. lock contention) */ 391 + #define MC_CMD_ERR_EBUSY 0x10 392 + /* enum: No such device */ 393 + #define MC_CMD_ERR_ENODEV 0x13 394 + /* enum: Invalid argument to target */ 395 + #define MC_CMD_ERR_EINVAL 0x16 396 + /* enum: No space */ 397 + #define MC_CMD_ERR_ENOSPC 0x1c 398 + /* enum: Read-only */ 399 + #define MC_CMD_ERR_EROFS 0x1e 400 + /* enum: Broken pipe */ 401 + #define MC_CMD_ERR_EPIPE 0x20 402 + /* enum: Out of range */ 403 + #define MC_CMD_ERR_ERANGE 0x22 404 + /* enum: Non-recursive resource is already acquired */ 405 + #define MC_CMD_ERR_EDEADLK 0x23 406 + /* enum: Operation not implemented */ 407 + #define MC_CMD_ERR_ENOSYS 0x26 408 + /* enum: Operation timed out */ 409 + #define MC_CMD_ERR_ETIME 0x3e 410 + /* enum: Link has been severed */ 411 + #define MC_CMD_ERR_ENOLINK 0x43 412 + /* enum: Protocol error */ 413 + #define MC_CMD_ERR_EPROTO 0x47 414 + /* enum: Bad message */ 415 + #define MC_CMD_ERR_EBADMSG 0x4a 416 + /* enum: Operation not supported */ 417 + #define MC_CMD_ERR_ENOTSUP 0x5f 418 + /* enum: Address not available */ 419 + #define MC_CMD_ERR_EADDRNOTAVAIL 0x63 420 + /* enum: Not connected */ 421 + #define MC_CMD_ERR_ENOTCONN 0x6b 422 + /* enum: Operation already in progress */ 423 + #define MC_CMD_ERR_EALREADY 0x72 424 + /* enum: Stale handle. The handle references a resource that no longer exists. 425 + */ 426 + #define MC_CMD_ERR_ESTALE 0x74 427 + /* enum: Resource allocation failed. */ 428 + #define MC_CMD_ERR_ALLOC_FAIL 0x1000 429 + /* enum: V-adaptor not found. */ 430 + #define MC_CMD_ERR_NO_VADAPTOR 0x1001 431 + /* enum: EVB port not found. */ 432 + #define MC_CMD_ERR_NO_EVB_PORT 0x1002 433 + /* enum: V-switch not found. */ 434 + #define MC_CMD_ERR_NO_VSWITCH 0x1003 435 + /* enum: Too many VLAN tags. */ 436 + #define MC_CMD_ERR_VLAN_LIMIT 0x1004 437 + /* enum: Bad PCI function number. */ 438 + #define MC_CMD_ERR_BAD_PCI_FUNC 0x1005 439 + /* enum: Invalid VLAN mode. */ 440 + #define MC_CMD_ERR_BAD_VLAN_MODE 0x1006 441 + /* enum: Invalid v-switch type. */ 442 + #define MC_CMD_ERR_BAD_VSWITCH_TYPE 0x1007 443 + /* enum: Invalid v-port type. */ 444 + #define MC_CMD_ERR_BAD_VPORT_TYPE 0x1008 445 + /* enum: MAC address exists. */ 446 + #define MC_CMD_ERR_MAC_EXIST 0x1009 447 + /* enum: Slave core not present */ 448 + #define MC_CMD_ERR_SLAVE_NOT_PRESENT 0x100a 449 + /* enum: The datapath is disabled. */ 450 + #define MC_CMD_ERR_DATAPATH_DISABLED 0x100b 451 + /* enum: The requesting client is not a function */ 452 + #define MC_CMD_ERR_CLIENT_NOT_FN 0x100c 453 + /* enum: The requested operation might require the command to be passed between 454 + * MCs, and thetransport doesn't support that. Should only ever been seen over 455 + * the UART. 456 + */ 457 + #define MC_CMD_ERR_TRANSPORT_NOPROXY 0x100d 458 + /* enum: VLAN tag(s) exists */ 459 + #define MC_CMD_ERR_VLAN_EXIST 0x100e 460 + /* enum: No MAC address assigned to an EVB port */ 461 + #define MC_CMD_ERR_NO_MAC_ADDR 0x100f 462 + /* enum: Notifies the driver that the request has been relayed to an admin 463 + * function for authorization. The driver should wait for a PROXY_RESPONSE 464 + * event and then resend its request. This error code is followed by a 32-bit 465 + * handle that helps matching it with the respective PROXY_RESPONSE event. 466 + */ 467 + #define MC_CMD_ERR_PROXY_PENDING 0x1010 468 + /* enum: The request cannot be passed for authorization because another request 469 + * from the same function is currently being authorized. The drvier should try 470 + * again later. 471 + */ 472 + #define MC_CMD_ERR_PROXY_INPROGRESS 0x1011 473 + /* enum: Returned by MC_CMD_PROXY_COMPLETE if the caller is not the function 474 + * that has enabled proxying or BLOCK_INDEX points to a function that doesn't 475 + * await an authorization. 476 + */ 477 + #define MC_CMD_ERR_PROXY_UNEXPECTED 0x1012 478 + /* enum: This code is currently only used internally in FW. Its meaning is that 479 + * an operation failed due to lack of SR-IOV privilege. Normally it is 480 + * translated to EPERM by send_cmd_err(), but it may also be used to trigger 481 + * some special mechanism for handling such case, e.g. to relay the failed 482 + * request to a designated admin function for authorization. 483 + */ 484 + #define MC_CMD_ERR_NO_PRIVILEGE 0x1013 485 + /* enum: Workaround 26807 could not be turned on/off because some functions 486 + * have already installed filters. See the comment at 487 + * MC_CMD_WORKAROUND_BUG26807. May also returned for other operations such as 488 + * sub-variant switching. 489 + */ 490 + #define MC_CMD_ERR_FILTERS_PRESENT 0x1014 491 + /* enum: The clock whose frequency you've attempted to set set doesn't exist on 492 + * this NIC 493 + */ 494 + #define MC_CMD_ERR_NO_CLOCK 0x1015 495 + /* enum: Returned by MC_CMD_TESTASSERT if the action that should have caused an 496 + * assertion failed to do so. 497 + */ 498 + #define MC_CMD_ERR_UNREACHABLE 0x1016 499 + /* enum: This command needs to be processed in the background but there were no 500 + * resources to do so. Send it again after a command has completed. 501 + */ 502 + #define MC_CMD_ERR_QUEUE_FULL 0x1017 503 + /* enum: The operation could not be completed because the PCIe link has gone 504 + * away. This error code is never expected to be returned over the TLP 505 + * transport. 506 + */ 507 + #define MC_CMD_ERR_NO_PCIE 0x1018 508 + /* enum: The operation could not be completed because the datapath has gone 509 + * away. This is distinct from MC_CMD_ERR_DATAPATH_DISABLED in that the 510 + * datapath absence may be temporary 511 + */ 512 + #define MC_CMD_ERR_NO_DATAPATH 0x1019 513 + /* enum: The operation could not complete because some VIs are allocated */ 514 + #define MC_CMD_ERR_VIS_PRESENT 0x101a 515 + /* enum: The operation could not complete because some PIO buffers are 516 + * allocated 517 + */ 518 + #define MC_CMD_ERR_PIOBUFS_PRESENT 0x101b 240 519 241 - /* MCDI_EVENT structuredef */ 520 + /* MC_CMD_RESOURCE_SPECIFIER enum */ 521 + /* enum: Any */ 522 + #define MC_CMD_RESOURCE_INSTANCE_ANY 0xffffffff 523 + #define MC_CMD_RESOURCE_INSTANCE_NONE 0xfffffffe /* enum */ 524 + 525 + /* MC_CMD_FPGA_FLASH_INDEX enum */ 526 + #define MC_CMD_FPGA_FLASH_PRIMARY 0x0 /* enum */ 527 + #define MC_CMD_FPGA_FLASH_SECONDARY 0x1 /* enum */ 528 + 529 + /* MC_CMD_EXTERNAL_MAE_LINK_MODE enum */ 530 + /* enum: Legacy mode as described in XN-200039-TC. */ 531 + #define MC_CMD_EXTERNAL_MAE_LINK_MODE_LEGACY 0x0 532 + /* enum: Switchdev mode as described in XN-200039-TC. */ 533 + #define MC_CMD_EXTERNAL_MAE_LINK_MODE_SWITCHDEV 0x1 534 + /* enum: Bootstrap mode as described in XN-200039-TC. */ 535 + #define MC_CMD_EXTERNAL_MAE_LINK_MODE_BOOTSTRAP 0x2 536 + /* enum: Link-mode change is in-progress as described in XN-200039-TC. */ 537 + #define MC_CMD_EXTERNAL_MAE_LINK_MODE_PENDING 0xf 538 + 539 + /* PCIE_INTERFACE enum: From EF100 onwards, SFC products can have multiple PCIe 540 + * interfaces. There is a need to refer to interfaces explicitly from drivers 541 + * (for example, a management driver on one interface administering a function 542 + * on another interface). This enumeration provides stable identifiers to all 543 + * interfaces present on a product. Product documentation will specify which 544 + * interfaces exist and their associated identifier. In general, drivers, 545 + * should not assign special meanings to specific values. Instead, behaviour 546 + * should be determined by NIC configuration, which will identify interfaces 547 + * where appropriate. 548 + */ 549 + /* enum: Primary host interfaces. Typically (i.e. for all known SFC products) 550 + * the interface exposed on the edge connector (or form factor equivalent). 551 + */ 552 + #define PCIE_INTERFACE_HOST_PRIMARY 0x0 553 + /* enum: Riverhead and keystone products have a second PCIe interface to which 554 + * an on-NIC ARM module is expected to be connected. 555 + */ 556 + #define PCIE_INTERFACE_NIC_EMBEDDED 0x1 557 + /* enum: For MCDI commands issued over a PCIe interface, this value is 558 + * translated into the interface over which the command was issued. Not 559 + * meaningful for other MCDI transports. 560 + */ 561 + #define PCIE_INTERFACE_CALLER 0xffffffff 562 + 563 + /* MC_CLIENT_ID_SPECIFIER enum */ 564 + /* enum: Equivalent to the caller's client ID */ 565 + #define MC_CMD_CLIENT_ID_SELF 0xffffffff 566 + 567 + /* MAE_FIELD_SUPPORT_STATUS enum */ 568 + /* enum: The NIC does not support this field. The driver must ensure that any 569 + * mask associated with this field in a match rule is zeroed. The NIC may 570 + * either reject requests with an invalid mask for such a field, or may assume 571 + * that the mask is zero. (This category only exists to describe behaviour for 572 + * fields that a newer driver might know about but that older firmware does 573 + * not. It is recommended that firmware report MAE_FIELD_FIELD_MATCH_NEVER for 574 + * all match fields defined at the time of its compilation. If a driver see a 575 + * field support status value that it does not recognise, it must treat that 576 + * field as thought the field was reported as MAE_FIELD_SUPPORTED_MATCH_NEVER, 577 + * and must never set a non-zero mask value for this field. 578 + */ 579 + #define MAE_FIELD_UNSUPPORTED 0x0 580 + /* enum: The NIC supports this field, but cannot use it in a match rule. The 581 + * driver must ensure that any mask for such a field in a match rule is zeroed. 582 + * The NIC will reject requests with an invalid mask for such a field. 583 + */ 584 + #define MAE_FIELD_SUPPORTED_MATCH_NEVER 0x1 585 + /* enum: The NIC supports this field, and must use it in all match rules. The 586 + * driver must ensure that any mask for such a field is all ones. The NIC will 587 + * reject requests with an invalid mask for such a field. 588 + */ 589 + #define MAE_FIELD_SUPPORTED_MATCH_ALWAYS 0x2 590 + /* enum: The NIC supports this field, and may optionally use it in match rules. 591 + * The driver must ensure that any mask for such a field is either all zeroes 592 + * or all ones. The NIC will reject requests with an invalid mask for such a 593 + * field. 594 + */ 595 + #define MAE_FIELD_SUPPORTED_MATCH_OPTIONAL 0x3 596 + /* enum: The NIC supports this field, and may optionally use it in match rules. 597 + * The driver must ensure that any mask for such a field is either all zeroes 598 + * or a consecutive set of ones following by all zeroes (starting from MSB). 599 + * The NIC will reject requests with an invalid mask for such a field. 600 + */ 601 + #define MAE_FIELD_SUPPORTED_MATCH_PREFIX 0x4 602 + /* enum: The NIC supports this field, and may optionally use it in match rules. 603 + * The driver may provide an arbitrary mask for such a field. 604 + */ 605 + #define MAE_FIELD_SUPPORTED_MATCH_MASK 0x5 606 + 607 + /* MAE_CT_VNI_MODE enum: Controls the layout of the VNI input to the conntrack 608 + * lookup. (Values are not arbitrary - constrained by table access ABI.) 609 + */ 610 + /* enum: The VNI input to the conntrack lookup will be zero. */ 611 + #define MAE_CT_VNI_MODE_ZERO 0x0 612 + /* enum: The VNI input to the conntrack lookup will be the VNI (VXLAN/Geneve) 613 + * or VSID (NVGRE) field from the packet. 614 + */ 615 + #define MAE_CT_VNI_MODE_VNI 0x1 616 + /* enum: The VNI input to the conntrack lookup will be the VLAN ID from the 617 + * outermost VLAN tag (in bottom 12 bits; top 12 bits zero). 618 + */ 619 + #define MAE_CT_VNI_MODE_1VLAN 0x2 620 + /* enum: The VNI input to the conntrack lookup will be the VLAN IDs from both 621 + * VLAN tags (outermost in bottom 12 bits, innermost in top 12 bits). 622 + */ 623 + #define MAE_CT_VNI_MODE_2VLAN 0x3 624 + 625 + /* MAE_FIELD enum: NB: this enum shares namespace with the support status enum. 626 + */ 627 + /* enum: Source mport upon entering the MAE. */ 628 + #define MAE_FIELD_INGRESS_PORT 0x0 629 + #define MAE_FIELD_MARK 0x1 /* enum */ 630 + /* enum: Table ID used in action rule. Initially zero, can be changed in action 631 + * rule response. 632 + */ 633 + #define MAE_FIELD_RECIRC_ID 0x2 634 + #define MAE_FIELD_IS_IP_FRAG 0x3 /* enum */ 635 + #define MAE_FIELD_DO_CT 0x4 /* enum */ 636 + #define MAE_FIELD_CT_HIT 0x5 /* enum */ 637 + /* enum: Undefined unless CT_HIT=1. */ 638 + #define MAE_FIELD_CT_MARK 0x6 639 + /* enum: Undefined unless DO_CT=1. */ 640 + #define MAE_FIELD_CT_DOMAIN 0x7 641 + /* enum: Undefined unless CT_HIT=1. */ 642 + #define MAE_FIELD_CT_PRIVATE_FLAGS 0x8 643 + /* enum: 1 if the packet ingressed the NIC from one of the MACs, else 0. */ 644 + #define MAE_FIELD_IS_FROM_NETWORK 0x9 645 + /* enum: 1 if the packet has 1 or more VLAN tags, else 0. */ 646 + #define MAE_FIELD_HAS_OVLAN 0xa 647 + /* enum: 1 if the packet has 2 or more VLAN tags, else 0. */ 648 + #define MAE_FIELD_HAS_IVLAN 0xb 649 + /* enum: 1 if the outer packet has 1 or more VLAN tags, else 0; only present 650 + * when encap 651 + */ 652 + #define MAE_FIELD_ENC_HAS_OVLAN 0xc 653 + /* enum: 1 if the outer packet has 2 or more VLAN tags, else 0; only present 654 + * when encap 655 + */ 656 + #define MAE_FIELD_ENC_HAS_IVLAN 0xd 657 + /* enum: Packet is IP fragment */ 658 + #define MAE_FIELD_ENC_IP_FRAG 0xe 659 + #define MAE_FIELD_ETHER_TYPE 0x21 /* enum */ 660 + #define MAE_FIELD_VLAN0_TCI 0x22 /* enum */ 661 + #define MAE_FIELD_VLAN0_PROTO 0x23 /* enum */ 662 + #define MAE_FIELD_VLAN1_TCI 0x24 /* enum */ 663 + #define MAE_FIELD_VLAN1_PROTO 0x25 /* enum */ 664 + /* enum: Inner when encap */ 665 + #define MAE_FIELD_ETH_SADDR 0x28 666 + /* enum: Inner when encap */ 667 + #define MAE_FIELD_ETH_DADDR 0x29 668 + /* enum: Inner when encap. NB: IPv4 and IPv6 fields are mutually exclusive. */ 669 + #define MAE_FIELD_SRC_IP4 0x2a 670 + /* enum: Inner when encap */ 671 + #define MAE_FIELD_SRC_IP6 0x2b 672 + /* enum: Inner when encap */ 673 + #define MAE_FIELD_DST_IP4 0x2c 674 + /* enum: Inner when encap */ 675 + #define MAE_FIELD_DST_IP6 0x2d 676 + /* enum: Inner when encap */ 677 + #define MAE_FIELD_IP_PROTO 0x2e 678 + /* enum: Inner when encap */ 679 + #define MAE_FIELD_IP_TOS 0x2f 680 + /* enum: Inner when encap */ 681 + #define MAE_FIELD_IP_TTL 0x30 682 + /* enum: Inner when encap TODO: how this is defined? The raw flags + 683 + * frag_offset from the packet, or some derived value more amenable to ternary 684 + * matching? TODO: there was a proposal for driver-allocation fields. The 685 + * driver would provide some instruction for how to extract given field values, 686 + * and would be given a field id in return. It could then use that field id in 687 + * its matches. This feels like it would be extremely hard to implement in 688 + * hardware, but I mention it for completeness. 689 + */ 690 + #define MAE_FIELD_IP_FLAGS 0x31 691 + /* enum: Ports (UDP, TCP) Inner when encap */ 692 + #define MAE_FIELD_L4_SPORT 0x32 693 + /* enum: Ports (UDP, TCP) Inner when encap */ 694 + #define MAE_FIELD_L4_DPORT 0x33 695 + /* enum: Inner when encap */ 696 + #define MAE_FIELD_TCP_FLAGS 0x34 697 + /* enum: TCP packet with any of SYN, FIN or RST flag set */ 698 + #define MAE_FIELD_TCP_SYN_FIN_RST 0x35 699 + /* enum: Packet is IP fragment with fragment offset 0 */ 700 + #define MAE_FIELD_IP_FIRST_FRAG 0x36 701 + /* enum: The type of encapsulated used for this packet. Value as per 702 + * ENCAP_TYPE_*. 703 + */ 704 + #define MAE_FIELD_ENCAP_TYPE 0x3f 705 + /* enum: The ID of the outer rule that marked this packet as encapsulated. 706 + * Useful for implicitly matching on outer fields. 707 + */ 708 + #define MAE_FIELD_OUTER_RULE_ID 0x40 709 + /* enum: Outer; only present when encap */ 710 + #define MAE_FIELD_ENC_ETHER_TYPE 0x41 711 + /* enum: Outer; only present when encap */ 712 + #define MAE_FIELD_ENC_VLAN0_TCI 0x42 713 + /* enum: Outer; only present when encap */ 714 + #define MAE_FIELD_ENC_VLAN0_PROTO 0x43 715 + /* enum: Outer; only present when encap */ 716 + #define MAE_FIELD_ENC_VLAN1_TCI 0x44 717 + /* enum: Outer; only present when encap */ 718 + #define MAE_FIELD_ENC_VLAN1_PROTO 0x45 719 + /* enum: Outer; only present when encap */ 720 + #define MAE_FIELD_ENC_ETH_SADDR 0x48 721 + /* enum: Outer; only present when encap */ 722 + #define MAE_FIELD_ENC_ETH_DADDR 0x49 723 + /* enum: Outer; only present when encap */ 724 + #define MAE_FIELD_ENC_SRC_IP4 0x4a 725 + /* enum: Outer; only present when encap */ 726 + #define MAE_FIELD_ENC_SRC_IP6 0x4b 727 + /* enum: Outer; only present when encap */ 728 + #define MAE_FIELD_ENC_DST_IP4 0x4c 729 + /* enum: Outer; only present when encap */ 730 + #define MAE_FIELD_ENC_DST_IP6 0x4d 731 + /* enum: Outer; only present when encap */ 732 + #define MAE_FIELD_ENC_IP_PROTO 0x4e 733 + /* enum: Outer; only present when encap */ 734 + #define MAE_FIELD_ENC_IP_TOS 0x4f 735 + /* enum: Outer; only present when encap */ 736 + #define MAE_FIELD_ENC_IP_TTL 0x50 737 + /* enum: Outer; only present when encap */ 738 + #define MAE_FIELD_ENC_IP_FLAGS 0x51 739 + /* enum: Outer; only present when encap */ 740 + #define MAE_FIELD_ENC_L4_SPORT 0x52 741 + /* enum: Outer; only present when encap */ 742 + #define MAE_FIELD_ENC_L4_DPORT 0x53 743 + /* enum: VNI (when VXLAN or GENEVE) VSID (when NVGRE) Bottom 24 bits of Key 744 + * (when L2GRE) Outer; only present when encap 745 + */ 746 + #define MAE_FIELD_ENC_VNET_ID 0x54 747 + 748 + /* MAE_MCDI_ENCAP_TYPE enum: Encapsulation type. Defines how the payload will 749 + * be parsed to an inner frame. Other values are reserved. Unknown values 750 + * should be treated same as NONE. (Values are not arbitrary - constrained by 751 + * table access ABI.) 752 + */ 753 + #define MAE_MCDI_ENCAP_TYPE_NONE 0x0 /* enum */ 754 + /* enum: Don't assume enum aligns with support bitmask... */ 755 + #define MAE_MCDI_ENCAP_TYPE_VXLAN 0x1 756 + #define MAE_MCDI_ENCAP_TYPE_NVGRE 0x2 /* enum */ 757 + #define MAE_MCDI_ENCAP_TYPE_GENEVE 0x3 /* enum */ 758 + #define MAE_MCDI_ENCAP_TYPE_L2GRE 0x4 /* enum */ 759 + 760 + /* MAE_MPORT_END enum: Selects which end of the logical link identified by an 761 + * MPORT_SELECTOR is targeted by an operation. 762 + */ 763 + /* enum: Selects the port on the MAE virtual switch */ 764 + #define MAE_MPORT_END_MAE 0x1 765 + /* enum: Selects the virtual NIC plugged into the MAE switch */ 766 + #define MAE_MPORT_END_VNIC 0x2 767 + 768 + /* MAE_COUNTER_TYPE enum: The datapath maintains several sets of counters, each 769 + * being associated with a different table. Note that the same counter ID may 770 + * be allocated by different counter blocks, so e.g. AR counter 42 is different 771 + * from CT counter 42. Generation counts are also type-specific. This value is 772 + * also present in the header of streaming counter packets, in the IDENTIFIER 773 + * field (see packetiser packet format definitions). 774 + */ 775 + /* enum: Action Rule counters - can be referenced in AR response. */ 776 + #define MAE_COUNTER_TYPE_AR 0x0 777 + /* enum: Conntrack counters - can be referenced in CT response. */ 778 + #define MAE_COUNTER_TYPE_CT 0x1 779 + /* enum: Outer Rule counters - can be referenced in OR response. */ 780 + #define MAE_COUNTER_TYPE_OR 0x2 781 + 782 + /* TABLE_ID enum: Unique IDs for tables. The 32-bit ID values have been 783 + * structured with bits [31:24] reserved (0), [23:16] indicating which major 784 + * block the tables belongs to (0=VNIC TX, none currently; 1=MAE; 2=VNIC RX), 785 + * [15:8] a unique ID within the block, and [7:0] reserved for future 786 + * variations of the same table. (All of the tables currently defined within 787 + * the streaming engines are listed here, but this does not imply that they are 788 + * all supported - MC_CMD_TABLE_LIST returns the list of actually supported 789 + * tables.) 790 + */ 791 + /* enum: Outer_Rule_Table in the MAE - refer to SF-123102-TC. */ 792 + #define TABLE_ID_OUTER_RULE_TABLE 0x10000 793 + /* enum: Outer_Rule_No_CT_Table in the MAE - refer to SF-123102-TC. */ 794 + #define TABLE_ID_OUTER_RULE_NO_CT_TABLE 0x10100 795 + /* enum: Mgmt_Filter_Table in the MAE - refer to SF-123102-TC. */ 796 + #define TABLE_ID_MGMT_FILTER_TABLE 0x10200 797 + /* enum: Conntrack_Table in the MAE - refer to SF-123102-TC. */ 798 + #define TABLE_ID_CONNTRACK_TABLE 0x10300 799 + /* enum: Action_Rule_Table in the MAE - refer to SF-123102-TC. */ 800 + #define TABLE_ID_ACTION_RULE_TABLE 0x10400 801 + /* enum: Mgroup_Default_Action_Set_Table in the MAE - refer to SF-123102-TC. */ 802 + #define TABLE_ID_MGROUP_DEFAULT_ACTION_SET_TABLE 0x10500 803 + /* enum: Encap_Hdr_Part1_Table in the MAE - refer to SF-123102-TC. */ 804 + #define TABLE_ID_ENCAP_HDR_PART1_TABLE 0x10600 805 + /* enum: Encap_Hdr_Part2_Table in the MAE - refer to SF-123102-TC. */ 806 + #define TABLE_ID_ENCAP_HDR_PART2_TABLE 0x10700 807 + /* enum: Replace_Src_MAC_Table in the MAE - refer to SF-123102-TC. */ 808 + #define TABLE_ID_REPLACE_SRC_MAC_TABLE 0x10800 809 + /* enum: Replace_Dst_MAC_Table in the MAE - refer to SF-123102-TC. */ 810 + #define TABLE_ID_REPLACE_DST_MAC_TABLE 0x10900 811 + /* enum: Dst_Mport_VC_Table in the MAE - refer to SF-123102-TC. */ 812 + #define TABLE_ID_DST_MPORT_VC_TABLE 0x10a00 813 + /* enum: LACP_LAG_Config_Table in the MAE - refer to SF-123102-TC. */ 814 + #define TABLE_ID_LACP_LAG_CONFIG_TABLE 0x10b00 815 + /* enum: LACP_Balance_Table in the MAE - refer to SF-123102-TC. */ 816 + #define TABLE_ID_LACP_BALANCE_TABLE 0x10c00 817 + /* enum: Dst_Mport_Host_Chan_Table in the MAE - refer to SF-123102-TC. */ 818 + #define TABLE_ID_DST_MPORT_HOST_CHAN_TABLE 0x10d00 819 + /* enum: VNIC_Rx_Encap_Table in VNIC Rx - refer to SF-123102-TC. */ 820 + #define TABLE_ID_VNIC_RX_ENCAP_TABLE 0x20000 821 + /* enum: Steering_Table in VNIC Rx - refer to SF-123102-TC. */ 822 + #define TABLE_ID_STEERING_TABLE 0x20100 823 + /* enum: RSS_Context_Table in VNIC Rx - refer to SF-123102-TC. */ 824 + #define TABLE_ID_RSS_CONTEXT_TABLE 0x20200 825 + /* enum: Indirection_Table in VNIC Rx - refer to SF-123102-TC. */ 826 + #define TABLE_ID_INDIRECTION_TABLE 0x20300 827 + 828 + /* TABLE_COMPRESSED_VLAN enum: Compressed VLAN TPID as used by some field 829 + * types; can be calculated by (((ether_type_msb >> 2) & 0x4) ^ 0x4) | 830 + * (ether_type_msb & 0x3); 831 + */ 832 + #define TABLE_COMPRESSED_VLAN_TPID_8100 0x5 /* enum */ 833 + #define TABLE_COMPRESSED_VLAN_TPID_88A8 0x4 /* enum */ 834 + #define TABLE_COMPRESSED_VLAN_TPID_9100 0x1 /* enum */ 835 + #define TABLE_COMPRESSED_VLAN_TPID_9200 0x2 /* enum */ 836 + #define TABLE_COMPRESSED_VLAN_TPID_9300 0x3 /* enum */ 837 + 838 + /* TABLE_NAT_DIR enum: NAT direction. */ 839 + #define TABLE_NAT_DIR_SOURCE 0x0 /* enum */ 840 + #define TABLE_NAT_DIR_DEST 0x1 /* enum */ 841 + 842 + /* TABLE_RSS_KEY_MODE enum: Defines how the value for Toeplitz hashing for RSS 843 + * is constructed as a concatenation (indicated here by "++") of packet header 844 + * fields. 845 + */ 846 + /* enum: IP src addr ++ IP dst addr */ 847 + #define TABLE_RSS_KEY_MODE_SA_DA 0x0 848 + /* enum: IP src addr ++ IP dst addr ++ TCP/UDP src port ++ TCP/UDP dst port */ 849 + #define TABLE_RSS_KEY_MODE_SA_DA_SP_DP 0x1 850 + /* enum: IP src addr */ 851 + #define TABLE_RSS_KEY_MODE_SA 0x2 852 + /* enum: IP dst addr */ 853 + #define TABLE_RSS_KEY_MODE_DA 0x3 854 + /* enum: IP src addr ++ TCP/UDP src port */ 855 + #define TABLE_RSS_KEY_MODE_SA_SP 0x4 856 + /* enum: IP dest addr ++ TCP dest port */ 857 + #define TABLE_RSS_KEY_MODE_DA_DP 0x5 858 + /* enum: Nothing (produces input of 0, resulting in output hash of 0) */ 859 + #define TABLE_RSS_KEY_MODE_NONE 0x7 860 + 861 + /* TABLE_RSS_SPREAD_MODE enum: RSS spreading mode. */ 862 + /* enum: RSS uses Indirection_Table lookup. */ 863 + #define TABLE_RSS_SPREAD_MODE_INDIRECTION 0x0 864 + /* enum: RSS uses even spreading calculation. */ 865 + #define TABLE_RSS_SPREAD_MODE_EVEN 0x1 866 + 867 + /* TABLE_FIELD_ID enum: Unique IDs for fields. Related concepts have been 868 + * loosely grouped together into blocks with gaps for expansion, but the values 869 + * are arbitrary. Field IDs are not specific to particular tables, and in some 870 + * cases this sharing means that they are not used with the exact names of the 871 + * corresponding table definitions in SF-123102-TC; however, the mapping should 872 + * still be clear. The intent is that a list of fields, with their associated 873 + * bit widths and semantics version code, unambiguously defines the semantics 874 + * of the fields in a key or response. (Again, this list includes all of the 875 + * fields currently defined within the streaming engines, but only a subset may 876 + * actually be used by the supported list of tables.) 877 + */ 878 + /* enum: May appear multiple times within a key or response, and indicates that 879 + * the field is unused and should be set to 0 (or masked out if permitted by 880 + * the MASK_VALUE for this field). 881 + */ 882 + #define TABLE_FIELD_ID_UNUSED 0x0 883 + /* enum: Source m-port (a full m-port label). */ 884 + #define TABLE_FIELD_ID_SRC_MPORT 0x1 885 + /* enum: Destination m-port (a full m-port label). */ 886 + #define TABLE_FIELD_ID_DST_MPORT 0x2 887 + /* enum: Source m-group ID. */ 888 + #define TABLE_FIELD_ID_SRC_MGROUP_ID 0x3 889 + /* enum: Physical network port ID (or m-port ID; same thing, for physical 890 + * network ports). 891 + */ 892 + #define TABLE_FIELD_ID_NETWORK_PORT_ID 0x4 893 + /* enum: True if packet arrived via network port, false if it arrived via host. 894 + */ 895 + #define TABLE_FIELD_ID_IS_FROM_NETWORK 0x5 896 + /* enum: Full virtual channel from capsule header. */ 897 + #define TABLE_FIELD_ID_CH_VC 0x6 898 + /* enum: Low bits of virtual channel from capsule header. */ 899 + #define TABLE_FIELD_ID_CH_VC_LOW 0x7 900 + /* enum: User mark value in metadata and packet prefix. */ 901 + #define TABLE_FIELD_ID_USER_MARK 0x8 902 + /* enum: User flag value in metadata and packet prefix. */ 903 + #define TABLE_FIELD_ID_USER_FLAG 0x9 904 + /* enum: Counter ID associated with a response. All-bits-1 is a null value to 905 + * suppress counting. 906 + */ 907 + #define TABLE_FIELD_ID_COUNTER_ID 0xa 908 + /* enum: Discriminator which may be set by plugins in some lookup keys; this 909 + * allows plugins to make a reinterpretation of packet fields in these keys 910 + * without clashing with the normal interpretation. 911 + */ 912 + #define TABLE_FIELD_ID_DISCRIM 0xb 913 + /* enum: Destination MAC address. The mapping from bytes in a frame to the 914 + * 48-bit value for this field is in network order, i.e. a MAC address of 915 + * AA:BB:CC:DD:EE:FF becomes a 48-bit value of 0xAABBCCDDEEFF. 916 + */ 917 + #define TABLE_FIELD_ID_DST_MAC 0x14 918 + /* enum: Source MAC address (see notes for DST_MAC). */ 919 + #define TABLE_FIELD_ID_SRC_MAC 0x15 920 + /* enum: Outer VLAN tag TPID, compressed to an enumeration. */ 921 + #define TABLE_FIELD_ID_OVLAN_TPID_COMPRESSED 0x16 922 + /* enum: Full outer VLAN tag TCI (16 bits). */ 923 + #define TABLE_FIELD_ID_OVLAN 0x17 924 + /* enum: Outer VLAN ID (least significant 12 bits of full 16-bit TCI) only. */ 925 + #define TABLE_FIELD_ID_OVLAN_VID 0x18 926 + /* enum: Inner VLAN tag TPID, compressed to an enumeration. */ 927 + #define TABLE_FIELD_ID_IVLAN_TPID_COMPRESSED 0x19 928 + /* enum: Full inner VLAN tag TCI (16 bits). */ 929 + #define TABLE_FIELD_ID_IVLAN 0x1a 930 + /* enum: Inner VLAN ID (least significant 12 bits of full 16-bit TCI) only. */ 931 + #define TABLE_FIELD_ID_IVLAN_VID 0x1b 932 + /* enum: Ethertype. */ 933 + #define TABLE_FIELD_ID_ETHER_TYPE 0x1c 934 + /* enum: Source IP address, either IPv4 or IPv6. The mapping from bytes in a 935 + * frame to the 128-bit value for this field is in network order, with IPv4 936 + * addresses assumed to have 12 bytes of trailing zeroes. i.e. the IPv6 address 937 + * [2345::6789:ABCD] is 0x2345000000000000000000006789ABCD; the IPv4 address 938 + * 192.168.1.2 is 0xC0A80102000000000000000000000000. 939 + */ 940 + #define TABLE_FIELD_ID_SRC_IP 0x1d 941 + /* enum: Destination IP address (see notes for SRC_IP). */ 942 + #define TABLE_FIELD_ID_DST_IP 0x1e 943 + /* enum: IPv4 Type-of-Service or IPv6 Traffic Class field. */ 944 + #define TABLE_FIELD_ID_IP_TOS 0x1f 945 + /* enum: IP Protocol. */ 946 + #define TABLE_FIELD_ID_IP_PROTO 0x20 947 + /* enum: Layer 4 source port. */ 948 + #define TABLE_FIELD_ID_SRC_PORT 0x21 949 + /* enum: Layer 4 destination port. */ 950 + #define TABLE_FIELD_ID_DST_PORT 0x22 951 + /* enum: TCP flags. */ 952 + #define TABLE_FIELD_ID_TCP_FLAGS 0x23 953 + /* enum: Virtual Network Identifier (VXLAN) or Virtual Session ID (NVGRE). */ 954 + #define TABLE_FIELD_ID_VNI 0x24 955 + /* enum: True if packet has any tunnel encapsulation header. */ 956 + #define TABLE_FIELD_ID_HAS_ENCAP 0x32 957 + /* enum: True if encap header has an outer VLAN tag. */ 958 + #define TABLE_FIELD_ID_HAS_ENC_OVLAN 0x33 959 + /* enum: True if encap header has an inner VLAN tag. */ 960 + #define TABLE_FIELD_ID_HAS_ENC_IVLAN 0x34 961 + /* enum: True if encap header is some sort of IP. */ 962 + #define TABLE_FIELD_ID_HAS_ENC_IP 0x35 963 + /* enum: True if encap header is specifically IPv4. */ 964 + #define TABLE_FIELD_ID_HAS_ENC_IP4 0x36 965 + /* enum: True if encap header is UDP. */ 966 + #define TABLE_FIELD_ID_HAS_ENC_UDP 0x37 967 + /* enum: True if only/inner frame has an outer VLAN tag. */ 968 + #define TABLE_FIELD_ID_HAS_OVLAN 0x38 969 + /* enum: True if only/inner frame has an inner VLAN tag. */ 970 + #define TABLE_FIELD_ID_HAS_IVLAN 0x39 971 + /* enum: True if only/inner frame is some sort of IP. */ 972 + #define TABLE_FIELD_ID_HAS_IP 0x3a 973 + /* enum: True if only/inner frame has a recognised L4 IP protocol (TCP or UDP). 974 + */ 975 + #define TABLE_FIELD_ID_HAS_L4 0x3b 976 + /* enum: True if only/inner frame is an IP fragment. */ 977 + #define TABLE_FIELD_ID_IP_FRAG 0x3c 978 + /* enum: True if only/inner frame is the first IP fragment (fragment offset 0). 979 + */ 980 + #define TABLE_FIELD_ID_IP_FIRST_FRAG 0x3d 981 + /* enum: True if only/inner frame has an IP Time-To-Live of <= 1. (Note: the 982 + * implementation calls this "ip_ttl_is_one" but does in fact match packets 983 + * with TTL=0 - which we shouldn't be seeing! - as well.) 984 + */ 985 + #define TABLE_FIELD_ID_IP_TTL_LE_ONE 0x3e 986 + /* enum: True if only/inner frame has any of TCP SYN, FIN or RST flags set. */ 987 + #define TABLE_FIELD_ID_TCP_INTERESTING_FLAGS 0x3f 988 + /* enum: Plugin channel selection. */ 989 + #define TABLE_FIELD_ID_RDP_PL_CHAN 0x50 990 + /* enum: Enable update of CH_ROUTE_RDP_C_PL route bit. */ 991 + #define TABLE_FIELD_ID_RDP_C_PL_EN 0x51 992 + /* enum: New value of CH_ROUTE_RDP_C_PL route bit. */ 993 + #define TABLE_FIELD_ID_RDP_C_PL 0x52 994 + /* enum: Enable update of CH_ROUTE_RDP_D_PL route bit. */ 995 + #define TABLE_FIELD_ID_RDP_D_PL_EN 0x53 996 + /* enum: New value of CH_ROUTE_RDP_D_PL route bit. */ 997 + #define TABLE_FIELD_ID_RDP_D_PL 0x54 998 + /* enum: Enable update of CH_ROUTE_RDP_OUT_HOST_CHAN route bit. */ 999 + #define TABLE_FIELD_ID_RDP_OUT_HOST_CHAN_EN 0x55 1000 + /* enum: New value of CH_ROUTE_RDP_OUT_HOST_CHAN route bit. */ 1001 + #define TABLE_FIELD_ID_RDP_OUT_HOST_CHAN 0x56 1002 + /* enum: Recirculation ID for lookup sequences with two action rule lookups. */ 1003 + #define TABLE_FIELD_ID_RECIRC_ID 0x64 1004 + /* enum: Domain ID passed to conntrack and action rule lookups. */ 1005 + #define TABLE_FIELD_ID_DOMAIN 0x65 1006 + /* enum: Construction mode for encap_tunnel_id - see MAE_CT_VNI_MODE enum. */ 1007 + #define TABLE_FIELD_ID_CT_VNI_MODE 0x66 1008 + /* enum: True to inhibit conntrack lookup if TCP SYN, FIN or RST flag is set. 1009 + */ 1010 + #define TABLE_FIELD_ID_CT_TCP_FLAGS_INHIBIT 0x67 1011 + /* enum: True to do conntrack lookups for IPv4 TCP packets. */ 1012 + #define TABLE_FIELD_ID_DO_CT_IP4_TCP 0x68 1013 + /* enum: True to do conntrack lookups for IPv4 UDP packets. */ 1014 + #define TABLE_FIELD_ID_DO_CT_IP4_UDP 0x69 1015 + /* enum: True to do conntrack lookups for IPv6 TCP packets. */ 1016 + #define TABLE_FIELD_ID_DO_CT_IP6_TCP 0x6a 1017 + /* enum: True to do conntrack lookups for IPv6 UDP packets. */ 1018 + #define TABLE_FIELD_ID_DO_CT_IP6_UDP 0x6b 1019 + /* enum: Outer rule identifier. */ 1020 + #define TABLE_FIELD_ID_OUTER_RULE_ID 0x6c 1021 + /* enum: Encapsulation type - see MAE_MCDI_ENCAP_TYPE enum. */ 1022 + #define TABLE_FIELD_ID_ENCAP_TYPE 0x6d 1023 + /* enum: Encap tunnel ID for conntrack lookups from VNI, VLAN tag(s), or 0, 1024 + * depending on CT_VNI_MODE. 1025 + */ 1026 + #define TABLE_FIELD_ID_ENCAP_TUNNEL_ID 0x78 1027 + /* enum: A conntrack entry identifier, passed to plugins. */ 1028 + #define TABLE_FIELD_ID_CT_ENTRY_ID 0x79 1029 + /* enum: Either source or destination NAT replacement port. */ 1030 + #define TABLE_FIELD_ID_NAT_PORT 0x7a 1031 + /* enum: Either source or destination NAT replacement IPv4 address. Note that 1032 + * this is specifically an IPv4 address (IPv6 is not supported for NAT), with 1033 + * byte mapped to a 32-bit value in network order, i.e. the IPv4 address 1034 + * 192.168.1.2 is the value 0xC0A80102. 1035 + */ 1036 + #define TABLE_FIELD_ID_NAT_IP 0x7b 1037 + /* enum: NAT direction: 0=>source, 1=>destination. */ 1038 + #define TABLE_FIELD_ID_NAT_DIR 0x7c 1039 + /* enum: Conntrack mark value, passed to action rule lookup. Note that this is 1040 + * not related to the "user mark" in the metadata / packet prefix. 1041 + */ 1042 + #define TABLE_FIELD_ID_CT_MARK 0x7d 1043 + /* enum: Private flags for conntrack, passed to action rule lookup. */ 1044 + #define TABLE_FIELD_ID_CT_PRIV_FLAGS 0x7e 1045 + /* enum: True if the conntrack lookup resulted in a hit. */ 1046 + #define TABLE_FIELD_ID_CT_HIT 0x7f 1047 + /* enum: True to suppress delivery when source and destination m-ports match. 1048 + */ 1049 + #define TABLE_FIELD_ID_SUPPRESS_SELF_DELIVERY 0x8c 1050 + /* enum: True to perform tunnel decapsulation. */ 1051 + #define TABLE_FIELD_ID_DO_DECAP 0x8d 1052 + /* enum: True to copy outer frame DSCP to inner on decap. */ 1053 + #define TABLE_FIELD_ID_DECAP_DSCP_COPY 0x8e 1054 + /* enum: True to map outer frame ECN to inner on decap, by RFC 6040 rules. */ 1055 + #define TABLE_FIELD_ID_DECAP_ECN_RFC6040 0x8f 1056 + /* enum: True to replace DSCP field. */ 1057 + #define TABLE_FIELD_ID_DO_REPLACE_DSCP 0x90 1058 + /* enum: True to replace ECN field. */ 1059 + #define TABLE_FIELD_ID_DO_REPLACE_ECN 0x91 1060 + /* enum: True to decrement IP Time-To-Live. */ 1061 + #define TABLE_FIELD_ID_DO_DECR_IP_TTL 0x92 1062 + /* enum: True to replace source MAC address. */ 1063 + #define TABLE_FIELD_ID_DO_SRC_MAC 0x93 1064 + /* enum: True to replace destination MAC address. */ 1065 + #define TABLE_FIELD_ID_DO_DST_MAC 0x94 1066 + /* enum: Number of VLAN tags to pop. Valid values are 0, 1, or 2. */ 1067 + #define TABLE_FIELD_ID_DO_VLAN_POP 0x95 1068 + /* enum: Number of VLANs tags to push. Valid values are 0, 1, or 2. */ 1069 + #define TABLE_FIELD_ID_DO_VLAN_PUSH 0x96 1070 + /* enum: True to count this packet. */ 1071 + #define TABLE_FIELD_ID_DO_COUNT 0x97 1072 + /* enum: True to perform tunnel encapsulation. */ 1073 + #define TABLE_FIELD_ID_DO_ENCAP 0x98 1074 + /* enum: True to copy inner frame DSCP to outer on encap. */ 1075 + #define TABLE_FIELD_ID_ENCAP_DSCP_COPY 0x99 1076 + /* enum: True to copy inner frame ECN to outer on encap. */ 1077 + #define TABLE_FIELD_ID_ENCAP_ECN_COPY 0x9a 1078 + /* enum: True to deliver the packet (otherwise it is dropped). */ 1079 + #define TABLE_FIELD_ID_DO_DELIVER 0x9b 1080 + /* enum: True to set the user flag in the metadata. */ 1081 + #define TABLE_FIELD_ID_DO_FLAG 0x9c 1082 + /* enum: True to update the user mark in the metadata. */ 1083 + #define TABLE_FIELD_ID_DO_MARK 0x9d 1084 + /* enum: True to override the capsule virtual channel for network deliveries. 1085 + */ 1086 + #define TABLE_FIELD_ID_DO_SET_NET_CHAN 0x9e 1087 + /* enum: True to override the reported source m-port for host deliveries. */ 1088 + #define TABLE_FIELD_ID_DO_SET_SRC_MPORT 0x9f 1089 + /* enum: Encap header ID for DO_ENCAP, indexing Encap_Hdr_Part1/2_Table. */ 1090 + #define TABLE_FIELD_ID_ENCAP_HDR_ID 0xaa 1091 + /* enum: New DSCP value for DO_REPLACE_DSCP. */ 1092 + #define TABLE_FIELD_ID_DSCP_VALUE 0xab 1093 + /* enum: If DO_REPLACE_ECN is set, the new value for the ECN field. If 1094 + * DO_REPLACE_ECN is not set, ECN_CONTROL[0] and ECN_CONTROL[1] are set to 1095 + * request remapping of ECT0 and ECT1 ECN codepoints respectively to CE. 1096 + */ 1097 + #define TABLE_FIELD_ID_ECN_CONTROL 0xac 1098 + /* enum: Source MAC ID for DO_SRC_MAC, indexing Replace_Src_MAC_Table. */ 1099 + #define TABLE_FIELD_ID_SRC_MAC_ID 0xad 1100 + /* enum: Destination MAC ID for DO_DST_MAC, indexing Replace_Dst_MAC_Table. */ 1101 + #define TABLE_FIELD_ID_DST_MAC_ID 0xae 1102 + /* enum: Parameter for either DO_SET_NET_CHAN (only bottom 6 bits used in this 1103 + * case) or DO_SET_SRC_MPORT. 1104 + */ 1105 + #define TABLE_FIELD_ID_REPORTED_SRC_MPORT_OR_NET_CHAN 0xaf 1106 + /* enum: 64-byte chunk of added encapsulation header. */ 1107 + #define TABLE_FIELD_ID_CHUNK64 0xb4 1108 + /* enum: 32-byte chunk of added encapsulation header. */ 1109 + #define TABLE_FIELD_ID_CHUNK32 0xb5 1110 + /* enum: 16-byte chunk of added encapsulation header. */ 1111 + #define TABLE_FIELD_ID_CHUNK16 0xb6 1112 + /* enum: 8-byte chunk of added encapsulation header. */ 1113 + #define TABLE_FIELD_ID_CHUNK8 0xb7 1114 + /* enum: 4-byte chunk of added encapsulation header. */ 1115 + #define TABLE_FIELD_ID_CHUNK4 0xb8 1116 + /* enum: 2-byte chunk of added encapsulation header. */ 1117 + #define TABLE_FIELD_ID_CHUNK2 0xb9 1118 + /* enum: Added encapsulation header length in words. */ 1119 + #define TABLE_FIELD_ID_HDR_LEN_W 0xba 1120 + /* enum: Static value for layer 2/3 LACP hash of the encapsulation header. */ 1121 + #define TABLE_FIELD_ID_ENC_LACP_HASH_L23 0xbb 1122 + /* enum: Static value for layer 4 LACP hash of the encapsulation header. */ 1123 + #define TABLE_FIELD_ID_ENC_LACP_HASH_L4 0xbc 1124 + /* enum: True to use the static ENC_LACP_HASH values for the encap header 1125 + * instead of the calculated values for the inner frame when delivering a newly 1126 + * encapsulated packet to a LAG m-port. 1127 + */ 1128 + #define TABLE_FIELD_ID_USE_ENC_LACP_HASHES 0xbd 1129 + /* enum: True to trigger conntrack from first action rule lookup (AR=>CT=>AR 1130 + * sequence). 1131 + */ 1132 + #define TABLE_FIELD_ID_DO_CT 0xc8 1133 + /* enum: True to perform NAT using parameters from conntrack lookup response. 1134 + */ 1135 + #define TABLE_FIELD_ID_DO_NAT 0xc9 1136 + /* enum: True to trigger recirculated action rule lookup (AR=>AR sequence). */ 1137 + #define TABLE_FIELD_ID_DO_RECIRC 0xca 1138 + /* enum: Next action set payload ID for replay. The null value is all-1-bits. 1139 + */ 1140 + #define TABLE_FIELD_ID_NEXT_ACTION_SET_PAYLOAD 0xcb 1141 + /* enum: Next action set row ID for replay. The null value is all-1-bits. */ 1142 + #define TABLE_FIELD_ID_NEXT_ACTION_SET_ROW 0xcc 1143 + /* enum: Action set payload ID for additional delivery to management CPU. The 1144 + * null value is all-1-bits. 1145 + */ 1146 + #define TABLE_FIELD_ID_MC_ACTION_SET_PAYLOAD 0xcd 1147 + /* enum: Action set row ID for additional delivery to management CPU. The null 1148 + * value is all-1-bits. 1149 + */ 1150 + #define TABLE_FIELD_ID_MC_ACTION_SET_ROW 0xce 1151 + /* enum: True to include layer 4 in LACP hash on delivery to a LAG m-port. */ 1152 + #define TABLE_FIELD_ID_LACP_INC_L4 0xdc 1153 + /* enum: True to request that LACP is performed by a plugin. */ 1154 + #define TABLE_FIELD_ID_LACP_PLUGIN 0xdd 1155 + /* enum: LACP_Balance_Table base address divided by 64. */ 1156 + #define TABLE_FIELD_ID_BAL_TBL_BASE_DIV64 0xde 1157 + /* enum: Length of balance table region: 0=>64, 1=>128, 2=>256. */ 1158 + #define TABLE_FIELD_ID_BAL_TBL_LEN_ID 0xdf 1159 + /* enum: UDP port to match for UDP-based encapsulations; required to be 0 for 1160 + * other encapsulation types. 1161 + */ 1162 + #define TABLE_FIELD_ID_UDP_PORT 0xe6 1163 + /* enum: True to perform RSS based on outer fields rather than inner fields. */ 1164 + #define TABLE_FIELD_ID_RSS_ON_OUTER 0xe7 1165 + /* enum: True to perform steering table lookup on outer fields rather than 1166 + * inner fields. 1167 + */ 1168 + #define TABLE_FIELD_ID_STEER_ON_OUTER 0xe8 1169 + /* enum: Destination queue ID for host delivery. */ 1170 + #define TABLE_FIELD_ID_DST_QID 0xf0 1171 + /* enum: True to drop this packet. */ 1172 + #define TABLE_FIELD_ID_DROP 0xf1 1173 + /* enum: True to strip outer VLAN tag from this packet. */ 1174 + #define TABLE_FIELD_ID_VLAN_STRIP 0xf2 1175 + /* enum: True to override the user mark field with the supplied USER_MARK, or 1176 + * false to bitwise-OR the USER_MARK into it. 1177 + */ 1178 + #define TABLE_FIELD_ID_MARK_OVERRIDE 0xf3 1179 + /* enum: True to override the user flag field with the supplied USER_FLAG, or 1180 + * false to bitwise-OR the USER_FLAG into it. 1181 + */ 1182 + #define TABLE_FIELD_ID_FLAG_OVERRIDE 0xf4 1183 + /* enum: RSS context ID, indexing the RSS_Context_Table. */ 1184 + #define TABLE_FIELD_ID_RSS_CTX_ID 0xfa 1185 + /* enum: True to enable RSS. */ 1186 + #define TABLE_FIELD_ID_RSS_EN 0xfb 1187 + /* enum: Toeplitz hash key. */ 1188 + #define TABLE_FIELD_ID_KEY 0xfc 1189 + /* enum: Key mode for IPv4 TCP packets - see TABLE_RSS_KEY_MODE enum. */ 1190 + #define TABLE_FIELD_ID_TCP_V4_KEY_MODE 0xfd 1191 + /* enum: Key mode for IPv6 TCP packets - see TABLE_RSS_KEY_MODE enum. */ 1192 + #define TABLE_FIELD_ID_TCP_V6_KEY_MODE 0xfe 1193 + /* enum: Key mode for IPv4 UDP packets - see TABLE_RSS_KEY_MODE enum. */ 1194 + #define TABLE_FIELD_ID_UDP_V4_KEY_MODE 0xff 1195 + /* enum: Key mode for IPv6 UDP packets - see TABLE_RSS_KEY_MODE enum. */ 1196 + #define TABLE_FIELD_ID_UDP_V6_KEY_MODE 0x100 1197 + /* enum: Key mode for other IPv4 packets - see TABLE_RSS_KEY_MODE enum. */ 1198 + #define TABLE_FIELD_ID_OTHER_V4_KEY_MODE 0x101 1199 + /* enum: Key mode for other IPv6 packets - see TABLE_RSS_KEY_MODE enum. */ 1200 + #define TABLE_FIELD_ID_OTHER_V6_KEY_MODE 0x102 1201 + /* enum: Spreading mode - 0=>indirection; 1=>even. */ 1202 + #define TABLE_FIELD_ID_SPREAD_MODE 0x103 1203 + /* enum: For indirection spreading mode, the base address of a region within 1204 + * the Indirection_Table. For even spreading mode, the number of queues to 1205 + * spread across (only values 1-255 are valid for this mode). 1206 + */ 1207 + #define TABLE_FIELD_ID_INDIR_TBL_BASE 0x104 1208 + /* enum: For indirection spreading mode, identifies the length of a region 1209 + * within the Indirection_Table, where length = 32 << len_id. Must be set to 0 1210 + * for even spreading mode. 1211 + */ 1212 + #define TABLE_FIELD_ID_INDIR_TBL_LEN_ID 0x105 1213 + /* enum: An offset to be applied to the base destination queue ID. */ 1214 + #define TABLE_FIELD_ID_INDIR_OFFSET 0x106 1215 + 1216 + /* MCDI_EVENT structuredef: The structure of an MCDI_EVENT on Siena/EF10/EF100 1217 + * platforms 1218 + */ 242 1219 #define MCDI_EVENT_LEN 8 243 1220 #define MCDI_EVENT_CONT_LBN 32 244 1221 #define MCDI_EVENT_CONT_WIDTH 1 ··· 1164 447 #define MCDI_EVENT_TX_ERR_TYPE_OFST 0 1165 448 #define MCDI_EVENT_TX_ERR_TYPE_LBN 12 1166 449 #define MCDI_EVENT_TX_ERR_TYPE_WIDTH 4 1167 - /* enum: Descriptor loader reported failure */ 450 + /* enum: Descriptor loader reported failure. Specific to EF10-family NICs. */ 1168 451 #define MCDI_EVENT_TX_ERR_DL_FAIL 0x1 1169 - /* enum: Descriptor ring empty and no EOP seen for packet */ 452 + /* enum: Descriptor ring empty and no EOP seen for packet. Specific to 453 + * EF10-family NICs 454 + */ 1170 455 #define MCDI_EVENT_TX_ERR_NO_EOP 0x2 1171 - /* enum: Overlength packet */ 456 + /* enum: Overlength packet. Specific to EF10-family NICs. */ 1172 457 #define MCDI_EVENT_TX_ERR_2BIG 0x3 1173 - /* enum: Malformed option descriptor */ 458 + /* enum: Malformed option descriptor. Specific to EF10-family NICs. */ 1174 459 #define MCDI_EVENT_TX_BAD_OPTDESC 0x5 1175 - /* enum: Option descriptor part way through a packet */ 460 + /* enum: Option descriptor part way through a packet. Specific to EF10-family 461 + * NICs. 462 + */ 1176 463 #define MCDI_EVENT_TX_OPT_IN_PKT 0x8 1177 - /* enum: DMA or PIO data access error */ 464 + /* enum: DMA or PIO data access error. Specific to EF10-family NICs */ 1178 465 #define MCDI_EVENT_TX_ERR_BAD_DMA_OR_PIO 0x9 1179 466 #define MCDI_EVENT_TX_ERR_INFO_OFST 0 1180 467 #define MCDI_EVENT_TX_ERR_INFO_LBN 16 ··· 1494 773 * SF-122927-TC for details. 1495 774 */ 1496 775 #define MCDI_EVENT_CODE_DESC_PROXY_FUNC_DRIVER_ATTACH 0x26 776 + /* enum: Notification that the mport journal has changed since it was last read 777 + * and updates can be read using the MC_CMD_MAE_MPORT_READ_JOURNAL command. The 778 + * firmware may moderate the events so that an event is not sent for every 779 + * change to the journal. 780 + */ 781 + #define MCDI_EVENT_CODE_MPORT_JOURNAL_CHANGE 0x27 1497 782 /* enum: Artificial event generated by host and posted via MC for test 1498 783 * purposes. 1499 784 */ ··· 1797 1070 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_OFST 8 1798 1071 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LEN 8 1799 1072 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LO_OFST 8 1073 + #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LO_LEN 4 1074 + #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LO_LBN 64 1075 + #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LO_WIDTH 32 1800 1076 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_HI_OFST 12 1077 + #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_HI_LEN 4 1078 + #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_HI_LBN 96 1079 + #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_HI_WIDTH 32 1801 1080 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_MINNUM 1 1802 1081 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_MAXNUM 30 1803 1082 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_MAXNUM_MCDI2 126 ··· 2215 1482 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_OFST 260 2216 1483 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LEN 8 2217 1484 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_OFST 260 1485 + #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_LEN 4 1486 + #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_LBN 2080 1487 + #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_WIDTH 32 2218 1488 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_OFST 264 1489 + #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_LEN 4 1490 + #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_LBN 2112 1491 + #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_WIDTH 32 2219 1492 /* MC firmware version number */ 2220 1493 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_OFST 268 2221 1494 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LEN 8 2222 1495 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_OFST 268 1496 + #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_LEN 4 1497 + #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_LBN 2144 1498 + #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_WIDTH 32 2223 1499 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_OFST 272 1500 + #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_LEN 4 1501 + #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_LBN 2176 1502 + #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_WIDTH 32 2224 1503 /* MC firmware security level */ 2225 1504 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_SECURITY_LEVEL_OFST 276 2226 1505 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_SECURITY_LEVEL_LEN 4 ··· 2316 1571 #define MC_CMD_GET_VERSION_OUT_VERSION_OFST 24 2317 1572 #define MC_CMD_GET_VERSION_OUT_VERSION_LEN 8 2318 1573 #define MC_CMD_GET_VERSION_OUT_VERSION_LO_OFST 24 1574 + #define MC_CMD_GET_VERSION_OUT_VERSION_LO_LEN 4 1575 + #define MC_CMD_GET_VERSION_OUT_VERSION_LO_LBN 192 1576 + #define MC_CMD_GET_VERSION_OUT_VERSION_LO_WIDTH 32 2319 1577 #define MC_CMD_GET_VERSION_OUT_VERSION_HI_OFST 28 1578 + #define MC_CMD_GET_VERSION_OUT_VERSION_HI_LEN 4 1579 + #define MC_CMD_GET_VERSION_OUT_VERSION_HI_LBN 224 1580 + #define MC_CMD_GET_VERSION_OUT_VERSION_HI_WIDTH 32 2320 1581 2321 1582 /* MC_CMD_GET_VERSION_EXT_OUT msgresponse */ 2322 1583 #define MC_CMD_GET_VERSION_EXT_OUT_LEN 48 ··· 2338 1587 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_OFST 24 2339 1588 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LEN 8 2340 1589 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_OFST 24 1590 + #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_LEN 4 1591 + #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_LBN 192 1592 + #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_WIDTH 32 2341 1593 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_OFST 28 1594 + #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_LEN 4 1595 + #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_LBN 224 1596 + #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_WIDTH 32 2342 1597 /* extra info */ 2343 1598 #define MC_CMD_GET_VERSION_EXT_OUT_EXTRA_OFST 32 2344 1599 #define MC_CMD_GET_VERSION_EXT_OUT_EXTRA_LEN 16 ··· 2368 1611 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_OFST 24 2369 1612 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LEN 8 2370 1613 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_OFST 24 1614 + #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_LEN 4 1615 + #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_LBN 192 1616 + #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_WIDTH 32 2371 1617 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_OFST 28 1618 + #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_LEN 4 1619 + #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_LBN 224 1620 + #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_WIDTH 32 2372 1621 /* extra info */ 2373 1622 #define MC_CMD_GET_VERSION_V2_OUT_EXTRA_OFST 32 2374 1623 #define MC_CMD_GET_VERSION_V2_OUT_EXTRA_LEN 16 ··· 2396 1633 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 2397 1634 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 2398 1635 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 1636 + #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_HW_VERSION_PRESENT_OFST 48 1637 + #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_HW_VERSION_PRESENT_LBN 5 1638 + #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1 1639 + #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_FW_VERSION_PRESENT_OFST 48 1640 + #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_FW_VERSION_PRESENT_LBN 6 1641 + #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1 1642 + #define MC_CMD_GET_VERSION_V2_OUT_SOC_BOOT_VERSION_PRESENT_OFST 48 1643 + #define MC_CMD_GET_VERSION_V2_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7 1644 + #define MC_CMD_GET_VERSION_V2_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1 1645 + #define MC_CMD_GET_VERSION_V2_OUT_SOC_UBOOT_VERSION_PRESENT_OFST 48 1646 + #define MC_CMD_GET_VERSION_V2_OUT_SOC_UBOOT_VERSION_PRESENT_LBN 8 1647 + #define MC_CMD_GET_VERSION_V2_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1 1648 + #define MC_CMD_GET_VERSION_V2_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_OFST 48 1649 + #define MC_CMD_GET_VERSION_V2_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_LBN 9 1650 + #define MC_CMD_GET_VERSION_V2_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1 1651 + #define MC_CMD_GET_VERSION_V2_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_OFST 48 1652 + #define MC_CMD_GET_VERSION_V2_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_LBN 10 1653 + #define MC_CMD_GET_VERSION_V2_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1 1654 + #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_PRESENT_OFST 48 1655 + #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_PRESENT_LBN 11 1656 + #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_PRESENT_WIDTH 1 1657 + #define MC_CMD_GET_VERSION_V2_OUT_BOARD_VERSION_PRESENT_OFST 48 1658 + #define MC_CMD_GET_VERSION_V2_OUT_BOARD_VERSION_PRESENT_LBN 12 1659 + #define MC_CMD_GET_VERSION_V2_OUT_BOARD_VERSION_PRESENT_WIDTH 1 1660 + #define MC_CMD_GET_VERSION_V2_OUT_BUNDLE_VERSION_PRESENT_OFST 48 1661 + #define MC_CMD_GET_VERSION_V2_OUT_BUNDLE_VERSION_PRESENT_LBN 13 1662 + #define MC_CMD_GET_VERSION_V2_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1 2399 1663 /* MC firmware unique build ID (as binary SHA-1 value) */ 2400 1664 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_ID_OFST 52 2401 1665 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_ID_LEN 20 ··· 2440 1650 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_OFST 156 2441 1651 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LEN 8 2442 1652 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_OFST 156 1653 + #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_LEN 4 1654 + #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_LBN 1248 1655 + #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_WIDTH 32 2443 1656 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_OFST 160 1657 + #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_LEN 4 1658 + #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_LBN 1280 1659 + #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_WIDTH 32 2444 1660 /* The ID of the SUC chip. This is specific to the platform but typically 2445 1661 * indicates family, memory sizes etc. See SF-116728-SW for further details. 2446 1662 */ ··· 2460 1664 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_OFST 184 2461 1665 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LEN 8 2462 1666 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_OFST 184 1667 + #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_LEN 4 1668 + #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_LBN 1472 1669 + #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_WIDTH 32 2463 1670 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_OFST 188 1671 + #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_LEN 4 1672 + #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_LBN 1504 1673 + #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_WIDTH 32 2464 1674 /* FPGA version as three numbers. On Riverhead based systems this field uses 2465 1675 * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 2466 1676 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 ··· 2487 1685 /* Board serial number (as null-terminated US-ASCII string) */ 2488 1686 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_SERIAL_OFST 240 2489 1687 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_SERIAL_LEN 64 1688 + 1689 + /* MC_CMD_GET_VERSION_V3_OUT msgresponse: Extended response providing version 1690 + * information for all adapter components. For Riverhead based designs, base MC 1691 + * firmware version fields refer to NMC firmware, while CMC firmware data is in 1692 + * dedicated CMC fields. Flags indicate which data is present in the response 1693 + * (depending on which components exist on a particular adapter) 1694 + */ 1695 + #define MC_CMD_GET_VERSION_V3_OUT_LEN 328 1696 + /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 1697 + /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 1698 + /* Enum values, see field(s): */ 1699 + /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 1700 + #define MC_CMD_GET_VERSION_V3_OUT_PCOL_OFST 4 1701 + #define MC_CMD_GET_VERSION_V3_OUT_PCOL_LEN 4 1702 + /* 128bit mask of functions supported by the current firmware */ 1703 + #define MC_CMD_GET_VERSION_V3_OUT_SUPPORTED_FUNCS_OFST 8 1704 + #define MC_CMD_GET_VERSION_V3_OUT_SUPPORTED_FUNCS_LEN 16 1705 + #define MC_CMD_GET_VERSION_V3_OUT_VERSION_OFST 24 1706 + #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LEN 8 1707 + #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_OFST 24 1708 + #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_LEN 4 1709 + #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_LBN 192 1710 + #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_WIDTH 32 1711 + #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_OFST 28 1712 + #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_LEN 4 1713 + #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_LBN 224 1714 + #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_WIDTH 32 1715 + /* extra info */ 1716 + #define MC_CMD_GET_VERSION_V3_OUT_EXTRA_OFST 32 1717 + #define MC_CMD_GET_VERSION_V3_OUT_EXTRA_LEN 16 1718 + /* Flags indicating which extended fields are valid */ 1719 + #define MC_CMD_GET_VERSION_V3_OUT_FLAGS_OFST 48 1720 + #define MC_CMD_GET_VERSION_V3_OUT_FLAGS_LEN 4 1721 + #define MC_CMD_GET_VERSION_V3_OUT_MCFW_EXT_INFO_PRESENT_OFST 48 1722 + #define MC_CMD_GET_VERSION_V3_OUT_MCFW_EXT_INFO_PRESENT_LBN 0 1723 + #define MC_CMD_GET_VERSION_V3_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1 1724 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_EXT_INFO_PRESENT_OFST 48 1725 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1 1726 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1 1727 + #define MC_CMD_GET_VERSION_V3_OUT_CMC_EXT_INFO_PRESENT_OFST 48 1728 + #define MC_CMD_GET_VERSION_V3_OUT_CMC_EXT_INFO_PRESENT_LBN 2 1729 + #define MC_CMD_GET_VERSION_V3_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1 1730 + #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXT_INFO_PRESENT_OFST 48 1731 + #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXT_INFO_PRESENT_LBN 3 1732 + #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1 1733 + #define MC_CMD_GET_VERSION_V3_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 1734 + #define MC_CMD_GET_VERSION_V3_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 1735 + #define MC_CMD_GET_VERSION_V3_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 1736 + #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_PRESENT_OFST 48 1737 + #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_PRESENT_LBN 5 1738 + #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1 1739 + #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_PRESENT_OFST 48 1740 + #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_PRESENT_LBN 6 1741 + #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1 1742 + #define MC_CMD_GET_VERSION_V3_OUT_SOC_BOOT_VERSION_PRESENT_OFST 48 1743 + #define MC_CMD_GET_VERSION_V3_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7 1744 + #define MC_CMD_GET_VERSION_V3_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1 1745 + #define MC_CMD_GET_VERSION_V3_OUT_SOC_UBOOT_VERSION_PRESENT_OFST 48 1746 + #define MC_CMD_GET_VERSION_V3_OUT_SOC_UBOOT_VERSION_PRESENT_LBN 8 1747 + #define MC_CMD_GET_VERSION_V3_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1 1748 + #define MC_CMD_GET_VERSION_V3_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_OFST 48 1749 + #define MC_CMD_GET_VERSION_V3_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_LBN 9 1750 + #define MC_CMD_GET_VERSION_V3_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1 1751 + #define MC_CMD_GET_VERSION_V3_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_OFST 48 1752 + #define MC_CMD_GET_VERSION_V3_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_LBN 10 1753 + #define MC_CMD_GET_VERSION_V3_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1 1754 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_PRESENT_OFST 48 1755 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_PRESENT_LBN 11 1756 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_PRESENT_WIDTH 1 1757 + #define MC_CMD_GET_VERSION_V3_OUT_BOARD_VERSION_PRESENT_OFST 48 1758 + #define MC_CMD_GET_VERSION_V3_OUT_BOARD_VERSION_PRESENT_LBN 12 1759 + #define MC_CMD_GET_VERSION_V3_OUT_BOARD_VERSION_PRESENT_WIDTH 1 1760 + #define MC_CMD_GET_VERSION_V3_OUT_BUNDLE_VERSION_PRESENT_OFST 48 1761 + #define MC_CMD_GET_VERSION_V3_OUT_BUNDLE_VERSION_PRESENT_LBN 13 1762 + #define MC_CMD_GET_VERSION_V3_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1 1763 + /* MC firmware unique build ID (as binary SHA-1 value) */ 1764 + #define MC_CMD_GET_VERSION_V3_OUT_MCFW_BUILD_ID_OFST 52 1765 + #define MC_CMD_GET_VERSION_V3_OUT_MCFW_BUILD_ID_LEN 20 1766 + /* MC firmware security level */ 1767 + #define MC_CMD_GET_VERSION_V3_OUT_MCFW_SECURITY_LEVEL_OFST 72 1768 + #define MC_CMD_GET_VERSION_V3_OUT_MCFW_SECURITY_LEVEL_LEN 4 1769 + /* MC firmware build name (as null-terminated US-ASCII string) */ 1770 + #define MC_CMD_GET_VERSION_V3_OUT_MCFW_BUILD_NAME_OFST 76 1771 + #define MC_CMD_GET_VERSION_V3_OUT_MCFW_BUILD_NAME_LEN 64 1772 + /* The SUC firmware version as four numbers - a.b.c.d */ 1773 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_OFST 140 1774 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_LEN 4 1775 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_NUM 4 1776 + /* SUC firmware build date (as 64-bit Unix timestamp) */ 1777 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_OFST 156 1778 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LEN 8 1779 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_OFST 156 1780 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_LEN 4 1781 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_LBN 1248 1782 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_WIDTH 32 1783 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_OFST 160 1784 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_LEN 4 1785 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_LBN 1280 1786 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_WIDTH 32 1787 + /* The ID of the SUC chip. This is specific to the platform but typically 1788 + * indicates family, memory sizes etc. See SF-116728-SW for further details. 1789 + */ 1790 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_CHIP_ID_OFST 164 1791 + #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_CHIP_ID_LEN 4 1792 + /* The CMC firmware version as four numbers - a.b.c.d */ 1793 + #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_VERSION_OFST 168 1794 + #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_VERSION_LEN 4 1795 + #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_VERSION_NUM 4 1796 + /* CMC firmware build date (as 64-bit Unix timestamp) */ 1797 + #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_OFST 184 1798 + #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LEN 8 1799 + #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_OFST 184 1800 + #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_LEN 4 1801 + #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_LBN 1472 1802 + #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_WIDTH 32 1803 + #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_OFST 188 1804 + #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_LEN 4 1805 + #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_LBN 1504 1806 + #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_WIDTH 32 1807 + /* FPGA version as three numbers. On Riverhead based systems this field uses 1808 + * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 1809 + * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 1810 + * => B, ...) FPGA_VERSION[2]: Sub-revision number 1811 + */ 1812 + #define MC_CMD_GET_VERSION_V3_OUT_FPGA_VERSION_OFST 192 1813 + #define MC_CMD_GET_VERSION_V3_OUT_FPGA_VERSION_LEN 4 1814 + #define MC_CMD_GET_VERSION_V3_OUT_FPGA_VERSION_NUM 3 1815 + /* Extra FPGA revision information (as null-terminated US-ASCII string) */ 1816 + #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXTRA_OFST 204 1817 + #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXTRA_LEN 16 1818 + /* Board name / adapter model (as null-terminated US-ASCII string) */ 1819 + #define MC_CMD_GET_VERSION_V3_OUT_BOARD_NAME_OFST 220 1820 + #define MC_CMD_GET_VERSION_V3_OUT_BOARD_NAME_LEN 16 1821 + /* Board revision number */ 1822 + #define MC_CMD_GET_VERSION_V3_OUT_BOARD_REVISION_OFST 236 1823 + #define MC_CMD_GET_VERSION_V3_OUT_BOARD_REVISION_LEN 4 1824 + /* Board serial number (as null-terminated US-ASCII string) */ 1825 + #define MC_CMD_GET_VERSION_V3_OUT_BOARD_SERIAL_OFST 240 1826 + #define MC_CMD_GET_VERSION_V3_OUT_BOARD_SERIAL_LEN 64 1827 + /* The version of the datapath hardware design as three number - a.b.c */ 1828 + #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_OFST 304 1829 + #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_LEN 4 1830 + #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_NUM 3 1831 + /* The version of the firmware library used to control the datapath as three 1832 + * number - a.b.c 1833 + */ 1834 + #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_OFST 316 1835 + #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_LEN 4 1836 + #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_NUM 3 1837 + 1838 + /* MC_CMD_GET_VERSION_V4_OUT msgresponse: Extended response providing SoC 1839 + * version information 1840 + */ 1841 + #define MC_CMD_GET_VERSION_V4_OUT_LEN 392 1842 + /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 1843 + /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 1844 + /* Enum values, see field(s): */ 1845 + /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 1846 + #define MC_CMD_GET_VERSION_V4_OUT_PCOL_OFST 4 1847 + #define MC_CMD_GET_VERSION_V4_OUT_PCOL_LEN 4 1848 + /* 128bit mask of functions supported by the current firmware */ 1849 + #define MC_CMD_GET_VERSION_V4_OUT_SUPPORTED_FUNCS_OFST 8 1850 + #define MC_CMD_GET_VERSION_V4_OUT_SUPPORTED_FUNCS_LEN 16 1851 + #define MC_CMD_GET_VERSION_V4_OUT_VERSION_OFST 24 1852 + #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LEN 8 1853 + #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_OFST 24 1854 + #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_LEN 4 1855 + #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_LBN 192 1856 + #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_WIDTH 32 1857 + #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_OFST 28 1858 + #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_LEN 4 1859 + #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_LBN 224 1860 + #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_WIDTH 32 1861 + /* extra info */ 1862 + #define MC_CMD_GET_VERSION_V4_OUT_EXTRA_OFST 32 1863 + #define MC_CMD_GET_VERSION_V4_OUT_EXTRA_LEN 16 1864 + /* Flags indicating which extended fields are valid */ 1865 + #define MC_CMD_GET_VERSION_V4_OUT_FLAGS_OFST 48 1866 + #define MC_CMD_GET_VERSION_V4_OUT_FLAGS_LEN 4 1867 + #define MC_CMD_GET_VERSION_V4_OUT_MCFW_EXT_INFO_PRESENT_OFST 48 1868 + #define MC_CMD_GET_VERSION_V4_OUT_MCFW_EXT_INFO_PRESENT_LBN 0 1869 + #define MC_CMD_GET_VERSION_V4_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1 1870 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_EXT_INFO_PRESENT_OFST 48 1871 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1 1872 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1 1873 + #define MC_CMD_GET_VERSION_V4_OUT_CMC_EXT_INFO_PRESENT_OFST 48 1874 + #define MC_CMD_GET_VERSION_V4_OUT_CMC_EXT_INFO_PRESENT_LBN 2 1875 + #define MC_CMD_GET_VERSION_V4_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1 1876 + #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXT_INFO_PRESENT_OFST 48 1877 + #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXT_INFO_PRESENT_LBN 3 1878 + #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1 1879 + #define MC_CMD_GET_VERSION_V4_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 1880 + #define MC_CMD_GET_VERSION_V4_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 1881 + #define MC_CMD_GET_VERSION_V4_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 1882 + #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_PRESENT_OFST 48 1883 + #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_PRESENT_LBN 5 1884 + #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1 1885 + #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_PRESENT_OFST 48 1886 + #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_PRESENT_LBN 6 1887 + #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1 1888 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_PRESENT_OFST 48 1889 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7 1890 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1 1891 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_PRESENT_OFST 48 1892 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_PRESENT_LBN 8 1893 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1 1894 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_OFST 48 1895 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_LBN 9 1896 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1 1897 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_OFST 48 1898 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_LBN 10 1899 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1 1900 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_PRESENT_OFST 48 1901 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_PRESENT_LBN 11 1902 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_PRESENT_WIDTH 1 1903 + #define MC_CMD_GET_VERSION_V4_OUT_BOARD_VERSION_PRESENT_OFST 48 1904 + #define MC_CMD_GET_VERSION_V4_OUT_BOARD_VERSION_PRESENT_LBN 12 1905 + #define MC_CMD_GET_VERSION_V4_OUT_BOARD_VERSION_PRESENT_WIDTH 1 1906 + #define MC_CMD_GET_VERSION_V4_OUT_BUNDLE_VERSION_PRESENT_OFST 48 1907 + #define MC_CMD_GET_VERSION_V4_OUT_BUNDLE_VERSION_PRESENT_LBN 13 1908 + #define MC_CMD_GET_VERSION_V4_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1 1909 + /* MC firmware unique build ID (as binary SHA-1 value) */ 1910 + #define MC_CMD_GET_VERSION_V4_OUT_MCFW_BUILD_ID_OFST 52 1911 + #define MC_CMD_GET_VERSION_V4_OUT_MCFW_BUILD_ID_LEN 20 1912 + /* MC firmware security level */ 1913 + #define MC_CMD_GET_VERSION_V4_OUT_MCFW_SECURITY_LEVEL_OFST 72 1914 + #define MC_CMD_GET_VERSION_V4_OUT_MCFW_SECURITY_LEVEL_LEN 4 1915 + /* MC firmware build name (as null-terminated US-ASCII string) */ 1916 + #define MC_CMD_GET_VERSION_V4_OUT_MCFW_BUILD_NAME_OFST 76 1917 + #define MC_CMD_GET_VERSION_V4_OUT_MCFW_BUILD_NAME_LEN 64 1918 + /* The SUC firmware version as four numbers - a.b.c.d */ 1919 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_OFST 140 1920 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_LEN 4 1921 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_NUM 4 1922 + /* SUC firmware build date (as 64-bit Unix timestamp) */ 1923 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_OFST 156 1924 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LEN 8 1925 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_OFST 156 1926 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_LEN 4 1927 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_LBN 1248 1928 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_WIDTH 32 1929 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_OFST 160 1930 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_LEN 4 1931 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_LBN 1280 1932 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_WIDTH 32 1933 + /* The ID of the SUC chip. This is specific to the platform but typically 1934 + * indicates family, memory sizes etc. See SF-116728-SW for further details. 1935 + */ 1936 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_CHIP_ID_OFST 164 1937 + #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_CHIP_ID_LEN 4 1938 + /* The CMC firmware version as four numbers - a.b.c.d */ 1939 + #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_VERSION_OFST 168 1940 + #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_VERSION_LEN 4 1941 + #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_VERSION_NUM 4 1942 + /* CMC firmware build date (as 64-bit Unix timestamp) */ 1943 + #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_OFST 184 1944 + #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LEN 8 1945 + #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_OFST 184 1946 + #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_LEN 4 1947 + #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_LBN 1472 1948 + #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_WIDTH 32 1949 + #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_OFST 188 1950 + #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_LEN 4 1951 + #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_LBN 1504 1952 + #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_WIDTH 32 1953 + /* FPGA version as three numbers. On Riverhead based systems this field uses 1954 + * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 1955 + * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 1956 + * => B, ...) FPGA_VERSION[2]: Sub-revision number 1957 + */ 1958 + #define MC_CMD_GET_VERSION_V4_OUT_FPGA_VERSION_OFST 192 1959 + #define MC_CMD_GET_VERSION_V4_OUT_FPGA_VERSION_LEN 4 1960 + #define MC_CMD_GET_VERSION_V4_OUT_FPGA_VERSION_NUM 3 1961 + /* Extra FPGA revision information (as null-terminated US-ASCII string) */ 1962 + #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXTRA_OFST 204 1963 + #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXTRA_LEN 16 1964 + /* Board name / adapter model (as null-terminated US-ASCII string) */ 1965 + #define MC_CMD_GET_VERSION_V4_OUT_BOARD_NAME_OFST 220 1966 + #define MC_CMD_GET_VERSION_V4_OUT_BOARD_NAME_LEN 16 1967 + /* Board revision number */ 1968 + #define MC_CMD_GET_VERSION_V4_OUT_BOARD_REVISION_OFST 236 1969 + #define MC_CMD_GET_VERSION_V4_OUT_BOARD_REVISION_LEN 4 1970 + /* Board serial number (as null-terminated US-ASCII string) */ 1971 + #define MC_CMD_GET_VERSION_V4_OUT_BOARD_SERIAL_OFST 240 1972 + #define MC_CMD_GET_VERSION_V4_OUT_BOARD_SERIAL_LEN 64 1973 + /* The version of the datapath hardware design as three number - a.b.c */ 1974 + #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_OFST 304 1975 + #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_LEN 4 1976 + #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_NUM 3 1977 + /* The version of the firmware library used to control the datapath as three 1978 + * number - a.b.c 1979 + */ 1980 + #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_OFST 316 1981 + #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_LEN 4 1982 + #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_NUM 3 1983 + /* The SOC boot version as four numbers - a.b.c.d */ 1984 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_OFST 328 1985 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_LEN 4 1986 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_NUM 4 1987 + /* The SOC uboot version as four numbers - a.b.c.d */ 1988 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_OFST 344 1989 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_LEN 4 1990 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_NUM 4 1991 + /* The SOC main rootfs version as four numbers - a.b.c.d */ 1992 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_OFST 360 1993 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_LEN 4 1994 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_NUM 4 1995 + /* The SOC recovery buildroot version as four numbers - a.b.c.d */ 1996 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_OFST 376 1997 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_LEN 4 1998 + #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_NUM 4 1999 + 2000 + /* MC_CMD_GET_VERSION_V5_OUT msgresponse: Extended response providing bundle 2001 + * and board version information 2002 + */ 2003 + #define MC_CMD_GET_VERSION_V5_OUT_LEN 424 2004 + /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 2005 + /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 2006 + /* Enum values, see field(s): */ 2007 + /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 2008 + #define MC_CMD_GET_VERSION_V5_OUT_PCOL_OFST 4 2009 + #define MC_CMD_GET_VERSION_V5_OUT_PCOL_LEN 4 2010 + /* 128bit mask of functions supported by the current firmware */ 2011 + #define MC_CMD_GET_VERSION_V5_OUT_SUPPORTED_FUNCS_OFST 8 2012 + #define MC_CMD_GET_VERSION_V5_OUT_SUPPORTED_FUNCS_LEN 16 2013 + #define MC_CMD_GET_VERSION_V5_OUT_VERSION_OFST 24 2014 + #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LEN 8 2015 + #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_OFST 24 2016 + #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_LEN 4 2017 + #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_LBN 192 2018 + #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_WIDTH 32 2019 + #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_OFST 28 2020 + #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_LEN 4 2021 + #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_LBN 224 2022 + #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_WIDTH 32 2023 + /* extra info */ 2024 + #define MC_CMD_GET_VERSION_V5_OUT_EXTRA_OFST 32 2025 + #define MC_CMD_GET_VERSION_V5_OUT_EXTRA_LEN 16 2026 + /* Flags indicating which extended fields are valid */ 2027 + #define MC_CMD_GET_VERSION_V5_OUT_FLAGS_OFST 48 2028 + #define MC_CMD_GET_VERSION_V5_OUT_FLAGS_LEN 4 2029 + #define MC_CMD_GET_VERSION_V5_OUT_MCFW_EXT_INFO_PRESENT_OFST 48 2030 + #define MC_CMD_GET_VERSION_V5_OUT_MCFW_EXT_INFO_PRESENT_LBN 0 2031 + #define MC_CMD_GET_VERSION_V5_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1 2032 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_EXT_INFO_PRESENT_OFST 48 2033 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1 2034 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1 2035 + #define MC_CMD_GET_VERSION_V5_OUT_CMC_EXT_INFO_PRESENT_OFST 48 2036 + #define MC_CMD_GET_VERSION_V5_OUT_CMC_EXT_INFO_PRESENT_LBN 2 2037 + #define MC_CMD_GET_VERSION_V5_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1 2038 + #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXT_INFO_PRESENT_OFST 48 2039 + #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXT_INFO_PRESENT_LBN 3 2040 + #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1 2041 + #define MC_CMD_GET_VERSION_V5_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 2042 + #define MC_CMD_GET_VERSION_V5_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 2043 + #define MC_CMD_GET_VERSION_V5_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 2044 + #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_PRESENT_OFST 48 2045 + #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_PRESENT_LBN 5 2046 + #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1 2047 + #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_PRESENT_OFST 48 2048 + #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_PRESENT_LBN 6 2049 + #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1 2050 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_PRESENT_OFST 48 2051 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7 2052 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1 2053 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_PRESENT_OFST 48 2054 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_PRESENT_LBN 8 2055 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1 2056 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_OFST 48 2057 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_LBN 9 2058 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1 2059 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_OFST 48 2060 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_LBN 10 2061 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1 2062 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_PRESENT_OFST 48 2063 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_PRESENT_LBN 11 2064 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_PRESENT_WIDTH 1 2065 + #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_PRESENT_OFST 48 2066 + #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_PRESENT_LBN 12 2067 + #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_PRESENT_WIDTH 1 2068 + #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_PRESENT_OFST 48 2069 + #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_PRESENT_LBN 13 2070 + #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1 2071 + /* MC firmware unique build ID (as binary SHA-1 value) */ 2072 + #define MC_CMD_GET_VERSION_V5_OUT_MCFW_BUILD_ID_OFST 52 2073 + #define MC_CMD_GET_VERSION_V5_OUT_MCFW_BUILD_ID_LEN 20 2074 + /* MC firmware security level */ 2075 + #define MC_CMD_GET_VERSION_V5_OUT_MCFW_SECURITY_LEVEL_OFST 72 2076 + #define MC_CMD_GET_VERSION_V5_OUT_MCFW_SECURITY_LEVEL_LEN 4 2077 + /* MC firmware build name (as null-terminated US-ASCII string) */ 2078 + #define MC_CMD_GET_VERSION_V5_OUT_MCFW_BUILD_NAME_OFST 76 2079 + #define MC_CMD_GET_VERSION_V5_OUT_MCFW_BUILD_NAME_LEN 64 2080 + /* The SUC firmware version as four numbers - a.b.c.d */ 2081 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_OFST 140 2082 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_LEN 4 2083 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_NUM 4 2084 + /* SUC firmware build date (as 64-bit Unix timestamp) */ 2085 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_OFST 156 2086 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LEN 8 2087 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_OFST 156 2088 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_LEN 4 2089 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_LBN 1248 2090 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_WIDTH 32 2091 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_OFST 160 2092 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_LEN 4 2093 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_LBN 1280 2094 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_WIDTH 32 2095 + /* The ID of the SUC chip. This is specific to the platform but typically 2096 + * indicates family, memory sizes etc. See SF-116728-SW for further details. 2097 + */ 2098 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_CHIP_ID_OFST 164 2099 + #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_CHIP_ID_LEN 4 2100 + /* The CMC firmware version as four numbers - a.b.c.d */ 2101 + #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_VERSION_OFST 168 2102 + #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_VERSION_LEN 4 2103 + #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_VERSION_NUM 4 2104 + /* CMC firmware build date (as 64-bit Unix timestamp) */ 2105 + #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_OFST 184 2106 + #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LEN 8 2107 + #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_OFST 184 2108 + #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_LEN 4 2109 + #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_LBN 1472 2110 + #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_WIDTH 32 2111 + #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_OFST 188 2112 + #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_LEN 4 2113 + #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_LBN 1504 2114 + #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_WIDTH 32 2115 + /* FPGA version as three numbers. On Riverhead based systems this field uses 2116 + * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 2117 + * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 2118 + * => B, ...) FPGA_VERSION[2]: Sub-revision number 2119 + */ 2120 + #define MC_CMD_GET_VERSION_V5_OUT_FPGA_VERSION_OFST 192 2121 + #define MC_CMD_GET_VERSION_V5_OUT_FPGA_VERSION_LEN 4 2122 + #define MC_CMD_GET_VERSION_V5_OUT_FPGA_VERSION_NUM 3 2123 + /* Extra FPGA revision information (as null-terminated US-ASCII string) */ 2124 + #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXTRA_OFST 204 2125 + #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXTRA_LEN 16 2126 + /* Board name / adapter model (as null-terminated US-ASCII string) */ 2127 + #define MC_CMD_GET_VERSION_V5_OUT_BOARD_NAME_OFST 220 2128 + #define MC_CMD_GET_VERSION_V5_OUT_BOARD_NAME_LEN 16 2129 + /* Board revision number */ 2130 + #define MC_CMD_GET_VERSION_V5_OUT_BOARD_REVISION_OFST 236 2131 + #define MC_CMD_GET_VERSION_V5_OUT_BOARD_REVISION_LEN 4 2132 + /* Board serial number (as null-terminated US-ASCII string) */ 2133 + #define MC_CMD_GET_VERSION_V5_OUT_BOARD_SERIAL_OFST 240 2134 + #define MC_CMD_GET_VERSION_V5_OUT_BOARD_SERIAL_LEN 64 2135 + /* The version of the datapath hardware design as three number - a.b.c */ 2136 + #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_OFST 304 2137 + #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_LEN 4 2138 + #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_NUM 3 2139 + /* The version of the firmware library used to control the datapath as three 2140 + * number - a.b.c 2141 + */ 2142 + #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_OFST 316 2143 + #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_LEN 4 2144 + #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_NUM 3 2145 + /* The SOC boot version as four numbers - a.b.c.d */ 2146 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_OFST 328 2147 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_LEN 4 2148 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_NUM 4 2149 + /* The SOC uboot version as four numbers - a.b.c.d */ 2150 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_OFST 344 2151 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_LEN 4 2152 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_NUM 4 2153 + /* The SOC main rootfs version as four numbers - a.b.c.d */ 2154 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_OFST 360 2155 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_LEN 4 2156 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_NUM 4 2157 + /* The SOC recovery buildroot version as four numbers - a.b.c.d */ 2158 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_OFST 376 2159 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_LEN 4 2160 + #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_NUM 4 2161 + /* Board version as four numbers - a.b.c.d. BOARD_VERSION[0] duplicates the 2162 + * BOARD_REVISION field 2163 + */ 2164 + #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_OFST 392 2165 + #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_LEN 4 2166 + #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_NUM 4 2167 + /* Bundle version as four numbers - a.b.c.d */ 2168 + #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_OFST 408 2169 + #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_LEN 4 2170 + #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_NUM 4 2490 2171 2491 2172 2492 2173 /***********************************/ ··· 3074 1789 #define MC_CMD_PTP_IN_CMD_LEN 4 3075 1790 #define MC_CMD_PTP_IN_PERIPH_ID_OFST 4 3076 1791 #define MC_CMD_PTP_IN_PERIPH_ID_LEN 4 3077 - /* Not used. Events are always sent to function relative queue 0. */ 1792 + /* Not used, initialize to 0. Events are always sent to function relative queue 1793 + * 0. 1794 + */ 3078 1795 #define MC_CMD_PTP_IN_ENABLE_QUEUE_OFST 8 3079 1796 #define MC_CMD_PTP_IN_ENABLE_QUEUE_LEN 4 3080 1797 /* PTP timestamping mode. Not used from Huntington onwards. */ ··· 3153 1866 #define MC_CMD_PTP_IN_ADJUST_FREQ_OFST 8 3154 1867 #define MC_CMD_PTP_IN_ADJUST_FREQ_LEN 8 3155 1868 #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_OFST 8 1869 + #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_LEN 4 1870 + #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_LBN 64 1871 + #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_WIDTH 32 3156 1872 #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_OFST 12 1873 + #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_LEN 4 1874 + #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_LBN 96 1875 + #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_WIDTH 32 3157 1876 /* enum: Number of fractional bits in frequency adjustment */ 3158 1877 #define MC_CMD_PTP_IN_ADJUST_BITS 0x28 3159 1878 /* enum: Number of fractional bits in frequency adjustment when FP44_FREQ_ADJ ··· 3190 1897 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_OFST 8 3191 1898 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LEN 8 3192 1899 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_OFST 8 1900 + #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_LEN 4 1901 + #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_LBN 64 1902 + #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_WIDTH 32 3193 1903 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_OFST 12 1904 + #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_LEN 4 1905 + #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_LBN 96 1906 + #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_WIDTH 32 3194 1907 /* enum: Number of fractional bits in frequency adjustment */ 3195 1908 /* MC_CMD_PTP_IN_ADJUST_BITS 0x28 */ 3196 1909 /* enum: Number of fractional bits in frequency adjustment when FP44_FREQ_ADJ ··· 3235 1936 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_OFST 12 3236 1937 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LEN 8 3237 1938 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_OFST 12 1939 + #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_LEN 4 1940 + #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_LBN 96 1941 + #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_WIDTH 32 3238 1942 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_OFST 16 1943 + #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_LEN 4 1944 + #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_LBN 128 1945 + #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_WIDTH 32 3239 1946 3240 1947 /* MC_CMD_PTP_IN_MANFTEST_BASIC msgrequest */ 3241 1948 #define MC_CMD_PTP_IN_MANFTEST_BASIC_LEN 8 ··· 3357 2052 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_OFST 8 3358 2053 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LEN 8 3359 2054 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_OFST 8 2055 + #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_LEN 4 2056 + #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_LBN 64 2057 + #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_WIDTH 32 3360 2058 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_OFST 12 2059 + #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_LEN 4 2060 + #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_LBN 96 2061 + #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_WIDTH 32 3361 2062 /* Enum values, see field(s): */ 3362 2063 /* MC_CMD_PTP/MC_CMD_PTP_IN_ADJUST/FREQ */ 3363 2064 ··· 3394 2083 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_OFST 12 3395 2084 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LEN 8 3396 2085 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_OFST 12 2086 + #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_LEN 4 2087 + #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_LBN 96 2088 + #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_WIDTH 32 3397 2089 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_OFST 16 2090 + #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_LEN 4 2091 + #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_LBN 128 2092 + #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_WIDTH 32 3398 2093 3399 2094 /* MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER msgrequest */ 3400 2095 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_LEN 16 ··· 3447 2130 #define MC_CMD_PTP_ENABLE_PPS 0x0 3448 2131 /* enum: Disable */ 3449 2132 #define MC_CMD_PTP_DISABLE_PPS 0x1 3450 - /* Not used. Events are always sent to function relative queue 0. */ 2133 + /* Not used, initialize to 0. Events are always sent to function relative queue 2134 + * 0. 2135 + */ 3451 2136 #define MC_CMD_PTP_IN_PPS_ENABLE_QUEUE_ID_OFST 8 3452 2137 #define MC_CMD_PTP_IN_PPS_ENABLE_QUEUE_ID_LEN 4 3453 2138 ··· 3811 2492 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED2_OFST 20 3812 2493 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED2_LEN 4 3813 2494 2495 + /* MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2 msgresponse */ 2496 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_LEN 40 2497 + /* Time format required/used by for this NIC. Applies to all PTP MCDI 2498 + * operations that pass times between the host and firmware. If this operation 2499 + * is not supported (older firmware) a format of seconds and nanoseconds should 2500 + * be assumed. 2501 + */ 2502 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_TIME_FORMAT_OFST 0 2503 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_TIME_FORMAT_LEN 4 2504 + /* enum: Times are in seconds and nanoseconds */ 2505 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SECONDS_NANOSECONDS 0x0 2506 + /* enum: Major register has units of 16 second per tick, minor 8 ns per tick */ 2507 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_16SECONDS_8NANOSECONDS 0x1 2508 + /* enum: Major register has units of seconds, minor 2^-27s per tick */ 2509 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SECONDS_27FRACTION 0x2 2510 + /* enum: Major register units are seconds, minor units are quarter nanoseconds 2511 + */ 2512 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SECONDS_QTR_NANOSECONDS 0x3 2513 + /* Minimum acceptable value for a corrected synchronization timeset. When 2514 + * comparing host and NIC clock times, the MC returns a set of samples that 2515 + * contain the host start and end time, the MC time when the host start was 2516 + * detected and the time the MC waited between reading the time and detecting 2517 + * the host end. The corrected sync window is the difference between the host 2518 + * end and start times minus the time that the MC waited for host end. 2519 + */ 2520 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SYNC_WINDOW_MIN_OFST 4 2521 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SYNC_WINDOW_MIN_LEN 4 2522 + /* Various PTP capabilities */ 2523 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_CAPABILITIES_OFST 8 2524 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_CAPABILITIES_LEN 4 2525 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_REPORT_SYNC_STATUS_OFST 8 2526 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_REPORT_SYNC_STATUS_LBN 0 2527 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_REPORT_SYNC_STATUS_WIDTH 1 2528 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RX_TSTAMP_OOB_OFST 8 2529 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RX_TSTAMP_OOB_LBN 1 2530 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RX_TSTAMP_OOB_WIDTH 1 2531 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_64BIT_SECONDS_OFST 8 2532 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_64BIT_SECONDS_LBN 2 2533 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_64BIT_SECONDS_WIDTH 1 2534 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FP44_FREQ_ADJ_OFST 8 2535 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FP44_FREQ_ADJ_LBN 3 2536 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FP44_FREQ_ADJ_WIDTH 1 2537 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED0_OFST 12 2538 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED0_LEN 4 2539 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED1_OFST 16 2540 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED1_LEN 4 2541 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED2_OFST 20 2542 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED2_LEN 4 2543 + /* Minimum supported value for the FREQ field in 2544 + * MC_CMD_PTP/MC_CMD_PTP_IN_ADJUST and 2545 + * MC_CMD_PTP/MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST message requests. If this message 2546 + * response is not supported a value of -0.1 ns should be assumed, which is 2547 + * equivalent to a -10% adjustment. 2548 + */ 2549 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_OFST 24 2550 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_LEN 8 2551 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_LO_OFST 24 2552 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_LO_LEN 4 2553 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_LO_LBN 192 2554 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_LO_WIDTH 32 2555 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_HI_OFST 28 2556 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_HI_LEN 4 2557 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_HI_LBN 224 2558 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_HI_WIDTH 32 2559 + /* Maximum supported value for the FREQ field in 2560 + * MC_CMD_PTP/MC_CMD_PTP_IN_ADJUST and 2561 + * MC_CMD_PTP/MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST message requests. If this message 2562 + * response is not supported a value of 0.1 ns should be assumed, which is 2563 + * equivalent to a +10% adjustment. 2564 + */ 2565 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_OFST 32 2566 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_LEN 8 2567 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_LO_OFST 32 2568 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_LO_LEN 4 2569 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_LO_LBN 256 2570 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_LO_WIDTH 32 2571 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_HI_OFST 36 2572 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_HI_LEN 4 2573 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_HI_LBN 288 2574 + #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_HI_WIDTH 32 2575 + 3814 2576 /* MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS msgresponse */ 3815 2577 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_LEN 16 3816 2578 /* Uncorrected error on PTP transmit timestamps in NIC clock format */ ··· 4034 2634 #define MC_CMD_HP_IN_OCSD_ADDR_OFST 4 4035 2635 #define MC_CMD_HP_IN_OCSD_ADDR_LEN 8 4036 2636 #define MC_CMD_HP_IN_OCSD_ADDR_LO_OFST 4 2637 + #define MC_CMD_HP_IN_OCSD_ADDR_LO_LEN 4 2638 + #define MC_CMD_HP_IN_OCSD_ADDR_LO_LBN 32 2639 + #define MC_CMD_HP_IN_OCSD_ADDR_LO_WIDTH 32 4037 2640 #define MC_CMD_HP_IN_OCSD_ADDR_HI_OFST 8 2641 + #define MC_CMD_HP_IN_OCSD_ADDR_HI_LEN 4 2642 + #define MC_CMD_HP_IN_OCSD_ADDR_HI_LBN 64 2643 + #define MC_CMD_HP_IN_OCSD_ADDR_HI_WIDTH 32 4038 2644 /* The requested update interval, in seconds. (Or the sub-command if ADDR is 4039 2645 * NULL.) 4040 2646 */ ··· 4445 3039 #define MC_CMD_DBI_READX_IN_DBIRDOP_OFST 0 4446 3040 #define MC_CMD_DBI_READX_IN_DBIRDOP_LEN 8 4447 3041 #define MC_CMD_DBI_READX_IN_DBIRDOP_LO_OFST 0 3042 + #define MC_CMD_DBI_READX_IN_DBIRDOP_LO_LEN 4 3043 + #define MC_CMD_DBI_READX_IN_DBIRDOP_LO_LBN 0 3044 + #define MC_CMD_DBI_READX_IN_DBIRDOP_LO_WIDTH 32 4448 3045 #define MC_CMD_DBI_READX_IN_DBIRDOP_HI_OFST 4 3046 + #define MC_CMD_DBI_READX_IN_DBIRDOP_HI_LEN 4 3047 + #define MC_CMD_DBI_READX_IN_DBIRDOP_HI_LBN 32 3048 + #define MC_CMD_DBI_READX_IN_DBIRDOP_HI_WIDTH 32 4449 3049 #define MC_CMD_DBI_READX_IN_DBIRDOP_MINNUM 1 4450 3050 #define MC_CMD_DBI_READX_IN_DBIRDOP_MAXNUM 31 4451 3051 #define MC_CMD_DBI_READX_IN_DBIRDOP_MAXNUM_MCDI2 127 ··· 5055 3643 #define MC_CMD_MEDIA_BASE_T 0x6 5056 3644 /* enum: QSFP+. */ 5057 3645 #define MC_CMD_MEDIA_QSFP_PLUS 0x7 3646 + /* enum: DSFP. */ 3647 + #define MC_CMD_MEDIA_DSFP 0x8 5058 3648 #define MC_CMD_GET_PHY_CFG_OUT_MMD_MASK_OFST 48 5059 3649 #define MC_CMD_GET_PHY_CFG_OUT_MMD_MASK_LEN 4 5060 3650 /* enum: Native clause 22 */ ··· 5326 3912 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_OFST 0 5327 3913 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LEN 8 5328 3914 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_OFST 0 3915 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_LEN 4 3916 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_LBN 0 3917 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_WIDTH 32 5329 3918 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_OFST 4 3919 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_LEN 4 3920 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_LBN 32 3921 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_WIDTH 32 5330 3922 /* enum: None. */ 5331 3923 #define MC_CMD_LOOPBACK_NONE 0x0 5332 3924 /* enum: Data. */ ··· 5415 3995 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_OFST 8 5416 3996 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LEN 8 5417 3997 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_OFST 8 3998 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_LEN 4 3999 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_LBN 64 4000 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_WIDTH 32 5418 4001 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_OFST 12 4002 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_LEN 4 4003 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_LBN 96 4004 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_WIDTH 32 5419 4005 /* Enum values, see field(s): */ 5420 4006 /* 100M */ 5421 4007 /* Supported loopbacks. */ 5422 4008 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_OFST 16 5423 4009 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LEN 8 5424 4010 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_OFST 16 4011 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_LEN 4 4012 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_LBN 128 4013 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_WIDTH 32 5425 4014 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_OFST 20 4015 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_LEN 4 4016 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_LBN 160 4017 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_WIDTH 32 5426 4018 /* Enum values, see field(s): */ 5427 4019 /* 100M */ 5428 4020 /* Supported loopbacks. */ 5429 4021 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_OFST 24 5430 4022 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LEN 8 5431 4023 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_OFST 24 4024 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_LEN 4 4025 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_LBN 192 4026 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_WIDTH 32 5432 4027 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_OFST 28 4028 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_LEN 4 4029 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_LBN 224 4030 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_WIDTH 32 5433 4031 /* Enum values, see field(s): */ 5434 4032 /* 100M */ 5435 4033 /* Supported loopbacks. */ 5436 4034 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_OFST 32 5437 4035 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LEN 8 5438 4036 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_OFST 32 4037 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_LEN 4 4038 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_LBN 256 4039 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_WIDTH 32 5439 4040 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_OFST 36 4041 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_LEN 4 4042 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_LBN 288 4043 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_WIDTH 32 5440 4044 /* Enum values, see field(s): */ 5441 4045 /* 100M */ 5442 4046 ··· 5472 4028 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_OFST 0 5473 4029 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LEN 8 5474 4030 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_OFST 0 4031 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_LEN 4 4032 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_LBN 0 4033 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_WIDTH 32 5475 4034 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_OFST 4 4035 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_LEN 4 4036 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_LBN 32 4037 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_WIDTH 32 5476 4038 /* enum: None. */ 5477 4039 /* MC_CMD_LOOPBACK_NONE 0x0 */ 5478 4040 /* enum: Data. */ ··· 5561 4111 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_OFST 8 5562 4112 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LEN 8 5563 4113 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_OFST 8 4114 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_LEN 4 4115 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_LBN 64 4116 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_WIDTH 32 5564 4117 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_OFST 12 4118 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_LEN 4 4119 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_LBN 96 4120 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_WIDTH 32 5565 4121 /* Enum values, see field(s): */ 5566 4122 /* 100M */ 5567 4123 /* Supported loopbacks. */ 5568 4124 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_OFST 16 5569 4125 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LEN 8 5570 4126 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_OFST 16 4127 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_LEN 4 4128 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_LBN 128 4129 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_WIDTH 32 5571 4130 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_OFST 20 4131 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_LEN 4 4132 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_LBN 160 4133 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_WIDTH 32 5572 4134 /* Enum values, see field(s): */ 5573 4135 /* 100M */ 5574 4136 /* Supported loopbacks. */ 5575 4137 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_OFST 24 5576 4138 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LEN 8 5577 4139 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_OFST 24 4140 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_LEN 4 4141 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_LBN 192 4142 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_WIDTH 32 5578 4143 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_OFST 28 4144 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_LEN 4 4145 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_LBN 224 4146 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_WIDTH 32 5579 4147 /* Enum values, see field(s): */ 5580 4148 /* 100M */ 5581 4149 /* Supported loopbacks. */ 5582 4150 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_OFST 32 5583 4151 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LEN 8 5584 4152 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_OFST 32 4153 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_LEN 4 4154 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_LBN 256 4155 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_WIDTH 32 5585 4156 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_OFST 36 4157 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_LEN 4 4158 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_LBN 288 4159 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_WIDTH 32 5586 4160 /* Enum values, see field(s): */ 5587 4161 /* 100M */ 5588 4162 /* Supported 25G loopbacks. */ 5589 4163 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_OFST 40 5590 4164 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LEN 8 5591 4165 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_OFST 40 4166 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_LEN 4 4167 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_LBN 320 4168 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_WIDTH 32 5592 4169 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_OFST 44 4170 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_LEN 4 4171 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_LBN 352 4172 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_WIDTH 32 5593 4173 /* Enum values, see field(s): */ 5594 4174 /* 100M */ 5595 4175 /* Supported 50 loopbacks. */ 5596 4176 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_OFST 48 5597 4177 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LEN 8 5598 4178 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_OFST 48 4179 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_LEN 4 4180 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_LBN 384 4181 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_WIDTH 32 5599 4182 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_OFST 52 4183 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_LEN 4 4184 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_LBN 416 4185 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_WIDTH 32 5600 4186 /* Enum values, see field(s): */ 5601 4187 /* 100M */ 5602 4188 /* Supported 100G loopbacks. */ 5603 4189 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_OFST 56 5604 4190 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LEN 8 5605 4191 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_OFST 56 4192 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_LEN 4 4193 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_LBN 448 4194 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_WIDTH 32 5606 4195 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_OFST 60 4196 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_LEN 4 4197 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_LBN 480 4198 + #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_WIDTH 32 5607 4199 /* Enum values, see field(s): */ 5608 4200 /* 100M */ 5609 4201 ··· 6016 4524 #define MC_CMD_SET_MAC_IN_ADDR_OFST 8 6017 4525 #define MC_CMD_SET_MAC_IN_ADDR_LEN 8 6018 4526 #define MC_CMD_SET_MAC_IN_ADDR_LO_OFST 8 4527 + #define MC_CMD_SET_MAC_IN_ADDR_LO_LEN 4 4528 + #define MC_CMD_SET_MAC_IN_ADDR_LO_LBN 64 4529 + #define MC_CMD_SET_MAC_IN_ADDR_LO_WIDTH 32 6019 4530 #define MC_CMD_SET_MAC_IN_ADDR_HI_OFST 12 4531 + #define MC_CMD_SET_MAC_IN_ADDR_HI_LEN 4 4532 + #define MC_CMD_SET_MAC_IN_ADDR_HI_LBN 96 4533 + #define MC_CMD_SET_MAC_IN_ADDR_HI_WIDTH 32 6020 4534 #define MC_CMD_SET_MAC_IN_REJECT_OFST 16 6021 4535 #define MC_CMD_SET_MAC_IN_REJECT_LEN 4 6022 4536 #define MC_CMD_SET_MAC_IN_REJECT_UNCST_OFST 16 ··· 6063 4565 #define MC_CMD_SET_MAC_EXT_IN_ADDR_OFST 8 6064 4566 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LEN 8 6065 4567 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_OFST 8 4568 + #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_LEN 4 4569 + #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_LBN 64 4570 + #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_WIDTH 32 6066 4571 #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_OFST 12 4572 + #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_LEN 4 4573 + #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_LBN 96 4574 + #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_WIDTH 32 6067 4575 #define MC_CMD_SET_MAC_EXT_IN_REJECT_OFST 16 6068 4576 #define MC_CMD_SET_MAC_EXT_IN_REJECT_LEN 4 6069 4577 #define MC_CMD_SET_MAC_EXT_IN_REJECT_UNCST_OFST 16 ··· 6120 4616 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCS_LBN 4 6121 4617 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCS_WIDTH 1 6122 4618 4619 + /* MC_CMD_SET_MAC_V3_IN msgrequest */ 4620 + #define MC_CMD_SET_MAC_V3_IN_LEN 40 4621 + /* The MTU is the MTU programmed directly into the XMAC/GMAC (inclusive of 4622 + * EtherII, VLAN, bug16011 padding). 4623 + */ 4624 + #define MC_CMD_SET_MAC_V3_IN_MTU_OFST 0 4625 + #define MC_CMD_SET_MAC_V3_IN_MTU_LEN 4 4626 + #define MC_CMD_SET_MAC_V3_IN_DRAIN_OFST 4 4627 + #define MC_CMD_SET_MAC_V3_IN_DRAIN_LEN 4 4628 + #define MC_CMD_SET_MAC_V3_IN_ADDR_OFST 8 4629 + #define MC_CMD_SET_MAC_V3_IN_ADDR_LEN 8 4630 + #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_OFST 8 4631 + #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_LEN 4 4632 + #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_LBN 64 4633 + #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_WIDTH 32 4634 + #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_OFST 12 4635 + #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_LEN 4 4636 + #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_LBN 96 4637 + #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_WIDTH 32 4638 + #define MC_CMD_SET_MAC_V3_IN_REJECT_OFST 16 4639 + #define MC_CMD_SET_MAC_V3_IN_REJECT_LEN 4 4640 + #define MC_CMD_SET_MAC_V3_IN_REJECT_UNCST_OFST 16 4641 + #define MC_CMD_SET_MAC_V3_IN_REJECT_UNCST_LBN 0 4642 + #define MC_CMD_SET_MAC_V3_IN_REJECT_UNCST_WIDTH 1 4643 + #define MC_CMD_SET_MAC_V3_IN_REJECT_BRDCST_OFST 16 4644 + #define MC_CMD_SET_MAC_V3_IN_REJECT_BRDCST_LBN 1 4645 + #define MC_CMD_SET_MAC_V3_IN_REJECT_BRDCST_WIDTH 1 4646 + #define MC_CMD_SET_MAC_V3_IN_FCNTL_OFST 20 4647 + #define MC_CMD_SET_MAC_V3_IN_FCNTL_LEN 4 4648 + /* enum: Flow control is off. */ 4649 + /* MC_CMD_FCNTL_OFF 0x0 */ 4650 + /* enum: Respond to flow control. */ 4651 + /* MC_CMD_FCNTL_RESPOND 0x1 */ 4652 + /* enum: Respond to and Issue flow control. */ 4653 + /* MC_CMD_FCNTL_BIDIR 0x2 */ 4654 + /* enum: Auto neg flow control. */ 4655 + /* MC_CMD_FCNTL_AUTO 0x3 */ 4656 + /* enum: Priority flow control (eftest builds only). */ 4657 + /* MC_CMD_FCNTL_QBB 0x4 */ 4658 + /* enum: Issue flow control. */ 4659 + /* MC_CMD_FCNTL_GENERATE 0x5 */ 4660 + #define MC_CMD_SET_MAC_V3_IN_FLAGS_OFST 24 4661 + #define MC_CMD_SET_MAC_V3_IN_FLAGS_LEN 4 4662 + #define MC_CMD_SET_MAC_V3_IN_FLAG_INCLUDE_FCS_OFST 24 4663 + #define MC_CMD_SET_MAC_V3_IN_FLAG_INCLUDE_FCS_LBN 0 4664 + #define MC_CMD_SET_MAC_V3_IN_FLAG_INCLUDE_FCS_WIDTH 1 4665 + /* Select which parameters to configure. A parameter will only be modified if 4666 + * the corresponding control flag is set. If SET_MAC_ENHANCED is not set in 4667 + * capabilities then this field is ignored (and all flags are assumed to be 4668 + * set). 4669 + */ 4670 + #define MC_CMD_SET_MAC_V3_IN_CONTROL_OFST 28 4671 + #define MC_CMD_SET_MAC_V3_IN_CONTROL_LEN 4 4672 + #define MC_CMD_SET_MAC_V3_IN_CFG_MTU_OFST 28 4673 + #define MC_CMD_SET_MAC_V3_IN_CFG_MTU_LBN 0 4674 + #define MC_CMD_SET_MAC_V3_IN_CFG_MTU_WIDTH 1 4675 + #define MC_CMD_SET_MAC_V3_IN_CFG_DRAIN_OFST 28 4676 + #define MC_CMD_SET_MAC_V3_IN_CFG_DRAIN_LBN 1 4677 + #define MC_CMD_SET_MAC_V3_IN_CFG_DRAIN_WIDTH 1 4678 + #define MC_CMD_SET_MAC_V3_IN_CFG_REJECT_OFST 28 4679 + #define MC_CMD_SET_MAC_V3_IN_CFG_REJECT_LBN 2 4680 + #define MC_CMD_SET_MAC_V3_IN_CFG_REJECT_WIDTH 1 4681 + #define MC_CMD_SET_MAC_V3_IN_CFG_FCNTL_OFST 28 4682 + #define MC_CMD_SET_MAC_V3_IN_CFG_FCNTL_LBN 3 4683 + #define MC_CMD_SET_MAC_V3_IN_CFG_FCNTL_WIDTH 1 4684 + #define MC_CMD_SET_MAC_V3_IN_CFG_FCS_OFST 28 4685 + #define MC_CMD_SET_MAC_V3_IN_CFG_FCS_LBN 4 4686 + #define MC_CMD_SET_MAC_V3_IN_CFG_FCS_WIDTH 1 4687 + /* Identifies the MAC to update by the specifying the end of a logical MAE 4688 + * link. Setting TARGET to MAE_LINK_ENDPOINT_COMPAT is equivalent to using the 4689 + * previous version of the command (MC_CMD_SET_MAC_EXT). Not all possible 4690 + * combinations of MPORT_END and MPORT_SELECTOR in TARGET will work in all 4691 + * circumstances. 1. Some will always work (e.g. a VF can always address its 4692 + * logical MAC using MPORT_SELECTOR=ASSIGNED,LINK_END=VNIC), 2. Some are not 4693 + * meaningful and will always fail with EINVAL (e.g. attempting to address the 4694 + * VNIC end of a link to a physical port), 3. Some are meaningful but require 4695 + * the MCDI client to have the required permission and fail with EPERM 4696 + * otherwise (e.g. trying to set the MAC on a VF the caller cannot administer), 4697 + * and 4. Some could be implementation-specific and fail with ENOTSUP if not 4698 + * available (no examples exist right now). See SF-123581-TC section 4.3 for 4699 + * more details. 4700 + */ 4701 + #define MC_CMD_SET_MAC_V3_IN_TARGET_OFST 32 4702 + #define MC_CMD_SET_MAC_V3_IN_TARGET_LEN 8 4703 + #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_OFST 32 4704 + #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_LEN 4 4705 + #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_LBN 256 4706 + #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_WIDTH 32 4707 + #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_OFST 36 4708 + #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_LEN 4 4709 + #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_LBN 288 4710 + #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_WIDTH 32 4711 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_OFST 32 4712 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_LEN 4 4713 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FLAT_OFST 32 4714 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FLAT_LEN 4 4715 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_TYPE_OFST 35 4716 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_TYPE_LEN 1 4717 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 32 4718 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 4719 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 256 4720 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 4721 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 276 4722 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 4723 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 272 4724 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 4725 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 34 4726 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 4727 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 32 4728 + #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 4729 + #define MC_CMD_SET_MAC_V3_IN_TARGET_LINK_END_OFST 36 4730 + #define MC_CMD_SET_MAC_V3_IN_TARGET_LINK_END_LEN 4 4731 + #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_OFST 32 4732 + #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LEN 8 4733 + #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_OFST 32 4734 + #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_LEN 4 4735 + #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_LBN 256 4736 + #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_WIDTH 32 4737 + #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_OFST 36 4738 + #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_LEN 4 4739 + #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_LBN 288 4740 + #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_WIDTH 32 4741 + 6123 4742 /* MC_CMD_SET_MAC_OUT msgresponse */ 6124 4743 #define MC_CMD_SET_MAC_OUT_LEN 0 6125 4744 ··· 6276 4649 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_OFST 0 6277 4650 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LEN 8 6278 4651 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_OFST 0 4652 + #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_LEN 4 4653 + #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_LBN 0 4654 + #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_WIDTH 32 6279 4655 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_OFST 4 4656 + #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_LEN 4 4657 + #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_LBN 32 4658 + #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_WIDTH 32 6280 4659 6281 4660 /* MC_CMD_PHY_STATS_OUT_DMA msgresponse */ 6282 4661 #define MC_CMD_PHY_STATS_OUT_DMA_LEN 0 ··· 6364 4731 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_OFST 0 6365 4732 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LEN 8 6366 4733 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_OFST 0 4734 + #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_LEN 4 4735 + #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_LBN 0 4736 + #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_WIDTH 32 6367 4737 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_OFST 4 4738 + #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_LEN 4 4739 + #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_LBN 32 4740 + #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_WIDTH 32 6368 4741 #define MC_CMD_MAC_STATS_IN_CMD_OFST 8 6369 4742 #define MC_CMD_MAC_STATS_IN_CMD_LEN 4 6370 4743 #define MC_CMD_MAC_STATS_IN_DMA_OFST 8 ··· 6413 4774 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_OFST 0 6414 4775 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LEN 8 6415 4776 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_OFST 0 4777 + #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_LEN 4 4778 + #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_LBN 0 4779 + #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 6416 4780 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_OFST 4 4781 + #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_LEN 4 4782 + #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_LBN 32 4783 + #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 6417 4784 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS 6418 4785 #define MC_CMD_MAC_GENERATION_START 0x0 /* enum */ 6419 4786 #define MC_CMD_MAC_DMABUF_START 0x1 /* enum */ ··· 6575 4930 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_OFST 0 6576 4931 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LEN 8 6577 4932 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_OFST 0 4933 + #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_LEN 4 4934 + #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_LBN 0 4935 + #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 6578 4936 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_OFST 4 4937 + #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_LEN 4 4938 + #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_LBN 32 4939 + #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 6579 4940 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS_V2 6580 4941 /* enum: Start of FEC stats buffer space, Medford2 and up */ 6581 4942 #define MC_CMD_MAC_FEC_DMABUF_START 0x61 ··· 6614 4963 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_OFST 0 6615 4964 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LEN 8 6616 4965 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_OFST 0 4966 + #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_LEN 4 4967 + #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_LBN 0 4968 + #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 6617 4969 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_OFST 4 4970 + #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_LEN 4 4971 + #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_LBN 32 4972 + #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 6618 4973 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS_V3 6619 4974 /* enum: Start of CTPIO stats buffer space, Medford2 and up */ 6620 4975 #define MC_CMD_MAC_CTPIO_DMABUF_START 0x68 ··· 6694 5037 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_OFST 0 6695 5038 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LEN 8 6696 5039 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_OFST 0 5040 + #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_LEN 4 5041 + #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_LBN 0 5042 + #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 6697 5043 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_OFST 4 5044 + #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_LEN 4 5045 + #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_LBN 32 5046 + #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 6698 5047 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS_V4 6699 5048 /* enum: Start of V4 stats buffer space */ 6700 5049 #define MC_CMD_MAC_V4_DMABUF_START 0x79 ··· 6760 5097 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_OFST 8 6761 5098 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LEN 8 6762 5099 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LO_OFST 8 5100 + #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LO_LEN 4 5101 + #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LO_LBN 64 5102 + #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LO_WIDTH 32 6763 5103 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_HI_OFST 12 5104 + #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_HI_LEN 4 5105 + #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_HI_LBN 96 5106 + #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_HI_WIDTH 32 6764 5107 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LBN 64 6765 5108 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_WIDTH 64 6766 5109 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_RID_OFST 16 ··· 6777 5108 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_OFST 20 6778 5109 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LEN 8 6779 5110 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LO_OFST 20 5111 + #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LO_LEN 4 5112 + #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LO_LBN 160 5113 + #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LO_WIDTH 32 6780 5114 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_HI_OFST 24 5115 + #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_HI_LEN 4 5116 + #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_HI_LBN 192 5117 + #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_HI_WIDTH 32 6781 5118 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LBN 160 6782 5119 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_WIDTH 64 6783 5120 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_LENGTH_OFST 28 ··· 6876 5201 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_OFST 8 6877 5202 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LEN 8 6878 5203 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_OFST 8 5204 + #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_LEN 4 5205 + #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_LBN 64 5206 + #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_WIDTH 32 6879 5207 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_OFST 12 5208 + #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_LEN 4 5209 + #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_LBN 96 5210 + #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_WIDTH 32 6880 5211 6881 5212 /* MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN msgrequest */ 6882 5213 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_LEN 20 ··· 7387 5706 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_POLL_VERIFY_RESULT_OFST 8 7388 5707 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_POLL_VERIFY_RESULT_LBN 2 7389 5708 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_POLL_VERIFY_RESULT_WIDTH 1 5709 + #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_ABORT_OFST 8 5710 + #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_ABORT_LBN 3 5711 + #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_ABORT_WIDTH 1 7390 5712 7391 5713 /* MC_CMD_NVRAM_UPDATE_FINISH_OUT msgresponse: Legacy NVRAM_UPDATE_FINISH 7392 5714 * response. Use NVRAM_UPDATE_FINISH_V2_OUT in new code ··· 7864 6180 #define MC_CMD_SENSOR_ENTRY_OFST 4 7865 6181 #define MC_CMD_SENSOR_ENTRY_LEN 8 7866 6182 #define MC_CMD_SENSOR_ENTRY_LO_OFST 4 6183 + #define MC_CMD_SENSOR_ENTRY_LO_LEN 4 6184 + #define MC_CMD_SENSOR_ENTRY_LO_LBN 32 6185 + #define MC_CMD_SENSOR_ENTRY_LO_WIDTH 32 7867 6186 #define MC_CMD_SENSOR_ENTRY_HI_OFST 8 6187 + #define MC_CMD_SENSOR_ENTRY_HI_LEN 4 6188 + #define MC_CMD_SENSOR_ENTRY_HI_LBN 64 6189 + #define MC_CMD_SENSOR_ENTRY_HI_WIDTH 32 7868 6190 #define MC_CMD_SENSOR_ENTRY_MINNUM 0 7869 6191 #define MC_CMD_SENSOR_ENTRY_MAXNUM 31 7870 6192 #define MC_CMD_SENSOR_ENTRY_MAXNUM_MCDI2 127 ··· 7892 6202 /* MC_CMD_SENSOR_ENTRY_OFST 4 */ 7893 6203 /* MC_CMD_SENSOR_ENTRY_LEN 8 */ 7894 6204 /* MC_CMD_SENSOR_ENTRY_LO_OFST 4 */ 6205 + /* MC_CMD_SENSOR_ENTRY_LO_LEN 4 */ 6206 + /* MC_CMD_SENSOR_ENTRY_LO_LBN 32 */ 6207 + /* MC_CMD_SENSOR_ENTRY_LO_WIDTH 32 */ 7895 6208 /* MC_CMD_SENSOR_ENTRY_HI_OFST 8 */ 6209 + /* MC_CMD_SENSOR_ENTRY_HI_LEN 4 */ 6210 + /* MC_CMD_SENSOR_ENTRY_HI_LBN 64 */ 6211 + /* MC_CMD_SENSOR_ENTRY_HI_WIDTH 32 */ 7896 6212 /* MC_CMD_SENSOR_ENTRY_MINNUM 0 */ 7897 6213 /* MC_CMD_SENSOR_ENTRY_MAXNUM 31 */ 7898 6214 /* MC_CMD_SENSOR_ENTRY_MAXNUM_MCDI2 127 */ ··· 7955 6259 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_OFST 0 7956 6260 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LEN 8 7957 6261 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_OFST 0 6262 + #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_LEN 4 6263 + #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_LBN 0 6264 + #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_WIDTH 32 7958 6265 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_OFST 4 6266 + #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_LEN 4 6267 + #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_LBN 32 6268 + #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_WIDTH 32 7959 6269 7960 6270 /* MC_CMD_READ_SENSORS_EXT_IN msgrequest */ 7961 6271 #define MC_CMD_READ_SENSORS_EXT_IN_LEN 12 ··· 7973 6271 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_OFST 0 7974 6272 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LEN 8 7975 6273 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_OFST 0 6274 + #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_LEN 4 6275 + #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_LBN 0 6276 + #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_WIDTH 32 7976 6277 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_OFST 4 6278 + #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_LEN 4 6279 + #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_LBN 32 6280 + #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_WIDTH 32 7977 6281 /* Size in bytes of host buffer. */ 7978 6282 #define MC_CMD_READ_SENSORS_EXT_IN_LENGTH_OFST 8 7979 6283 #define MC_CMD_READ_SENSORS_EXT_IN_LENGTH_LEN 4 ··· 7994 6286 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_OFST 0 7995 6287 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LEN 8 7996 6288 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_OFST 0 6289 + #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_LEN 4 6290 + #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_LBN 0 6291 + #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_WIDTH 32 7997 6292 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_OFST 4 6293 + #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_LEN 4 6294 + #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_LBN 32 6295 + #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_WIDTH 32 7998 6296 /* Size in bytes of host buffer. */ 7999 6297 #define MC_CMD_READ_SENSORS_EXT_IN_V2_LENGTH_OFST 8 8000 6298 #define MC_CMD_READ_SENSORS_EXT_IN_V2_LENGTH_LEN 4 ··· 8297 6583 /***********************************/ 8298 6584 /* MC_CMD_GET_PHY_MEDIA_INFO 8299 6585 * Read media-specific data from PHY (e.g. SFP/SFP+ module ID information for 8300 - * SFP+ PHYs). The 'media type' can be found via GET_PHY_CFG 8301 - * (GET_PHY_CFG_OUT_MEDIA_TYPE); the valid 'page number' input values, and the 8302 - * output data, are interpreted on a per-type basis. For SFP+: PAGE=0 or 1 6586 + * SFP+ PHYs). The "media type" can be found via GET_PHY_CFG 6587 + * (GET_PHY_CFG_OUT_MEDIA_TYPE); the valid "page number" input values, and the 6588 + * output data, are interpreted on a per-type basis. For SFP+, PAGE=0 or 1 8303 6589 * returns a 128-byte block read from module I2C address 0xA0 offset 0 or 0x80. 8304 - * Anything else: currently undefined. Locks required: None. Return code: 0. 6590 + * For QSFP, PAGE=-1 is the lower (unbanked) page. PAGE=2 is the EEPROM and 6591 + * PAGE=3 is the module limits. For DSFP, module addressing requires a 6592 + * "BANK:PAGE". Not every bank has the same number of pages. See the Common 6593 + * Management Interface Specification (CMIS) for further details. A BANK:PAGE 6594 + * of "0xffff:0xffff" retrieves the lower (unbanked) page. Locks required - 6595 + * None. Return code - 0. 8305 6596 */ 8306 6597 #define MC_CMD_GET_PHY_MEDIA_INFO 0x4b 8307 6598 #undef MC_CMD_0x4b_PRIVILEGE_CTG ··· 8317 6598 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_LEN 4 8318 6599 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_PAGE_OFST 0 8319 6600 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_PAGE_LEN 4 6601 + #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_PAGE_OFST 0 6602 + #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_PAGE_LBN 0 6603 + #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_PAGE_WIDTH 16 6604 + #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_BANK_OFST 0 6605 + #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_BANK_LBN 16 6606 + #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_BANK_WIDTH 16 8320 6607 8321 6608 /* MC_CMD_GET_PHY_MEDIA_INFO_OUT msgresponse */ 8322 6609 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LENMIN 5 ··· 9129 7404 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_OFST 4 9130 7405 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LEN 8 9131 7406 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LO_OFST 4 7407 + #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LO_LEN 4 7408 + #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LO_LBN 32 7409 + #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LO_WIDTH 32 9132 7410 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_HI_OFST 8 7411 + #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_HI_LEN 4 7412 + #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_HI_LBN 64 7413 + #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_HI_WIDTH 32 9133 7414 9134 7415 /* MC_CMD_MUM_OUT_RAW_CMD msgresponse */ 9135 7416 #define MC_CMD_MUM_OUT_RAW_CMD_LENMIN 1 ··· 9320 7589 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_OFST 8 9321 7590 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LEN 8 9322 7591 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LO_OFST 8 7592 + #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LO_LEN 4 7593 + #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LO_LBN 64 7594 + #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LO_WIDTH 32 9323 7595 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_HI_OFST 12 7596 + #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_HI_LEN 4 7597 + #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_HI_LBN 96 7598 + #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_HI_WIDTH 32 9324 7599 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_MINNUM 2 9325 7600 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_MAXNUM 30 9326 7601 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_MAXNUM_MCDI2 126 ··· 9734 7997 #define BUFTBL_ENTRY_RAWADDR_OFST 4 9735 7998 #define BUFTBL_ENTRY_RAWADDR_LEN 8 9736 7999 #define BUFTBL_ENTRY_RAWADDR_LO_OFST 4 8000 + #define BUFTBL_ENTRY_RAWADDR_LO_LEN 4 8001 + #define BUFTBL_ENTRY_RAWADDR_LO_LBN 32 8002 + #define BUFTBL_ENTRY_RAWADDR_LO_WIDTH 32 9737 8003 #define BUFTBL_ENTRY_RAWADDR_HI_OFST 8 8004 + #define BUFTBL_ENTRY_RAWADDR_HI_LEN 4 8005 + #define BUFTBL_ENTRY_RAWADDR_HI_LBN 64 8006 + #define BUFTBL_ENTRY_RAWADDR_HI_WIDTH 32 9738 8007 #define BUFTBL_ENTRY_RAWADDR_LBN 32 9739 8008 #define BUFTBL_ENTRY_RAWADDR_WIDTH 64 9740 8009 ··· 9750 8007 #define NVRAM_PARTITION_TYPE_ID_LEN 2 9751 8008 /* enum: Primary MC firmware partition */ 9752 8009 #define NVRAM_PARTITION_TYPE_MC_FIRMWARE 0x100 8010 + /* enum: NMC firmware partition (this is intentionally an alias of MC_FIRMWARE) 8011 + */ 8012 + #define NVRAM_PARTITION_TYPE_NMC_FIRMWARE 0x100 9753 8013 /* enum: Secondary MC firmware partition */ 9754 8014 #define NVRAM_PARTITION_TYPE_MC_FIRMWARE_BACKUP 0x200 9755 8015 /* enum: Expansion ROM partition */ 9756 8016 #define NVRAM_PARTITION_TYPE_EXPANSION_ROM 0x300 9757 8017 /* enum: Static configuration TLV partition */ 9758 8018 #define NVRAM_PARTITION_TYPE_STATIC_CONFIG 0x400 8019 + /* enum: Factory configuration TLV partition (this is intentionally an alias of 8020 + * STATIC_CONFIG) 8021 + */ 8022 + #define NVRAM_PARTITION_TYPE_FACTORY_CONFIG 0x400 9759 8023 /* enum: Dynamic configuration TLV partition */ 9760 8024 #define NVRAM_PARTITION_TYPE_DYNAMIC_CONFIG 0x500 8025 + /* enum: User configuration TLV partition (this is intentionally an alias of 8026 + * DYNAMIC_CONFIG) 8027 + */ 8028 + #define NVRAM_PARTITION_TYPE_USER_CONFIG 0x500 9761 8029 /* enum: Expansion ROM configuration data for port 0 */ 9762 8030 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT0 0x600 9763 8031 /* enum: Synonym for EXPROM_CONFIG_PORT0 as used in pmap files */ ··· 9781 8027 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT3 0x603 9782 8028 /* enum: Non-volatile log output partition */ 9783 8029 #define NVRAM_PARTITION_TYPE_LOG 0x700 8030 + /* enum: Non-volatile log output partition for NMC firmware (this is 8031 + * intentionally an alias of LOG) 8032 + */ 8033 + #define NVRAM_PARTITION_TYPE_NMC_LOG 0x700 9784 8034 /* enum: Non-volatile log output of second core on dual-core device */ 9785 8035 #define NVRAM_PARTITION_TYPE_LOG_SLAVE 0x701 9786 8036 /* enum: Device state dump output partition */ 9787 8037 #define NVRAM_PARTITION_TYPE_DUMP 0x800 8038 + /* enum: Crash log partition for NMC firmware */ 8039 + #define NVRAM_PARTITION_TYPE_NMC_CRASH_LOG 0x801 9788 8040 /* enum: Application license key storage partition */ 9789 8041 #define NVRAM_PARTITION_TYPE_LICENSE 0x900 9790 8042 /* enum: Start of range used for PHY partitions (low 8 bits are the PHY ID) */ ··· 9807 8047 #define NVRAM_PARTITION_TYPE_FC_LICENSE 0xb03 9808 8048 /* enum: Non-volatile log output partition for FC */ 9809 8049 #define NVRAM_PARTITION_TYPE_FC_LOG 0xb04 8050 + /* enum: FPGA Stage 1 bitstream */ 8051 + #define NVRAM_PARTITION_TYPE_FPGA_STAGE1 0xb05 8052 + /* enum: FPGA Stage 2 bitstream */ 8053 + #define NVRAM_PARTITION_TYPE_FPGA_STAGE2 0xb06 8054 + /* enum: FPGA User XCLBIN / Programmable Region 0 bitstream */ 8055 + #define NVRAM_PARTITION_TYPE_FPGA_REGION0 0xb07 8056 + /* enum: FPGA User XCLBIN (this is intentionally an alias of FPGA_REGION0) */ 8057 + #define NVRAM_PARTITION_TYPE_FPGA_XCLBIN_USER 0xb07 8058 + /* enum: FPGA jump instruction (a.k.a. boot) partition to select Stage1 8059 + * bitstream 8060 + */ 8061 + #define NVRAM_PARTITION_TYPE_FPGA_JUMP 0xb08 8062 + /* enum: FPGA Validate XCLBIN */ 8063 + #define NVRAM_PARTITION_TYPE_FPGA_XCLBIN_VALIDATE 0xb09 8064 + /* enum: FPGA XOCL Configuration information */ 8065 + #define NVRAM_PARTITION_TYPE_FPGA_XOCL_CONFIG 0xb0a 9810 8066 /* enum: MUM firmware partition */ 9811 8067 #define NVRAM_PARTITION_TYPE_MUM_FIRMWARE 0xc00 9812 8068 /* enum: SUC firmware partition (this is intentionally an alias of ··· 9831 8055 #define NVRAM_PARTITION_TYPE_SUC_FIRMWARE 0xc00 9832 8056 /* enum: MUM Non-volatile log output partition. */ 9833 8057 #define NVRAM_PARTITION_TYPE_MUM_LOG 0xc01 8058 + /* enum: SUC Non-volatile log output partition (this is intentionally an alias 8059 + * of MUM_LOG). 8060 + */ 8061 + #define NVRAM_PARTITION_TYPE_SUC_LOG 0xc01 9834 8062 /* enum: MUM Application table partition. */ 9835 8063 #define NVRAM_PARTITION_TYPE_MUM_APPTABLE 0xc02 9836 8064 /* enum: MUM boot rom partition. */ ··· 9849 8069 #define NVRAM_PARTITION_TYPE_EXPANSION_UEFI 0xd00 9850 8070 /* enum: Used by the expansion ROM for logging */ 9851 8071 #define NVRAM_PARTITION_TYPE_PXE_LOG 0x1000 8072 + /* enum: Non-volatile log output partition for Expansion ROM (this is 8073 + * intentionally an alias of PXE_LOG). 8074 + */ 8075 + #define NVRAM_PARTITION_TYPE_EXPROM_LOG 0x1000 9852 8076 /* enum: Used for XIP code of shmbooted images */ 9853 8077 #define NVRAM_PARTITION_TYPE_XIP_SCRATCH 0x1100 9854 8078 /* enum: Spare partition 2 */ ··· 9861 8077 * between XJTAG and Manftest. 9862 8078 */ 9863 8079 #define NVRAM_PARTITION_TYPE_MANUFACTURING 0x1300 8080 + /* enum: Deployment configuration TLV partition (this is intentionally an alias 8081 + * of MANUFACTURING) 8082 + */ 8083 + #define NVRAM_PARTITION_TYPE_DEPLOYMENT_CONFIG 0x1300 9864 8084 /* enum: Spare partition 4 */ 9865 8085 #define NVRAM_PARTITION_TYPE_SPARE_4 0x1400 9866 8086 /* enum: Spare partition 5 */ ··· 9900 8112 #define NVRAM_PARTITION_TYPE_BUNDLE_LOG 0x1e02 9901 8113 /* enum: Partition for Solarflare gPXE bootrom installed via Bundle update. */ 9902 8114 #define NVRAM_PARTITION_TYPE_EXPANSION_ROM_INTERNAL 0x1e03 8115 + /* enum: Partition to store ASN.1 format Bundle Signature for checking. */ 8116 + #define NVRAM_PARTITION_TYPE_BUNDLE_SIGNATURE 0x1e04 8117 + /* enum: Test partition on SmartNIC system microcontroller (SUC) */ 8118 + #define NVRAM_PARTITION_TYPE_SUC_TEST 0x1f00 8119 + /* enum: System microcontroller access to primary FPGA flash. */ 8120 + #define NVRAM_PARTITION_TYPE_SUC_FPGA_PRIMARY 0x1f01 8121 + /* enum: System microcontroller access to secondary FPGA flash (if present) */ 8122 + #define NVRAM_PARTITION_TYPE_SUC_FPGA_SECONDARY 0x1f02 8123 + /* enum: System microcontroller access to primary System-on-Chip flash */ 8124 + #define NVRAM_PARTITION_TYPE_SUC_SOC_PRIMARY 0x1f03 8125 + /* enum: System microcontroller access to secondary System-on-Chip flash (if 8126 + * present) 8127 + */ 8128 + #define NVRAM_PARTITION_TYPE_SUC_SOC_SECONDARY 0x1f04 8129 + /* enum: System microcontroller critical failure logs. Contains structured 8130 + * details of sensors leading up to a critical failure (where the board is shut 8131 + * down). 8132 + */ 8133 + #define NVRAM_PARTITION_TYPE_SUC_FAILURE_LOG 0x1f05 8134 + /* enum: System-on-Chip configuration information (see XN-200467-PS). */ 8135 + #define NVRAM_PARTITION_TYPE_SUC_SOC_CONFIG 0x1f07 8136 + /* enum: System-on-Chip update information. */ 8137 + #define NVRAM_PARTITION_TYPE_SOC_UPDATE 0x2003 9903 8138 /* enum: Start of reserved value range (firmware may use for any purpose) */ 9904 8139 #define NVRAM_PARTITION_TYPE_RESERVED_VALUES_MIN 0xff00 9905 8140 /* enum: End of reserved value range (firmware may use for any purpose) */ 9906 8141 #define NVRAM_PARTITION_TYPE_RESERVED_VALUES_MAX 0xfffd 9907 8142 /* enum: Recovery partition map (provided if real map is missing or corrupt) */ 9908 8143 #define NVRAM_PARTITION_TYPE_RECOVERY_MAP 0xfffe 8144 + /* enum: Recovery Flash Partition Table, see SF-122606-TC. (this is 8145 + * intentionally an alias of RECOVERY_MAP) 8146 + */ 8147 + #define NVRAM_PARTITION_TYPE_RECOVERY_FPT 0xfffe 9909 8148 /* enum: Partition map (real map as stored in flash) */ 9910 8149 #define NVRAM_PARTITION_TYPE_PARTITION_MAP 0xffff 8150 + /* enum: Flash Partition Table, see SF-122606-TC. (this is intentionally an 8151 + * alias of PARTITION_MAP) 8152 + */ 8153 + #define NVRAM_PARTITION_TYPE_FPT 0xffff 9911 8154 #define NVRAM_PARTITION_TYPE_ID_LBN 0 9912 8155 #define NVRAM_PARTITION_TYPE_ID_WIDTH 16 9913 8156 ··· 9987 8168 #define LICENSED_FEATURES_MASK_OFST 0 9988 8169 #define LICENSED_FEATURES_MASK_LEN 8 9989 8170 #define LICENSED_FEATURES_MASK_LO_OFST 0 8171 + #define LICENSED_FEATURES_MASK_LO_LEN 4 8172 + #define LICENSED_FEATURES_MASK_LO_LBN 0 8173 + #define LICENSED_FEATURES_MASK_LO_WIDTH 32 9990 8174 #define LICENSED_FEATURES_MASK_HI_OFST 4 8175 + #define LICENSED_FEATURES_MASK_HI_LEN 4 8176 + #define LICENSED_FEATURES_MASK_HI_LBN 32 8177 + #define LICENSED_FEATURES_MASK_HI_WIDTH 32 9991 8178 #define LICENSED_FEATURES_RX_CUT_THROUGH_OFST 0 9992 8179 #define LICENSED_FEATURES_RX_CUT_THROUGH_LBN 0 9993 8180 #define LICENSED_FEATURES_RX_CUT_THROUGH_WIDTH 1 ··· 10033 8208 #define LICENSED_V3_APPS_MASK_OFST 0 10034 8209 #define LICENSED_V3_APPS_MASK_LEN 8 10035 8210 #define LICENSED_V3_APPS_MASK_LO_OFST 0 8211 + #define LICENSED_V3_APPS_MASK_LO_LEN 4 8212 + #define LICENSED_V3_APPS_MASK_LO_LBN 0 8213 + #define LICENSED_V3_APPS_MASK_LO_WIDTH 32 10036 8214 #define LICENSED_V3_APPS_MASK_HI_OFST 4 8215 + #define LICENSED_V3_APPS_MASK_HI_LEN 4 8216 + #define LICENSED_V3_APPS_MASK_HI_LBN 32 8217 + #define LICENSED_V3_APPS_MASK_HI_WIDTH 32 10037 8218 #define LICENSED_V3_APPS_ONLOAD_OFST 0 10038 8219 #define LICENSED_V3_APPS_ONLOAD_LBN 0 10039 8220 #define LICENSED_V3_APPS_ONLOAD_WIDTH 1 ··· 10097 8266 #define LICENSED_V3_FEATURES_MASK_OFST 0 10098 8267 #define LICENSED_V3_FEATURES_MASK_LEN 8 10099 8268 #define LICENSED_V3_FEATURES_MASK_LO_OFST 0 8269 + #define LICENSED_V3_FEATURES_MASK_LO_LEN 4 8270 + #define LICENSED_V3_FEATURES_MASK_LO_LBN 0 8271 + #define LICENSED_V3_FEATURES_MASK_LO_WIDTH 32 10100 8272 #define LICENSED_V3_FEATURES_MASK_HI_OFST 4 8273 + #define LICENSED_V3_FEATURES_MASK_HI_LEN 4 8274 + #define LICENSED_V3_FEATURES_MASK_HI_LBN 32 8275 + #define LICENSED_V3_FEATURES_MASK_HI_WIDTH 32 10101 8276 #define LICENSED_V3_FEATURES_RX_CUT_THROUGH_OFST 0 10102 8277 #define LICENSED_V3_FEATURES_RX_CUT_THROUGH_LBN 0 10103 8278 #define LICENSED_V3_FEATURES_RX_CUT_THROUGH_WIDTH 1 ··· 10258 8421 #define MC_CMD_INIT_EVQ_IN_SIZE_OFST 0 10259 8422 #define MC_CMD_INIT_EVQ_IN_SIZE_LEN 4 10260 8423 /* Desired instance. Must be set to a specific instance, which is a function 10261 - * local queue index. 8424 + * local queue index. The calling client must be the currently-assigned user of 8425 + * this VI (see MC_CMD_SET_VI_USER). 10262 8426 */ 10263 8427 #define MC_CMD_INIT_EVQ_IN_INSTANCE_OFST 4 10264 8428 #define MC_CMD_INIT_EVQ_IN_INSTANCE_LEN 4 ··· 10331 8493 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_OFST 36 10332 8494 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LEN 8 10333 8495 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_OFST 36 8496 + #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_LEN 4 8497 + #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_LBN 288 8498 + #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_WIDTH 32 10334 8499 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_OFST 40 8500 + #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_LEN 4 8501 + #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_LBN 320 8502 + #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_WIDTH 32 10335 8503 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_MINNUM 1 10336 8504 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_MAXNUM 64 10337 8505 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_MAXNUM_MCDI2 64 ··· 10358 8514 #define MC_CMD_INIT_EVQ_V2_IN_SIZE_OFST 0 10359 8515 #define MC_CMD_INIT_EVQ_V2_IN_SIZE_LEN 4 10360 8516 /* Desired instance. Must be set to a specific instance, which is a function 10361 - * local queue index. 8517 + * local queue index. The calling client must be the currently-assigned user of 8518 + * this VI (see MC_CMD_SET_VI_USER). 10362 8519 */ 10363 8520 #define MC_CMD_INIT_EVQ_V2_IN_INSTANCE_OFST 4 10364 8521 #define MC_CMD_INIT_EVQ_V2_IN_INSTANCE_LEN 4 ··· 10456 8611 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_OFST 36 10457 8612 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LEN 8 10458 8613 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_OFST 36 8614 + #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_LEN 4 8615 + #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_LBN 288 8616 + #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_WIDTH 32 10459 8617 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_OFST 40 8618 + #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_LEN 4 8619 + #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_LBN 320 8620 + #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_WIDTH 32 10460 8621 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_MINNUM 1 10461 8622 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_MAXNUM 64 10462 8623 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_MAXNUM_MCDI2 64 ··· 10487 8636 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_OFST 4 10488 8637 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_LBN 3 10489 8638 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_WIDTH 1 8639 + 8640 + /* MC_CMD_INIT_EVQ_V3_IN msgrequest: Extended request to specify per-queue 8641 + * event merge timeouts. 8642 + */ 8643 + #define MC_CMD_INIT_EVQ_V3_IN_LEN 556 8644 + /* Size, in entries */ 8645 + #define MC_CMD_INIT_EVQ_V3_IN_SIZE_OFST 0 8646 + #define MC_CMD_INIT_EVQ_V3_IN_SIZE_LEN 4 8647 + /* Desired instance. Must be set to a specific instance, which is a function 8648 + * local queue index. The calling client must be the currently-assigned user of 8649 + * this VI (see MC_CMD_SET_VI_USER). 8650 + */ 8651 + #define MC_CMD_INIT_EVQ_V3_IN_INSTANCE_OFST 4 8652 + #define MC_CMD_INIT_EVQ_V3_IN_INSTANCE_LEN 4 8653 + /* The initial timer value. The load value is ignored if the timer mode is DIS. 8654 + */ 8655 + #define MC_CMD_INIT_EVQ_V3_IN_TMR_LOAD_OFST 8 8656 + #define MC_CMD_INIT_EVQ_V3_IN_TMR_LOAD_LEN 4 8657 + /* The reload value is ignored in one-shot modes */ 8658 + #define MC_CMD_INIT_EVQ_V3_IN_TMR_RELOAD_OFST 12 8659 + #define MC_CMD_INIT_EVQ_V3_IN_TMR_RELOAD_LEN 4 8660 + /* tbd */ 8661 + #define MC_CMD_INIT_EVQ_V3_IN_FLAGS_OFST 16 8662 + #define MC_CMD_INIT_EVQ_V3_IN_FLAGS_LEN 4 8663 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INTERRUPTING_OFST 16 8664 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INTERRUPTING_LBN 0 8665 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INTERRUPTING_WIDTH 1 8666 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RPTR_DOS_OFST 16 8667 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RPTR_DOS_LBN 1 8668 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RPTR_DOS_WIDTH 1 8669 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INT_ARMD_OFST 16 8670 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INT_ARMD_LBN 2 8671 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INT_ARMD_WIDTH 1 8672 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_CUT_THRU_OFST 16 8673 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_CUT_THRU_LBN 3 8674 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_CUT_THRU_WIDTH 1 8675 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RX_MERGE_OFST 16 8676 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RX_MERGE_LBN 4 8677 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RX_MERGE_WIDTH 1 8678 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TX_MERGE_OFST 16 8679 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TX_MERGE_LBN 5 8680 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TX_MERGE_WIDTH 1 8681 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_USE_TIMER_OFST 16 8682 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_USE_TIMER_LBN 6 8683 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_USE_TIMER_WIDTH 1 8684 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_OFST 16 8685 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_LBN 7 8686 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_WIDTH 4 8687 + /* enum: All initialisation flags specified by host. */ 8688 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_MANUAL 0x0 8689 + /* enum: MEDFORD only. Certain initialisation flags specified by host may be 8690 + * over-ridden by firmware based on licenses and firmware variant in order to 8691 + * provide the lowest latency achievable. See 8692 + * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 8693 + */ 8694 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_LOW_LATENCY 0x1 8695 + /* enum: MEDFORD only. Certain initialisation flags specified by host may be 8696 + * over-ridden by firmware based on licenses and firmware variant in order to 8697 + * provide the best throughput achievable. See 8698 + * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 8699 + */ 8700 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_THROUGHPUT 0x2 8701 + /* enum: MEDFORD only. Certain initialisation flags may be over-ridden by 8702 + * firmware based on licenses and firmware variant. See 8703 + * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 8704 + */ 8705 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_AUTO 0x3 8706 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_EXT_WIDTH_OFST 16 8707 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_EXT_WIDTH_LBN 11 8708 + #define MC_CMD_INIT_EVQ_V3_IN_FLAG_EXT_WIDTH_WIDTH 1 8709 + #define MC_CMD_INIT_EVQ_V3_IN_TMR_MODE_OFST 20 8710 + #define MC_CMD_INIT_EVQ_V3_IN_TMR_MODE_LEN 4 8711 + /* enum: Disabled */ 8712 + #define MC_CMD_INIT_EVQ_V3_IN_TMR_MODE_DIS 0x0 8713 + /* enum: Immediate */ 8714 + #define MC_CMD_INIT_EVQ_V3_IN_TMR_IMMED_START 0x1 8715 + /* enum: Triggered */ 8716 + #define MC_CMD_INIT_EVQ_V3_IN_TMR_TRIG_START 0x2 8717 + /* enum: Hold-off */ 8718 + #define MC_CMD_INIT_EVQ_V3_IN_TMR_INT_HLDOFF 0x3 8719 + /* Target EVQ for wakeups if in wakeup mode. */ 8720 + #define MC_CMD_INIT_EVQ_V3_IN_TARGET_EVQ_OFST 24 8721 + #define MC_CMD_INIT_EVQ_V3_IN_TARGET_EVQ_LEN 4 8722 + /* Target interrupt if in interrupting mode (note union with target EVQ). Use 8723 + * MC_CMD_RESOURCE_INSTANCE_ANY unless a specific one required for test 8724 + * purposes. 8725 + */ 8726 + #define MC_CMD_INIT_EVQ_V3_IN_IRQ_NUM_OFST 24 8727 + #define MC_CMD_INIT_EVQ_V3_IN_IRQ_NUM_LEN 4 8728 + /* Event Counter Mode. */ 8729 + #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_OFST 28 8730 + #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_LEN 4 8731 + /* enum: Disabled */ 8732 + #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_DIS 0x0 8733 + /* enum: Disabled */ 8734 + #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_RX 0x1 8735 + /* enum: Disabled */ 8736 + #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_TX 0x2 8737 + /* enum: Disabled */ 8738 + #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_RXTX 0x3 8739 + /* Event queue packet count threshold. */ 8740 + #define MC_CMD_INIT_EVQ_V3_IN_COUNT_THRSHLD_OFST 32 8741 + #define MC_CMD_INIT_EVQ_V3_IN_COUNT_THRSHLD_LEN 4 8742 + /* 64-bit address of 4k of 4k-aligned host memory buffer */ 8743 + #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_OFST 36 8744 + #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LEN 8 8745 + #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_OFST 36 8746 + #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_LEN 4 8747 + #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_LBN 288 8748 + #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_WIDTH 32 8749 + #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_OFST 40 8750 + #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_LEN 4 8751 + #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_LBN 320 8752 + #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_WIDTH 32 8753 + #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_MINNUM 1 8754 + #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_MAXNUM 64 8755 + #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_MAXNUM_MCDI2 64 8756 + /* Receive event merge timeout to configure, in nanoseconds. The valid range 8757 + * and granularity are device specific. Specify 0 to use the firmware's default 8758 + * value. This field is ignored and per-queue merging is disabled if 8759 + * MC_CMD_INIT_EVQ/MC_CMD_INIT_EVQ_IN/FLAG_RX_MERGE is not set. 8760 + */ 8761 + #define MC_CMD_INIT_EVQ_V3_IN_RX_MERGE_TIMEOUT_NS_OFST 548 8762 + #define MC_CMD_INIT_EVQ_V3_IN_RX_MERGE_TIMEOUT_NS_LEN 4 8763 + /* Transmit event merge timeout to configure, in nanoseconds. The valid range 8764 + * and granularity are device specific. Specify 0 to use the firmware's default 8765 + * value. This field is ignored and per-queue merging is disabled if 8766 + * MC_CMD_INIT_EVQ/MC_CMD_INIT_EVQ_IN/FLAG_TX_MERGE is not set. 8767 + */ 8768 + #define MC_CMD_INIT_EVQ_V3_IN_TX_MERGE_TIMEOUT_NS_OFST 552 8769 + #define MC_CMD_INIT_EVQ_V3_IN_TX_MERGE_TIMEOUT_NS_LEN 4 8770 + 8771 + /* MC_CMD_INIT_EVQ_V3_OUT msgresponse */ 8772 + #define MC_CMD_INIT_EVQ_V3_OUT_LEN 8 8773 + /* Only valid if INTRFLAG was true */ 8774 + #define MC_CMD_INIT_EVQ_V3_OUT_IRQ_OFST 0 8775 + #define MC_CMD_INIT_EVQ_V3_OUT_IRQ_LEN 4 8776 + /* Actual configuration applied on the card */ 8777 + #define MC_CMD_INIT_EVQ_V3_OUT_FLAGS_OFST 4 8778 + #define MC_CMD_INIT_EVQ_V3_OUT_FLAGS_LEN 4 8779 + #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_CUT_THRU_OFST 4 8780 + #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_CUT_THRU_LBN 0 8781 + #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_CUT_THRU_WIDTH 1 8782 + #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RX_MERGE_OFST 4 8783 + #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RX_MERGE_LBN 1 8784 + #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RX_MERGE_WIDTH 1 8785 + #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_TX_MERGE_OFST 4 8786 + #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_TX_MERGE_LBN 2 8787 + #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_TX_MERGE_WIDTH 1 8788 + #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RXQ_FORCE_EV_MERGING_OFST 4 8789 + #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RXQ_FORCE_EV_MERGING_LBN 3 8790 + #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RXQ_FORCE_EV_MERGING_WIDTH 1 10490 8791 10491 8792 /* QUEUE_CRC_MODE structuredef */ 10492 8793 #define QUEUE_CRC_MODE_LEN 1 ··· 10690 8687 #define MC_CMD_INIT_RXQ_IN_LABEL_OFST 8 10691 8688 #define MC_CMD_INIT_RXQ_IN_LABEL_LEN 4 10692 8689 /* Desired instance. Must be set to a specific instance, which is a function 10693 - * local queue index. 8690 + * local queue index. The calling client must be the currently-assigned user of 8691 + * this VI (see MC_CMD_SET_VI_USER). 10694 8692 */ 10695 8693 #define MC_CMD_INIT_RXQ_IN_INSTANCE_OFST 12 10696 8694 #define MC_CMD_INIT_RXQ_IN_INSTANCE_LEN 4 ··· 10732 8728 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_OFST 28 10733 8729 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LEN 8 10734 8730 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_OFST 28 8731 + #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_LEN 4 8732 + #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_LBN 224 8733 + #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_WIDTH 32 10735 8734 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_OFST 32 8735 + #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_LEN 4 8736 + #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_LBN 256 8737 + #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_WIDTH 32 10736 8738 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_MINNUM 1 10737 8739 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_MAXNUM 28 10738 8740 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_MAXNUM_MCDI2 124 ··· 10762 8752 #define MC_CMD_INIT_RXQ_EXT_IN_LABEL_OFST 8 10763 8753 #define MC_CMD_INIT_RXQ_EXT_IN_LABEL_LEN 4 10764 8754 /* Desired instance. Must be set to a specific instance, which is a function 10765 - * local queue index. 8755 + * local queue index. The calling client must be the currently-assigned user of 8756 + * this VI (see MC_CMD_SET_VI_USER). 10766 8757 */ 10767 8758 #define MC_CMD_INIT_RXQ_EXT_IN_INSTANCE_OFST 12 10768 8759 #define MC_CMD_INIT_RXQ_EXT_IN_INSTANCE_LEN 4 ··· 10837 8826 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_OFST 28 10838 8827 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LEN 8 10839 8828 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_OFST 28 8829 + #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_LEN 4 8830 + #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_LBN 224 8831 + #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_WIDTH 32 10840 8832 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_OFST 32 10841 - #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_NUM 64 8833 + #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_LEN 4 8834 + #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_LBN 256 8835 + #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_WIDTH 32 8836 + #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_MINNUM 0 8837 + #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_MAXNUM 64 8838 + #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_MAXNUM_MCDI2 64 10842 8839 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 10843 8840 #define MC_CMD_INIT_RXQ_EXT_IN_SNAPSHOT_LENGTH_OFST 540 10844 8841 #define MC_CMD_INIT_RXQ_EXT_IN_SNAPSHOT_LENGTH_LEN 4 ··· 10868 8849 #define MC_CMD_INIT_RXQ_V3_IN_LABEL_OFST 8 10869 8850 #define MC_CMD_INIT_RXQ_V3_IN_LABEL_LEN 4 10870 8851 /* Desired instance. Must be set to a specific instance, which is a function 10871 - * local queue index. 8852 + * local queue index. The calling client must be the currently-assigned user of 8853 + * this VI (see MC_CMD_SET_VI_USER). 10872 8854 */ 10873 8855 #define MC_CMD_INIT_RXQ_V3_IN_INSTANCE_OFST 12 10874 8856 #define MC_CMD_INIT_RXQ_V3_IN_INSTANCE_LEN 4 ··· 10943 8923 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_OFST 28 10944 8924 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LEN 8 10945 8925 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_OFST 28 8926 + #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_LEN 4 8927 + #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_LBN 224 8928 + #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_WIDTH 32 10946 8929 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_OFST 32 10947 - #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_NUM 64 8930 + #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_LEN 4 8931 + #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_LBN 256 8932 + #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_WIDTH 32 8933 + #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_MINNUM 0 8934 + #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_MAXNUM 64 8935 + #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_MAXNUM_MCDI2 64 10948 8936 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 10949 8937 #define MC_CMD_INIT_RXQ_V3_IN_SNAPSHOT_LENGTH_OFST 540 10950 8938 #define MC_CMD_INIT_RXQ_V3_IN_SNAPSHOT_LENGTH_LEN 4 ··· 11003 8975 #define MC_CMD_INIT_RXQ_V4_IN_LABEL_OFST 8 11004 8976 #define MC_CMD_INIT_RXQ_V4_IN_LABEL_LEN 4 11005 8977 /* Desired instance. Must be set to a specific instance, which is a function 11006 - * local queue index. 8978 + * local queue index. The calling client must be the currently-assigned user of 8979 + * this VI (see MC_CMD_SET_VI_USER). 11007 8980 */ 11008 8981 #define MC_CMD_INIT_RXQ_V4_IN_INSTANCE_OFST 12 11009 8982 #define MC_CMD_INIT_RXQ_V4_IN_INSTANCE_LEN 4 ··· 11078 9049 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_OFST 28 11079 9050 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LEN 8 11080 9051 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_OFST 28 9052 + #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_LEN 4 9053 + #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_LBN 224 9054 + #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_WIDTH 32 11081 9055 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_OFST 32 11082 - #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_NUM 64 9056 + #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_LEN 4 9057 + #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_LBN 256 9058 + #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_WIDTH 32 9059 + #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_MINNUM 0 9060 + #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_MAXNUM 64 9061 + #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_MAXNUM_MCDI2 64 11083 9062 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 11084 9063 #define MC_CMD_INIT_RXQ_V4_IN_SNAPSHOT_LENGTH_OFST 540 11085 9064 #define MC_CMD_INIT_RXQ_V4_IN_SNAPSHOT_LENGTH_LEN 4 ··· 11151 9114 #define MC_CMD_INIT_RXQ_V5_IN_LABEL_OFST 8 11152 9115 #define MC_CMD_INIT_RXQ_V5_IN_LABEL_LEN 4 11153 9116 /* Desired instance. Must be set to a specific instance, which is a function 11154 - * local queue index. 9117 + * local queue index. The calling client must be the currently-assigned user of 9118 + * this VI (see MC_CMD_SET_VI_USER). 11155 9119 */ 11156 9120 #define MC_CMD_INIT_RXQ_V5_IN_INSTANCE_OFST 12 11157 9121 #define MC_CMD_INIT_RXQ_V5_IN_INSTANCE_LEN 4 ··· 11226 9188 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_OFST 28 11227 9189 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LEN 8 11228 9190 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_OFST 28 9191 + #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_LEN 4 9192 + #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_LBN 224 9193 + #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_WIDTH 32 11229 9194 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_OFST 32 11230 - #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_NUM 64 9195 + #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_LEN 4 9196 + #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_LBN 256 9197 + #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_WIDTH 32 9198 + #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_MINNUM 0 9199 + #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_MAXNUM 64 9200 + #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_MAXNUM_MCDI2 64 11231 9201 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 11232 9202 #define MC_CMD_INIT_RXQ_V5_IN_SNAPSHOT_LENGTH_OFST 540 11233 9203 #define MC_CMD_INIT_RXQ_V5_IN_SNAPSHOT_LENGTH_LEN 4 ··· 11331 9285 #define MC_CMD_INIT_TXQ_IN_LABEL_OFST 8 11332 9286 #define MC_CMD_INIT_TXQ_IN_LABEL_LEN 4 11333 9287 /* Desired instance. Must be set to a specific instance, which is a function 11334 - * local queue index. 9288 + * local queue index. The calling client must be the currently-assigned user of 9289 + * this VI (see MC_CMD_SET_VI_USER). 11335 9290 */ 11336 9291 #define MC_CMD_INIT_TXQ_IN_INSTANCE_OFST 12 11337 9292 #define MC_CMD_INIT_TXQ_IN_INSTANCE_LEN 4 ··· 11376 9329 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_OFST 28 11377 9330 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LEN 8 11378 9331 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_OFST 28 9332 + #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_LEN 4 9333 + #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_LBN 224 9334 + #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_WIDTH 32 11379 9335 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_OFST 32 9336 + #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_LEN 4 9337 + #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_LBN 256 9338 + #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_WIDTH 32 11380 9339 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_MINNUM 1 11381 9340 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_MAXNUM 28 11382 9341 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_MAXNUM_MCDI2 124 ··· 11403 9350 #define MC_CMD_INIT_TXQ_EXT_IN_LABEL_OFST 8 11404 9351 #define MC_CMD_INIT_TXQ_EXT_IN_LABEL_LEN 4 11405 9352 /* Desired instance. Must be set to a specific instance, which is a function 11406 - * local queue index. 9353 + * local queue index. The calling client must be the currently-assigned user of 9354 + * this VI (see MC_CMD_SET_VI_USER). 11407 9355 */ 11408 9356 #define MC_CMD_INIT_TXQ_EXT_IN_INSTANCE_OFST 12 11409 9357 #define MC_CMD_INIT_TXQ_EXT_IN_INSTANCE_LEN 4 ··· 11453 9399 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_DESC_PROXY_OFST 16 11454 9400 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_DESC_PROXY_LBN 16 11455 9401 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_DESC_PROXY_WIDTH 1 9402 + #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_ABS_TARGET_EVQ_OFST 16 9403 + #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_ABS_TARGET_EVQ_LBN 17 9404 + #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_ABS_TARGET_EVQ_WIDTH 1 11456 9405 /* Owner ID to use if in buffer mode (zero if physical) */ 11457 9406 #define MC_CMD_INIT_TXQ_EXT_IN_OWNER_ID_OFST 20 11458 9407 #define MC_CMD_INIT_TXQ_EXT_IN_OWNER_ID_LEN 4 ··· 11466 9409 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_OFST 28 11467 9410 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LEN 8 11468 9411 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_OFST 28 9412 + #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_LEN 4 9413 + #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_LBN 224 9414 + #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_WIDTH 32 11469 9415 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_OFST 32 11470 - #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_MINNUM 1 9416 + #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_LEN 4 9417 + #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_LBN 256 9418 + #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_WIDTH 32 9419 + #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_MINNUM 0 11471 9420 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_MAXNUM 64 11472 9421 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_MAXNUM_MCDI2 64 11473 9422 /* Flags related to Qbb flow control mode. */ ··· 11570 9507 #define MC_CMD_DRIVER_EVENT_IN_DATA_OFST 4 11571 9508 #define MC_CMD_DRIVER_EVENT_IN_DATA_LEN 8 11572 9509 #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_OFST 4 9510 + #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_LEN 4 9511 + #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_LBN 32 9512 + #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_WIDTH 32 11573 9513 #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_OFST 8 9514 + #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_LEN 4 9515 + #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_LBN 64 9516 + #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_WIDTH 32 11574 9517 11575 9518 /* MC_CMD_DRIVER_EVENT_OUT msgresponse */ 11576 9519 #define MC_CMD_DRIVER_EVENT_OUT_LEN 0 ··· 11675 9606 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_OFST 4 11676 9607 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LEN 8 11677 9608 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LO_OFST 4 9609 + #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LO_LEN 4 9610 + #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LO_LBN 32 9611 + #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LO_WIDTH 32 11678 9612 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_HI_OFST 8 9613 + #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_HI_LEN 4 9614 + #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_HI_LBN 64 9615 + #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_HI_WIDTH 32 11679 9616 /* Must be a power of 2 */ 11680 9617 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BLOCK_SIZE_OFST 12 11681 9618 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BLOCK_SIZE_LEN 4 ··· 11691 9616 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_OFST 16 11692 9617 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LEN 8 11693 9618 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LO_OFST 16 9619 + #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LO_LEN 4 9620 + #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LO_LBN 128 9621 + #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LO_WIDTH 32 11694 9622 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_HI_OFST 20 9623 + #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_HI_LEN 4 9624 + #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_HI_LBN 160 9625 + #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_HI_WIDTH 32 11695 9626 /* Must be a power of 2 */ 11696 9627 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BLOCK_SIZE_OFST 24 11697 9628 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BLOCK_SIZE_LEN 4 ··· 11708 9627 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_OFST 28 11709 9628 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LEN 8 11710 9629 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LO_OFST 28 9630 + #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LO_LEN 4 9631 + #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LO_LBN 224 9632 + #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LO_WIDTH 32 11711 9633 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_HI_OFST 32 9634 + #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_HI_LEN 4 9635 + #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_HI_LBN 256 9636 + #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_HI_WIDTH 32 11712 9637 /* Must be a power of 2, or zero if this buffer is not provided */ 11713 9638 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BLOCK_SIZE_OFST 36 11714 9639 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BLOCK_SIZE_LEN 4 ··· 11738 9651 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_OFST 4 11739 9652 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LEN 8 11740 9653 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LO_OFST 4 9654 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LO_LEN 4 9655 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LO_LBN 32 9656 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LO_WIDTH 32 11741 9657 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_HI_OFST 8 9658 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_HI_LEN 4 9659 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_HI_LBN 64 9660 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_HI_WIDTH 32 11742 9661 /* Must be a power of 2 */ 11743 9662 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BLOCK_SIZE_OFST 12 11744 9663 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BLOCK_SIZE_LEN 4 ··· 11754 9661 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_OFST 16 11755 9662 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LEN 8 11756 9663 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LO_OFST 16 9664 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LO_LEN 4 9665 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LO_LBN 128 9666 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LO_WIDTH 32 11757 9667 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_HI_OFST 20 9668 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_HI_LEN 4 9669 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_HI_LBN 160 9670 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_HI_WIDTH 32 11758 9671 /* Must be a power of 2 */ 11759 9672 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BLOCK_SIZE_OFST 24 11760 9673 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BLOCK_SIZE_LEN 4 ··· 11771 9672 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_OFST 28 11772 9673 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LEN 8 11773 9674 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LO_OFST 28 9675 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LO_LEN 4 9676 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LO_LBN 224 9677 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LO_WIDTH 32 11774 9678 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_HI_OFST 32 9679 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_HI_LEN 4 9680 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_HI_LBN 256 9681 + #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_HI_WIDTH 32 11775 9682 /* Must be a power of 2, or zero if this buffer is not provided */ 11776 9683 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BLOCK_SIZE_OFST 36 11777 9684 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BLOCK_SIZE_LEN 4 ··· 11893 9788 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_OFST 12 11894 9789 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LEN 8 11895 9790 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LO_OFST 12 9791 + #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LO_LEN 4 9792 + #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LO_LBN 96 9793 + #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LO_WIDTH 32 11896 9794 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_HI_OFST 16 9795 + #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_HI_LEN 4 9796 + #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_HI_LBN 128 9797 + #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_HI_WIDTH 32 11897 9798 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_MINNUM 1 11898 9799 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_MAXNUM 32 11899 9800 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_MAXNUM_MCDI2 32 ··· 11955 9844 #define MC_CMD_FILTER_OP_IN_HANDLE_OFST 4 11956 9845 #define MC_CMD_FILTER_OP_IN_HANDLE_LEN 8 11957 9846 #define MC_CMD_FILTER_OP_IN_HANDLE_LO_OFST 4 9847 + #define MC_CMD_FILTER_OP_IN_HANDLE_LO_LEN 4 9848 + #define MC_CMD_FILTER_OP_IN_HANDLE_LO_LBN 32 9849 + #define MC_CMD_FILTER_OP_IN_HANDLE_LO_WIDTH 32 11958 9850 #define MC_CMD_FILTER_OP_IN_HANDLE_HI_OFST 8 9851 + #define MC_CMD_FILTER_OP_IN_HANDLE_HI_LEN 4 9852 + #define MC_CMD_FILTER_OP_IN_HANDLE_HI_LBN 64 9853 + #define MC_CMD_FILTER_OP_IN_HANDLE_HI_WIDTH 32 11959 9854 /* The port ID associated with the v-adaptor which should contain this filter. 11960 9855 */ 11961 9856 #define MC_CMD_FILTER_OP_IN_PORT_ID_OFST 12 ··· 12005 9888 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF1_OFST 16 12006 9889 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF1_LBN 11 12007 9890 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF1_WIDTH 1 9891 + #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_OFST 16 9892 + #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_LBN 29 9893 + #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_WIDTH 1 12008 9894 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_OFST 16 12009 9895 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_LBN 30 12010 9896 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1 ··· 12120 10000 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_OFST 4 12121 10001 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LEN 8 12122 10002 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_OFST 4 10003 + #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_LEN 4 10004 + #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_LBN 32 10005 + #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_WIDTH 32 12123 10006 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_OFST 8 10007 + #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_LEN 4 10008 + #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_LBN 64 10009 + #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_WIDTH 32 12124 10010 /* The port ID associated with the v-adaptor which should contain this filter. 12125 10011 */ 12126 10012 #define MC_CMD_FILTER_OP_EXT_IN_PORT_ID_OFST 12 ··· 12212 10086 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_OFST 16 12213 10087 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_LBN 25 12214 10088 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_WIDTH 1 10089 + #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_OFST 16 10090 + #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_LBN 29 10091 + #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_WIDTH 1 12215 10092 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_MCAST_DST_OFST 16 12216 10093 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_MCAST_DST_LBN 30 12217 10094 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1 ··· 12392 10263 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_IP_LEN 16 12393 10264 12394 10265 /* MC_CMD_FILTER_OP_V3_IN msgrequest: FILTER_OP extension to support additional 12395 - * filter actions for Intel's DPDK (Data Plane Development Kit, dpdk.org) via 12396 - * its rte_flow API. This extension is only useful with the sfc_efx driver 12397 - * included as part of DPDK, used in conjunction with the dpdk datapath 10266 + * filter actions for EF100. Some of these actions are also supported on EF10, 10267 + * for Intel's DPDK (Data Plane Development Kit, dpdk.org) via its rte_flow 10268 + * API. In the latter case, this extension is only useful with the sfc_efx 10269 + * driver included as part of DPDK, used in conjunction with the dpdk datapath 12398 10270 * firmware variant. 12399 10271 */ 12400 10272 #define MC_CMD_FILTER_OP_V3_IN_LEN 180 ··· 12408 10278 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_OFST 4 12409 10279 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LEN 8 12410 10280 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_OFST 4 10281 + #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_LEN 4 10282 + #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_LBN 32 10283 + #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_WIDTH 32 12411 10284 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_OFST 8 10285 + #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_LEN 4 10286 + #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_LBN 64 10287 + #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_WIDTH 32 12412 10288 /* The port ID associated with the v-adaptor which should contain this filter. 12413 10289 */ 12414 10290 #define MC_CMD_FILTER_OP_V3_IN_PORT_ID_OFST 12 ··· 12500 10364 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_OFST 16 12501 10365 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_LBN 25 12502 10366 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_WIDTH 1 10367 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_OFST 16 10368 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_LBN 29 10369 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_WIDTH 1 12503 10370 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_MCAST_DST_OFST 16 12504 10371 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_MCAST_DST_LBN 30 12505 10372 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1 ··· 12678 10539 */ 12679 10540 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_IP_OFST 156 12680 10541 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_IP_LEN 16 12681 - /* Set an action for all packets matching this filter. The DPDK driver and dpdk 12682 - * f/w variant use their own specific delivery structures, which are documented 12683 - * in the DPDK Firmware Driver Interface (SF-119419-TC). Requesting anything 12684 - * other than MATCH_ACTION_NONE when the NIC is running another f/w variant 12685 - * will cause the filter insertion to fail with ENOTSUP. 10542 + /* Flags controlling mutations of the packet and/or metadata when the filter is 10543 + * matched. The user_mark and user_flag fields' logic is as follows: if 10544 + * (req.MATCH_BITOR_FLAG == 1) user_flag = req.MATCH_SET_FLAG bit_or user_flag; 10545 + * else user_flag = req.MATCH_SET_FLAG; if (req.MATCH_SET_MARK == 0) user_mark 10546 + * = 0; else if (req.MATCH_BITOR_MARK == 1) user_mark = req.MATCH_SET_MARK 10547 + * bit_or user_mark; else user_mark = req.MATCH_SET_MARK; N.B. These flags 10548 + * overlap with the MATCH_ACTION field, which is deprecated in favour of this 10549 + * field. For the cases where these flags induce a valid encoding of the 10550 + * MATCH_ACTION field, the semantics agree. 10551 + */ 10552 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_FLAGS_OFST 172 10553 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_FLAGS_LEN 4 10554 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_FLAG_OFST 172 10555 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_FLAG_LBN 0 10556 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_FLAG_WIDTH 1 10557 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_OFST 172 10558 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_LBN 1 10559 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_WIDTH 1 10560 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_FLAG_OFST 172 10561 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_FLAG_LBN 2 10562 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_FLAG_WIDTH 1 10563 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_MARK_OFST 172 10564 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_MARK_LBN 3 10565 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_MARK_WIDTH 1 10566 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_STRIP_VLAN_OFST 172 10567 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_STRIP_VLAN_LBN 4 10568 + #define MC_CMD_FILTER_OP_V3_IN_MATCH_STRIP_VLAN_WIDTH 1 10569 + /* Deprecated: the overlapping MATCH_ACTION_FLAGS field exposes all of the 10570 + * functionality of this field in an ABI-backwards-compatible manner, and 10571 + * should be used instead. Any future extensions should be made to the 10572 + * MATCH_ACTION_FLAGS field, and not to this field. Set an action for all 10573 + * packets matching this filter. The DPDK driver and (on EF10) dpdk f/w variant 10574 + * use their own specific delivery structures, which are documented in the DPDK 10575 + * Firmware Driver Interface (SF-119419-TC). Requesting anything other than 10576 + * MATCH_ACTION_NONE on an EF10 NIC running another f/w variant will cause the 10577 + * filter insertion to fail with ENOTSUP. 12686 10578 */ 12687 10579 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_OFST 172 12688 10580 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_LEN 4 ··· 12750 10580 #define MC_CMD_FILTER_OP_OUT_HANDLE_OFST 4 12751 10581 #define MC_CMD_FILTER_OP_OUT_HANDLE_LEN 8 12752 10582 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_OFST 4 10583 + #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_LEN 4 10584 + #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_LBN 32 10585 + #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_WIDTH 32 12753 10586 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_OFST 8 10587 + #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_LEN 4 10588 + #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_LBN 64 10589 + #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_WIDTH 32 12754 10590 /* enum: guaranteed invalid filter handle (low 32 bits) */ 12755 10591 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_INVALID 0xffffffff 12756 10592 /* enum: guaranteed invalid filter handle (high 32 bits) */ ··· 12776 10600 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_OFST 4 12777 10601 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LEN 8 12778 10602 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_OFST 4 10603 + #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_LEN 4 10604 + #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_LBN 32 10605 + #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_WIDTH 32 12779 10606 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_OFST 8 10607 + #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_LEN 4 10608 + #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_LBN 64 10609 + #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_WIDTH 32 12780 10610 /* Enum values, see field(s): */ 12781 10611 /* MC_CMD_FILTER_OP_OUT/HANDLE */ 12782 10612 ··· 12820 10638 * rules inserted by MC_CMD_VNIC_ENCAP_RULE_ADD. (ef100 and later) 12821 10639 */ 12822 10640 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_VNIC_ENCAP_MATCHES 0x5 10641 + /* enum: read the supported encapsulation types for the VNIC */ 10642 + #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_VNIC_ENCAP_TYPES 0x6 12823 10643 12824 10644 /* MC_CMD_GET_PARSER_DISP_INFO_OUT msgresponse */ 12825 10645 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LENMIN 8 ··· 12887 10703 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_MINNUM 0 12888 10704 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_MAXNUM 61 12889 10705 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_MAXNUM_MCDI2 253 10706 + 10707 + /* MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT msgresponse: Returns 10708 + * the supported encapsulation types for the VNIC 10709 + */ 10710 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_LEN 8 10711 + /* The op code OP_GET_SUPPORTED_VNIC_ENCAP_TYPES is returned */ 10712 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_OP_OFST 0 10713 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_OP_LEN 4 10714 + /* Enum values, see field(s): */ 10715 + /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 10716 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPES_SUPPORTED_OFST 4 10717 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPES_SUPPORTED_LEN 4 10718 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_VXLAN_OFST 4 10719 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_VXLAN_LBN 0 10720 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_VXLAN_WIDTH 1 10721 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_NVGRE_OFST 4 10722 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_NVGRE_LBN 1 10723 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_NVGRE_WIDTH 1 10724 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_GENEVE_OFST 4 10725 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_GENEVE_LBN 2 10726 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_GENEVE_WIDTH 1 10727 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_L2GRE_OFST 4 10728 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_L2GRE_LBN 3 10729 + #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_L2GRE_WIDTH 1 12890 10730 12891 10731 12892 10732 /***********************************/ ··· 13057 10849 13058 10850 /* MC_CMD_GET_PORT_ASSIGNMENT_OUT msgresponse */ 13059 10851 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_LEN 4 13060 - /* Identifies the port assignment for this function. */ 10852 + /* Identifies the port assignment for this function. On EF100, it is possible 10853 + * for the function to have no network port assigned (either because it is not 10854 + * yet configured, or assigning a port to a given function personality makes no 10855 + * sense - e.g. virtio-blk), in which case the return value is NULL_PORT. 10856 + */ 13061 10857 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_PORT_OFST 0 13062 10858 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_PORT_LEN 4 10859 + /* enum: Special value to indicate no port is assigned to a function. */ 10860 + #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_NULL_PORT 0xffffffff 13063 10861 13064 10862 13065 10863 /***********************************/ ··· 13223 11009 /***********************************/ 13224 11010 /* MC_CMD_GET_VI_ALLOC_INFO 13225 11011 * Get information about number of VI's and base VI number allocated to this 13226 - * function. 11012 + * function. This message is not available to dynamic clients created by 11013 + * MC_CMD_CLIENT_ALLOC. 13227 11014 */ 13228 11015 #define MC_CMD_GET_VI_ALLOC_INFO 0x8d 13229 11016 #undef MC_CMD_0x8d_PRIVILEGE_CTG ··· 13251 11036 13252 11037 /***********************************/ 13253 11038 /* MC_CMD_DUMP_VI_STATE 13254 - * For CmdClient use. Dump pertinent information on a specific absolute VI. 11039 + * For CmdClient use. Dump pertinent information on a specific absolute VI. The 11040 + * VI must be owned by the calling client or one of its ancestors; usership of 11041 + * the VI (as set by MC_CMD_SET_VI_USER) is not sufficient. 13255 11042 */ 13256 11043 #define MC_CMD_DUMP_VI_STATE 0x8e 13257 11044 #undef MC_CMD_0x8e_PRIVILEGE_CTG ··· 13267 11050 #define MC_CMD_DUMP_VI_STATE_IN_VI_NUMBER_LEN 4 13268 11051 13269 11052 /* MC_CMD_DUMP_VI_STATE_OUT msgresponse */ 13270 - #define MC_CMD_DUMP_VI_STATE_OUT_LEN 96 11053 + #define MC_CMD_DUMP_VI_STATE_OUT_LEN 100 13271 11054 /* The PF part of the function owning this VI. */ 13272 11055 #define MC_CMD_DUMP_VI_STATE_OUT_OWNER_PF_OFST 0 13273 11056 #define MC_CMD_DUMP_VI_STATE_OUT_OWNER_PF_LEN 2 ··· 13290 11073 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_OFST 12 13291 11074 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LEN 8 13292 11075 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LO_OFST 12 11076 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LO_LEN 4 11077 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LO_LBN 96 11078 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LO_WIDTH 32 13293 11079 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_HI_OFST 16 11080 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_HI_LEN 4 11081 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_HI_LBN 128 11082 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_HI_WIDTH 32 13294 11083 /* Raw evq timer table data. */ 13295 11084 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_OFST 20 13296 11085 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LEN 8 13297 11086 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LO_OFST 20 11087 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LO_LEN 4 11088 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LO_LBN 160 11089 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LO_WIDTH 32 13298 11090 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_HI_OFST 24 11091 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_HI_LEN 4 11092 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_HI_LBN 192 11093 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_HI_WIDTH 32 13299 11094 /* Combined metadata field. */ 13300 11095 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_OFST 28 13301 11096 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_LEN 4 ··· 13324 11095 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_OFST 32 13325 11096 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LEN 8 13326 11097 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LO_OFST 32 11098 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LO_LEN 4 11099 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LO_LBN 256 11100 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LO_WIDTH 32 13327 11101 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_HI_OFST 36 11102 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_HI_LEN 4 11103 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_HI_LBN 288 11104 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_HI_WIDTH 32 13328 11105 /* TXDPCPU raw table data for queue. */ 13329 11106 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_OFST 40 13330 11107 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LEN 8 13331 11108 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LO_OFST 40 11109 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LO_LEN 4 11110 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LO_LBN 320 11111 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LO_WIDTH 32 13332 11112 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_HI_OFST 44 11113 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_HI_LEN 4 11114 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_HI_LBN 352 11115 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_HI_WIDTH 32 13333 11116 /* TXDPCPU raw table data for queue. */ 13334 11117 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_OFST 48 13335 11118 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LEN 8 13336 11119 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LO_OFST 48 11120 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LO_LEN 4 11121 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LO_LBN 384 11122 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LO_WIDTH 32 13337 11123 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_HI_OFST 52 11124 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_HI_LEN 4 11125 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_HI_LBN 416 11126 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_HI_WIDTH 32 13338 11127 /* Combined metadata field. */ 13339 11128 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_OFST 56 13340 11129 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LEN 8 13341 11130 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LO_OFST 56 11131 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LO_LEN 4 11132 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LO_LBN 448 11133 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LO_WIDTH 32 13342 11134 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_HI_OFST 60 11135 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_HI_LEN 4 11136 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_HI_LBN 480 11137 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_HI_WIDTH 32 13343 11138 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_BASE_OFST 56 13344 11139 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_BASE_LBN 0 13345 11140 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_BASE_WIDTH 16 ··· 13383 11130 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_OFST 64 13384 11131 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LEN 8 13385 11132 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LO_OFST 64 11133 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LO_LEN 4 11134 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LO_LBN 512 11135 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LO_WIDTH 32 13386 11136 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_HI_OFST 68 11137 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_HI_LEN 4 11138 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_HI_LBN 544 11139 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_HI_WIDTH 32 13387 11140 /* RXDPCPU raw table data for queue. */ 13388 11141 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_OFST 72 13389 11142 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LEN 8 13390 11143 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LO_OFST 72 11144 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LO_LEN 4 11145 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LO_LBN 576 11146 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LO_WIDTH 32 13391 11147 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_HI_OFST 76 11148 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_HI_LEN 4 11149 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_HI_LBN 608 11150 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_HI_WIDTH 32 13392 11151 /* Reserved, currently 0. */ 13393 11152 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_OFST 80 13394 11153 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LEN 8 13395 11154 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LO_OFST 80 11155 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LO_LEN 4 11156 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LO_LBN 640 11157 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LO_WIDTH 32 13396 11158 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_HI_OFST 84 11159 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_HI_LEN 4 11160 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_HI_LBN 672 11161 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_HI_WIDTH 32 13397 11162 /* Combined metadata field. */ 13398 11163 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_OFST 88 13399 11164 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LEN 8 13400 11165 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LO_OFST 88 11166 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LO_LEN 4 11167 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LO_LBN 704 11168 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LO_WIDTH 32 13401 11169 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_HI_OFST 92 11170 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_HI_LEN 4 11171 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_HI_LBN 736 11172 + #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_HI_WIDTH 32 13402 11173 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_BASE_OFST 88 13403 11174 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_BASE_LBN 0 13404 11175 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_BASE_WIDTH 16 ··· 13435 11158 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_WAITCOUNT_OFST 88 13436 11159 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_WAITCOUNT_LBN 32 13437 11160 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_WAITCOUNT_WIDTH 8 11161 + /* Current user, as assigned by MC_CMD_SET_VI_USER. */ 11162 + #define MC_CMD_DUMP_VI_STATE_OUT_USER_CLIENT_ID_OFST 96 11163 + #define MC_CMD_DUMP_VI_STATE_OUT_USER_CLIENT_ID_LEN 4 13438 11164 13439 11165 13440 11166 /***********************************/ ··· 13480 11200 13481 11201 /***********************************/ 13482 11202 /* MC_CMD_GET_VI_TLP_PROCESSING 13483 - * Get TLP steering and ordering information for a VI. 11203 + * Get TLP steering and ordering information for a VI. The caller must have the 11204 + * GRP_FUNC_DMA privilege and must be the currently-assigned user of this VI or 11205 + * an ancestor of the current user (see MC_CMD_SET_VI_USER). 13484 11206 */ 13485 11207 #define MC_CMD_GET_VI_TLP_PROCESSING 0xb0 13486 11208 #undef MC_CMD_0xb0_PRIVILEGE_CTG ··· 13521 11239 13522 11240 /***********************************/ 13523 11241 /* MC_CMD_SET_VI_TLP_PROCESSING 13524 - * Set TLP steering and ordering information for a VI. 11242 + * Set TLP steering and ordering information for a VI. The caller must have the 11243 + * GRP_FUNC_DMA privilege and must be the currently-assigned user of this VI or 11244 + * an ancestor of the current user (see MC_CMD_SET_VI_USER). 13525 11245 */ 13526 11246 #define MC_CMD_SET_VI_TLP_PROCESSING 0xb1 13527 11247 #undef MC_CMD_0xb1_PRIVILEGE_CTG ··· 16781 14497 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 16782 14498 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 16783 14499 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 14500 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 14501 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 14502 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 14503 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 14504 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 14505 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 14506 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 14507 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 14508 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 14509 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 14510 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 14511 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 14512 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 14513 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 14514 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 14515 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_MPORT_JOURNAL_OFST 148 14516 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_MPORT_JOURNAL_LBN 14 14517 + #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1 16784 14518 16785 14519 /* MC_CMD_GET_CAPABILITIES_V8_OUT msgresponse */ 16786 14520 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LEN 160 ··· 17285 14983 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 17286 14984 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 17287 14985 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 14986 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 14987 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 14988 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 14989 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 14990 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 14991 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 14992 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 14993 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 14994 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 14995 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 14996 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 14997 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 14998 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 14999 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 15000 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 15001 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_MPORT_JOURNAL_OFST 148 15002 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_MPORT_JOURNAL_LBN 14 15003 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1 17288 15004 /* These bits are reserved for communicating test-specific capabilities to 17289 15005 * host-side test software. All production drivers should treat this field as 17290 15006 * opaque. ··· 17310 14990 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_OFST 152 17311 14991 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LEN 8 17312 14992 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_OFST 152 14993 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_LEN 4 14994 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_LBN 1216 14995 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_WIDTH 32 17313 14996 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_OFST 156 14997 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_LEN 4 14998 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_LBN 1248 14999 + #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_WIDTH 32 17314 15000 17315 15001 /* MC_CMD_GET_CAPABILITIES_V9_OUT msgresponse */ 17316 15002 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LEN 184 ··· 17803 15477 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 17804 15478 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 17805 15479 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 15480 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 15481 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 15482 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 15483 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 15484 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 15485 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 15486 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 15487 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 15488 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 15489 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 15490 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 15491 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 15492 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 15493 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 15494 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 15495 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_MPORT_JOURNAL_OFST 148 15496 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_MPORT_JOURNAL_LBN 14 15497 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1 17806 15498 /* These bits are reserved for communicating test-specific capabilities to 17807 15499 * host-side test software. All production drivers should treat this field as 17808 15500 * opaque. ··· 17828 15484 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_OFST 152 17829 15485 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LEN 8 17830 15486 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_OFST 152 15487 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_LEN 4 15488 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_LBN 1216 15489 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_WIDTH 32 17831 15490 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_OFST 156 15491 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_LEN 4 15492 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_LBN 1248 15493 + #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_WIDTH 32 17832 15494 /* The minimum size (in table entries) of indirection table to be allocated 17833 15495 * from the pool for an RSS context. Note that the table size used must be a 17834 15496 * power of 2. ··· 17870 15520 */ 17871 15521 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_TABLE_POOL_SIZE_OFST 180 17872 15522 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_TABLE_POOL_SIZE_LEN 4 15523 + 15524 + /* MC_CMD_GET_CAPABILITIES_V10_OUT msgresponse */ 15525 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_LEN 192 15526 + /* First word of flags. */ 15527 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS1_OFST 0 15528 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS1_LEN 4 15529 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VPORT_RECONFIGURE_OFST 0 15530 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VPORT_RECONFIGURE_LBN 3 15531 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VPORT_RECONFIGURE_WIDTH 1 15532 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_OFST 0 15533 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_LBN 4 15534 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_WIDTH 1 15535 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_QUERY_OFST 0 15536 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_QUERY_LBN 5 15537 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_QUERY_WIDTH 1 15538 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 15539 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 15540 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 15541 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_OFST 0 15542 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_LBN 7 15543 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 15544 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_FORCE_EVENT_MERGING_OFST 0 15545 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_FORCE_EVENT_MERGING_LBN 8 15546 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 15547 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_SET_MAC_ENHANCED_OFST 0 15548 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_SET_MAC_ENHANCED_LBN 9 15549 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_SET_MAC_ENHANCED_WIDTH 1 15550 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 15551 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 15552 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 15553 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 15554 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 15555 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 15556 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 15557 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 15558 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 15559 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_ADDITIONAL_RSS_MODES_OFST 0 15560 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_ADDITIONAL_RSS_MODES_LBN 13 15561 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 15562 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_QBB_OFST 0 15563 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_QBB_LBN 14 15564 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_QBB_WIDTH 1 15565 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 15566 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 15567 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 15568 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_RSS_LIMITED_OFST 0 15569 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_RSS_LIMITED_LBN 16 15570 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_RSS_LIMITED_WIDTH 1 15571 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_OFST 0 15572 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_LBN 17 15573 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_WIDTH 1 15574 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_INCLUDE_FCS_OFST 0 15575 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_INCLUDE_FCS_LBN 18 15576 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_INCLUDE_FCS_WIDTH 1 15577 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VLAN_INSERTION_OFST 0 15578 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VLAN_INSERTION_LBN 19 15579 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VLAN_INSERTION_WIDTH 1 15580 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_OFST 0 15581 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_LBN 20 15582 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_WIDTH 1 15583 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_OFST 0 15584 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_LBN 21 15585 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_WIDTH 1 15586 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_0_OFST 0 15587 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_0_LBN 22 15588 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_0_WIDTH 1 15589 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_14_OFST 0 15590 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_14_LBN 23 15591 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_14_WIDTH 1 15592 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_TIMESTAMP_OFST 0 15593 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_TIMESTAMP_LBN 24 15594 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_TIMESTAMP_WIDTH 1 15595 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_BATCHING_OFST 0 15596 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_BATCHING_LBN 25 15597 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_BATCHING_WIDTH 1 15598 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCAST_FILTER_CHAINING_OFST 0 15599 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCAST_FILTER_CHAINING_LBN 26 15600 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCAST_FILTER_CHAINING_WIDTH 1 15601 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_PM_AND_RXDP_COUNTERS_OFST 0 15602 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_PM_AND_RXDP_COUNTERS_LBN 27 15603 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 15604 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DISABLE_SCATTER_OFST 0 15605 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DISABLE_SCATTER_LBN 28 15606 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DISABLE_SCATTER_WIDTH 1 15607 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 15608 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 15609 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 15610 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_OFST 0 15611 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_LBN 30 15612 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_WIDTH 1 15613 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VXLAN_NVGRE_OFST 0 15614 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VXLAN_NVGRE_LBN 31 15615 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VXLAN_NVGRE_WIDTH 1 15616 + /* RxDPCPU firmware id. */ 15617 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DPCPU_FW_ID_OFST 4 15618 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DPCPU_FW_ID_LEN 2 15619 + /* enum: Standard RXDP firmware */ 15620 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP 0x0 15621 + /* enum: Low latency RXDP firmware */ 15622 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_LOW_LATENCY 0x1 15623 + /* enum: Packed stream RXDP firmware */ 15624 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_PACKED_STREAM 0x2 15625 + /* enum: Rules engine RXDP firmware */ 15626 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_RULES_ENGINE 0x5 15627 + /* enum: DPDK RXDP firmware */ 15628 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_DPDK 0x6 15629 + /* enum: BIST RXDP firmware */ 15630 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_BIST 0x10a 15631 + /* enum: RXDP Test firmware image 1 */ 15632 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 15633 + /* enum: RXDP Test firmware image 2 */ 15634 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 15635 + /* enum: RXDP Test firmware image 3 */ 15636 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 15637 + /* enum: RXDP Test firmware image 4 */ 15638 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 15639 + /* enum: RXDP Test firmware image 5 */ 15640 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_BACKPRESSURE 0x105 15641 + /* enum: RXDP Test firmware image 6 */ 15642 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 15643 + /* enum: RXDP Test firmware image 7 */ 15644 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 15645 + /* enum: RXDP Test firmware image 8 */ 15646 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 15647 + /* enum: RXDP Test firmware image 9 */ 15648 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 15649 + /* enum: RXDP Test firmware image 10 */ 15650 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_SLOW 0x10c 15651 + /* TxDPCPU firmware id. */ 15652 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DPCPU_FW_ID_OFST 6 15653 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DPCPU_FW_ID_LEN 2 15654 + /* enum: Standard TXDP firmware */ 15655 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP 0x0 15656 + /* enum: Low latency TXDP firmware */ 15657 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_LOW_LATENCY 0x1 15658 + /* enum: High packet rate TXDP firmware */ 15659 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_HIGH_PACKET_RATE 0x3 15660 + /* enum: Rules engine TXDP firmware */ 15661 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_RULES_ENGINE 0x5 15662 + /* enum: DPDK TXDP firmware */ 15663 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_DPDK 0x6 15664 + /* enum: BIST TXDP firmware */ 15665 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_BIST 0x12d 15666 + /* enum: TXDP Test firmware image 1 */ 15667 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 15668 + /* enum: TXDP Test firmware image 2 */ 15669 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 15670 + /* enum: TXDP CSR bus test firmware */ 15671 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_TEST_FW_CSR 0x103 15672 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_OFST 8 15673 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_LEN 2 15674 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_REV_OFST 8 15675 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_REV_LBN 0 15676 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_REV_WIDTH 12 15677 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_TYPE_OFST 8 15678 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_TYPE_LBN 12 15679 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 15680 + /* enum: reserved value - do not use (may indicate alternative interpretation 15681 + * of REV field in future) 15682 + */ 15683 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_RESERVED 0x0 15684 + /* enum: Trivial RX PD firmware for early Huntington development (Huntington 15685 + * development only) 15686 + */ 15687 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 15688 + /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 15689 + */ 15690 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15691 + /* enum: RX PD firmware with approximately Siena-compatible behaviour 15692 + * (Huntington development only) 15693 + */ 15694 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 15695 + /* enum: Full featured RX PD production firmware */ 15696 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 15697 + /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15698 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_VSWITCH 0x3 15699 + /* enum: siena_compat variant RX PD firmware using PM rather than MAC 15700 + * (Huntington development only) 15701 + */ 15702 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15703 + /* enum: Low latency RX PD production firmware */ 15704 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 15705 + /* enum: Packed stream RX PD production firmware */ 15706 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 15707 + /* enum: RX PD firmware handling layer 2 only for high packet rate performance 15708 + * tests (Medford development only) 15709 + */ 15710 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 15711 + /* enum: Rules engine RX PD production firmware */ 15712 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 15713 + /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15714 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_L3XUDP 0x9 15715 + /* enum: DPDK RX PD production firmware */ 15716 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_DPDK 0xa 15717 + /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15718 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15719 + /* enum: RX PD firmware parsing but not filtering network overlay tunnel 15720 + * encapsulations (Medford development only) 15721 + */ 15722 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 15723 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_OFST 10 15724 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_LEN 2 15725 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_REV_OFST 10 15726 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_REV_LBN 0 15727 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_REV_WIDTH 12 15728 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_TYPE_OFST 10 15729 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_TYPE_LBN 12 15730 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 15731 + /* enum: reserved value - do not use (may indicate alternative interpretation 15732 + * of REV field in future) 15733 + */ 15734 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_RESERVED 0x0 15735 + /* enum: Trivial TX PD firmware for early Huntington development (Huntington 15736 + * development only) 15737 + */ 15738 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 15739 + /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 15740 + */ 15741 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15742 + /* enum: TX PD firmware with approximately Siena-compatible behaviour 15743 + * (Huntington development only) 15744 + */ 15745 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 15746 + /* enum: Full featured TX PD production firmware */ 15747 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 15748 + /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15749 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_VSWITCH 0x3 15750 + /* enum: siena_compat variant TX PD firmware using PM rather than MAC 15751 + * (Huntington development only) 15752 + */ 15753 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15754 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 15755 + /* enum: TX PD firmware handling layer 2 only for high packet rate performance 15756 + * tests (Medford development only) 15757 + */ 15758 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 15759 + /* enum: Rules engine TX PD production firmware */ 15760 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 15761 + /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15762 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_L3XUDP 0x9 15763 + /* enum: DPDK TX PD production firmware */ 15764 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_DPDK 0xa 15765 + /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15766 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15767 + /* Hardware capabilities of NIC */ 15768 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_HW_CAPABILITIES_OFST 12 15769 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_HW_CAPABILITIES_LEN 4 15770 + /* Licensed capabilities */ 15771 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_LICENSE_CAPABILITIES_OFST 16 15772 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_LICENSE_CAPABILITIES_LEN 4 15773 + /* Second word of flags. Not present on older firmware (check the length). */ 15774 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS2_OFST 20 15775 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS2_LEN 4 15776 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_OFST 20 15777 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_LBN 0 15778 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_WIDTH 1 15779 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_OFST 20 15780 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_LBN 1 15781 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_WIDTH 1 15782 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVQ_TIMER_CTRL_OFST 20 15783 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVQ_TIMER_CTRL_LBN 2 15784 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVQ_TIMER_CTRL_WIDTH 1 15785 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVENT_CUT_THROUGH_OFST 20 15786 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVENT_CUT_THROUGH_LBN 3 15787 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVENT_CUT_THROUGH_WIDTH 1 15788 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_OFST 20 15789 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_LBN 4 15790 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_WIDTH 1 15791 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VFIFO_ULL_MODE_OFST 20 15792 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VFIFO_ULL_MODE_LBN 5 15793 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 15794 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 15795 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 15796 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 15797 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 15798 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 15799 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 15800 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_OFST 20 15801 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_LBN 7 15802 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_WIDTH 1 15803 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_TIMESTAMPING_OFST 20 15804 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_TIMESTAMPING_LBN 8 15805 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 15806 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TIMESTAMP_OFST 20 15807 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TIMESTAMP_LBN 9 15808 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TIMESTAMP_WIDTH 1 15809 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_SNIFF_OFST 20 15810 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_SNIFF_LBN 10 15811 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_SNIFF_WIDTH 1 15812 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_SNIFF_OFST 20 15813 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_SNIFF_LBN 11 15814 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_SNIFF_WIDTH 1 15815 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 15816 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 15817 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 15818 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_BACKGROUND_OFST 20 15819 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_BACKGROUND_LBN 13 15820 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_BACKGROUND_WIDTH 1 15821 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_DB_RETURN_OFST 20 15822 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_DB_RETURN_LBN 14 15823 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_DB_RETURN_WIDTH 1 15824 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_CTPIO_OFST 20 15825 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_CTPIO_LBN 15 15826 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_CTPIO_WIDTH 1 15827 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_SUPPORT_OFST 20 15828 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_SUPPORT_LBN 16 15829 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_SUPPORT_WIDTH 1 15830 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_BOUND_OFST 20 15831 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_BOUND_LBN 17 15832 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_BOUND_WIDTH 1 15833 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 15834 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 15835 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 15836 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_FLAG_OFST 20 15837 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_FLAG_LBN 19 15838 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_FLAG_WIDTH 1 15839 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_OFST 20 15840 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_LBN 20 15841 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_WIDTH 1 15842 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 15843 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 15844 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 15845 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 15846 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 15847 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 15848 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_L3XUDP_SUPPORT_OFST 20 15849 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_L3XUDP_SUPPORT_LBN 22 15850 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_L3XUDP_SUPPORT_WIDTH 1 15851 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 15852 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 15853 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 15854 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_SPREADING_OFST 20 15855 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_SPREADING_LBN 24 15856 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_SPREADING_WIDTH 1 15857 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_HLB_IDLE_OFST 20 15858 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_HLB_IDLE_LBN 25 15859 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_HLB_IDLE_WIDTH 1 15860 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 15861 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 15862 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 15863 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 15864 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 15865 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 15866 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_BUNDLE_UPDATE_OFST 20 15867 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_BUNDLE_UPDATE_LBN 28 15868 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_BUNDLE_UPDATE_WIDTH 1 15869 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V3_OFST 20 15870 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V3_LBN 29 15871 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V3_WIDTH 1 15872 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_SENSORS_OFST 20 15873 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_SENSORS_LBN 30 15874 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_SENSORS_WIDTH 1 15875 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 15876 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 15877 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 15878 + /* Number of FATSOv2 contexts per datapath supported by this NIC (when 15879 + * TX_TSO_V2 == 1). Not present on older firmware (check the length). 15880 + */ 15881 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 15882 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 15883 + /* One byte per PF containing the number of the external port assigned to this 15884 + * PF, indexed by PF number. Special values indicate that a PF is either not 15885 + * present or not assigned. 15886 + */ 15887 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 15888 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 15889 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 15890 + /* enum: The caller is not permitted to access information on this PF. */ 15891 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_ACCESS_NOT_PERMITTED 0xff 15892 + /* enum: PF does not exist. */ 15893 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_PF_NOT_PRESENT 0xfe 15894 + /* enum: PF does exist but is not assigned to any external port. */ 15895 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_PF_NOT_ASSIGNED 0xfd 15896 + /* enum: This value indicates that PF is assigned, but it cannot be expressed 15897 + * in this field. It is intended for a possible future situation where a more 15898 + * complex scheme of PFs to ports mapping is being used. The future driver 15899 + * should look for a new field supporting the new scheme. The current/old 15900 + * driver should treat this value as PF_NOT_ASSIGNED. 15901 + */ 15902 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 15903 + /* One byte per PF containing the number of its VFs, indexed by PF number. A 15904 + * special value indicates that a PF is not present. 15905 + */ 15906 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VFS_PER_PF_OFST 42 15907 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VFS_PER_PF_LEN 1 15908 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VFS_PER_PF_NUM 16 15909 + /* enum: The caller is not permitted to access information on this PF. */ 15910 + /* MC_CMD_GET_CAPABILITIES_V10_OUT_ACCESS_NOT_PERMITTED 0xff */ 15911 + /* enum: PF does not exist. */ 15912 + /* MC_CMD_GET_CAPABILITIES_V10_OUT_PF_NOT_PRESENT 0xfe */ 15913 + /* Number of VIs available for each external port */ 15914 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VIS_PER_PORT_OFST 58 15915 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VIS_PER_PORT_LEN 2 15916 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VIS_PER_PORT_NUM 4 15917 + /* Size of RX descriptor cache expressed as binary logarithm The actual size 15918 + * equals (2 ^ RX_DESC_CACHE_SIZE) 15919 + */ 15920 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DESC_CACHE_SIZE_OFST 66 15921 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DESC_CACHE_SIZE_LEN 1 15922 + /* Size of TX descriptor cache expressed as binary logarithm The actual size 15923 + * equals (2 ^ TX_DESC_CACHE_SIZE) 15924 + */ 15925 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DESC_CACHE_SIZE_OFST 67 15926 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DESC_CACHE_SIZE_LEN 1 15927 + /* Total number of available PIO buffers */ 15928 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_PIO_BUFFS_OFST 68 15929 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_PIO_BUFFS_LEN 2 15930 + /* Size of a single PIO buffer */ 15931 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_SIZE_PIO_BUFF_OFST 70 15932 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_SIZE_PIO_BUFF_LEN 2 15933 + /* On chips later than Medford the amount of address space assigned to each VI 15934 + * is configurable. This is a global setting that the driver must query to 15935 + * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 15936 + * with 8k VI windows. 15937 + */ 15938 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_OFST 72 15939 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_LEN 1 15940 + /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 15941 + * CTPIO is not mapped. 15942 + */ 15943 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_8K 0x0 15944 + /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 15945 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_16K 0x1 15946 + /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 15947 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_64K 0x2 15948 + /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 15949 + * (SF-115995-SW) in the present configuration of firmware and port mode. 15950 + */ 15951 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 15952 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 15953 + /* Number of buffers per adapter that can be used for VFIFO Stuffing 15954 + * (SF-115995-SW) in the present configuration of firmware and port mode. 15955 + */ 15956 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 15957 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 15958 + /* Entry count in the MAC stats array, including the final GENERATION_END 15959 + * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 15960 + * hold at least this many 64-bit stats values, if they wish to receive all 15961 + * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 15962 + * stats array returned will be truncated. 15963 + */ 15964 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_NUM_STATS_OFST 76 15965 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_NUM_STATS_LEN 2 15966 + /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 15967 + * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 15968 + */ 15969 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_MAX_OFST 80 15970 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_MAX_LEN 4 15971 + /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 15972 + * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 15973 + * they create an RX queue. Due to hardware limitations, only a small number of 15974 + * different buffer sizes may be available concurrently. Nonzero entries in 15975 + * this array are the sizes of buffers which the system guarantees will be 15976 + * available for use. If the list is empty, there are no limitations on 15977 + * concurrent buffer sizes. 15978 + */ 15979 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 15980 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 15981 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 15982 + /* Third word of flags. Not present on older firmware (check the length). */ 15983 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS3_OFST 148 15984 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS3_LEN 4 15985 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_WOL_ETHERWAKE_OFST 148 15986 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_WOL_ETHERWAKE_LBN 0 15987 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_WOL_ETHERWAKE_WIDTH 1 15988 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_OFST 148 15989 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_LBN 1 15990 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_WIDTH 1 15991 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 15992 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 15993 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 15994 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_SUPPORTED_OFST 148 15995 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_SUPPORTED_LBN 3 15996 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_SUPPORTED_WIDTH 1 15997 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_OFST 148 15998 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_LBN 4 15999 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_WIDTH 1 16000 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 16001 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 16002 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 16003 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 16004 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 16005 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 16006 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 16007 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 16008 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 16009 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 16010 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 16011 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 16012 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 16013 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 16014 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 16015 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 16016 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 16017 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 16018 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 16019 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 16020 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 16021 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 16022 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 16023 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 16024 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_MPORT_JOURNAL_OFST 148 16025 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_MPORT_JOURNAL_LBN 14 16026 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1 16027 + /* These bits are reserved for communicating test-specific capabilities to 16028 + * host-side test software. All production drivers should treat this field as 16029 + * opaque. 16030 + */ 16031 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_OFST 152 16032 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LEN 8 16033 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_OFST 152 16034 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_LEN 4 16035 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_LBN 1216 16036 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_WIDTH 32 16037 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_OFST 156 16038 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_LEN 4 16039 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_LBN 1248 16040 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_WIDTH 32 16041 + /* The minimum size (in table entries) of indirection table to be allocated 16042 + * from the pool for an RSS context. Note that the table size used must be a 16043 + * power of 2. 16044 + */ 16045 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_OFST 160 16046 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_LEN 4 16047 + /* The maximum size (in table entries) of indirection table to be allocated 16048 + * from the pool for an RSS context. Note that the table size used must be a 16049 + * power of 2. 16050 + */ 16051 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_OFST 164 16052 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_LEN 4 16053 + /* The maximum number of queues that can be used by an RSS context in exclusive 16054 + * mode. In exclusive mode the context has a configurable indirection table and 16055 + * a configurable RSS key. 16056 + */ 16057 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_QUEUES_OFST 168 16058 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_QUEUES_LEN 4 16059 + /* The maximum number of queues that can be used by an RSS context in even- 16060 + * spreading mode. In even-spreading mode the context has no indirection table 16061 + * but it does have a configurable RSS key. 16062 + */ 16063 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_OFST 172 16064 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_LEN 4 16065 + /* The total number of RSS contexts supported. Note that the number of 16066 + * available contexts using indirection tables is also limited by the 16067 + * availability of indirection table space allocated from a common pool. 16068 + */ 16069 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_NUM_CONTEXTS_OFST 176 16070 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_NUM_CONTEXTS_LEN 4 16071 + /* The total amount of indirection table space that can be shared between RSS 16072 + * contexts. 16073 + */ 16074 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_TABLE_POOL_SIZE_OFST 180 16075 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_TABLE_POOL_SIZE_LEN 4 16076 + /* A bitmap of the queue sizes the device can provide, where bit N being set 16077 + * indicates that 2**N is a valid size. The device may be limited in the number 16078 + * of different queue sizes that can exist simultaneously, so a bit being set 16079 + * here does not guarantee that an attempt to create a queue of that size will 16080 + * succeed. 16081 + */ 16082 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_SUPPORTED_QUEUE_SIZES_OFST 184 16083 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_SUPPORTED_QUEUE_SIZES_LEN 4 16084 + /* A bitmap of queue sizes that are always available, in the same format as 16085 + * SUPPORTED_QUEUE_SIZES. Attempting to create a queue with one of these sizes 16086 + * will never fail due to unavailability of the requested size. 16087 + */ 16088 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_QUEUE_SIZES_OFST 188 16089 + #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_QUEUE_SIZES_LEN 4 17873 16090 17874 16091 17875 16092 /***********************************/ ··· 18646 15729 /* Handle for allocated push I/O buffer. */ 18647 15730 #define MC_CMD_LINK_PIOBUF_IN_PIOBUF_HANDLE_OFST 0 18648 15731 #define MC_CMD_LINK_PIOBUF_IN_PIOBUF_HANDLE_LEN 4 18649 - /* Function Local Instance (VI) number. */ 15732 + /* Function Local Instance (VI) number which has a TxQ allocated to it. */ 18650 15733 #define MC_CMD_LINK_PIOBUF_IN_TXQ_INSTANCE_OFST 4 18651 15734 #define MC_CMD_LINK_PIOBUF_IN_TXQ_INSTANCE_LEN 4 18652 15735 ··· 20220 17303 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_OFST 0 20221 17304 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LEN 8 20222 17305 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LO_OFST 0 17306 + #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LO_LEN 4 17307 + #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LO_LBN 0 17308 + #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LO_WIDTH 32 20223 17309 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_HI_OFST 4 17310 + #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_HI_LEN 4 17311 + #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_HI_LBN 32 17312 + #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_HI_WIDTH 32 20224 17313 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_MINNUM 1 20225 17314 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_MAXNUM 31 20226 17315 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_MAXNUM_MCDI2 127 ··· 20425 17502 #define MC_CMD_GET_FUNCTION_INFO_OUT_PF_LEN 4 20426 17503 #define MC_CMD_GET_FUNCTION_INFO_OUT_VF_OFST 4 20427 17504 #define MC_CMD_GET_FUNCTION_INFO_OUT_VF_LEN 4 17505 + 17506 + /* MC_CMD_GET_FUNCTION_INFO_OUT_V2 msgresponse */ 17507 + #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_LEN 12 17508 + #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_PF_OFST 0 17509 + #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_PF_LEN 4 17510 + #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_VF_OFST 4 17511 + #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_VF_LEN 4 17512 + /* Values from PCIE_INTERFACE enumeration. For NICs with a single interface, or 17513 + * in the case of a V1 response, this should be HOST_PRIMARY. 17514 + */ 17515 + #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_INTF_OFST 8 17516 + #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_INTF_LEN 4 20428 17517 20429 17518 20430 17519 /***********************************/ ··· 21505 18570 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_OFST 24 21506 18571 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LEN 8 21507 18572 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_OFST 24 18573 + #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_LEN 4 18574 + #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_LBN 192 18575 + #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_WIDTH 32 21508 18576 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_OFST 28 18577 + #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_LEN 4 18578 + #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_LBN 224 18579 + #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_WIDTH 32 21509 18580 /* reserved for future use */ 21510 18581 #define MC_CMD_LICENSING_V3_OUT_RESERVED_0_OFST 32 21511 18582 #define MC_CMD_LICENSING_V3_OUT_RESERVED_0_LEN 24 ··· 21519 18578 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_OFST 56 21520 18579 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LEN 8 21521 18580 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_OFST 56 18581 + #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_LEN 4 18582 + #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_LBN 448 18583 + #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_WIDTH 32 21522 18584 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_OFST 60 18585 + #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_LEN 4 18586 + #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_LBN 480 18587 + #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_WIDTH 32 21523 18588 /* reserved for future use */ 21524 18589 #define MC_CMD_LICENSING_V3_OUT_RESERVED_1_OFST 64 21525 18590 #define MC_CMD_LICENSING_V3_OUT_RESERVED_1_LEN 24 ··· 21628 18681 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_OFST 0 21629 18682 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LEN 8 21630 18683 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LO_OFST 0 18684 + #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LO_LEN 4 18685 + #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LO_LBN 0 18686 + #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LO_WIDTH 32 21631 18687 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_HI_OFST 4 18688 + #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_HI_LEN 4 18689 + #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_HI_LBN 32 18690 + #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_HI_WIDTH 32 21632 18691 21633 18692 /* MC_CMD_GET_LICENSED_V3_APP_STATE_OUT msgresponse */ 21634 18693 #define MC_CMD_GET_LICENSED_V3_APP_STATE_OUT_LEN 4 ··· 21666 18713 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_OFST 0 21667 18714 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LEN 8 21668 18715 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LO_OFST 0 18716 + #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LO_LEN 4 18717 + #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LO_LBN 0 18718 + #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LO_WIDTH 32 21669 18719 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_HI_OFST 4 18720 + #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_HI_LEN 4 18721 + #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_HI_LBN 32 18722 + #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_HI_WIDTH 32 21670 18723 21671 18724 /* MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT msgresponse */ 21672 18725 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_LEN 8 ··· 21680 18721 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_OFST 0 21681 18722 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LEN 8 21682 18723 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LO_OFST 0 18724 + #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LO_LEN 4 18725 + #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LO_LBN 0 18726 + #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LO_WIDTH 32 21683 18727 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_HI_OFST 4 18728 + #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_HI_LEN 4 18729 + #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_HI_LBN 32 18730 + #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_HI_WIDTH 32 21684 18731 21685 18732 21686 18733 /***********************************/ ··· 21791 18826 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_OFST 48 21792 18827 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LEN 8 21793 18828 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LO_OFST 48 18829 + #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LO_LEN 4 18830 + #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LO_LBN 384 18831 + #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LO_WIDTH 32 21794 18832 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_HI_OFST 52 18833 + #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_HI_LEN 4 18834 + #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_HI_LBN 416 18835 + #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_HI_WIDTH 32 21795 18836 21796 18837 /* MC_CMD_LICENSED_V3_VALIDATE_APP_OUT msgresponse */ 21797 18838 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_LEN 116 ··· 21847 18876 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_OFST 0 21848 18877 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LEN 8 21849 18878 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LO_OFST 0 18879 + #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LO_LEN 4 18880 + #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LO_LBN 0 18881 + #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LO_WIDTH 32 21850 18882 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_HI_OFST 4 18883 + #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_HI_LEN 4 18884 + #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_HI_LBN 32 18885 + #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_HI_WIDTH 32 21851 18886 /* whether to turn on or turn off the masked features */ 21852 18887 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_FLAG_OFST 8 21853 18888 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_FLAG_LEN 4 ··· 21933 18956 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_OFST 4 21934 18957 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LEN 8 21935 18958 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LO_OFST 4 18959 + #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LO_LEN 4 18960 + #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LO_LBN 32 18961 + #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LO_WIDTH 32 21936 18962 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_HI_OFST 8 18963 + #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_HI_LEN 4 18964 + #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_HI_LBN 64 18965 + #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_HI_WIDTH 32 21937 18966 21938 18967 21939 18968 /***********************************/ ··· 22473 19490 * SF-117064-DG for background). 22474 19491 */ 22475 19492 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ADMIN_TSA_UNBOUND 0x8000 19493 + /* enum: Control the Match-Action Engine if present. See mcdi_mae.yml. */ 19494 + #define MC_CMD_PRIVILEGE_MASK_IN_GRP_MAE 0x10000 19495 + /* enum: This Function/client may call MC_CMD_CLIENT_ALLOC to create new 19496 + * dynamic client children of itself. 19497 + */ 19498 + #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ALLOC_CLIENT 0x20000 19499 + /* enum: A dynamic client with this privilege may perform all the same DMA 19500 + * operations as the function client from which it is descended. 19501 + */ 19502 + #define MC_CMD_PRIVILEGE_MASK_IN_GRP_FUNC_DMA 0x40000 19503 + /* enum: A client with this privilege may perform DMA as any PCIe function on 19504 + * the device and to on-device DDR. It allows clients to use TX-DESC2CMPT-DESC 19505 + * descriptors, and to use TX-SEG-DESC and TX-MEM2MEM-DESC with an address 19506 + * space override (i.e. with the ADDR_SPC_EN bit set). 19507 + */ 19508 + #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ARBITRARY_DMA 0x80000 22476 19509 /* enum: Set this bit to indicate that a new privilege mask is to be set, 22477 19510 * otherwise the command will only read the existing mask. 22478 19511 */ ··· 23276 20277 /* MC_CMD_ALLOCATE_TX_VFIFO_CP_IN msgrequest */ 23277 20278 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_LEN 20 23278 20279 /* Desired instance. Must be set to a specific instance, which is a function 23279 - * local queue index. 20280 + * local queue index. The calling client must be the currently-assigned user of 20281 + * this VI (see MC_CMD_SET_VI_USER). 23280 20282 */ 23281 20283 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_INSTANCE_OFST 0 23282 20284 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_INSTANCE_LEN 4 ··· 23499 20499 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_OFST 0 23500 20500 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LEN 8 23501 20501 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LO_OFST 0 20502 + #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LO_LEN 4 20503 + #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LO_LBN 0 20504 + #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LO_WIDTH 32 23502 20505 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_HI_OFST 4 20506 + #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_HI_LEN 4 20507 + #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_HI_LBN 32 20508 + #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_HI_WIDTH 32 23503 20509 #define MC_CMD_GET_RX_PREFIX_ID_IN_LENGTH_OFST 0 23504 20510 #define MC_CMD_GET_RX_PREFIX_ID_IN_LENGTH_LBN 0 23505 20511 #define MC_CMD_GET_RX_PREFIX_ID_IN_LENGTH_WIDTH 1 ··· 23527 20521 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_MARK_OFST 0 23528 20522 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_MARK_LBN 6 23529 20523 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_MARK_WIDTH 1 20524 + #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_MPORT_OFST 0 20525 + #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_MPORT_LBN 7 20526 + #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_MPORT_WIDTH 1 23530 20527 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_VPORT_OFST 0 23531 20528 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_VPORT_LBN 7 23532 20529 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_VPORT_WIDTH 1 ··· 23539 20530 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIP_TCI_OFST 0 23540 20531 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIP_TCI_LBN 9 23541 20532 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIP_TCI_WIDTH 1 20533 + #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIPPED_OFST 0 20534 + #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIPPED_LBN 10 20535 + #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIPPED_WIDTH 1 20536 + #define MC_CMD_GET_RX_PREFIX_ID_IN_VSWITCH_STATUS_OFST 0 20537 + #define MC_CMD_GET_RX_PREFIX_ID_IN_VSWITCH_STATUS_LBN 11 20538 + #define MC_CMD_GET_RX_PREFIX_ID_IN_VSWITCH_STATUS_WIDTH 1 23542 20539 23543 20540 /* MC_CMD_GET_RX_PREFIX_ID_OUT msgresponse */ 23544 20541 #define MC_CMD_GET_RX_PREFIX_ID_OUT_LENMIN 8 ··· 23590 20575 #define RX_PREFIX_FIELD_INFO_PARTIAL_TSTAMP 0x4 /* enum */ 23591 20576 #define RX_PREFIX_FIELD_INFO_RSS_HASH 0x5 /* enum */ 23592 20577 #define RX_PREFIX_FIELD_INFO_USER_MARK 0x6 /* enum */ 20578 + #define RX_PREFIX_FIELD_INFO_INGRESS_MPORT 0x7 /* enum */ 23593 20579 #define RX_PREFIX_FIELD_INFO_INGRESS_VPORT 0x7 /* enum */ 23594 20580 #define RX_PREFIX_FIELD_INFO_CSUM_FRAME 0x8 /* enum */ 23595 20581 #define RX_PREFIX_FIELD_INFO_VLAN_STRIP_TCI 0x9 /* enum */ 20582 + #define RX_PREFIX_FIELD_INFO_VLAN_STRIPPED 0xa /* enum */ 20583 + #define RX_PREFIX_FIELD_INFO_VSWITCH_STATUS 0xb /* enum */ 23596 20584 #define RX_PREFIX_FIELD_INFO_TYPE_LBN 24 23597 20585 #define RX_PREFIX_FIELD_INFO_TYPE_WIDTH 8 23598 20586 ··· 23832 20814 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_AENS_SENT_OFST 24 23833 20815 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_AENS_SENT_LEN 4 23834 20816 20817 + /* CLIENT_HANDLE structuredef: A client is an abstract entity that can make 20818 + * requests of the device and that can own resources managed by the device. 20819 + * Examples of clients include PCIe functions and dynamic clients. A client 20820 + * handle is a 32b opaque value used to refer to a client. Further details can 20821 + * be found within XN-200418-TC. 20822 + */ 20823 + #define CLIENT_HANDLE_LEN 4 20824 + #define CLIENT_HANDLE_OPAQUE_OFST 0 20825 + #define CLIENT_HANDLE_OPAQUE_LEN 4 20826 + /* enum: A client handle guaranteed never to refer to a real client. */ 20827 + #define CLIENT_HANDLE_NULL 0xffffffff 20828 + /* enum: Used to refer to the calling client. */ 20829 + #define CLIENT_HANDLE_SELF 0xfffffffe 20830 + #define CLIENT_HANDLE_OPAQUE_LBN 0 20831 + #define CLIENT_HANDLE_OPAQUE_WIDTH 32 23835 20832 23836 20833 /* CLOCK_INFO structuredef: Information about a single hardware clock */ 23837 20834 #define CLOCK_INFO_LEN 28 ··· 23881 20848 #define CLOCK_INFO_FREQUENCY_OFST 4 23882 20849 #define CLOCK_INFO_FREQUENCY_LEN 8 23883 20850 #define CLOCK_INFO_FREQUENCY_LO_OFST 4 20851 + #define CLOCK_INFO_FREQUENCY_LO_LEN 4 20852 + #define CLOCK_INFO_FREQUENCY_LO_LBN 32 20853 + #define CLOCK_INFO_FREQUENCY_LO_WIDTH 32 23884 20854 #define CLOCK_INFO_FREQUENCY_HI_OFST 8 20855 + #define CLOCK_INFO_FREQUENCY_HI_LEN 4 20856 + #define CLOCK_INFO_FREQUENCY_HI_LBN 64 20857 + #define CLOCK_INFO_FREQUENCY_HI_WIDTH 32 23885 20858 #define CLOCK_INFO_FREQUENCY_LBN 32 23886 20859 #define CLOCK_INFO_FREQUENCY_WIDTH 64 23887 20860 /* Human-readable ASCII name for clock, with NUL termination */ ··· 23896 20857 #define CLOCK_INFO_NAME_NUM 16 23897 20858 #define CLOCK_INFO_NAME_LBN 96 23898 20859 #define CLOCK_INFO_NAME_WIDTH 8 20860 + 20861 + /* SCHED_CREDIT_CHECK_RESULT structuredef */ 20862 + #define SCHED_CREDIT_CHECK_RESULT_LEN 16 20863 + /* The instance of the scheduler. Refer to XN-200389-AW for the location of 20864 + * these schedulers in the hardware. 20865 + */ 20866 + #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_OFST 0 20867 + #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_LEN 1 20868 + #define SCHED_CREDIT_CHECK_RESULT_HUB_HOST_A 0x0 /* enum */ 20869 + #define SCHED_CREDIT_CHECK_RESULT_HUB_NET_A 0x1 /* enum */ 20870 + #define SCHED_CREDIT_CHECK_RESULT_HUB_B 0x2 /* enum */ 20871 + #define SCHED_CREDIT_CHECK_RESULT_HUB_HOST_C 0x3 /* enum */ 20872 + #define SCHED_CREDIT_CHECK_RESULT_HUB_NET_TX 0x4 /* enum */ 20873 + #define SCHED_CREDIT_CHECK_RESULT_HUB_HOST_D 0x5 /* enum */ 20874 + #define SCHED_CREDIT_CHECK_RESULT_HUB_REPLAY 0x6 /* enum */ 20875 + #define SCHED_CREDIT_CHECK_RESULT_DMAC_H2C 0x7 /* enum */ 20876 + #define SCHED_CREDIT_CHECK_RESULT_HUB_NET_B 0x8 /* enum */ 20877 + #define SCHED_CREDIT_CHECK_RESULT_HUB_NET_REPLAY 0x9 /* enum */ 20878 + #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_LBN 0 20879 + #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_WIDTH 8 20880 + /* The type of node that this result refers to. */ 20881 + #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_OFST 1 20882 + #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_LEN 1 20883 + /* enum: Destination node */ 20884 + #define SCHED_CREDIT_CHECK_RESULT_DEST 0x0 20885 + /* enum: Source node */ 20886 + #define SCHED_CREDIT_CHECK_RESULT_SOURCE 0x1 20887 + #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_LBN 8 20888 + #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_WIDTH 8 20889 + /* Level of node in scheduler hierarchy (level 0 is the bottom of the 20890 + * hierarchy, increasing towards the root node). 20891 + */ 20892 + #define SCHED_CREDIT_CHECK_RESULT_NODE_LEVEL_OFST 2 20893 + #define SCHED_CREDIT_CHECK_RESULT_NODE_LEVEL_LEN 2 20894 + #define SCHED_CREDIT_CHECK_RESULT_NODE_LEVEL_LBN 16 20895 + #define SCHED_CREDIT_CHECK_RESULT_NODE_LEVEL_WIDTH 16 20896 + /* Node index */ 20897 + #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_OFST 4 20898 + #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_LEN 4 20899 + #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_LBN 32 20900 + #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_WIDTH 32 20901 + /* The number of credits the node is expected to have. */ 20902 + #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_OFST 8 20903 + #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_LEN 4 20904 + #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_LBN 64 20905 + #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_WIDTH 32 20906 + /* The number of credits the node actually had. */ 20907 + #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_OFST 12 20908 + #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_LEN 4 20909 + #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_LBN 96 20910 + #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_WIDTH 32 23899 20911 23900 20912 23901 20913 /***********************************/ ··· 23977 20887 23978 20888 /***********************************/ 23979 20889 /* MC_CMD_VNIC_ENCAP_RULE_ADD 23980 - * Add a rule for detecting encapsulations in the VNIC stage. Currently this only affects checksum validation in VNIC RX - on TX the send descriptor explicitly specifies encapsulation. These rules are per-VNIC, i.e. only apply to the current driver. If a rule matches, then the packet is considered to have the corresponding encapsulation type, and the inner packet is parsed. It is up to the driver to ensure that overlapping rules are not inserted. (If a packet would match multiple rules, a random one of them will be used.) A rule with the exact same match criteria may not be inserted twice (EALREADY). Only a limited number MATCH_FLAGS values are supported, use MC_CMD_GET_PARSER_DISP_INFO with OP OP_GET_SUPPORTED_VNIC_ENCAP_RULE_MATCHES to get a list of supported combinations. Each driver may only have a limited set of active rules - returns ENOSPC if the caller's table is full. 20890 + * Add a rule for detecting encapsulations in the VNIC stage. Currently this 20891 + * only affects checksum validation in VNIC RX - on TX the send descriptor 20892 + * explicitly specifies encapsulation. These rules are per-VNIC, i.e. only 20893 + * apply to the current driver. If a rule matches, then the packet is 20894 + * considered to have the corresponding encapsulation type, and the inner 20895 + * packet is parsed. It is up to the driver to ensure that overlapping rules 20896 + * are not inserted. (If a packet would match multiple rules, a random one of 20897 + * them will be used.) A rule with the exact same match criteria may not be 20898 + * inserted twice (EALREADY). Only a limited number MATCH_FLAGS values are 20899 + * supported, use MC_CMD_GET_PARSER_DISP_INFO with OP 20900 + * OP_GET_SUPPORTED_VNIC_ENCAP_RULE_MATCHES to get a list of supported 20901 + * combinations. Each driver may only have a limited set of active rules - 20902 + * returns ENOSPC if the caller's table is full. 23981 20903 */ 23982 20904 #define MC_CMD_VNIC_ENCAP_RULE_ADD 0x16d 23983 20905 #undef MC_CMD_0x16d_PRIVILEGE_CTG ··· 24053 20951 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STRIP_OUTER_VLAN_OFST 29 24054 20952 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STRIP_OUTER_VLAN_LBN 0 24055 20953 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STRIP_OUTER_VLAN_WIDTH 1 20954 + #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_RSS_ON_OUTER_OFST 29 20955 + #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_RSS_ON_OUTER_LBN 1 20956 + #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_RSS_ON_OUTER_WIDTH 1 20957 + #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STEER_ON_OUTER_OFST 29 20958 + #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STEER_ON_OUTER_LBN 2 20959 + #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STEER_ON_OUTER_WIDTH 1 24056 20960 /* Only if MATCH_DST_PORT is set. Port number as bytes in network order. */ 24057 20961 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_DST_PORT_OFST 30 24058 20962 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_DST_PORT_LEN 2 ··· 24075 20967 24076 20968 /***********************************/ 24077 20969 /* MC_CMD_VNIC_ENCAP_RULE_REMOVE 24078 - * Remove a VNIC encapsulation rule. Packets which would have previously matched the rule will then be considered as unencapsulated. Returns EALREADY if the input HANDLE doesn't correspond to an existing rule. 20970 + * Remove a VNIC encapsulation rule. Packets which would have previously 20971 + * matched the rule will then be considered as unencapsulated. Returns EALREADY 20972 + * if the input HANDLE doesn't correspond to an existing rule. 24079 20973 */ 24080 20974 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE 0x16e 24081 20975 #undef MC_CMD_0x16e_PRIVILEGE_CTG ··· 24092 20982 24093 20983 /* MC_CMD_VNIC_ENCAP_RULE_REMOVE_OUT msgresponse */ 24094 20984 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE_OUT_LEN 0 20985 + 20986 + /* UUID structuredef: An RFC4122 standard UUID. The values here are stored in 20987 + * the endianness specified by the RFC; users should ignore the broken-out 20988 + * fields and instead do straight memory copies to ensure correct ordering. 20989 + */ 20990 + #define UUID_LEN 16 20991 + #define UUID_TIME_LOW_OFST 0 20992 + #define UUID_TIME_LOW_LEN 4 20993 + #define UUID_TIME_LOW_LBN 0 20994 + #define UUID_TIME_LOW_WIDTH 32 20995 + #define UUID_TIME_MID_OFST 4 20996 + #define UUID_TIME_MID_LEN 2 20997 + #define UUID_TIME_MID_LBN 32 20998 + #define UUID_TIME_MID_WIDTH 16 20999 + #define UUID_TIME_HI_LBN 52 21000 + #define UUID_TIME_HI_WIDTH 12 21001 + #define UUID_VERSION_LBN 48 21002 + #define UUID_VERSION_WIDTH 4 21003 + #define UUID_RESERVED_LBN 64 21004 + #define UUID_RESERVED_WIDTH 2 21005 + #define UUID_CLK_SEQ_LBN 66 21006 + #define UUID_CLK_SEQ_WIDTH 14 21007 + #define UUID_NODE_OFST 10 21008 + #define UUID_NODE_LEN 6 21009 + #define UUID_NODE_LBN 80 21010 + #define UUID_NODE_WIDTH 48 21011 + 21012 + 21013 + /***********************************/ 21014 + /* MC_CMD_PLUGIN_ALLOC 21015 + * Create a handle to a datapath plugin's extension. This involves finding a 21016 + * currently-loaded plugin offering the given functionality (as identified by 21017 + * the UUID) and allocating a handle to track the usage of it. Plugin 21018 + * functionality is identified by 'extension' rather than any other identifier 21019 + * so that a single plugin bitfile may offer more than one piece of independent 21020 + * functionality. If two bitfiles are loaded which both offer the same 21021 + * extension, then the metadata is interrogated further to determine which is 21022 + * the newest and that is the one opened. See SF-123625-SW for architectural 21023 + * detail on datapath plugins. 21024 + */ 21025 + #define MC_CMD_PLUGIN_ALLOC 0x1ad 21026 + #undef MC_CMD_0x1ad_PRIVILEGE_CTG 21027 + 21028 + #define MC_CMD_0x1ad_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21029 + 21030 + /* MC_CMD_PLUGIN_ALLOC_IN msgrequest */ 21031 + #define MC_CMD_PLUGIN_ALLOC_IN_LEN 24 21032 + /* The functionality requested of the plugin, as a UUID structure */ 21033 + #define MC_CMD_PLUGIN_ALLOC_IN_UUID_OFST 0 21034 + #define MC_CMD_PLUGIN_ALLOC_IN_UUID_LEN 16 21035 + /* Additional options for opening the handle */ 21036 + #define MC_CMD_PLUGIN_ALLOC_IN_FLAGS_OFST 16 21037 + #define MC_CMD_PLUGIN_ALLOC_IN_FLAGS_LEN 4 21038 + #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_INFO_ONLY_OFST 16 21039 + #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_INFO_ONLY_LBN 0 21040 + #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_INFO_ONLY_WIDTH 1 21041 + #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_ALLOW_DISABLED_OFST 16 21042 + #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_ALLOW_DISABLED_LBN 1 21043 + #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_ALLOW_DISABLED_WIDTH 1 21044 + /* Load the extension only if it is in the specified administrative group. 21045 + * Specify ANY to load the extension wherever it is found (if there are 21046 + * multiple choices then the extension with the highest MINOR_VER/PATCH_VER 21047 + * will be loaded). See MC_CMD_PLUGIN_GET_META_GLOBAL for a description of 21048 + * administrative groups. 21049 + */ 21050 + #define MC_CMD_PLUGIN_ALLOC_IN_ADMIN_GROUP_OFST 20 21051 + #define MC_CMD_PLUGIN_ALLOC_IN_ADMIN_GROUP_LEN 2 21052 + /* enum: Load the extension from any ADMIN_GROUP. */ 21053 + #define MC_CMD_PLUGIN_ALLOC_IN_ANY 0xffff 21054 + /* Reserved */ 21055 + #define MC_CMD_PLUGIN_ALLOC_IN_RESERVED_OFST 22 21056 + #define MC_CMD_PLUGIN_ALLOC_IN_RESERVED_LEN 2 21057 + 21058 + /* MC_CMD_PLUGIN_ALLOC_OUT msgresponse */ 21059 + #define MC_CMD_PLUGIN_ALLOC_OUT_LEN 4 21060 + /* Unique identifier of this usage */ 21061 + #define MC_CMD_PLUGIN_ALLOC_OUT_HANDLE_OFST 0 21062 + #define MC_CMD_PLUGIN_ALLOC_OUT_HANDLE_LEN 4 21063 + 21064 + 21065 + /***********************************/ 21066 + /* MC_CMD_PLUGIN_FREE 21067 + * Delete a handle to a plugin's extension. 21068 + */ 21069 + #define MC_CMD_PLUGIN_FREE 0x1ae 21070 + #undef MC_CMD_0x1ae_PRIVILEGE_CTG 21071 + 21072 + #define MC_CMD_0x1ae_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21073 + 21074 + /* MC_CMD_PLUGIN_FREE_IN msgrequest */ 21075 + #define MC_CMD_PLUGIN_FREE_IN_LEN 4 21076 + /* Handle returned by MC_CMD_PLUGIN_ALLOC_OUT */ 21077 + #define MC_CMD_PLUGIN_FREE_IN_HANDLE_OFST 0 21078 + #define MC_CMD_PLUGIN_FREE_IN_HANDLE_LEN 4 21079 + 21080 + /* MC_CMD_PLUGIN_FREE_OUT msgresponse */ 21081 + #define MC_CMD_PLUGIN_FREE_OUT_LEN 0 21082 + 21083 + 21084 + /***********************************/ 21085 + /* MC_CMD_PLUGIN_GET_META_GLOBAL 21086 + * Returns the global metadata applying to the whole plugin extension. See the 21087 + * other metadata calls for subtypes of data. 21088 + */ 21089 + #define MC_CMD_PLUGIN_GET_META_GLOBAL 0x1af 21090 + #undef MC_CMD_0x1af_PRIVILEGE_CTG 21091 + 21092 + #define MC_CMD_0x1af_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21093 + 21094 + /* MC_CMD_PLUGIN_GET_META_GLOBAL_IN msgrequest */ 21095 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_IN_LEN 4 21096 + /* Handle returned by MC_CMD_PLUGIN_ALLOC_OUT */ 21097 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_IN_HANDLE_OFST 0 21098 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_IN_HANDLE_LEN 4 21099 + 21100 + /* MC_CMD_PLUGIN_GET_META_GLOBAL_OUT msgresponse */ 21101 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_LEN 36 21102 + /* Unique identifier of this plugin extension. This is identical to the value 21103 + * which was requested when the handle was allocated. 21104 + */ 21105 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_UUID_OFST 0 21106 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_UUID_LEN 16 21107 + /* semver sub-version of this plugin extension */ 21108 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MINOR_VER_OFST 16 21109 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MINOR_VER_LEN 2 21110 + /* semver micro-version of this plugin extension */ 21111 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_PATCH_VER_OFST 18 21112 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_PATCH_VER_LEN 2 21113 + /* Number of different messages which can be sent to this extension */ 21114 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_NUM_MSGS_OFST 20 21115 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_NUM_MSGS_LEN 4 21116 + /* Byte offset within the VI window of the plugin's mapped CSR window. */ 21117 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_OFFSET_OFST 24 21118 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_OFFSET_LEN 2 21119 + /* Number of bytes mapped through to the plugin's CSRs. 0 if that feature was 21120 + * not requested by the plugin (in which case MAPPED_CSR_OFFSET and 21121 + * MAPPED_CSR_FLAGS are ignored). 21122 + */ 21123 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_SIZE_OFST 26 21124 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_SIZE_LEN 2 21125 + /* Flags indicating how to perform the CSR window mapping. */ 21126 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAGS_OFST 28 21127 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAGS_LEN 4 21128 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_READ_OFST 28 21129 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_READ_LBN 0 21130 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_READ_WIDTH 1 21131 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_WRITE_OFST 28 21132 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_WRITE_LBN 1 21133 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_WRITE_WIDTH 1 21134 + /* Identifier of the set of extensions which all change state together. 21135 + * Extensions having the same ADMIN_GROUP will always load and unload at the 21136 + * same time. ADMIN_GROUP values themselves are arbitrary (but they contain a 21137 + * generation number as an implementation detail to ensure that they're not 21138 + * reused rapidly). 21139 + */ 21140 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_ADMIN_GROUP_OFST 32 21141 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_ADMIN_GROUP_LEN 1 21142 + /* Bitshift in MC_CMD_DEVEL_CLIENT_PRIVILEGE_MODIFY's MASK parameters 21143 + * corresponding to this extension, i.e. set the bit 1<<PRIVILEGE_BIT to permit 21144 + * access to this extension. 21145 + */ 21146 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_PRIVILEGE_BIT_OFST 33 21147 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_PRIVILEGE_BIT_LEN 1 21148 + /* Reserved */ 21149 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_RESERVED_OFST 34 21150 + #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_RESERVED_LEN 2 21151 + 21152 + 21153 + /***********************************/ 21154 + /* MC_CMD_PLUGIN_GET_META_PUBLISHER 21155 + * Returns metadata supplied by the plugin author which describes this 21156 + * extension in a human-readable way. Contrast with 21157 + * MC_CMD_PLUGIN_GET_META_GLOBAL, which returns information needed for software 21158 + * to operate. 21159 + */ 21160 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER 0x1b0 21161 + #undef MC_CMD_0x1b0_PRIVILEGE_CTG 21162 + 21163 + #define MC_CMD_0x1b0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21164 + 21165 + /* MC_CMD_PLUGIN_GET_META_PUBLISHER_IN msgrequest */ 21166 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_LEN 12 21167 + /* Handle returned by MC_CMD_PLUGIN_ALLOC_OUT */ 21168 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_HANDLE_OFST 0 21169 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_HANDLE_LEN 4 21170 + /* Category of data to return */ 21171 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_SUBTYPE_OFST 4 21172 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_SUBTYPE_LEN 4 21173 + /* enum: Top-level information about the extension. The returned data is an 21174 + * array of key/value pairs using the keys in RFC5013 (Dublin Core) to describe 21175 + * the extension. The data is a back-to-back list of zero-terminated strings; 21176 + * the even-numbered fields (0,2,4,...) are keys and their following odd- 21177 + * numbered fields are the corresponding values. Both keys and values are 21178 + * nominally UTF-8. Per RFC5013, the same key may be repeated any number of 21179 + * times. Note that all information (including the key/value structure itself 21180 + * and the UTF-8 encoding) may have been provided by the plugin author, so 21181 + * callers must be cautious about parsing it. Callers should parse only the 21182 + * top-level structure to separate out the keys and values; the contents of the 21183 + * values is not expected to be machine-readable. 21184 + */ 21185 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_EXTENSION_KVS 0x0 21186 + /* Byte position of the data to be returned within the full data block of the 21187 + * given SUBTYPE. 21188 + */ 21189 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_OFFSET_OFST 8 21190 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_OFFSET_LEN 4 21191 + 21192 + /* MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT msgresponse */ 21193 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_LENMIN 4 21194 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_LENMAX 252 21195 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_LENMAX_MCDI2 1020 21196 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_LEN(num) (4+1*(num)) 21197 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_NUM(len) (((len)-4)/1) 21198 + /* Full length of the data block of the requested SUBTYPE, in bytes. */ 21199 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_TOTAL_SIZE_OFST 0 21200 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_TOTAL_SIZE_LEN 4 21201 + /* The information requested by SUBTYPE. */ 21202 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_OFST 4 21203 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_LEN 1 21204 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_MINNUM 0 21205 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_MAXNUM 248 21206 + #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_MAXNUM_MCDI2 1016 21207 + 21208 + 21209 + /***********************************/ 21210 + /* MC_CMD_PLUGIN_GET_META_MSG 21211 + * Returns the simple metadata for a specific plugin request message. This 21212 + * supplies information necessary for the host to know how to build an 21213 + * MC_CMD_PLUGIN_REQ request. 21214 + */ 21215 + #define MC_CMD_PLUGIN_GET_META_MSG 0x1b1 21216 + #undef MC_CMD_0x1b1_PRIVILEGE_CTG 21217 + 21218 + #define MC_CMD_0x1b1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21219 + 21220 + /* MC_CMD_PLUGIN_GET_META_MSG_IN msgrequest */ 21221 + #define MC_CMD_PLUGIN_GET_META_MSG_IN_LEN 8 21222 + /* Handle returned by MC_CMD_PLUGIN_ALLOC_OUT */ 21223 + #define MC_CMD_PLUGIN_GET_META_MSG_IN_HANDLE_OFST 0 21224 + #define MC_CMD_PLUGIN_GET_META_MSG_IN_HANDLE_LEN 4 21225 + /* Unique message ID to obtain */ 21226 + #define MC_CMD_PLUGIN_GET_META_MSG_IN_ID_OFST 4 21227 + #define MC_CMD_PLUGIN_GET_META_MSG_IN_ID_LEN 4 21228 + 21229 + /* MC_CMD_PLUGIN_GET_META_MSG_OUT msgresponse */ 21230 + #define MC_CMD_PLUGIN_GET_META_MSG_OUT_LEN 44 21231 + /* Unique message ID. This is the same value as the input parameter; it exists 21232 + * to allow future MCDI extensions which enumerate all messages. 21233 + */ 21234 + #define MC_CMD_PLUGIN_GET_META_MSG_OUT_ID_OFST 0 21235 + #define MC_CMD_PLUGIN_GET_META_MSG_OUT_ID_LEN 4 21236 + /* Packed index number of this message, assigned by the MC to give each message 21237 + * a unique ID in an array to allow for more efficient storage/management. 21238 + */ 21239 + #define MC_CMD_PLUGIN_GET_META_MSG_OUT_INDEX_OFST 4 21240 + #define MC_CMD_PLUGIN_GET_META_MSG_OUT_INDEX_LEN 4 21241 + /* Short human-readable codename for this message. This is conventionally 21242 + * formatted as a C identifier in the basic ASCII character set with any spare 21243 + * bytes at the end set to 0, however this convention is not enforced by the MC 21244 + * so consumers must check for all potential malformations before using it for 21245 + * a trusted purpose. 21246 + */ 21247 + #define MC_CMD_PLUGIN_GET_META_MSG_OUT_NAME_OFST 8 21248 + #define MC_CMD_PLUGIN_GET_META_MSG_OUT_NAME_LEN 32 21249 + /* Number of bytes of data which must be passed from the host kernel to the MC 21250 + * for this message's payload, and which are passed back again in the response. 21251 + * The MC's plugin metadata loader will have validated that the number of bytes 21252 + * specified here will fit in to MC_CMD_PLUGIN_REQ_IN_DATA in a single MCDI 21253 + * message. 21254 + */ 21255 + #define MC_CMD_PLUGIN_GET_META_MSG_OUT_DATA_SIZE_OFST 40 21256 + #define MC_CMD_PLUGIN_GET_META_MSG_OUT_DATA_SIZE_LEN 4 21257 + 21258 + /* PLUGIN_EXTENSION structuredef: Used within MC_CMD_PLUGIN_GET_ALL to describe 21259 + * an individual extension. 21260 + */ 21261 + #define PLUGIN_EXTENSION_LEN 20 21262 + #define PLUGIN_EXTENSION_UUID_OFST 0 21263 + #define PLUGIN_EXTENSION_UUID_LEN 16 21264 + #define PLUGIN_EXTENSION_UUID_LBN 0 21265 + #define PLUGIN_EXTENSION_UUID_WIDTH 128 21266 + #define PLUGIN_EXTENSION_ADMIN_GROUP_OFST 16 21267 + #define PLUGIN_EXTENSION_ADMIN_GROUP_LEN 1 21268 + #define PLUGIN_EXTENSION_ADMIN_GROUP_LBN 128 21269 + #define PLUGIN_EXTENSION_ADMIN_GROUP_WIDTH 8 21270 + #define PLUGIN_EXTENSION_FLAG_ENABLED_LBN 136 21271 + #define PLUGIN_EXTENSION_FLAG_ENABLED_WIDTH 1 21272 + #define PLUGIN_EXTENSION_RESERVED_LBN 137 21273 + #define PLUGIN_EXTENSION_RESERVED_WIDTH 23 21274 + 21275 + 21276 + /***********************************/ 21277 + /* MC_CMD_PLUGIN_GET_ALL 21278 + * Returns a list of all plugin extensions currently loaded and available. The 21279 + * UUIDs returned can be passed to MC_CMD_PLUGIN_ALLOC in order to obtain more 21280 + * detailed metadata via the MC_CMD_PLUGIN_GET_META_* family of requests. The 21281 + * ADMIN_GROUP field collects how extensions are grouped in to units which are 21282 + * loaded/unloaded together; extensions with the same value are in the same 21283 + * group. 21284 + */ 21285 + #define MC_CMD_PLUGIN_GET_ALL 0x1b2 21286 + #undef MC_CMD_0x1b2_PRIVILEGE_CTG 21287 + 21288 + #define MC_CMD_0x1b2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21289 + 21290 + /* MC_CMD_PLUGIN_GET_ALL_IN msgrequest */ 21291 + #define MC_CMD_PLUGIN_GET_ALL_IN_LEN 4 21292 + /* Additional options for querying. Note that if neither FLAG_INCLUDE_ENABLED 21293 + * nor FLAG_INCLUDE_DISABLED are specified then the result set will be empty. 21294 + */ 21295 + #define MC_CMD_PLUGIN_GET_ALL_IN_FLAGS_OFST 0 21296 + #define MC_CMD_PLUGIN_GET_ALL_IN_FLAGS_LEN 4 21297 + #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_ENABLED_OFST 0 21298 + #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_ENABLED_LBN 0 21299 + #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_ENABLED_WIDTH 1 21300 + #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_DISABLED_OFST 0 21301 + #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_DISABLED_LBN 1 21302 + #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_DISABLED_WIDTH 1 21303 + 21304 + /* MC_CMD_PLUGIN_GET_ALL_OUT msgresponse */ 21305 + #define MC_CMD_PLUGIN_GET_ALL_OUT_LENMIN 0 21306 + #define MC_CMD_PLUGIN_GET_ALL_OUT_LENMAX 240 21307 + #define MC_CMD_PLUGIN_GET_ALL_OUT_LENMAX_MCDI2 1020 21308 + #define MC_CMD_PLUGIN_GET_ALL_OUT_LEN(num) (0+20*(num)) 21309 + #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_NUM(len) (((len)-0)/20) 21310 + /* The list of available plugin extensions, as an array of PLUGIN_EXTENSION 21311 + * structs. 21312 + */ 21313 + #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_OFST 0 21314 + #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_LEN 20 21315 + #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_MINNUM 0 21316 + #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_MAXNUM 12 21317 + #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_MAXNUM_MCDI2 51 21318 + 21319 + 21320 + /***********************************/ 21321 + /* MC_CMD_PLUGIN_REQ 21322 + * Send a command to a plugin. A plugin may define an arbitrary number of 21323 + * 'messages' which it allows applications on the host system to send, each 21324 + * identified by a 32-bit ID. 21325 + */ 21326 + #define MC_CMD_PLUGIN_REQ 0x1b3 21327 + #undef MC_CMD_0x1b3_PRIVILEGE_CTG 21328 + 21329 + #define MC_CMD_0x1b3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21330 + 21331 + /* MC_CMD_PLUGIN_REQ_IN msgrequest */ 21332 + #define MC_CMD_PLUGIN_REQ_IN_LENMIN 8 21333 + #define MC_CMD_PLUGIN_REQ_IN_LENMAX 252 21334 + #define MC_CMD_PLUGIN_REQ_IN_LENMAX_MCDI2 1020 21335 + #define MC_CMD_PLUGIN_REQ_IN_LEN(num) (8+1*(num)) 21336 + #define MC_CMD_PLUGIN_REQ_IN_DATA_NUM(len) (((len)-8)/1) 21337 + /* Handle returned by MC_CMD_PLUGIN_ALLOC_OUT */ 21338 + #define MC_CMD_PLUGIN_REQ_IN_HANDLE_OFST 0 21339 + #define MC_CMD_PLUGIN_REQ_IN_HANDLE_LEN 4 21340 + /* Message ID defined by the plugin author */ 21341 + #define MC_CMD_PLUGIN_REQ_IN_ID_OFST 4 21342 + #define MC_CMD_PLUGIN_REQ_IN_ID_LEN 4 21343 + /* Data blob being the parameter to the message. This must be of the length 21344 + * specified by MC_CMD_PLUGIN_GET_META_MSG_IN_MCDI_PARAM_SIZE. 21345 + */ 21346 + #define MC_CMD_PLUGIN_REQ_IN_DATA_OFST 8 21347 + #define MC_CMD_PLUGIN_REQ_IN_DATA_LEN 1 21348 + #define MC_CMD_PLUGIN_REQ_IN_DATA_MINNUM 0 21349 + #define MC_CMD_PLUGIN_REQ_IN_DATA_MAXNUM 244 21350 + #define MC_CMD_PLUGIN_REQ_IN_DATA_MAXNUM_MCDI2 1012 21351 + 21352 + /* MC_CMD_PLUGIN_REQ_OUT msgresponse */ 21353 + #define MC_CMD_PLUGIN_REQ_OUT_LENMIN 0 21354 + #define MC_CMD_PLUGIN_REQ_OUT_LENMAX 252 21355 + #define MC_CMD_PLUGIN_REQ_OUT_LENMAX_MCDI2 1020 21356 + #define MC_CMD_PLUGIN_REQ_OUT_LEN(num) (0+1*(num)) 21357 + #define MC_CMD_PLUGIN_REQ_OUT_DATA_NUM(len) (((len)-0)/1) 21358 + /* The input data, as transformed and/or updated by the plugin's eBPF. Will be 21359 + * the same size as the input DATA parameter. 21360 + */ 21361 + #define MC_CMD_PLUGIN_REQ_OUT_DATA_OFST 0 21362 + #define MC_CMD_PLUGIN_REQ_OUT_DATA_LEN 1 21363 + #define MC_CMD_PLUGIN_REQ_OUT_DATA_MINNUM 0 21364 + #define MC_CMD_PLUGIN_REQ_OUT_DATA_MAXNUM 252 21365 + #define MC_CMD_PLUGIN_REQ_OUT_DATA_MAXNUM_MCDI2 1020 21366 + 21367 + /* DESC_ADDR_REGION structuredef: Describes a contiguous region of DESC_ADDR 21368 + * space that maps to a contiguous region of TRGT_ADDR space. Addresses 21369 + * DESC_ADDR in the range [DESC_ADDR_BASE:DESC_ADDR_BASE + 1 << 21370 + * WINDOW_SIZE_LOG2) map to TRGT_ADDR = DESC_ADDR - DESC_ADDR_BASE + 21371 + * TRGT_ADDR_BASE. 21372 + */ 21373 + #define DESC_ADDR_REGION_LEN 32 21374 + /* The start of the region in DESC_ADDR space. */ 21375 + #define DESC_ADDR_REGION_DESC_ADDR_BASE_OFST 0 21376 + #define DESC_ADDR_REGION_DESC_ADDR_BASE_LEN 8 21377 + #define DESC_ADDR_REGION_DESC_ADDR_BASE_LO_OFST 0 21378 + #define DESC_ADDR_REGION_DESC_ADDR_BASE_LO_LEN 4 21379 + #define DESC_ADDR_REGION_DESC_ADDR_BASE_LO_LBN 0 21380 + #define DESC_ADDR_REGION_DESC_ADDR_BASE_LO_WIDTH 32 21381 + #define DESC_ADDR_REGION_DESC_ADDR_BASE_HI_OFST 4 21382 + #define DESC_ADDR_REGION_DESC_ADDR_BASE_HI_LEN 4 21383 + #define DESC_ADDR_REGION_DESC_ADDR_BASE_HI_LBN 32 21384 + #define DESC_ADDR_REGION_DESC_ADDR_BASE_HI_WIDTH 32 21385 + #define DESC_ADDR_REGION_DESC_ADDR_BASE_LBN 0 21386 + #define DESC_ADDR_REGION_DESC_ADDR_BASE_WIDTH 64 21387 + /* The start of the region in TRGT_ADDR space. Drivers can set this via 21388 + * MC_CMD_SET_DESC_ADDR_REGIONS. 21389 + */ 21390 + #define DESC_ADDR_REGION_TRGT_ADDR_BASE_OFST 8 21391 + #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LEN 8 21392 + #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LO_OFST 8 21393 + #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LO_LEN 4 21394 + #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LO_LBN 64 21395 + #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LO_WIDTH 32 21396 + #define DESC_ADDR_REGION_TRGT_ADDR_BASE_HI_OFST 12 21397 + #define DESC_ADDR_REGION_TRGT_ADDR_BASE_HI_LEN 4 21398 + #define DESC_ADDR_REGION_TRGT_ADDR_BASE_HI_LBN 96 21399 + #define DESC_ADDR_REGION_TRGT_ADDR_BASE_HI_WIDTH 32 21400 + #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LBN 64 21401 + #define DESC_ADDR_REGION_TRGT_ADDR_BASE_WIDTH 64 21402 + /* The size of the region. */ 21403 + #define DESC_ADDR_REGION_WINDOW_SIZE_LOG2_OFST 16 21404 + #define DESC_ADDR_REGION_WINDOW_SIZE_LOG2_LEN 4 21405 + #define DESC_ADDR_REGION_WINDOW_SIZE_LOG2_LBN 128 21406 + #define DESC_ADDR_REGION_WINDOW_SIZE_LOG2_WIDTH 32 21407 + /* The alignment restriction on TRGT_ADDR. TRGT_ADDR values set by the driver 21408 + * must be a multiple of 1 << TRGT_ADDR_ALIGN_LOG2. 21409 + */ 21410 + #define DESC_ADDR_REGION_TRGT_ADDR_ALIGN_LOG2_OFST 20 21411 + #define DESC_ADDR_REGION_TRGT_ADDR_ALIGN_LOG2_LEN 4 21412 + #define DESC_ADDR_REGION_TRGT_ADDR_ALIGN_LOG2_LBN 160 21413 + #define DESC_ADDR_REGION_TRGT_ADDR_ALIGN_LOG2_WIDTH 32 21414 + #define DESC_ADDR_REGION_RSVD_OFST 24 21415 + #define DESC_ADDR_REGION_RSVD_LEN 8 21416 + #define DESC_ADDR_REGION_RSVD_LO_OFST 24 21417 + #define DESC_ADDR_REGION_RSVD_LO_LEN 4 21418 + #define DESC_ADDR_REGION_RSVD_LO_LBN 192 21419 + #define DESC_ADDR_REGION_RSVD_LO_WIDTH 32 21420 + #define DESC_ADDR_REGION_RSVD_HI_OFST 28 21421 + #define DESC_ADDR_REGION_RSVD_HI_LEN 4 21422 + #define DESC_ADDR_REGION_RSVD_HI_LBN 224 21423 + #define DESC_ADDR_REGION_RSVD_HI_WIDTH 32 21424 + #define DESC_ADDR_REGION_RSVD_LBN 192 21425 + #define DESC_ADDR_REGION_RSVD_WIDTH 64 21426 + 21427 + 21428 + /***********************************/ 21429 + /* MC_CMD_GET_DESC_ADDR_INFO 21430 + * Returns a description of the mapping from DESC_ADDR to TRGT_ADDR for the calling function's address space. 21431 + */ 21432 + #define MC_CMD_GET_DESC_ADDR_INFO 0x1b7 21433 + #undef MC_CMD_0x1b7_PRIVILEGE_CTG 21434 + 21435 + #define MC_CMD_0x1b7_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21436 + 21437 + /* MC_CMD_GET_DESC_ADDR_INFO_IN msgrequest */ 21438 + #define MC_CMD_GET_DESC_ADDR_INFO_IN_LEN 0 21439 + 21440 + /* MC_CMD_GET_DESC_ADDR_INFO_OUT msgresponse */ 21441 + #define MC_CMD_GET_DESC_ADDR_INFO_OUT_LEN 4 21442 + /* The type of mapping; see SF-nnnnnn-xx (EF100 driver writer's guide, once 21443 + * written) for details of each type. 21444 + */ 21445 + #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_TYPE_OFST 0 21446 + #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_TYPE_LEN 4 21447 + /* enum: TRGT_ADDR = DESC_ADDR */ 21448 + #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_FLAT 0x0 21449 + /* enum: DESC_ADDR has one or more regions that map into TRGT_ADDR. The base 21450 + * TRGT_ADDR for each region is programmable via MCDI. 21451 + */ 21452 + #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_REGIONED 0x1 21453 + 21454 + 21455 + /***********************************/ 21456 + /* MC_CMD_GET_DESC_ADDR_REGIONS 21457 + * Returns a list of the DESC_ADDR regions for the calling function's address space. Only valid if that function's address space has the REGIONED mapping from DESC_ADDR to TRGT_ADDR. 21458 + */ 21459 + #define MC_CMD_GET_DESC_ADDR_REGIONS 0x1b8 21460 + #undef MC_CMD_0x1b8_PRIVILEGE_CTG 21461 + 21462 + #define MC_CMD_0x1b8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21463 + 21464 + /* MC_CMD_GET_DESC_ADDR_REGIONS_IN msgrequest */ 21465 + #define MC_CMD_GET_DESC_ADDR_REGIONS_IN_LEN 0 21466 + 21467 + /* MC_CMD_GET_DESC_ADDR_REGIONS_OUT msgresponse */ 21468 + #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_LENMIN 32 21469 + #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_LENMAX 224 21470 + #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_LENMAX_MCDI2 992 21471 + #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_LEN(num) (0+32*(num)) 21472 + #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_NUM(len) (((len)-0)/32) 21473 + /* An array of DESC_ADDR_REGION strutures. The number of entries in the array 21474 + * indicates the number of available regions. 21475 + */ 21476 + #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_OFST 0 21477 + #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_LEN 32 21478 + #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_MINNUM 1 21479 + #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_MAXNUM 7 21480 + #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_MAXNUM_MCDI2 31 21481 + 21482 + 21483 + /***********************************/ 21484 + /* MC_CMD_SET_DESC_ADDR_REGIONS 21485 + * Set the base TRGT_ADDR for a set of DESC_ADDR regions for the calling function's address space. Only valid if that function's address space had the REGIONED mapping from DESC_ADDR to TRGT_ADDR. 21486 + */ 21487 + #define MC_CMD_SET_DESC_ADDR_REGIONS 0x1b9 21488 + #undef MC_CMD_0x1b9_PRIVILEGE_CTG 21489 + 21490 + #define MC_CMD_0x1b9_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21491 + 21492 + /* MC_CMD_SET_DESC_ADDR_REGIONS_IN msgrequest */ 21493 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_LENMIN 16 21494 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_LENMAX 248 21495 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_LENMAX_MCDI2 1016 21496 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_LEN(num) (8+8*(num)) 21497 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_NUM(len) (((len)-8)/8) 21498 + /* A bitmask indicating which regions should have their base TRGT_ADDR updated. 21499 + * To update the base TRGR_ADDR for a DESC_ADDR region, the corresponding bit 21500 + * should be set to 1. 21501 + */ 21502 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_SET_REGION_MASK_OFST 0 21503 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_SET_REGION_MASK_LEN 4 21504 + /* Reserved field; must be set to zero. */ 21505 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_RSVD_OFST 4 21506 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_RSVD_LEN 4 21507 + /* An array of values used to updated the base TRGT_ADDR for DESC_ADDR regions. 21508 + * Array indices corresponding to region numbers (i.e. the array is sparse, and 21509 + * included entries for regions even if the corresponding SET_REGION_MASK bit 21510 + * is zero). 21511 + */ 21512 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_OFST 8 21513 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LEN 8 21514 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_OFST 8 21515 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_LEN 4 21516 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_LBN 64 21517 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_WIDTH 32 21518 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_OFST 12 21519 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_LEN 4 21520 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_LBN 96 21521 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_WIDTH 32 21522 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_MINNUM 1 21523 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_MAXNUM 30 21524 + #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_MAXNUM_MCDI2 126 21525 + 21526 + /* MC_CMD_SET_DESC_ADDR_REGIONS_OUT msgresponse */ 21527 + #define MC_CMD_SET_DESC_ADDR_REGIONS_OUT_LEN 0 21528 + 21529 + 21530 + /***********************************/ 21531 + /* MC_CMD_CLIENT_CMD 21532 + * Execute an arbitrary MCDI command on behalf of a different client. The 21533 + * consequences of the command (e.g. ownership of any resources created) apply 21534 + * to the indicated client rather than the function client which actually sent 21535 + * this command. All inherent permission checks are also performed on the 21536 + * indicated client. The given client must be a descendant of the requestor. 21537 + * The command to be proxied follows immediately afterward in the host buffer 21538 + * (or on the UART). Chaining multiple MC_CMD_CLIENT_CMD is unnecessary and not 21539 + * supported. New dynamic clients may be created with MC_CMD_CLIENT_ALLOC. 21540 + */ 21541 + #define MC_CMD_CLIENT_CMD 0x1ba 21542 + #undef MC_CMD_0x1ba_PRIVILEGE_CTG 21543 + 21544 + #define MC_CMD_0x1ba_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21545 + 21546 + /* MC_CMD_CLIENT_CMD_IN msgrequest */ 21547 + #define MC_CMD_CLIENT_CMD_IN_LEN 4 21548 + /* The client as which to execute the following command. */ 21549 + #define MC_CMD_CLIENT_CMD_IN_CLIENT_ID_OFST 0 21550 + #define MC_CMD_CLIENT_CMD_IN_CLIENT_ID_LEN 4 21551 + 21552 + /* MC_CMD_CLIENT_CMD_OUT msgresponse */ 21553 + #define MC_CMD_CLIENT_CMD_OUT_LEN 0 21554 + 21555 + 21556 + /***********************************/ 21557 + /* MC_CMD_CLIENT_ALLOC 21558 + * Create a new client object. Clients are a system for delineating NIC 21559 + * resource ownership, such that groups of resources may be torn down as a 21560 + * unit. See also MC_CMD_CLIENT_CMD. See XN-200265-TC for background, concepts 21561 + * and a glossary. Clients created by this command are known as "dynamic 21562 + * clients". The newly-created client is a child of the client which sent this 21563 + * command. The caller must have the GRP_ALLOC_CLIENT privilege. The new client 21564 + * initially has no permission to do anything; see 21565 + * MC_CMD_DEVEL_CLIENT_PRIVILEGE_MODIFY. 21566 + */ 21567 + #define MC_CMD_CLIENT_ALLOC 0x1bb 21568 + #undef MC_CMD_0x1bb_PRIVILEGE_CTG 21569 + 21570 + #define MC_CMD_0x1bb_PRIVILEGE_CTG SRIOV_CTG_ALLOC_CLIENT 21571 + 21572 + /* MC_CMD_CLIENT_ALLOC_IN msgrequest */ 21573 + #define MC_CMD_CLIENT_ALLOC_IN_LEN 0 21574 + 21575 + /* MC_CMD_CLIENT_ALLOC_OUT msgresponse */ 21576 + #define MC_CMD_CLIENT_ALLOC_OUT_LEN 4 21577 + /* The ID of the new client object which has been created. */ 21578 + #define MC_CMD_CLIENT_ALLOC_OUT_CLIENT_ID_OFST 0 21579 + #define MC_CMD_CLIENT_ALLOC_OUT_CLIENT_ID_LEN 4 21580 + 21581 + 21582 + /***********************************/ 21583 + /* MC_CMD_CLIENT_FREE 21584 + * Destroy and release an existing client object. All resources owned by that 21585 + * client (including its child clients, and thus all resources owned by the 21586 + * entire family tree) are freed. 21587 + */ 21588 + #define MC_CMD_CLIENT_FREE 0x1bc 21589 + #undef MC_CMD_0x1bc_PRIVILEGE_CTG 21590 + 21591 + #define MC_CMD_0x1bc_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21592 + 21593 + /* MC_CMD_CLIENT_FREE_IN msgrequest */ 21594 + #define MC_CMD_CLIENT_FREE_IN_LEN 4 21595 + /* The ID of the client to be freed. This client must be a descendant of the 21596 + * requestor. A client cannot free itself. 21597 + */ 21598 + #define MC_CMD_CLIENT_FREE_IN_CLIENT_ID_OFST 0 21599 + #define MC_CMD_CLIENT_FREE_IN_CLIENT_ID_LEN 4 21600 + 21601 + /* MC_CMD_CLIENT_FREE_OUT msgresponse */ 21602 + #define MC_CMD_CLIENT_FREE_OUT_LEN 0 21603 + 21604 + 21605 + /***********************************/ 21606 + /* MC_CMD_SET_VI_USER 21607 + * Assign partial rights over this VI to another client. VIs have an 'owner' 21608 + * and a 'user'. The owner is the client which allocated the VI 21609 + * (MC_CMD_ALLOC_VIS) and cannot be changed. The user is the client which has 21610 + * permission to create queues and other resources on that VI. Initially 21611 + * user==owner, but the user can be changed by this command; the resources thus 21612 + * created are then owned by the user-client. Only the VI owner can call this 21613 + * command, and the request will fail if there are any outstanding child 21614 + * resources (e.g. queues) currently allocated from this VI. 21615 + */ 21616 + #define MC_CMD_SET_VI_USER 0x1be 21617 + #undef MC_CMD_0x1be_PRIVILEGE_CTG 21618 + 21619 + #define MC_CMD_0x1be_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21620 + 21621 + /* MC_CMD_SET_VI_USER_IN msgrequest */ 21622 + #define MC_CMD_SET_VI_USER_IN_LEN 8 21623 + /* Function-relative VI number to modify. */ 21624 + #define MC_CMD_SET_VI_USER_IN_INSTANCE_OFST 0 21625 + #define MC_CMD_SET_VI_USER_IN_INSTANCE_LEN 4 21626 + /* Client ID to become the new user. This must be a descendant of the owning 21627 + * client, the owning client itself, or the special value MC_CMD_CLIENT_ID_SELF 21628 + * which is synonymous with the owning client. 21629 + */ 21630 + #define MC_CMD_SET_VI_USER_IN_CLIENT_ID_OFST 4 21631 + #define MC_CMD_SET_VI_USER_IN_CLIENT_ID_LEN 4 21632 + 21633 + /* MC_CMD_SET_VI_USER_OUT msgresponse */ 21634 + #define MC_CMD_SET_VI_USER_OUT_LEN 0 21635 + 21636 + 21637 + /***********************************/ 21638 + /* MC_CMD_GET_CLIENT_MAC_ADDRESSES 21639 + * A device reports a set of MAC addresses for each client to use, known as the 21640 + * "permanent MAC addresses". Those MAC addresses are provided by the client's 21641 + * administrator, e.g. via MC_CMD_SET_CLIENT_MAC_ADDRESSES, and are intended as 21642 + * a hint to that client which MAC address its administrator would like to use 21643 + * to identity itself. This API exists solely to allow communication of MAC 21644 + * address from administrator to adminstree, and has no inherent interaction 21645 + * with switching within the device. There is no guarantee that a client will 21646 + * be able to send traffic with a source MAC address taken from the list of MAC 21647 + * address reported, nor is there a guarantee that a client will be able to 21648 + * resource traffic with a destination MAC taken from the list of MAC 21649 + * addresses. Likewise, there is no guarantee that a client will not be able to 21650 + * use a MAC address not present in the list. Restrictions on switching are 21651 + * controlled either through the EVB API if operating in EVB mode, or via MAE 21652 + * rules if host software is directly managing the MAE. In order to allow 21653 + * tenants to use this API whilst a provider is using the EVB API, the MAC 21654 + * addresses reported by MC_CMD_GET_CLIENT_MAC_ADDRESSES will be augmented with 21655 + * any MAC addresses associated with the vPort assigned to the caller. In order 21656 + * to allow tenants to use the EVB API whilst a provider is using this API, if 21657 + * a client queries the MAC addresses for a vPort using the host_evb_port_id 21658 + * EVB_PORT_ASSIGNED, that list of MAC addresses will be augmented with the MAC 21659 + * addresses assigned to the calling client. This query can either be explicit 21660 + * (i.e. MC_CMD_VPORT_GET_MAC_ADDRESSES) or implicit (e.g. creation of a 21661 + * vAdaptor with a NULL/automatic MAC address). Changing the MAC address on a 21662 + * vAdaptor only affects VNIC steering filters; it has no effect on the MAC 21663 + * addresses assigned to the vAdaptor's owner. VirtIO clients behave as EVB 21664 + * clients. On VirtIO device reset, a vAdaptor is created with an automatic MAC 21665 + * address. Querying the VirtIO device's MAC address queries the underlying 21666 + * vAdaptor's MAC address. Setting the VirtIO device's MAC address sets the 21667 + * underlying vAdaptor's MAC addresses. 21668 + */ 21669 + #define MC_CMD_GET_CLIENT_MAC_ADDRESSES 0x1c4 21670 + #undef MC_CMD_0x1c4_PRIVILEGE_CTG 21671 + 21672 + #define MC_CMD_0x1c4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21673 + 21674 + /* MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN msgrequest */ 21675 + #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN_LEN 4 21676 + /* A handle for the client for whom MAC address should be obtained. Use 21677 + * CLIENT_HANDLE_SELF to obtain the MAC addresses assigned to the calling 21678 + * client. 21679 + */ 21680 + #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_OFST 0 21681 + #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_LEN 4 21682 + 21683 + /* MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT msgresponse */ 21684 + #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_LENMIN 0 21685 + #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_LENMAX 252 21686 + #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_LENMAX_MCDI2 1020 21687 + #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_LEN(num) (0+6*(num)) 21688 + #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_NUM(len) (((len)-0)/6) 21689 + /* An array of MAC addresses assigned to the client. */ 21690 + #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_OFST 0 21691 + #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_LEN 6 21692 + #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_MINNUM 0 21693 + #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_MAXNUM 42 21694 + #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_MAXNUM_MCDI2 170 21695 + 21696 + 21697 + /***********************************/ 21698 + /* MC_CMD_SET_CLIENT_MAC_ADDRESSES 21699 + * Set the permanent MAC addresses for a client. The caller must by an 21700 + * administrator of the target client. See MC_CMD_GET_CLIENT_MAC_ADDRESSES for 21701 + * additional detail. 21702 + */ 21703 + #define MC_CMD_SET_CLIENT_MAC_ADDRESSES 0x1c5 21704 + #undef MC_CMD_0x1c5_PRIVILEGE_CTG 21705 + 21706 + #define MC_CMD_0x1c5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21707 + 21708 + /* MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN msgrequest */ 21709 + #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LENMIN 4 21710 + #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LENMAX 250 21711 + #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LENMAX_MCDI2 1018 21712 + #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LEN(num) (4+6*(num)) 21713 + #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_NUM(len) (((len)-4)/6) 21714 + /* A handle for the client for whom MAC addresses should be set */ 21715 + #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_OFST 0 21716 + #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_LEN 4 21717 + /* An array of MAC addresses to assign to the client. */ 21718 + #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_OFST 4 21719 + #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_LEN 6 21720 + #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_MINNUM 0 21721 + #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_MAXNUM 41 21722 + #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_MAXNUM_MCDI2 169 21723 + 21724 + /* MC_CMD_SET_CLIENT_MAC_ADDRESSES_OUT msgresponse */ 21725 + #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_OUT_LEN 0 21726 + 21727 + 21728 + /***********************************/ 21729 + /* MC_CMD_GET_BOARD_ATTR 21730 + * Retrieve physical build-level board attributes as configured at 21731 + * manufacturing stage. Fields originate from EEPROM and per-platform constants 21732 + * in firmware. Fields are used in development to identify/ differentiate 21733 + * boards based on build levels/parameters, and also in manufacturing to cross 21734 + * check "what was programmed in manufacturing" is same as "what firmware 21735 + * thinks has been programmed" as there are two layers to translation within 21736 + * firmware before the attributes reach this MCDI handler. Some parameters are 21737 + * retrieved as part of other commands and therefore not replicated here. See 21738 + * GET_VERSION_OUT. 21739 + */ 21740 + #define MC_CMD_GET_BOARD_ATTR 0x1c6 21741 + #undef MC_CMD_0x1c6_PRIVILEGE_CTG 21742 + 21743 + #define MC_CMD_0x1c6_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21744 + 21745 + /* MC_CMD_GET_BOARD_ATTR_IN msgrequest */ 21746 + #define MC_CMD_GET_BOARD_ATTR_IN_LEN 0 21747 + 21748 + /* MC_CMD_GET_BOARD_ATTR_OUT msgresponse */ 21749 + #define MC_CMD_GET_BOARD_ATTR_OUT_LEN 16 21750 + /* Defines board capabilities and validity of attributes returned in this 21751 + * response-message. 21752 + */ 21753 + #define MC_CMD_GET_BOARD_ATTR_OUT_FLAGS_OFST 0 21754 + #define MC_CMD_GET_BOARD_ATTR_OUT_FLAGS_LEN 4 21755 + #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_FAN_OFST 0 21756 + #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_FAN_LBN 0 21757 + #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_FAN_WIDTH 1 21758 + #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_SOC_OFST 0 21759 + #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_SOC_LBN 1 21760 + #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_SOC_WIDTH 1 21761 + #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_AUX_POWER_OFST 0 21762 + #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_AUX_POWER_LBN 2 21763 + #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_AUX_POWER_WIDTH 1 21764 + #define MC_CMD_GET_BOARD_ATTR_OUT_ATTRIBUTES_OFST 4 21765 + #define MC_CMD_GET_BOARD_ATTR_OUT_ATTRIBUTES_LEN 4 21766 + #define MC_CMD_GET_BOARD_ATTR_OUT_SOC_EE_OFST 4 21767 + #define MC_CMD_GET_BOARD_ATTR_OUT_SOC_EE_LBN 0 21768 + #define MC_CMD_GET_BOARD_ATTR_OUT_SOC_EE_WIDTH 1 21769 + #define MC_CMD_GET_BOARD_ATTR_OUT_SUC_EE_OFST 4 21770 + #define MC_CMD_GET_BOARD_ATTR_OUT_SUC_EE_LBN 1 21771 + #define MC_CMD_GET_BOARD_ATTR_OUT_SUC_EE_WIDTH 1 21772 + #define MC_CMD_GET_BOARD_ATTR_OUT_FPGA_VOLTAGES_SUPPORTED_OFST 4 21773 + #define MC_CMD_GET_BOARD_ATTR_OUT_FPGA_VOLTAGES_SUPPORTED_LBN 16 21774 + #define MC_CMD_GET_BOARD_ATTR_OUT_FPGA_VOLTAGES_SUPPORTED_WIDTH 8 21775 + /* enum: The FPGA voltage on the adapter can be set to low */ 21776 + #define MC_CMD_FPGA_VOLTAGE_LOW 0x0 21777 + /* enum: The FPGA voltage on the adapter can be set to regular */ 21778 + #define MC_CMD_FPGA_VOLTAGE_REG 0x1 21779 + /* enum: The FPGA voltage on the adapter can be set to high */ 21780 + #define MC_CMD_FPGA_VOLTAGE_HIGH 0x2 21781 + #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_COUNT_OFST 4 21782 + #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_COUNT_LBN 24 21783 + #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_COUNT_WIDTH 8 21784 + /* An array of cage types on the board */ 21785 + #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_OFST 8 21786 + #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_LEN 1 21787 + #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_NUM 8 21788 + /* enum: The cages are not known */ 21789 + #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_UNKNOWN 0x0 21790 + /* enum: The cages are SFP/SFP+ */ 21791 + #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_SFP 0x1 21792 + /* enum: The cages are QSFP/QSFP+ */ 21793 + #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_QSFP 0x2 21794 + 21795 + 21796 + /***********************************/ 21797 + /* MC_CMD_GET_SOC_STATE 21798 + * Retrieve current state of the System-on-Chip. This command is valid when 21799 + * MC_CMD_GET_BOARD_ATTR:HAS_SOC is set. 21800 + */ 21801 + #define MC_CMD_GET_SOC_STATE 0x1c7 21802 + #undef MC_CMD_0x1c7_PRIVILEGE_CTG 21803 + 21804 + #define MC_CMD_0x1c7_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21805 + 21806 + /* MC_CMD_GET_SOC_STATE_IN msgrequest */ 21807 + #define MC_CMD_GET_SOC_STATE_IN_LEN 0 21808 + 21809 + /* MC_CMD_GET_SOC_STATE_OUT msgresponse */ 21810 + #define MC_CMD_GET_SOC_STATE_OUT_LEN 12 21811 + /* Status flags for the SoC */ 21812 + #define MC_CMD_GET_SOC_STATE_OUT_FLAGS_OFST 0 21813 + #define MC_CMD_GET_SOC_STATE_OUT_FLAGS_LEN 4 21814 + #define MC_CMD_GET_SOC_STATE_OUT_SHOULD_THROTTLE_OFST 0 21815 + #define MC_CMD_GET_SOC_STATE_OUT_SHOULD_THROTTLE_LBN 0 21816 + #define MC_CMD_GET_SOC_STATE_OUT_SHOULD_THROTTLE_WIDTH 1 21817 + #define MC_CMD_GET_SOC_STATE_OUT_OS_RECOVERY_REQUIRED_OFST 0 21818 + #define MC_CMD_GET_SOC_STATE_OUT_OS_RECOVERY_REQUIRED_LBN 1 21819 + #define MC_CMD_GET_SOC_STATE_OUT_OS_RECOVERY_REQUIRED_WIDTH 1 21820 + #define MC_CMD_GET_SOC_STATE_OUT_WDT_FIRED_OFST 0 21821 + #define MC_CMD_GET_SOC_STATE_OUT_WDT_FIRED_LBN 2 21822 + #define MC_CMD_GET_SOC_STATE_OUT_WDT_FIRED_WIDTH 1 21823 + /* Status fields for the SoC */ 21824 + #define MC_CMD_GET_SOC_STATE_OUT_ATTRIBUTES_OFST 4 21825 + #define MC_CMD_GET_SOC_STATE_OUT_ATTRIBUTES_LEN 4 21826 + #define MC_CMD_GET_SOC_STATE_OUT_RUN_STATE_OFST 4 21827 + #define MC_CMD_GET_SOC_STATE_OUT_RUN_STATE_LBN 0 21828 + #define MC_CMD_GET_SOC_STATE_OUT_RUN_STATE_WIDTH 8 21829 + /* enum: Power on (set by SUC on power up) */ 21830 + #define MC_CMD_GET_SOC_STATE_OUT_SOC_BOOT 0x0 21831 + /* enum: Running bootloader */ 21832 + #define MC_CMD_GET_SOC_STATE_OUT_SOC_BOOTLOADER 0x1 21833 + /* enum: Bootloader has started OS. OS is booting */ 21834 + #define MC_CMD_GET_SOC_STATE_OUT_SOC_OS_START 0x2 21835 + /* enum: OS is running */ 21836 + #define MC_CMD_GET_SOC_STATE_OUT_SOC_OS_RUNNING 0x3 21837 + /* enum: Maintenance OS is running */ 21838 + #define MC_CMD_GET_SOC_STATE_OUT_SOC_OS_MAINTENANCE 0x4 21839 + /* Number of SoC resets since power on */ 21840 + #define MC_CMD_GET_SOC_STATE_OUT_RESET_COUNT_OFST 8 21841 + #define MC_CMD_GET_SOC_STATE_OUT_RESET_COUNT_LEN 4 21842 + 21843 + 21844 + /***********************************/ 21845 + /* MC_CMD_CHECK_SCHEDULER_CREDITS 21846 + * For debugging purposes. For each source and destination node in the hardware 21847 + * schedulers, check whether the number of credits is as it should be. This 21848 + * should only be used when the NIC is idle, because collection is not atomic 21849 + * and because the expected credit counts are only meaningful when no traffic 21850 + * is flowing. 21851 + */ 21852 + #define MC_CMD_CHECK_SCHEDULER_CREDITS 0x1c8 21853 + #undef MC_CMD_0x1c8_PRIVILEGE_CTG 21854 + 21855 + #define MC_CMD_0x1c8_PRIVILEGE_CTG SRIOV_CTG_ADMIN 21856 + 21857 + /* MC_CMD_CHECK_SCHEDULER_CREDITS_IN msgrequest */ 21858 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_LEN 8 21859 + /* Flags for the request */ 21860 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_FLAGS_OFST 0 21861 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_FLAGS_LEN 4 21862 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_REPORT_ALL_OFST 0 21863 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_REPORT_ALL_LBN 0 21864 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_REPORT_ALL_WIDTH 1 21865 + /* If there are too many results to fit into an MCDI response, they're split 21866 + * into pages. This field specifies which (0-indexed) page to request. A 21867 + * request with PAGE=0 will snapshot the results, and subsequent requests with 21868 + * PAGE>0 will return data from the most recent snapshot. The GENERATION field 21869 + * in the response allows callers to verify that all responses correspond to 21870 + * the same snapshot. 21871 + */ 21872 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_PAGE_OFST 4 21873 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_PAGE_LEN 4 21874 + 21875 + /* MC_CMD_CHECK_SCHEDULER_CREDITS_OUT msgresponse */ 21876 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_LENMIN 16 21877 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_LENMAX 240 21878 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_LENMAX_MCDI2 1008 21879 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_LEN(num) (16+16*(num)) 21880 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_NUM(len) (((len)-16)/16) 21881 + /* The total number of results (across all pages). */ 21882 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_TOTAL_RESULTS_OFST 0 21883 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_TOTAL_RESULTS_LEN 4 21884 + /* The number of pages that the response is split across. */ 21885 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_NUM_PAGES_OFST 4 21886 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_NUM_PAGES_LEN 4 21887 + /* The number of results in this response. */ 21888 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_THIS_PAGE_OFST 8 21889 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_THIS_PAGE_LEN 4 21890 + /* Result generation count. Incremented any time a request is made with PAGE=0. 21891 + */ 21892 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_GENERATION_OFST 12 21893 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_GENERATION_LEN 4 21894 + /* The results, as an array of SCHED_CREDIT_CHECK_RESULT structures. */ 21895 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_OFST 16 21896 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_LEN 16 21897 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_MINNUM 0 21898 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_MAXNUM 14 21899 + #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_MAXNUM_MCDI2 62 21900 + 21901 + 21902 + /***********************************/ 21903 + /* MC_CMD_TXQ_STATS 21904 + * Query per-TXQ statistics. 21905 + */ 21906 + #define MC_CMD_TXQ_STATS 0x1d5 21907 + #undef MC_CMD_0x1d5_PRIVILEGE_CTG 21908 + 21909 + #define MC_CMD_0x1d5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21910 + 21911 + /* MC_CMD_TXQ_STATS_IN msgrequest */ 21912 + #define MC_CMD_TXQ_STATS_IN_LEN 8 21913 + /* Instance of TXQ to retrieve statistics for */ 21914 + #define MC_CMD_TXQ_STATS_IN_INSTANCE_OFST 0 21915 + #define MC_CMD_TXQ_STATS_IN_INSTANCE_LEN 4 21916 + /* Flags for the request */ 21917 + #define MC_CMD_TXQ_STATS_IN_FLAGS_OFST 4 21918 + #define MC_CMD_TXQ_STATS_IN_FLAGS_LEN 4 21919 + #define MC_CMD_TXQ_STATS_IN_CLEAR_OFST 4 21920 + #define MC_CMD_TXQ_STATS_IN_CLEAR_LBN 0 21921 + #define MC_CMD_TXQ_STATS_IN_CLEAR_WIDTH 1 21922 + 21923 + /* MC_CMD_TXQ_STATS_OUT msgresponse */ 21924 + #define MC_CMD_TXQ_STATS_OUT_LENMIN 0 21925 + #define MC_CMD_TXQ_STATS_OUT_LENMAX 248 21926 + #define MC_CMD_TXQ_STATS_OUT_LENMAX_MCDI2 1016 21927 + #define MC_CMD_TXQ_STATS_OUT_LEN(num) (0+8*(num)) 21928 + #define MC_CMD_TXQ_STATS_OUT_STATISTICS_NUM(len) (((len)-0)/8) 21929 + #define MC_CMD_TXQ_STATS_OUT_STATISTICS_OFST 0 21930 + #define MC_CMD_TXQ_STATS_OUT_STATISTICS_LEN 8 21931 + #define MC_CMD_TXQ_STATS_OUT_STATISTICS_LO_OFST 0 21932 + #define MC_CMD_TXQ_STATS_OUT_STATISTICS_LO_LEN 4 21933 + #define MC_CMD_TXQ_STATS_OUT_STATISTICS_LO_LBN 0 21934 + #define MC_CMD_TXQ_STATS_OUT_STATISTICS_LO_WIDTH 32 21935 + #define MC_CMD_TXQ_STATS_OUT_STATISTICS_HI_OFST 4 21936 + #define MC_CMD_TXQ_STATS_OUT_STATISTICS_HI_LEN 4 21937 + #define MC_CMD_TXQ_STATS_OUT_STATISTICS_HI_LBN 32 21938 + #define MC_CMD_TXQ_STATS_OUT_STATISTICS_HI_WIDTH 32 21939 + #define MC_CMD_TXQ_STATS_OUT_STATISTICS_MINNUM 0 21940 + #define MC_CMD_TXQ_STATS_OUT_STATISTICS_MAXNUM 31 21941 + #define MC_CMD_TXQ_STATS_OUT_STATISTICS_MAXNUM_MCDI2 127 21942 + #define MC_CMD_TXQ_STATS_CTPIO_MAX_FILL 0x0 /* enum */ 24095 21943 24096 21944 /* FUNCTION_PERSONALITY structuredef: The meanings of the personalities are 24097 21945 * defined in SF-120734-TC with more information in SF-122717-TC. ··· 25112 21044 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_OFST 0 25113 21045 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LEN 8 25114 21046 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_OFST 0 21047 + #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_LEN 4 21048 + #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_LBN 0 21049 + #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_WIDTH 32 25115 21050 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_OFST 4 21051 + #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_LEN 4 21052 + #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_LBN 32 21053 + #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_WIDTH 32 25116 21054 25117 21055 25118 21056 /***********************************/ ··· 25149 21075 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_OFST 8 25150 21076 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LEN 8 25151 21077 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_OFST 8 21078 + #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_LEN 4 21079 + #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_LBN 64 21080 + #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_WIDTH 32 25152 21081 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_OFST 12 21082 + #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_LEN 4 21083 + #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_LBN 96 21084 + #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_WIDTH 32 25153 21085 25154 21086 /* MC_CMD_VIRTIO_TEST_FEATURES_OUT msgresponse */ 25155 21087 #define MC_CMD_VIRTIO_TEST_FEATURES_OUT_LEN 0 21088 + 21089 + 21090 + /***********************************/ 21091 + /* MC_CMD_VIRTIO_GET_CAPABILITIES 21092 + * Get virtio capabilities supported by the device. Returns general virtio 21093 + * capabilities and limitations of the hardware / firmware implementation 21094 + * (hardware device as a whole), rather than that of individual configured 21095 + * virtio devices. At present, only the absolute maximum number of queues 21096 + * allowed on multi-queue devices is returned. Response is expected to be 21097 + * extended as necessary in the future. 21098 + */ 21099 + #define MC_CMD_VIRTIO_GET_CAPABILITIES 0x1d3 21100 + #undef MC_CMD_0x1d3_PRIVILEGE_CTG 21101 + 21102 + #define MC_CMD_0x1d3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21103 + 21104 + /* MC_CMD_VIRTIO_GET_CAPABILITIES_IN msgrequest */ 21105 + #define MC_CMD_VIRTIO_GET_CAPABILITIES_IN_LEN 4 21106 + /* Type of device to get capabilities for. Matches the device id as defined by 21107 + * the virtio spec. 21108 + */ 21109 + #define MC_CMD_VIRTIO_GET_CAPABILITIES_IN_DEVICE_ID_OFST 0 21110 + #define MC_CMD_VIRTIO_GET_CAPABILITIES_IN_DEVICE_ID_LEN 4 21111 + /* Enum values, see field(s): */ 21112 + /* MC_CMD_VIRTIO_GET_FEATURES/MC_CMD_VIRTIO_GET_FEATURES_IN/DEVICE_ID */ 21113 + 21114 + /* MC_CMD_VIRTIO_GET_CAPABILITIES_OUT msgresponse */ 21115 + #define MC_CMD_VIRTIO_GET_CAPABILITIES_OUT_LEN 4 21116 + /* Maximum number of queues supported for a single device instance */ 21117 + #define MC_CMD_VIRTIO_GET_CAPABILITIES_OUT_MAX_QUEUES_OFST 0 21118 + #define MC_CMD_VIRTIO_GET_CAPABILITIES_OUT_MAX_QUEUES_LEN 4 25156 21119 25157 21120 25158 21121 /***********************************/ ··· 25244 21133 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_OFST 16 25245 21134 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LEN 8 25246 21135 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_OFST 16 21136 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_LEN 4 21137 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_LBN 128 21138 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_WIDTH 32 25247 21139 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_OFST 20 21140 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_LEN 4 21141 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_LBN 160 21142 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_WIDTH 32 25248 21143 /* Address of the available ring in the virtqueue. */ 25249 21144 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_OFST 24 25250 21145 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LEN 8 25251 21146 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_OFST 24 21147 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_LEN 4 21148 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_LBN 192 21149 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_WIDTH 32 25252 21150 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_OFST 28 21151 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_LEN 4 21152 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_LBN 224 21153 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_WIDTH 32 25253 21154 /* Address of the used ring in the virtqueue. */ 25254 21155 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_OFST 32 25255 21156 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LEN 8 25256 21157 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_OFST 32 21158 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_LEN 4 21159 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_LBN 256 21160 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_WIDTH 32 25257 21161 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_OFST 36 21162 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_LEN 4 21163 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_LBN 288 21164 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_WIDTH 32 25258 21165 /* PASID to use on PCIe transactions involving this queue. Ignored if the 25259 21166 * USE_PASID flag is not set. 25260 21167 */ ··· 25296 21167 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_OFST 48 25297 21168 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LEN 8 25298 21169 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_OFST 48 21170 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_LEN 4 21171 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_LBN 384 21172 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_WIDTH 32 25299 21173 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_OFST 52 21174 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_LEN 4 21175 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_LBN 416 21176 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_WIDTH 32 25300 21177 /* Enum values, see field(s): */ 25301 21178 /* MC_CMD_VIRTIO_GET_FEATURES/MC_CMD_VIRTIO_GET_FEATURES_OUT/FEATURES */ 25302 - /* The inital producer index for this queue's used ring. If this queue is being 25303 - * created to be migrated into, this should be the FINAL_PIDX value returned by 25304 - * MC_CMD_VIRTIO_FINI_QUEUE of the queue being migrated from. Otherwise, it 21179 + /* The initial available index for this virtqueue. If this queue is being 21180 + * created to be migrated into, this should be the FINAL_AVAIL_IDX value 21181 + * returned by MC_CMD_VIRTIO_FINI_QUEUE of the queue being migrated from (or 21182 + * equivalent if the original queue was on a thirdparty device). Otherwise, it 25305 21183 * should be zero. 25306 21184 */ 21185 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_AVAIL_IDX_OFST 56 21186 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_AVAIL_IDX_LEN 4 21187 + /* Alias of INITIAL_AVAIL_IDX, kept for compatibility. */ 25307 21188 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_PIDX_OFST 56 25308 21189 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_PIDX_LEN 4 25309 - /* The inital consumer index for this queue's available ring. If this queue is 25310 - * being created to be migrated into, this should be the FINAL_CIDX value 25311 - * returned by MC_CMD_VIRTIO_FINI_QUEUE of the queue being migrated from. 25312 - * Otherwise, it should be zero. 21190 + /* The initial used index for this virtqueue. If this queue is being created to 21191 + * be migrated into, this should be the FINAL_USED_IDX value returned by 21192 + * MC_CMD_VIRTIO_FINI_QUEUE of the queue being migrated from (or equivalent if 21193 + * the original queue was on a thirdparty device). Otherwise, it should be 21194 + * zero. 25313 21195 */ 21196 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_USED_IDX_OFST 60 21197 + #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_USED_IDX_LEN 4 21198 + /* Alias of INITIAL_USED_IDX, kept for compatibility. */ 25314 21199 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_CIDX_OFST 60 25315 21200 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_CIDX_LEN 4 25316 21201 /* A MAE_MPORT_SELECTOR defining which mport this queue should be associated ··· 25369 21226 25370 21227 /* MC_CMD_VIRTIO_FINI_QUEUE_RESP msgresponse */ 25371 21228 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_LEN 8 25372 - /* The producer index of the used ring when the queue was stopped. */ 21229 + /* The available index of the virtqueue when the queue was stopped. */ 21230 + #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_AVAIL_IDX_OFST 0 21231 + #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_AVAIL_IDX_LEN 4 21232 + /* Alias of FINAL_AVAIL_IDX, kept for compatibility. */ 25373 21233 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_PIDX_OFST 0 25374 21234 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_PIDX_LEN 4 25375 - /* The consumer index of the available ring when the queue was stopped. */ 21235 + /* The used index of the virtqueue when the queue was stopped. */ 21236 + #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_USED_IDX_OFST 4 21237 + #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_USED_IDX_LEN 4 21238 + /* Alias of FINAL_USED_IDX, kept for compatibility. */ 25376 21239 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_CIDX_OFST 4 25377 21240 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_CIDX_LEN 4 25378 21241 ··· 25458 21309 #define PCIE_FUNCTION_VF_NULL 0xffff 25459 21310 #define PCIE_FUNCTION_VF_LBN 16 25460 21311 #define PCIE_FUNCTION_VF_WIDTH 16 25461 - /* PCIe interface of the function */ 21312 + /* PCIe interface of the function. Values should be taken from the 21313 + * PCIE_INTERFACE enum 21314 + */ 25462 21315 #define PCIE_FUNCTION_INTF_OFST 4 25463 21316 #define PCIE_FUNCTION_INTF_LEN 4 25464 - /* enum: Host PCIe interface */ 21317 + /* enum: Host PCIe interface. (Alias for HOST_PRIMARY, provided for backwards 21318 + * compatibility) 21319 + */ 25465 21320 #define PCIE_FUNCTION_INTF_HOST 0x0 25466 - /* enum: Application Processor interface */ 21321 + /* enum: Application Processor interface (alias for NIC_EMBEDDED, provided for 21322 + * backwards compatibility) 21323 + */ 25467 21324 #define PCIE_FUNCTION_INTF_AP 0x1 25468 21325 #define PCIE_FUNCTION_INTF_LBN 32 25469 21326 #define PCIE_FUNCTION_INTF_WIDTH 32 21327 + 21328 + /* QUEUE_ID structuredef: Structure representing an absolute queue identifier 21329 + * (absolute VI number + VI relative queue number). On Keystone, a VI can 21330 + * contain multiple queues (at present, up to 2), each with separate controls 21331 + * for direction. This structure is required to uniquely identify the absolute 21332 + * source queue for descriptor proxy functions. 21333 + */ 21334 + #define QUEUE_ID_LEN 4 21335 + /* Absolute VI number */ 21336 + #define QUEUE_ID_ABS_VI_OFST 0 21337 + #define QUEUE_ID_ABS_VI_LEN 2 21338 + #define QUEUE_ID_ABS_VI_LBN 0 21339 + #define QUEUE_ID_ABS_VI_WIDTH 16 21340 + /* Relative queue number within the VI */ 21341 + #define QUEUE_ID_REL_QUEUE_LBN 16 21342 + #define QUEUE_ID_REL_QUEUE_WIDTH 1 21343 + #define QUEUE_ID_RESERVED_LBN 17 21344 + #define QUEUE_ID_RESERVED_WIDTH 15 25470 21345 25471 21346 25472 21347 /***********************************/ ··· 25520 21347 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_OFST 0 25521 21348 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LEN 8 25522 21349 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LO_OFST 0 21350 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LO_LEN 4 21351 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LO_LBN 0 21352 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LO_WIDTH 32 25523 21353 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_HI_OFST 4 21354 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_HI_LEN 4 21355 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_HI_LBN 32 21356 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_HI_WIDTH 32 21357 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_PF_OFST 0 21358 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_PF_LEN 2 21359 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_VF_OFST 2 21360 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_VF_LEN 2 21361 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_INTF_OFST 4 21362 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_INTF_LEN 4 25524 21363 /* The personality to set. The meanings of the personalities are defined in 25525 21364 * SF-120734-TC with more information in SF-122717-TC. At present, we only 25526 21365 * support proxying for VIRTIO_BLK ··· 25556 21371 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_OFST 4 25557 21372 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LEN 8 25558 21373 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LO_OFST 4 21374 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LO_LEN 4 21375 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LO_LBN 32 21376 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LO_WIDTH 32 25559 21377 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_HI_OFST 8 21378 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_HI_LEN 4 21379 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_HI_LBN 64 21380 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_HI_WIDTH 32 21381 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_PF_OFST 4 21382 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_PF_LEN 2 21383 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_VF_OFST 6 21384 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_VF_LEN 2 21385 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_INTF_OFST 8 21386 + #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_INTF_LEN 4 25560 21387 25561 21388 25562 21389 /***********************************/ ··· 25609 21412 #define VIRTIO_BLK_CONFIG_FEATURES_OFST 0 25610 21413 #define VIRTIO_BLK_CONFIG_FEATURES_LEN 8 25611 21414 #define VIRTIO_BLK_CONFIG_FEATURES_LO_OFST 0 21415 + #define VIRTIO_BLK_CONFIG_FEATURES_LO_LEN 4 21416 + #define VIRTIO_BLK_CONFIG_FEATURES_LO_LBN 0 21417 + #define VIRTIO_BLK_CONFIG_FEATURES_LO_WIDTH 32 25612 21418 #define VIRTIO_BLK_CONFIG_FEATURES_HI_OFST 4 21419 + #define VIRTIO_BLK_CONFIG_FEATURES_HI_LEN 4 21420 + #define VIRTIO_BLK_CONFIG_FEATURES_HI_LBN 32 21421 + #define VIRTIO_BLK_CONFIG_FEATURES_HI_WIDTH 32 25613 21422 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BARRIER_OFST 0 25614 21423 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BARRIER_LBN 0 25615 21424 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BARRIER_WIDTH 1 ··· 25688 21485 #define VIRTIO_BLK_CONFIG_CAPACITY_OFST 8 25689 21486 #define VIRTIO_BLK_CONFIG_CAPACITY_LEN 8 25690 21487 #define VIRTIO_BLK_CONFIG_CAPACITY_LO_OFST 8 21488 + #define VIRTIO_BLK_CONFIG_CAPACITY_LO_LEN 4 21489 + #define VIRTIO_BLK_CONFIG_CAPACITY_LO_LBN 64 21490 + #define VIRTIO_BLK_CONFIG_CAPACITY_LO_WIDTH 32 25691 21491 #define VIRTIO_BLK_CONFIG_CAPACITY_HI_OFST 12 21492 + #define VIRTIO_BLK_CONFIG_CAPACITY_HI_LEN 4 21493 + #define VIRTIO_BLK_CONFIG_CAPACITY_HI_LBN 96 21494 + #define VIRTIO_BLK_CONFIG_CAPACITY_HI_WIDTH 32 25692 21495 #define VIRTIO_BLK_CONFIG_CAPACITY_LBN 64 25693 21496 #define VIRTIO_BLK_CONFIG_CAPACITY_WIDTH 64 25694 21497 /* Maximum size of any single segment. Only valid when VIRTIO_BLK_F_SIZE_MAX is ··· 25929 21720 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_OFST 4 25930 21721 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LEN 8 25931 21722 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LO_OFST 4 21723 + #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LO_LEN 4 21724 + #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LO_LBN 32 21725 + #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LO_WIDTH 32 25932 21726 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_HI_OFST 8 21727 + #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_HI_LEN 4 21728 + #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_HI_LBN 64 21729 + #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_HI_WIDTH 32 21730 + #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_PF_OFST 4 21731 + #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_PF_LEN 2 21732 + #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_VF_OFST 6 21733 + #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_VF_LEN 2 21734 + #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_INTF_OFST 8 21735 + #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_INTF_LEN 4 25933 21736 /* Function personality */ 25934 21737 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_PERSONALITY_OFST 12 25935 21738 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_PERSONALITY_LEN 4 ··· 25954 21733 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_LIVE 0x0 25955 21734 /* enum: Function configuration is pending reset */ 25956 21735 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_PENDING 0x1 21736 + /* enum: Function configuration is missing (created, but no configuration 21737 + * committed) 21738 + */ 21739 + #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_UNCONFIGURED 0x2 25957 21740 /* Generation count to be delivered in an event once the configuration becomes 25958 21741 * live (if status is "pending") 25959 21742 */ ··· 25967 21742 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_RESERVED_OFST 24 25968 21743 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_RESERVED_LEN 16 25969 21744 /* Configuration data corresponding to function personality. Currently, only 25970 - * supported format is VIRTIO_BLK_CONFIG 21745 + * supported format is VIRTIO_BLK_CONFIG. Not valid if status is UNCONFIGURED. 25971 21746 */ 25972 21747 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_OFST 40 25973 21748 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_LEN 1 ··· 26005 21780 #define DESC_PROXY_FUNC_MAP_FUNC_OFST 0 26006 21781 #define DESC_PROXY_FUNC_MAP_FUNC_LEN 8 26007 21782 #define DESC_PROXY_FUNC_MAP_FUNC_LO_OFST 0 21783 + #define DESC_PROXY_FUNC_MAP_FUNC_LO_LEN 4 21784 + #define DESC_PROXY_FUNC_MAP_FUNC_LO_LBN 0 21785 + #define DESC_PROXY_FUNC_MAP_FUNC_LO_WIDTH 32 26008 21786 #define DESC_PROXY_FUNC_MAP_FUNC_HI_OFST 4 21787 + #define DESC_PROXY_FUNC_MAP_FUNC_HI_LEN 4 21788 + #define DESC_PROXY_FUNC_MAP_FUNC_HI_LBN 32 21789 + #define DESC_PROXY_FUNC_MAP_FUNC_HI_WIDTH 32 26009 21790 #define DESC_PROXY_FUNC_MAP_FUNC_LBN 0 26010 21791 #define DESC_PROXY_FUNC_MAP_FUNC_WIDTH 64 21792 + #define DESC_PROXY_FUNC_MAP_FUNC_PF_OFST 0 21793 + #define DESC_PROXY_FUNC_MAP_FUNC_PF_LEN 2 21794 + #define DESC_PROXY_FUNC_MAP_FUNC_PF_LBN 0 21795 + #define DESC_PROXY_FUNC_MAP_FUNC_PF_WIDTH 16 21796 + #define DESC_PROXY_FUNC_MAP_FUNC_VF_OFST 2 21797 + #define DESC_PROXY_FUNC_MAP_FUNC_VF_LEN 2 21798 + #define DESC_PROXY_FUNC_MAP_FUNC_VF_LBN 16 21799 + #define DESC_PROXY_FUNC_MAP_FUNC_VF_WIDTH 16 21800 + #define DESC_PROXY_FUNC_MAP_FUNC_INTF_OFST 4 21801 + #define DESC_PROXY_FUNC_MAP_FUNC_INTF_LEN 4 21802 + #define DESC_PROXY_FUNC_MAP_FUNC_INTF_LBN 32 21803 + #define DESC_PROXY_FUNC_MAP_FUNC_INTF_WIDTH 32 26011 21804 /* Function personality */ 26012 21805 #define DESC_PROXY_FUNC_MAP_PERSONALITY_OFST 8 26013 21806 #define DESC_PROXY_FUNC_MAP_PERSONALITY_LEN 4 ··· 26083 21840 * Enable descriptor proxying for function into target event queue. Returns VI 26084 21841 * allocation info for the proxy source function, so that the caller can map 26085 21842 * absolute VI IDs from descriptor proxy events back to the originating 26086 - * function. 21843 + * function. This is a legacy function that only supports single queue proxy 21844 + * devices. It is also limited in that it can only be called after host driver 21845 + * attach (once VI allocation is known) and will return MC_CMD_ERR_ENOTCONN 21846 + * otherwise. For new code, see MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE which 21847 + * supports multi-queue devices and has no dependency on host driver attach. 26087 21848 */ 26088 21849 #define MC_CMD_DESC_PROXY_FUNC_ENABLE 0x178 26089 21850 #undef MC_CMD_0x178_PRIVILEGE_CTG ··· 26118 21871 26119 21872 26120 21873 /***********************************/ 21874 + /* MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE 21875 + * Enable descriptor proxying for a source queue on a host function into target 21876 + * event queue. Source queue number is a relative virtqueue number on the 21877 + * source function (0 to max_virtqueues-1). For a multi-queue device, the 21878 + * caller must enable all source queues individually. To retrieve absolute VI 21879 + * information for the source function (so that VI IDs from descriptor proxy 21880 + * events can be mapped back to source function / queue) see 21881 + * MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO 21882 + */ 21883 + #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE 0x1d0 21884 + #undef MC_CMD_0x1d0_PRIVILEGE_CTG 21885 + 21886 + #define MC_CMD_0x1d0_PRIVILEGE_CTG SRIOV_CTG_ADMIN 21887 + 21888 + /* MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN msgrequest */ 21889 + #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_LEN 12 21890 + /* Handle to descriptor proxy function (as returned by 21891 + * MC_CMD_DESC_PROXY_FUNC_OPEN) 21892 + */ 21893 + #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_HANDLE_OFST 0 21894 + #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_HANDLE_LEN 4 21895 + /* Source relative queue number to enable proxying on */ 21896 + #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_SOURCE_QUEUE_OFST 4 21897 + #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_SOURCE_QUEUE_LEN 4 21898 + /* Descriptor proxy sink queue (caller function relative). Must be extended 21899 + * width event queue 21900 + */ 21901 + #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_TARGET_EVQ_OFST 8 21902 + #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_TARGET_EVQ_LEN 4 21903 + 21904 + /* MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_OUT msgresponse */ 21905 + #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_OUT_LEN 0 21906 + 21907 + 21908 + /***********************************/ 26121 21909 /* MC_CMD_DESC_PROXY_FUNC_DISABLE 26122 - * Disable descriptor proxying for function 21910 + * Disable descriptor proxying for function. For multi-queue functions, 21911 + * disables all queues. 26123 21912 */ 26124 21913 #define MC_CMD_DESC_PROXY_FUNC_DISABLE 0x179 26125 21914 #undef MC_CMD_0x179_PRIVILEGE_CTG ··· 26172 21889 26173 21890 /* MC_CMD_DESC_PROXY_FUNC_DISABLE_OUT msgresponse */ 26174 21891 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_OUT_LEN 0 21892 + 21893 + 21894 + /***********************************/ 21895 + /* MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE 21896 + * Disable descriptor proxying for a specific source queue on a function. 21897 + */ 21898 + #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE 0x1d1 21899 + #undef MC_CMD_0x1d1_PRIVILEGE_CTG 21900 + 21901 + #define MC_CMD_0x1d1_PRIVILEGE_CTG SRIOV_CTG_ADMIN 21902 + 21903 + /* MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN msgrequest */ 21904 + #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN_LEN 8 21905 + /* Handle to descriptor proxy function (as returned by 21906 + * MC_CMD_DESC_PROXY_FUNC_OPEN) 21907 + */ 21908 + #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN_HANDLE_OFST 0 21909 + #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN_HANDLE_LEN 4 21910 + /* Source relative queue number to disable proxying on */ 21911 + #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN_SOURCE_QUEUE_OFST 4 21912 + #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN_SOURCE_QUEUE_LEN 4 21913 + 21914 + /* MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_OUT msgresponse */ 21915 + #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_OUT_LEN 0 21916 + 21917 + 21918 + /***********************************/ 21919 + /* MC_CMD_DESC_PROXY_GET_VI_INFO 21920 + * Returns absolute VI allocation information for the descriptor proxy source 21921 + * function referenced by HANDLE, so that the caller can map absolute VI IDs 21922 + * from descriptor proxy events back to the originating function and queue. The 21923 + * call is only valid after the host driver for the source function has 21924 + * attached (after receiving a driver attach event for the descriptor proxy 21925 + * function) and will fail with ENOTCONN otherwise. 21926 + */ 21927 + #define MC_CMD_DESC_PROXY_GET_VI_INFO 0x1d2 21928 + #undef MC_CMD_0x1d2_PRIVILEGE_CTG 21929 + 21930 + #define MC_CMD_0x1d2_PRIVILEGE_CTG SRIOV_CTG_ADMIN 21931 + 21932 + /* MC_CMD_DESC_PROXY_GET_VI_INFO_IN msgrequest */ 21933 + #define MC_CMD_DESC_PROXY_GET_VI_INFO_IN_LEN 4 21934 + /* Handle to descriptor proxy function (as returned by 21935 + * MC_CMD_DESC_PROXY_FUNC_OPEN) 21936 + */ 21937 + #define MC_CMD_DESC_PROXY_GET_VI_INFO_IN_HANDLE_OFST 0 21938 + #define MC_CMD_DESC_PROXY_GET_VI_INFO_IN_HANDLE_LEN 4 21939 + 21940 + /* MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT msgresponse */ 21941 + #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_LENMIN 0 21942 + #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_LENMAX 252 21943 + #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_LENMAX_MCDI2 1020 21944 + #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_LEN(num) (0+4*(num)) 21945 + #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_NUM(len) (((len)-0)/4) 21946 + /* VI information (VI ID + VI relative queue number) for each of the source 21947 + * queues (in order from 0 to max_virtqueues-1), as array of QUEUE_ID 21948 + * structures. 21949 + */ 21950 + #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_OFST 0 21951 + #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_LEN 4 21952 + #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_MINNUM 0 21953 + #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_MAXNUM 63 21954 + #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_MAXNUM_MCDI2 255 21955 + #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_ABS_VI_OFST 0 21956 + #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_ABS_VI_LEN 2 21957 + #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_REL_QUEUE_LBN 16 21958 + #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_REL_QUEUE_WIDTH 1 21959 + #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_RESERVED_LBN 17 21960 + #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_RESERVED_WIDTH 15 26175 21961 26176 21962 26177 21963 /***********************************/ ··· 26294 21942 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_OFST 4 26295 21943 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LEN 8 26296 21944 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LO_OFST 4 21945 + #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LO_LEN 4 21946 + #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LO_LBN 32 21947 + #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LO_WIDTH 32 26297 21948 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_HI_OFST 8 21949 + #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_HI_LEN 4 21950 + #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_HI_LBN 64 21951 + #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_HI_WIDTH 32 21952 + #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_PF_OFST 4 21953 + #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_PF_LEN 2 21954 + #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_VF_OFST 6 21955 + #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_VF_LEN 2 21956 + #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_INTF_OFST 8 21957 + #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_INTF_LEN 4 26298 21958 /* PASID value. Only valid if TYPE is PCI_FUNC_PASID. */ 26299 21959 #define MC_CMD_GET_ADDR_SPC_ID_IN_PASID_OFST 12 26300 21960 #define MC_CMD_GET_ADDR_SPC_ID_IN_PASID_LEN 4 ··· 26326 21962 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_OFST 0 26327 21963 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LEN 8 26328 21964 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LO_OFST 0 21965 + #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LO_LEN 4 21966 + #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LO_LBN 0 21967 + #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LO_WIDTH 32 26329 21968 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_HI_OFST 4 21969 + #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_HI_LEN 4 21970 + #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_HI_LBN 32 21971 + #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_HI_WIDTH 32 21972 + 21973 + 21974 + /***********************************/ 21975 + /* MC_CMD_GET_CLIENT_HANDLE 21976 + * Obtain a handle for a client given a description of that client. N.B. this 21977 + * command is subject to change given the open discussion about how PCIe 21978 + * functions should be referenced on an iEP (integrated endpoint: functions 21979 + * span multiple buses) and multihost (multiple PCIe interfaces) system. 21980 + */ 21981 + #define MC_CMD_GET_CLIENT_HANDLE 0x1c3 21982 + #undef MC_CMD_0x1c3_PRIVILEGE_CTG 21983 + 21984 + #define MC_CMD_0x1c3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21985 + 21986 + /* MC_CMD_GET_CLIENT_HANDLE_IN msgrequest */ 21987 + #define MC_CMD_GET_CLIENT_HANDLE_IN_LEN 12 21988 + /* Type of client to get a client handle for */ 21989 + #define MC_CMD_GET_CLIENT_HANDLE_IN_TYPE_OFST 0 21990 + #define MC_CMD_GET_CLIENT_HANDLE_IN_TYPE_LEN 4 21991 + /* enum: Obtain a client handle for a PCIe function-type client. */ 21992 + #define MC_CMD_GET_CLIENT_HANDLE_IN_TYPE_FUNC 0x0 21993 + /* PCIe Function ID (as struct PCIE_FUNCTION). Valid when TYPE==FUNC. Use: - 21994 + * INTF=CALLER, PF=PF_NULL, VF=VF_NULL to refer to the calling function - 21995 + * INTF=CALLER, PF=PF_NULL, VF=... to refer to a VF child of the calling PF or 21996 + * a sibling VF of the calling VF. - INTF=CALLER, PF=..., VF=VF_NULL to refer 21997 + * to a PF on the calling interface - INTF=CALLER, PF=..., VF=... to refer to a 21998 + * VF on the calling interface - INTF=..., PF=..., VF=VF_NULL to refer to a PF 21999 + * on a named interface - INTF=..., PF=..., VF=... to refer to a VF on a named 22000 + * interface where ... refers to a small integer for the VF/PF fields, and to 22001 + * values from the PCIE_INTERFACE enum for for the INTF field. It's only 22002 + * meaningful to use INTF=CALLER within a structure that's an argument to 22003 + * MC_CMD_DEVEL_GET_CLIENT_HANDLE. 22004 + */ 22005 + #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_OFST 4 22006 + #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LEN 8 22007 + #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_OFST 4 22008 + #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_LEN 4 22009 + #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_LBN 32 22010 + #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_WIDTH 32 22011 + #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_OFST 8 22012 + #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_LEN 4 22013 + #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_LBN 64 22014 + #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_WIDTH 32 22015 + /* enum: NULL value for the INTF field of struct PCIE_FUNCTION. Provided for 22016 + * backwards compatibility only, callers should use PCIE_INTERFACE_CALLER. 22017 + */ 22018 + #define MC_CMD_GET_CLIENT_HANDLE_IN_PCIE_FUNCTION_INTF_NULL 0xffffffff 22019 + #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_PF_OFST 4 22020 + #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_PF_LEN 2 22021 + #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_VF_OFST 6 22022 + #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_VF_LEN 2 22023 + #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_INTF_OFST 8 22024 + #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_INTF_LEN 4 22025 + 22026 + /* MC_CMD_GET_CLIENT_HANDLE_OUT msgresponse */ 22027 + #define MC_CMD_GET_CLIENT_HANDLE_OUT_LEN 4 22028 + #define MC_CMD_GET_CLIENT_HANDLE_OUT_HANDLE_OFST 0 22029 + #define MC_CMD_GET_CLIENT_HANDLE_OUT_HANDLE_LEN 4 22030 + 22031 + /* MAE_FIELD_FLAGS structuredef */ 22032 + #define MAE_FIELD_FLAGS_LEN 4 22033 + #define MAE_FIELD_FLAGS_FLAT_OFST 0 22034 + #define MAE_FIELD_FLAGS_FLAT_LEN 4 22035 + #define MAE_FIELD_FLAGS_SUPPORT_STATUS_OFST 0 22036 + #define MAE_FIELD_FLAGS_SUPPORT_STATUS_LBN 0 22037 + #define MAE_FIELD_FLAGS_SUPPORT_STATUS_WIDTH 6 22038 + #define MAE_FIELD_FLAGS_MASK_AFFECTS_CLASS_OFST 0 22039 + #define MAE_FIELD_FLAGS_MASK_AFFECTS_CLASS_LBN 6 22040 + #define MAE_FIELD_FLAGS_MASK_AFFECTS_CLASS_WIDTH 1 22041 + #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_OFST 0 22042 + #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_LBN 7 22043 + #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_WIDTH 1 22044 + #define MAE_FIELD_FLAGS_FLAT_LBN 0 22045 + #define MAE_FIELD_FLAGS_FLAT_WIDTH 32 22046 + 22047 + /* MAE_ENC_FIELD_PAIRS structuredef: Mask and value pairs for all fields that 22048 + * it makes sense to use to determine the encapsulation type of a packet. Its 22049 + * intended use is to keep a common packing of fields across multiple MCDI 22050 + * commands, keeping things inherently sychronised and allowing code shared. To 22051 + * use in an MCDI command, the command should end with a variable length byte 22052 + * array populated with this structure. Do not extend this structure. Instead, 22053 + * create _Vx versions with the necessary fields appended. That way, the 22054 + * existing semantics for extending MCDI commands are preserved. 22055 + */ 22056 + #define MAE_ENC_FIELD_PAIRS_LEN 156 22057 + #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_OFST 0 22058 + #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_LEN 4 22059 + #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_LBN 0 22060 + #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_WIDTH 32 22061 + #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_OFST 4 22062 + #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LEN 4 22063 + #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LBN 32 22064 + #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_WIDTH 32 22065 + #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_OFST 8 22066 + #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_LEN 2 22067 + #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_LBN 64 22068 + #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_WIDTH 16 22069 + #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_OFST 10 22070 + #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_LEN 2 22071 + #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_LBN 80 22072 + #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_WIDTH 16 22073 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_OFST 12 22074 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_LEN 2 22075 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_LBN 96 22076 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_WIDTH 16 22077 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_OFST 14 22078 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_LEN 2 22079 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_LBN 112 22080 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_WIDTH 16 22081 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_OFST 16 22082 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_LEN 2 22083 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_LBN 128 22084 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_WIDTH 16 22085 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_OFST 18 22086 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LEN 2 22087 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LBN 144 22088 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_WIDTH 16 22089 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_OFST 20 22090 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_LEN 2 22091 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_LBN 160 22092 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_WIDTH 16 22093 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_OFST 22 22094 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_LEN 2 22095 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_LBN 176 22096 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_WIDTH 16 22097 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_OFST 24 22098 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_LEN 2 22099 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_LBN 192 22100 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_WIDTH 16 22101 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_OFST 26 22102 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LEN 2 22103 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LBN 208 22104 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_WIDTH 16 22105 + #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_OFST 28 22106 + #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_LEN 6 22107 + #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_LBN 224 22108 + #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_WIDTH 48 22109 + #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_OFST 34 22110 + #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_LEN 6 22111 + #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_LBN 272 22112 + #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_WIDTH 48 22113 + #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_OFST 40 22114 + #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_LEN 6 22115 + #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_LBN 320 22116 + #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_WIDTH 48 22117 + #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_OFST 46 22118 + #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_LEN 6 22119 + #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_LBN 368 22120 + #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_WIDTH 48 22121 + #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_OFST 52 22122 + #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_LEN 4 22123 + #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_LBN 416 22124 + #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_WIDTH 32 22125 + #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_OFST 56 22126 + #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_LEN 4 22127 + #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_LBN 448 22128 + #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_WIDTH 32 22129 + #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_OFST 60 22130 + #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_LEN 16 22131 + #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_LBN 480 22132 + #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_WIDTH 128 22133 + #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_OFST 76 22134 + #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_LEN 16 22135 + #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_LBN 608 22136 + #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_WIDTH 128 22137 + #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_OFST 92 22138 + #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_LEN 4 22139 + #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_LBN 736 22140 + #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_WIDTH 32 22141 + #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_OFST 96 22142 + #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_LEN 4 22143 + #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_LBN 768 22144 + #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_WIDTH 32 22145 + #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_OFST 100 22146 + #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_LEN 16 22147 + #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_LBN 800 22148 + #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_WIDTH 128 22149 + #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_OFST 116 22150 + #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_LEN 16 22151 + #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_LBN 928 22152 + #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_WIDTH 128 22153 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_OFST 132 22154 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_LEN 1 22155 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_LBN 1056 22156 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_WIDTH 8 22157 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_OFST 133 22158 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_LEN 1 22159 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_LBN 1064 22160 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_WIDTH 8 22161 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_OFST 134 22162 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_LEN 1 22163 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_LBN 1072 22164 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_WIDTH 8 22165 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_OFST 135 22166 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_LEN 1 22167 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_LBN 1080 22168 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_WIDTH 8 22169 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_OFST 136 22170 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_LEN 1 22171 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_LBN 1088 22172 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_WIDTH 8 22173 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_OFST 137 22174 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_LEN 1 22175 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_LBN 1096 22176 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_WIDTH 8 22177 + /* Deprecated in favour of ENC_FLAGS alias. */ 22178 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_OFST 138 22179 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_LEN 1 22180 + #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_OFST 138 22181 + #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_LBN 0 22182 + #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_WIDTH 1 22183 + #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_OFST 138 22184 + #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_LBN 1 22185 + #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_WIDTH 1 22186 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_OFST 138 22187 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_LBN 2 22188 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_WIDTH 1 22189 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_LBN 1104 22190 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_WIDTH 8 22191 + /* More generic alias for ENC_VLAN_FLAGS. */ 22192 + #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_OFST 138 22193 + #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_LEN 1 22194 + #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_LBN 1104 22195 + #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_WIDTH 8 22196 + /* Deprecated in favour of ENC_FLAGS_MASK alias. */ 22197 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_OFST 139 22198 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_LEN 1 22199 + #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_MASK_OFST 139 22200 + #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_MASK_LBN 0 22201 + #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_MASK_WIDTH 1 22202 + #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_MASK_OFST 139 22203 + #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_MASK_LBN 1 22204 + #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_MASK_WIDTH 1 22205 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_MASK_OFST 139 22206 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_MASK_LBN 2 22207 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_MASK_WIDTH 1 22208 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_LBN 1112 22209 + #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_WIDTH 8 22210 + /* More generic alias for ENC_FLAGS_MASK. */ 22211 + #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_OFST 139 22212 + #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_LEN 1 22213 + #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_LBN 1112 22214 + #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_WIDTH 8 22215 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_OFST 140 22216 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_LEN 4 22217 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_LBN 1120 22218 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_WIDTH 32 22219 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_OFST 144 22220 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_LEN 4 22221 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_LBN 1152 22222 + #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_WIDTH 32 22223 + #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_OFST 148 22224 + #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_LEN 2 22225 + #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_LBN 1184 22226 + #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_WIDTH 16 22227 + #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_OFST 150 22228 + #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_LEN 2 22229 + #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_LBN 1200 22230 + #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_WIDTH 16 22231 + #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_OFST 152 22232 + #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_LEN 2 22233 + #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_LBN 1216 22234 + #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_WIDTH 16 22235 + #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_OFST 154 22236 + #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_LEN 2 22237 + #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_LBN 1232 22238 + #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_WIDTH 16 22239 + 22240 + /* MAE_FIELD_MASK_VALUE_PAIRS structuredef: Mask and value pairs for all fields 22241 + * currently defined. Same semantics as MAE_ENC_FIELD_PAIRS. 22242 + */ 22243 + #define MAE_FIELD_MASK_VALUE_PAIRS_LEN 344 22244 + #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_OFST 0 22245 + #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_LEN 4 22246 + #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_LBN 0 22247 + #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_WIDTH 32 22248 + #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_OFST 4 22249 + #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LEN 4 22250 + #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LBN 32 22251 + #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_WIDTH 32 22252 + #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_OFST 8 22253 + #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_LEN 4 22254 + #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_LBN 64 22255 + #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_WIDTH 32 22256 + #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_OFST 12 22257 + #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_LEN 4 22258 + #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_LBN 96 22259 + #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_WIDTH 32 22260 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_OFST 16 22261 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_LEN 2 22262 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_LBN 128 22263 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_WIDTH 16 22264 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_OFST 18 22265 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_LEN 2 22266 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_LBN 144 22267 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_WIDTH 16 22268 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_OFST 20 22269 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_LEN 2 22270 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_LBN 160 22271 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_WIDTH 16 22272 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_OFST 22 22273 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_LEN 2 22274 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_LBN 176 22275 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_WIDTH 16 22276 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_OFST 24 22277 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_LEN 2 22278 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_LBN 192 22279 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_WIDTH 16 22280 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_OFST 26 22281 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_LEN 2 22282 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_LBN 208 22283 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_WIDTH 16 22284 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_OFST 28 22285 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_LEN 2 22286 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_LBN 224 22287 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_WIDTH 16 22288 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_OFST 30 22289 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_LEN 2 22290 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_LBN 240 22291 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_WIDTH 16 22292 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_OFST 32 22293 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_LEN 2 22294 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_LBN 256 22295 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_WIDTH 16 22296 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_OFST 34 22297 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_LEN 2 22298 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_LBN 272 22299 + #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_WIDTH 16 22300 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_OFST 36 22301 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_LEN 6 22302 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_LBN 288 22303 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_WIDTH 48 22304 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_OFST 42 22305 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_LEN 6 22306 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_LBN 336 22307 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_WIDTH 48 22308 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_OFST 48 22309 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_LEN 6 22310 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_LBN 384 22311 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_WIDTH 48 22312 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_OFST 54 22313 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_LEN 6 22314 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_LBN 432 22315 + #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_WIDTH 48 22316 + #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_OFST 60 22317 + #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_LEN 4 22318 + #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_LBN 480 22319 + #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_WIDTH 32 22320 + #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_OFST 64 22321 + #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_LEN 4 22322 + #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_LBN 512 22323 + #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_WIDTH 32 22324 + #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_OFST 68 22325 + #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_LEN 16 22326 + #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_LBN 544 22327 + #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_WIDTH 128 22328 + #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_OFST 84 22329 + #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_LEN 16 22330 + #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_LBN 672 22331 + #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_WIDTH 128 22332 + #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_OFST 100 22333 + #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_LEN 4 22334 + #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_LBN 800 22335 + #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_WIDTH 32 22336 + #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_OFST 104 22337 + #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_LEN 4 22338 + #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_LBN 832 22339 + #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_WIDTH 32 22340 + #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_OFST 108 22341 + #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_LEN 16 22342 + #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_LBN 864 22343 + #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_WIDTH 128 22344 + #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_OFST 124 22345 + #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_LEN 16 22346 + #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_LBN 992 22347 + #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_WIDTH 128 22348 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_OFST 140 22349 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_LEN 1 22350 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_LBN 1120 22351 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_WIDTH 8 22352 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_OFST 141 22353 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_LEN 1 22354 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_LBN 1128 22355 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_WIDTH 8 22356 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_OFST 142 22357 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_LEN 1 22358 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_LBN 1136 22359 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_WIDTH 8 22360 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_OFST 143 22361 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_LEN 1 22362 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_LBN 1144 22363 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_WIDTH 8 22364 + /* Due to hardware limitations, firmware may return 22365 + * MC_CMD_ERR_EINVAL(BAD_IP_TTL) when attempting to match on an IP_TTL value 22366 + * other than 1. 22367 + */ 22368 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_OFST 144 22369 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_LEN 1 22370 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_LBN 1152 22371 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_WIDTH 8 22372 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_OFST 145 22373 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_LEN 1 22374 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_LBN 1160 22375 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_WIDTH 8 22376 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_OFST 148 22377 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_LEN 4 22378 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_LBN 1184 22379 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_WIDTH 32 22380 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_OFST 152 22381 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_LEN 4 22382 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_LBN 1216 22383 + #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_WIDTH 32 22384 + #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_OFST 156 22385 + #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_LEN 2 22386 + #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_LBN 1248 22387 + #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_WIDTH 16 22388 + #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_OFST 158 22389 + #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_LEN 2 22390 + #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_LBN 1264 22391 + #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_WIDTH 16 22392 + #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_OFST 160 22393 + #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_LEN 2 22394 + #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_LBN 1280 22395 + #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_WIDTH 16 22396 + #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_OFST 162 22397 + #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_LEN 2 22398 + #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_LBN 1296 22399 + #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_WIDTH 16 22400 + #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_OFST 164 22401 + #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_LEN 2 22402 + #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_LBN 1312 22403 + #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_WIDTH 16 22404 + #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_OFST 166 22405 + #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_LEN 2 22406 + #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_LBN 1328 22407 + #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_WIDTH 16 22408 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_OFST 168 22409 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_LEN 4 22410 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_LBN 1344 22411 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_WIDTH 32 22412 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_OFST 172 22413 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_LEN 4 22414 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_LBN 1376 22415 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_WIDTH 32 22416 + #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_OFST 176 22417 + #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_LEN 4 22418 + #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_LBN 1408 22419 + #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_WIDTH 32 22420 + #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_OFST 180 22421 + #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_LEN 4 22422 + #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_LBN 1440 22423 + #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_WIDTH 32 22424 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_OFST 184 22425 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_LEN 2 22426 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_LBN 1472 22427 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_WIDTH 16 22428 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_OFST 188 22429 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_LEN 2 22430 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_LBN 1504 22431 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_WIDTH 16 22432 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_OFST 192 22433 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_LEN 2 22434 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_LBN 1536 22435 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_WIDTH 16 22436 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_OFST 194 22437 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_LEN 2 22438 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_LBN 1552 22439 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_WIDTH 16 22440 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_OFST 196 22441 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_LEN 2 22442 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_LBN 1568 22443 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_WIDTH 16 22444 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_OFST 198 22445 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LEN 2 22446 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LBN 1584 22447 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_WIDTH 16 22448 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_OFST 200 22449 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_LEN 2 22450 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_LBN 1600 22451 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_WIDTH 16 22452 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_OFST 202 22453 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_LEN 2 22454 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_LBN 1616 22455 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_WIDTH 16 22456 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_OFST 204 22457 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_LEN 2 22458 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_LBN 1632 22459 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_WIDTH 16 22460 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_OFST 206 22461 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LEN 2 22462 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LBN 1648 22463 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_WIDTH 16 22464 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_OFST 208 22465 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_LEN 6 22466 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_LBN 1664 22467 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_WIDTH 48 22468 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_OFST 214 22469 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_LEN 6 22470 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_LBN 1712 22471 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_WIDTH 48 22472 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_OFST 220 22473 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_LEN 6 22474 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_LBN 1760 22475 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_WIDTH 48 22476 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_OFST 226 22477 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_LEN 6 22478 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_LBN 1808 22479 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_WIDTH 48 22480 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_OFST 232 22481 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_LEN 4 22482 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_LBN 1856 22483 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_WIDTH 32 22484 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_OFST 236 22485 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_LEN 4 22486 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_LBN 1888 22487 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_WIDTH 32 22488 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_OFST 240 22489 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_LEN 16 22490 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_LBN 1920 22491 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_WIDTH 128 22492 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_OFST 256 22493 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_LEN 16 22494 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_LBN 2048 22495 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_WIDTH 128 22496 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_OFST 272 22497 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_LEN 4 22498 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_LBN 2176 22499 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_WIDTH 32 22500 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_OFST 276 22501 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_LEN 4 22502 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_LBN 2208 22503 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_WIDTH 32 22504 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_OFST 280 22505 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_LEN 16 22506 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_LBN 2240 22507 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_WIDTH 128 22508 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_OFST 296 22509 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_LEN 16 22510 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_LBN 2368 22511 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_WIDTH 128 22512 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_OFST 312 22513 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_LEN 1 22514 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_LBN 2496 22515 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_WIDTH 8 22516 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_OFST 313 22517 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_LEN 1 22518 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_LBN 2504 22519 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_WIDTH 8 22520 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_OFST 314 22521 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_LEN 1 22522 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_LBN 2512 22523 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_WIDTH 8 22524 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_OFST 315 22525 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_LEN 1 22526 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_LBN 2520 22527 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_WIDTH 8 22528 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_OFST 316 22529 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_LEN 1 22530 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_LBN 2528 22531 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_WIDTH 8 22532 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_OFST 317 22533 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_LEN 1 22534 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_LBN 2536 22535 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_WIDTH 8 22536 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_OFST 320 22537 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_LEN 4 22538 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_LBN 2560 22539 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_WIDTH 32 22540 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_OFST 324 22541 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_LEN 4 22542 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_LBN 2592 22543 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_WIDTH 32 22544 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_OFST 328 22545 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_LEN 2 22546 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_LBN 2624 22547 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_WIDTH 16 22548 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_OFST 330 22549 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_LEN 2 22550 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_LBN 2640 22551 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_WIDTH 16 22552 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_OFST 332 22553 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_LEN 2 22554 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_LBN 2656 22555 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_WIDTH 16 22556 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_OFST 334 22557 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_LEN 2 22558 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_LBN 2672 22559 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_WIDTH 16 22560 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_OFST 336 22561 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_LEN 4 22562 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_LBN 2688 22563 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_WIDTH 32 22564 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_OFST 340 22565 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_LEN 4 22566 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_LBN 2720 22567 + #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_WIDTH 32 22568 + 22569 + /* MAE_FIELD_MASK_VALUE_PAIRS_V2 structuredef */ 22570 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_LEN 372 22571 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_OFST 0 22572 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_LEN 4 22573 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_LBN 0 22574 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_WIDTH 32 22575 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_OFST 4 22576 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_LEN 4 22577 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_LBN 32 22578 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_WIDTH 32 22579 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_OFST 8 22580 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_LEN 4 22581 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_LBN 64 22582 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_WIDTH 32 22583 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_OFST 12 22584 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_LEN 4 22585 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_LBN 96 22586 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_WIDTH 32 22587 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_OFST 16 22588 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_LEN 2 22589 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_LBN 128 22590 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_WIDTH 16 22591 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_OFST 18 22592 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_LEN 2 22593 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_LBN 144 22594 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_WIDTH 16 22595 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_OFST 20 22596 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_LEN 2 22597 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_LBN 160 22598 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_WIDTH 16 22599 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_OFST 22 22600 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_LEN 2 22601 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_LBN 176 22602 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_WIDTH 16 22603 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_OFST 24 22604 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_LEN 2 22605 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_LBN 192 22606 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_WIDTH 16 22607 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_OFST 26 22608 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_LEN 2 22609 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_LBN 208 22610 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_WIDTH 16 22611 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_OFST 28 22612 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_LEN 2 22613 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_LBN 224 22614 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_WIDTH 16 22615 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_OFST 30 22616 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_LEN 2 22617 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_LBN 240 22618 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_WIDTH 16 22619 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_OFST 32 22620 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_LEN 2 22621 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_LBN 256 22622 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_WIDTH 16 22623 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_OFST 34 22624 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_LEN 2 22625 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_LBN 272 22626 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_WIDTH 16 22627 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_OFST 36 22628 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_LEN 6 22629 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_LBN 288 22630 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_WIDTH 48 22631 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_OFST 42 22632 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_LEN 6 22633 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_LBN 336 22634 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_WIDTH 48 22635 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_OFST 48 22636 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_LEN 6 22637 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_LBN 384 22638 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_WIDTH 48 22639 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_OFST 54 22640 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_LEN 6 22641 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_LBN 432 22642 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_WIDTH 48 22643 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_OFST 60 22644 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_LEN 4 22645 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_LBN 480 22646 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_WIDTH 32 22647 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_OFST 64 22648 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_LEN 4 22649 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_LBN 512 22650 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_WIDTH 32 22651 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_OFST 68 22652 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_LEN 16 22653 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_LBN 544 22654 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_WIDTH 128 22655 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_OFST 84 22656 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_LEN 16 22657 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_LBN 672 22658 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_WIDTH 128 22659 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_OFST 100 22660 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_LEN 4 22661 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_LBN 800 22662 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_WIDTH 32 22663 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_OFST 104 22664 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_LEN 4 22665 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_LBN 832 22666 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_WIDTH 32 22667 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_OFST 108 22668 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_LEN 16 22669 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_LBN 864 22670 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_WIDTH 128 22671 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_OFST 124 22672 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_LEN 16 22673 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_LBN 992 22674 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_WIDTH 128 22675 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_OFST 140 22676 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_LEN 1 22677 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_LBN 1120 22678 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_WIDTH 8 22679 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_OFST 141 22680 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_LEN 1 22681 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_LBN 1128 22682 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_WIDTH 8 22683 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_OFST 142 22684 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_LEN 1 22685 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_LBN 1136 22686 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_WIDTH 8 22687 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_OFST 143 22688 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_LEN 1 22689 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_LBN 1144 22690 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_WIDTH 8 22691 + /* Due to hardware limitations, firmware may return 22692 + * MC_CMD_ERR_EINVAL(BAD_IP_TTL) when attempting to match on an IP_TTL value 22693 + * other than 1. 22694 + */ 22695 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_OFST 144 22696 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_LEN 1 22697 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_LBN 1152 22698 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_WIDTH 8 22699 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_OFST 145 22700 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_LEN 1 22701 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_LBN 1160 22702 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_WIDTH 8 22703 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_OFST 148 22704 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_LEN 4 22705 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_LBN 1184 22706 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_WIDTH 32 22707 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_OFST 152 22708 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_LEN 4 22709 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_LBN 1216 22710 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_WIDTH 32 22711 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_OFST 156 22712 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_LEN 2 22713 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_LBN 1248 22714 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_WIDTH 16 22715 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_OFST 158 22716 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_LEN 2 22717 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_LBN 1264 22718 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_WIDTH 16 22719 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_OFST 160 22720 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_LEN 2 22721 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_LBN 1280 22722 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_WIDTH 16 22723 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_OFST 162 22724 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_LEN 2 22725 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_LBN 1296 22726 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_WIDTH 16 22727 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_OFST 164 22728 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_LEN 2 22729 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_LBN 1312 22730 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_WIDTH 16 22731 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_OFST 166 22732 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_LEN 2 22733 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_LBN 1328 22734 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_WIDTH 16 22735 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_OFST 168 22736 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_LEN 4 22737 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_LBN 1344 22738 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_WIDTH 32 22739 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_OFST 172 22740 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_LEN 4 22741 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_LBN 1376 22742 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_WIDTH 32 22743 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_OFST 176 22744 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_LEN 4 22745 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_LBN 1408 22746 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_WIDTH 32 22747 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_OFST 180 22748 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_LEN 4 22749 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_LBN 1440 22750 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_WIDTH 32 22751 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_OFST 184 22752 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_LEN 2 22753 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_LBN 1472 22754 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_WIDTH 16 22755 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_OFST 188 22756 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_LEN 2 22757 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_LBN 1504 22758 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_WIDTH 16 22759 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_OFST 192 22760 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_LEN 2 22761 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_LBN 1536 22762 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_WIDTH 16 22763 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_OFST 194 22764 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_LEN 2 22765 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_LBN 1552 22766 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_WIDTH 16 22767 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_OFST 196 22768 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_LEN 2 22769 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_LBN 1568 22770 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_WIDTH 16 22771 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_OFST 198 22772 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_LEN 2 22773 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_LBN 1584 22774 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_WIDTH 16 22775 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_OFST 200 22776 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_LEN 2 22777 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_LBN 1600 22778 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_WIDTH 16 22779 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_OFST 202 22780 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_LEN 2 22781 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_LBN 1616 22782 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_WIDTH 16 22783 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_OFST 204 22784 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_LEN 2 22785 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_LBN 1632 22786 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_WIDTH 16 22787 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_OFST 206 22788 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_LEN 2 22789 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_LBN 1648 22790 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_WIDTH 16 22791 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_OFST 208 22792 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_LEN 6 22793 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_LBN 1664 22794 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_WIDTH 48 22795 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_OFST 214 22796 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_LEN 6 22797 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_LBN 1712 22798 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_WIDTH 48 22799 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_OFST 220 22800 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_LEN 6 22801 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_LBN 1760 22802 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_WIDTH 48 22803 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_OFST 226 22804 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_LEN 6 22805 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_LBN 1808 22806 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_WIDTH 48 22807 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_OFST 232 22808 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_LEN 4 22809 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_LBN 1856 22810 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_WIDTH 32 22811 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_OFST 236 22812 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_LEN 4 22813 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_LBN 1888 22814 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_WIDTH 32 22815 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_OFST 240 22816 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_LEN 16 22817 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_LBN 1920 22818 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_WIDTH 128 22819 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_OFST 256 22820 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_LEN 16 22821 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_LBN 2048 22822 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_WIDTH 128 22823 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_OFST 272 22824 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_LEN 4 22825 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_LBN 2176 22826 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_WIDTH 32 22827 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_OFST 276 22828 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_LEN 4 22829 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_LBN 2208 22830 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_WIDTH 32 22831 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_OFST 280 22832 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_LEN 16 22833 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_LBN 2240 22834 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_WIDTH 128 22835 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_OFST 296 22836 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_LEN 16 22837 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_LBN 2368 22838 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_WIDTH 128 22839 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_OFST 312 22840 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_LEN 1 22841 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_LBN 2496 22842 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_WIDTH 8 22843 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_OFST 313 22844 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_LEN 1 22845 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_LBN 2504 22846 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_WIDTH 8 22847 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_OFST 314 22848 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_LEN 1 22849 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_LBN 2512 22850 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_WIDTH 8 22851 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_OFST 315 22852 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_LEN 1 22853 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_LBN 2520 22854 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_WIDTH 8 22855 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_OFST 316 22856 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_LEN 1 22857 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_LBN 2528 22858 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_WIDTH 8 22859 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_OFST 317 22860 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_LEN 1 22861 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_LBN 2536 22862 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_WIDTH 8 22863 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_OFST 320 22864 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_LEN 4 22865 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_LBN 2560 22866 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_WIDTH 32 22867 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_OFST 324 22868 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_LEN 4 22869 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_LBN 2592 22870 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_WIDTH 32 22871 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_OFST 328 22872 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_LEN 2 22873 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_LBN 2624 22874 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_WIDTH 16 22875 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_OFST 330 22876 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_LEN 2 22877 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_LBN 2640 22878 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_WIDTH 16 22879 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_OFST 332 22880 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_LEN 2 22881 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_LBN 2656 22882 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_WIDTH 16 22883 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_OFST 334 22884 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_LEN 2 22885 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_LBN 2672 22886 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_WIDTH 16 22887 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_OFST 336 22888 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_LEN 4 22889 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_LBN 2688 22890 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_WIDTH 32 22891 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_OFST 340 22892 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_LEN 4 22893 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_LBN 2720 22894 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_WIDTH 32 22895 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_OFST 344 22896 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_LEN 4 22897 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_IP_FRAG_OFST 344 22898 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_IP_FRAG_LBN 0 22899 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_IP_FRAG_WIDTH 1 22900 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_OFST 344 22901 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_LBN 1 22902 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_WIDTH 1 22903 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_HIT_OFST 344 22904 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_HIT_LBN 2 22905 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_HIT_WIDTH 1 22906 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_FROM_NETWORK_OFST 344 22907 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_FROM_NETWORK_LBN 3 22908 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_FROM_NETWORK_WIDTH 1 22909 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_OVLAN_OFST 344 22910 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_OVLAN_LBN 4 22911 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_OVLAN_WIDTH 1 22912 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_IVLAN_OFST 344 22913 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_IVLAN_LBN 5 22914 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_IVLAN_WIDTH 1 22915 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_OVLAN_OFST 344 22916 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_OVLAN_LBN 6 22917 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_OVLAN_WIDTH 1 22918 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_IVLAN_OFST 344 22919 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_IVLAN_LBN 7 22920 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_IVLAN_WIDTH 1 22921 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_SYN_FIN_RST_OFST 344 22922 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_SYN_FIN_RST_LBN 8 22923 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_SYN_FIN_RST_WIDTH 1 22924 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FIRST_FRAG_OFST 344 22925 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FIRST_FRAG_LBN 9 22926 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FIRST_FRAG_WIDTH 1 22927 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_LBN 2752 22928 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_WIDTH 32 22929 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_OFST 348 22930 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_LEN 4 22931 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_LBN 2784 22932 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_WIDTH 32 22933 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_OFST 352 22934 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_LEN 2 22935 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_LBN 2816 22936 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_WIDTH 16 22937 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_OFST 354 22938 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_LEN 2 22939 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_LBN 2832 22940 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_WIDTH 16 22941 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_OFST 356 22942 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_LEN 4 22943 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_LBN 2848 22944 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_WIDTH 32 22945 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_OFST 360 22946 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_LEN 4 22947 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_LBN 2880 22948 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_WIDTH 32 22949 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_OFST 364 22950 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_LEN 1 22951 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_LBN 2912 22952 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_WIDTH 8 22953 + /* Set to zero. */ 22954 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_OFST 365 22955 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_LEN 1 22956 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_LBN 2920 22957 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_WIDTH 8 22958 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_OFST 366 22959 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_LEN 1 22960 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_LBN 2928 22961 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_WIDTH 8 22962 + /* Set to zero. */ 22963 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_OFST 367 22964 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_LEN 1 22965 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_LBN 2936 22966 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_WIDTH 8 22967 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_OFST 368 22968 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_LEN 1 22969 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_LBN 2944 22970 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_WIDTH 8 22971 + /* Set to zero */ 22972 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_OFST 369 22973 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_LEN 1 22974 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_LBN 2952 22975 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_WIDTH 8 22976 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_OFST 370 22977 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_LEN 1 22978 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_LBN 2960 22979 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_WIDTH 8 22980 + /* Set to zero */ 22981 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_OFST 371 22982 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_LEN 1 22983 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_LBN 2968 22984 + #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_WIDTH 8 22985 + 22986 + /* MAE_MPORT_SELECTOR structuredef: MPORTS are identified by an opaque unsigned 22987 + * integer value (mport_id) that is guaranteed to be representable within 22988 + * 32-bits or within any NIC interface field that needs store the value 22989 + * (whichever is narrowers). This selector structure provides a stable way to 22990 + * refer to m-ports. 22991 + */ 22992 + #define MAE_MPORT_SELECTOR_LEN 4 22993 + /* Used to force the tools to output bitfield-style defines for this structure. 22994 + */ 22995 + #define MAE_MPORT_SELECTOR_FLAT_OFST 0 22996 + #define MAE_MPORT_SELECTOR_FLAT_LEN 4 22997 + /* enum: An m-port selector value that is guaranteed never to represent a real 22998 + * mport 22999 + */ 23000 + #define MAE_MPORT_SELECTOR_NULL 0x0 23001 + /* enum: The m-port assigned to the calling client. */ 23002 + #define MAE_MPORT_SELECTOR_ASSIGNED 0x1000000 23003 + #define MAE_MPORT_SELECTOR_TYPE_OFST 0 23004 + #define MAE_MPORT_SELECTOR_TYPE_LBN 24 23005 + #define MAE_MPORT_SELECTOR_TYPE_WIDTH 8 23006 + /* enum: The MPORT connected to a given physical port */ 23007 + #define MAE_MPORT_SELECTOR_TYPE_PPORT 0x2 23008 + /* enum: The MPORT assigned to a given PCIe function. Deprecated in favour of 23009 + * MH_FUNC. 23010 + */ 23011 + #define MAE_MPORT_SELECTOR_TYPE_FUNC 0x3 23012 + /* enum: An mport_id */ 23013 + #define MAE_MPORT_SELECTOR_TYPE_MPORT_ID 0x4 23014 + /* enum: The MPORT assigned to a given PCIe function (see also FWRIVERHD-1108) 23015 + */ 23016 + #define MAE_MPORT_SELECTOR_TYPE_MH_FUNC 0x5 23017 + /* enum: This is guaranteed never to be a valid selector type */ 23018 + #define MAE_MPORT_SELECTOR_TYPE_INVALID 0xff 23019 + #define MAE_MPORT_SELECTOR_MPORT_ID_OFST 0 23020 + #define MAE_MPORT_SELECTOR_MPORT_ID_LBN 0 23021 + #define MAE_MPORT_SELECTOR_MPORT_ID_WIDTH 24 23022 + #define MAE_MPORT_SELECTOR_PPORT_ID_OFST 0 23023 + #define MAE_MPORT_SELECTOR_PPORT_ID_LBN 0 23024 + #define MAE_MPORT_SELECTOR_PPORT_ID_WIDTH 4 23025 + #define MAE_MPORT_SELECTOR_FUNC_INTF_ID_OFST 0 23026 + #define MAE_MPORT_SELECTOR_FUNC_INTF_ID_LBN 20 23027 + #define MAE_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 23028 + #define MAE_MPORT_SELECTOR_HOST_PRIMARY 0x1 /* enum */ 23029 + #define MAE_MPORT_SELECTOR_NIC_EMBEDDED 0x2 /* enum */ 23030 + /* enum: Deprecated, use CALLER_INTF instead. */ 23031 + #define MAE_MPORT_SELECTOR_CALLER 0xf 23032 + #define MAE_MPORT_SELECTOR_CALLER_INTF 0xf /* enum */ 23033 + #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_OFST 0 23034 + #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 16 23035 + #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 23036 + #define MAE_MPORT_SELECTOR_FUNC_PF_ID_OFST 0 23037 + #define MAE_MPORT_SELECTOR_FUNC_PF_ID_LBN 16 23038 + #define MAE_MPORT_SELECTOR_FUNC_PF_ID_WIDTH 8 23039 + #define MAE_MPORT_SELECTOR_FUNC_VF_ID_OFST 0 23040 + #define MAE_MPORT_SELECTOR_FUNC_VF_ID_LBN 0 23041 + #define MAE_MPORT_SELECTOR_FUNC_VF_ID_WIDTH 16 23042 + /* enum: Used for VF_ID to indicate a physical function. */ 23043 + #define MAE_MPORT_SELECTOR_FUNC_VF_ID_NULL 0xffff 23044 + /* enum: Used for PF_ID to indicate the physical function of the calling 23045 + * client. - When used by a PF with VF_ID == VF_ID_NULL, the mport selector 23046 + * relates to the calling function. (For clarity, it is recommended that 23047 + * clients use ASSIGNED to achieve this behaviour). - When used by a PF with 23048 + * VF_ID != VF_ID_NULL, the mport selector relates to a VF child of the calling 23049 + * function. - When used by a VF with VF_ID == VF_ID_NULL, the mport selector 23050 + * relates to the PF owning the calling function. - When used by a VF with 23051 + * VF_ID != VF_ID_NULL, the mport selector relates to a sibling VF of the 23052 + * calling function. - Not meaningful used by a client that is not a PCIe 23053 + * function. 23054 + */ 23055 + #define MAE_MPORT_SELECTOR_FUNC_PF_ID_CALLER 0xff 23056 + /* enum: Same as PF_ID_CALLER, but for use in the smaller MH_PF_ID field. Only 23057 + * valid if FUNC_INTF_ID is CALLER. 23058 + */ 23059 + #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_CALLER 0xf 23060 + #define MAE_MPORT_SELECTOR_FLAT_LBN 0 23061 + #define MAE_MPORT_SELECTOR_FLAT_WIDTH 32 23062 + 23063 + /* MAE_LINK_ENDPOINT_SELECTOR structuredef: Structure that identifies a real or 23064 + * virtual network port by MAE port and link end 23065 + */ 23066 + #define MAE_LINK_ENDPOINT_SELECTOR_LEN 8 23067 + /* The MAE MPORT of interest */ 23068 + #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_OFST 0 23069 + #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_LEN 4 23070 + #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_LBN 0 23071 + #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_WIDTH 32 23072 + /* Which end of the link identified by MPORT to consider */ 23073 + #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_OFST 4 23074 + #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_LEN 4 23075 + /* Enum values, see field(s): */ 23076 + /* MAE_MPORT_END */ 23077 + #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_LBN 32 23078 + #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_WIDTH 32 23079 + /* A field for accessing the endpoint selector as a collection of bits */ 23080 + #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_OFST 0 23081 + #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LEN 8 23082 + #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_OFST 0 23083 + #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_LEN 4 23084 + #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_LBN 0 23085 + #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_WIDTH 32 23086 + #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_OFST 4 23087 + #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_LEN 4 23088 + #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_LBN 32 23089 + #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_WIDTH 32 23090 + /* enum: Set FLAT to this value to obtain backward-compatible behaviour in 23091 + * commands that have been extended to take a MAE_LINK_ENDPOINT_SELECTOR 23092 + * argument. New commands that are designed to take such an argument from the 23093 + * start will not support this. 23094 + */ 23095 + #define MAE_LINK_ENDPOINT_SELECTOR_MAE_LINK_ENDPOINT_COMPAT 0x0 23096 + #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LBN 0 23097 + #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_WIDTH 64 23098 + 23099 + 23100 + /***********************************/ 23101 + /* MC_CMD_MAE_GET_CAPS 23102 + * Describes capabilities of the MAE (Match-Action Engine) 23103 + */ 23104 + #define MC_CMD_MAE_GET_CAPS 0x140 23105 + #undef MC_CMD_0x140_PRIVILEGE_CTG 23106 + 23107 + #define MC_CMD_0x140_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23108 + 23109 + /* MC_CMD_MAE_GET_CAPS_IN msgrequest */ 23110 + #define MC_CMD_MAE_GET_CAPS_IN_LEN 0 23111 + 23112 + /* MC_CMD_MAE_GET_CAPS_OUT msgresponse */ 23113 + #define MC_CMD_MAE_GET_CAPS_OUT_LEN 52 23114 + /* The number of field IDs that the NIC supports. Any field with a ID greater 23115 + * than or equal to the value returned in this field must be treated as having 23116 + * a support level of MAE_FIELD_UNSUPPORTED in all requests. 23117 + */ 23118 + #define MC_CMD_MAE_GET_CAPS_OUT_MATCH_FIELD_COUNT_OFST 0 23119 + #define MC_CMD_MAE_GET_CAPS_OUT_MATCH_FIELD_COUNT_LEN 4 23120 + #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPES_SUPPORTED_OFST 4 23121 + #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPES_SUPPORTED_LEN 4 23122 + #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_OFST 4 23123 + #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_LBN 0 23124 + #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_WIDTH 1 23125 + #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_OFST 4 23126 + #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_LBN 1 23127 + #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_WIDTH 1 23128 + #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_OFST 4 23129 + #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_LBN 2 23130 + #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_WIDTH 1 23131 + #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_L2GRE_OFST 4 23132 + #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_L2GRE_LBN 3 23133 + #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_L2GRE_WIDTH 1 23134 + /* Deprecated alias for AR_COUNTERS. */ 23135 + #define MC_CMD_MAE_GET_CAPS_OUT_COUNTERS_OFST 8 23136 + #define MC_CMD_MAE_GET_CAPS_OUT_COUNTERS_LEN 4 23137 + /* The total number of AR counters available to allocate. */ 23138 + #define MC_CMD_MAE_GET_CAPS_OUT_AR_COUNTERS_OFST 8 23139 + #define MC_CMD_MAE_GET_CAPS_OUT_AR_COUNTERS_LEN 4 23140 + /* The total number of counters lists available to allocate. A value of zero 23141 + * indicates that counter lists are not supported by the NIC. (But single 23142 + * counters may still be.) 23143 + */ 23144 + #define MC_CMD_MAE_GET_CAPS_OUT_COUNTER_LISTS_OFST 12 23145 + #define MC_CMD_MAE_GET_CAPS_OUT_COUNTER_LISTS_LEN 4 23146 + /* The total number of encap header structures available to allocate. */ 23147 + #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_HEADER_LIMIT_OFST 16 23148 + #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_HEADER_LIMIT_LEN 4 23149 + /* Reserved. Should be zero. */ 23150 + #define MC_CMD_MAE_GET_CAPS_OUT_RSVD_OFST 20 23151 + #define MC_CMD_MAE_GET_CAPS_OUT_RSVD_LEN 4 23152 + /* The total number of action sets available to allocate. */ 23153 + #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SETS_OFST 24 23154 + #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SETS_LEN 4 23155 + /* The total number of action set lists available to allocate. */ 23156 + #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SET_LISTS_OFST 28 23157 + #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SET_LISTS_LEN 4 23158 + /* The total number of outer rules available to allocate. */ 23159 + #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_RULES_OFST 32 23160 + #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_RULES_LEN 4 23161 + /* The total number of action rules available to allocate. */ 23162 + #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_RULES_OFST 36 23163 + #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_RULES_LEN 4 23164 + /* The number of priorities available for ACTION_RULE filters. It is invalid to 23165 + * install a MATCH_ACTION filter with a priority number >= ACTION_PRIOS. 23166 + */ 23167 + #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_PRIOS_OFST 40 23168 + #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_PRIOS_LEN 4 23169 + /* The number of priorities available for OUTER_RULE filters. It is invalid to 23170 + * install an OUTER_RULE filter with a priority number >= OUTER_PRIOS. 23171 + */ 23172 + #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_PRIOS_OFST 44 23173 + #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_PRIOS_LEN 4 23174 + /* MAE API major version. Currently 1. If this field is not present in the 23175 + * response (i.e. response shorter than 384 bits), then its value is zero. If 23176 + * the value does not match the client's expectations, the client should raise 23177 + * a fatal error. 23178 + */ 23179 + #define MC_CMD_MAE_GET_CAPS_OUT_API_VER_OFST 48 23180 + #define MC_CMD_MAE_GET_CAPS_OUT_API_VER_LEN 4 23181 + 23182 + /* MC_CMD_MAE_GET_CAPS_V2_OUT msgresponse */ 23183 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_LEN 60 23184 + /* The number of field IDs that the NIC supports. Any field with a ID greater 23185 + * than or equal to the value returned in this field must be treated as having 23186 + * a support level of MAE_FIELD_UNSUPPORTED in all requests. 23187 + */ 23188 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_MATCH_FIELD_COUNT_OFST 0 23189 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_MATCH_FIELD_COUNT_LEN 4 23190 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPES_SUPPORTED_OFST 4 23191 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPES_SUPPORTED_LEN 4 23192 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_VXLAN_OFST 4 23193 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_VXLAN_LBN 0 23194 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_VXLAN_WIDTH 1 23195 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_NVGRE_OFST 4 23196 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_NVGRE_LBN 1 23197 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_NVGRE_WIDTH 1 23198 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_GENEVE_OFST 4 23199 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_GENEVE_LBN 2 23200 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_GENEVE_WIDTH 1 23201 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_L2GRE_OFST 4 23202 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_L2GRE_LBN 3 23203 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_L2GRE_WIDTH 1 23204 + /* Deprecated alias for AR_COUNTERS. */ 23205 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTERS_OFST 8 23206 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTERS_LEN 4 23207 + /* The total number of AR counters available to allocate. */ 23208 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_AR_COUNTERS_OFST 8 23209 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_AR_COUNTERS_LEN 4 23210 + /* The total number of counters lists available to allocate. A value of zero 23211 + * indicates that counter lists are not supported by the NIC. (But single 23212 + * counters may still be.) 23213 + */ 23214 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_LISTS_OFST 12 23215 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_LISTS_LEN 4 23216 + /* The total number of encap header structures available to allocate. */ 23217 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_HEADER_LIMIT_OFST 16 23218 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_HEADER_LIMIT_LEN 4 23219 + /* Reserved. Should be zero. */ 23220 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_RSVD_OFST 20 23221 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_RSVD_LEN 4 23222 + /* The total number of action sets available to allocate. */ 23223 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SETS_OFST 24 23224 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SETS_LEN 4 23225 + /* The total number of action set lists available to allocate. */ 23226 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SET_LISTS_OFST 28 23227 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SET_LISTS_LEN 4 23228 + /* The total number of outer rules available to allocate. */ 23229 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_RULES_OFST 32 23230 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_RULES_LEN 4 23231 + /* The total number of action rules available to allocate. */ 23232 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_RULES_OFST 36 23233 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_RULES_LEN 4 23234 + /* The number of priorities available for ACTION_RULE filters. It is invalid to 23235 + * install a MATCH_ACTION filter with a priority number >= ACTION_PRIOS. 23236 + */ 23237 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_PRIOS_OFST 40 23238 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_PRIOS_LEN 4 23239 + /* The number of priorities available for OUTER_RULE filters. It is invalid to 23240 + * install an OUTER_RULE filter with a priority number >= OUTER_PRIOS. 23241 + */ 23242 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_PRIOS_OFST 44 23243 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_PRIOS_LEN 4 23244 + /* MAE API major version. Currently 1. If this field is not present in the 23245 + * response (i.e. response shorter than 384 bits), then its value is zero. If 23246 + * the value does not match the client's expectations, the client should raise 23247 + * a fatal error. 23248 + */ 23249 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_API_VER_OFST 48 23250 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_API_VER_LEN 4 23251 + /* Mask of supported counter types. Each bit position corresponds to a value of 23252 + * the MAE_COUNTER_TYPE enum. If this field is missing (i.e. V1 response), 23253 + * clients must assume that only AR counters are supported (i.e. 23254 + * COUNTER_TYPES_SUPPORTED==0x1). See also 23255 + * MC_CMD_MAE_COUNTERS_STREAM_START/COUNTER_TYPES_MASK. 23256 + */ 23257 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_TYPES_SUPPORTED_OFST 52 23258 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_TYPES_SUPPORTED_LEN 4 23259 + /* The total number of conntrack counters available to allocate. */ 23260 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_CT_COUNTERS_OFST 56 23261 + #define MC_CMD_MAE_GET_CAPS_V2_OUT_CT_COUNTERS_LEN 4 23262 + 23263 + /* MC_CMD_MAE_GET_CAPS_V3_OUT msgresponse */ 23264 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_LEN 64 23265 + /* The number of field IDs that the NIC supports. Any field with a ID greater 23266 + * than or equal to the value returned in this field must be treated as having 23267 + * a support level of MAE_FIELD_UNSUPPORTED in all requests. 23268 + */ 23269 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_MATCH_FIELD_COUNT_OFST 0 23270 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_MATCH_FIELD_COUNT_LEN 4 23271 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPES_SUPPORTED_OFST 4 23272 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPES_SUPPORTED_LEN 4 23273 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_VXLAN_OFST 4 23274 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_VXLAN_LBN 0 23275 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_VXLAN_WIDTH 1 23276 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_NVGRE_OFST 4 23277 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_NVGRE_LBN 1 23278 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_NVGRE_WIDTH 1 23279 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_GENEVE_OFST 4 23280 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_GENEVE_LBN 2 23281 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_GENEVE_WIDTH 1 23282 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_L2GRE_OFST 4 23283 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_L2GRE_LBN 3 23284 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_L2GRE_WIDTH 1 23285 + /* Deprecated alias for AR_COUNTERS. */ 23286 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTERS_OFST 8 23287 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTERS_LEN 4 23288 + /* The total number of AR counters available to allocate. */ 23289 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_AR_COUNTERS_OFST 8 23290 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_AR_COUNTERS_LEN 4 23291 + /* The total number of counters lists available to allocate. A value of zero 23292 + * indicates that counter lists are not supported by the NIC. (But single 23293 + * counters may still be.) 23294 + */ 23295 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTER_LISTS_OFST 12 23296 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTER_LISTS_LEN 4 23297 + /* The total number of encap header structures available to allocate. */ 23298 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_HEADER_LIMIT_OFST 16 23299 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_HEADER_LIMIT_LEN 4 23300 + /* Reserved. Should be zero. */ 23301 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_RSVD_OFST 20 23302 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_RSVD_LEN 4 23303 + /* The total number of action sets available to allocate. */ 23304 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_SETS_OFST 24 23305 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_SETS_LEN 4 23306 + /* The total number of action set lists available to allocate. */ 23307 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_SET_LISTS_OFST 28 23308 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_SET_LISTS_LEN 4 23309 + /* The total number of outer rules available to allocate. */ 23310 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_OUTER_RULES_OFST 32 23311 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_OUTER_RULES_LEN 4 23312 + /* The total number of action rules available to allocate. */ 23313 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_RULES_OFST 36 23314 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_RULES_LEN 4 23315 + /* The number of priorities available for ACTION_RULE filters. It is invalid to 23316 + * install a MATCH_ACTION filter with a priority number >= ACTION_PRIOS. 23317 + */ 23318 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_PRIOS_OFST 40 23319 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_PRIOS_LEN 4 23320 + /* The number of priorities available for OUTER_RULE filters. It is invalid to 23321 + * install an OUTER_RULE filter with a priority number >= OUTER_PRIOS. 23322 + */ 23323 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_OUTER_PRIOS_OFST 44 23324 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_OUTER_PRIOS_LEN 4 23325 + /* MAE API major version. Currently 1. If this field is not present in the 23326 + * response (i.e. response shorter than 384 bits), then its value is zero. If 23327 + * the value does not match the client's expectations, the client should raise 23328 + * a fatal error. 23329 + */ 23330 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_API_VER_OFST 48 23331 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_API_VER_LEN 4 23332 + /* Mask of supported counter types. Each bit position corresponds to a value of 23333 + * the MAE_COUNTER_TYPE enum. If this field is missing (i.e. V1 response), 23334 + * clients must assume that only AR counters are supported (i.e. 23335 + * COUNTER_TYPES_SUPPORTED==0x1). See also 23336 + * MC_CMD_MAE_COUNTERS_STREAM_START/COUNTER_TYPES_MASK. 23337 + */ 23338 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTER_TYPES_SUPPORTED_OFST 52 23339 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTER_TYPES_SUPPORTED_LEN 4 23340 + /* The total number of conntrack counters available to allocate. */ 23341 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_CT_COUNTERS_OFST 56 23342 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_CT_COUNTERS_LEN 4 23343 + /* The total number of Outer Rule counters available to allocate. */ 23344 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_OR_COUNTERS_OFST 60 23345 + #define MC_CMD_MAE_GET_CAPS_V3_OUT_OR_COUNTERS_LEN 4 23346 + 23347 + 23348 + /***********************************/ 23349 + /* MC_CMD_MAE_GET_AR_CAPS 23350 + * Get a level of support for match fields when used in match-action rules 23351 + */ 23352 + #define MC_CMD_MAE_GET_AR_CAPS 0x141 23353 + #undef MC_CMD_0x141_PRIVILEGE_CTG 23354 + 23355 + #define MC_CMD_0x141_PRIVILEGE_CTG SRIOV_CTG_MAE 23356 + 23357 + /* MC_CMD_MAE_GET_AR_CAPS_IN msgrequest */ 23358 + #define MC_CMD_MAE_GET_AR_CAPS_IN_LEN 0 23359 + 23360 + /* MC_CMD_MAE_GET_AR_CAPS_OUT msgresponse */ 23361 + #define MC_CMD_MAE_GET_AR_CAPS_OUT_LENMIN 4 23362 + #define MC_CMD_MAE_GET_AR_CAPS_OUT_LENMAX 252 23363 + #define MC_CMD_MAE_GET_AR_CAPS_OUT_LENMAX_MCDI2 1020 23364 + #define MC_CMD_MAE_GET_AR_CAPS_OUT_LEN(num) (4+4*(num)) 23365 + #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_NUM(len) (((len)-4)/4) 23366 + /* Number of fields actually returned in FIELD_FLAGS. */ 23367 + #define MC_CMD_MAE_GET_AR_CAPS_OUT_COUNT_OFST 0 23368 + #define MC_CMD_MAE_GET_AR_CAPS_OUT_COUNT_LEN 4 23369 + /* Array of values indicating the NIC's support for a given field, indexed by 23370 + * field id. The driver must ensure space for 23371 + * MC_CMD_MAE_GET_CAPS.MATCH_FIELD_COUNT entries in the array.. 23372 + */ 23373 + #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_OFST 4 23374 + #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_LEN 4 23375 + #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_MINNUM 0 23376 + #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_MAXNUM 62 23377 + #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_MAXNUM_MCDI2 254 23378 + 23379 + 23380 + /***********************************/ 23381 + /* MC_CMD_MAE_GET_OR_CAPS 23382 + * Get a level of support for fields used in outer rule keys. 23383 + */ 23384 + #define MC_CMD_MAE_GET_OR_CAPS 0x142 23385 + #undef MC_CMD_0x142_PRIVILEGE_CTG 23386 + 23387 + #define MC_CMD_0x142_PRIVILEGE_CTG SRIOV_CTG_MAE 23388 + 23389 + /* MC_CMD_MAE_GET_OR_CAPS_IN msgrequest */ 23390 + #define MC_CMD_MAE_GET_OR_CAPS_IN_LEN 0 23391 + 23392 + /* MC_CMD_MAE_GET_OR_CAPS_OUT msgresponse */ 23393 + #define MC_CMD_MAE_GET_OR_CAPS_OUT_LENMIN 4 23394 + #define MC_CMD_MAE_GET_OR_CAPS_OUT_LENMAX 252 23395 + #define MC_CMD_MAE_GET_OR_CAPS_OUT_LENMAX_MCDI2 1020 23396 + #define MC_CMD_MAE_GET_OR_CAPS_OUT_LEN(num) (4+4*(num)) 23397 + #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_NUM(len) (((len)-4)/4) 23398 + /* Number of fields actually returned in FIELD_FLAGS. */ 23399 + #define MC_CMD_MAE_GET_OR_CAPS_OUT_COUNT_OFST 0 23400 + #define MC_CMD_MAE_GET_OR_CAPS_OUT_COUNT_LEN 4 23401 + /* Same semantics as MC_CMD_MAE_GET_AR_CAPS.MAE_FIELD_FLAGS */ 23402 + #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_OFST 4 23403 + #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_LEN 4 23404 + #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_MINNUM 0 23405 + #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_MAXNUM 62 23406 + #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_MAXNUM_MCDI2 254 23407 + 23408 + 23409 + /***********************************/ 23410 + /* MC_CMD_MAE_COUNTER_ALLOC 23411 + * Allocate match-action-engine counters, which can be referenced in various 23412 + * tables. 23413 + */ 23414 + #define MC_CMD_MAE_COUNTER_ALLOC 0x143 23415 + #undef MC_CMD_0x143_PRIVILEGE_CTG 23416 + 23417 + #define MC_CMD_0x143_PRIVILEGE_CTG SRIOV_CTG_MAE 23418 + 23419 + /* MC_CMD_MAE_COUNTER_ALLOC_IN msgrequest: Using this is equivalent to using V2 23420 + * with COUNTER_TYPE=AR. 23421 + */ 23422 + #define MC_CMD_MAE_COUNTER_ALLOC_IN_LEN 4 23423 + /* The number of counters that the driver would like allocated */ 23424 + #define MC_CMD_MAE_COUNTER_ALLOC_IN_REQUESTED_COUNT_OFST 0 23425 + #define MC_CMD_MAE_COUNTER_ALLOC_IN_REQUESTED_COUNT_LEN 4 23426 + 23427 + /* MC_CMD_MAE_COUNTER_ALLOC_V2_IN msgrequest */ 23428 + #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_LEN 8 23429 + /* The number of counters that the driver would like allocated */ 23430 + #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_REQUESTED_COUNT_OFST 0 23431 + #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_REQUESTED_COUNT_LEN 4 23432 + /* Which type of counter to allocate. */ 23433 + #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_COUNTER_TYPE_OFST 4 23434 + #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_COUNTER_TYPE_LEN 4 23435 + /* Enum values, see field(s): */ 23436 + /* MAE_COUNTER_TYPE */ 23437 + 23438 + /* MC_CMD_MAE_COUNTER_ALLOC_OUT msgresponse */ 23439 + #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LENMIN 12 23440 + #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LENMAX 252 23441 + #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LENMAX_MCDI2 1020 23442 + #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LEN(num) (8+4*(num)) 23443 + #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_NUM(len) (((len)-8)/4) 23444 + /* Generation count. Packets with generation count >= GENERATION_COUNT will 23445 + * contain valid counter values for counter IDs allocated in this call, unless 23446 + * the counter values are zero and zero squash is enabled. Note that there is 23447 + * an independent GENERATION_COUNT object per counter type, and that generation 23448 + * counts wrap from 0xffffffff to 1. 23449 + */ 23450 + #define MC_CMD_MAE_COUNTER_ALLOC_OUT_GENERATION_COUNT_OFST 0 23451 + #define MC_CMD_MAE_COUNTER_ALLOC_OUT_GENERATION_COUNT_LEN 4 23452 + /* enum: Generation counter 0 is reserved and unused. */ 23453 + #define MC_CMD_MAE_COUNTER_ALLOC_OUT_GENERATION_COUNT_INVALID 0x0 23454 + /* The number of counter IDs that the NIC allocated. It is never less than 1; 23455 + * failure to allocate a single counter will cause an error to be returned. It 23456 + * is never greater than REQUESTED_COUNT, but may be less. 23457 + */ 23458 + #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_COUNT_OFST 4 23459 + #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_COUNT_LEN 4 23460 + /* An array containing the IDs for the counters allocated. */ 23461 + #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_OFST 8 23462 + #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_LEN 4 23463 + #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_MINNUM 1 23464 + #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_MAXNUM 61 23465 + #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_MAXNUM_MCDI2 253 23466 + /* enum: A counter ID that is guaranteed never to represent a real counter */ 23467 + #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_NULL 0xffffffff 23468 + 23469 + 23470 + /***********************************/ 23471 + /* MC_CMD_MAE_COUNTER_FREE 23472 + * Free match-action-engine counters 23473 + */ 23474 + #define MC_CMD_MAE_COUNTER_FREE 0x144 23475 + #undef MC_CMD_0x144_PRIVILEGE_CTG 23476 + 23477 + #define MC_CMD_0x144_PRIVILEGE_CTG SRIOV_CTG_MAE 23478 + 23479 + /* MC_CMD_MAE_COUNTER_FREE_IN msgrequest: Using this is equivalent to using V2 23480 + * with COUNTER_TYPE=AR. 23481 + */ 23482 + #define MC_CMD_MAE_COUNTER_FREE_IN_LENMIN 8 23483 + #define MC_CMD_MAE_COUNTER_FREE_IN_LENMAX 132 23484 + #define MC_CMD_MAE_COUNTER_FREE_IN_LENMAX_MCDI2 132 23485 + #define MC_CMD_MAE_COUNTER_FREE_IN_LEN(num) (4+4*(num)) 23486 + #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_NUM(len) (((len)-4)/4) 23487 + /* The number of counter IDs to be freed. */ 23488 + #define MC_CMD_MAE_COUNTER_FREE_IN_COUNTER_ID_COUNT_OFST 0 23489 + #define MC_CMD_MAE_COUNTER_FREE_IN_COUNTER_ID_COUNT_LEN 4 23490 + /* An array containing the counter IDs to be freed. */ 23491 + #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_OFST 4 23492 + #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_LEN 4 23493 + #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_MINNUM 1 23494 + #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_MAXNUM 32 23495 + #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_MAXNUM_MCDI2 32 23496 + 23497 + /* MC_CMD_MAE_COUNTER_FREE_V2_IN msgrequest */ 23498 + #define MC_CMD_MAE_COUNTER_FREE_V2_IN_LEN 136 23499 + /* The number of counter IDs to be freed. */ 23500 + #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_ID_COUNT_OFST 0 23501 + #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_ID_COUNT_LEN 4 23502 + /* An array containing the counter IDs to be freed. */ 23503 + #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_OFST 4 23504 + #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_LEN 4 23505 + #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_MINNUM 1 23506 + #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_MAXNUM 32 23507 + #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_MAXNUM_MCDI2 32 23508 + /* Which type of counter to free. */ 23509 + #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_TYPE_OFST 132 23510 + #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_TYPE_LEN 4 23511 + /* Enum values, see field(s): */ 23512 + /* MAE_COUNTER_TYPE */ 23513 + 23514 + /* MC_CMD_MAE_COUNTER_FREE_OUT msgresponse */ 23515 + #define MC_CMD_MAE_COUNTER_FREE_OUT_LENMIN 12 23516 + #define MC_CMD_MAE_COUNTER_FREE_OUT_LENMAX 136 23517 + #define MC_CMD_MAE_COUNTER_FREE_OUT_LENMAX_MCDI2 136 23518 + #define MC_CMD_MAE_COUNTER_FREE_OUT_LEN(num) (8+4*(num)) 23519 + #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_NUM(len) (((len)-8)/4) 23520 + /* Generation count. A packet with generation count == GENERATION_COUNT will 23521 + * contain the final values for these counter IDs, unless the counter values 23522 + * are zero and zero squash is enabled. Note that the GENERATION_COUNT value is 23523 + * specific to the COUNTER_TYPE (IDENTIFIER field in packet header). Receiving 23524 + * a packet with generation count > GENERATION_COUNT guarantees that no more 23525 + * values will be written for these counters. If values for these counter IDs 23526 + * are present, the counter ID has been reallocated. A counter ID will not be 23527 + * reallocated within a single read cycle as this would merge increments from 23528 + * the 'old' and 'new' counters. GENERATION_COUNT_INVALID is reserved and 23529 + * unused. 23530 + */ 23531 + #define MC_CMD_MAE_COUNTER_FREE_OUT_GENERATION_COUNT_OFST 0 23532 + #define MC_CMD_MAE_COUNTER_FREE_OUT_GENERATION_COUNT_LEN 4 23533 + /* The number of counter IDs actually freed. It is never less than 1; failure 23534 + * to free a single counter will cause an error to be returned. It is never 23535 + * greater than the number that were requested to be freed, but may be less if 23536 + * counters could not be freed. 23537 + */ 23538 + #define MC_CMD_MAE_COUNTER_FREE_OUT_COUNTER_ID_COUNT_OFST 4 23539 + #define MC_CMD_MAE_COUNTER_FREE_OUT_COUNTER_ID_COUNT_LEN 4 23540 + /* An array containing the IDs for the counters to that were freed. Note, 23541 + * failure to free a counter can only occur on incorrect driver behaviour, so 23542 + * asserting that the expected counters were freed is reasonable. When 23543 + * debugging, attempting to free a single counter at a time will provide a 23544 + * reason for the failure to free said counter. 23545 + */ 23546 + #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_OFST 8 23547 + #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_LEN 4 23548 + #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_MINNUM 1 23549 + #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_MAXNUM 32 23550 + #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_MAXNUM_MCDI2 32 23551 + 23552 + 23553 + /***********************************/ 23554 + /* MC_CMD_MAE_COUNTERS_STREAM_START 23555 + * Start streaming counter values, specifying an RxQ to deliver packets to. 23556 + * Counters allocated to the calling function will be written in a round robin 23557 + * at a fixed cycle rate, assuming sufficient credits are available. The driver 23558 + * may cause the counter values to be written at a slower rate by constraining 23559 + * the availability of credits. Note that if the driver wishes to deliver 23560 + * packets to a different queue, it must call MAE_COUNTERS_STREAM_STOP to stop 23561 + * delivering packets to the current queue first. 23562 + */ 23563 + #define MC_CMD_MAE_COUNTERS_STREAM_START 0x151 23564 + #undef MC_CMD_0x151_PRIVILEGE_CTG 23565 + 23566 + #define MC_CMD_0x151_PRIVILEGE_CTG SRIOV_CTG_MAE 23567 + 23568 + /* MC_CMD_MAE_COUNTERS_STREAM_START_IN msgrequest: Using V1 is equivalent to V2 23569 + * with COUNTER_TYPES_MASK=0x1 (i.e. AR counters only). 23570 + */ 23571 + #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_LEN 8 23572 + /* The RxQ to write packets to. */ 23573 + #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_QID_OFST 0 23574 + #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_QID_LEN 2 23575 + /* Maximum size in bytes of packets that may be written to the RxQ. */ 23576 + #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_PACKET_SIZE_OFST 2 23577 + #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_PACKET_SIZE_LEN 2 23578 + /* Optional flags. */ 23579 + #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_FLAGS_OFST 4 23580 + #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_FLAGS_LEN 4 23581 + #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_OFST 4 23582 + #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_LBN 0 23583 + #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_WIDTH 1 23584 + #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_OFST 4 23585 + #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_LBN 1 23586 + #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_WIDTH 1 23587 + 23588 + /* MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN msgrequest */ 23589 + #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_LEN 12 23590 + /* The RxQ to write packets to. */ 23591 + #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_QID_OFST 0 23592 + #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_QID_LEN 2 23593 + /* Maximum size in bytes of packets that may be written to the RxQ. */ 23594 + #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_PACKET_SIZE_OFST 2 23595 + #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_PACKET_SIZE_LEN 2 23596 + /* Optional flags. */ 23597 + #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_FLAGS_OFST 4 23598 + #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_FLAGS_LEN 4 23599 + #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_ZERO_SQUASH_DISABLE_OFST 4 23600 + #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_ZERO_SQUASH_DISABLE_LBN 0 23601 + #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_ZERO_SQUASH_DISABLE_WIDTH 1 23602 + #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_STALL_EN_OFST 4 23603 + #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_STALL_EN_LBN 1 23604 + #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_STALL_EN_WIDTH 1 23605 + /* Mask of which counter types should be reported. Each bit position 23606 + * corresponds to a value of the MAE_COUNTER_TYPE enum. For example a value of 23607 + * 0x3 requests both AR and CT counters. A value of zero is invalid. Counter 23608 + * types not selected by the mask value won't be included in the stream. If a 23609 + * client wishes to change which counter types are reported, it must first call 23610 + * MAE_COUNTERS_STREAM_STOP, then restart it with the new mask value. 23611 + * Requesting a counter type which isn't supported by firmware (reported in 23612 + * MC_CMD_MAE_GET_CAPS/COUNTER_TYPES_SUPPORTED) will result in ENOTSUP. 23613 + */ 23614 + #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_TYPES_MASK_OFST 8 23615 + #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_TYPES_MASK_LEN 4 23616 + 23617 + /* MC_CMD_MAE_COUNTERS_STREAM_START_OUT msgresponse */ 23618 + #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_LEN 4 23619 + #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_FLAGS_OFST 0 23620 + #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_FLAGS_LEN 4 23621 + #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_USES_CREDITS_OFST 0 23622 + #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_USES_CREDITS_LBN 0 23623 + #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_USES_CREDITS_WIDTH 1 23624 + 23625 + 23626 + /***********************************/ 23627 + /* MC_CMD_MAE_COUNTERS_STREAM_STOP 23628 + * Stop streaming counter values to the specified RxQ. 23629 + */ 23630 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP 0x152 23631 + #undef MC_CMD_0x152_PRIVILEGE_CTG 23632 + 23633 + #define MC_CMD_0x152_PRIVILEGE_CTG SRIOV_CTG_MAE 23634 + 23635 + /* MC_CMD_MAE_COUNTERS_STREAM_STOP_IN msgrequest */ 23636 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP_IN_LEN 2 23637 + /* The RxQ to stop writing packets to. */ 23638 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP_IN_QID_OFST 0 23639 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP_IN_QID_LEN 2 23640 + 23641 + /* MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT msgresponse */ 23642 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_LEN 4 23643 + /* Generation count for AR counters. The final set of AR counter values will be 23644 + * written out in packets with count == GENERATION_COUNT. An empty packet with 23645 + * count > GENERATION_COUNT indicates that no more counter values of this type 23646 + * will be written to this stream. GENERATION_COUNT_INVALID is reserved and 23647 + * unused. 23648 + */ 23649 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_GENERATION_COUNT_OFST 0 23650 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_GENERATION_COUNT_LEN 4 23651 + 23652 + /* MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT msgresponse */ 23653 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LENMIN 4 23654 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LENMAX 32 23655 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LENMAX_MCDI2 32 23656 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LEN(num) (0+4*(num)) 23657 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_NUM(len) (((len)-0)/4) 23658 + /* Array of generation counts, indexed by MAE_COUNTER_TYPE. Note that since 23659 + * MAE_COUNTER_TYPE_AR==0, this response is backwards-compatible with V1. The 23660 + * final set of counter values will be written out in packets with count == 23661 + * GENERATION_COUNT. An empty packet with count > GENERATION_COUNT indicates 23662 + * that no more counter values of this type will be written to this stream. 23663 + * GENERATION_COUNT_INVALID is reserved and unused. 23664 + */ 23665 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_OFST 0 23666 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_LEN 4 23667 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_MINNUM 1 23668 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_MAXNUM 8 23669 + #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_MAXNUM_MCDI2 8 23670 + 23671 + 23672 + /***********************************/ 23673 + /* MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS 23674 + * Give a number of credits to the packetiser. Each credit received allows the 23675 + * MC to write one packet to the RxQ, therefore for each credit the driver must 23676 + * have written sufficient descriptors for a packet of length 23677 + * MAE_COUNTERS_PACKETISER_STREAM_START/PACKET_SIZE and rung the doorbell. 23678 + */ 23679 + #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS 0x153 23680 + #undef MC_CMD_0x153_PRIVILEGE_CTG 23681 + 23682 + #define MC_CMD_0x153_PRIVILEGE_CTG SRIOV_CTG_MAE 23683 + 23684 + /* MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN msgrequest */ 23685 + #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_LEN 4 23686 + /* Number of credits to give to the packetiser. */ 23687 + #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_NUM_CREDITS_OFST 0 23688 + #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_NUM_CREDITS_LEN 4 23689 + 23690 + /* MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_OUT msgresponse */ 23691 + #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_OUT_LEN 0 23692 + 23693 + 23694 + /***********************************/ 23695 + /* MC_CMD_MAE_ENCAP_HEADER_ALLOC 23696 + * Allocate an encapsulation header to be used in an Action Rule response. The 23697 + * header must be constructed as a valid packet with 0-length payload. 23698 + * Specifically, the L3/L4 lengths & checksums will only be incrementally fixed 23699 + * by the NIC, rather than recomputed entirely. Currently only IPv4, IPv6 and 23700 + * UDP are supported. If the maximum number of headers have already been 23701 + * allocated then the command will fail with MC_CMD_ERR_ENOSPC. 23702 + */ 23703 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC 0x148 23704 + #undef MC_CMD_0x148_PRIVILEGE_CTG 23705 + 23706 + #define MC_CMD_0x148_PRIVILEGE_CTG SRIOV_CTG_MAE 23707 + 23708 + /* MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN msgrequest */ 23709 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMIN 4 23710 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMAX 252 23711 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMAX_MCDI2 1020 23712 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LEN(num) (4+1*(num)) 23713 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_NUM(len) (((len)-4)/1) 23714 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_ENCAP_TYPE_OFST 0 23715 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_ENCAP_TYPE_LEN 4 23716 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_OFST 4 23717 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_LEN 1 23718 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_MINNUM 0 23719 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_MAXNUM 248 23720 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_MAXNUM_MCDI2 1016 23721 + 23722 + /* MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT msgresponse */ 23723 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_LEN 4 23724 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_ENCAP_HEADER_ID_OFST 0 23725 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_ENCAP_HEADER_ID_LEN 4 23726 + /* enum: An encap metadata ID that is guaranteed never to represent real encap 23727 + * metadata 23728 + */ 23729 + #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_ENCAP_HEADER_ID_NULL 0xffffffff 23730 + 23731 + 23732 + /***********************************/ 23733 + /* MC_CMD_MAE_ENCAP_HEADER_UPDATE 23734 + * Update encap action metadata. See comments for MAE_ENCAP_HEADER_ALLOC. 23735 + */ 23736 + #define MC_CMD_MAE_ENCAP_HEADER_UPDATE 0x149 23737 + #undef MC_CMD_0x149_PRIVILEGE_CTG 23738 + 23739 + #define MC_CMD_0x149_PRIVILEGE_CTG SRIOV_CTG_MAE 23740 + 23741 + /* MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN msgrequest */ 23742 + #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LENMIN 8 23743 + #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LENMAX 252 23744 + #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LENMAX_MCDI2 1020 23745 + #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LEN(num) (8+1*(num)) 23746 + #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_NUM(len) (((len)-8)/1) 23747 + #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_EH_ID_OFST 0 23748 + #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_EH_ID_LEN 4 23749 + #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_ENCAP_TYPE_OFST 4 23750 + #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_ENCAP_TYPE_LEN 4 23751 + #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_OFST 8 23752 + #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_LEN 1 23753 + #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_MINNUM 0 23754 + #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_MAXNUM 244 23755 + #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_MAXNUM_MCDI2 1012 23756 + 23757 + /* MC_CMD_MAE_ENCAP_HEADER_UPDATE_OUT msgresponse */ 23758 + #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_OUT_LEN 0 23759 + 23760 + 23761 + /***********************************/ 23762 + /* MC_CMD_MAE_ENCAP_HEADER_FREE 23763 + * Free encap action metadata 23764 + */ 23765 + #define MC_CMD_MAE_ENCAP_HEADER_FREE 0x14a 23766 + #undef MC_CMD_0x14a_PRIVILEGE_CTG 23767 + 23768 + #define MC_CMD_0x14a_PRIVILEGE_CTG SRIOV_CTG_MAE 23769 + 23770 + /* MC_CMD_MAE_ENCAP_HEADER_FREE_IN msgrequest */ 23771 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMIN 4 23772 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMAX 128 23773 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMAX_MCDI2 128 23774 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LEN(num) (0+4*(num)) 23775 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_NUM(len) (((len)-0)/4) 23776 + /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 23777 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_OFST 0 23778 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_LEN 4 23779 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_MINNUM 1 23780 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_MAXNUM 32 23781 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_MAXNUM_MCDI2 32 23782 + 23783 + /* MC_CMD_MAE_ENCAP_HEADER_FREE_OUT msgresponse */ 23784 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LENMIN 4 23785 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LENMAX 128 23786 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LENMAX_MCDI2 128 23787 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LEN(num) (0+4*(num)) 23788 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_NUM(len) (((len)-0)/4) 23789 + /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 23790 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_OFST 0 23791 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_LEN 4 23792 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_MINNUM 1 23793 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_MAXNUM 32 23794 + #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_MAXNUM_MCDI2 32 23795 + 23796 + 23797 + /***********************************/ 23798 + /* MC_CMD_MAE_MAC_ADDR_ALLOC 23799 + * Allocate MAC address. Hardware implementations have MAC addresses programmed 23800 + * into an indirection table, and clients should take care not to allocate the 23801 + * same MAC address twice (but instead reuse its ID). If the maximum number of 23802 + * MAC addresses have already been allocated then the command will fail with 23803 + * MC_CMD_ERR_ENOSPC. 23804 + */ 23805 + #define MC_CMD_MAE_MAC_ADDR_ALLOC 0x15e 23806 + #undef MC_CMD_0x15e_PRIVILEGE_CTG 23807 + 23808 + #define MC_CMD_0x15e_PRIVILEGE_CTG SRIOV_CTG_MAE 23809 + 23810 + /* MC_CMD_MAE_MAC_ADDR_ALLOC_IN msgrequest */ 23811 + #define MC_CMD_MAE_MAC_ADDR_ALLOC_IN_LEN 6 23812 + /* MAC address as bytes in network order. */ 23813 + #define MC_CMD_MAE_MAC_ADDR_ALLOC_IN_MAC_ADDR_OFST 0 23814 + #define MC_CMD_MAE_MAC_ADDR_ALLOC_IN_MAC_ADDR_LEN 6 23815 + 23816 + /* MC_CMD_MAE_MAC_ADDR_ALLOC_OUT msgresponse */ 23817 + #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_LEN 4 23818 + #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_MAC_ID_OFST 0 23819 + #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_MAC_ID_LEN 4 23820 + /* enum: An MAC address ID that is guaranteed never to represent a real MAC 23821 + * address. 23822 + */ 23823 + #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_MAC_ID_NULL 0xffffffff 23824 + 23825 + 23826 + /***********************************/ 23827 + /* MC_CMD_MAE_MAC_ADDR_FREE 23828 + * Free MAC address. 23829 + */ 23830 + #define MC_CMD_MAE_MAC_ADDR_FREE 0x15f 23831 + #undef MC_CMD_0x15f_PRIVILEGE_CTG 23832 + 23833 + #define MC_CMD_0x15f_PRIVILEGE_CTG SRIOV_CTG_MAE 23834 + 23835 + /* MC_CMD_MAE_MAC_ADDR_FREE_IN msgrequest */ 23836 + #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMIN 4 23837 + #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMAX 128 23838 + #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMAX_MCDI2 128 23839 + #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LEN(num) (0+4*(num)) 23840 + #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_NUM(len) (((len)-0)/4) 23841 + /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 23842 + #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_OFST 0 23843 + #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_LEN 4 23844 + #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_MINNUM 1 23845 + #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_MAXNUM 32 23846 + #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_MAXNUM_MCDI2 32 23847 + 23848 + /* MC_CMD_MAE_MAC_ADDR_FREE_OUT msgresponse */ 23849 + #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LENMIN 4 23850 + #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LENMAX 128 23851 + #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LENMAX_MCDI2 128 23852 + #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LEN(num) (0+4*(num)) 23853 + #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_NUM(len) (((len)-0)/4) 23854 + /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 23855 + #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_OFST 0 23856 + #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_LEN 4 23857 + #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_MINNUM 1 23858 + #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_MAXNUM 32 23859 + #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_MAXNUM_MCDI2 32 23860 + 23861 + 23862 + /***********************************/ 23863 + /* MC_CMD_MAE_ACTION_SET_ALLOC 23864 + * Allocate an action set, which can be referenced either in response to an 23865 + * Action Rule, or as part of an Action Set List. If the maxmimum number of 23866 + * action sets have already been allocated then the command will fail with 23867 + * MC_CMD_ERR_ENOSPC. 23868 + */ 23869 + #define MC_CMD_MAE_ACTION_SET_ALLOC 0x14d 23870 + #undef MC_CMD_0x14d_PRIVILEGE_CTG 23871 + 23872 + #define MC_CMD_0x14d_PRIVILEGE_CTG SRIOV_CTG_MAE 23873 + 23874 + /* MC_CMD_MAE_ACTION_SET_ALLOC_IN msgrequest */ 23875 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LEN 44 23876 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAGS_OFST 0 23877 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAGS_LEN 4 23878 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_PUSH_OFST 0 23879 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_PUSH_LBN 0 23880 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_PUSH_WIDTH 2 23881 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_POP_OFST 0 23882 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_POP_LBN 4 23883 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_POP_WIDTH 2 23884 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DECAP_OFST 0 23885 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DECAP_LBN 8 23886 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DECAP_WIDTH 1 23887 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_OFST 0 23888 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_LBN 9 23889 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_WIDTH 1 23890 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAG_OFST 0 23891 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAG_LBN 10 23892 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAG_WIDTH 1 23893 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_NAT_OFST 0 23894 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_NAT_LBN 11 23895 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_NAT_WIDTH 1 23896 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_DECR_IP_TTL_OFST 0 23897 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_DECR_IP_TTL_LBN 12 23898 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_DECR_IP_TTL_WIDTH 1 23899 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_SRC_MPORT_OFST 0 23900 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_SRC_MPORT_LBN 13 23901 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_SRC_MPORT_WIDTH 1 23902 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SUPPRESS_SELF_DELIVERY_OFST 0 23903 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SUPPRESS_SELF_DELIVERY_LBN 14 23904 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SUPPRESS_SELF_DELIVERY_WIDTH 1 23905 + /* If VLAN_PUSH >= 1, TCI value to be inserted as outermost VLAN. */ 23906 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_TCI_BE_OFST 4 23907 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_TCI_BE_LEN 2 23908 + /* If VLAN_PUSH >= 1, TPID value to be inserted as outermost VLAN. */ 23909 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_PROTO_BE_OFST 6 23910 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_PROTO_BE_LEN 2 23911 + /* If VLAN_PUSH == 2, inner TCI value to be inserted. */ 23912 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_TCI_BE_OFST 8 23913 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_TCI_BE_LEN 2 23914 + /* If VLAN_PUSH == 2, inner TPID value to be inserted. */ 23915 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_PROTO_BE_OFST 10 23916 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_PROTO_BE_LEN 2 23917 + /* Reserved. Ignored by firmware. Should be set to zero or 0xffffffff. */ 23918 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_RSVD_OFST 12 23919 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_RSVD_LEN 4 23920 + /* Set to ENCAP_HEADER_ID_NULL to request no encap action */ 23921 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_ENCAP_HEADER_ID_OFST 16 23922 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_ENCAP_HEADER_ID_LEN 4 23923 + /* An m-port selector identifying the m-port that the modified packet should be 23924 + * delivered to. Set to MPORT_SELECTOR_NULL to request no delivery of the 23925 + * packet. 23926 + */ 23927 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DELIVER_OFST 20 23928 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DELIVER_LEN 4 23929 + /* Allows an action set to trigger several counter updates. Set to 23930 + * COUNTER_LIST_ID_NULL to request no counter action. 23931 + */ 23932 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_LIST_ID_OFST 24 23933 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_LIST_ID_LEN 4 23934 + /* If a driver only wished to update one counter within this action set, then 23935 + * it can supply a COUNTER_ID instead of allocating a single-element counter 23936 + * list. The ID must have been allocated with COUNTER_TYPE=AR. This field 23937 + * should be set to COUNTER_ID_NULL if this behaviour is not required. It is 23938 + * not valid to supply a non-NULL value for both COUNTER_LIST_ID and 23939 + * COUNTER_ID. 23940 + */ 23941 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_ID_OFST 28 23942 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_ID_LEN 4 23943 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_VALUE_OFST 32 23944 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_VALUE_LEN 4 23945 + /* Set to MAC_ID_NULL to request no source MAC replacement. */ 23946 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SRC_MAC_ID_OFST 36 23947 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SRC_MAC_ID_LEN 4 23948 + /* Set to MAC_ID_NULL to request no destination MAC replacement. */ 23949 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DST_MAC_ID_OFST 40 23950 + #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DST_MAC_ID_LEN 4 23951 + 23952 + /* MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN msgrequest: Only supported if 23953 + * MAE_ACTION_SET_ALLOC_V2_SUPPORTED is advertised in 23954 + * MC_CMD_GET_CAPABILITIES_V7_OUT. 23955 + */ 23956 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LEN 51 23957 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAGS_OFST 0 23958 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAGS_LEN 4 23959 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_PUSH_OFST 0 23960 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_PUSH_LBN 0 23961 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_PUSH_WIDTH 2 23962 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_POP_OFST 0 23963 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_POP_LBN 4 23964 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_POP_WIDTH 2 23965 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DECAP_OFST 0 23966 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DECAP_LBN 8 23967 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DECAP_WIDTH 1 23968 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_OFST 0 23969 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_LBN 9 23970 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_WIDTH 1 23971 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAG_OFST 0 23972 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAG_LBN 10 23973 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAG_WIDTH 1 23974 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_NAT_OFST 0 23975 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_NAT_LBN 11 23976 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_NAT_WIDTH 1 23977 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DECR_IP_TTL_OFST 0 23978 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DECR_IP_TTL_LBN 12 23979 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DECR_IP_TTL_WIDTH 1 23980 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_SRC_MPORT_OFST 0 23981 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_SRC_MPORT_LBN 13 23982 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_SRC_MPORT_WIDTH 1 23983 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SUPPRESS_SELF_DELIVERY_OFST 0 23984 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SUPPRESS_SELF_DELIVERY_LBN 14 23985 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SUPPRESS_SELF_DELIVERY_WIDTH 1 23986 + /* If VLAN_PUSH >= 1, TCI value to be inserted as outermost VLAN. */ 23987 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_TCI_BE_OFST 4 23988 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_TCI_BE_LEN 2 23989 + /* If VLAN_PUSH >= 1, TPID value to be inserted as outermost VLAN. */ 23990 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_PROTO_BE_OFST 6 23991 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_PROTO_BE_LEN 2 23992 + /* If VLAN_PUSH == 2, inner TCI value to be inserted. */ 23993 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN1_TCI_BE_OFST 8 23994 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN1_TCI_BE_LEN 2 23995 + /* If VLAN_PUSH == 2, inner TPID value to be inserted. */ 23996 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN1_PROTO_BE_OFST 10 23997 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN1_PROTO_BE_LEN 2 23998 + /* Reserved. Ignored by firmware. Should be set to zero or 0xffffffff. */ 23999 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_RSVD_OFST 12 24000 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_RSVD_LEN 4 24001 + /* Set to ENCAP_HEADER_ID_NULL to request no encap action */ 24002 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ENCAP_HEADER_ID_OFST 16 24003 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ENCAP_HEADER_ID_LEN 4 24004 + /* An m-port selector identifying the m-port that the modified packet should be 24005 + * delivered to. Set to MPORT_SELECTOR_NULL to request no delivery of the 24006 + * packet. 24007 + */ 24008 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DELIVER_OFST 20 24009 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DELIVER_LEN 4 24010 + /* Allows an action set to trigger several counter updates. Set to 24011 + * COUNTER_LIST_ID_NULL to request no counter action. 24012 + */ 24013 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_LIST_ID_OFST 24 24014 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_LIST_ID_LEN 4 24015 + /* If a driver only wished to update one counter within this action set, then 24016 + * it can supply a COUNTER_ID instead of allocating a single-element counter 24017 + * list. The ID must have been allocated with COUNTER_TYPE=AR. This field 24018 + * should be set to COUNTER_ID_NULL if this behaviour is not required. It is 24019 + * not valid to supply a non-NULL value for both COUNTER_LIST_ID and 24020 + * COUNTER_ID. 24021 + */ 24022 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_ID_OFST 28 24023 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_ID_LEN 4 24024 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_VALUE_OFST 32 24025 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_VALUE_LEN 4 24026 + /* Set to MAC_ID_NULL to request no source MAC replacement. */ 24027 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SRC_MAC_ID_OFST 36 24028 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SRC_MAC_ID_LEN 4 24029 + /* Set to MAC_ID_NULL to request no destination MAC replacement. */ 24030 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DST_MAC_ID_OFST 40 24031 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DST_MAC_ID_LEN 4 24032 + /* Source m-port ID to be reported for DO_SET_SRC_MPORT action. */ 24033 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_REPORTED_SRC_MPORT_OFST 44 24034 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_REPORTED_SRC_MPORT_LEN 4 24035 + /* Actions for modifying the Differentiated Services Code-Point (DSCP) bits 24036 + * within IPv4 and IPv6 headers. 24037 + */ 24038 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_CONTROL_OFST 48 24039 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_CONTROL_LEN 2 24040 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_ENCAP_COPY_OFST 48 24041 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_ENCAP_COPY_LBN 0 24042 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_ENCAP_COPY_WIDTH 1 24043 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_DECAP_COPY_OFST 48 24044 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_DECAP_COPY_LBN 1 24045 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_DECAP_COPY_WIDTH 1 24046 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_DSCP_OFST 48 24047 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_DSCP_LBN 2 24048 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_DSCP_WIDTH 1 24049 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_VALUE_OFST 48 24050 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_VALUE_LBN 3 24051 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_VALUE_WIDTH 6 24052 + /* Actions for modifying the Explicit Congestion Notification (ECN) bits within 24053 + * IPv4 and IPv6 headers. 24054 + */ 24055 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_CONTROL_OFST 50 24056 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_CONTROL_LEN 1 24057 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_ENCAP_COPY_OFST 50 24058 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_ENCAP_COPY_LBN 0 24059 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_ENCAP_COPY_WIDTH 1 24060 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_DECAP_COPY_OFST 50 24061 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_DECAP_COPY_LBN 1 24062 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_DECAP_COPY_WIDTH 1 24063 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_ECN_OFST 50 24064 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_ECN_LBN 2 24065 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_ECN_WIDTH 1 24066 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_VALUE_OFST 50 24067 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_VALUE_LBN 3 24068 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_VALUE_WIDTH 2 24069 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_0_TO_CE_OFST 50 24070 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_0_TO_CE_LBN 5 24071 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_0_TO_CE_WIDTH 1 24072 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_1_TO_CE_OFST 50 24073 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_1_TO_CE_LBN 6 24074 + #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_1_TO_CE_WIDTH 1 24075 + 24076 + /* MC_CMD_MAE_ACTION_SET_ALLOC_OUT msgresponse */ 24077 + #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_LEN 4 24078 + /* The MSB of the AS_ID is guaranteed to be clear if the ID is not 24079 + * ACTION_SET_ID_NULL. This allows an AS_ID to be distinguished from an ASL_ID 24080 + * returned from MC_CMD_MAE_ACTION_SET_LIST_ALLOC. 24081 + */ 24082 + #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_AS_ID_OFST 0 24083 + #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_AS_ID_LEN 4 24084 + /* enum: An action set ID that is guaranteed never to represent an action set 24085 + */ 24086 + #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_ACTION_SET_ID_NULL 0xffffffff 24087 + 24088 + 24089 + /***********************************/ 24090 + /* MC_CMD_MAE_ACTION_SET_FREE 24091 + */ 24092 + #define MC_CMD_MAE_ACTION_SET_FREE 0x14e 24093 + #undef MC_CMD_0x14e_PRIVILEGE_CTG 24094 + 24095 + #define MC_CMD_0x14e_PRIVILEGE_CTG SRIOV_CTG_MAE 24096 + 24097 + /* MC_CMD_MAE_ACTION_SET_FREE_IN msgrequest */ 24098 + #define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMIN 4 24099 + #define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMAX 128 24100 + #define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMAX_MCDI2 128 24101 + #define MC_CMD_MAE_ACTION_SET_FREE_IN_LEN(num) (0+4*(num)) 24102 + #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_NUM(len) (((len)-0)/4) 24103 + /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 24104 + #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_OFST 0 24105 + #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_LEN 4 24106 + #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_MINNUM 1 24107 + #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_MAXNUM 32 24108 + #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_MAXNUM_MCDI2 32 24109 + 24110 + /* MC_CMD_MAE_ACTION_SET_FREE_OUT msgresponse */ 24111 + #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LENMIN 4 24112 + #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LENMAX 128 24113 + #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LENMAX_MCDI2 128 24114 + #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LEN(num) (0+4*(num)) 24115 + #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_NUM(len) (((len)-0)/4) 24116 + /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 24117 + #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_OFST 0 24118 + #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_LEN 4 24119 + #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_MINNUM 1 24120 + #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_MAXNUM 32 24121 + #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_MAXNUM_MCDI2 32 24122 + 24123 + 24124 + /***********************************/ 24125 + /* MC_CMD_MAE_ACTION_SET_LIST_ALLOC 24126 + * Allocate an action set list (ASL) that can be referenced by an ID. The ASL 24127 + * ID can be used when inserting an action rule, so that for each packet 24128 + * matching the rule every action set in the list is applied. If the maximum 24129 + * number of ASLs have already been allocated then the command will fail with 24130 + * MC_CMD_ERR_ENOSPC. 24131 + */ 24132 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC 0x14f 24133 + #undef MC_CMD_0x14f_PRIVILEGE_CTG 24134 + 24135 + #define MC_CMD_0x14f_PRIVILEGE_CTG SRIOV_CTG_MAE 24136 + 24137 + /* MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN msgrequest */ 24138 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LENMIN 8 24139 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LENMAX 252 24140 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LENMAX_MCDI2 1020 24141 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LEN(num) (4+4*(num)) 24142 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_NUM(len) (((len)-4)/4) 24143 + /* Number of elements in the AS_IDS field. */ 24144 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_COUNT_OFST 0 24145 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_COUNT_LEN 4 24146 + /* The IDs of the action sets in this list. The last element of this list may 24147 + * be the ID of an already allocated ASL. In this case the action sets from the 24148 + * already allocated ASL will be applied after the action sets supplied by this 24149 + * request. This mechanism can be used to reduce resource usage in the case 24150 + * where one ASL is a sublist of another ASL. The sublist should be allocated 24151 + * first, then the superlist should be allocated by supplying all required 24152 + * action set IDs that are not in the sublist followed by the ID of the 24153 + * sublist. One sublist can be referenced by multiple superlists. 24154 + */ 24155 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_OFST 4 24156 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_LEN 4 24157 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_MINNUM 1 24158 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_MAXNUM 62 24159 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_MAXNUM_MCDI2 254 24160 + 24161 + /* MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT msgresponse */ 24162 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_LEN 4 24163 + /* The MSB of the ASL_ID is guaranteed to be set. This allows an ASL_ID to be 24164 + * distinguished from an AS_ID returned from MC_CMD_MAE_ACTION_SET_ALLOC. 24165 + */ 24166 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_ASL_ID_OFST 0 24167 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_ASL_ID_LEN 4 24168 + /* enum: An action set list ID that is guaranteed never to represent an action 24169 + * set list 24170 + */ 24171 + #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_ACTION_SET_LIST_ID_NULL 0xffffffff 24172 + 24173 + 24174 + /***********************************/ 24175 + /* MC_CMD_MAE_ACTION_SET_LIST_FREE 24176 + * Free match-action-engine redirect_lists 24177 + */ 24178 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE 0x150 24179 + #undef MC_CMD_0x150_PRIVILEGE_CTG 24180 + 24181 + #define MC_CMD_0x150_PRIVILEGE_CTG SRIOV_CTG_MAE 24182 + 24183 + /* MC_CMD_MAE_ACTION_SET_LIST_FREE_IN msgrequest */ 24184 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMIN 4 24185 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMAX 128 24186 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMAX_MCDI2 128 24187 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LEN(num) (0+4*(num)) 24188 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_NUM(len) (((len)-0)/4) 24189 + /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 24190 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_OFST 0 24191 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_LEN 4 24192 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_MINNUM 1 24193 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_MAXNUM 32 24194 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_MAXNUM_MCDI2 32 24195 + 24196 + /* MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT msgresponse */ 24197 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LENMIN 4 24198 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LENMAX 128 24199 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LENMAX_MCDI2 128 24200 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LEN(num) (0+4*(num)) 24201 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_NUM(len) (((len)-0)/4) 24202 + /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 24203 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_OFST 0 24204 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_LEN 4 24205 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_MINNUM 1 24206 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_MAXNUM 32 24207 + #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_MAXNUM_MCDI2 32 24208 + 24209 + 24210 + /***********************************/ 24211 + /* MC_CMD_MAE_OUTER_RULE_INSERT 24212 + * Inserts an Outer Rule, which controls encapsulation parsing, and may 24213 + * influence the Lookup Sequence. If the maximum number of rules have already 24214 + * been inserted then the command will fail with MC_CMD_ERR_ENOSPC. 24215 + */ 24216 + #define MC_CMD_MAE_OUTER_RULE_INSERT 0x15a 24217 + #undef MC_CMD_0x15a_PRIVILEGE_CTG 24218 + 24219 + #define MC_CMD_0x15a_PRIVILEGE_CTG SRIOV_CTG_MAE 24220 + 24221 + /* MC_CMD_MAE_OUTER_RULE_INSERT_IN msgrequest */ 24222 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LENMIN 16 24223 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LENMAX 252 24224 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LENMAX_MCDI2 1020 24225 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LEN(num) (16+1*(num)) 24226 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_NUM(len) (((len)-16)/1) 24227 + /* Packets matching the rule will be parsed with this encapsulation. */ 24228 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ENCAP_TYPE_OFST 0 24229 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ENCAP_TYPE_LEN 4 24230 + /* Enum values, see field(s): */ 24231 + /* MAE_MCDI_ENCAP_TYPE */ 24232 + /* Match priority. Lower values have higher priority. Must be less than 24233 + * MC_CMD_MAE_GET_CAPS_OUT.ENCAP_PRIOS If a packet matches two filters with 24234 + * equal priority then it is unspecified which takes priority. 24235 + */ 24236 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_PRIO_OFST 4 24237 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_PRIO_LEN 4 24238 + /* Deprecated alias for ACTION_CONTROL. */ 24239 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LOOKUP_CONTROL_OFST 8 24240 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LOOKUP_CONTROL_LEN 4 24241 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_CT_OFST 8 24242 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_CT_LBN 0 24243 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_CT_WIDTH 1 24244 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_VNI_MODE_OFST 8 24245 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_VNI_MODE_LBN 1 24246 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_VNI_MODE_WIDTH 2 24247 + /* Enum values, see field(s): */ 24248 + /* MAE_CT_VNI_MODE */ 24249 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_COUNT_OFST 8 24250 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_COUNT_LBN 3 24251 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_COUNT_WIDTH 1 24252 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_TCP_FLAGS_INHIBIT_OFST 8 24253 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_TCP_FLAGS_INHIBIT_LBN 4 24254 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_TCP_FLAGS_INHIBIT_WIDTH 1 24255 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RECIRC_ID_OFST 8 24256 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RECIRC_ID_LBN 8 24257 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RECIRC_ID_WIDTH 8 24258 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_DOMAIN_OFST 8 24259 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_DOMAIN_LBN 16 24260 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_DOMAIN_WIDTH 16 24261 + /* This field controls the actions that are performed when a rule is hit. */ 24262 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ACTION_CONTROL_OFST 8 24263 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ACTION_CONTROL_LEN 4 24264 + /* ID of counter to increment when the rule is hit. Only used if the DO_COUNT 24265 + * flag is set. The ID must have been allocated with COUNTER_TYPE=OR. 24266 + */ 24267 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_COUNTER_ID_OFST 12 24268 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_COUNTER_ID_LEN 4 24269 + /* Structure of the format MAE_ENC_FIELD_PAIRS. */ 24270 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_OFST 16 24271 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_LEN 1 24272 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_MINNUM 0 24273 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_MAXNUM 236 24274 + #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_MAXNUM_MCDI2 1004 24275 + 24276 + /* MC_CMD_MAE_OUTER_RULE_INSERT_OUT msgresponse */ 24277 + #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_LEN 4 24278 + #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_OR_ID_OFST 0 24279 + #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_OR_ID_LEN 4 24280 + /* enum: An outer match ID that is guaranteed never to represent an outer match 24281 + */ 24282 + #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_OUTER_RULE_ID_NULL 0xffffffff 24283 + 24284 + 24285 + /***********************************/ 24286 + /* MC_CMD_MAE_OUTER_RULE_REMOVE 24287 + */ 24288 + #define MC_CMD_MAE_OUTER_RULE_REMOVE 0x15b 24289 + #undef MC_CMD_0x15b_PRIVILEGE_CTG 24290 + 24291 + #define MC_CMD_0x15b_PRIVILEGE_CTG SRIOV_CTG_MAE 24292 + 24293 + /* MC_CMD_MAE_OUTER_RULE_REMOVE_IN msgrequest */ 24294 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMIN 4 24295 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMAX 128 24296 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMAX_MCDI2 128 24297 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LEN(num) (0+4*(num)) 24298 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_NUM(len) (((len)-0)/4) 24299 + /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 24300 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_OFST 0 24301 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_LEN 4 24302 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_MINNUM 1 24303 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_MAXNUM 32 24304 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_MAXNUM_MCDI2 32 24305 + 24306 + /* MC_CMD_MAE_OUTER_RULE_REMOVE_OUT msgresponse */ 24307 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LENMIN 4 24308 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LENMAX 128 24309 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LENMAX_MCDI2 128 24310 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LEN(num) (0+4*(num)) 24311 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_NUM(len) (((len)-0)/4) 24312 + /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 24313 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_OFST 0 24314 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_LEN 4 24315 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_MINNUM 1 24316 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_MAXNUM 32 24317 + #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_MAXNUM_MCDI2 32 24318 + 24319 + 24320 + /***********************************/ 24321 + /* MC_CMD_MAE_OUTER_RULE_UPDATE 24322 + * Atomically change the response of an Outer Rule. 24323 + */ 24324 + #define MC_CMD_MAE_OUTER_RULE_UPDATE 0x17d 24325 + #undef MC_CMD_0x17d_PRIVILEGE_CTG 24326 + 24327 + #define MC_CMD_0x17d_PRIVILEGE_CTG SRIOV_CTG_MAE 24328 + 24329 + /* MC_CMD_MAE_OUTER_RULE_UPDATE_IN msgrequest */ 24330 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_LEN 16 24331 + /* ID of outer rule to update */ 24332 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_OR_ID_OFST 0 24333 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_OR_ID_LEN 4 24334 + /* Packets matching the rule will be parsed with this encapsulation. */ 24335 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_ENCAP_TYPE_OFST 4 24336 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_ENCAP_TYPE_LEN 4 24337 + /* Enum values, see field(s): */ 24338 + /* MAE_MCDI_ENCAP_TYPE */ 24339 + /* This field controls the actions that are performed when a rule is hit. */ 24340 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_ACTION_CONTROL_OFST 8 24341 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_ACTION_CONTROL_LEN 4 24342 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_DO_CT_OFST 8 24343 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_DO_CT_LBN 0 24344 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_DO_CT_WIDTH 1 24345 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_VNI_MODE_OFST 8 24346 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_VNI_MODE_LBN 1 24347 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_VNI_MODE_WIDTH 2 24348 + /* Enum values, see field(s): */ 24349 + /* MAE_CT_VNI_MODE */ 24350 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_DO_COUNT_OFST 8 24351 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_DO_COUNT_LBN 3 24352 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_DO_COUNT_WIDTH 1 24353 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_TCP_FLAGS_INHIBIT_OFST 8 24354 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_TCP_FLAGS_INHIBIT_LBN 4 24355 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_TCP_FLAGS_INHIBIT_WIDTH 1 24356 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_RECIRC_ID_OFST 8 24357 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_RECIRC_ID_LBN 8 24358 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_RECIRC_ID_WIDTH 8 24359 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_DOMAIN_OFST 8 24360 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_DOMAIN_LBN 16 24361 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_DOMAIN_WIDTH 16 24362 + /* ID of counter to increment when the rule is hit. Only used if the DO_COUNT 24363 + * flag is set. The ID must have been allocated with COUNTER_TYPE=OR. 24364 + */ 24365 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_COUNTER_ID_OFST 12 24366 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_COUNTER_ID_LEN 4 24367 + 24368 + /* MC_CMD_MAE_OUTER_RULE_UPDATE_OUT msgresponse */ 24369 + #define MC_CMD_MAE_OUTER_RULE_UPDATE_OUT_LEN 0 24370 + 24371 + /* MAE_ACTION_RULE_RESPONSE structuredef */ 24372 + #define MAE_ACTION_RULE_RESPONSE_LEN 16 24373 + #define MAE_ACTION_RULE_RESPONSE_ASL_ID_OFST 0 24374 + #define MAE_ACTION_RULE_RESPONSE_ASL_ID_LEN 4 24375 + #define MAE_ACTION_RULE_RESPONSE_ASL_ID_LBN 0 24376 + #define MAE_ACTION_RULE_RESPONSE_ASL_ID_WIDTH 32 24377 + /* Only one of ASL_ID or AS_ID may have a non-NULL value. */ 24378 + #define MAE_ACTION_RULE_RESPONSE_AS_ID_OFST 4 24379 + #define MAE_ACTION_RULE_RESPONSE_AS_ID_LEN 4 24380 + #define MAE_ACTION_RULE_RESPONSE_AS_ID_LBN 32 24381 + #define MAE_ACTION_RULE_RESPONSE_AS_ID_WIDTH 32 24382 + /* Controls lookup flow when this rule is hit. See sub-fields for details. More 24383 + * info on the lookup sequence can be found in SF-122976-TC. It is an error to 24384 + * set both DO_CT and DO_RECIRC. 24385 + */ 24386 + #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_OFST 8 24387 + #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_LEN 4 24388 + #define MAE_ACTION_RULE_RESPONSE_DO_CT_OFST 8 24389 + #define MAE_ACTION_RULE_RESPONSE_DO_CT_LBN 0 24390 + #define MAE_ACTION_RULE_RESPONSE_DO_CT_WIDTH 1 24391 + #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_OFST 8 24392 + #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_LBN 1 24393 + #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_WIDTH 1 24394 + #define MAE_ACTION_RULE_RESPONSE_CT_VNI_MODE_OFST 8 24395 + #define MAE_ACTION_RULE_RESPONSE_CT_VNI_MODE_LBN 2 24396 + #define MAE_ACTION_RULE_RESPONSE_CT_VNI_MODE_WIDTH 2 24397 + /* Enum values, see field(s): */ 24398 + /* MAE_CT_VNI_MODE */ 24399 + #define MAE_ACTION_RULE_RESPONSE_RECIRC_ID_OFST 8 24400 + #define MAE_ACTION_RULE_RESPONSE_RECIRC_ID_LBN 8 24401 + #define MAE_ACTION_RULE_RESPONSE_RECIRC_ID_WIDTH 8 24402 + #define MAE_ACTION_RULE_RESPONSE_CT_DOMAIN_OFST 8 24403 + #define MAE_ACTION_RULE_RESPONSE_CT_DOMAIN_LBN 16 24404 + #define MAE_ACTION_RULE_RESPONSE_CT_DOMAIN_WIDTH 16 24405 + #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_LBN 64 24406 + #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_WIDTH 32 24407 + /* Counter ID to increment if DO_CT or DO_RECIRC is set. Must be set to 24408 + * COUNTER_ID_NULL otherwise. Counter ID must have been allocated with 24409 + * COUNTER_TYPE=AR. 24410 + */ 24411 + #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_OFST 12 24412 + #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_LEN 4 24413 + #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_LBN 96 24414 + #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_WIDTH 32 24415 + 24416 + 24417 + /***********************************/ 24418 + /* MC_CMD_MAE_ACTION_RULE_INSERT 24419 + * Insert a rule specify that packets matching a filter be processed according 24420 + * to a previous allocated action. Masks can be set as indicated by 24421 + * MC_CMD_MAE_GET_MATCH_FIELD_CAPABILITIES. If the maximum number of rules have 24422 + * already been inserted then the command will fail with MC_CMD_ERR_ENOSPC. 24423 + */ 24424 + #define MC_CMD_MAE_ACTION_RULE_INSERT 0x15c 24425 + #undef MC_CMD_0x15c_PRIVILEGE_CTG 24426 + 24427 + #define MC_CMD_0x15c_PRIVILEGE_CTG SRIOV_CTG_MAE 24428 + 24429 + /* MC_CMD_MAE_ACTION_RULE_INSERT_IN msgrequest */ 24430 + #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LENMIN 28 24431 + #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LENMAX 252 24432 + #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LENMAX_MCDI2 1020 24433 + #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LEN(num) (28+1*(num)) 24434 + #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_NUM(len) (((len)-28)/1) 24435 + /* See MC_CMD_MAE_OUTER_RULE_REGISTER_IN/PRIO. */ 24436 + #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_PRIO_OFST 0 24437 + #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_PRIO_LEN 4 24438 + /* Structure of the format MAE_ACTION_RULE_RESPONSE */ 24439 + #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RESPONSE_OFST 4 24440 + #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RESPONSE_LEN 20 24441 + /* Reserved for future use. Must be set to zero. */ 24442 + #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RSVD_OFST 24 24443 + #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RSVD_LEN 4 24444 + /* Structure of the format MAE_FIELD_MASK_VALUE_PAIRS */ 24445 + #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_OFST 28 24446 + #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_LEN 1 24447 + #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_MINNUM 0 24448 + #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_MAXNUM 224 24449 + #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_MAXNUM_MCDI2 992 24450 + 24451 + /* MC_CMD_MAE_ACTION_RULE_INSERT_OUT msgresponse */ 24452 + #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_LEN 4 24453 + #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_AR_ID_OFST 0 24454 + #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_AR_ID_LEN 4 24455 + /* enum: An action rule ID that is guaranteed never to represent an action rule 24456 + */ 24457 + #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_ACTION_RULE_ID_NULL 0xffffffff 24458 + 24459 + 24460 + /***********************************/ 24461 + /* MC_CMD_MAE_ACTION_RULE_UPDATE 24462 + * Atomically change the response of an action rule. Firmware may return 24463 + * ENOTSUP, in which case the driver should DELETE/INSERT. 24464 + */ 24465 + #define MC_CMD_MAE_ACTION_RULE_UPDATE 0x15d 24466 + #undef MC_CMD_0x15d_PRIVILEGE_CTG 24467 + 24468 + #define MC_CMD_0x15d_PRIVILEGE_CTG SRIOV_CTG_MAE 24469 + 24470 + /* MC_CMD_MAE_ACTION_RULE_UPDATE_IN msgrequest */ 24471 + #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_LEN 24 24472 + /* ID of action rule to update */ 24473 + #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_AR_ID_OFST 0 24474 + #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_AR_ID_LEN 4 24475 + /* Structure of the format MAE_ACTION_RULE_RESPONSE */ 24476 + #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_RESPONSE_OFST 4 24477 + #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_RESPONSE_LEN 20 24478 + 24479 + /* MC_CMD_MAE_ACTION_RULE_UPDATE_OUT msgresponse */ 24480 + #define MC_CMD_MAE_ACTION_RULE_UPDATE_OUT_LEN 0 24481 + 24482 + 24483 + /***********************************/ 24484 + /* MC_CMD_MAE_ACTION_RULE_DELETE 24485 + */ 24486 + #define MC_CMD_MAE_ACTION_RULE_DELETE 0x155 24487 + #undef MC_CMD_0x155_PRIVILEGE_CTG 24488 + 24489 + #define MC_CMD_0x155_PRIVILEGE_CTG SRIOV_CTG_MAE 24490 + 24491 + /* MC_CMD_MAE_ACTION_RULE_DELETE_IN msgrequest */ 24492 + #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMIN 4 24493 + #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMAX 128 24494 + #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMAX_MCDI2 128 24495 + #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LEN(num) (0+4*(num)) 24496 + #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_NUM(len) (((len)-0)/4) 24497 + /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 24498 + #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_OFST 0 24499 + #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_LEN 4 24500 + #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_MINNUM 1 24501 + #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_MAXNUM 32 24502 + #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_MAXNUM_MCDI2 32 24503 + 24504 + /* MC_CMD_MAE_ACTION_RULE_DELETE_OUT msgresponse */ 24505 + #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LENMIN 4 24506 + #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LENMAX 128 24507 + #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LENMAX_MCDI2 128 24508 + #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LEN(num) (0+4*(num)) 24509 + #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_NUM(len) (((len)-0)/4) 24510 + /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 24511 + #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_OFST 0 24512 + #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_LEN 4 24513 + #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_MINNUM 1 24514 + #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_MAXNUM 32 24515 + #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_MAXNUM_MCDI2 32 24516 + 24517 + 24518 + /***********************************/ 24519 + /* MC_CMD_MAE_MPORT_LOOKUP 24520 + * Return the m-port corresponding to a selector. 24521 + */ 24522 + #define MC_CMD_MAE_MPORT_LOOKUP 0x160 24523 + #undef MC_CMD_0x160_PRIVILEGE_CTG 24524 + 24525 + #define MC_CMD_0x160_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24526 + 24527 + /* MC_CMD_MAE_MPORT_LOOKUP_IN msgrequest */ 24528 + #define MC_CMD_MAE_MPORT_LOOKUP_IN_LEN 4 24529 + #define MC_CMD_MAE_MPORT_LOOKUP_IN_MPORT_SELECTOR_OFST 0 24530 + #define MC_CMD_MAE_MPORT_LOOKUP_IN_MPORT_SELECTOR_LEN 4 24531 + 24532 + /* MC_CMD_MAE_MPORT_LOOKUP_OUT msgresponse */ 24533 + #define MC_CMD_MAE_MPORT_LOOKUP_OUT_LEN 4 24534 + #define MC_CMD_MAE_MPORT_LOOKUP_OUT_MPORT_ID_OFST 0 24535 + #define MC_CMD_MAE_MPORT_LOOKUP_OUT_MPORT_ID_LEN 4 24536 + 24537 + 24538 + /***********************************/ 24539 + /* MC_CMD_MAE_MPORT_ALLOC 24540 + * Allocates a m-port, which can subsequently be used in action rules as a 24541 + * match or delivery argument. 24542 + */ 24543 + #define MC_CMD_MAE_MPORT_ALLOC 0x163 24544 + #undef MC_CMD_0x163_PRIVILEGE_CTG 24545 + 24546 + #define MC_CMD_0x163_PRIVILEGE_CTG SRIOV_CTG_MAE 24547 + 24548 + /* MC_CMD_MAE_MPORT_ALLOC_IN msgrequest */ 24549 + #define MC_CMD_MAE_MPORT_ALLOC_IN_LEN 20 24550 + /* The type of m-port to allocate. Firmware may return ENOTSUP for certain 24551 + * types. 24552 + */ 24553 + #define MC_CMD_MAE_MPORT_ALLOC_IN_TYPE_OFST 0 24554 + #define MC_CMD_MAE_MPORT_ALLOC_IN_TYPE_LEN 4 24555 + /* enum: Traffic can be sent to this type of m-port using an override 24556 + * descriptor. Traffic received on this type of m-port will go to the VNIC on a 24557 + * nominated m-port, and will be delivered with metadata identifying the alias 24558 + * m-port. 24559 + */ 24560 + #define MC_CMD_MAE_MPORT_ALLOC_IN_MPORT_TYPE_ALIAS 0x1 24561 + /* enum: This type of m-port has a VNIC attached. Queues can be created on this 24562 + * VNIC by specifying the created m-port as an m-port selector at queue 24563 + * creation time. 24564 + */ 24565 + #define MC_CMD_MAE_MPORT_ALLOC_IN_MPORT_TYPE_VNIC 0x2 24566 + /* 128-bit value for use by the driver. */ 24567 + #define MC_CMD_MAE_MPORT_ALLOC_IN_UUID_OFST 4 24568 + #define MC_CMD_MAE_MPORT_ALLOC_IN_UUID_LEN 16 24569 + 24570 + /* MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN msgrequest */ 24571 + #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_LEN 24 24572 + /* The type of m-port to allocate. Firmware may return ENOTSUP for certain 24573 + * types. 24574 + */ 24575 + #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_TYPE_OFST 0 24576 + #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_TYPE_LEN 4 24577 + /* enum: Traffic can be sent to this type of m-port using an override 24578 + * descriptor. Traffic received on this type of m-port will go to the VNIC on a 24579 + * nominated m-port, and will be delivered with metadata identifying the alias 24580 + * m-port. 24581 + */ 24582 + #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_MPORT_TYPE_ALIAS 0x1 24583 + /* enum: This type of m-port has a VNIC attached. Queues can be created on this 24584 + * VNIC by specifying the created m-port as an m-port selector at queue 24585 + * creation time. 24586 + */ 24587 + #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_MPORT_TYPE_VNIC 0x2 24588 + /* 128-bit value for use by the driver. */ 24589 + #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_UUID_OFST 4 24590 + #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_UUID_LEN 16 24591 + /* An m-port selector identifying the VNIC to which traffic should be 24592 + * delivered. This must currently be set to MAE_MPORT_SELECTOR_ASSIGNED (i.e. 24593 + * the m-port assigned to the calling client). 24594 + */ 24595 + #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_DELIVER_MPORT_OFST 20 24596 + #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_DELIVER_MPORT_LEN 4 24597 + 24598 + /* MC_CMD_MAE_MPORT_ALLOC_VNIC_IN msgrequest */ 24599 + #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_LEN 20 24600 + /* The type of m-port to allocate. Firmware may return ENOTSUP for certain 24601 + * types. 24602 + */ 24603 + #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_TYPE_OFST 0 24604 + #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_TYPE_LEN 4 24605 + /* enum: Traffic can be sent to this type of m-port using an override 24606 + * descriptor. Traffic received on this type of m-port will go to the VNIC on a 24607 + * nominated m-port, and will be delivered with metadata identifying the alias 24608 + * m-port. 24609 + */ 24610 + #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_MPORT_TYPE_ALIAS 0x1 24611 + /* enum: This type of m-port has a VNIC attached. Queues can be created on this 24612 + * VNIC by specifying the created m-port as an m-port selector at queue 24613 + * creation time. 24614 + */ 24615 + #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_MPORT_TYPE_VNIC 0x2 24616 + /* 128-bit value for use by the driver. */ 24617 + #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_UUID_OFST 4 24618 + #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_UUID_LEN 16 24619 + 24620 + /* MC_CMD_MAE_MPORT_ALLOC_OUT msgresponse */ 24621 + #define MC_CMD_MAE_MPORT_ALLOC_OUT_LEN 4 24622 + /* ID of newly-allocated m-port. */ 24623 + #define MC_CMD_MAE_MPORT_ALLOC_OUT_MPORT_ID_OFST 0 24624 + #define MC_CMD_MAE_MPORT_ALLOC_OUT_MPORT_ID_LEN 4 24625 + 24626 + /* MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT msgrequest */ 24627 + #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_LEN 24 24628 + /* ID of newly-allocated m-port. */ 24629 + #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_MPORT_ID_OFST 0 24630 + #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_MPORT_ID_LEN 4 24631 + /* A value that will appear in the packet metadata for any packets delivered 24632 + * using an alias type m-port. This value is guaranteed unique on the VNIC 24633 + * being delivered to, and is guaranteed not to exceed the range of values 24634 + * representable in the relevant metadata field. 24635 + */ 24636 + #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_LABEL_OFST 20 24637 + #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_LABEL_LEN 4 24638 + 24639 + /* MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT msgrequest */ 24640 + #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_LEN 4 24641 + /* ID of newly-allocated m-port. */ 24642 + #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_MPORT_ID_OFST 0 24643 + #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_MPORT_ID_LEN 4 24644 + 24645 + 24646 + /***********************************/ 24647 + /* MC_CMD_MAE_MPORT_FREE 24648 + * Free a m-port which was previously allocated by the driver. 24649 + */ 24650 + #define MC_CMD_MAE_MPORT_FREE 0x164 24651 + #undef MC_CMD_0x164_PRIVILEGE_CTG 24652 + 24653 + #define MC_CMD_0x164_PRIVILEGE_CTG SRIOV_CTG_MAE 24654 + 24655 + /* MC_CMD_MAE_MPORT_FREE_IN msgrequest */ 24656 + #define MC_CMD_MAE_MPORT_FREE_IN_LEN 4 24657 + /* MPORT_ID as returned by MC_CMD_MAE_MPORT_ALLOC. */ 24658 + #define MC_CMD_MAE_MPORT_FREE_IN_MPORT_ID_OFST 0 24659 + #define MC_CMD_MAE_MPORT_FREE_IN_MPORT_ID_LEN 4 24660 + 24661 + /* MC_CMD_MAE_MPORT_FREE_OUT msgresponse */ 24662 + #define MC_CMD_MAE_MPORT_FREE_OUT_LEN 0 24663 + 24664 + /* MAE_MPORT_DESC structuredef */ 24665 + #define MAE_MPORT_DESC_LEN 52 24666 + #define MAE_MPORT_DESC_MPORT_ID_OFST 0 24667 + #define MAE_MPORT_DESC_MPORT_ID_LEN 4 24668 + #define MAE_MPORT_DESC_MPORT_ID_LBN 0 24669 + #define MAE_MPORT_DESC_MPORT_ID_WIDTH 32 24670 + /* Reserved for future purposes, contains information independent of caller */ 24671 + #define MAE_MPORT_DESC_FLAGS_OFST 4 24672 + #define MAE_MPORT_DESC_FLAGS_LEN 4 24673 + #define MAE_MPORT_DESC_FLAGS_LBN 32 24674 + #define MAE_MPORT_DESC_FLAGS_WIDTH 32 24675 + #define MAE_MPORT_DESC_CALLER_FLAGS_OFST 8 24676 + #define MAE_MPORT_DESC_CALLER_FLAGS_LEN 4 24677 + #define MAE_MPORT_DESC_CAN_RECEIVE_ON_OFST 8 24678 + #define MAE_MPORT_DESC_CAN_RECEIVE_ON_LBN 0 24679 + #define MAE_MPORT_DESC_CAN_RECEIVE_ON_WIDTH 1 24680 + #define MAE_MPORT_DESC_CAN_DELIVER_TO_OFST 8 24681 + #define MAE_MPORT_DESC_CAN_DELIVER_TO_LBN 1 24682 + #define MAE_MPORT_DESC_CAN_DELIVER_TO_WIDTH 1 24683 + #define MAE_MPORT_DESC_CAN_DELETE_OFST 8 24684 + #define MAE_MPORT_DESC_CAN_DELETE_LBN 2 24685 + #define MAE_MPORT_DESC_CAN_DELETE_WIDTH 1 24686 + #define MAE_MPORT_DESC_IS_ZOMBIE_OFST 8 24687 + #define MAE_MPORT_DESC_IS_ZOMBIE_LBN 3 24688 + #define MAE_MPORT_DESC_IS_ZOMBIE_WIDTH 1 24689 + #define MAE_MPORT_DESC_CALLER_FLAGS_LBN 64 24690 + #define MAE_MPORT_DESC_CALLER_FLAGS_WIDTH 32 24691 + /* Not the ideal name; it's really the type of thing connected to the m-port */ 24692 + #define MAE_MPORT_DESC_MPORT_TYPE_OFST 12 24693 + #define MAE_MPORT_DESC_MPORT_TYPE_LEN 4 24694 + /* enum: Connected to a MAC... */ 24695 + #define MAE_MPORT_DESC_MPORT_TYPE_NET_PORT 0x0 24696 + /* enum: Adds metadata and delivers to another m-port */ 24697 + #define MAE_MPORT_DESC_MPORT_TYPE_ALIAS 0x1 24698 + /* enum: Connected to a VNIC. */ 24699 + #define MAE_MPORT_DESC_MPORT_TYPE_VNIC 0x2 24700 + #define MAE_MPORT_DESC_MPORT_TYPE_LBN 96 24701 + #define MAE_MPORT_DESC_MPORT_TYPE_WIDTH 32 24702 + /* 128-bit value available to drivers for m-port identification. */ 24703 + #define MAE_MPORT_DESC_UUID_OFST 16 24704 + #define MAE_MPORT_DESC_UUID_LEN 16 24705 + #define MAE_MPORT_DESC_UUID_LBN 128 24706 + #define MAE_MPORT_DESC_UUID_WIDTH 128 24707 + /* Big wadge of space reserved for other common properties */ 24708 + #define MAE_MPORT_DESC_RESERVED_OFST 32 24709 + #define MAE_MPORT_DESC_RESERVED_LEN 8 24710 + #define MAE_MPORT_DESC_RESERVED_LO_OFST 32 24711 + #define MAE_MPORT_DESC_RESERVED_LO_LEN 4 24712 + #define MAE_MPORT_DESC_RESERVED_LO_LBN 256 24713 + #define MAE_MPORT_DESC_RESERVED_LO_WIDTH 32 24714 + #define MAE_MPORT_DESC_RESERVED_HI_OFST 36 24715 + #define MAE_MPORT_DESC_RESERVED_HI_LEN 4 24716 + #define MAE_MPORT_DESC_RESERVED_HI_LBN 288 24717 + #define MAE_MPORT_DESC_RESERVED_HI_WIDTH 32 24718 + #define MAE_MPORT_DESC_RESERVED_LBN 256 24719 + #define MAE_MPORT_DESC_RESERVED_WIDTH 64 24720 + /* Logical port index. Only valid when type NET Port. */ 24721 + #define MAE_MPORT_DESC_NET_PORT_IDX_OFST 40 24722 + #define MAE_MPORT_DESC_NET_PORT_IDX_LEN 4 24723 + #define MAE_MPORT_DESC_NET_PORT_IDX_LBN 320 24724 + #define MAE_MPORT_DESC_NET_PORT_IDX_WIDTH 32 24725 + /* The m-port delivered to */ 24726 + #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_OFST 40 24727 + #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_LEN 4 24728 + #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_LBN 320 24729 + #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_WIDTH 32 24730 + /* The type of thing that owns the VNIC */ 24731 + #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_OFST 40 24732 + #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_LEN 4 24733 + #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_FUNCTION 0x1 /* enum */ 24734 + #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_PLUGIN 0x2 /* enum */ 24735 + #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_LBN 320 24736 + #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_WIDTH 32 24737 + /* The PCIe interface on which the function lives. CJK: We need an enumeration 24738 + * of interfaces that we extend as new interface (types) appear. This belongs 24739 + * elsewhere and should be referenced from here 24740 + */ 24741 + #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_OFST 44 24742 + #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_LEN 4 24743 + #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_LBN 352 24744 + #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_WIDTH 32 24745 + #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_OFST 48 24746 + #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_LEN 2 24747 + #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_LBN 384 24748 + #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_WIDTH 16 24749 + #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_OFST 50 24750 + #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_LEN 2 24751 + /* enum: Indicates that the function is a PF */ 24752 + #define MAE_MPORT_DESC_VF_IDX_NULL 0xffff 24753 + #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_LBN 400 24754 + #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_WIDTH 16 24755 + /* Reserved. Should be ignored for now. */ 24756 + #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_OFST 44 24757 + #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_LEN 4 24758 + #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_LBN 352 24759 + #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_WIDTH 32 24760 + 24761 + /* MAE_MPORT_DESC_V2 structuredef */ 24762 + #define MAE_MPORT_DESC_V2_LEN 56 24763 + #define MAE_MPORT_DESC_V2_MPORT_ID_OFST 0 24764 + #define MAE_MPORT_DESC_V2_MPORT_ID_LEN 4 24765 + #define MAE_MPORT_DESC_V2_MPORT_ID_LBN 0 24766 + #define MAE_MPORT_DESC_V2_MPORT_ID_WIDTH 32 24767 + /* Reserved for future purposes, contains information independent of caller */ 24768 + #define MAE_MPORT_DESC_V2_FLAGS_OFST 4 24769 + #define MAE_MPORT_DESC_V2_FLAGS_LEN 4 24770 + #define MAE_MPORT_DESC_V2_FLAGS_LBN 32 24771 + #define MAE_MPORT_DESC_V2_FLAGS_WIDTH 32 24772 + #define MAE_MPORT_DESC_V2_CALLER_FLAGS_OFST 8 24773 + #define MAE_MPORT_DESC_V2_CALLER_FLAGS_LEN 4 24774 + #define MAE_MPORT_DESC_V2_CAN_RECEIVE_ON_OFST 8 24775 + #define MAE_MPORT_DESC_V2_CAN_RECEIVE_ON_LBN 0 24776 + #define MAE_MPORT_DESC_V2_CAN_RECEIVE_ON_WIDTH 1 24777 + #define MAE_MPORT_DESC_V2_CAN_DELIVER_TO_OFST 8 24778 + #define MAE_MPORT_DESC_V2_CAN_DELIVER_TO_LBN 1 24779 + #define MAE_MPORT_DESC_V2_CAN_DELIVER_TO_WIDTH 1 24780 + #define MAE_MPORT_DESC_V2_CAN_DELETE_OFST 8 24781 + #define MAE_MPORT_DESC_V2_CAN_DELETE_LBN 2 24782 + #define MAE_MPORT_DESC_V2_CAN_DELETE_WIDTH 1 24783 + #define MAE_MPORT_DESC_V2_IS_ZOMBIE_OFST 8 24784 + #define MAE_MPORT_DESC_V2_IS_ZOMBIE_LBN 3 24785 + #define MAE_MPORT_DESC_V2_IS_ZOMBIE_WIDTH 1 24786 + #define MAE_MPORT_DESC_V2_CALLER_FLAGS_LBN 64 24787 + #define MAE_MPORT_DESC_V2_CALLER_FLAGS_WIDTH 32 24788 + /* Not the ideal name; it's really the type of thing connected to the m-port */ 24789 + #define MAE_MPORT_DESC_V2_MPORT_TYPE_OFST 12 24790 + #define MAE_MPORT_DESC_V2_MPORT_TYPE_LEN 4 24791 + /* enum: Connected to a MAC... */ 24792 + #define MAE_MPORT_DESC_V2_MPORT_TYPE_NET_PORT 0x0 24793 + /* enum: Adds metadata and delivers to another m-port */ 24794 + #define MAE_MPORT_DESC_V2_MPORT_TYPE_ALIAS 0x1 24795 + /* enum: Connected to a VNIC. */ 24796 + #define MAE_MPORT_DESC_V2_MPORT_TYPE_VNIC 0x2 24797 + #define MAE_MPORT_DESC_V2_MPORT_TYPE_LBN 96 24798 + #define MAE_MPORT_DESC_V2_MPORT_TYPE_WIDTH 32 24799 + /* 128-bit value available to drivers for m-port identification. */ 24800 + #define MAE_MPORT_DESC_V2_UUID_OFST 16 24801 + #define MAE_MPORT_DESC_V2_UUID_LEN 16 24802 + #define MAE_MPORT_DESC_V2_UUID_LBN 128 24803 + #define MAE_MPORT_DESC_V2_UUID_WIDTH 128 24804 + /* Big wadge of space reserved for other common properties */ 24805 + #define MAE_MPORT_DESC_V2_RESERVED_OFST 32 24806 + #define MAE_MPORT_DESC_V2_RESERVED_LEN 8 24807 + #define MAE_MPORT_DESC_V2_RESERVED_LO_OFST 32 24808 + #define MAE_MPORT_DESC_V2_RESERVED_LO_LEN 4 24809 + #define MAE_MPORT_DESC_V2_RESERVED_LO_LBN 256 24810 + #define MAE_MPORT_DESC_V2_RESERVED_LO_WIDTH 32 24811 + #define MAE_MPORT_DESC_V2_RESERVED_HI_OFST 36 24812 + #define MAE_MPORT_DESC_V2_RESERVED_HI_LEN 4 24813 + #define MAE_MPORT_DESC_V2_RESERVED_HI_LBN 288 24814 + #define MAE_MPORT_DESC_V2_RESERVED_HI_WIDTH 32 24815 + #define MAE_MPORT_DESC_V2_RESERVED_LBN 256 24816 + #define MAE_MPORT_DESC_V2_RESERVED_WIDTH 64 24817 + /* Logical port index. Only valid when type NET Port. */ 24818 + #define MAE_MPORT_DESC_V2_NET_PORT_IDX_OFST 40 24819 + #define MAE_MPORT_DESC_V2_NET_PORT_IDX_LEN 4 24820 + #define MAE_MPORT_DESC_V2_NET_PORT_IDX_LBN 320 24821 + #define MAE_MPORT_DESC_V2_NET_PORT_IDX_WIDTH 32 24822 + /* The m-port delivered to */ 24823 + #define MAE_MPORT_DESC_V2_ALIAS_DELIVER_MPORT_ID_OFST 40 24824 + #define MAE_MPORT_DESC_V2_ALIAS_DELIVER_MPORT_ID_LEN 4 24825 + #define MAE_MPORT_DESC_V2_ALIAS_DELIVER_MPORT_ID_LBN 320 24826 + #define MAE_MPORT_DESC_V2_ALIAS_DELIVER_MPORT_ID_WIDTH 32 24827 + /* The type of thing that owns the VNIC */ 24828 + #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_OFST 40 24829 + #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_LEN 4 24830 + #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_FUNCTION 0x1 /* enum */ 24831 + #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_PLUGIN 0x2 /* enum */ 24832 + #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_LBN 320 24833 + #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_WIDTH 32 24834 + /* The PCIe interface on which the function lives. CJK: We need an enumeration 24835 + * of interfaces that we extend as new interface (types) appear. This belongs 24836 + * elsewhere and should be referenced from here 24837 + */ 24838 + #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_INTERFACE_OFST 44 24839 + #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_INTERFACE_LEN 4 24840 + #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_INTERFACE_LBN 352 24841 + #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_INTERFACE_WIDTH 32 24842 + #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_PF_IDX_OFST 48 24843 + #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_PF_IDX_LEN 2 24844 + #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_PF_IDX_LBN 384 24845 + #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_PF_IDX_WIDTH 16 24846 + #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_VF_IDX_OFST 50 24847 + #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_VF_IDX_LEN 2 24848 + /* enum: Indicates that the function is a PF */ 24849 + #define MAE_MPORT_DESC_V2_VF_IDX_NULL 0xffff 24850 + #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_VF_IDX_LBN 400 24851 + #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_VF_IDX_WIDTH 16 24852 + /* Reserved. Should be ignored for now. */ 24853 + #define MAE_MPORT_DESC_V2_VNIC_PLUGIN_TBD_OFST 44 24854 + #define MAE_MPORT_DESC_V2_VNIC_PLUGIN_TBD_LEN 4 24855 + #define MAE_MPORT_DESC_V2_VNIC_PLUGIN_TBD_LBN 352 24856 + #define MAE_MPORT_DESC_V2_VNIC_PLUGIN_TBD_WIDTH 32 24857 + /* A client handle for the VNIC's owner. Only valid for type VNIC. */ 24858 + #define MAE_MPORT_DESC_V2_VNIC_CLIENT_HANDLE_OFST 52 24859 + #define MAE_MPORT_DESC_V2_VNIC_CLIENT_HANDLE_LEN 4 24860 + #define MAE_MPORT_DESC_V2_VNIC_CLIENT_HANDLE_LBN 416 24861 + #define MAE_MPORT_DESC_V2_VNIC_CLIENT_HANDLE_WIDTH 32 24862 + 24863 + 24864 + /***********************************/ 24865 + /* MC_CMD_MAE_MPORT_ENUMERATE 24866 + * Deprecated in favour of MAE_MPORT_READ_JOURNAL. Support for this command 24867 + * will be removed at some future point. 24868 + */ 24869 + #define MC_CMD_MAE_MPORT_ENUMERATE 0x17c 24870 + #undef MC_CMD_0x17c_PRIVILEGE_CTG 24871 + 24872 + #define MC_CMD_0x17c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24873 + 24874 + /* MC_CMD_MAE_MPORT_ENUMERATE_IN msgrequest */ 24875 + #define MC_CMD_MAE_MPORT_ENUMERATE_IN_LEN 0 24876 + 24877 + /* MC_CMD_MAE_MPORT_ENUMERATE_OUT msgresponse */ 24878 + #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_LENMIN 8 24879 + #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_LENMAX 252 24880 + #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_LENMAX_MCDI2 1020 24881 + #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_LEN(num) (8+1*(num)) 24882 + #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_NUM(len) (((len)-8)/1) 24883 + #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_COUNT_OFST 0 24884 + #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_COUNT_LEN 4 24885 + #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_SIZEOF_MPORT_DESC_OFST 4 24886 + #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_SIZEOF_MPORT_DESC_LEN 4 24887 + /* Any array of MAE_MPORT_DESC structures. The MAE_MPORT_DESC structure may 24888 + * grow in future version of this command. Drivers should use a stride of 24889 + * SIZEOF_MPORT_DESC. Fields beyond SIZEOF_MPORT_DESC are not present. 24890 + */ 24891 + #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_OFST 8 24892 + #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_LEN 1 24893 + #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_MINNUM 0 24894 + #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_MAXNUM 244 24895 + #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_MAXNUM_MCDI2 1012 24896 + 24897 + 24898 + /***********************************/ 24899 + /* MC_CMD_MAE_MPORT_READ_JOURNAL 24900 + * Firmware maintains a per-client journal of mport creations and deletions. 24901 + * This journal is clear-on-read, i.e. repeated calls of this command will 24902 + * drain the buffer. Whenever the caller resets its function via FLR or 24903 + * MC_CMD_ENTITY_RESET, the journal is regenerated from a blank start. 24904 + */ 24905 + #define MC_CMD_MAE_MPORT_READ_JOURNAL 0x147 24906 + #undef MC_CMD_0x147_PRIVILEGE_CTG 24907 + 24908 + #define MC_CMD_0x147_PRIVILEGE_CTG SRIOV_CTG_MAE 24909 + 24910 + /* MC_CMD_MAE_MPORT_READ_JOURNAL_IN msgrequest */ 24911 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_IN_LEN 4 24912 + /* Any unused flags are reserved and must be set to zero. */ 24913 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_IN_FLAGS_OFST 0 24914 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_IN_FLAGS_LEN 4 24915 + 24916 + /* MC_CMD_MAE_MPORT_READ_JOURNAL_OUT msgresponse */ 24917 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LENMIN 12 24918 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LENMAX 252 24919 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LENMAX_MCDI2 1020 24920 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LEN(num) (12+1*(num)) 24921 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_NUM(len) (((len)-12)/1) 24922 + /* Any unused flags are reserved and must be ignored. */ 24923 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_FLAGS_OFST 0 24924 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_FLAGS_LEN 4 24925 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MORE_OFST 0 24926 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MORE_LBN 0 24927 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MORE_WIDTH 1 24928 + /* The number of MAE_MPORT_DESC structures in MPORT_DESC_DATA. May be zero. */ 24929 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_COUNT_OFST 4 24930 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_COUNT_LEN 4 24931 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_SIZEOF_MPORT_DESC_OFST 8 24932 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_SIZEOF_MPORT_DESC_LEN 4 24933 + /* Any array of MAE_MPORT_DESC structures. The MAE_MPORT_DESC structure may 24934 + * grow in future version of this command. Drivers should use a stride of 24935 + * SIZEOF_MPORT_DESC. Fields beyond SIZEOF_MPORT_DESC are not present. 24936 + */ 24937 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_OFST 12 24938 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_LEN 1 24939 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_MINNUM 0 24940 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_MAXNUM 240 24941 + #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_MAXNUM_MCDI2 1008 24942 + 24943 + /* TABLE_FIELD_DESCR structuredef: An individual table field descriptor. This 24944 + * describes the location and properties of one N-bit field within a wider 24945 + * M-bit key/mask/response value. 24946 + */ 24947 + #define TABLE_FIELD_DESCR_LEN 8 24948 + /* Identifier for this field. */ 24949 + #define TABLE_FIELD_DESCR_FIELD_ID_OFST 0 24950 + #define TABLE_FIELD_DESCR_FIELD_ID_LEN 2 24951 + /* Enum values, see field(s): */ 24952 + /* TABLE_FIELD_ID */ 24953 + #define TABLE_FIELD_DESCR_FIELD_ID_LBN 0 24954 + #define TABLE_FIELD_DESCR_FIELD_ID_WIDTH 16 24955 + /* Lowest (least significant) bit number of the bits of this field. */ 24956 + #define TABLE_FIELD_DESCR_LBN_OFST 2 24957 + #define TABLE_FIELD_DESCR_LBN_LEN 2 24958 + #define TABLE_FIELD_DESCR_LBN_LBN 16 24959 + #define TABLE_FIELD_DESCR_LBN_WIDTH 16 24960 + /* Width of this field in bits. */ 24961 + #define TABLE_FIELD_DESCR_WIDTH_OFST 4 24962 + #define TABLE_FIELD_DESCR_WIDTH_LEN 2 24963 + #define TABLE_FIELD_DESCR_WIDTH_LBN 32 24964 + #define TABLE_FIELD_DESCR_WIDTH_WIDTH 16 24965 + /* The mask type for this field. (Note that masking is relevant to keys; fields 24966 + * of responses are always reported with the EXACT type.) 24967 + */ 24968 + #define TABLE_FIELD_DESCR_MASK_TYPE_OFST 6 24969 + #define TABLE_FIELD_DESCR_MASK_TYPE_LEN 1 24970 + /* enum: Field must never be selected in the mask. */ 24971 + #define TABLE_FIELD_DESCR_MASK_NEVER 0x0 24972 + /* enum: Exact match: field must always be selected in the mask. */ 24973 + #define TABLE_FIELD_DESCR_MASK_EXACT 0x1 24974 + /* enum: Ternary match: arbitrary mask bits are allowed. */ 24975 + #define TABLE_FIELD_DESCR_MASK_TERNARY 0x2 24976 + /* enum: Whole field match: mask must be all 1 bits, or all 0 bits. */ 24977 + #define TABLE_FIELD_DESCR_MASK_WHOLE_FIELD 0x3 24978 + /* enum: Longest prefix match: mask must be 1 bit(s) followed by 0 bit(s). */ 24979 + #define TABLE_FIELD_DESCR_MASK_LPM 0x4 24980 + #define TABLE_FIELD_DESCR_MASK_TYPE_LBN 48 24981 + #define TABLE_FIELD_DESCR_MASK_TYPE_WIDTH 8 24982 + /* A version code that allows field semantics to be extended. All fields 24983 + * currently use version 0. 24984 + */ 24985 + #define TABLE_FIELD_DESCR_SCHEME_OFST 7 24986 + #define TABLE_FIELD_DESCR_SCHEME_LEN 1 24987 + #define TABLE_FIELD_DESCR_SCHEME_LBN 56 24988 + #define TABLE_FIELD_DESCR_SCHEME_WIDTH 8 24989 + 24990 + 24991 + /***********************************/ 24992 + /* MC_CMD_TABLE_LIST 24993 + * Return the list of tables which may be accessed via this table API. 24994 + */ 24995 + #define MC_CMD_TABLE_LIST 0x1c9 24996 + #undef MC_CMD_0x1c9_PRIVILEGE_CTG 24997 + 24998 + #define MC_CMD_0x1c9_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24999 + 25000 + /* MC_CMD_TABLE_LIST_IN msgrequest */ 25001 + #define MC_CMD_TABLE_LIST_IN_LEN 4 25002 + /* Index of the first item to be returned in the TABLE_ID sequence. (Set to 0 25003 + * for the first call; further calls are only required if the whole sequence 25004 + * does not fit within the maximum MCDI message size.) 25005 + */ 25006 + #define MC_CMD_TABLE_LIST_IN_FIRST_TABLE_ID_INDEX_OFST 0 25007 + #define MC_CMD_TABLE_LIST_IN_FIRST_TABLE_ID_INDEX_LEN 4 25008 + 25009 + /* MC_CMD_TABLE_LIST_OUT msgresponse */ 25010 + #define MC_CMD_TABLE_LIST_OUT_LENMIN 4 25011 + #define MC_CMD_TABLE_LIST_OUT_LENMAX 252 25012 + #define MC_CMD_TABLE_LIST_OUT_LENMAX_MCDI2 1020 25013 + #define MC_CMD_TABLE_LIST_OUT_LEN(num) (4+4*(num)) 25014 + #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_NUM(len) (((len)-4)/4) 25015 + /* The total number of tables. */ 25016 + #define MC_CMD_TABLE_LIST_OUT_N_TABLES_OFST 0 25017 + #define MC_CMD_TABLE_LIST_OUT_N_TABLES_LEN 4 25018 + /* A sequence of table identifiers. If all N_TABLES items do not fit, further 25019 + * items can be obtained by repeating the call with a non-zero 25020 + * FIRST_TABLE_ID_INDEX. 25021 + */ 25022 + #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_OFST 4 25023 + #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_LEN 4 25024 + #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_MINNUM 0 25025 + #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_MAXNUM 62 25026 + #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_MAXNUM_MCDI2 254 25027 + /* Enum values, see field(s): */ 25028 + /* TABLE_ID */ 25029 + 25030 + 25031 + /***********************************/ 25032 + /* MC_CMD_TABLE_DESCRIPTOR 25033 + * Request the table descriptor for a particular table. This describes 25034 + * properties of the table and the format of the key and response. May return 25035 + * EINVAL for unknown table ID. 25036 + */ 25037 + #define MC_CMD_TABLE_DESCRIPTOR 0x1ca 25038 + #undef MC_CMD_0x1ca_PRIVILEGE_CTG 25039 + 25040 + #define MC_CMD_0x1ca_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25041 + 25042 + /* MC_CMD_TABLE_DESCRIPTOR_IN msgrequest */ 25043 + #define MC_CMD_TABLE_DESCRIPTOR_IN_LEN 8 25044 + /* Identifier for this field. */ 25045 + #define MC_CMD_TABLE_DESCRIPTOR_IN_TABLE_ID_OFST 0 25046 + #define MC_CMD_TABLE_DESCRIPTOR_IN_TABLE_ID_LEN 4 25047 + /* Enum values, see field(s): */ 25048 + /* TABLE_ID */ 25049 + /* Index of the first item to be returned in the FIELDS sequence. (Set to 0 for 25050 + * the first call; further calls are only required if the whole sequence does 25051 + * not fit within the maximum MCDI message size.) 25052 + */ 25053 + #define MC_CMD_TABLE_DESCRIPTOR_IN_FIRST_FIELDS_INDEX_OFST 4 25054 + #define MC_CMD_TABLE_DESCRIPTOR_IN_FIRST_FIELDS_INDEX_LEN 4 25055 + 25056 + /* MC_CMD_TABLE_DESCRIPTOR_OUT msgresponse */ 25057 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_LENMIN 28 25058 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_LENMAX 252 25059 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_LENMAX_MCDI2 1020 25060 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_LEN(num) (20+8*(num)) 25061 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_NUM(len) (((len)-20)/8) 25062 + /* Maximum number of entries in this table. */ 25063 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_MAX_ENTRIES_OFST 0 25064 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_MAX_ENTRIES_LEN 4 25065 + /* The type of table. (This is really just informational; the important 25066 + * properties of a table that affect programming can be deduced from other 25067 + * items in the table or field descriptor.) 25068 + */ 25069 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_OFST 4 25070 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_LEN 2 25071 + /* enum: Direct table (essentially just an array). Behaves like a BCAM for 25072 + * programming purposes, where the fact that the key is actually used as an 25073 + * array index is really just an implementation detail. 25074 + */ 25075 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_DIRECT 0x1 25076 + /* enum: BCAM (binary CAM) table: exact match on all key fields." */ 25077 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_BCAM 0x2 25078 + /* enum: TCAM (ternary CAM) table: matches fields with a mask. Each entry may 25079 + * have its own different mask. 25080 + */ 25081 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_TCAM 0x3 25082 + /* enum: STCAM (semi-TCAM) table: like a TCAM but entries shared a limited 25083 + * number of unique masks. 25084 + */ 25085 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_STCAM 0x4 25086 + /* Width of key (and corresponding mask, for TCAM or STCAM) in bits. */ 25087 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_KEY_WIDTH_OFST 6 25088 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_KEY_WIDTH_LEN 2 25089 + /* Width of response in bits. */ 25090 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_RESP_WIDTH_OFST 8 25091 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_RESP_WIDTH_LEN 2 25092 + /* The total number of fields in the key. */ 25093 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_KEY_FIELDS_OFST 10 25094 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_KEY_FIELDS_LEN 2 25095 + /* The total number of fields in the response. */ 25096 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_RESP_FIELDS_OFST 12 25097 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_RESP_FIELDS_LEN 2 25098 + /* Number of priorities for STCAM or TCAM; otherwise 0. The priority of a table 25099 + * entry (relevant when more than one masked entry matches) ranges from 25100 + * 0=highest to N_PRIORITIES-1=lowest. 25101 + */ 25102 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_PRIORITIES_OFST 14 25103 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_PRIORITIES_LEN 2 25104 + /* Maximum number of masks for STCAM; otherwise 0. */ 25105 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_MAX_MASKS_OFST 16 25106 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_MAX_MASKS_LEN 2 25107 + /* Flags. */ 25108 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_FLAGS_OFST 18 25109 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_FLAGS_LEN 1 25110 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_ALLOC_MASKS_OFST 18 25111 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_ALLOC_MASKS_LBN 0 25112 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_ALLOC_MASKS_WIDTH 1 25113 + /* Access scheme version code, allowing the method of accessing table entries 25114 + * to change semantics in future. A client which does not understand the value 25115 + * of this field should assume that it cannot program this table. Currently 25116 + * always set to 0 indicating the original MC_CMD_TABLE_INSERT/UPDATE/DELETE 25117 + * semantics. 25118 + */ 25119 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_SCHEME_OFST 19 25120 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_SCHEME_LEN 1 25121 + /* A sequence of TABLE_FIELD_DESCR structures: N_KEY_FIELDS items describing 25122 + * the key, followed by N_RESP_FIELDS items describing the response. If all 25123 + * N_KEY_FIELDS+N_RESP_FIELDS items do not fit, further items can be obtained 25124 + * by repeating the call with a non-zero FIRST_FIELDS_INDEX. 25125 + */ 25126 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_OFST 20 25127 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_LEN 8 25128 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_LO_OFST 20 25129 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_LO_LEN 4 25130 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_LO_LBN 160 25131 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_LO_WIDTH 32 25132 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_HI_OFST 24 25133 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_HI_LEN 4 25134 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_HI_LBN 192 25135 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_HI_WIDTH 32 25136 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_MINNUM 1 25137 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_MAXNUM 29 25138 + #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_MAXNUM_MCDI2 125 25139 + 25140 + 25141 + /***********************************/ 25142 + /* MC_CMD_TABLE_INSERT 25143 + * Insert a new entry into a table. The entry must not currently exist. May 25144 + * return EINVAL for unknown table ID or other bad request parameters, EEXIST 25145 + * if the entry already exists, ENOSPC if there is no space or EPERM if the 25146 + * operation is not permitted. In case of an error, the additional MCDI error 25147 + * argument field returns the raw error code from the underlying CAM driver. 25148 + */ 25149 + #define MC_CMD_TABLE_INSERT 0x1cd 25150 + #undef MC_CMD_0x1cd_PRIVILEGE_CTG 25151 + 25152 + #define MC_CMD_0x1cd_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25153 + 25154 + /* MC_CMD_TABLE_INSERT_IN msgrequest */ 25155 + #define MC_CMD_TABLE_INSERT_IN_LENMIN 16 25156 + #define MC_CMD_TABLE_INSERT_IN_LENMAX 252 25157 + #define MC_CMD_TABLE_INSERT_IN_LENMAX_MCDI2 1020 25158 + #define MC_CMD_TABLE_INSERT_IN_LEN(num) (12+4*(num)) 25159 + #define MC_CMD_TABLE_INSERT_IN_DATA_NUM(len) (((len)-12)/4) 25160 + /* Table identifier. */ 25161 + #define MC_CMD_TABLE_INSERT_IN_TABLE_ID_OFST 0 25162 + #define MC_CMD_TABLE_INSERT_IN_TABLE_ID_LEN 4 25163 + /* Enum values, see field(s): */ 25164 + /* TABLE_ID */ 25165 + /* Width in bits of supplied key data (must match table properties). */ 25166 + #define MC_CMD_TABLE_INSERT_IN_KEY_WIDTH_OFST 4 25167 + #define MC_CMD_TABLE_INSERT_IN_KEY_WIDTH_LEN 2 25168 + /* Width in bits of supplied mask data (0 for direct/BCAM tables, or for STCAM 25169 + * when allocated MASK_ID is used instead). 25170 + */ 25171 + #define MC_CMD_TABLE_INSERT_IN_MASK_WIDTH_OFST 6 25172 + #define MC_CMD_TABLE_INSERT_IN_MASK_WIDTH_LEN 2 25173 + /* Width in bits of supplied response data (for INSERT and UPDATE operations 25174 + * this must match the table properties; for DELETE operations, no response 25175 + * data is required and this must be 0). 25176 + */ 25177 + #define MC_CMD_TABLE_INSERT_IN_RESP_WIDTH_OFST 8 25178 + #define MC_CMD_TABLE_INSERT_IN_RESP_WIDTH_LEN 2 25179 + /* Mask ID for STCAM table - used instead of mask data if the table descriptor 25180 + * reports ALLOC_MASKS==1. Otherwise set to 0. 25181 + */ 25182 + #define MC_CMD_TABLE_INSERT_IN_MASK_ID_OFST 6 25183 + #define MC_CMD_TABLE_INSERT_IN_MASK_ID_LEN 2 25184 + /* Priority for TCAM or STCAM, in range 0..N_PRIORITIES-1, otherwise 0. */ 25185 + #define MC_CMD_TABLE_INSERT_IN_PRIORITY_OFST 8 25186 + #define MC_CMD_TABLE_INSERT_IN_PRIORITY_LEN 2 25187 + /* (32-bit alignment padding - set to 0) */ 25188 + #define MC_CMD_TABLE_INSERT_IN_RESERVED_OFST 10 25189 + #define MC_CMD_TABLE_INSERT_IN_RESERVED_LEN 2 25190 + /* Sequence of key, mask (if MASK_WIDTH > 0), and response (if RESP_WIDTH > 0) 25191 + * data values. Each of these items is logically treated as a single wide N-bit 25192 + * value, in which the individual fields have been placed within that value per 25193 + * the LBN and WIDTH information from the table field descriptors. The wide 25194 + * N-bit value is padded with 0 bits at the MSB end if necessary to make a 25195 + * multiple of 32 bits. The value is then packed into this command as a 25196 + * sequence of 32-bit words, bits [31:0] first, then bits [63:32], etc. 25197 + */ 25198 + #define MC_CMD_TABLE_INSERT_IN_DATA_OFST 12 25199 + #define MC_CMD_TABLE_INSERT_IN_DATA_LEN 4 25200 + #define MC_CMD_TABLE_INSERT_IN_DATA_MINNUM 1 25201 + #define MC_CMD_TABLE_INSERT_IN_DATA_MAXNUM 60 25202 + #define MC_CMD_TABLE_INSERT_IN_DATA_MAXNUM_MCDI2 252 25203 + 25204 + /* MC_CMD_TABLE_INSERT_OUT msgresponse */ 25205 + #define MC_CMD_TABLE_INSERT_OUT_LEN 0 25206 + 25207 + 25208 + /***********************************/ 25209 + /* MC_CMD_TABLE_UPDATE 25210 + * Update an existing entry in a table with a new response value. May return 25211 + * EINVAL for unknown table ID or other bad request parameters, ENOENT if the 25212 + * entry does not already exist, or EPERM if the operation is not permitted. In 25213 + * case of an error, the additional MCDI error argument field returns the raw 25214 + * error code from the underlying CAM driver. 25215 + */ 25216 + #define MC_CMD_TABLE_UPDATE 0x1ce 25217 + #undef MC_CMD_0x1ce_PRIVILEGE_CTG 25218 + 25219 + #define MC_CMD_0x1ce_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25220 + 25221 + /* MC_CMD_TABLE_UPDATE_IN msgrequest */ 25222 + #define MC_CMD_TABLE_UPDATE_IN_LENMIN 16 25223 + #define MC_CMD_TABLE_UPDATE_IN_LENMAX 252 25224 + #define MC_CMD_TABLE_UPDATE_IN_LENMAX_MCDI2 1020 25225 + #define MC_CMD_TABLE_UPDATE_IN_LEN(num) (12+4*(num)) 25226 + #define MC_CMD_TABLE_UPDATE_IN_DATA_NUM(len) (((len)-12)/4) 25227 + /* Table identifier. */ 25228 + #define MC_CMD_TABLE_UPDATE_IN_TABLE_ID_OFST 0 25229 + #define MC_CMD_TABLE_UPDATE_IN_TABLE_ID_LEN 4 25230 + /* Enum values, see field(s): */ 25231 + /* TABLE_ID */ 25232 + /* Width in bits of supplied key data (must match table properties). */ 25233 + #define MC_CMD_TABLE_UPDATE_IN_KEY_WIDTH_OFST 4 25234 + #define MC_CMD_TABLE_UPDATE_IN_KEY_WIDTH_LEN 2 25235 + /* Width in bits of supplied mask data (0 for direct/BCAM tables, or for STCAM 25236 + * when allocated MASK_ID is used instead). 25237 + */ 25238 + #define MC_CMD_TABLE_UPDATE_IN_MASK_WIDTH_OFST 6 25239 + #define MC_CMD_TABLE_UPDATE_IN_MASK_WIDTH_LEN 2 25240 + /* Width in bits of supplied response data (for INSERT and UPDATE operations 25241 + * this must match the table properties; for DELETE operations, no response 25242 + * data is required and this must be 0). 25243 + */ 25244 + #define MC_CMD_TABLE_UPDATE_IN_RESP_WIDTH_OFST 8 25245 + #define MC_CMD_TABLE_UPDATE_IN_RESP_WIDTH_LEN 2 25246 + /* Mask ID for STCAM table - used instead of mask data if the table descriptor 25247 + * reports ALLOC_MASKS==1. Otherwise set to 0. 25248 + */ 25249 + #define MC_CMD_TABLE_UPDATE_IN_MASK_ID_OFST 6 25250 + #define MC_CMD_TABLE_UPDATE_IN_MASK_ID_LEN 2 25251 + /* Priority for TCAM or STCAM, in range 0..N_PRIORITIES-1, otherwise 0. */ 25252 + #define MC_CMD_TABLE_UPDATE_IN_PRIORITY_OFST 8 25253 + #define MC_CMD_TABLE_UPDATE_IN_PRIORITY_LEN 2 25254 + /* (32-bit alignment padding - set to 0) */ 25255 + #define MC_CMD_TABLE_UPDATE_IN_RESERVED_OFST 10 25256 + #define MC_CMD_TABLE_UPDATE_IN_RESERVED_LEN 2 25257 + /* Sequence of key, mask (if MASK_WIDTH > 0), and response (if RESP_WIDTH > 0) 25258 + * data values. Each of these items is logically treated as a single wide N-bit 25259 + * value, in which the individual fields have been placed within that value per 25260 + * the LBN and WIDTH information from the table field descriptors. The wide 25261 + * N-bit value is padded with 0 bits at the MSB end if necessary to make a 25262 + * multiple of 32 bits. The value is then packed into this command as a 25263 + * sequence of 32-bit words, bits [31:0] first, then bits [63:32], etc. 25264 + */ 25265 + #define MC_CMD_TABLE_UPDATE_IN_DATA_OFST 12 25266 + #define MC_CMD_TABLE_UPDATE_IN_DATA_LEN 4 25267 + #define MC_CMD_TABLE_UPDATE_IN_DATA_MINNUM 1 25268 + #define MC_CMD_TABLE_UPDATE_IN_DATA_MAXNUM 60 25269 + #define MC_CMD_TABLE_UPDATE_IN_DATA_MAXNUM_MCDI2 252 25270 + 25271 + /* MC_CMD_TABLE_UPDATE_OUT msgresponse */ 25272 + #define MC_CMD_TABLE_UPDATE_OUT_LEN 0 25273 + 25274 + 25275 + /***********************************/ 25276 + /* MC_CMD_TABLE_DELETE 25277 + * Delete an existing entry in a table. May return EINVAL for unknown table ID 25278 + * or other bad request parameters, ENOENT if the entry does not exist, or 25279 + * EPERM if the operation is not permitted. In case of an error, the additional 25280 + * MCDI error argument field returns the raw error code from the underlying CAM 25281 + * driver. 25282 + */ 25283 + #define MC_CMD_TABLE_DELETE 0x1cf 25284 + #undef MC_CMD_0x1cf_PRIVILEGE_CTG 25285 + 25286 + #define MC_CMD_0x1cf_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25287 + 25288 + /* MC_CMD_TABLE_DELETE_IN msgrequest */ 25289 + #define MC_CMD_TABLE_DELETE_IN_LENMIN 16 25290 + #define MC_CMD_TABLE_DELETE_IN_LENMAX 252 25291 + #define MC_CMD_TABLE_DELETE_IN_LENMAX_MCDI2 1020 25292 + #define MC_CMD_TABLE_DELETE_IN_LEN(num) (12+4*(num)) 25293 + #define MC_CMD_TABLE_DELETE_IN_DATA_NUM(len) (((len)-12)/4) 25294 + /* Table identifier. */ 25295 + #define MC_CMD_TABLE_DELETE_IN_TABLE_ID_OFST 0 25296 + #define MC_CMD_TABLE_DELETE_IN_TABLE_ID_LEN 4 25297 + /* Enum values, see field(s): */ 25298 + /* TABLE_ID */ 25299 + /* Width in bits of supplied key data (must match table properties). */ 25300 + #define MC_CMD_TABLE_DELETE_IN_KEY_WIDTH_OFST 4 25301 + #define MC_CMD_TABLE_DELETE_IN_KEY_WIDTH_LEN 2 25302 + /* Width in bits of supplied mask data (0 for direct/BCAM tables, or for STCAM 25303 + * when allocated MASK_ID is used instead). 25304 + */ 25305 + #define MC_CMD_TABLE_DELETE_IN_MASK_WIDTH_OFST 6 25306 + #define MC_CMD_TABLE_DELETE_IN_MASK_WIDTH_LEN 2 25307 + /* Width in bits of supplied response data (for INSERT and UPDATE operations 25308 + * this must match the table properties; for DELETE operations, no response 25309 + * data is required and this must be 0). 25310 + */ 25311 + #define MC_CMD_TABLE_DELETE_IN_RESP_WIDTH_OFST 8 25312 + #define MC_CMD_TABLE_DELETE_IN_RESP_WIDTH_LEN 2 25313 + /* Mask ID for STCAM table - used instead of mask data if the table descriptor 25314 + * reports ALLOC_MASKS==1. Otherwise set to 0. 25315 + */ 25316 + #define MC_CMD_TABLE_DELETE_IN_MASK_ID_OFST 6 25317 + #define MC_CMD_TABLE_DELETE_IN_MASK_ID_LEN 2 25318 + /* Priority for TCAM or STCAM, in range 0..N_PRIORITIES-1, otherwise 0. */ 25319 + #define MC_CMD_TABLE_DELETE_IN_PRIORITY_OFST 8 25320 + #define MC_CMD_TABLE_DELETE_IN_PRIORITY_LEN 2 25321 + /* (32-bit alignment padding - set to 0) */ 25322 + #define MC_CMD_TABLE_DELETE_IN_RESERVED_OFST 10 25323 + #define MC_CMD_TABLE_DELETE_IN_RESERVED_LEN 2 25324 + /* Sequence of key, mask (if MASK_WIDTH > 0), and response (if RESP_WIDTH > 0) 25325 + * data values. Each of these items is logically treated as a single wide N-bit 25326 + * value, in which the individual fields have been placed within that value per 25327 + * the LBN and WIDTH information from the table field descriptors. The wide 25328 + * N-bit value is padded with 0 bits at the MSB end if necessary to make a 25329 + * multiple of 32 bits. The value is then packed into this command as a 25330 + * sequence of 32-bit words, bits [31:0] first, then bits [63:32], etc. 25331 + */ 25332 + #define MC_CMD_TABLE_DELETE_IN_DATA_OFST 12 25333 + #define MC_CMD_TABLE_DELETE_IN_DATA_LEN 4 25334 + #define MC_CMD_TABLE_DELETE_IN_DATA_MINNUM 1 25335 + #define MC_CMD_TABLE_DELETE_IN_DATA_MAXNUM 60 25336 + #define MC_CMD_TABLE_DELETE_IN_DATA_MAXNUM_MCDI2 252 25337 + 25338 + /* MC_CMD_TABLE_DELETE_OUT msgresponse */ 25339 + #define MC_CMD_TABLE_DELETE_OUT_LEN 0 26330 25340 26331 25341 26332 25342 #endif /* MCDI_PCOL_H */