/* SPDX-License-Identifier: GPL-2.0-only */ /**************************************************************************** * Driver for Solarflare network controllers and boards * Copyright 2009-2018 Solarflare Communications Inc. * Copyright 2019-2020 Xilinx Inc.
*/
#ifndef MCDI_PCOL_H #define MCDI_PCOL_H
/* Values to be written into FMCR_CZ_RESET_STATE_REG to control boot. */ /* Power-on reset state */ #define MC_FW_STATE_POR (1) /* If this is set in MC_RESET_STATE_REG then it should be
* possible to jump into IMEM without loading code from flash. */ #define MC_FW_WARM_BOOT_OK (2) /* The MC main image has started to boot. */ #define MC_FW_STATE_BOOTING (4) /* The Scheduler has started. */ #define MC_FW_STATE_SCHED (8) /* If this is set in MC_RESET_STATE_REG then it should be * possible to jump into IMEM without loading code from flash. * Unlike a warm boot, assume DMEM has been reloaded, so that
* the MC persistent data must be reinitialised. */ #define MC_FW_TEPID_BOOT_OK (16) /* We have entered the main firmware via recovery mode. This * means that MC persistent data must be reinitialised, but that
* we shouldn't touch PCIe config. */ #define MC_FW_RECOVERY_MODE_PCIE_INIT_OK (32) /* BIST state has been initialized */ #define MC_FW_BIST_INIT_OK (128)
/* Siena MC shared memmory offsets */ /* The 'doorbell' addresses are hard-wired to alert the MC when written */ #define MC_SMEM_P0_DOORBELL_OFST 0x000 #define MC_SMEM_P1_DOORBELL_OFST 0x004 /* The rest of these are firmware-defined */ #define MC_SMEM_P0_PDU_OFST 0x008 #define MC_SMEM_P1_PDU_OFST 0x108 #define MC_SMEM_PDU_LEN 0x100 #define MC_SMEM_P0_PTP_TIME_OFST 0x7f0 #define MC_SMEM_P0_STATUS_OFST 0x7f8 #define MC_SMEM_P1_STATUS_OFST 0x7fc
/* Values to be written to the per-port status dword in shared
* memory on reboot and assert */ #define MC_STATUS_DWORD_REBOOT (0xb007b007) #define MC_STATUS_DWORD_ASSERT (0xdeaddead)
/* Check whether an mcfw version (in host order) belongs to a bootloader */ #define MC_FW_VERSION_IS_BOOTLOADER(_v) (((_v) >> 16) == 0xb007)
/* The current version of the MCDI protocol. * * Note that the ROM burnt into the card only talks V0, so at the very * least every driver must support version 0 and MCDI_PCOL_VERSION
*/ #define MCDI_PCOL_VERSION 2
/* Unused commands: 0x23, 0x27, 0x30, 0x31 */
/* MCDI version 1 * * Each MCDI request starts with an MCDI_HEADER, which is a 32bit * structure, filled in by the client. * * 0 7 8 16 20 22 23 24 31 * | CODE | R | LEN | SEQ | Rsvd | E | R | XFLAGS | * | | | * | | \--- Response * | \------- Error * \------------------------------ Resync (always set) * * The client writes its request into MC shared memory, and rings the * doorbell. Each request is completed either by the MC writing * back into shared memory, or by writing out an event. * * All MCDI commands support completion by shared memory response. Each * request may also contain additional data (accounted for by HEADER.LEN), * and some responses may also contain additional data (again, accounted * for by HEADER.LEN). * * Some MCDI commands support completion by event, in which any associated * response data is included in the event. * * The protocol requires one response to be delivered for every request; a * request should not be sent unless the response for the previous request * has been received (either by polling shared memory, or by receiving * an event).
*/
/* The MC can generate events for two reasons: * - To advance a shared memory request if XFLAGS_EVREQ was set * - As a notification (link state, i2c event), controlled * via MC_CMD_LOG_CTRL * * Both events share a common structure: * * 0 32 33 36 44 52 60 * | Data | Cont | Level | Src | Code | Rsvd | * | * \ There is another event pending in this notification * * If Code==CMDDONE, then the fields are further interpreted as: * * - LEVEL==INFO Command succeeded * - LEVEL==ERR Command failed * * 0 8 16 24 32 * | Seq | Datalen | Errno | Rsvd | * * These fields are taken directly out of the standard MCDI header, i.e., * LEVEL==ERR, Datalen == 0 => Reboot * * Events can be squirted out of the UART (using LOG_CTRL) without a * MCDI header. An event can be distinguished from a MCDI response by * examining the first byte which is 0xc0. This corresponds to the * non-existent MCDI command MC_CMD_DEBUG_LOG. * * 0 7 8 * | command | Resync | = 0xc0 * * Since the event is written in big-endian byte order, this works * providing bits 56-63 of the event are 0xc0. * * 56 60 63 * | Rsvd | Code | = 0xc0 * * Which means for convenience the event code is 0xc for all MC * generated events.
*/ #define FSE_AZ_EV_CODE_MCDI_EVRESPONSE 0xc
/* This may be ORed with an EVB_PORT_ID_xxx constant to pass a non-default * stack ID (which must be in the range 1-255) along with an EVB port ID.
*/ #define EVB_STACK_ID(n) (((n) & 0xff) << 16)
/* Version 2 adds an optional argument to error returns: the errno value * may be followed by the (0-based) number of the first argument that * could not be processed.
*/ #define MC_CMD_ERR_ARG_OFST 4
/* MC_CMD_ERR enum: Public MCDI error codes. Error codes that correspond to * POSIX errnos should use the same numeric values that linux does. Error codes * specific to Solarflare firmware should use values in the range 0x1000 - * 0x10ff. The range 0x2000 - 0x20ff is reserved for private error codes (see * MC_CMD_ERR_PRIV below).
*/ /* enum: Operation not permitted. */ #define MC_CMD_ERR_EPERM 0x1 /* enum: Non-existent command target */ #define MC_CMD_ERR_ENOENT 0x2 /* enum: assert() has killed the MC */ #define MC_CMD_ERR_EINTR 0x4 /* enum: I/O failure */ #define MC_CMD_ERR_EIO 0x5 /* enum: Already exists */ #define MC_CMD_ERR_EEXIST 0x6 /* enum: Try again */ #define MC_CMD_ERR_EAGAIN 0xb /* enum: Out of memory */ #define MC_CMD_ERR_ENOMEM 0xc /* enum: Caller does not hold required locks */ #define MC_CMD_ERR_EACCES 0xd /* enum: Resource is currently unavailable (e.g. lock contention) */ #define MC_CMD_ERR_EBUSY 0x10 /* enum: No such device */ #define MC_CMD_ERR_ENODEV 0x13 /* enum: Invalid argument to target */ #define MC_CMD_ERR_EINVAL 0x16 /* enum: No space */ #define MC_CMD_ERR_ENOSPC 0x1c /* enum: Read-only */ #define MC_CMD_ERR_EROFS 0x1e /* enum: Broken pipe */ #define MC_CMD_ERR_EPIPE 0x20 /* enum: Out of range */ #define MC_CMD_ERR_ERANGE 0x22 /* enum: Non-recursive resource is already acquired */ #define MC_CMD_ERR_EDEADLK 0x23 /* enum: Operation not implemented */ #define MC_CMD_ERR_ENOSYS 0x26 /* enum: Operation timed out */ #define MC_CMD_ERR_ETIME 0x3e /* enum: Link has been severed */ #define MC_CMD_ERR_ENOLINK 0x43 /* enum: Protocol error */ #define MC_CMD_ERR_EPROTO 0x47 /* enum: Bad message */ #define MC_CMD_ERR_EBADMSG 0x4a /* enum: Operation not supported */ #define MC_CMD_ERR_ENOTSUP 0x5f /* enum: Address not available */ #define MC_CMD_ERR_EADDRNOTAVAIL 0x63 /* enum: Not connected */ #define MC_CMD_ERR_ENOTCONN 0x6b /* enum: Operation already in progress */ #define MC_CMD_ERR_EALREADY 0x72 /* enum: Stale handle. The handle references a resource that no longer exists.
*/ #define MC_CMD_ERR_ESTALE 0x74 /* enum: Resource allocation failed. */ #define MC_CMD_ERR_ALLOC_FAIL 0x1000 /* enum: V-adaptor not found. */ #define MC_CMD_ERR_NO_VADAPTOR 0x1001 /* enum: EVB port not found. */ #define MC_CMD_ERR_NO_EVB_PORT 0x1002 /* enum: V-switch not found. */ #define MC_CMD_ERR_NO_VSWITCH 0x1003 /* enum: Too many VLAN tags. */ #define MC_CMD_ERR_VLAN_LIMIT 0x1004 /* enum: Bad PCI function number. */ #define MC_CMD_ERR_BAD_PCI_FUNC 0x1005 /* enum: Invalid VLAN mode. */ #define MC_CMD_ERR_BAD_VLAN_MODE 0x1006 /* enum: Invalid v-switch type. */ #define MC_CMD_ERR_BAD_VSWITCH_TYPE 0x1007 /* enum: Invalid v-port type. */ #define MC_CMD_ERR_BAD_VPORT_TYPE 0x1008 /* enum: MAC address exists. */ #define MC_CMD_ERR_MAC_EXIST 0x1009 /* enum: Slave core not present */ #define MC_CMD_ERR_SLAVE_NOT_PRESENT 0x100a /* enum: The datapath is disabled. */ #define MC_CMD_ERR_DATAPATH_DISABLED 0x100b /* enum: The requesting client is not a function */ #define MC_CMD_ERR_CLIENT_NOT_FN 0x100c /* enum: The requested operation might require the command to be passed between * MCs, and the transport doesn't support that. Should only ever been seen over * the UART.
*/ #define MC_CMD_ERR_TRANSPORT_NOPROXY 0x100d /* enum: VLAN tag(s) exists */ #define MC_CMD_ERR_VLAN_EXIST 0x100e /* enum: No MAC address assigned to an EVB port */ #define MC_CMD_ERR_NO_MAC_ADDR 0x100f /* enum: Notifies the driver that the request has been relayed to an admin * function for authorization. The driver should wait for a PROXY_RESPONSE * event and then resend its request. This error code is followed by a 32-bit * handle that helps matching it with the respective PROXY_RESPONSE event.
*/ #define MC_CMD_ERR_PROXY_PENDING 0x1010 /* enum: The request cannot be passed for authorization because another request * from the same function is currently being authorized. The drvier should try * again later.
*/ #define MC_CMD_ERR_PROXY_INPROGRESS 0x1011 /* enum: Returned by MC_CMD_PROXY_COMPLETE if the caller is not the function * that has enabled proxying or BLOCK_INDEX points to a function that doesn't * await an authorization.
*/ #define MC_CMD_ERR_PROXY_UNEXPECTED 0x1012 /* enum: This code is currently only used internally in FW. Its meaning is that * an operation failed due to lack of SR-IOV privilege. Normally it is * translated to EPERM by send_cmd_err(), but it may also be used to trigger * some special mechanism for handling such case, e.g. to relay the failed * request to a designated admin function for authorization.
*/ #define MC_CMD_ERR_NO_PRIVILEGE 0x1013 /* enum: Workaround 26807 could not be turned on/off because some functions * have already installed filters. See the comment at * MC_CMD_WORKAROUND_BUG26807. May also returned for other operations such as * sub-variant switching.
*/ #define MC_CMD_ERR_FILTERS_PRESENT 0x1014 /* enum: The clock whose frequency you've attempted to set doesn't exist on * this NIC
*/ #define MC_CMD_ERR_NO_CLOCK 0x1015 /* enum: Returned by MC_CMD_TESTASSERT if the action that should have caused an * assertion failed to do so.
*/ #define MC_CMD_ERR_UNREACHABLE 0x1016 /* enum: This command needs to be processed in the background but there were no * resources to do so. Send it again after a command has completed.
*/ #define MC_CMD_ERR_QUEUE_FULL 0x1017 /* enum: The operation could not be completed because the PCIe link has gone * away. This error code is never expected to be returned over the TLP * transport.
*/ #define MC_CMD_ERR_NO_PCIE 0x1018 /* enum: The operation could not be completed because the datapath has gone * away. This is distinct from MC_CMD_ERR_DATAPATH_DISABLED in that the * datapath absence may be temporary
*/ #define MC_CMD_ERR_NO_DATAPATH 0x1019 /* enum: The operation could not complete because some VIs are allocated */ #define MC_CMD_ERR_VIS_PRESENT 0x101a /* enum: The operation could not complete because some PIO buffers are * allocated
*/ #define MC_CMD_ERR_PIOBUFS_PRESENT 0x101b
/* PCIE_INTERFACE enum: From EF100 onwards, SFC products can have multiple PCIe * interfaces. There is a need to refer to interfaces explicitly from drivers * (for example, a management driver on one interface administering a function * on another interface). This enumeration provides stable identifiers to all * interfaces present on a product. Product documentation will specify which * interfaces exist and their associated identifier. In general, drivers, * should not assign special meanings to specific values. Instead, behaviour * should be determined by NIC configuration, which will identify interfaces * where appropriate.
*/ /* enum: Primary host interfaces. Typically (i.e. for all known SFC products) * the interface exposed on the edge connector (or form factor equivalent).
*/ #define PCIE_INTERFACE_HOST_PRIMARY 0x0 /* enum: Riverhead and keystone products have a second PCIe interface to which * an on-NIC ARM module is expected to be connected.
*/ #define PCIE_INTERFACE_NIC_EMBEDDED 0x1 /* enum: The PCIe logical interface 0. It is an alias for HOST_PRIMARY. */ #define PCIE_INTERFACE_PCIE_HOST_INTF_0 0x0 /* enum: The PCIe logical interface 1. */ #define PCIE_INTERFACE_PCIE_HOST_INTF_1 0x2 /* enum: The PCIe logical interface 2. */ #define PCIE_INTERFACE_PCIE_HOST_INTF_2 0x3 /* enum: The PCIe logical interface 3. */ #define PCIE_INTERFACE_PCIE_HOST_INTF_3 0x4 /* enum: For MCDI commands issued over a PCIe interface, this value is * translated into the interface over which the command was issued. Not * meaningful for other MCDI transports.
*/ #define PCIE_INTERFACE_CALLER 0xffffffff
/* MC_CLIENT_ID_SPECIFIER enum */ /* enum: Equivalent to the caller's client ID */ #define MC_CMD_CLIENT_ID_SELF 0xffffffff
/* MAE_FIELD_SUPPORT_STATUS enum */ /* enum: The NIC does not support this field. The driver must ensure that any * mask associated with this field in a match rule is zeroed. The NIC may * either reject requests with an invalid mask for such a field, or may assume * that the mask is zero. (This category only exists to describe behaviour for * fields that a newer driver might know about but that older firmware does * not. It is recommended that firmware report MAE_FIELD_FIELD_MATCH_NEVER for * all match fields defined at the time of its compilation. If a driver see a * field support status value that it does not recognise, it must treat that * field as thought the field was reported as MAE_FIELD_SUPPORTED_MATCH_NEVER, * and must never set a non-zero mask value for this field.
*/ #define MAE_FIELD_UNSUPPORTED 0x0 /* enum: The NIC supports this field, but cannot use it in a match rule. The * driver must ensure that any mask for such a field in a match rule is zeroed. * The NIC will reject requests with an invalid mask for such a field.
*/ #define MAE_FIELD_SUPPORTED_MATCH_NEVER 0x1 /* enum: The NIC supports this field, and must use it in all match rules. The * driver must ensure that any mask for such a field is all ones. The NIC will * reject requests with an invalid mask for such a field.
*/ #define MAE_FIELD_SUPPORTED_MATCH_ALWAYS 0x2 /* enum: The NIC supports this field, and may optionally use it in match rules. * The driver must ensure that any mask for such a field is either all zeroes * or all ones. The NIC will reject requests with an invalid mask for such a * field.
*/ #define MAE_FIELD_SUPPORTED_MATCH_OPTIONAL 0x3 /* enum: The NIC supports this field, and may optionally use it in match rules. * The driver must ensure that any mask for such a field is either all zeroes * or a consecutive set of ones following by all zeroes (starting from MSB). * The NIC will reject requests with an invalid mask for such a field.
*/ #define MAE_FIELD_SUPPORTED_MATCH_PREFIX 0x4 /* enum: The NIC supports this field, and may optionally use it in match rules. * The driver may provide an arbitrary mask for such a field.
*/ #define MAE_FIELD_SUPPORTED_MATCH_MASK 0x5
/* MAE_CT_VNI_MODE enum: Controls the layout of the VNI input to the conntrack * lookup. (Values are not arbitrary - constrained by table access ABI.)
*/ /* enum: The VNI input to the conntrack lookup will be zero. */ #define MAE_CT_VNI_MODE_ZERO 0x0 /* enum: The VNI input to the conntrack lookup will be the VNI (VXLAN/Geneve) * or VSID (NVGRE) field from the packet.
*/ #define MAE_CT_VNI_MODE_VNI 0x1 /* enum: The VNI input to the conntrack lookup will be the VLAN ID from the * outermost VLAN tag (in bottom 12 bits; top 12 bits zero).
*/ #define MAE_CT_VNI_MODE_1VLAN 0x2 /* enum: The VNI input to the conntrack lookup will be the VLAN IDs from both * VLAN tags (outermost in bottom 12 bits, innermost in top 12 bits).
*/ #define MAE_CT_VNI_MODE_2VLAN 0x3
/* MAE_FIELD enum: NB: this enum shares namespace with the support status enum.
*/ /* enum: Source mport upon entering the MAE. */ #define MAE_FIELD_INGRESS_PORT 0x0 #define MAE_FIELD_MARK 0x1 /* enum */ /* enum: Table ID used in action rule. Initially zero, can be changed in action * rule response.
*/ #define MAE_FIELD_RECIRC_ID 0x2 #define MAE_FIELD_IS_IP_FRAG 0x3 /* enum */ #define MAE_FIELD_DO_CT 0x4 /* enum */ #define MAE_FIELD_CT_HIT 0x5 /* enum */ /* enum: Undefined unless CT_HIT=1. */ #define MAE_FIELD_CT_MARK 0x6 /* enum: Undefined unless DO_CT=1. */ #define MAE_FIELD_CT_DOMAIN 0x7 /* enum: Undefined unless CT_HIT=1. */ #define MAE_FIELD_CT_PRIVATE_FLAGS 0x8 /* enum: 1 if the packet ingressed the NIC from one of the MACs, else 0. */ #define MAE_FIELD_IS_FROM_NETWORK 0x9 /* enum: 1 if the packet has 1 or more VLAN tags, else 0. */ #define MAE_FIELD_HAS_OVLAN 0xa /* enum: 1 if the packet has 2 or more VLAN tags, else 0. */ #define MAE_FIELD_HAS_IVLAN 0xb /* enum: 1 if the outer packet has 1 or more VLAN tags, else 0; only present * when encap
*/ #define MAE_FIELD_ENC_HAS_OVLAN 0xc /* enum: 1 if the outer packet has 2 or more VLAN tags, else 0; only present * when encap
*/ #define MAE_FIELD_ENC_HAS_IVLAN 0xd /* enum: Packet is IP fragment */ #define MAE_FIELD_ENC_IP_FRAG 0xe #define MAE_FIELD_ETHER_TYPE 0x21 /* enum */ #define MAE_FIELD_VLAN0_TCI 0x22 /* enum */ #define MAE_FIELD_VLAN0_PROTO 0x23 /* enum */ #define MAE_FIELD_VLAN1_TCI 0x24 /* enum */ #define MAE_FIELD_VLAN1_PROTO 0x25 /* enum */ /* enum: Inner when encap */ #define MAE_FIELD_ETH_SADDR 0x28 /* enum: Inner when encap */ #define MAE_FIELD_ETH_DADDR 0x29 /* enum: Inner when encap. NB: IPv4 and IPv6 fields are mutually exclusive. */ #define MAE_FIELD_SRC_IP4 0x2a /* enum: Inner when encap */ #define MAE_FIELD_SRC_IP6 0x2b /* enum: Inner when encap */ #define MAE_FIELD_DST_IP4 0x2c /* enum: Inner when encap */ #define MAE_FIELD_DST_IP6 0x2d /* enum: Inner when encap */ #define MAE_FIELD_IP_PROTO 0x2e /* enum: Inner when encap */ #define MAE_FIELD_IP_TOS 0x2f /* enum: Inner when encap */ #define MAE_FIELD_IP_TTL 0x30 /* enum: Inner when encap TODO: how this is defined? The raw flags + * frag_offset from the packet, or some derived value more amenable to ternary * matching? TODO: there was a proposal for driver-allocation fields. The * driver would provide some instruction for how to extract given field values, * and would be given a field id in return. It could then use that field id in * its matches. This feels like it would be extremely hard to implement in * hardware, but I mention it for completeness.
*/ #define MAE_FIELD_IP_FLAGS 0x31 /* enum: Ports (UDP, TCP) Inner when encap */ #define MAE_FIELD_L4_SPORT 0x32 /* enum: Ports (UDP, TCP) Inner when encap */ #define MAE_FIELD_L4_DPORT 0x33 /* enum: Inner when encap */ #define MAE_FIELD_TCP_FLAGS 0x34 /* enum: TCP packet with any of SYN, FIN or RST flag set */ #define MAE_FIELD_TCP_SYN_FIN_RST 0x35 /* enum: Packet is IP fragment with fragment offset 0 */ #define MAE_FIELD_IP_FIRST_FRAG 0x36 /* enum: The type of encapsulated used for this packet. Value as per * ENCAP_TYPE_*.
*/ #define MAE_FIELD_ENCAP_TYPE 0x3f /* enum: The ID of the outer rule that marked this packet as encapsulated. * Useful for implicitly matching on outer fields.
*/ #define MAE_FIELD_OUTER_RULE_ID 0x40 /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_ETHER_TYPE 0x41 /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_VLAN0_TCI 0x42 /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_VLAN0_PROTO 0x43 /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_VLAN1_TCI 0x44 /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_VLAN1_PROTO 0x45 /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_ETH_SADDR 0x48 /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_ETH_DADDR 0x49 /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_SRC_IP4 0x4a /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_SRC_IP6 0x4b /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_DST_IP4 0x4c /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_DST_IP6 0x4d /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_IP_PROTO 0x4e /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_IP_TOS 0x4f /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_IP_TTL 0x50 /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_IP_FLAGS 0x51 /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_L4_SPORT 0x52 /* enum: Outer; only present when encap */ #define MAE_FIELD_ENC_L4_DPORT 0x53 /* enum: VNI (when VXLAN or GENEVE) VSID (when NVGRE) Bottom 24 bits of Key * (when L2GRE) Outer; only present when encap
*/ #define MAE_FIELD_ENC_VNET_ID 0x54
/* MAE_MCDI_ENCAP_TYPE enum: Encapsulation type. Defines how the payload will * be parsed to an inner frame. Other values are reserved. Unknown values * should be treated same as NONE. (Values are not arbitrary - constrained by * table access ABI.)
*/ #define MAE_MCDI_ENCAP_TYPE_NONE 0x0 /* enum */ /* enum: Don't assume enum aligns with support bitmask... */ #define MAE_MCDI_ENCAP_TYPE_VXLAN 0x1 #define MAE_MCDI_ENCAP_TYPE_NVGRE 0x2 /* enum */ #define MAE_MCDI_ENCAP_TYPE_GENEVE 0x3 /* enum */ #define MAE_MCDI_ENCAP_TYPE_L2GRE 0x4 /* enum */
/* MAE_MPORT_END enum: Selects which end of the logical link identified by an * MPORT_SELECTOR is targeted by an operation.
*/ /* enum: Selects the port on the MAE virtual switch */ #define MAE_MPORT_END_MAE 0x1 /* enum: Selects the virtual NIC plugged into the MAE switch */ #define MAE_MPORT_END_VNIC 0x2
/* MAE_COUNTER_TYPE enum: The datapath maintains several sets of counters, each * being associated with a different table. Note that the same counter ID may * be allocated by different counter blocks, so e.g. AR counter 42 is different * from CT counter 42. Generation counts are also type-specific. This value is * also present in the header of streaming counter packets, in the IDENTIFIER * field (see packetiser packet format definitions). Also note that LACP * counter IDs are not allocated individually, instead the counter IDs are * directly tied to the LACP balance table indices. These in turn are allocated * in large contiguous blocks as a LAG config. Calling MAE_COUNTER_ALLOC/FREE * with an LACP counter type will return EPERM.
*/ /* enum: Action Rule counters - can be referenced in AR response. */ #define MAE_COUNTER_TYPE_AR 0x0 /* enum: Conntrack counters - can be referenced in CT response. */ #define MAE_COUNTER_TYPE_CT 0x1 /* enum: Outer Rule counters - can be referenced in OR response. */ #define MAE_COUNTER_TYPE_OR 0x2 /* enum: LACP counters - linked to LACP balance table entries. */ #define MAE_COUNTER_TYPE_LACP 0x3
/* MAE_COUNTER_ID enum: ID of allocated counter or counter list. */ /* enum: A counter ID that is guaranteed never to represent a real counter or * counter list.
*/ #define MAE_COUNTER_ID_NULL 0xffffffff
/* TABLE_ID enum: Unique IDs for tables. The 32-bit ID values have been * structured with bits [31:24] reserved (0), [23:16] indicating which major * block the tables belongs to (0=VNIC TX, none currently; 1=MAE; 2=VNIC RX), * [15:8] a unique ID within the block, and [7:0] reserved for future * variations of the same table. (All of the tables currently defined within * the streaming engines are listed here, but this does not imply that they are * all supported - MC_CMD_TABLE_LIST returns the list of actually supported * tables.) The DPU offload engines' enumerators follow a deliberate pattern: * 0x01010000 + is_dpu_net * 0x10000 + is_wr_or_tx * 0x8000 + is_lite_pipe * * 0x1000 + oe_engine_type * 0x100 + oe_instance_within_pipe * 0x10
*/ /* enum: Outer_Rule_Table in the MAE - refer to SF-123102-TC. */ #define TABLE_ID_OUTER_RULE_TABLE 0x10000 /* enum: Outer_Rule_No_CT_Table in the MAE - refer to SF-123102-TC. */ #define TABLE_ID_OUTER_RULE_NO_CT_TABLE 0x10100 /* enum: Mgmt_Filter_Table in the MAE - refer to SF-123102-TC. */ #define TABLE_ID_MGMT_FILTER_TABLE 0x10200 /* enum: Conntrack_Table in the MAE - refer to SF-123102-TC. */ #define TABLE_ID_CONNTRACK_TABLE 0x10300 /* enum: Action_Rule_Table in the MAE - refer to SF-123102-TC. */ #define TABLE_ID_ACTION_RULE_TABLE 0x10400 /* enum: Mgroup_Default_Action_Set_Table in the MAE - refer to SF-123102-TC. */ #define TABLE_ID_MGROUP_DEFAULT_ACTION_SET_TABLE 0x10500 /* enum: Encap_Hdr_Part1_Table in the MAE - refer to SF-123102-TC. */ #define TABLE_ID_ENCAP_HDR_PART1_TABLE 0x10600 /* enum: Encap_Hdr_Part2_Table in the MAE - refer to SF-123102-TC. */ #define TABLE_ID_ENCAP_HDR_PART2_TABLE 0x10700 /* enum: Replace_Src_MAC_Table in the MAE - refer to SF-123102-TC. */ #define TABLE_ID_REPLACE_SRC_MAC_TABLE 0x10800 /* enum: Replace_Dst_MAC_Table in the MAE - refer to SF-123102-TC. */ #define TABLE_ID_REPLACE_DST_MAC_TABLE 0x10900 /* enum: Dst_Mport_VC_Table in the MAE - refer to SF-123102-TC. */ #define TABLE_ID_DST_MPORT_VC_TABLE 0x10a00 /* enum: LACP_LAG_Config_Table in the MAE - refer to SF-123102-TC. */ #define TABLE_ID_LACP_LAG_CONFIG_TABLE 0x10b00 /* enum: LACP_Balance_Table in the MAE - refer to SF-123102-TC. */ #define TABLE_ID_LACP_BALANCE_TABLE 0x10c00 /* enum: Dst_Mport_Host_Chan_Table in the MAE - refer to SF-123102-TC. */ #define TABLE_ID_DST_MPORT_HOST_CHAN_TABLE 0x10d00 /* enum: VNIC_Rx_Encap_Table in VNIC Rx - refer to SF-123102-TC. */ #define TABLE_ID_VNIC_RX_ENCAP_TABLE 0x20000 /* enum: Steering_Table in VNIC Rx - refer to SF-123102-TC. */ #define TABLE_ID_STEERING_TABLE 0x20100 /* enum: RSS_Context_Table in VNIC Rx - refer to SF-123102-TC. */ #define TABLE_ID_RSS_CONTEXT_TABLE 0x20200 /* enum: Indirection_Table in VNIC Rx - refer to SF-123102-TC. */ #define TABLE_ID_INDIRECTION_TABLE 0x20300 /* enum: DPU.host read pipe first CRC offload engine profiles - refer to * XN-200147-AN.
*/ #define TABLE_ID_DPU_HOST_RD_CRC0_OE_PROFILE 0x1010000 /* enum: DPU.host read pipe second CRC offload engine profiles - refer to * XN-200147-AN.
*/ #define TABLE_ID_DPU_HOST_RD_CRC1_OE_PROFILE 0x1010010 /* enum: DPU.host write pipe first CRC offload engine profiles - refer to * XN-200147-AN.
*/ #define TABLE_ID_DPU_HOST_WR_CRC0_OE_PROFILE 0x1018000 /* enum: DPU.host write pipe second CRC offload engine profiles - refer to * XN-200147-AN.
*/ #define TABLE_ID_DPU_HOST_WR_CRC1_OE_PROFILE 0x1018010 /* enum: DPU.net 'full' receive pipe CRC offload engine profiles - refer to * XN-200147-AN.
*/ #define TABLE_ID_DPU_NET_RX_CRC0_OE_PROFILE 0x1020000 /* enum: DPU.net 'full' receive pipe first checksum offload engine profiles - * refer to XN-200147-AN.
*/ #define TABLE_ID_DPU_NET_RX_CSUM0_OE_PROFILE 0x1020100 /* enum: DPU.net 'full' receive pipe second checksum offload engine profiles - * refer to XN-200147-AN.
*/ #define TABLE_ID_DPU_NET_RX_CSUM1_OE_PROFILE 0x1020110 /* enum: DPU.net 'full' receive pipe AES-GCM offload engine profiles - refer to * XN-200147-AN.
*/ #define TABLE_ID_DPU_NET_RX_AES_GCM0_OE_PROFILE 0x1020200 /* enum: DPU.net 'lite' receive pipe CRC offload engine profiles - refer to * XN-200147-AN.
*/ #define TABLE_ID_DPU_NET_RXLITE_CRC0_OE_PROFILE 0x1021000 /* enum: DPU.net 'lite' receive pipe checksum offload engine profiles - refer * to XN-200147-AN.
*/ #define TABLE_ID_DPU_NET_RXLITE_CSUM0_OE_PROFILE 0x1021100 /* enum: DPU.net 'full' transmit pipe CRC offload engine profiles - refer to * XN-200147-AN.
*/ #define TABLE_ID_DPU_NET_TX_CRC0_OE_PROFILE 0x1028000 /* enum: DPU.net 'full' transmit pipe first checksum offload engine profiles - * refer to XN-200147-AN.
*/ #define TABLE_ID_DPU_NET_TX_CSUM0_OE_PROFILE 0x1028100 /* enum: DPU.net 'full' transmit pipe second checksum offload engine profiles - * refer to XN-200147-AN.
*/ #define TABLE_ID_DPU_NET_TX_CSUM1_OE_PROFILE 0x1028110 /* enum: DPU.net 'full' transmit pipe AES-GCM offload engine profiles - refer * to XN-200147-AN.
*/ #define TABLE_ID_DPU_NET_TX_AES_GCM0_OE_PROFILE 0x1028200 /* enum: DPU.net 'lite' transmit pipe CRC offload engine profiles - refer to * XN-200147-AN.
*/ #define TABLE_ID_DPU_NET_TXLITE_CRC0_OE_PROFILE 0x1029000 /* enum: DPU.net 'lite' transmit pipe checksum offload engine profiles - refer * to XN-200147-AN.
*/ #define TABLE_ID_DPU_NET_TXLITE_CSUM0_OE_PROFILE 0x1029100
/* TABLE_FIELD_ID enum: Unique IDs for fields. Related concepts have been * loosely grouped together into blocks with gaps for expansion, but the values * are arbitrary. Field IDs are not specific to particular tables, and in some * cases this sharing means that they are not used with the exact names of the * corresponding table definitions in SF-123102-TC; however, the mapping should * still be clear. The intent is that a list of fields, with their associated * bit widths and semantics version code, unambiguously defines the semantics * of the fields in a key or response. (Again, this list includes all of the * fields currently defined within the streaming engines, but only a subset may * actually be used by the supported list of tables.)
*/ /* enum: May appear multiple times within a key or response, and indicates that * the field is unused and should be set to 0 (or masked out if permitted by * the MASK_VALUE for this field).
*/ #define TABLE_FIELD_ID_UNUSED 0x0 /* enum: Source m-port (a full m-port label). */ #define TABLE_FIELD_ID_SRC_MPORT 0x1 /* enum: Destination m-port (a full m-port label). */ #define TABLE_FIELD_ID_DST_MPORT 0x2 /* enum: Source m-group ID. */ #define TABLE_FIELD_ID_SRC_MGROUP_ID 0x3 /* enum: Physical network port ID (or m-port ID; same thing, for physical * network ports).
*/ #define TABLE_FIELD_ID_NETWORK_PORT_ID 0x4 /* enum: True if packet arrived via network port, false if it arrived via host.
*/ #define TABLE_FIELD_ID_IS_FROM_NETWORK 0x5 /* enum: Full virtual channel from capsule header. */ #define TABLE_FIELD_ID_CH_VC 0x6 /* enum: Low bits of virtual channel from capsule header. */ #define TABLE_FIELD_ID_CH_VC_LOW 0x7 /* enum: User mark value in metadata and packet prefix. */ #define TABLE_FIELD_ID_USER_MARK 0x8 /* enum: User flag value in metadata and packet prefix. */ #define TABLE_FIELD_ID_USER_FLAG 0x9 /* enum: Counter ID associated with a response. All-bits-1 is a null value to * suppress counting.
*/ #define TABLE_FIELD_ID_COUNTER_ID 0xa /* enum: Discriminator which may be set by plugins in some lookup keys; this * allows plugins to make a reinterpretation of packet fields in these keys * without clashing with the normal interpretation.
*/ #define TABLE_FIELD_ID_DISCRIM 0xb /* enum: Destination MAC address. The mapping from bytes in a frame to the * 48-bit value for this field is in network order, i.e. a MAC address of * AA:BB:CC:DD:EE:FF becomes a 48-bit value of 0xAABBCCDDEEFF.
*/ #define TABLE_FIELD_ID_DST_MAC 0x14 /* enum: Source MAC address (see notes for DST_MAC). */ #define TABLE_FIELD_ID_SRC_MAC 0x15 /* enum: Outer VLAN tag TPID, compressed to an enumeration. */ #define TABLE_FIELD_ID_OVLAN_TPID_COMPRESSED 0x16 /* enum: Full outer VLAN tag TCI (16 bits). */ #define TABLE_FIELD_ID_OVLAN 0x17 /* enum: Outer VLAN ID (least significant 12 bits of full 16-bit TCI) only. */ #define TABLE_FIELD_ID_OVLAN_VID 0x18 /* enum: Inner VLAN tag TPID, compressed to an enumeration. */ #define TABLE_FIELD_ID_IVLAN_TPID_COMPRESSED 0x19 /* enum: Full inner VLAN tag TCI (16 bits). */ #define TABLE_FIELD_ID_IVLAN 0x1a /* enum: Inner VLAN ID (least significant 12 bits of full 16-bit TCI) only. */ #define TABLE_FIELD_ID_IVLAN_VID 0x1b /* enum: Ethertype. */ #define TABLE_FIELD_ID_ETHER_TYPE 0x1c /* enum: Source IP address, either IPv4 or IPv6. The mapping from bytes in a * frame to the 128-bit value for this field is in network order, with IPv4 * addresses assumed to have 12 bytes of trailing zeroes. i.e. the IPv6 address * [2345::6789:ABCD] is 0x2345000000000000000000006789ABCD; the IPv4 address * 192.168.1.2 is 0xC0A80102000000000000000000000000.
*/ #define TABLE_FIELD_ID_SRC_IP 0x1d /* enum: Destination IP address (see notes for SRC_IP). */ #define TABLE_FIELD_ID_DST_IP 0x1e /* enum: IPv4 Type-of-Service or IPv6 Traffic Class field. */ #define TABLE_FIELD_ID_IP_TOS 0x1f /* enum: IP Protocol. */ #define TABLE_FIELD_ID_IP_PROTO 0x20 /* enum: Layer 4 source port. */ #define TABLE_FIELD_ID_SRC_PORT 0x21 /* enum: Layer 4 destination port. */ #define TABLE_FIELD_ID_DST_PORT 0x22 /* enum: TCP flags. */ #define TABLE_FIELD_ID_TCP_FLAGS 0x23 /* enum: Virtual Network Identifier (VXLAN) or Virtual Session ID (NVGRE). */ #define TABLE_FIELD_ID_VNI 0x24 /* enum: True if packet has any tunnel encapsulation header. */ #define TABLE_FIELD_ID_HAS_ENCAP 0x32 /* enum: True if encap header has an outer VLAN tag. */ #define TABLE_FIELD_ID_HAS_ENC_OVLAN 0x33 /* enum: True if encap header has an inner VLAN tag. */ #define TABLE_FIELD_ID_HAS_ENC_IVLAN 0x34 /* enum: True if encap header is some sort of IP. */ #define TABLE_FIELD_ID_HAS_ENC_IP 0x35 /* enum: True if encap header is specifically IPv4. */ #define TABLE_FIELD_ID_HAS_ENC_IP4 0x36 /* enum: True if encap header is UDP. */ #define TABLE_FIELD_ID_HAS_ENC_UDP 0x37 /* enum: True if only/inner frame has an outer VLAN tag. */ #define TABLE_FIELD_ID_HAS_OVLAN 0x38 /* enum: True if only/inner frame has an inner VLAN tag. */ #define TABLE_FIELD_ID_HAS_IVLAN 0x39 /* enum: True if only/inner frame is some sort of IP. */ #define TABLE_FIELD_ID_HAS_IP 0x3a /* enum: True if only/inner frame has a recognised L4 IP protocol (TCP or UDP).
*/ #define TABLE_FIELD_ID_HAS_L4 0x3b /* enum: True if only/inner frame is an IP fragment. */ #define TABLE_FIELD_ID_IP_FRAG 0x3c /* enum: True if only/inner frame is the first IP fragment (fragment offset 0).
*/ #define TABLE_FIELD_ID_IP_FIRST_FRAG 0x3d /* enum: True if only/inner frame has an IP Time-To-Live of <= 1. (Note: the * implementation calls this "ip_ttl_is_one" but does in fact match packets * with TTL=0 - which we shouldn't be seeing! - as well.)
*/ #define TABLE_FIELD_ID_IP_TTL_LE_ONE 0x3e /* enum: True if only/inner frame has any of TCP SYN, FIN or RST flags set. */ #define TABLE_FIELD_ID_TCP_INTERESTING_FLAGS 0x3f /* enum: Plugin channel selection. */ #define TABLE_FIELD_ID_RDP_PL_CHAN 0x50 /* enum: Enable update of CH_ROUTE_RDP_C_PL route bit. */ #define TABLE_FIELD_ID_RDP_C_PL_EN 0x51 /* enum: New value of CH_ROUTE_RDP_C_PL route bit. */ #define TABLE_FIELD_ID_RDP_C_PL 0x52 /* enum: Enable update of CH_ROUTE_RDP_D_PL route bit. */ #define TABLE_FIELD_ID_RDP_D_PL_EN 0x53 /* enum: New value of CH_ROUTE_RDP_D_PL route bit. */ #define TABLE_FIELD_ID_RDP_D_PL 0x54 /* enum: Enable update of CH_ROUTE_RDP_OUT_HOST_CHAN route bit. */ #define TABLE_FIELD_ID_RDP_OUT_HOST_CHAN_EN 0x55 /* enum: New value of CH_ROUTE_RDP_OUT_HOST_CHAN route bit. */ #define TABLE_FIELD_ID_RDP_OUT_HOST_CHAN 0x56 /* enum: Recirculation ID for lookup sequences with two action rule lookups. */ #define TABLE_FIELD_ID_RECIRC_ID 0x64 /* enum: Domain ID passed to conntrack and action rule lookups. */ #define TABLE_FIELD_ID_DOMAIN 0x65 /* enum: Construction mode for encap_tunnel_id - see MAE_CT_VNI_MODE enum. */ #define TABLE_FIELD_ID_CT_VNI_MODE 0x66 /* enum: True to inhibit conntrack lookup if TCP SYN, FIN or RST flag is set.
*/ #define TABLE_FIELD_ID_CT_TCP_FLAGS_INHIBIT 0x67 /* enum: True to do conntrack lookups for IPv4 TCP packets. */ #define TABLE_FIELD_ID_DO_CT_IP4_TCP 0x68 /* enum: True to do conntrack lookups for IPv4 UDP packets. */ #define TABLE_FIELD_ID_DO_CT_IP4_UDP 0x69 /* enum: True to do conntrack lookups for IPv6 TCP packets. */ #define TABLE_FIELD_ID_DO_CT_IP6_TCP 0x6a /* enum: True to do conntrack lookups for IPv6 UDP packets. */ #define TABLE_FIELD_ID_DO_CT_IP6_UDP 0x6b /* enum: Outer rule identifier. */ #define TABLE_FIELD_ID_OUTER_RULE_ID 0x6c /* enum: Encapsulation type - see MAE_MCDI_ENCAP_TYPE enum. */ #define TABLE_FIELD_ID_ENCAP_TYPE 0x6d /* enum: Encap tunnel ID for conntrack lookups from VNI, VLAN tag(s), or 0, * depending on CT_VNI_MODE.
*/ #define TABLE_FIELD_ID_ENCAP_TUNNEL_ID 0x78 /* enum: A conntrack entry identifier, passed to plugins. */ #define TABLE_FIELD_ID_CT_ENTRY_ID 0x79 /* enum: Either source or destination NAT replacement port. */ #define TABLE_FIELD_ID_NAT_PORT 0x7a /* enum: Either source or destination NAT replacement IPv4 address. Note that * this is specifically an IPv4 address (IPv6 is not supported for NAT), with * byte mapped to a 32-bit value in network order, i.e. the IPv4 address * 192.168.1.2 is the value 0xC0A80102.
*/ #define TABLE_FIELD_ID_NAT_IP 0x7b /* enum: NAT direction: 0=>source, 1=>destination. */ #define TABLE_FIELD_ID_NAT_DIR 0x7c /* enum: Conntrack mark value, passed to action rule lookup. Note that this is * not related to the "user mark" in the metadata / packet prefix.
*/ #define TABLE_FIELD_ID_CT_MARK 0x7d /* enum: Private flags for conntrack, passed to action rule lookup. */ #define TABLE_FIELD_ID_CT_PRIV_FLAGS 0x7e /* enum: True if the conntrack lookup resulted in a hit. */ #define TABLE_FIELD_ID_CT_HIT 0x7f /* enum: True to suppress delivery when source and destination m-ports match.
*/ #define TABLE_FIELD_ID_SUPPRESS_SELF_DELIVERY 0x8c /* enum: True to perform tunnel decapsulation. */ #define TABLE_FIELD_ID_DO_DECAP 0x8d /* enum: True to copy outer frame DSCP to inner on decap. */ #define TABLE_FIELD_ID_DECAP_DSCP_COPY 0x8e /* enum: True to map outer frame ECN to inner on decap, by RFC 6040 rules. */ #define TABLE_FIELD_ID_DECAP_ECN_RFC6040 0x8f /* enum: True to replace DSCP field. */ #define TABLE_FIELD_ID_DO_REPLACE_DSCP 0x90 /* enum: True to replace ECN field. */ #define TABLE_FIELD_ID_DO_REPLACE_ECN 0x91 /* enum: True to decrement IP Time-To-Live. */ #define TABLE_FIELD_ID_DO_DECR_IP_TTL 0x92 /* enum: True to replace source MAC address. */ #define TABLE_FIELD_ID_DO_SRC_MAC 0x93 /* enum: True to replace destination MAC address. */ #define TABLE_FIELD_ID_DO_DST_MAC 0x94 /* enum: Number of VLAN tags to pop. Valid values are 0, 1, or 2. */ #define TABLE_FIELD_ID_DO_VLAN_POP 0x95 /* enum: Number of VLANs tags to push. Valid values are 0, 1, or 2. */ #define TABLE_FIELD_ID_DO_VLAN_PUSH 0x96 /* enum: True to count this packet. */ #define TABLE_FIELD_ID_DO_COUNT 0x97 /* enum: True to perform tunnel encapsulation. */ #define TABLE_FIELD_ID_DO_ENCAP 0x98 /* enum: True to copy inner frame DSCP to outer on encap. */ #define TABLE_FIELD_ID_ENCAP_DSCP_COPY 0x99 /* enum: True to copy inner frame ECN to outer on encap. */ #define TABLE_FIELD_ID_ENCAP_ECN_COPY 0x9a /* enum: True to deliver the packet (otherwise it is dropped). */ #define TABLE_FIELD_ID_DO_DELIVER 0x9b /* enum: True to set the user flag in the metadata. */ #define TABLE_FIELD_ID_DO_FLAG 0x9c /* enum: True to update the user mark in the metadata. */ #define TABLE_FIELD_ID_DO_MARK 0x9d /* enum: True to override the capsule virtual channel for network deliveries.
*/ #define TABLE_FIELD_ID_DO_SET_NET_CHAN 0x9e /* enum: True to override the reported source m-port for host deliveries. */ #define TABLE_FIELD_ID_DO_SET_SRC_MPORT 0x9f /* enum: Encap header ID for DO_ENCAP, indexing Encap_Hdr_Part1/2_Table. */ #define TABLE_FIELD_ID_ENCAP_HDR_ID 0xaa /* enum: New DSCP value for DO_REPLACE_DSCP. */ #define TABLE_FIELD_ID_DSCP_VALUE 0xab /* enum: If DO_REPLACE_ECN is set, the new value for the ECN field. If * DO_REPLACE_ECN is not set, ECN_CONTROL[0] and ECN_CONTROL[1] are set to * request remapping of ECT0 and ECT1 ECN codepoints respectively to CE.
*/ #define TABLE_FIELD_ID_ECN_CONTROL 0xac /* enum: Source MAC ID for DO_SRC_MAC, indexing Replace_Src_MAC_Table. */ #define TABLE_FIELD_ID_SRC_MAC_ID 0xad /* enum: Destination MAC ID for DO_DST_MAC, indexing Replace_Dst_MAC_Table. */ #define TABLE_FIELD_ID_DST_MAC_ID 0xae /* enum: Parameter for either DO_SET_NET_CHAN (only bottom 6 bits used in this * case) or DO_SET_SRC_MPORT.
*/ #define TABLE_FIELD_ID_REPORTED_SRC_MPORT_OR_NET_CHAN 0xaf /* enum: 64-byte chunk of added encapsulation header. */ #define TABLE_FIELD_ID_CHUNK64 0xb4 /* enum: 32-byte chunk of added encapsulation header. */ #define TABLE_FIELD_ID_CHUNK32 0xb5 /* enum: 16-byte chunk of added encapsulation header. */ #define TABLE_FIELD_ID_CHUNK16 0xb6 /* enum: 8-byte chunk of added encapsulation header. */ #define TABLE_FIELD_ID_CHUNK8 0xb7 /* enum: 4-byte chunk of added encapsulation header. */ #define TABLE_FIELD_ID_CHUNK4 0xb8 /* enum: 2-byte chunk of added encapsulation header. */ #define TABLE_FIELD_ID_CHUNK2 0xb9 /* enum: Added encapsulation header length in words. */ #define TABLE_FIELD_ID_HDR_LEN_W 0xba /* enum: Static value for layer 2/3 LACP hash of the encapsulation header. */ #define TABLE_FIELD_ID_ENC_LACP_HASH_L23 0xbb /* enum: Static value for layer 4 LACP hash of the encapsulation header. */ #define TABLE_FIELD_ID_ENC_LACP_HASH_L4 0xbc /* enum: True to use the static ENC_LACP_HASH values for the encap header * instead of the calculated values for the inner frame when delivering a newly * encapsulated packet to a LAG m-port.
*/ #define TABLE_FIELD_ID_USE_ENC_LACP_HASHES 0xbd /* enum: True to trigger conntrack from first action rule lookup (AR=>CT=>AR * sequence).
*/ #define TABLE_FIELD_ID_DO_CT 0xc8 /* enum: True to perform NAT using parameters from conntrack lookup response.
*/ #define TABLE_FIELD_ID_DO_NAT 0xc9 /* enum: True to trigger recirculated action rule lookup (AR=>AR sequence). */ #define TABLE_FIELD_ID_DO_RECIRC 0xca /* enum: Next action set payload ID for replay. The null value is all-1-bits.
*/ #define TABLE_FIELD_ID_NEXT_ACTION_SET_PAYLOAD 0xcb /* enum: Next action set row ID for replay. The null value is all-1-bits. */ #define TABLE_FIELD_ID_NEXT_ACTION_SET_ROW 0xcc /* enum: Action set payload ID for additional delivery to management CPU. The * null value is all-1-bits.
*/ #define TABLE_FIELD_ID_MC_ACTION_SET_PAYLOAD 0xcd /* enum: Action set row ID for additional delivery to management CPU. The null * value is all-1-bits.
*/ #define TABLE_FIELD_ID_MC_ACTION_SET_ROW 0xce /* enum: True to include layer 4 in LACP hash on delivery to a LAG m-port. */ #define TABLE_FIELD_ID_LACP_INC_L4 0xdc /* enum: True to request that LACP is performed by a plugin. */ #define TABLE_FIELD_ID_LACP_PLUGIN 0xdd /* enum: LACP_Balance_Table base address divided by 64. */ #define TABLE_FIELD_ID_BAL_TBL_BASE_DIV64 0xde /* enum: Length of balance table region: 0=>64, 1=>128, 2=>256. */ #define TABLE_FIELD_ID_BAL_TBL_LEN_ID 0xdf /* enum: LACP LAG ID (i.e. the low 3 bits of LACP LAG mport ID), indexing * LACP_LAG_Config_Table. Refer to SF-123102-TC.
*/ #define TABLE_FIELD_ID_LACP_LAG_ID 0xe0 /* enum: Address in LACP_Balance_Table. The balance table is partitioned * between LAGs according to the settings in LACP_LAG_Config_Table and then * indexed by the LACP hash, providing the mapping to destination mports. Refer * to SF-123102-TC.
*/ #define TABLE_FIELD_ID_BAL_TBL_ADDR 0xe1 /* enum: UDP port to match for UDP-based encapsulations; required to be 0 for * other encapsulation types.
*/ #define TABLE_FIELD_ID_UDP_PORT 0xe6 /* enum: True to perform RSS based on outer fields rather than inner fields. */ #define TABLE_FIELD_ID_RSS_ON_OUTER 0xe7 /* enum: True to perform steering table lookup on outer fields rather than * inner fields.
*/ #define TABLE_FIELD_ID_STEER_ON_OUTER 0xe8 /* enum: Destination queue ID for host delivery. */ #define TABLE_FIELD_ID_DST_QID 0xf0 /* enum: True to drop this packet. */ #define TABLE_FIELD_ID_DROP 0xf1 /* enum: True to strip outer VLAN tag from this packet. */ #define TABLE_FIELD_ID_VLAN_STRIP 0xf2 /* enum: True to override the user mark field with the supplied USER_MARK, or * false to bitwise-OR the USER_MARK into it.
*/ #define TABLE_FIELD_ID_MARK_OVERRIDE 0xf3 /* enum: True to override the user flag field with the supplied USER_FLAG, or * false to bitwise-OR the USER_FLAG into it.
*/ #define TABLE_FIELD_ID_FLAG_OVERRIDE 0xf4 /* enum: RSS context ID, indexing the RSS_Context_Table. */ #define TABLE_FIELD_ID_RSS_CTX_ID 0xfa /* enum: True to enable RSS. */ #define TABLE_FIELD_ID_RSS_EN 0xfb /* enum: Toeplitz hash key. */ #define TABLE_FIELD_ID_KEY 0xfc /* enum: Key mode for IPv4 TCP packets - see TABLE_RSS_KEY_MODE enum. */ #define TABLE_FIELD_ID_TCP_V4_KEY_MODE 0xfd /* enum: Key mode for IPv6 TCP packets - see TABLE_RSS_KEY_MODE enum. */ #define TABLE_FIELD_ID_TCP_V6_KEY_MODE 0xfe /* enum: Key mode for IPv4 UDP packets - see TABLE_RSS_KEY_MODE enum. */ #define TABLE_FIELD_ID_UDP_V4_KEY_MODE 0xff /* enum: Key mode for IPv6 UDP packets - see TABLE_RSS_KEY_MODE enum. */ #define TABLE_FIELD_ID_UDP_V6_KEY_MODE 0x100 /* enum: Key mode for other IPv4 packets - see TABLE_RSS_KEY_MODE enum. */ #define TABLE_FIELD_ID_OTHER_V4_KEY_MODE 0x101 /* enum: Key mode for other IPv6 packets - see TABLE_RSS_KEY_MODE enum. */ #define TABLE_FIELD_ID_OTHER_V6_KEY_MODE 0x102 /* enum: Spreading mode - 0=>indirection; 1=>even. */ #define TABLE_FIELD_ID_SPREAD_MODE 0x103 /* enum: For indirection spreading mode, the base address of a region within * the Indirection_Table. For even spreading mode, the number of queues to * spread across (only values 1-255 are valid for this mode).
*/ #define TABLE_FIELD_ID_INDIR_TBL_BASE 0x104 /* enum: For indirection spreading mode, identifies the length of a region * within the Indirection_Table, where length = 32 << len_id. Must be set to 0 * for even spreading mode.
*/ #define TABLE_FIELD_ID_INDIR_TBL_LEN_ID 0x105 /* enum: An offset to be applied to the base destination queue ID. */ #define TABLE_FIELD_ID_INDIR_OFFSET 0x106 /* enum: DPU offload engine profile ID to address. */ #define TABLE_FIELD_ID_OE_PROFILE 0x3e8 /* enum: Width of the CRC to calculate - see CRC_VARIANT enum. */ #define TABLE_FIELD_ID_CRC_VARIANT 0x3f2 /* enum: If set, reflect the bits of each input byte, bit 7 is LSB, bit 0 is * MSB. If clear, bit 7 is MSB, bit 0 is LSB.
*/ #define TABLE_FIELD_ID_CRC_REFIN 0x3f3 /* enum: If set, reflect the bits of each output byte, bit 7 is LSB, bit 0 is * MSB. If clear, bit 7 is MSB, bit 0 is LSB.
*/ #define TABLE_FIELD_ID_CRC_REFOUT 0x3f4 /* enum: If set, invert every bit of the output value. */ #define TABLE_FIELD_ID_CRC_INVOUT 0x3f5 /* enum: The CRC polynomial to use for checksumming, in normal form. */ #define TABLE_FIELD_ID_CRC_POLY 0x3f6 /* enum: Operation for the checksum engine to perform - see DPU_CSUM_OP enum.
*/ #define TABLE_FIELD_ID_CSUM_OP 0x410 /* enum: Byte offset of checksum relative to region_start (for VALIDATE_* * operations only).
*/ #define TABLE_FIELD_ID_CSUM_OFFSET 0x411 /* enum: Indicates there is additional data on OPR bus that needs to be * incorporated into the payload checksum.
*/ #define TABLE_FIELD_ID_CSUM_OPR_ADDITIONAL_DATA 0x412 /* enum: Log2 data size of additional data on OPR bus. */ #define TABLE_FIELD_ID_CSUM_OPR_DATA_SIZE_LOG2 0x413 /* enum: 4 byte offset of where to find the additional data on the OPR bus. */ #define TABLE_FIELD_ID_CSUM_OPR_4B_OFF 0x414 /* enum: Operation type for the AES-GCM core - see GCM_OP_CODE enum. */ #define TABLE_FIELD_ID_GCM_OP_CODE 0x41a /* enum: Key length - AES_KEY_LEN enum. */ #define TABLE_FIELD_ID_GCM_KEY_LEN 0x41b /* enum: OPR 4 byte offset for ICV or GHASH output (only in BULK_* mode) or * IPSEC descrypt output.
*/ #define TABLE_FIELD_ID_GCM_OPR_4B_OFFSET 0x41c /* enum: If OP_CODE is BULK_*, indicates Emit GHASH (Fragment mode). Else, * indicates IPSEC-ESN mode.
*/ #define TABLE_FIELD_ID_GCM_EMIT_GHASH_ISESN 0x41d /* enum: Replay Protection Enable. */ #define TABLE_FIELD_ID_GCM_REPLAY_PROTECT_EN 0x41e /* enum: IPSEC Encrypt ESP trailer NEXT_HEADER byte. */ #define TABLE_FIELD_ID_GCM_NEXT_HDR 0x41f /* enum: Replay Window Size. */ #define TABLE_FIELD_ID_GCM_REPLAY_WIN_SIZE 0x420
/* MCDI_EVENT structuredef: The structure of an MCDI_EVENT on Siena/EF10/EF100 * platforms
*/ #define MCDI_EVENT_LEN 8 #define MCDI_EVENT_CONT_LBN 32 #define MCDI_EVENT_CONT_WIDTH 1 #define MCDI_EVENT_LEVEL_LBN 33 #define MCDI_EVENT_LEVEL_WIDTH 3 /* enum: Info. */ #define MCDI_EVENT_LEVEL_INFO 0x0 /* enum: Warning. */ #define MCDI_EVENT_LEVEL_WARN 0x1 /* enum: Error. */ #define MCDI_EVENT_LEVEL_ERR 0x2 /* enum: Fatal. */ #define MCDI_EVENT_LEVEL_FATAL 0x3 #define MCDI_EVENT_DATA_OFST 0 #define MCDI_EVENT_DATA_LEN 4 #define MCDI_EVENT_CMDDONE_SEQ_OFST 0 #define MCDI_EVENT_CMDDONE_SEQ_LBN 0 #define MCDI_EVENT_CMDDONE_SEQ_WIDTH 8 #define MCDI_EVENT_CMDDONE_DATALEN_OFST 0 #define MCDI_EVENT_CMDDONE_DATALEN_LBN 8 #define MCDI_EVENT_CMDDONE_DATALEN_WIDTH 8 #define MCDI_EVENT_CMDDONE_ERRNO_OFST 0 #define MCDI_EVENT_CMDDONE_ERRNO_LBN 16 #define MCDI_EVENT_CMDDONE_ERRNO_WIDTH 8 #define MCDI_EVENT_LINKCHANGE_LP_CAP_OFST 0 #define MCDI_EVENT_LINKCHANGE_LP_CAP_LBN 0 #define MCDI_EVENT_LINKCHANGE_LP_CAP_WIDTH 16 #define MCDI_EVENT_LINKCHANGE_SPEED_OFST 0 #define MCDI_EVENT_LINKCHANGE_SPEED_LBN 16 #define MCDI_EVENT_LINKCHANGE_SPEED_WIDTH 4 /* enum: Link is down or link speed could not be determined */ #define MCDI_EVENT_LINKCHANGE_SPEED_UNKNOWN 0x0 /* enum: 100Mbs */ #define MCDI_EVENT_LINKCHANGE_SPEED_100M 0x1 /* enum: 1Gbs */ #define MCDI_EVENT_LINKCHANGE_SPEED_1G 0x2 /* enum: 10Gbs */ #define MCDI_EVENT_LINKCHANGE_SPEED_10G 0x3 /* enum: 40Gbs */ #define MCDI_EVENT_LINKCHANGE_SPEED_40G 0x4 /* enum: 25Gbs */ #define MCDI_EVENT_LINKCHANGE_SPEED_25G 0x5 /* enum: 50Gbs */ #define MCDI_EVENT_LINKCHANGE_SPEED_50G 0x6 /* enum: 100Gbs */ #define MCDI_EVENT_LINKCHANGE_SPEED_100G 0x7 #define MCDI_EVENT_LINKCHANGE_FCNTL_OFST 0 #define MCDI_EVENT_LINKCHANGE_FCNTL_LBN 20 #define MCDI_EVENT_LINKCHANGE_FCNTL_WIDTH 4 #define MCDI_EVENT_LINKCHANGE_LINK_FLAGS_OFST 0 #define MCDI_EVENT_LINKCHANGE_LINK_FLAGS_LBN 24 #define MCDI_EVENT_LINKCHANGE_LINK_FLAGS_WIDTH 8 #define MCDI_EVENT_PORT_LINKCHANGE_PORT_HANDLE_OFST 0 #define MCDI_EVENT_PORT_LINKCHANGE_PORT_HANDLE_LBN 0 #define MCDI_EVENT_PORT_LINKCHANGE_PORT_HANDLE_WIDTH 24 #define MCDI_EVENT_PORT_LINKCHANGE_SEQ_NUM_OFST 0 #define MCDI_EVENT_PORT_LINKCHANGE_SEQ_NUM_LBN 24 #define MCDI_EVENT_PORT_LINKCHANGE_SEQ_NUM_WIDTH 7 #define MCDI_EVENT_PORT_LINKCHANGE_LINK_UP_OFST 0 #define MCDI_EVENT_PORT_LINKCHANGE_LINK_UP_LBN 31 #define MCDI_EVENT_PORT_LINKCHANGE_LINK_UP_WIDTH 1 #define MCDI_EVENT_PORT_MODULECHANGE_PORT_HANDLE_OFST 0 #define MCDI_EVENT_PORT_MODULECHANGE_PORT_HANDLE_LBN 0 #define MCDI_EVENT_PORT_MODULECHANGE_PORT_HANDLE_WIDTH 24 #define MCDI_EVENT_PORT_MODULECHANGE_SEQ_NUM_OFST 0 #define MCDI_EVENT_PORT_MODULECHANGE_SEQ_NUM_LBN 24 #define MCDI_EVENT_PORT_MODULECHANGE_SEQ_NUM_WIDTH 7 #define MCDI_EVENT_PORT_MODULECHANGE_MDI_CONNECTED_OFST 0 #define MCDI_EVENT_PORT_MODULECHANGE_MDI_CONNECTED_LBN 31 #define MCDI_EVENT_PORT_MODULECHANGE_MDI_CONNECTED_WIDTH 1 #define MCDI_EVENT_SENSOREVT_MONITOR_OFST 0 #define MCDI_EVENT_SENSOREVT_MONITOR_LBN 0 #define MCDI_EVENT_SENSOREVT_MONITOR_WIDTH 8 #define MCDI_EVENT_SENSOREVT_STATE_OFST 0 #define MCDI_EVENT_SENSOREVT_STATE_LBN 8 #define MCDI_EVENT_SENSOREVT_STATE_WIDTH 8 #define MCDI_EVENT_SENSOREVT_VALUE_OFST 0 #define MCDI_EVENT_SENSOREVT_VALUE_LBN 16 #define MCDI_EVENT_SENSOREVT_VALUE_WIDTH 16 #define MCDI_EVENT_FWALERT_DATA_OFST 0 #define MCDI_EVENT_FWALERT_DATA_LBN 8 #define MCDI_EVENT_FWALERT_DATA_WIDTH 24 #define MCDI_EVENT_FWALERT_REASON_OFST 0 #define MCDI_EVENT_FWALERT_REASON_LBN 0 #define MCDI_EVENT_FWALERT_REASON_WIDTH 8 /* enum: SRAM Access. */ #define MCDI_EVENT_FWALERT_REASON_SRAM_ACCESS 0x1 #define MCDI_EVENT_FLR_VF_OFST 0 #define MCDI_EVENT_FLR_VF_LBN 0 #define MCDI_EVENT_FLR_VF_WIDTH 8 #define MCDI_EVENT_TX_ERR_TXQ_OFST 0 #define MCDI_EVENT_TX_ERR_TXQ_LBN 0 #define MCDI_EVENT_TX_ERR_TXQ_WIDTH 12 #define MCDI_EVENT_TX_ERR_TYPE_OFST 0 #define MCDI_EVENT_TX_ERR_TYPE_LBN 12 #define MCDI_EVENT_TX_ERR_TYPE_WIDTH 4 /* enum: Descriptor loader reported failure. Specific to EF10-family NICs. */ #define MCDI_EVENT_TX_ERR_DL_FAIL 0x1 /* enum: Descriptor ring empty and no EOP seen for packet. Specific to * EF10-family NICs
*/ #define MCDI_EVENT_TX_ERR_NO_EOP 0x2 /* enum: Overlength packet. Specific to EF10-family NICs. */ #define MCDI_EVENT_TX_ERR_2BIG 0x3 /* enum: Malformed option descriptor. Specific to EF10-family NICs. */ #define MCDI_EVENT_TX_BAD_OPTDESC 0x5 /* enum: Option descriptor part way through a packet. Specific to EF10-family * NICs.
*/ #define MCDI_EVENT_TX_OPT_IN_PKT 0x8 /* enum: DMA or PIO data access error. Specific to EF10-family NICs */ #define MCDI_EVENT_TX_ERR_BAD_DMA_OR_PIO 0x9 #define MCDI_EVENT_TX_ERR_INFO_OFST 0 #define MCDI_EVENT_TX_ERR_INFO_LBN 16 #define MCDI_EVENT_TX_ERR_INFO_WIDTH 16 #define MCDI_EVENT_TX_FLUSH_TO_DRIVER_OFST 0 #define MCDI_EVENT_TX_FLUSH_TO_DRIVER_LBN 12 #define MCDI_EVENT_TX_FLUSH_TO_DRIVER_WIDTH 1 #define MCDI_EVENT_TX_FLUSH_TXQ_OFST 0 #define MCDI_EVENT_TX_FLUSH_TXQ_LBN 0 #define MCDI_EVENT_TX_FLUSH_TXQ_WIDTH 12 #define MCDI_EVENT_PTP_ERR_TYPE_OFST 0 #define MCDI_EVENT_PTP_ERR_TYPE_LBN 0 #define MCDI_EVENT_PTP_ERR_TYPE_WIDTH 8 /* enum: PLL lost lock */ #define MCDI_EVENT_PTP_ERR_PLL_LOST 0x1 /* enum: Filter overflow (PDMA) */ #define MCDI_EVENT_PTP_ERR_FILTER 0x2 /* enum: FIFO overflow (FPGA) */ #define MCDI_EVENT_PTP_ERR_FIFO 0x3 /* enum: Merge queue overflow */ #define MCDI_EVENT_PTP_ERR_QUEUE 0x4 #define MCDI_EVENT_AOE_ERR_TYPE_OFST 0 #define MCDI_EVENT_AOE_ERR_TYPE_LBN 0 #define MCDI_EVENT_AOE_ERR_TYPE_WIDTH 8 /* enum: AOE failed to load - no valid image? */ #define MCDI_EVENT_AOE_NO_LOAD 0x1 /* enum: AOE FC reported an exception */ #define MCDI_EVENT_AOE_FC_ASSERT 0x2 /* enum: AOE FC watchdogged */ #define MCDI_EVENT_AOE_FC_WATCHDOG 0x3 /* enum: AOE FC failed to start */ #define MCDI_EVENT_AOE_FC_NO_START 0x4 /* enum: Generic AOE fault - likely to have been reported via other means too * but intended for use by aoex driver.
*/ #define MCDI_EVENT_AOE_FAULT 0x5 /* enum: Results of reprogramming the CPLD (status in AOE_ERR_DATA) */ #define MCDI_EVENT_AOE_CPLD_REPROGRAMMED 0x6 /* enum: AOE loaded successfully */ #define MCDI_EVENT_AOE_LOAD 0x7 /* enum: AOE DMA operation completed (LSB of HOST_HANDLE in AOE_ERR_DATA) */ #define MCDI_EVENT_AOE_DMA 0x8 /* enum: AOE byteblaster connected/disconnected (Connection status in * AOE_ERR_DATA)
*/ #define MCDI_EVENT_AOE_BYTEBLASTER 0x9 /* enum: DDR ECC status update */ #define MCDI_EVENT_AOE_DDR_ECC_STATUS 0xa /* enum: PTP status update */ #define MCDI_EVENT_AOE_PTP_STATUS 0xb /* enum: FPGA header incorrect */ #define MCDI_EVENT_AOE_FPGA_LOAD_HEADER_ERR 0xc /* enum: FPGA Powered Off due to error in powering up FPGA */ #define MCDI_EVENT_AOE_FPGA_POWER_OFF 0xd /* enum: AOE FPGA load failed due to MC to MUM communication failure */ #define MCDI_EVENT_AOE_FPGA_LOAD_FAILED 0xe /* enum: Notify that invalid flash type detected */ #define MCDI_EVENT_AOE_INVALID_FPGA_FLASH_TYPE 0xf /* enum: Notify that the attempt to run FPGA Controller firmware timed out */ #define MCDI_EVENT_AOE_FC_RUN_TIMEDOUT 0x10 /* enum: Failure to probe one or more FPGA boot flash chips */ #define MCDI_EVENT_AOE_FPGA_BOOT_FLASH_INVALID 0x11 /* enum: FPGA boot-flash contains an invalid image header */ #define MCDI_EVENT_AOE_FPGA_BOOT_FLASH_HDR_INVALID 0x12 /* enum: Failed to program clocks required by the FPGA */ #define MCDI_EVENT_AOE_FPGA_CLOCKS_PROGRAM_FAILED 0x13 /* enum: Notify that FPGA Controller is alive to serve MCDI requests */ #define MCDI_EVENT_AOE_FC_RUNNING 0x14 #define MCDI_EVENT_AOE_ERR_DATA_OFST 0 #define MCDI_EVENT_AOE_ERR_DATA_LBN 8 #define MCDI_EVENT_AOE_ERR_DATA_WIDTH 8 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_INFO_OFST 0 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_INFO_LBN 8 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_INFO_WIDTH 8 /* enum: FC Assert happened, but the register information is not available */ #define MCDI_EVENT_AOE_ERR_FC_ASSERT_SEEN 0x0 /* enum: The register information for FC Assert is ready for reading by driver
*/ #define MCDI_EVENT_AOE_ERR_FC_ASSERT_DATA_READY 0x1 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_OFST 0 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_LBN 8 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_WIDTH 8 /* enum: Reading from NV failed */ #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_NV_READ_FAIL 0x0 /* enum: Invalid Magic Number if FPGA header */ #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_MAGIC_FAIL 0x1 /* enum: Invalid Silicon type detected in header */ #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_SILICON_TYPE 0x2 /* enum: Unsupported VRatio */ #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_VRATIO 0x3 /* enum: Unsupported DDR Type */ #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_TYPE 0x4 /* enum: DDR Voltage out of supported range */ #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_VOLTAGE 0x5 /* enum: Unsupported DDR speed */ #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_SPEED 0x6 /* enum: Unsupported DDR size */ #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_SIZE 0x7 /* enum: Unsupported DDR rank */ #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_RANK 0x8 #define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_OFST 0 #define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_LBN 8 #define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_WIDTH 8 /* enum: Primary boot flash */ #define MCDI_EVENT_AOE_FLASH_TYPE_BOOT_PRIMARY 0x0 /* enum: Secondary boot flash */ #define MCDI_EVENT_AOE_FLASH_TYPE_BOOT_SECONDARY 0x1 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_OFST 0 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_LBN 8 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_WIDTH 8 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_OFST 0 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_LBN 8 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_WIDTH 8 #define MCDI_EVENT_RX_ERR_RXQ_OFST 0 #define MCDI_EVENT_RX_ERR_RXQ_LBN 0 #define MCDI_EVENT_RX_ERR_RXQ_WIDTH 12 #define MCDI_EVENT_RX_ERR_TYPE_OFST 0 #define MCDI_EVENT_RX_ERR_TYPE_LBN 12 #define MCDI_EVENT_RX_ERR_TYPE_WIDTH 4
--> --------------------
--> maximum size reached
--> --------------------
Messung V0.5
¤ Dauer der Verarbeitung: 0.19 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.