summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
f35e5b3)
There is a common macro __rte_packed for packing structs,
which is now used where appropriate for consistency.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
63 files changed:
struct simple_gre_hdr {
uint16_t flags;
uint16_t proto;
struct simple_gre_hdr {
uint16_t flags;
uint16_t proto;
-} __attribute__((__packed__));
static uint16_t
get_udptcp_checksum(void *l3_hdr, void *l4_hdr, uint16_t ethertype)
static uint16_t
get_udptcp_checksum(void *l3_hdr, void *l4_hdr, uint16_t ethertype)
uint16_t port_src;
uint16_t port_dst;
uint8_t proto;
uint16_t port_src;
uint16_t port_dst;
uint8_t proto;
-} __attribute__((packed));
uint16_t port_src;
uint16_t port_dst;
uint8_t proto;
uint16_t port_src;
uint16_t port_dst;
uint8_t proto;
-} __attribute__((packed));
uint16_t port_src;
uint16_t port_dst;
uint8_t proto;
uint16_t port_src;
uint16_t port_dst;
uint8_t proto;
-} __attribute__((packed));
/* Set ID Macros for multimatch test usage */
#define M_MATCH_S 1 /* Not start with 0 since by default 0 means no match */
/* Set ID Macros for multimatch test usage */
#define M_MATCH_S 1 /* Not start with 0 since by default 0 means no match */
uint8_t hop_limits; /* Hop limits. */
uint8_t src_addr[16]; /* IP address of source host. */
uint8_t dst_addr[16]; /* IP address of destination host(s). */
uint8_t hop_limits; /* Hop limits. */
uint8_t src_addr[16]; /* IP address of source host. */
uint8_t dst_addr[16]; /* IP address of destination host(s). */
- } __attribute__((__packed__));
The following array of field definitions can be used:
The following array of field definitions can be used:
};
/* FPGA LTE FEC DMA Encoding Request Descriptor */
};
/* FPGA LTE FEC DMA Encoding Request Descriptor */
-struct __attribute__((__packed__)) fpga_dma_enc_desc {
+struct __rte_packed fpga_dma_enc_desc {
uint32_t done:1,
rsrvd0:11,
error:4,
uint32_t done:1,
rsrvd0:11,
error:4,
};
/* FPGA LTE FEC DMA Decoding Request Descriptor */
};
/* FPGA LTE FEC DMA Decoding Request Descriptor */
-struct __attribute__((__packed__)) fpga_dma_dec_desc {
+struct __rte_packed fpga_dma_dec_desc {
uint32_t done:1,
iter:5,
rsrvd0:2,
uint32_t done:1,
iter:5,
rsrvd0:2,
};
/* FPGA LTE FEC Ring Control Register */
};
/* FPGA LTE FEC Ring Control Register */
-struct __attribute__((__packed__)) fpga_ring_ctrl_reg {
+struct __rte_packed fpga_ring_ctrl_reg {
uint64_t ring_base_addr;
uint64_t ring_head_addr;
uint16_t ring_size:11;
uint64_t ring_base_addr;
uint64_t ring_head_addr;
uint16_t ring_size:11;
unsigned int phe:1; /* Header Error during parsing */
unsigned int frdr:1; /* Frame Dropped by disabled port */
unsigned int reserved5:4;
unsigned int phe:1; /* Header Error during parsing */
unsigned int frdr:1; /* Frame Dropped by disabled port */
unsigned int reserved5:4;
-} __attribute__ ((__packed__));
/* Set MAC address for a particular interface */
int fman_if_add_mac_addr(struct fman_if *p, uint8_t *eth, uint8_t addr_num);
/* Set MAC address for a particular interface */
int fman_if_add_mac_addr(struct fman_if *p, uint8_t *eth, uint8_t addr_num);
struct rte_afu_uuid {
uint64_t uuid_low;
uint64_t uuid_high;
struct rte_afu_uuid {
uint64_t uuid_low;
uint64_t uuid_high;
-} __attribute__ ((packed));
#define IFPGA_BUS_DEV_PORT_MAX 4
#define IFPGA_BUS_DEV_PORT_MAX 4
struct rte_afu_id {
struct rte_afu_uuid uuid;
int port; /**< port number */
struct rte_afu_id {
struct rte_afu_uuid uuid;
int port; /**< port number */
-} __attribute__ ((packed));
/**
* A structure PR (Partial Reconfiguration) configuration AFU driver.
/**
* A structure PR (Partial Reconfiguration) configuration AFU driver.
struct rte_intr_handle intr_handle; /**< Interrupt handle */
struct rte_afu_driver *driver; /**< Associated driver */
char path[IFPGA_BUS_BITSTREAM_PATH_MAX_LEN];
struct rte_intr_handle intr_handle; /**< Interrupt handle */
struct rte_afu_driver *driver; /**< Associated driver */
char path[IFPGA_BUS_BITSTREAM_PATH_MAX_LEN];
-} __attribute__ ((packed));
u64 pa;
u32 size;
const void *zone;
u64 pa;
u32 size;
const void *zone;
-} __attribute__((packed));
struct iavf_virt_mem {
void *va;
u32 size;
struct iavf_virt_mem {
void *va;
u32 size;
-} __attribute__((packed));
/* SW spinlock */
struct iavf_spinlock {
/* SW spinlock */
struct iavf_spinlock {
*/
struct sec_sd_t {
uint32_t rsvd[MAX_DESC_SIZE_WORDS];
*/
struct sec_sd_t {
uint32_t rsvd[MAX_DESC_SIZE_WORDS];
-} __attribute__((packed) __rte_aligned(64);
+} __rte_packed __rte_aligned(64);
/* Structure encompassing a job descriptor which processes
* a single packet from a context. The job descriptor references
/* Structure encompassing a job descriptor which processes
* a single packet from a context. The job descriptor references
uint32_t in_ext_length;
struct load_command_s load_dpovrd;
uint32_t dpovrd;
uint32_t in_ext_length;
struct load_command_s load_dpovrd;
uint32_t dpovrd;
-} __attribute__((packed) __rte_aligned(64);
+} __rte_packed __rte_aligned(64);
-struct __attribute__((__packed__)) gen_req {
+struct __rte_packed gen_req {
-struct __attribute__((__packed__)) idn_req {
+struct __rte_packed idn_req {
-struct __attribute__((__packed__)) gen_resp {
+struct __rte_packed gen_resp {
uint16_t domain_id;
uint16_t vfid;
};
uint16_t domain_id;
uint16_t vfid;
};
-struct __attribute__((__packed__)) dcfg_resp {
+struct __rte_packed dcfg_resp {
uint8_t sso_count;
uint8_t ssow_count;
uint8_t fpa_count;
uint8_t sso_count;
uint8_t ssow_count;
uint8_t fpa_count;
uint32_t pkts_missing;
uint32_t min_latency;
uint32_t max_latency;
uint32_t pkts_missing;
uint32_t min_latency;
uint32_t max_latency;
-} __attribute__ ((packed));
struct ark_pkt_chkr_ctl_regs {
uint32_t pkt_ctrl;
struct ark_pkt_chkr_ctl_regs {
uint32_t pkt_ctrl;
uint32_t dst_mac_addr_h;
uint32_t eth_type;
uint32_t hdr_dw[7];
uint32_t dst_mac_addr_h;
uint32_t eth_type;
uint32_t hdr_dw[7];
-} __attribute__ ((packed));
struct ark_pkt_chkr_inst {
struct rte_eth_dev_info *dev_info;
struct ark_pkt_chkr_inst {
struct rte_eth_dev_info *dev_info;
uint32_t ctrl;
uint32_t status;
uint32_t stall_cnt;
uint32_t ctrl;
uint32_t status;
uint32_t stall_cnt;
-} __attribute__ ((packed));
struct ark_pkt_dir_inst {
volatile struct ark_pkt_dir_regs *regs;
struct ark_pkt_dir_inst {
volatile struct ark_pkt_dir_regs *regs;
uint32_t hdr_dw[7];
uint32_t start_offset;
uint32_t bytes_per_cycle;
uint32_t hdr_dw[7];
uint32_t start_offset;
uint32_t bytes_per_cycle;
-} __attribute__ ((packed));
struct ark_pkt_gen_inst {
struct rte_eth_dev_info *dev_info;
struct ark_pkt_gen_inst {
struct rte_eth_dev_info *dev_info;
#include <netinet/in.h>
#include <pthread.h>
#include <netinet/in.h>
#include <pthread.h>
+#include <rte_common.h>
+
typedef uint8_t u8;
typedef int8_t s8;
typedef uint16_t u16;
typedef uint8_t u8;
typedef int8_t s8;
typedef uint16_t u16;
u32 ct_idx:1;
u32 ct_en:1;
u32 pay_len:18;
u32 ct_idx:1;
u32 ct_en:1;
u32 pay_len:18;
- } __attribute__((__packed__));
-} __attribute__((__packed__));
/* Hardware tx context descriptor */
union hw_atl_txc_s {
/* Hardware tx context descriptor */
union hw_atl_txc_s {
u32 l3_len:9;
u32 l4_len:8;
u32 mss_len:16;
u32 l3_len:9;
u32 l4_len:8;
u32 mss_len:16;
- } __attribute__((__packed__));
-} __attribute__((__packed__));
+ } __rte_packed;
+} __rte_packed;
enum aq_tx_desc_type {
tx_desc_type_desc = 1,
enum aq_tx_desc_type {
tx_desc_type_desc = 1,
struct hw_atl_rxd_s {
u64 buf_addr;
u64 hdr_addr;
struct hw_atl_rxd_s {
u64 buf_addr;
u64 hdr_addr;
-} __attribute__((__packed__));
/* Hardware rx descriptor writeback */
struct hw_atl_rxd_wb_s {
/* Hardware rx descriptor writeback */
struct hw_atl_rxd_wb_s {
u16 pkt_len;
u16 next_desc_ptr;
u16 vlan;
u16 pkt_len;
u16 next_desc_ptr;
u16 vlan;
-} __attribute__((__packed__));
struct hw_atl_stats_s {
u32 uprc;
struct hw_atl_stats_s {
u32 uprc;
u32 ubrc;
u32 ubtc;
u32 dpc;
u32 ubrc;
u32 ubtc;
u32 dpc;
-} __attribute__((__packed__));
u8 padding[12];
u8 addr[4];
} v4;
u8 padding[12];
u8 addr[4];
} v4;
-} __attribute__((__packed__));
struct hw_aq_atl_utils_fw_rpc {
u32 msg_id;
struct hw_aq_atl_utils_fw_rpc {
u32 msg_id;
-} __attribute__((__packed__));
struct hw_aq_atl_utils_mbox_header {
u32 version;
u32 transaction_id;
u32 error;
struct hw_aq_atl_utils_mbox_header {
u32 version;
u32 transaction_id;
u32 error;
-} __attribute__((__packed__));
struct hw_aq_info {
u8 reserved[6];
struct hw_aq_info {
u8 reserved[6];
u8 reserved2[32];
u32 caps_lo;
u32 caps_hi;
u8 reserved2[32];
u32 caps_lo;
u32 caps_hi;
-} __attribute__((__packed__));
struct hw_aq_atl_utils_mbox {
struct hw_aq_atl_utils_mbox_header header;
struct hw_atl_stats_s stats;
struct hw_aq_info info;
struct hw_aq_atl_utils_mbox {
struct hw_aq_atl_utils_mbox_header header;
struct hw_atl_stats_s stats;
struct hw_aq_info info;
-} __attribute__((__packed__));
/* fw2x */
typedef u16 in_port_t;
/* fw2x */
typedef u16 in_port_t;
struct ip6_addr {
u32 addr[4];
struct ip6_addr {
u32 addr[4];
-} __attribute__((__packed__));
struct offload_ka_v4 {
u32 timeout;
struct offload_ka_v4 {
u32 timeout;
u32 ack_num;
ip4_addr_t local_ip;
ip4_addr_t remote_ip;
u32 ack_num;
ip4_addr_t local_ip;
ip4_addr_t remote_ip;
-} __attribute__((__packed__));
struct offload_ka_v6 {
u32 timeout;
struct offload_ka_v6 {
u32 timeout;
u32 ack_num;
struct ip6_addr local_ip;
struct ip6_addr remote_ip;
u32 ack_num;
struct ip6_addr local_ip;
struct ip6_addr remote_ip;
-} __attribute__((__packed__));
struct offload_ip_info {
u8 v4_local_addr_count;
struct offload_ip_info {
u8 v4_local_addr_count;
fw_offset_t v4_prefix;
fw_offset_t v6_addr;
fw_offset_t v6_prefix;
fw_offset_t v4_prefix;
fw_offset_t v6_addr;
fw_offset_t v6_prefix;
-} __attribute__((__packed__));
struct offload_port_info {
u16 udp_port_count;
u16 tcp_port_count;
fw_offset_t udp_port;
fw_offset_t tcp_port;
struct offload_port_info {
u16 udp_port_count;
u16 tcp_port_count;
fw_offset_t udp_port;
fw_offset_t tcp_port;
-} __attribute__((__packed__));
struct offload_ka_info {
u16 v4_ka_count;
struct offload_ka_info {
u16 v4_ka_count;
u32 retry_interval;
fw_offset_t v4_ka;
fw_offset_t v6_ka;
u32 retry_interval;
fw_offset_t v4_ka;
fw_offset_t v6_ka;
-} __attribute__((__packed__));
struct offload_rr_info {
u32 rr_count;
u32 rr_buf_len;
fw_offset_t rr_id_x;
fw_offset_t rr_buf;
struct offload_rr_info {
u32 rr_count;
u32 rr_buf_len;
fw_offset_t rr_id_x;
fw_offset_t rr_buf;
-} __attribute__((__packed__));
struct offload_info {
u32 version; // current version is 0x00000000
struct offload_info {
u32 version; // current version is 0x00000000
struct offload_ka_info kas;
struct offload_rr_info rrs;
u8 buf[0];
struct offload_ka_info kas;
struct offload_rr_info rrs;
u8 buf[0];
-} __attribute__((__packed__));
struct smbus_request {
u32 msg_id; /* not used */
u32 device_id;
u32 address;
u32 length;
struct smbus_request {
u32 msg_id; /* not used */
u32 device_id;
u32 address;
u32 length;
-} __attribute__((__packed__));
enum macsec_msg_type {
macsec_cfg_msg = 0,
enum macsec_msg_type {
macsec_cfg_msg = 0,
uint32_t egress_threshold;
uint32_t ingress_threshold;
uint32_t interrupts_enabled;
uint32_t egress_threshold;
uint32_t ingress_threshold;
uint32_t interrupts_enabled;
-} __attribute__((__packed__));
struct add_rx_sc {
uint32_t index;
struct add_rx_sc {
uint32_t index;
uint32_t anti_replay_window; /* default 0 */
/* 1: auto_rollover enabled (when SA next_pn is saturated */
uint32_t an_rol;
uint32_t anti_replay_window; /* default 0 */
/* 1: auto_rollover enabled (when SA next_pn is saturated */
uint32_t an_rol;
-} __attribute__((__packed__));
struct add_tx_sc {
uint32_t index;
struct add_tx_sc {
uint32_t index;
uint32_t da_mask; /* 0: ignore mac_da */
uint32_t protect;
uint32_t curr_an; /* SA index which currently used */
uint32_t da_mask; /* 0: ignore mac_da */
uint32_t protect;
uint32_t curr_an; /* SA index which currently used */
-} __attribute__((__packed__));
struct add_rx_sa {
uint32_t index;
uint32_t next_pn;
uint32_t key[4]; /* 128 bit key */
struct add_rx_sa {
uint32_t index;
uint32_t next_pn;
uint32_t key[4]; /* 128 bit key */
-} __attribute__((__packed__));
struct add_tx_sa {
uint32_t index;
uint32_t next_pn;
uint32_t key[4]; /* 128 bit key */
struct add_tx_sa {
uint32_t index;
uint32_t next_pn;
uint32_t key[4]; /* 128 bit key */
-} __attribute__((__packed__));
struct get_stats {
uint32_t version_only;
uint32_t ingress_sa_index;
uint32_t egress_sa_index;
uint32_t egress_sc_index;
struct get_stats {
uint32_t version_only;
uint32_t ingress_sa_index;
uint32_t egress_sa_index;
uint32_t egress_sc_index;
-} __attribute__((__packed__));
struct macsec_stats {
uint32_t api_version;
struct macsec_stats {
uint32_t api_version;
uint32_t ingress_threshold_expired;
uint32_t egress_expired;
uint32_t ingress_expired;
uint32_t ingress_threshold_expired;
uint32_t egress_expired;
uint32_t ingress_expired;
-} __attribute__((__packed__));
struct macsec_msg_fw_request {
uint32_t offset; /* not used */
struct macsec_msg_fw_request {
uint32_t offset; /* not used */
struct add_tx_sa txsa;
struct get_stats stats;
};
struct add_tx_sa txsa;
struct get_stats stats;
};
-} __attribute__((__packed__));
struct macsec_msg_fw_response {
uint32_t result;
struct macsec_stats stats;
struct macsec_msg_fw_response {
uint32_t result;
struct macsec_stats stats;
-} __attribute__((__packed__));
#define HAL_ATLANTIC_UTILS_CHIP_MIPS 0x00000001U
#define HAL_ATLANTIC_UTILS_CHIP_TPO2 0x00000002U
#define HAL_ATLANTIC_UTILS_CHIP_MIPS 0x00000001U
#define HAL_ATLANTIC_UTILS_CHIP_TPO2 0x00000002U
struct fw2x_msg_wol_pattern {
u8 mask[16];
u32 crc;
struct fw2x_msg_wol_pattern {
u8 mask[16];
u32 crc;
-} __attribute__((__packed__));
struct fw2x_msg_wol {
u32 msg_id;
struct fw2x_msg_wol {
u32 msg_id;
u16 reserved;
u32 link_up_timeout;
u32 link_down_timeout;
u16 reserved;
u32 link_up_timeout;
u32 link_down_timeout;
-} __attribute__((__packed__));
static int aq_fw2x_set_link_speed(struct aq_hw_s *self, u32 speed);
static int aq_fw2x_set_state(struct aq_hw_s *self,
static int aq_fw2x_set_link_speed(struct aq_hw_s *self, u32 speed);
static int aq_fw2x_set_state(struct aq_hw_s *self,
uint16_t num_tx_queues; /**< Number of active transmit queues */
uint16_t num_rx_queues; /**< Number of active receive queues */
uint8_t if_up; /**< 1: interface up, 0: interface down */
uint16_t num_tx_queues; /**< Number of active transmit queues */
uint16_t num_rx_queues; /**< Number of active receive queues */
uint8_t if_up; /**< 1: interface up, 0: interface down */
-} __attribute__ ((__packed__));
/*
* Structure for AVP request.
/*
* Structure for AVP request.
struct rte_avp_device_config config; /**< Queue configuration */
};
int32_t result; /**< Result for processing request */
struct rte_avp_device_config config; /**< Queue configuration */
};
int32_t result; /**< Result for processing request */
-} __attribute__ ((__packed__));
/*
* FIFO struct mapped in a shared memory. It describes a circular buffer FIFO
/*
* FIFO struct mapped in a shared memory. It describes a circular buffer FIFO
uint32_t pad3;
uint16_t vlan_tci; /**< VLAN Tag Control Identifier (CPU order). */
uint32_t pad4;
uint32_t pad3;
uint16_t vlan_tci; /**< VLAN Tag Control Identifier (CPU order). */
uint32_t pad4;
-} __attribute__ ((__packed__)) __rte_cache_aligned;
+} __rte_packed __rte_cache_aligned;
/**{ AVP device features */
/**{ AVP device features */
struct bnxt_vlan_table_entry {
uint16_t tpid;
uint16_t vid;
struct bnxt_vlan_table_entry {
uint16_t tpid;
uint16_t vid;
-} __attribute__((packed));
struct bnxt_vlan_antispoof_table_entry {
uint16_t tpid;
uint16_t vid;
uint16_t mask;
struct bnxt_vlan_antispoof_table_entry {
uint16_t tpid;
uint16_t vid;
uint16_t mask;
-} __attribute__((packed));
struct bnxt_child_vf_info {
void *req_buf;
struct bnxt_child_vf_info {
void *req_buf;
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
-} __attribute__((packed));
/* This is the HWRM response header. */
/* hwrm_resp_hdr (size:64b/8B) */
/* This is the HWRM response header. */
/* hwrm_resp_hdr (size:64b/8B) */
uint16_t seq_id;
/* The length of the response data in number of bytes. */
uint16_t resp_len;
uint16_t seq_id;
/* The length of the response data in number of bytes. */
uint16_t resp_len;
-} __attribute__((packed));
/*
* TLV encapsulated message. Use the TLV type field of the
/*
* TLV encapsulated message. Use the TLV type field of the
* and it must be an integer multiple of 8B.
*/
uint16_t length;
* and it must be an integer multiple of 8B.
*/
uint16_t length;
-} __attribute__((packed));
/* Input */
/* input (size:128b/16B) */
/* Input */
/* input (size:128b/16B) */
* and must be cleared to zero before the request is made.
*/
uint64_t resp_addr;
* and must be cleared to zero before the request is made.
*/
uint64_t resp_addr;
-} __attribute__((packed));
/* Output */
/* output (size:64b/8B) */
/* Output */
/* output (size:64b/8B) */
* memory.
*/
uint16_t resp_len;
* memory.
*/
uint16_t resp_len;
-} __attribute__((packed));
/* Short Command Structure */
/* hwrm_short_input (size:128b/16B) */
/* Short Command Structure */
/* hwrm_short_input (size:128b/16B) */
* This area must be 16B aligned.
*/
uint64_t req_addr;
* This area must be 16B aligned.
*/
uint64_t req_addr;
-} __attribute__((packed));
#define HWRM_NVM_RAW_WRITE_BLK UINT32_C(0xffff)
#define HWRM_LAST HWRM_NVM_RAW_WRITE_BLK
uint16_t unused_0[3];
#define HWRM_NVM_RAW_WRITE_BLK UINT32_C(0xffff)
#define HWRM_LAST HWRM_NVM_RAW_WRITE_BLK
uint16_t unused_0[3];
-} __attribute__((packed));
/* Return Codes */
/* ret_codes (size:64b/8B) */
/* Return Codes */
/* ret_codes (size:64b/8B) */
#define HWRM_ERR_CODE_LAST \
HWRM_ERR_CODE_CMD_NOT_SUPPORTED
uint16_t unused_0[3];
#define HWRM_ERR_CODE_LAST \
HWRM_ERR_CODE_CMD_NOT_SUPPORTED
uint16_t unused_0[3];
-} __attribute__((packed));
/* Output */
/* hwrm_err_output (size:128b/16B) */
/* Output */
/* hwrm_err_output (size:128b/16B) */
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*
* Following is the signature for HWRM message field that indicates not
* applicable (All F's). Need to cast it the size of the field if needed.
/*
* Following is the signature for HWRM message field that indicates not
* applicable (All F's). Need to cast it the size of the field if needed.
*/
uint8_t hwrm_intf_upd;
uint8_t unused_0[5];
*/
uint8_t hwrm_intf_upd;
uint8_t unused_0[5];
-} __attribute__((packed));
/* hwrm_ver_get_output (size:1408b/176B) */
struct hwrm_ver_get_output {
/* hwrm_ver_get_output (size:1408b/176B) */
struct hwrm_ver_get_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* bd_base (size:64b/8B) */
struct bd_base {
/* bd_base (size:64b/8B) */
struct bd_base {
#define BD_BASE_TYPE_TX_BD_LONG_INLINE UINT32_C(0x11)
#define BD_BASE_TYPE_LAST BD_BASE_TYPE_TX_BD_LONG_INLINE
uint8_t unused_1[7];
#define BD_BASE_TYPE_TX_BD_LONG_INLINE UINT32_C(0x11)
#define BD_BASE_TYPE_LAST BD_BASE_TYPE_TX_BD_LONG_INLINE
uint8_t unused_1[7];
-} __attribute__((packed));
/* tx_bd_short (size:128b/16B) */
struct tx_bd_short {
/* tx_bd_short (size:128b/16B) */
struct tx_bd_short {
* This value must be valid on all BDs of a packet.
*/
uint64_t address;
* This value must be valid on all BDs of a packet.
*/
uint64_t address;
-} __attribute__((packed));
/* tx_bd_long (size:128b/16B) */
struct tx_bd_long {
/* tx_bd_long (size:128b/16B) */
struct tx_bd_long {
* This value must be valid on all BDs of a packet.
*/
uint64_t address;
* This value must be valid on all BDs of a packet.
*/
uint64_t address;
-} __attribute__((packed));
/* Last 16 bytes of tx_bd_long. */
/* tx_bd_long_hi (size:128b/16B) */
/* Last 16 bytes of tx_bd_long. */
/* tx_bd_long_hi (size:128b/16B) */
#define TX_BD_LONG_CFA_META_KEY_VLAN_TAG (UINT32_C(0x1) << 28)
#define TX_BD_LONG_CFA_META_KEY_LAST \
TX_BD_LONG_CFA_META_KEY_VLAN_TAG
#define TX_BD_LONG_CFA_META_KEY_VLAN_TAG (UINT32_C(0x1) << 28)
#define TX_BD_LONG_CFA_META_KEY_LAST \
TX_BD_LONG_CFA_META_KEY_VLAN_TAG
-} __attribute__((packed));
/*
* This structure is used to inform the NIC of packet data that needs to be
/*
* This structure is used to inform the NIC of packet data that needs to be
(UINT32_C(0x1) << 28)
#define TX_BD_LONG_INLINE_CFA_META_KEY_LAST \
TX_BD_LONG_INLINE_CFA_META_KEY_VLAN_TAG
(UINT32_C(0x1) << 28)
#define TX_BD_LONG_INLINE_CFA_META_KEY_LAST \
TX_BD_LONG_INLINE_CFA_META_KEY_VLAN_TAG
-} __attribute__((packed));
/* tx_bd_empty (size:128b/16B) */
struct tx_bd_empty {
/* tx_bd_empty (size:128b/16B) */
struct tx_bd_empty {
uint8_t unused_2;
uint8_t unused_3[3];
uint8_t unused_4[8];
uint8_t unused_2;
uint8_t unused_3[3];
uint8_t unused_4[8];
-} __attribute__((packed));
/* rx_prod_pkt_bd (size:128b/16B) */
struct rx_prod_pkt_bd {
/* rx_prod_pkt_bd (size:128b/16B) */
struct rx_prod_pkt_bd {
* be placed in host memory.
*/
uint64_t address;
* be placed in host memory.
*/
uint64_t address;
-} __attribute__((packed));
/* rx_prod_bfr_bd (size:128b/16B) */
struct rx_prod_bfr_bd {
/* rx_prod_bfr_bd (size:128b/16B) */
struct rx_prod_bfr_bd {
* be placed in host memory.
*/
uint64_t address;
* be placed in host memory.
*/
uint64_t address;
-} __attribute__((packed));
/* rx_prod_agg_bd (size:128b/16B) */
struct rx_prod_agg_bd {
/* rx_prod_agg_bd (size:128b/16B) */
struct rx_prod_agg_bd {
* be placed in host memory.
*/
uint64_t address;
* be placed in host memory.
*/
uint64_t address;
-} __attribute__((packed));
/* cmpl_base (size:128b/16B) */
struct cmpl_base {
/* cmpl_base (size:128b/16B) */
struct cmpl_base {
#define CMPL_BASE_INFO3_SFT 1
/* info4 is 32 b */
uint32_t info4;
#define CMPL_BASE_INFO3_SFT 1
/* info4 is 32 b */
uint32_t info4;
-} __attribute__((packed));
/* tx_cmpl (size:128b/16B) */
struct tx_cmpl {
/* tx_cmpl (size:128b/16B) */
struct tx_cmpl {
uint16_t unused_1;
/* unused3 is 32 b */
uint32_t unused_2;
uint16_t unused_1;
/* unused3 is 32 b */
uint32_t unused_2;
-} __attribute__((packed));
/* rx_pkt_cmpl (size:128b/16B) */
struct rx_pkt_cmpl {
/* rx_pkt_cmpl (size:128b/16B) */
struct rx_pkt_cmpl {
* based on the mode bits and key value in the VNIC.
*/
uint32_t rss_hash;
* based on the mode bits and key value in the VNIC.
*/
uint32_t rss_hash;
-} __attribute__((packed));
/* Last 16 bytes of rx_pkt_cmpl. */
/* rx_pkt_cmpl_hi (size:128b/16B) */
/* Last 16 bytes of rx_pkt_cmpl. */
/* rx_pkt_cmpl_hi (size:128b/16B) */
*/
#define RX_PKT_CMPL_REORDER_MASK UINT32_C(0xffffff)
#define RX_PKT_CMPL_REORDER_SFT 0
*/
#define RX_PKT_CMPL_REORDER_MASK UINT32_C(0xffffff)
#define RX_PKT_CMPL_REORDER_SFT 0
-} __attribute__((packed));
/*
* This TPA completion structure is used on devices where the
/*
* This TPA completion structure is used on devices where the
* based on the mode bits and key value in the VNIC.
*/
uint32_t rss_hash;
* based on the mode bits and key value in the VNIC.
*/
uint32_t rss_hash;
-} __attribute__((packed));
/*
* Last 16 bytes of rx_tpa_start_cmpl.
/*
* Last 16 bytes of rx_tpa_start_cmpl.
*/
#define RX_TPA_START_CMPL_INNER_L4_SIZE_MASK UINT32_C(0xf8000000)
#define RX_TPA_START_CMPL_INNER_L4_SIZE_SFT 27
*/
#define RX_TPA_START_CMPL_INNER_L4_SIZE_MASK UINT32_C(0xf8000000)
#define RX_TPA_START_CMPL_INNER_L4_SIZE_SFT 27
-} __attribute__((packed));
/*
* This TPA completion structure is used on devices where the
/*
* This TPA completion structure is used on devices where the
* option is present in the packet.
*/
uint32_t tsdelta;
* option is present in the packet.
*/
uint32_t tsdelta;
-} __attribute__((packed));
/*
* Last 16 bytes of rx_tpa_end_cmpl.
/*
* Last 16 bytes of rx_tpa_end_cmpl.
* completion that corresponds to this TPA end completion.
*/
uint32_t start_opaque;
* completion that corresponds to this TPA end completion.
*/
uint32_t start_opaque;
-} __attribute__((packed));
/*
* This TPA completion structure is used on devices where the
/*
* This TPA completion structure is used on devices where the
* based on the mode bits and key value in the VNIC.
*/
uint32_t rss_hash;
* based on the mode bits and key value in the VNIC.
*/
uint32_t rss_hash;
-} __attribute__((packed));
/*
* Last 16 bytes of rx_tpa_v2_start_cmpl.
/*
* Last 16 bytes of rx_tpa_v2_start_cmpl.
*/
#define RX_TPA_V2_START_CMPL_INNER_L4_SIZE_MASK UINT32_C(0xf8000000)
#define RX_TPA_V2_START_CMPL_INNER_L4_SIZE_SFT 27
*/
#define RX_TPA_V2_START_CMPL_INNER_L4_SIZE_MASK UINT32_C(0xf8000000)
#define RX_TPA_V2_START_CMPL_INNER_L4_SIZE_SFT 27
-} __attribute__((packed));
/*
* This TPA completion structure is used on devices where the
/*
* This TPA completion structure is used on devices where the
* option is present in the packet.
*/
uint32_t tsdelta;
* option is present in the packet.
*/
uint32_t tsdelta;
-} __attribute__((packed));
/*
* Last 16 bytes of rx_tpa_v2_end_cmpl.
/*
* Last 16 bytes of rx_tpa_v2_end_cmpl.
* completion that corresponds to this TPA end completion.
*/
uint32_t start_opaque;
* completion that corresponds to this TPA end completion.
*/
uint32_t start_opaque;
-} __attribute__((packed));
/*
* This TPA completion structure is used on devices where the
/*
* This TPA completion structure is used on devices where the
*/
uint16_t agg_id;
uint32_t unused_1;
*/
uint16_t agg_id;
uint32_t unused_1;
-} __attribute__((packed));
/* rx_abuf_cmpl (size:128b/16B) */
struct rx_abuf_cmpl {
/* rx_abuf_cmpl (size:128b/16B) */
struct rx_abuf_cmpl {
#define RX_ABUF_CMPL_V UINT32_C(0x1)
/* unused3 is 32 b */
uint32_t unused_2;
#define RX_ABUF_CMPL_V UINT32_C(0x1)
/* unused3 is 32 b */
uint32_t unused_2;
-} __attribute__((packed));
/* eject_cmpl (size:128b/16B) */
struct eject_cmpl {
/* eject_cmpl (size:128b/16B) */
struct eject_cmpl {
uint16_t reserved16;
/* unused3 is 32 b */
uint32_t unused_2;
uint16_t reserved16;
/* unused3 is 32 b */
uint32_t unused_2;
-} __attribute__((packed));
/* hwrm_cmpl (size:128b/16B) */
struct hwrm_cmpl {
/* hwrm_cmpl (size:128b/16B) */
struct hwrm_cmpl {
#define HWRM_CMPL_V UINT32_C(0x1)
/* unused4 is 32 b */
uint32_t unused_3;
#define HWRM_CMPL_V UINT32_C(0x1)
/* unused4 is 32 b */
uint32_t unused_3;
-} __attribute__((packed));
/* hwrm_fwd_req_cmpl (size:128b/16B) */
struct hwrm_fwd_req_cmpl {
/* hwrm_fwd_req_cmpl (size:128b/16B) */
struct hwrm_fwd_req_cmpl {
/* Address of forwarded request. */
#define HWRM_FWD_REQ_CMPL_REQ_BUF_ADDR_MASK UINT32_C(0xfffffffe)
#define HWRM_FWD_REQ_CMPL_REQ_BUF_ADDR_SFT 1
/* Address of forwarded request. */
#define HWRM_FWD_REQ_CMPL_REQ_BUF_ADDR_MASK UINT32_C(0xfffffffe)
#define HWRM_FWD_REQ_CMPL_REQ_BUF_ADDR_SFT 1
-} __attribute__((packed));
/* hwrm_fwd_resp_cmpl (size:128b/16B) */
struct hwrm_fwd_resp_cmpl {
/* hwrm_fwd_resp_cmpl (size:128b/16B) */
struct hwrm_fwd_resp_cmpl {
/* Address of forwarded request. */
#define HWRM_FWD_RESP_CMPL_RESP_BUF_ADDR_MASK UINT32_C(0xfffffffe)
#define HWRM_FWD_RESP_CMPL_RESP_BUF_ADDR_SFT 1
/* Address of forwarded request. */
#define HWRM_FWD_RESP_CMPL_RESP_BUF_ADDR_MASK UINT32_C(0xfffffffe)
#define HWRM_FWD_RESP_CMPL_RESP_BUF_ADDR_SFT 1
-} __attribute__((packed));
/* hwrm_async_event_cmpl (size:128b/16B) */
struct hwrm_async_event_cmpl {
/* hwrm_async_event_cmpl (size:128b/16B) */
struct hwrm_async_event_cmpl {
uint16_t timestamp_hi;
/* Event specific data */
uint32_t event_data1;
uint16_t timestamp_hi;
/* Event specific data */
uint32_t event_data1;
-} __attribute__((packed));
/* hwrm_async_event_cmpl_link_status_change (size:128b/16B) */
struct hwrm_async_event_cmpl_link_status_change {
/* hwrm_async_event_cmpl_link_status_change (size:128b/16B) */
struct hwrm_async_event_cmpl_link_status_change {
UINT32_C(0xff00000)
#define HWRM_ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PF_ID_SFT \
20
UINT32_C(0xff00000)
#define HWRM_ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PF_ID_SFT \
20
-} __attribute__((packed));
/* hwrm_async_event_cmpl_link_mtu_change (size:128b/16B) */
struct hwrm_async_event_cmpl_link_mtu_change {
/* hwrm_async_event_cmpl_link_mtu_change (size:128b/16B) */
struct hwrm_async_event_cmpl_link_mtu_change {
#define HWRM_ASYNC_EVENT_CMPL_LINK_MTU_CHANGE_EVENT_DATA1_NEW_MTU_MASK \
UINT32_C(0xffff)
#define HWRM_ASYNC_EVENT_CMPL_LINK_MTU_CHANGE_EVENT_DATA1_NEW_MTU_SFT 0
#define HWRM_ASYNC_EVENT_CMPL_LINK_MTU_CHANGE_EVENT_DATA1_NEW_MTU_MASK \
UINT32_C(0xffff)
#define HWRM_ASYNC_EVENT_CMPL_LINK_MTU_CHANGE_EVENT_DATA1_NEW_MTU_SFT 0
-} __attribute__((packed));
/* hwrm_async_event_cmpl_link_speed_change (size:128b/16B) */
struct hwrm_async_event_cmpl_link_speed_change {
/* hwrm_async_event_cmpl_link_speed_change (size:128b/16B) */
struct hwrm_async_event_cmpl_link_speed_change {
UINT32_C(0xffff0000)
#define HWRM_ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_PORT_ID_SFT \
16
UINT32_C(0xffff0000)
#define HWRM_ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_PORT_ID_SFT \
16
-} __attribute__((packed));
/* hwrm_async_event_cmpl_dcb_config_change (size:128b/16B) */
struct hwrm_async_event_cmpl_dcb_config_change {
/* hwrm_async_event_cmpl_dcb_config_change (size:128b/16B) */
struct hwrm_async_event_cmpl_dcb_config_change {
(UINT32_C(0xff) << 24)
#define HWRM_ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA1_RECOMMEND_L2_PRIORITY_LAST \
HWRM_ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA1_RECOMMEND_L2_PRIORITY_NONE
(UINT32_C(0xff) << 24)
#define HWRM_ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA1_RECOMMEND_L2_PRIORITY_LAST \
HWRM_ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA1_RECOMMEND_L2_PRIORITY_NONE
-} __attribute__((packed));
/* hwrm_async_event_cmpl_port_conn_not_allowed (size:128b/16B) */
struct hwrm_async_event_cmpl_port_conn_not_allowed {
/* hwrm_async_event_cmpl_port_conn_not_allowed (size:128b/16B) */
struct hwrm_async_event_cmpl_port_conn_not_allowed {
(UINT32_C(0x3) << 16)
#define HWRM_ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_LAST \
HWRM_ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_PWRDOWN
(UINT32_C(0x3) << 16)
#define HWRM_ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_LAST \
HWRM_ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_PWRDOWN
-} __attribute__((packed));
/* hwrm_async_event_cmpl_link_speed_cfg_not_allowed (size:128b/16B) */
struct hwrm_async_event_cmpl_link_speed_cfg_not_allowed {
/* hwrm_async_event_cmpl_link_speed_cfg_not_allowed (size:128b/16B) */
struct hwrm_async_event_cmpl_link_speed_cfg_not_allowed {
UINT32_C(0xffff)
#define HWRM_ASYNC_EVENT_CMPL_LINK_SPEED_CFG_NOT_ALLOWED_EVENT_DATA1_PORT_ID_SFT \
0
UINT32_C(0xffff)
#define HWRM_ASYNC_EVENT_CMPL_LINK_SPEED_CFG_NOT_ALLOWED_EVENT_DATA1_PORT_ID_SFT \
0
-} __attribute__((packed));
/* hwrm_async_event_cmpl_link_speed_cfg_change (size:128b/16B) */
struct hwrm_async_event_cmpl_link_speed_cfg_change {
/* hwrm_async_event_cmpl_link_speed_cfg_change (size:128b/16B) */
struct hwrm_async_event_cmpl_link_speed_cfg_change {
*/
#define HWRM_ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_ILLEGAL_LINK_SPEED_CFG \
UINT32_C(0x20000)
*/
#define HWRM_ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_ILLEGAL_LINK_SPEED_CFG \
UINT32_C(0x20000)
-} __attribute__((packed));
/* hwrm_async_event_cmpl_port_phy_cfg_change (size:128b/16B) */
struct hwrm_async_event_cmpl_port_phy_cfg_change {
/* hwrm_async_event_cmpl_port_phy_cfg_change (size:128b/16B) */
struct hwrm_async_event_cmpl_port_phy_cfg_change {
*/
#define HWRM_ASYNC_EVENT_CMPL_PORT_PHY_CFG_CHANGE_EVENT_DATA1_PAUSE_CFG_CHANGE \
UINT32_C(0x40000)
*/
#define HWRM_ASYNC_EVENT_CMPL_PORT_PHY_CFG_CHANGE_EVENT_DATA1_PAUSE_CFG_CHANGE \
UINT32_C(0x40000)
-} __attribute__((packed));
/* hwrm_async_event_cmpl_reset_notify (size:128b/16B) */
struct hwrm_async_event_cmpl_reset_notify {
/* hwrm_async_event_cmpl_reset_notify (size:128b/16B) */
struct hwrm_async_event_cmpl_reset_notify {
UINT32_C(0xffff0000)
#define HWRM_ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DELAY_IN_100MS_TICKS_SFT \
16
UINT32_C(0xffff0000)
#define HWRM_ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DELAY_IN_100MS_TICKS_SFT \
16
-} __attribute__((packed));
/* hwrm_async_event_cmpl_error_recovery (size:128b/16B) */
struct hwrm_async_event_cmpl_error_recovery {
/* hwrm_async_event_cmpl_error_recovery (size:128b/16B) */
struct hwrm_async_event_cmpl_error_recovery {
*/
#define HWRM_ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_RECOVERY_ENABLED \
UINT32_C(0x2)
*/
#define HWRM_ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_RECOVERY_ENABLED \
UINT32_C(0x2)
-} __attribute__((packed));
/* hwrm_async_event_cmpl_func_drvr_unload (size:128b/16B) */
struct hwrm_async_event_cmpl_func_drvr_unload {
/* hwrm_async_event_cmpl_func_drvr_unload (size:128b/16B) */
struct hwrm_async_event_cmpl_func_drvr_unload {
UINT32_C(0xffff)
#define HWRM_ASYNC_EVENT_CMPL_FUNC_DRVR_UNLOAD_EVENT_DATA1_FUNC_ID_SFT \
0
UINT32_C(0xffff)
#define HWRM_ASYNC_EVENT_CMPL_FUNC_DRVR_UNLOAD_EVENT_DATA1_FUNC_ID_SFT \
0
-} __attribute__((packed));
/* hwrm_async_event_cmpl_func_drvr_load (size:128b/16B) */
struct hwrm_async_event_cmpl_func_drvr_load {
/* hwrm_async_event_cmpl_func_drvr_load (size:128b/16B) */
struct hwrm_async_event_cmpl_func_drvr_load {
#define HWRM_ASYNC_EVENT_CMPL_FUNC_DRVR_LOAD_EVENT_DATA1_FUNC_ID_MASK \
UINT32_C(0xffff)
#define HWRM_ASYNC_EVENT_CMPL_FUNC_DRVR_LOAD_EVENT_DATA1_FUNC_ID_SFT 0
#define HWRM_ASYNC_EVENT_CMPL_FUNC_DRVR_LOAD_EVENT_DATA1_FUNC_ID_MASK \
UINT32_C(0xffff)
#define HWRM_ASYNC_EVENT_CMPL_FUNC_DRVR_LOAD_EVENT_DATA1_FUNC_ID_SFT 0
-} __attribute__((packed));
/* hwrm_async_event_cmpl_func_flr_proc_cmplt (size:128b/16B) */
struct hwrm_async_event_cmpl_func_flr_proc_cmplt {
/* hwrm_async_event_cmpl_func_flr_proc_cmplt (size:128b/16B) */
struct hwrm_async_event_cmpl_func_flr_proc_cmplt {
UINT32_C(0xffff)
#define HWRM_ASYNC_EVENT_CMPL_FUNC_FLR_PROC_CMPLT_EVENT_DATA1_FUNC_ID_SFT \
0
UINT32_C(0xffff)
#define HWRM_ASYNC_EVENT_CMPL_FUNC_FLR_PROC_CMPLT_EVENT_DATA1_FUNC_ID_SFT \
0
-} __attribute__((packed));
/* hwrm_async_event_cmpl_pf_drvr_unload (size:128b/16B) */
struct hwrm_async_event_cmpl_pf_drvr_unload {
/* hwrm_async_event_cmpl_pf_drvr_unload (size:128b/16B) */
struct hwrm_async_event_cmpl_pf_drvr_unload {
#define HWRM_ASYNC_EVENT_CMPL_PF_DRVR_UNLOAD_EVENT_DATA1_PORT_MASK \
UINT32_C(0x70000)
#define HWRM_ASYNC_EVENT_CMPL_PF_DRVR_UNLOAD_EVENT_DATA1_PORT_SFT 16
#define HWRM_ASYNC_EVENT_CMPL_PF_DRVR_UNLOAD_EVENT_DATA1_PORT_MASK \
UINT32_C(0x70000)
#define HWRM_ASYNC_EVENT_CMPL_PF_DRVR_UNLOAD_EVENT_DATA1_PORT_SFT 16
-} __attribute__((packed));
/* hwrm_async_event_cmpl_pf_drvr_load (size:128b/16B) */
struct hwrm_async_event_cmpl_pf_drvr_load {
/* hwrm_async_event_cmpl_pf_drvr_load (size:128b/16B) */
struct hwrm_async_event_cmpl_pf_drvr_load {
#define HWRM_ASYNC_EVENT_CMPL_PF_DRVR_LOAD_EVENT_DATA1_PORT_MASK \
UINT32_C(0x70000)
#define HWRM_ASYNC_EVENT_CMPL_PF_DRVR_LOAD_EVENT_DATA1_PORT_SFT 16
#define HWRM_ASYNC_EVENT_CMPL_PF_DRVR_LOAD_EVENT_DATA1_PORT_MASK \
UINT32_C(0x70000)
#define HWRM_ASYNC_EVENT_CMPL_PF_DRVR_LOAD_EVENT_DATA1_PORT_SFT 16
-} __attribute__((packed));
/* hwrm_async_event_cmpl_vf_flr (size:128b/16B) */
struct hwrm_async_event_cmpl_vf_flr {
/* hwrm_async_event_cmpl_vf_flr (size:128b/16B) */
struct hwrm_async_event_cmpl_vf_flr {
#define HWRM_ASYNC_EVENT_CMPL_VF_FLR_EVENT_DATA1_PF_ID_MASK \
UINT32_C(0xff0000)
#define HWRM_ASYNC_EVENT_CMPL_VF_FLR_EVENT_DATA1_PF_ID_SFT 16
#define HWRM_ASYNC_EVENT_CMPL_VF_FLR_EVENT_DATA1_PF_ID_MASK \
UINT32_C(0xff0000)
#define HWRM_ASYNC_EVENT_CMPL_VF_FLR_EVENT_DATA1_PF_ID_SFT 16
-} __attribute__((packed));
/* hwrm_async_event_cmpl_vf_mac_addr_change (size:128b/16B) */
struct hwrm_async_event_cmpl_vf_mac_addr_change {
/* hwrm_async_event_cmpl_vf_mac_addr_change (size:128b/16B) */
struct hwrm_async_event_cmpl_vf_mac_addr_change {
UINT32_C(0xffff)
#define HWRM_ASYNC_EVENT_CMPL_VF_MAC_ADDR_CHANGE_EVENT_DATA1_VF_ID_SFT \
0
UINT32_C(0xffff)
#define HWRM_ASYNC_EVENT_CMPL_VF_MAC_ADDR_CHANGE_EVENT_DATA1_VF_ID_SFT \
0
-} __attribute__((packed));
/* hwrm_async_event_cmpl_pf_vf_comm_status_change (size:128b/16B) */
struct hwrm_async_event_cmpl_pf_vf_comm_status_change {
/* hwrm_async_event_cmpl_pf_vf_comm_status_change (size:128b/16B) */
struct hwrm_async_event_cmpl_pf_vf_comm_status_change {
*/
#define HWRM_ASYNC_EVENT_CMPL_PF_VF_COMM_STATUS_CHANGE_EVENT_DATA1_COMM_ESTABLISHED \
UINT32_C(0x1)
*/
#define HWRM_ASYNC_EVENT_CMPL_PF_VF_COMM_STATUS_CHANGE_EVENT_DATA1_COMM_ESTABLISHED \
UINT32_C(0x1)
-} __attribute__((packed));
/* hwrm_async_event_cmpl_vf_cfg_change (size:128b/16B) */
struct hwrm_async_event_cmpl_vf_cfg_change {
/* hwrm_async_event_cmpl_vf_cfg_change (size:128b/16B) */
struct hwrm_async_event_cmpl_vf_cfg_change {
*/
#define HWRM_ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_TRUSTED_VF_CFG_CHANGE \
UINT32_C(0x10)
*/
#define HWRM_ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_TRUSTED_VF_CFG_CHANGE \
UINT32_C(0x10)
-} __attribute__((packed));
/* hwrm_async_event_cmpl_llfc_pfc_change (size:128b/16B) */
struct hwrm_async_event_cmpl_llfc_pfc_change {
/* hwrm_async_event_cmpl_llfc_pfc_change (size:128b/16B) */
struct hwrm_async_event_cmpl_llfc_pfc_change {
UINT32_C(0x1fffe0)
#define HWRM_ASYNC_EVENT_CMPL_LLFC_PFC_CHANGE_EVENT_DATA1_PORT_ID_SFT \
5
UINT32_C(0x1fffe0)
#define HWRM_ASYNC_EVENT_CMPL_LLFC_PFC_CHANGE_EVENT_DATA1_PORT_ID_SFT \
5
-} __attribute__((packed));
/* hwrm_async_event_cmpl_default_vnic_change (size:128b/16B) */
struct hwrm_async_event_cmpl_default_vnic_change {
/* hwrm_async_event_cmpl_default_vnic_change (size:128b/16B) */
struct hwrm_async_event_cmpl_default_vnic_change {
UINT32_C(0x3fffc00)
#define HWRM_ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_VF_ID_SFT \
10
UINT32_C(0x3fffc00)
#define HWRM_ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_VF_ID_SFT \
10
-} __attribute__((packed));
/* hwrm_async_event_cmpl_hw_flow_aged (size:128b/16B) */
struct hwrm_async_event_cmpl_hw_flow_aged {
/* hwrm_async_event_cmpl_hw_flow_aged (size:128b/16B) */
struct hwrm_async_event_cmpl_hw_flow_aged {
(UINT32_C(0x1) << 31)
#define HWRM_ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_LAST \
HWRM_ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_TX
(UINT32_C(0x1) << 31)
#define HWRM_ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_LAST \
HWRM_ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_TX
-} __attribute__((packed));
/* hwrm_async_event_cmpl_eem_cache_flush_req (size:128b/16B) */
struct hwrm_async_event_cmpl_eem_cache_flush_req {
/* hwrm_async_event_cmpl_eem_cache_flush_req (size:128b/16B) */
struct hwrm_async_event_cmpl_eem_cache_flush_req {
uint16_t timestamp_hi;
/* Event specific data */
uint32_t event_data1;
uint16_t timestamp_hi;
/* Event specific data */
uint32_t event_data1;
-} __attribute__((packed));
/* hwrm_async_event_cmpl_eem_cache_flush_done (size:128b/16B) */
struct hwrm_async_event_cmpl_eem_cache_flush_done {
/* hwrm_async_event_cmpl_eem_cache_flush_done (size:128b/16B) */
struct hwrm_async_event_cmpl_eem_cache_flush_done {
UINT32_C(0xffff)
#define HWRM_ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_DATA1_FID_SFT \
0
UINT32_C(0xffff)
#define HWRM_ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_DATA1_FID_SFT \
0
-} __attribute__((packed));
/* hwrm_async_event_cmpl_tcp_flag_action_change (size:128b/16B) */
struct hwrm_async_event_cmpl_tcp_flag_action_change {
/* hwrm_async_event_cmpl_tcp_flag_action_change (size:128b/16B) */
struct hwrm_async_event_cmpl_tcp_flag_action_change {
uint16_t timestamp_hi;
/* Event specific data */
uint32_t event_data1;
uint16_t timestamp_hi;
/* Event specific data */
uint32_t event_data1;
-} __attribute__((packed));
/* hwrm_async_event_cmpl_eem_flow_active (size:128b/16B) */
struct hwrm_async_event_cmpl_eem_flow_active {
/* hwrm_async_event_cmpl_eem_flow_active (size:128b/16B) */
struct hwrm_async_event_cmpl_eem_flow_active {
(UINT32_C(0x1) << 31)
#define HWRM_ASYNC_EVENT_CMPL_EEM_FLOW_ACTIVE_EVENT_DATA1_MODE_LAST \
HWRM_ASYNC_EVENT_CMPL_EEM_FLOW_ACTIVE_EVENT_DATA1_MODE_1
(UINT32_C(0x1) << 31)
#define HWRM_ASYNC_EVENT_CMPL_EEM_FLOW_ACTIVE_EVENT_DATA1_MODE_LAST \
HWRM_ASYNC_EVENT_CMPL_EEM_FLOW_ACTIVE_EVENT_DATA1_MODE_1
-} __attribute__((packed));
/* hwrm_async_event_cmpl_eem_cfg_change (size:128b/16B) */
struct hwrm_async_event_cmpl_eem_cfg_change {
/* hwrm_async_event_cmpl_eem_cfg_change (size:128b/16B) */
struct hwrm_async_event_cmpl_eem_cfg_change {
*/
#define HWRM_ASYNC_EVENT_CMPL_EEM_CFG_CHANGE_EVENT_DATA1_EEM_RX_ENABLE \
UINT32_C(0x2)
*/
#define HWRM_ASYNC_EVENT_CMPL_EEM_CFG_CHANGE_EVENT_DATA1_EEM_RX_ENABLE \
UINT32_C(0x2)
-} __attribute__((packed));
/* hwrm_async_event_cmpl_quiesce_done (size:128b/16B) */
struct hwrm_async_event_cmpl_quiesce_done {
/* hwrm_async_event_cmpl_quiesce_done (size:128b/16B) */
struct hwrm_async_event_cmpl_quiesce_done {
/* Time stamp for error event */
#define HWRM_ASYNC_EVENT_CMPL_QUIESCE_DONE_EVENT_DATA1_TIMESTAMP \
UINT32_C(0x1)
/* Time stamp for error event */
#define HWRM_ASYNC_EVENT_CMPL_QUIESCE_DONE_EVENT_DATA1_TIMESTAMP \
UINT32_C(0x1)
-} __attribute__((packed));
/* hwrm_async_event_cmpl_fw_trace_msg (size:128b/16B) */
struct hwrm_async_event_cmpl_fw_trace_msg {
/* hwrm_async_event_cmpl_fw_trace_msg (size:128b/16B) */
struct hwrm_async_event_cmpl_fw_trace_msg {
#define HWRM_ASYNC_EVENT_CMPL_FW_TRACE_MSG_EVENT_DATA1_BYTE9_MASK \
UINT32_C(0xff000000)
#define HWRM_ASYNC_EVENT_CMPL_FW_TRACE_MSG_EVENT_DATA1_BYTE9_SFT 24
#define HWRM_ASYNC_EVENT_CMPL_FW_TRACE_MSG_EVENT_DATA1_BYTE9_MASK \
UINT32_C(0xff000000)
#define HWRM_ASYNC_EVENT_CMPL_FW_TRACE_MSG_EVENT_DATA1_BYTE9_SFT 24
-} __attribute__((packed));
/* hwrm_async_event_cmpl_hwrm_error (size:128b/16B) */
struct hwrm_async_event_cmpl_hwrm_error {
/* hwrm_async_event_cmpl_hwrm_error (size:128b/16B) */
struct hwrm_async_event_cmpl_hwrm_error {
/* Time stamp for error event */
#define HWRM_ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA1_TIMESTAMP \
UINT32_C(0x1)
/* Time stamp for error event */
#define HWRM_ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA1_TIMESTAMP \
UINT32_C(0x1)
-} __attribute__((packed));
/*******************
* hwrm_func_reset *
/*******************
* hwrm_func_reset *
#define HWRM_FUNC_RESET_INPUT_FUNC_RESET_LEVEL_LAST \
HWRM_FUNC_RESET_INPUT_FUNC_RESET_LEVEL_RESETVF
uint8_t unused_0;
#define HWRM_FUNC_RESET_INPUT_FUNC_RESET_LEVEL_LAST \
HWRM_FUNC_RESET_INPUT_FUNC_RESET_LEVEL_RESETVF
uint8_t unused_0;
-} __attribute__((packed));
/* hwrm_func_reset_output (size:128b/16B) */
struct hwrm_func_reset_output {
/* hwrm_func_reset_output (size:128b/16B) */
struct hwrm_func_reset_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/********************
* hwrm_func_getfid *
/********************
* hwrm_func_getfid *
*/
uint16_t pci_id;
uint8_t unused_0[2];
*/
uint16_t pci_id;
uint8_t unused_0[2];
-} __attribute__((packed));
/* hwrm_func_getfid_output (size:128b/16B) */
struct hwrm_func_getfid_output {
/* hwrm_func_getfid_output (size:128b/16B) */
struct hwrm_func_getfid_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************
* hwrm_func_vf_alloc *
/**********************
* hwrm_func_vf_alloc *
uint16_t first_vf_id;
/* The number of virtual functions requested. */
uint16_t num_vfs;
uint16_t first_vf_id;
/* The number of virtual functions requested. */
uint16_t num_vfs;
-} __attribute__((packed));
/* hwrm_func_vf_alloc_output (size:128b/16B) */
struct hwrm_func_vf_alloc_output {
/* hwrm_func_vf_alloc_output (size:128b/16B) */
struct hwrm_func_vf_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*********************
* hwrm_func_vf_free *
/*********************
* hwrm_func_vf_free *
* 0xFFFF - Cleanup all children of this PF.
*/
uint16_t num_vfs;
* 0xFFFF - Cleanup all children of this PF.
*/
uint16_t num_vfs;
-} __attribute__((packed));
/* hwrm_func_vf_free_output (size:128b/16B) */
struct hwrm_func_vf_free_output {
/* hwrm_func_vf_free_output (size:128b/16B) */
struct hwrm_func_vf_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/********************
* hwrm_func_vf_cfg *
/********************
* hwrm_func_vf_cfg *
/* The number of HW ring groups requested for the VF. */
uint16_t num_hw_ring_grps;
uint8_t unused_0[4];
/* The number of HW ring groups requested for the VF. */
uint16_t num_hw_ring_grps;
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_func_vf_cfg_output (size:128b/16B) */
struct hwrm_func_vf_cfg_output {
/* hwrm_func_vf_cfg_output (size:128b/16B) */
struct hwrm_func_vf_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*******************
* hwrm_func_qcaps *
/*******************
* hwrm_func_qcaps *
*/
uint16_t fid;
uint8_t unused_0[6];
*/
uint16_t fid;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_func_qcaps_output (size:640b/80B) */
struct hwrm_func_qcaps_output {
/* hwrm_func_qcaps_output (size:640b/80B) */
struct hwrm_func_qcaps_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/******************
* hwrm_func_qcfg *
/******************
* hwrm_func_qcfg *
*/
uint16_t fid;
uint8_t unused_0[6];
*/
uint16_t fid;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_func_qcfg_output (size:704b/88B) */
struct hwrm_func_qcfg_output {
/* hwrm_func_qcfg_output (size:704b/88B) */
struct hwrm_func_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*****************
* hwrm_func_cfg *
/*****************
* hwrm_func_cfg *
* be reserved for this function on the RX side.
*/
uint16_t num_mcast_filters;
* be reserved for this function on the RX side.
*/
uint16_t num_mcast_filters;
-} __attribute__((packed));
/* hwrm_func_cfg_output (size:128b/16B) */
struct hwrm_func_cfg_output {
/* hwrm_func_cfg_output (size:128b/16B) */
struct hwrm_func_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/********************
* hwrm_func_qstats *
/********************
* hwrm_func_qstats *
#define HWRM_FUNC_QSTATS_INPUT_FLAGS_LAST \
HWRM_FUNC_QSTATS_INPUT_FLAGS_ROCE_ONLY
uint8_t unused_0[5];
#define HWRM_FUNC_QSTATS_INPUT_FLAGS_LAST \
HWRM_FUNC_QSTATS_INPUT_FLAGS_ROCE_ONLY
uint8_t unused_0[5];
-} __attribute__((packed));
/* hwrm_func_qstats_output (size:1408b/176B) */
struct hwrm_func_qstats_output {
/* hwrm_func_qstats_output (size:1408b/176B) */
struct hwrm_func_qstats_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***********************
* hwrm_func_clr_stats *
/***********************
* hwrm_func_clr_stats *
*/
uint16_t fid;
uint8_t unused_0[6];
*/
uint16_t fid;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_func_clr_stats_output (size:128b/16B) */
struct hwrm_func_clr_stats_output {
/* hwrm_func_clr_stats_output (size:128b/16B) */
struct hwrm_func_clr_stats_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**************************
* hwrm_func_vf_resc_free *
/**************************
* hwrm_func_vf_resc_free *
*/
uint16_t vf_id;
uint8_t unused_0[6];
*/
uint16_t vf_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_func_vf_resc_free_output (size:128b/16B) */
struct hwrm_func_vf_resc_free_output {
/* hwrm_func_vf_resc_free_output (size:128b/16B) */
struct hwrm_func_vf_resc_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************
* hwrm_func_drv_rgtr *
/**********************
* hwrm_func_drv_rgtr *
uint16_t ver_upd;
/* This is the 16bit patch version of the driver. */
uint16_t ver_patch;
uint16_t ver_upd;
/* This is the 16bit patch version of the driver. */
uint16_t ver_patch;
-} __attribute__((packed));
/* hwrm_func_drv_rgtr_output (size:128b/16B) */
struct hwrm_func_drv_rgtr_output {
/* hwrm_func_drv_rgtr_output (size:128b/16B) */
struct hwrm_func_drv_rgtr_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/************************
* hwrm_func_drv_unrgtr *
/************************
* hwrm_func_drv_unrgtr *
#define HWRM_FUNC_DRV_UNRGTR_INPUT_FLAGS_PREPARE_FOR_SHUTDOWN \
UINT32_C(0x1)
uint8_t unused_0[4];
#define HWRM_FUNC_DRV_UNRGTR_INPUT_FLAGS_PREPARE_FOR_SHUTDOWN \
UINT32_C(0x1)
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_func_drv_unrgtr_output (size:128b/16B) */
struct hwrm_func_drv_unrgtr_output {
/* hwrm_func_drv_unrgtr_output (size:128b/16B) */
struct hwrm_func_drv_unrgtr_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************
* hwrm_func_buf_rgtr *
/**********************
* hwrm_func_buf_rgtr *
* HWRM.
*/
uint64_t resp_buf_addr;
* HWRM.
*/
uint64_t resp_buf_addr;
-} __attribute__((packed));
/* hwrm_func_buf_rgtr_output (size:128b/16B) */
struct hwrm_func_buf_rgtr_output {
/* hwrm_func_buf_rgtr_output (size:128b/16B) */
struct hwrm_func_buf_rgtr_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/************************
* hwrm_func_buf_unrgtr *
/************************
* hwrm_func_buf_unrgtr *
*/
uint16_t vf_id;
uint8_t unused_0[2];
*/
uint16_t vf_id;
uint8_t unused_0[2];
-} __attribute__((packed));
/* hwrm_func_buf_unrgtr_output (size:128b/16B) */
struct hwrm_func_buf_unrgtr_output {
/* hwrm_func_buf_unrgtr_output (size:128b/16B) */
struct hwrm_func_buf_unrgtr_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************
* hwrm_func_drv_qver *
/**********************
* hwrm_func_drv_qver *
*/
uint16_t fid;
uint8_t unused_0[2];
*/
uint16_t fid;
uint8_t unused_0[2];
-} __attribute__((packed));
/* hwrm_func_drv_qver_output (size:256b/32B) */
struct hwrm_func_drv_qver_output {
/* hwrm_func_drv_qver_output (size:256b/32B) */
struct hwrm_func_drv_qver_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/****************************
* hwrm_func_resource_qcaps *
/****************************
* hwrm_func_resource_qcaps *
*/
uint16_t fid;
uint8_t unused_0[6];
*/
uint16_t fid;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_func_resource_qcaps_output (size:448b/56B) */
struct hwrm_func_resource_qcaps_output {
/* hwrm_func_resource_qcaps_output (size:448b/56B) */
struct hwrm_func_resource_qcaps_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*********************************
* hwrm_func_backing_store_qcaps *
/*********************************
* hwrm_func_backing_store_qcaps *
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
-} __attribute__((packed));
/* hwrm_func_backing_store_qcaps_output (size:640b/80B) */
struct hwrm_func_backing_store_qcaps_output {
/* hwrm_func_backing_store_qcaps_output (size:640b/80B) */
struct hwrm_func_backing_store_qcaps_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*******************************
* hwrm_func_backing_store_cfg *
/*******************************
* hwrm_func_backing_store_cfg *
uint16_t mrav_entry_size;
/* Number of bytes that have been allocated for each context entry. */
uint16_t tim_entry_size;
uint16_t mrav_entry_size;
/* Number of bytes that have been allocated for each context entry. */
uint16_t tim_entry_size;
-} __attribute__((packed));
/* hwrm_func_backing_store_cfg_output (size:128b/16B) */
struct hwrm_func_backing_store_cfg_output {
/* hwrm_func_backing_store_cfg_output (size:128b/16B) */
struct hwrm_func_backing_store_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/********************************
* hwrm_func_backing_store_qcfg *
/********************************
* hwrm_func_backing_store_qcfg *
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
-} __attribute__((packed));
/* hwrm_func_backing_store_qcfg_output (size:1920b/240B) */
struct hwrm_func_backing_store_qcfg_output {
/* hwrm_func_backing_store_qcfg_output (size:1920b/240B) */
struct hwrm_func_backing_store_qcfg_output {
* is written last.
*/
uint8_t valid;
* is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/****************************
* hwrm_error_recovery_qcfg *
/****************************
* hwrm_error_recovery_qcfg *
*/
uint64_t resp_addr;
uint8_t unused_0[8];
*/
uint64_t resp_addr;
uint8_t unused_0[8];
-} __attribute__((packed));
/* hwrm_error_recovery_qcfg_output (size:1664b/208B) */
struct hwrm_error_recovery_qcfg_output {
/* hwrm_error_recovery_qcfg_output (size:1664b/208B) */
struct hwrm_error_recovery_qcfg_output {
* is written last.
*/
uint8_t valid;
* is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***********************
* hwrm_func_vlan_qcfg *
/***********************
* hwrm_func_vlan_qcfg *
*/
uint16_t fid;
uint8_t unused_0[6];
*/
uint16_t fid;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_func_vlan_qcfg_output (size:320b/40B) */
struct hwrm_func_vlan_qcfg_output {
/* hwrm_func_vlan_qcfg_output (size:320b/40B) */
struct hwrm_func_vlan_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************
* hwrm_func_vlan_cfg *
/**********************
* hwrm_func_vlan_cfg *
/* Future use. */
uint32_t rsvd2;
uint8_t unused_3[4];
/* Future use. */
uint32_t rsvd2;
uint8_t unused_3[4];
-} __attribute__((packed));
/* hwrm_func_vlan_cfg_output (size:128b/16B) */
struct hwrm_func_vlan_cfg_output {
/* hwrm_func_vlan_cfg_output (size:128b/16B) */
struct hwrm_func_vlan_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*******************************
* hwrm_func_vf_vnic_ids_query *
/*******************************
* hwrm_func_vf_vnic_ids_query *
uint32_t max_vnic_id_cnt;
/* This is the address for VF VNIC ID table */
uint64_t vnic_id_tbl_addr;
uint32_t max_vnic_id_cnt;
/* This is the address for VF VNIC ID table */
uint64_t vnic_id_tbl_addr;
-} __attribute__((packed));
/* hwrm_func_vf_vnic_ids_query_output (size:128b/16B) */
struct hwrm_func_vf_vnic_ids_query_output {
/* hwrm_func_vf_vnic_ids_query_output (size:128b/16B) */
struct hwrm_func_vf_vnic_ids_query_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***********************
* hwrm_func_vf_bw_cfg *
/***********************
* hwrm_func_vf_bw_cfg *
(UINT32_C(0xf) << 12)
#define HWRM_FUNC_VF_BW_CFG_INPUT_VFN_RATE_LAST \
HWRM_FUNC_VF_BW_CFG_INPUT_VFN_RATE_PCT_100
(UINT32_C(0xf) << 12)
#define HWRM_FUNC_VF_BW_CFG_INPUT_VFN_RATE_LAST \
HWRM_FUNC_VF_BW_CFG_INPUT_VFN_RATE_PCT_100
-} __attribute__((packed));
/* hwrm_func_vf_bw_cfg_output (size:128b/16B) */
struct hwrm_func_vf_bw_cfg_output {
/* hwrm_func_vf_bw_cfg_output (size:128b/16B) */
struct hwrm_func_vf_bw_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/************************
* hwrm_func_vf_bw_qcfg *
/************************
* hwrm_func_vf_bw_qcfg *
/* The physical VF id of interest */
#define HWRM_FUNC_VF_BW_QCFG_INPUT_VFN_VFID_MASK UINT32_C(0xfff)
#define HWRM_FUNC_VF_BW_QCFG_INPUT_VFN_VFID_SFT 0
/* The physical VF id of interest */
#define HWRM_FUNC_VF_BW_QCFG_INPUT_VFN_VFID_MASK UINT32_C(0xfff)
#define HWRM_FUNC_VF_BW_QCFG_INPUT_VFN_VFID_SFT 0
-} __attribute__((packed));
/* hwrm_func_vf_bw_qcfg_output (size:960b/120B) */
struct hwrm_func_vf_bw_qcfg_output {
/* hwrm_func_vf_bw_qcfg_output (size:960b/120B) */
struct hwrm_func_vf_bw_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***************************
* hwrm_func_drv_if_change *
/***************************
* hwrm_func_drv_if_change *
*/
#define HWRM_FUNC_DRV_IF_CHANGE_INPUT_FLAGS_UP UINT32_C(0x1)
uint32_t unused;
*/
#define HWRM_FUNC_DRV_IF_CHANGE_INPUT_FLAGS_UP UINT32_C(0x1)
uint32_t unused;
-} __attribute__((packed));
/* hwrm_func_drv_if_change_output (size:128b/16B) */
struct hwrm_func_drv_if_change_output {
/* hwrm_func_drv_if_change_output (size:128b/16B) */
struct hwrm_func_drv_if_change_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*******************************
* hwrm_func_host_pf_ids_query *
/*******************************
* hwrm_func_host_pf_ids_query *
#define HWRM_FUNC_HOST_PF_IDS_QUERY_INPUT_FILTER_LAST \
HWRM_FUNC_HOST_PF_IDS_QUERY_INPUT_FILTER_ROCE
uint8_t unused_1[6];
#define HWRM_FUNC_HOST_PF_IDS_QUERY_INPUT_FILTER_LAST \
HWRM_FUNC_HOST_PF_IDS_QUERY_INPUT_FILTER_ROCE
uint8_t unused_1[6];
-} __attribute__((packed));
/* hwrm_func_host_pf_ids_query_output (size:128b/16B) */
struct hwrm_func_host_pf_ids_query_output {
/* hwrm_func_host_pf_ids_query_output (size:128b/16B) */
struct hwrm_func_host_pf_ids_query_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*********************
* hwrm_port_phy_cfg *
/*********************
* hwrm_port_phy_cfg *
#define HWRM_PORT_PHY_CFG_INPUT_TX_LPI_TIMER_MASK UINT32_C(0xffffff)
#define HWRM_PORT_PHY_CFG_INPUT_TX_LPI_TIMER_SFT 0
uint32_t unused_3;
#define HWRM_PORT_PHY_CFG_INPUT_TX_LPI_TIMER_MASK UINT32_C(0xffffff)
#define HWRM_PORT_PHY_CFG_INPUT_TX_LPI_TIMER_SFT 0
uint32_t unused_3;
-} __attribute__((packed));
/* hwrm_port_phy_cfg_output (size:128b/16B) */
struct hwrm_port_phy_cfg_output {
/* hwrm_port_phy_cfg_output (size:128b/16B) */
struct hwrm_port_phy_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* hwrm_port_phy_cfg_cmd_err (size:64b/8B) */
struct hwrm_port_phy_cfg_cmd_err {
/* hwrm_port_phy_cfg_cmd_err (size:64b/8B) */
struct hwrm_port_phy_cfg_cmd_err {
#define HWRM_PORT_PHY_CFG_CMD_ERR_CODE_LAST \
HWRM_PORT_PHY_CFG_CMD_ERR_CODE_RETRY
uint8_t unused_0[7];
#define HWRM_PORT_PHY_CFG_CMD_ERR_CODE_LAST \
HWRM_PORT_PHY_CFG_CMD_ERR_CODE_RETRY
uint8_t unused_0[7];
-} __attribute__((packed));
/**********************
* hwrm_port_phy_qcfg *
/**********************
* hwrm_port_phy_qcfg *
/* Port ID of port that is to be queried. */
uint16_t port_id;
uint8_t unused_0[6];
/* Port ID of port that is to be queried. */
uint16_t port_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_port_phy_qcfg_output (size:768b/96B) */
struct hwrm_port_phy_qcfg_output {
/* hwrm_port_phy_qcfg_output (size:768b/96B) */
struct hwrm_port_phy_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*********************
* hwrm_port_mac_cfg *
/*********************
* hwrm_port_mac_cfg *
*/
int32_t ptp_freq_adj_ppb;
uint8_t unused_1[4];
*/
int32_t ptp_freq_adj_ppb;
uint8_t unused_1[4];
-} __attribute__((packed));
/* hwrm_port_mac_cfg_output (size:128b/16B) */
struct hwrm_port_mac_cfg_output {
/* hwrm_port_mac_cfg_output (size:128b/16B) */
struct hwrm_port_mac_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************
* hwrm_port_mac_qcfg *
/**********************
* hwrm_port_mac_qcfg *
/* Port ID of port that is to be configured. */
uint16_t port_id;
uint8_t unused_0[6];
/* Port ID of port that is to be configured. */
uint16_t port_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_port_mac_qcfg_output (size:192b/24B) */
struct hwrm_port_mac_qcfg_output {
/* hwrm_port_mac_qcfg_output (size:192b/24B) */
struct hwrm_port_mac_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**************************
* hwrm_port_mac_ptp_qcfg *
/**************************
* hwrm_port_mac_ptp_qcfg *
/* Port ID of port that is being queried. */
uint16_t port_id;
uint8_t unused_0[6];
/* Port ID of port that is being queried. */
uint16_t port_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_port_mac_ptp_qcfg_output (size:640b/80B) */
struct hwrm_port_mac_ptp_qcfg_output {
/* hwrm_port_mac_ptp_qcfg_output (size:640b/80B) */
struct hwrm_port_mac_ptp_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* Port Tx Statistics Formats */
/* tx_port_stats (size:3264b/408B) */
/* Port Tx Statistics Formats */
/* tx_port_stats (size:3264b/408B) */
uint64_t tx_stat_discard;
/* Total Tx Error Drops per Port reported by STATS block */
uint64_t tx_stat_error;
uint64_t tx_stat_discard;
/* Total Tx Error Drops per Port reported by STATS block */
uint64_t tx_stat_error;
-} __attribute__((packed));
/* Port Rx Statistics Formats */
/* rx_port_stats (size:4224b/528B) */
/* Port Rx Statistics Formats */
/* rx_port_stats (size:4224b/528B) */
/* Total Rx Discards per Port reported by STATS block */
uint64_t rx_stat_discard;
uint64_t rx_stat_err;
/* Total Rx Discards per Port reported by STATS block */
uint64_t rx_stat_discard;
uint64_t rx_stat_err;
-} __attribute__((packed));
/********************
* hwrm_port_qstats *
/********************
* hwrm_port_qstats *
* Rx port statistics will be stored
*/
uint64_t rx_stat_host_addr;
* Rx port statistics will be stored
*/
uint64_t rx_stat_host_addr;
-} __attribute__((packed));
/* hwrm_port_qstats_output (size:128b/16B) */
struct hwrm_port_qstats_output {
/* hwrm_port_qstats_output (size:128b/16B) */
struct hwrm_port_qstats_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* Port Tx Statistics extended Formats */
/* tx_port_stats_ext (size:2048b/256B) */
/* Port Tx Statistics extended Formats */
/* tx_port_stats_ext (size:2048b/256B) */
uint64_t pfc_pri7_tx_duration_us;
/* Number of times, a XON -> XOFF and XOFF -> XON transitions occur for priority 7 */
uint64_t pfc_pri7_tx_transitions;
uint64_t pfc_pri7_tx_duration_us;
/* Number of times, a XON -> XOFF and XOFF -> XON transitions occur for priority 7 */
uint64_t pfc_pri7_tx_transitions;
-} __attribute__((packed));
/* Port Rx Statistics extended Formats */
/* rx_port_stats_ext (size:3648b/456B) */
/* Port Rx Statistics extended Formats */
/* rx_port_stats_ext (size:3648b/456B) */
uint64_t rx_discard_packets_cos6;
/* Total number of rx discard packets count on cos queue 7 */
uint64_t rx_discard_packets_cos7;
uint64_t rx_discard_packets_cos6;
/* Total number of rx discard packets count on cos queue 7 */
uint64_t rx_discard_packets_cos7;
-} __attribute__((packed));
/************************
* hwrm_port_qstats_ext *
/************************
* hwrm_port_qstats_ext *
* Rx port statistics will be stored
*/
uint64_t rx_stat_host_addr;
* Rx port statistics will be stored
*/
uint64_t rx_stat_host_addr;
-} __attribute__((packed));
/* hwrm_port_qstats_ext_output (size:128b/16B) */
struct hwrm_port_qstats_ext_output {
/* hwrm_port_qstats_ext_output (size:128b/16B) */
struct hwrm_port_qstats_ext_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*************************
* hwrm_port_lpbk_qstats *
/*************************
* hwrm_port_lpbk_qstats *
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
-} __attribute__((packed));
/* hwrm_port_lpbk_qstats_output (size:768b/96B) */
struct hwrm_port_lpbk_qstats_output {
/* hwrm_port_lpbk_qstats_output (size:768b/96B) */
struct hwrm_port_lpbk_qstats_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***********************
* hwrm_port_clr_stats *
/***********************
* hwrm_port_clr_stats *
*/
#define HWRM_PORT_CLR_STATS_INPUT_FLAGS_ROCE_COUNTERS UINT32_C(0x1)
uint8_t unused_0[5];
*/
#define HWRM_PORT_CLR_STATS_INPUT_FLAGS_ROCE_COUNTERS UINT32_C(0x1)
uint8_t unused_0[5];
-} __attribute__((packed));
/* hwrm_port_clr_stats_output (size:128b/16B) */
struct hwrm_port_clr_stats_output {
/* hwrm_port_clr_stats_output (size:128b/16B) */
struct hwrm_port_clr_stats_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***********************
* hwrm_port_phy_qcaps *
/***********************
* hwrm_port_phy_qcaps *
/* Port ID of port that is being queried. */
uint16_t port_id;
uint8_t unused_0[6];
/* Port ID of port that is being queried. */
uint16_t port_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_port_phy_qcaps_output (size:192b/24B) */
struct hwrm_port_phy_qcaps_output {
/* hwrm_port_phy_qcaps_output (size:192b/24B) */
struct hwrm_port_phy_qcaps_output {
#define HWRM_PORT_PHY_QCAPS_OUTPUT_VALID_MASK \
UINT32_C(0xff000000)
#define HWRM_PORT_PHY_QCAPS_OUTPUT_VALID_SFT 24
#define HWRM_PORT_PHY_QCAPS_OUTPUT_VALID_MASK \
UINT32_C(0xff000000)
#define HWRM_PORT_PHY_QCAPS_OUTPUT_VALID_SFT 24
-} __attribute__((packed));
/****************************
* hwrm_port_phy_mdio_write *
/****************************
* hwrm_port_phy_mdio_write *
uint8_t cl45_mdio;
/* */
uint8_t unused_1[7];
uint8_t cl45_mdio;
/* */
uint8_t unused_1[7];
-} __attribute__((packed));
/* hwrm_port_phy_mdio_write_output (size:128b/16B) */
struct hwrm_port_phy_mdio_write_output {
/* hwrm_port_phy_mdio_write_output (size:128b/16B) */
struct hwrm_port_phy_mdio_write_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***************************
* hwrm_port_phy_mdio_read *
/***************************
* hwrm_port_phy_mdio_read *
uint8_t cl45_mdio;
/* */
uint8_t unused_1;
uint8_t cl45_mdio;
/* */
uint8_t unused_1;
-} __attribute__((packed));
/* hwrm_port_phy_mdio_read_output (size:128b/16B) */
struct hwrm_port_phy_mdio_read_output {
/* hwrm_port_phy_mdio_read_output (size:128b/16B) */
struct hwrm_port_phy_mdio_read_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*********************
* hwrm_port_led_cfg *
/*********************
* hwrm_port_led_cfg *
uint8_t led3_group_id;
/* Reserved field. */
uint8_t rsvd3;
uint8_t led3_group_id;
/* Reserved field. */
uint8_t rsvd3;
-} __attribute__((packed));
/* hwrm_port_led_cfg_output (size:128b/16B) */
struct hwrm_port_led_cfg_output {
/* hwrm_port_led_cfg_output (size:128b/16B) */
struct hwrm_port_led_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************
* hwrm_port_led_qcfg *
/**********************
* hwrm_port_led_qcfg *
/* Port ID of port whose LED configuration is being queried. */
uint16_t port_id;
uint8_t unused_0[6];
/* Port ID of port whose LED configuration is being queried. */
uint16_t port_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_port_led_qcfg_output (size:448b/56B) */
struct hwrm_port_led_qcfg_output {
/* hwrm_port_led_qcfg_output (size:448b/56B) */
struct hwrm_port_led_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***********************
* hwrm_port_led_qcaps *
/***********************
* hwrm_port_led_qcaps *
/* Port ID of port whose LED configuration is being queried. */
uint16_t port_id;
uint8_t unused_0[6];
/* Port ID of port whose LED configuration is being queried. */
uint16_t port_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_port_led_qcaps_output (size:384b/48B) */
struct hwrm_port_led_qcaps_output {
/* hwrm_port_led_qcaps_output (size:384b/48B) */
struct hwrm_port_led_qcaps_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***********************
* hwrm_port_prbs_test *
/***********************
* hwrm_port_prbs_test *
* bit1 = lane1 ..bit31 = lane31
*/
uint32_t rx_lane_map;
* bit1 = lane1 ..bit31 = lane31
*/
uint32_t rx_lane_map;
-} __attribute__((packed));
/* hwrm_port_prbs_test_output (size:128b/16B) */
struct hwrm_port_prbs_test_output {
/* hwrm_port_prbs_test_output (size:128b/16B) */
struct hwrm_port_prbs_test_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************
* hwrm_port_dsc_dump *
/**********************
* hwrm_port_dsc_dump *
*/
#define HWRM_PORT_DSC_DUMP_INPUT_DSC_DUMP_CONFIG_START_RETRIEVE \
UINT32_C(0x1)
*/
#define HWRM_PORT_DSC_DUMP_INPUT_DSC_DUMP_CONFIG_START_RETRIEVE \
UINT32_C(0x1)
-} __attribute__((packed));
/* hwrm_port_dsc_dump_output (size:128b/16B) */
struct hwrm_port_dsc_dump_output {
/* hwrm_port_dsc_dump_output (size:128b/16B) */
struct hwrm_port_dsc_dump_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/******************************
* hwrm_port_sfp_sideband_cfg *
/******************************
* hwrm_port_sfp_sideband_cfg *
/* When this bit is set to '1', the module will be powered down. */
#define HWRM_PORT_SFP_SIDEBAND_CFG_INPUT_FLAGS_PWR_DIS \
UINT32_C(0x40)
/* When this bit is set to '1', the module will be powered down. */
#define HWRM_PORT_SFP_SIDEBAND_CFG_INPUT_FLAGS_PWR_DIS \
UINT32_C(0x40)
-} __attribute__((packed));
/* hwrm_port_sfp_sideband_cfg_output (size:128b/16B) */
struct hwrm_port_sfp_sideband_cfg_output {
/* hwrm_port_sfp_sideband_cfg_output (size:128b/16B) */
struct hwrm_port_sfp_sideband_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*******************************
* hwrm_port_sfp_sideband_qcfg *
/*******************************
* hwrm_port_sfp_sideband_qcfg *
/* Port ID of port that is to be queried. */
uint16_t port_id;
uint8_t unused_0[6];
/* Port ID of port that is to be queried. */
uint16_t port_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_port_sfp_sideband_qcfg_output (size:192b/24B) */
struct hwrm_port_sfp_sideband_qcfg_output {
/* hwrm_port_sfp_sideband_qcfg_output (size:192b/24B) */
struct hwrm_port_sfp_sideband_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************************
* hwrm_port_phy_mdio_bus_acquire *
/**********************************
* hwrm_port_phy_mdio_bus_acquire *
*/
uint16_t mdio_bus_timeout;
uint8_t unused_0[2];
*/
uint16_t mdio_bus_timeout;
uint8_t unused_0[2];
-} __attribute__((packed));
/* hwrm_port_phy_mdio_bus_acquire_output (size:128b/16B) */
struct hwrm_port_phy_mdio_bus_acquire_output {
/* hwrm_port_phy_mdio_bus_acquire_output (size:128b/16B) */
struct hwrm_port_phy_mdio_bus_acquire_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************************
* hwrm_port_phy_mdio_bus_release *
/**********************************
* hwrm_port_phy_mdio_bus_release *
*/
uint16_t client_id;
uint8_t unused_0[4];
*/
uint16_t client_id;
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_port_phy_mdio_bus_release_output (size:128b/16B) */
struct hwrm_port_phy_mdio_bus_release_output {
/* hwrm_port_phy_mdio_bus_release_output (size:128b/16B) */
struct hwrm_port_phy_mdio_bus_release_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***********************
* hwrm_queue_qportcfg *
/***********************
* hwrm_queue_qportcfg *
#define HWRM_QUEUE_QPORTCFG_INPUT_DRV_QMAP_CAP_LAST \
HWRM_QUEUE_QPORTCFG_INPUT_DRV_QMAP_CAP_ENABLED
uint8_t unused_0;
#define HWRM_QUEUE_QPORTCFG_INPUT_DRV_QMAP_CAP_LAST \
HWRM_QUEUE_QPORTCFG_INPUT_DRV_QMAP_CAP_ENABLED
uint8_t unused_0;
-} __attribute__((packed));
/* hwrm_queue_qportcfg_output (size:256b/32B) */
struct hwrm_queue_qportcfg_output {
/* hwrm_queue_qportcfg_output (size:256b/32B) */
struct hwrm_queue_qportcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*******************
* hwrm_queue_qcfg *
/*******************
* hwrm_queue_qcfg *
HWRM_QUEUE_QCFG_INPUT_FLAGS_PATH_RX
/* Queue ID of the queue. */
uint32_t queue_id;
HWRM_QUEUE_QCFG_INPUT_FLAGS_PATH_RX
/* Queue ID of the queue. */
uint32_t queue_id;
-} __attribute__((packed));
/* hwrm_queue_qcfg_output (size:128b/16B) */
struct hwrm_queue_qcfg_output {
/* hwrm_queue_qcfg_output (size:128b/16B) */
struct hwrm_queue_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/******************
* hwrm_queue_cfg *
/******************
* hwrm_queue_cfg *
#define HWRM_QUEUE_CFG_INPUT_SERVICE_PROFILE_LAST \
HWRM_QUEUE_CFG_INPUT_SERVICE_PROFILE_UNKNOWN
uint8_t unused_0[7];
#define HWRM_QUEUE_CFG_INPUT_SERVICE_PROFILE_LAST \
HWRM_QUEUE_CFG_INPUT_SERVICE_PROFILE_UNKNOWN
uint8_t unused_0[7];
-} __attribute__((packed));
/* hwrm_queue_cfg_output (size:128b/16B) */
struct hwrm_queue_cfg_output {
/* hwrm_queue_cfg_output (size:128b/16B) */
struct hwrm_queue_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*****************************
* hwrm_queue_pfcenable_qcfg *
/*****************************
* hwrm_queue_pfcenable_qcfg *
*/
uint16_t port_id;
uint8_t unused_0[6];
*/
uint16_t port_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_queue_pfcenable_qcfg_output (size:128b/16B) */
struct hwrm_queue_pfcenable_qcfg_output {
/* hwrm_queue_pfcenable_qcfg_output (size:128b/16B) */
struct hwrm_queue_pfcenable_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/****************************
* hwrm_queue_pfcenable_cfg *
/****************************
* hwrm_queue_pfcenable_cfg *
*/
uint16_t port_id;
uint8_t unused_0[2];
*/
uint16_t port_id;
uint8_t unused_0[2];
-} __attribute__((packed));
/* hwrm_queue_pfcenable_cfg_output (size:128b/16B) */
struct hwrm_queue_pfcenable_cfg_output {
/* hwrm_queue_pfcenable_cfg_output (size:128b/16B) */
struct hwrm_queue_pfcenable_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***************************
* hwrm_queue_pri2cos_qcfg *
/***************************
* hwrm_queue_pri2cos_qcfg *
*/
uint8_t port_id;
uint8_t unused_0[3];
*/
uint8_t port_id;
uint8_t unused_0[3];
-} __attribute__((packed));
/* hwrm_queue_pri2cos_qcfg_output (size:192b/24B) */
struct hwrm_queue_pri2cos_qcfg_output {
/* hwrm_queue_pri2cos_qcfg_output (size:192b/24B) */
struct hwrm_queue_pri2cos_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**************************
* hwrm_queue_pri2cos_cfg *
/**************************
* hwrm_queue_pri2cos_cfg *
*/
uint8_t pri7_cos_queue_id;
uint8_t unused_0[7];
*/
uint8_t pri7_cos_queue_id;
uint8_t unused_0[7];
-} __attribute__((packed));
/* hwrm_queue_pri2cos_cfg_output (size:128b/16B) */
struct hwrm_queue_pri2cos_cfg_output {
/* hwrm_queue_pri2cos_cfg_output (size:128b/16B) */
struct hwrm_queue_pri2cos_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**************************
* hwrm_queue_cos2bw_qcfg *
/**************************
* hwrm_queue_cos2bw_qcfg *
*/
uint16_t port_id;
uint8_t unused_0[6];
*/
uint16_t port_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_queue_cos2bw_qcfg_output (size:896b/112B) */
struct hwrm_queue_cos2bw_qcfg_output {
/* hwrm_queue_cos2bw_qcfg_output (size:896b/112B) */
struct hwrm_queue_cos2bw_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*************************
* hwrm_queue_cos2bw_cfg *
/*************************
* hwrm_queue_cos2bw_cfg *
*/
uint8_t queue_id7_bw_weight;
uint8_t unused_1[5];
*/
uint8_t queue_id7_bw_weight;
uint8_t unused_1[5];
-} __attribute__((packed));
/* hwrm_queue_cos2bw_cfg_output (size:128b/16B) */
struct hwrm_queue_cos2bw_cfg_output {
/* hwrm_queue_cos2bw_cfg_output (size:128b/16B) */
struct hwrm_queue_cos2bw_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*************************
* hwrm_queue_dscp_qcaps *
/*************************
* hwrm_queue_dscp_qcaps *
*/
uint8_t port_id;
uint8_t unused_0[7];
*/
uint8_t port_id;
uint8_t unused_0[7];
-} __attribute__((packed));
/* hwrm_queue_dscp_qcaps_output (size:128b/16B) */
struct hwrm_queue_dscp_qcaps_output {
/* hwrm_queue_dscp_qcaps_output (size:128b/16B) */
struct hwrm_queue_dscp_qcaps_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/****************************
* hwrm_queue_dscp2pri_qcfg *
/****************************
* hwrm_queue_dscp2pri_qcfg *
/* Size of the buffer pointed to by dest_data_addr. */
uint16_t dest_data_buffer_size;
uint8_t unused_1[4];
/* Size of the buffer pointed to by dest_data_addr. */
uint16_t dest_data_buffer_size;
uint8_t unused_1[4];
-} __attribute__((packed));
/* hwrm_queue_dscp2pri_qcfg_output (size:128b/16B) */
struct hwrm_queue_dscp2pri_qcfg_output {
/* hwrm_queue_dscp2pri_qcfg_output (size:128b/16B) */
struct hwrm_queue_dscp2pri_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***************************
* hwrm_queue_dscp2pri_cfg *
/***************************
* hwrm_queue_dscp2pri_cfg *
*/
uint16_t entry_cnt;
uint8_t unused_0[4];
*/
uint16_t entry_cnt;
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_queue_dscp2pri_cfg_output (size:128b/16B) */
struct hwrm_queue_dscp2pri_cfg_output {
/* hwrm_queue_dscp2pri_cfg_output (size:128b/16B) */
struct hwrm_queue_dscp2pri_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*************************
* hwrm_queue_mpls_qcaps *
/*************************
* hwrm_queue_mpls_qcaps *
*/
uint8_t port_id;
uint8_t unused_0[7];
*/
uint8_t port_id;
uint8_t unused_0[7];
-} __attribute__((packed));
/* hwrm_queue_mpls_qcaps_output (size:128b/16B) */
struct hwrm_queue_mpls_qcaps_output {
/* hwrm_queue_mpls_qcaps_output (size:128b/16B) */
struct hwrm_queue_mpls_qcaps_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/******************************
* hwrm_queue_mplstc2pri_qcfg *
/******************************
* hwrm_queue_mplstc2pri_qcfg *
*/
uint8_t port_id;
uint8_t unused_0[7];
*/
uint8_t port_id;
uint8_t unused_0[7];
-} __attribute__((packed));
/* hwrm_queue_mplstc2pri_qcfg_output (size:192b/24B) */
struct hwrm_queue_mplstc2pri_qcfg_output {
/* hwrm_queue_mplstc2pri_qcfg_output (size:192b/24B) */
struct hwrm_queue_mplstc2pri_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*****************************
* hwrm_queue_mplstc2pri_cfg *
/*****************************
* hwrm_queue_mplstc2pri_cfg *
* be changed before traffic has started.
*/
uint8_t tc7_pri_queue_id;
* be changed before traffic has started.
*/
uint8_t tc7_pri_queue_id;
-} __attribute__((packed));
/* hwrm_queue_mplstc2pri_cfg_output (size:128b/16B) */
struct hwrm_queue_mplstc2pri_cfg_output {
/* hwrm_queue_mplstc2pri_cfg_output (size:128b/16B) */
struct hwrm_queue_mplstc2pri_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*******************
* hwrm_vnic_alloc *
/*******************
* hwrm_vnic_alloc *
*/
#define HWRM_VNIC_ALLOC_INPUT_FLAGS_DEFAULT UINT32_C(0x1)
uint8_t unused_0[4];
*/
#define HWRM_VNIC_ALLOC_INPUT_FLAGS_DEFAULT UINT32_C(0x1)
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_vnic_alloc_output (size:128b/16B) */
struct hwrm_vnic_alloc_output {
/* hwrm_vnic_alloc_output (size:128b/16B) */
struct hwrm_vnic_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/******************
* hwrm_vnic_free *
/******************
* hwrm_vnic_free *
/* Logical vnic ID */
uint32_t vnic_id;
uint8_t unused_0[4];
/* Logical vnic ID */
uint32_t vnic_id;
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_vnic_free_output (size:128b/16B) */
struct hwrm_vnic_free_output {
/* hwrm_vnic_free_output (size:128b/16B) */
struct hwrm_vnic_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*****************
* hwrm_vnic_cfg *
/*****************
* hwrm_vnic_cfg *
*/
uint16_t queue_id;
uint8_t unused0[6];
*/
uint16_t queue_id;
uint8_t unused0[6];
-} __attribute__((packed));
/* hwrm_vnic_cfg_output (size:128b/16B) */
struct hwrm_vnic_cfg_output {
/* hwrm_vnic_cfg_output (size:128b/16B) */
struct hwrm_vnic_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/******************
* hwrm_vnic_qcfg *
/******************
* hwrm_vnic_qcfg *
/* ID of Virtual Function whose VNIC resource is being queried. */
uint16_t vf_id;
uint8_t unused_0[6];
/* ID of Virtual Function whose VNIC resource is being queried. */
uint16_t vf_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_vnic_qcfg_output (size:256b/32B) */
struct hwrm_vnic_qcfg_output {
/* hwrm_vnic_qcfg_output (size:256b/32B) */
struct hwrm_vnic_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*******************
* hwrm_vnic_qcaps *
/*******************
* hwrm_vnic_qcaps *
uint64_t resp_addr;
uint32_t enables;
uint8_t unused_0[4];
uint64_t resp_addr;
uint32_t enables;
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_vnic_qcaps_output (size:192b/24B) */
struct hwrm_vnic_qcaps_output {
/* hwrm_vnic_qcaps_output (size:192b/24B) */
struct hwrm_vnic_qcaps_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*********************
* hwrm_vnic_tpa_cfg *
/*********************
* hwrm_vnic_tpa_cfg *
* and can be queried using hwrm_vnic_tpa_qcfg.
*/
uint32_t min_agg_len;
* and can be queried using hwrm_vnic_tpa_qcfg.
*/
uint32_t min_agg_len;
-} __attribute__((packed));
/* hwrm_vnic_tpa_cfg_output (size:128b/16B) */
struct hwrm_vnic_tpa_cfg_output {
/* hwrm_vnic_tpa_cfg_output (size:128b/16B) */
struct hwrm_vnic_tpa_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*********************
* hwrm_vnic_rss_cfg *
/*********************
* hwrm_vnic_rss_cfg *
/* Index to the rss indirection table. */
uint16_t rss_ctx_idx;
uint8_t unused_1[6];
/* Index to the rss indirection table. */
uint16_t rss_ctx_idx;
uint8_t unused_1[6];
-} __attribute__((packed));
/* hwrm_vnic_rss_cfg_output (size:128b/16B) */
struct hwrm_vnic_rss_cfg_output {
/* hwrm_vnic_rss_cfg_output (size:128b/16B) */
struct hwrm_vnic_rss_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* hwrm_vnic_rss_cfg_cmd_err (size:64b/8B) */
struct hwrm_vnic_rss_cfg_cmd_err {
/* hwrm_vnic_rss_cfg_cmd_err (size:64b/8B) */
struct hwrm_vnic_rss_cfg_cmd_err {
#define HWRM_VNIC_RSS_CFG_CMD_ERR_CODE_LAST \
HWRM_VNIC_RSS_CFG_CMD_ERR_CODE_INTERFACE_NOT_READY
uint8_t unused_0[7];
#define HWRM_VNIC_RSS_CFG_CMD_ERR_CODE_LAST \
HWRM_VNIC_RSS_CFG_CMD_ERR_CODE_INTERFACE_NOT_READY
uint8_t unused_0[7];
-} __attribute__((packed));
/**********************
* hwrm_vnic_rss_qcfg *
/**********************
* hwrm_vnic_rss_qcfg *
/* Index to the rss indirection table. */
uint16_t rss_ctx_idx;
uint8_t unused_0[6];
/* Index to the rss indirection table. */
uint16_t rss_ctx_idx;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_vnic_rss_qcfg_output (size:512b/64B) */
struct hwrm_vnic_rss_qcfg_output {
/* hwrm_vnic_rss_qcfg_output (size:512b/64B) */
struct hwrm_vnic_rss_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**************************
* hwrm_vnic_plcmodes_cfg *
/**************************
* hwrm_vnic_plcmodes_cfg *
*/
uint16_t hds_threshold;
uint8_t unused_0[6];
*/
uint16_t hds_threshold;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_vnic_plcmodes_cfg_output (size:128b/16B) */
struct hwrm_vnic_plcmodes_cfg_output {
/* hwrm_vnic_plcmodes_cfg_output (size:128b/16B) */
struct hwrm_vnic_plcmodes_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***************************
* hwrm_vnic_plcmodes_qcfg *
/***************************
* hwrm_vnic_plcmodes_qcfg *
/* Logical vnic ID */
uint32_t vnic_id;
uint8_t unused_0[4];
/* Logical vnic ID */
uint32_t vnic_id;
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_vnic_plcmodes_qcfg_output (size:192b/24B) */
struct hwrm_vnic_plcmodes_qcfg_output {
/* hwrm_vnic_plcmodes_qcfg_output (size:192b/24B) */
struct hwrm_vnic_plcmodes_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************************
* hwrm_vnic_rss_cos_lb_ctx_alloc *
/**********************************
* hwrm_vnic_rss_cos_lb_ctx_alloc *
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
-} __attribute__((packed));
/* hwrm_vnic_rss_cos_lb_ctx_alloc_output (size:128b/16B) */
struct hwrm_vnic_rss_cos_lb_ctx_alloc_output {
/* hwrm_vnic_rss_cos_lb_ctx_alloc_output (size:128b/16B) */
struct hwrm_vnic_rss_cos_lb_ctx_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*********************************
* hwrm_vnic_rss_cos_lb_ctx_free *
/*********************************
* hwrm_vnic_rss_cos_lb_ctx_free *
/* rss_cos_lb_ctx_id is 16 b */
uint16_t rss_cos_lb_ctx_id;
uint8_t unused_0[6];
/* rss_cos_lb_ctx_id is 16 b */
uint16_t rss_cos_lb_ctx_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_vnic_rss_cos_lb_ctx_free_output (size:128b/16B) */
struct hwrm_vnic_rss_cos_lb_ctx_free_output {
/* hwrm_vnic_rss_cos_lb_ctx_free_output (size:128b/16B) */
struct hwrm_vnic_rss_cos_lb_ctx_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*******************
* hwrm_ring_alloc *
/*******************
* hwrm_ring_alloc *
* record.
*/
uint64_t cq_handle;
* record.
*/
uint64_t cq_handle;
-} __attribute__((packed));
/* hwrm_ring_alloc_output (size:128b/16B) */
struct hwrm_ring_alloc_output {
/* hwrm_ring_alloc_output (size:128b/16B) */
struct hwrm_ring_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/******************
* hwrm_ring_free *
/******************
* hwrm_ring_free *
/* Physical number of ring allocated. */
uint16_t ring_id;
uint8_t unused_1[4];
/* Physical number of ring allocated. */
uint16_t ring_id;
uint8_t unused_1[4];
-} __attribute__((packed));
/* hwrm_ring_free_output (size:128b/16B) */
struct hwrm_ring_free_output {
/* hwrm_ring_free_output (size:128b/16B) */
struct hwrm_ring_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*******************
* hwrm_ring_reset *
/*******************
* hwrm_ring_reset *
/* Physical number of the ring. */
uint16_t ring_id;
uint8_t unused_1[4];
/* Physical number of the ring. */
uint16_t ring_id;
uint8_t unused_1[4];
-} __attribute__((packed));
/* hwrm_ring_reset_output (size:128b/16B) */
struct hwrm_ring_reset_output {
/* hwrm_ring_reset_output (size:128b/16B) */
struct hwrm_ring_reset_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**************************
* hwrm_ring_aggint_qcaps *
/**************************
* hwrm_ring_aggint_qcaps *
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
-} __attribute__((packed));
/* hwrm_ring_aggint_qcaps_output (size:384b/48B) */
struct hwrm_ring_aggint_qcaps_output {
/* hwrm_ring_aggint_qcaps_output (size:384b/48B) */
struct hwrm_ring_aggint_qcaps_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**************************************
* hwrm_ring_cmpl_ring_qaggint_params *
/**************************************
* hwrm_ring_cmpl_ring_qaggint_params *
/* Physical number of completion ring. */
uint16_t ring_id;
uint8_t unused_0[6];
/* Physical number of completion ring. */
uint16_t ring_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_ring_cmpl_ring_qaggint_params_output (size:256b/32B) */
struct hwrm_ring_cmpl_ring_qaggint_params_output {
/* hwrm_ring_cmpl_ring_qaggint_params_output (size:256b/32B) */
struct hwrm_ring_cmpl_ring_qaggint_params_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*****************************************
* hwrm_ring_cmpl_ring_cfg_aggint_params *
/*****************************************
* hwrm_ring_cmpl_ring_cfg_aggint_params *
#define HWRM_RING_CMPL_RING_CFG_AGGINT_PARAMS_INPUT_ENABLES_NUM_CMPL_AGGR_INT \
UINT32_C(0x20)
uint8_t unused_0[4];
#define HWRM_RING_CMPL_RING_CFG_AGGINT_PARAMS_INPUT_ENABLES_NUM_CMPL_AGGR_INT \
UINT32_C(0x20)
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_ring_cmpl_ring_cfg_aggint_params_output (size:128b/16B) */
struct hwrm_ring_cmpl_ring_cfg_aggint_params_output {
/* hwrm_ring_cmpl_ring_cfg_aggint_params_output (size:128b/16B) */
struct hwrm_ring_cmpl_ring_cfg_aggint_params_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***********************
* hwrm_ring_grp_alloc *
/***********************
* hwrm_ring_grp_alloc *
* with the ring group.
*/
uint16_t sc;
* with the ring group.
*/
uint16_t sc;
-} __attribute__((packed));
/* hwrm_ring_grp_alloc_output (size:128b/16B) */
struct hwrm_ring_grp_alloc_output {
/* hwrm_ring_grp_alloc_output (size:128b/16B) */
struct hwrm_ring_grp_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************
* hwrm_ring_grp_free *
/**********************
* hwrm_ring_grp_free *
/* This is the ring group ID value. */
uint32_t ring_group_id;
uint8_t unused_0[4];
/* This is the ring group ID value. */
uint32_t ring_group_id;
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_ring_grp_free_output (size:128b/16B) */
struct hwrm_ring_grp_free_output {
/* hwrm_ring_grp_free_output (size:128b/16B) */
struct hwrm_ring_grp_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*
* special reserved flow ID to identify per function default
* flows for vSwitch offload
/*
* special reserved flow ID to identify per function default
* flows for vSwitch offload
* 2 - Below the given filter
*/
uint64_t l2_filter_id_hint;
* 2 - Below the given filter
*/
uint64_t l2_filter_id_hint;
-} __attribute__((packed));
/* hwrm_cfa_l2_filter_alloc_output (size:192b/24B) */
struct hwrm_cfa_l2_filter_alloc_output {
/* hwrm_cfa_l2_filter_alloc_output (size:192b/24B) */
struct hwrm_cfa_l2_filter_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***************************
* hwrm_cfa_l2_filter_free *
/***************************
* hwrm_cfa_l2_filter_free *
* context.
*/
uint64_t l2_filter_id;
* context.
*/
uint64_t l2_filter_id;
-} __attribute__((packed));
/* hwrm_cfa_l2_filter_free_output (size:128b/16B) */
struct hwrm_cfa_l2_filter_free_output {
/* hwrm_cfa_l2_filter_free_output (size:128b/16B) */
struct hwrm_cfa_l2_filter_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**************************
* hwrm_cfa_l2_filter_cfg *
/**************************
* hwrm_cfa_l2_filter_cfg *
* mirrored.
*/
uint32_t new_mirror_vnic_id;
* mirrored.
*/
uint32_t new_mirror_vnic_id;
-} __attribute__((packed));
/* hwrm_cfa_l2_filter_cfg_output (size:128b/16B) */
struct hwrm_cfa_l2_filter_cfg_output {
/* hwrm_cfa_l2_filter_cfg_output (size:128b/16B) */
struct hwrm_cfa_l2_filter_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***************************
* hwrm_cfa_l2_set_rx_mask *
/***************************
* hwrm_cfa_l2_set_rx_mask *
*/
uint32_t num_vlan_tags;
uint8_t unused_1[4];
*/
uint32_t num_vlan_tags;
uint8_t unused_1[4];
-} __attribute__((packed));
/* hwrm_cfa_l2_set_rx_mask_output (size:128b/16B) */
struct hwrm_cfa_l2_set_rx_mask_output {
/* hwrm_cfa_l2_set_rx_mask_output (size:128b/16B) */
struct hwrm_cfa_l2_set_rx_mask_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* hwrm_cfa_l2_set_rx_mask_cmd_err (size:64b/8B) */
struct hwrm_cfa_l2_set_rx_mask_cmd_err {
/* hwrm_cfa_l2_set_rx_mask_cmd_err (size:64b/8B) */
struct hwrm_cfa_l2_set_rx_mask_cmd_err {
#define HWRM_CFA_L2_SET_RX_MASK_CMD_ERR_CODE_LAST \
HWRM_CFA_L2_SET_RX_MASK_CMD_ERR_CODE_NTUPLE_FILTER_CONFLICT_ERR
uint8_t unused_0[7];
#define HWRM_CFA_L2_SET_RX_MASK_CMD_ERR_CODE_LAST \
HWRM_CFA_L2_SET_RX_MASK_CMD_ERR_CODE_NTUPLE_FILTER_CONFLICT_ERR
uint8_t unused_0[7];
-} __attribute__((packed));
/*******************************
* hwrm_cfa_vlan_antispoof_cfg *
/*******************************
* hwrm_cfa_vlan_antispoof_cfg *
* for the 12-bit VLAN ID.
*/
uint64_t vlan_tag_mask_tbl_addr;
* for the 12-bit VLAN ID.
*/
uint64_t vlan_tag_mask_tbl_addr;
-} __attribute__((packed));
/* hwrm_cfa_vlan_antispoof_cfg_output (size:128b/16B) */
struct hwrm_cfa_vlan_antispoof_cfg_output {
/* hwrm_cfa_vlan_antispoof_cfg_output (size:128b/16B) */
struct hwrm_cfa_vlan_antispoof_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/********************************
* hwrm_cfa_vlan_antispoof_qcfg *
/********************************
* hwrm_cfa_vlan_antispoof_qcfg *
* the mask value should be 0xfff for the 12-bit VLAN ID.
*/
uint64_t vlan_tag_mask_tbl_addr;
* the mask value should be 0xfff for the 12-bit VLAN ID.
*/
uint64_t vlan_tag_mask_tbl_addr;
-} __attribute__((packed));
/* hwrm_cfa_vlan_antispoof_qcfg_output (size:128b/16B) */
struct hwrm_cfa_vlan_antispoof_qcfg_output {
/* hwrm_cfa_vlan_antispoof_qcfg_output (size:128b/16B) */
struct hwrm_cfa_vlan_antispoof_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/********************************
* hwrm_cfa_tunnel_filter_alloc *
/********************************
* hwrm_cfa_tunnel_filter_alloc *
* mirrored.
*/
uint32_t mirror_vnic_id;
* mirrored.
*/
uint32_t mirror_vnic_id;
-} __attribute__((packed));
/* hwrm_cfa_tunnel_filter_alloc_output (size:192b/24B) */
struct hwrm_cfa_tunnel_filter_alloc_output {
/* hwrm_cfa_tunnel_filter_alloc_output (size:192b/24B) */
struct hwrm_cfa_tunnel_filter_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*******************************
* hwrm_cfa_tunnel_filter_free *
/*******************************
* hwrm_cfa_tunnel_filter_free *
uint64_t resp_addr;
/* This value is an opaque id into CFA data structures. */
uint64_t tunnel_filter_id;
uint64_t resp_addr;
/* This value is an opaque id into CFA data structures. */
uint64_t tunnel_filter_id;
-} __attribute__((packed));
/* hwrm_cfa_tunnel_filter_free_output (size:128b/16B) */
struct hwrm_cfa_tunnel_filter_free_output {
/* hwrm_cfa_tunnel_filter_free_output (size:128b/16B) */
struct hwrm_cfa_tunnel_filter_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***************************************
* hwrm_cfa_redirect_tunnel_type_alloc *
/***************************************
* hwrm_cfa_redirect_tunnel_type_alloc *
#define HWRM_CFA_REDIRECT_TUNNEL_TYPE_ALLOC_INPUT_FLAGS_MODIFY_DST \
UINT32_C(0x1)
uint8_t unused_0[4];
#define HWRM_CFA_REDIRECT_TUNNEL_TYPE_ALLOC_INPUT_FLAGS_MODIFY_DST \
UINT32_C(0x1)
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_cfa_redirect_tunnel_type_alloc_output (size:128b/16B) */
struct hwrm_cfa_redirect_tunnel_type_alloc_output {
/* hwrm_cfa_redirect_tunnel_type_alloc_output (size:128b/16B) */
struct hwrm_cfa_redirect_tunnel_type_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**************************************
* hwrm_cfa_redirect_tunnel_type_free *
/**************************************
* hwrm_cfa_redirect_tunnel_type_free *
#define HWRM_CFA_REDIRECT_TUNNEL_TYPE_FREE_INPUT_TUNNEL_TYPE_LAST \
HWRM_CFA_REDIRECT_TUNNEL_TYPE_FREE_INPUT_TUNNEL_TYPE_ANYTUNNEL
uint8_t unused_0[5];
#define HWRM_CFA_REDIRECT_TUNNEL_TYPE_FREE_INPUT_TUNNEL_TYPE_LAST \
HWRM_CFA_REDIRECT_TUNNEL_TYPE_FREE_INPUT_TUNNEL_TYPE_ANYTUNNEL
uint8_t unused_0[5];
-} __attribute__((packed));
/* hwrm_cfa_redirect_tunnel_type_free_output (size:128b/16B) */
struct hwrm_cfa_redirect_tunnel_type_free_output {
/* hwrm_cfa_redirect_tunnel_type_free_output (size:128b/16B) */
struct hwrm_cfa_redirect_tunnel_type_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**************************************
* hwrm_cfa_redirect_tunnel_type_info *
/**************************************
* hwrm_cfa_redirect_tunnel_type_info *
#define HWRM_CFA_REDIRECT_TUNNEL_TYPE_INFO_INPUT_TUNNEL_TYPE_LAST \
HWRM_CFA_REDIRECT_TUNNEL_TYPE_INFO_INPUT_TUNNEL_TYPE_ANYTUNNEL
uint8_t unused_0[5];
#define HWRM_CFA_REDIRECT_TUNNEL_TYPE_INFO_INPUT_TUNNEL_TYPE_LAST \
HWRM_CFA_REDIRECT_TUNNEL_TYPE_INFO_INPUT_TUNNEL_TYPE_ANYTUNNEL
uint8_t unused_0[5];
-} __attribute__((packed));
/* hwrm_cfa_redirect_tunnel_type_info_output (size:128b/16B) */
struct hwrm_cfa_redirect_tunnel_type_info_output {
/* hwrm_cfa_redirect_tunnel_type_info_output (size:128b/16B) */
struct hwrm_cfa_redirect_tunnel_type_info_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* hwrm_vxlan_ipv4_hdr (size:128b/16B) */
struct hwrm_vxlan_ipv4_hdr {
/* hwrm_vxlan_ipv4_hdr (size:128b/16B) */
struct hwrm_vxlan_ipv4_hdr {
uint32_t src_ip_addr;
/* IPv4 destination address. */
uint32_t dest_ip_addr;
uint32_t src_ip_addr;
/* IPv4 destination address. */
uint32_t dest_ip_addr;
-} __attribute__((packed));
/* hwrm_vxlan_ipv6_hdr (size:320b/40B) */
struct hwrm_vxlan_ipv6_hdr {
/* hwrm_vxlan_ipv6_hdr (size:320b/40B) */
struct hwrm_vxlan_ipv6_hdr {
uint32_t src_ip_addr[4];
/* IPv6 destination address. */
uint32_t dest_ip_addr[4];
uint32_t src_ip_addr[4];
/* IPv6 destination address. */
uint32_t dest_ip_addr[4];
-} __attribute__((packed));
/* hwrm_cfa_encap_data_vxlan (size:640b/80B) */
struct hwrm_cfa_encap_data_vxlan {
/* hwrm_cfa_encap_data_vxlan (size:640b/80B) */
struct hwrm_cfa_encap_data_vxlan {
/* VXLAN header flags field. */
uint8_t hdr_flags;
uint8_t unused[3];
/* VXLAN header flags field. */
uint8_t hdr_flags;
uint8_t unused[3];
-} __attribute__((packed));
/*******************************
* hwrm_cfa_encap_record_alloc *
/*******************************
* hwrm_cfa_encap_record_alloc *
uint8_t unused_0[3];
/* This value is encap data used for the given encap type. */
uint32_t encap_data[20];
uint8_t unused_0[3];
/* This value is encap data used for the given encap type. */
uint32_t encap_data[20];
-} __attribute__((packed));
/* hwrm_cfa_encap_record_alloc_output (size:128b/16B) */
struct hwrm_cfa_encap_record_alloc_output {
/* hwrm_cfa_encap_record_alloc_output (size:128b/16B) */
struct hwrm_cfa_encap_record_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/******************************
* hwrm_cfa_encap_record_free *
/******************************
* hwrm_cfa_encap_record_free *
/* This value is an opaque id into CFA data structures. */
uint32_t encap_record_id;
uint8_t unused_0[4];
/* This value is an opaque id into CFA data structures. */
uint32_t encap_record_id;
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_cfa_encap_record_free_output (size:128b/16B) */
struct hwrm_cfa_encap_record_free_output {
/* hwrm_cfa_encap_record_free_output (size:128b/16B) */
struct hwrm_cfa_encap_record_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/********************************
* hwrm_cfa_ntuple_filter_alloc *
/********************************
* hwrm_cfa_ntuple_filter_alloc *
* the pri_hint.
*/
uint64_t ntuple_filter_id_hint;
* the pri_hint.
*/
uint64_t ntuple_filter_id_hint;
-} __attribute__((packed));
/* hwrm_cfa_ntuple_filter_alloc_output (size:192b/24B) */
struct hwrm_cfa_ntuple_filter_alloc_output {
/* hwrm_cfa_ntuple_filter_alloc_output (size:192b/24B) */
struct hwrm_cfa_ntuple_filter_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* hwrm_cfa_ntuple_filter_alloc_cmd_err (size:64b/8B) */
struct hwrm_cfa_ntuple_filter_alloc_cmd_err {
/* hwrm_cfa_ntuple_filter_alloc_cmd_err (size:64b/8B) */
struct hwrm_cfa_ntuple_filter_alloc_cmd_err {
#define HWRM_CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_LAST \
HWRM_CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_RX_MASK_VLAN_CONFLICT_ERR
uint8_t unused_0[7];
#define HWRM_CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_LAST \
HWRM_CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_RX_MASK_VLAN_CONFLICT_ERR
uint8_t unused_0[7];
-} __attribute__((packed));
/*******************************
* hwrm_cfa_ntuple_filter_free *
/*******************************
* hwrm_cfa_ntuple_filter_free *
uint64_t resp_addr;
/* This value is an opaque id into CFA data structures. */
uint64_t ntuple_filter_id;
uint64_t resp_addr;
/* This value is an opaque id into CFA data structures. */
uint64_t ntuple_filter_id;
-} __attribute__((packed));
/* hwrm_cfa_ntuple_filter_free_output (size:128b/16B) */
struct hwrm_cfa_ntuple_filter_free_output {
/* hwrm_cfa_ntuple_filter_free_output (size:128b/16B) */
struct hwrm_cfa_ntuple_filter_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/******************************
* hwrm_cfa_ntuple_filter_cfg *
/******************************
* hwrm_cfa_ntuple_filter_cfg *
#define HWRM_CFA_NTUPLE_FILTER_CFG_INPUT_NEW_METER_INSTANCE_ID_LAST \
HWRM_CFA_NTUPLE_FILTER_CFG_INPUT_NEW_METER_INSTANCE_ID_INVALID
uint8_t unused_1[6];
#define HWRM_CFA_NTUPLE_FILTER_CFG_INPUT_NEW_METER_INSTANCE_ID_LAST \
HWRM_CFA_NTUPLE_FILTER_CFG_INPUT_NEW_METER_INSTANCE_ID_INVALID
uint8_t unused_1[6];
-} __attribute__((packed));
/* hwrm_cfa_ntuple_filter_cfg_output (size:128b/16B) */
struct hwrm_cfa_ntuple_filter_cfg_output {
/* hwrm_cfa_ntuple_filter_cfg_output (size:128b/16B) */
struct hwrm_cfa_ntuple_filter_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**************************
* hwrm_cfa_em_flow_alloc *
/**************************
* hwrm_cfa_em_flow_alloc *
/* Logical ID of the encapsulation record. */
uint32_t encap_record_id;
uint8_t unused_2[4];
/* Logical ID of the encapsulation record. */
uint32_t encap_record_id;
uint8_t unused_2[4];
-} __attribute__((packed));
/* hwrm_cfa_em_flow_alloc_output (size:192b/24B) */
struct hwrm_cfa_em_flow_alloc_output {
/* hwrm_cfa_em_flow_alloc_output (size:192b/24B) */
struct hwrm_cfa_em_flow_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*************************
* hwrm_cfa_em_flow_free *
/*************************
* hwrm_cfa_em_flow_free *
uint64_t resp_addr;
/* This value is an opaque id into CFA data structures. */
uint64_t em_filter_id;
uint64_t resp_addr;
/* This value is an opaque id into CFA data structures. */
uint64_t em_filter_id;
-} __attribute__((packed));
/* hwrm_cfa_em_flow_free_output (size:128b/16B) */
struct hwrm_cfa_em_flow_free_output {
/* hwrm_cfa_em_flow_free_output (size:128b/16B) */
struct hwrm_cfa_em_flow_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/************************
* hwrm_cfa_meter_qcaps *
/************************
* hwrm_cfa_meter_qcaps *
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
-} __attribute__((packed));
/* hwrm_cfa_meter_qcaps_output (size:320b/40B) */
struct hwrm_cfa_meter_qcaps_output {
/* hwrm_cfa_meter_qcaps_output (size:320b/40B) */
struct hwrm_cfa_meter_qcaps_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/********************************
* hwrm_cfa_meter_profile_alloc *
/********************************
* hwrm_cfa_meter_profile_alloc *
(UINT32_C(0x7) << 29)
#define HWRM_CFA_METER_PROFILE_ALLOC_INPUT_EXCESS_PEAK_BURST_BW_VALUE_UNIT_LAST \
HWRM_CFA_METER_PROFILE_ALLOC_INPUT_EXCESS_PEAK_BURST_BW_VALUE_UNIT_INVALID
(UINT32_C(0x7) << 29)
#define HWRM_CFA_METER_PROFILE_ALLOC_INPUT_EXCESS_PEAK_BURST_BW_VALUE_UNIT_LAST \
HWRM_CFA_METER_PROFILE_ALLOC_INPUT_EXCESS_PEAK_BURST_BW_VALUE_UNIT_INVALID
-} __attribute__((packed));
/* hwrm_cfa_meter_profile_alloc_output (size:128b/16B) */
struct hwrm_cfa_meter_profile_alloc_output {
/* hwrm_cfa_meter_profile_alloc_output (size:128b/16B) */
struct hwrm_cfa_meter_profile_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*******************************
* hwrm_cfa_meter_profile_free *
/*******************************
* hwrm_cfa_meter_profile_free *
#define HWRM_CFA_METER_PROFILE_FREE_INPUT_METER_PROFILE_ID_LAST \
HWRM_CFA_METER_PROFILE_FREE_INPUT_METER_PROFILE_ID_INVALID
uint8_t unused_1[4];
#define HWRM_CFA_METER_PROFILE_FREE_INPUT_METER_PROFILE_ID_LAST \
HWRM_CFA_METER_PROFILE_FREE_INPUT_METER_PROFILE_ID_INVALID
uint8_t unused_1[4];
-} __attribute__((packed));
/* hwrm_cfa_meter_profile_free_output (size:128b/16B) */
struct hwrm_cfa_meter_profile_free_output {
/* hwrm_cfa_meter_profile_free_output (size:128b/16B) */
struct hwrm_cfa_meter_profile_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/******************************
* hwrm_cfa_meter_profile_cfg *
/******************************
* hwrm_cfa_meter_profile_cfg *
(UINT32_C(0x7) << 29)
#define HWRM_CFA_METER_PROFILE_CFG_INPUT_EXCESS_PEAK_BURST_BW_VALUE_UNIT_LAST \
HWRM_CFA_METER_PROFILE_CFG_INPUT_EXCESS_PEAK_BURST_BW_VALUE_UNIT_INVALID
(UINT32_C(0x7) << 29)
#define HWRM_CFA_METER_PROFILE_CFG_INPUT_EXCESS_PEAK_BURST_BW_VALUE_UNIT_LAST \
HWRM_CFA_METER_PROFILE_CFG_INPUT_EXCESS_PEAK_BURST_BW_VALUE_UNIT_INVALID
-} __attribute__((packed));
/* hwrm_cfa_meter_profile_cfg_output (size:128b/16B) */
struct hwrm_cfa_meter_profile_cfg_output {
/* hwrm_cfa_meter_profile_cfg_output (size:128b/16B) */
struct hwrm_cfa_meter_profile_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*********************************
* hwrm_cfa_meter_instance_alloc *
/*********************************
* hwrm_cfa_meter_instance_alloc *
#define HWRM_CFA_METER_INSTANCE_ALLOC_INPUT_METER_PROFILE_ID_LAST \
HWRM_CFA_METER_INSTANCE_ALLOC_INPUT_METER_PROFILE_ID_INVALID
uint8_t unused_1[4];
#define HWRM_CFA_METER_INSTANCE_ALLOC_INPUT_METER_PROFILE_ID_LAST \
HWRM_CFA_METER_INSTANCE_ALLOC_INPUT_METER_PROFILE_ID_INVALID
uint8_t unused_1[4];
-} __attribute__((packed));
/* hwrm_cfa_meter_instance_alloc_output (size:128b/16B) */
struct hwrm_cfa_meter_instance_alloc_output {
/* hwrm_cfa_meter_instance_alloc_output (size:128b/16B) */
struct hwrm_cfa_meter_instance_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*******************************
* hwrm_cfa_meter_instance_cfg *
/*******************************
* hwrm_cfa_meter_instance_cfg *
*/
uint16_t meter_instance_id;
uint8_t unused_1[2];
*/
uint16_t meter_instance_id;
uint8_t unused_1[2];
-} __attribute__((packed));
/* hwrm_cfa_meter_instance_cfg_output (size:128b/16B) */
struct hwrm_cfa_meter_instance_cfg_output {
/* hwrm_cfa_meter_instance_cfg_output (size:128b/16B) */
struct hwrm_cfa_meter_instance_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/********************************
* hwrm_cfa_meter_instance_free *
/********************************
* hwrm_cfa_meter_instance_free *
#define HWRM_CFA_METER_INSTANCE_FREE_INPUT_METER_INSTANCE_ID_LAST \
HWRM_CFA_METER_INSTANCE_FREE_INPUT_METER_INSTANCE_ID_INVALID
uint8_t unused_1[4];
#define HWRM_CFA_METER_INSTANCE_FREE_INPUT_METER_INSTANCE_ID_LAST \
HWRM_CFA_METER_INSTANCE_FREE_INPUT_METER_INSTANCE_ID_INVALID
uint8_t unused_1[4];
-} __attribute__((packed));
/* hwrm_cfa_meter_instance_free_output (size:128b/16B) */
struct hwrm_cfa_meter_instance_free_output {
/* hwrm_cfa_meter_instance_free_output (size:128b/16B) */
struct hwrm_cfa_meter_instance_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*******************************
* hwrm_cfa_decap_filter_alloc *
/*******************************
* hwrm_cfa_decap_filter_alloc *
* information of the decap filter.
*/
uint16_t l2_ctxt_ref_id;
* information of the decap filter.
*/
uint16_t l2_ctxt_ref_id;
-} __attribute__((packed));
/* hwrm_cfa_decap_filter_alloc_output (size:128b/16B) */
struct hwrm_cfa_decap_filter_alloc_output {
/* hwrm_cfa_decap_filter_alloc_output (size:128b/16B) */
struct hwrm_cfa_decap_filter_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/******************************
* hwrm_cfa_decap_filter_free *
/******************************
* hwrm_cfa_decap_filter_free *
/* This value is an opaque id into CFA data structures. */
uint32_t decap_filter_id;
uint8_t unused_0[4];
/* This value is an opaque id into CFA data structures. */
uint32_t decap_filter_id;
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_cfa_decap_filter_free_output (size:128b/16B) */
struct hwrm_cfa_decap_filter_free_output {
/* hwrm_cfa_decap_filter_free_output (size:128b/16B) */
struct hwrm_cfa_decap_filter_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***********************
* hwrm_cfa_flow_alloc *
/***********************
* hwrm_cfa_flow_alloc *
UINT32_C(0xff)
#define HWRM_CFA_FLOW_ALLOC_INPUT_TUNNEL_TYPE_LAST \
HWRM_CFA_FLOW_ALLOC_INPUT_TUNNEL_TYPE_ANYTUNNEL
UINT32_C(0xff)
#define HWRM_CFA_FLOW_ALLOC_INPUT_TUNNEL_TYPE_LAST \
HWRM_CFA_FLOW_ALLOC_INPUT_TUNNEL_TYPE_ANYTUNNEL
-} __attribute__((packed));
/* hwrm_cfa_flow_alloc_output (size:256b/32B) */
struct hwrm_cfa_flow_alloc_output {
/* hwrm_cfa_flow_alloc_output (size:256b/32B) */
struct hwrm_cfa_flow_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* hwrm_cfa_flow_alloc_cmd_err (size:64b/8B) */
struct hwrm_cfa_flow_alloc_cmd_err {
/* hwrm_cfa_flow_alloc_cmd_err (size:64b/8B) */
struct hwrm_cfa_flow_alloc_cmd_err {
#define HWRM_CFA_FLOW_ALLOC_CMD_ERR_CODE_LAST \
HWRM_CFA_FLOW_ALLOC_CMD_ERR_CODE_FLOW_CTXT_DB
uint8_t unused_0[7];
#define HWRM_CFA_FLOW_ALLOC_CMD_ERR_CODE_LAST \
HWRM_CFA_FLOW_ALLOC_CMD_ERR_CODE_FLOW_CTXT_DB
uint8_t unused_0[7];
-} __attribute__((packed));
/**********************
* hwrm_cfa_flow_free *
/**********************
* hwrm_cfa_flow_free *
uint32_t flow_counter_id;
/* This value identifies a set of CFA data structures used for a flow. */
uint64_t ext_flow_handle;
uint32_t flow_counter_id;
/* This value identifies a set of CFA data structures used for a flow. */
uint64_t ext_flow_handle;
-} __attribute__((packed));
/* hwrm_cfa_flow_free_output (size:256b/32B) */
struct hwrm_cfa_flow_free_output {
/* hwrm_cfa_flow_free_output (size:256b/32B) */
struct hwrm_cfa_flow_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* hwrm_cfa_flow_action_data (size:960b/120B) */
struct hwrm_cfa_flow_action_data {
/* hwrm_cfa_flow_action_data (size:960b/120B) */
struct hwrm_cfa_flow_action_data {
uint8_t unused[7];
/* This value is encap data for the associated encap type. */
uint32_t encap_data[20];
uint8_t unused[7];
/* This value is encap data for the associated encap type. */
uint32_t encap_data[20];
-} __attribute__((packed));
/* hwrm_cfa_flow_tunnel_hdr_data (size:64b/8B) */
struct hwrm_cfa_flow_tunnel_hdr_data {
/* hwrm_cfa_flow_tunnel_hdr_data (size:64b/8B) */
struct hwrm_cfa_flow_tunnel_hdr_data {
* Virtual Network Identifier (VNI).
*/
uint32_t tunnel_id;
* Virtual Network Identifier (VNI).
*/
uint32_t tunnel_id;
-} __attribute__((packed));
/* hwrm_cfa_flow_l4_key_data (size:64b/8B) */
struct hwrm_cfa_flow_l4_key_data {
/* hwrm_cfa_flow_l4_key_data (size:64b/8B) */
struct hwrm_cfa_flow_l4_key_data {
/* The value of destination port. */
uint16_t l4_dst_port;
uint32_t unused;
/* The value of destination port. */
uint16_t l4_dst_port;
uint32_t unused;
-} __attribute__((packed));
/* hwrm_cfa_flow_l3_key_data (size:512b/64B) */
struct hwrm_cfa_flow_l3_key_data {
/* hwrm_cfa_flow_l3_key_data (size:512b/64B) */
struct hwrm_cfa_flow_l3_key_data {
/* NAT IPv4/IPv6 address. */
uint32_t nat_ip_address[4];
uint32_t unused[2];
/* NAT IPv4/IPv6 address. */
uint32_t nat_ip_address[4];
uint32_t unused[2];
-} __attribute__((packed));
/* hwrm_cfa_flow_l2_key_data (size:448b/56B) */
struct hwrm_cfa_flow_l2_key_data {
/* hwrm_cfa_flow_l2_key_data (size:448b/56B) */
struct hwrm_cfa_flow_l2_key_data {
/* Inner VLAN TCI. */
uint16_t ivlan_tci;
uint8_t unused[8];
/* Inner VLAN TCI. */
uint16_t ivlan_tci;
uint8_t unused[8];
-} __attribute__((packed));
/* hwrm_cfa_flow_key_data (size:4160b/520B) */
struct hwrm_cfa_flow_key_data {
/* hwrm_cfa_flow_key_data (size:4160b/520B) */
struct hwrm_cfa_flow_key_data {
uint32_t l4_key_data[2];
/* Flow associated L4 header mask info. */
uint32_t l4_key_mask[2];
uint32_t l4_key_data[2];
/* Flow associated L4 header mask info. */
uint32_t l4_key_mask[2];
-} __attribute__((packed));
/**********************
* hwrm_cfa_flow_info *
/**********************
* hwrm_cfa_flow_info *
uint8_t unused_0[6];
/* This value identifies a set of CFA data structures used for a flow. */
uint64_t ext_flow_handle;
uint8_t unused_0[6];
/* This value identifies a set of CFA data structures used for a flow. */
uint64_t ext_flow_handle;
-} __attribute__((packed));
/* hwrm_cfa_flow_info_output (size:5632b/704B) */
struct hwrm_cfa_flow_info_output {
/* hwrm_cfa_flow_info_output (size:5632b/704B) */
struct hwrm_cfa_flow_info_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***********************
* hwrm_cfa_flow_flush *
/***********************
* hwrm_cfa_flow_flush *
uint16_t num_flows;
/* Pointer to the PBL, or PDL depending on number of levels */
uint64_t page_dir;
uint16_t num_flows;
/* Pointer to the PBL, or PDL depending on number of levels */
uint64_t page_dir;
-} __attribute__((packed));
/* hwrm_cfa_flow_flush_output (size:128b/16B) */
struct hwrm_cfa_flow_flush_output {
/* hwrm_cfa_flow_flush_output (size:128b/16B) */
struct hwrm_cfa_flow_flush_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***********************
* hwrm_cfa_flow_stats *
/***********************
* hwrm_cfa_flow_stats *
uint32_t flow_id_8;
/* Flow ID of a flow. */
uint32_t flow_id_9;
uint32_t flow_id_8;
/* Flow ID of a flow. */
uint32_t flow_id_9;
-} __attribute__((packed));
/* hwrm_cfa_flow_stats_output (size:1408b/176B) */
struct hwrm_cfa_flow_stats_output {
/* hwrm_cfa_flow_stats_output (size:1408b/176B) */
struct hwrm_cfa_flow_stats_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***********************************
* hwrm_cfa_flow_aging_timer_reset *
/***********************************
* hwrm_cfa_flow_aging_timer_reset *
uint32_t flow_timer;
/* This value identifies a set of CFA data structures used for a flow. */
uint64_t ext_flow_handle;
uint32_t flow_timer;
/* This value identifies a set of CFA data structures used for a flow. */
uint64_t ext_flow_handle;
-} __attribute__((packed));
/* hwrm_cfa_flow_aging_timer_reset_output (size:128b/16B) */
struct hwrm_cfa_flow_aging_timer_reset_output {
/* hwrm_cfa_flow_aging_timer_reset_output (size:128b/16B) */
struct hwrm_cfa_flow_aging_timer_reset_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***************************
* hwrm_cfa_flow_aging_cfg *
/***************************
* hwrm_cfa_flow_aging_cfg *
#define HWRM_CFA_FLOW_AGING_CFG_INPUT_EEM_CTX_MEM_TYPE_LAST \
HWRM_CFA_FLOW_AGING_CFG_INPUT_EEM_CTX_MEM_TYPE_EJECTION_DATA
uint8_t unused_1[4];
#define HWRM_CFA_FLOW_AGING_CFG_INPUT_EEM_CTX_MEM_TYPE_LAST \
HWRM_CFA_FLOW_AGING_CFG_INPUT_EEM_CTX_MEM_TYPE_EJECTION_DATA
uint8_t unused_1[4];
-} __attribute__((packed));
/* hwrm_cfa_flow_aging_cfg_output (size:128b/16B) */
struct hwrm_cfa_flow_aging_cfg_output {
/* hwrm_cfa_flow_aging_cfg_output (size:128b/16B) */
struct hwrm_cfa_flow_aging_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/****************************
* hwrm_cfa_flow_aging_qcfg *
/****************************
* hwrm_cfa_flow_aging_qcfg *
#define HWRM_CFA_FLOW_AGING_QCFG_INPUT_FLAGS_PATH_LAST \
HWRM_CFA_FLOW_AGING_QCFG_INPUT_FLAGS_PATH_RX
uint8_t unused_0[7];
#define HWRM_CFA_FLOW_AGING_QCFG_INPUT_FLAGS_PATH_LAST \
HWRM_CFA_FLOW_AGING_QCFG_INPUT_FLAGS_PATH_RX
uint8_t unused_0[7];
-} __attribute__((packed));
/* hwrm_cfa_flow_aging_qcfg_output (size:320b/40B) */
struct hwrm_cfa_flow_aging_qcfg_output {
/* hwrm_cfa_flow_aging_qcfg_output (size:320b/40B) */
struct hwrm_cfa_flow_aging_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*****************************
* hwrm_cfa_flow_aging_qcaps *
/*****************************
* hwrm_cfa_flow_aging_qcaps *
#define HWRM_CFA_FLOW_AGING_QCAPS_INPUT_FLAGS_PATH_LAST \
HWRM_CFA_FLOW_AGING_QCAPS_INPUT_FLAGS_PATH_RX
uint8_t unused_0[7];
#define HWRM_CFA_FLOW_AGING_QCAPS_INPUT_FLAGS_PATH_LAST \
HWRM_CFA_FLOW_AGING_QCAPS_INPUT_FLAGS_PATH_RX
uint8_t unused_0[7];
-} __attribute__((packed));
/* hwrm_cfa_flow_aging_qcaps_output (size:256b/32B) */
struct hwrm_cfa_flow_aging_qcaps_output {
/* hwrm_cfa_flow_aging_qcaps_output (size:256b/32B) */
struct hwrm_cfa_flow_aging_qcaps_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************************
* hwrm_cfa_tcp_flag_process_qcfg *
/**********************************
* hwrm_cfa_tcp_flag_process_qcfg *
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
-} __attribute__((packed));
/* hwrm_cfa_tcp_flag_process_qcfg_output (size:192b/24B) */
struct hwrm_cfa_tcp_flag_process_qcfg_output {
/* hwrm_cfa_tcp_flag_process_qcfg_output (size:192b/24B) */
struct hwrm_cfa_tcp_flag_process_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************
* hwrm_cfa_pair_info *
/**********************
* hwrm_cfa_pair_info *
uint8_t pair_vfid;
/* Pair name (32 byte string). */
char pair_name[32];
uint8_t pair_vfid;
/* Pair name (32 byte string). */
char pair_name[32];
-} __attribute__((packed));
/* hwrm_cfa_pair_info_output (size:576b/72B) */
struct hwrm_cfa_pair_info_output {
/* hwrm_cfa_pair_info_output (size:576b/72B) */
struct hwrm_cfa_pair_info_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***************************************
* hwrm_cfa_redirect_query_tunnel_type *
/***************************************
* hwrm_cfa_redirect_query_tunnel_type *
/* The source function id. */
uint16_t src_fid;
uint8_t unused_0[6];
/* The source function id. */
uint16_t src_fid;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_cfa_redirect_query_tunnel_type_output (size:128b/16B) */
struct hwrm_cfa_redirect_query_tunnel_type_output {
/* hwrm_cfa_redirect_query_tunnel_type_output (size:128b/16B) */
struct hwrm_cfa_redirect_query_tunnel_type_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*************************
* hwrm_cfa_ctx_mem_rgtr *
/*************************
* hwrm_cfa_ctx_mem_rgtr *
uint32_t unused_0;
/* Pointer to the PBL, or PDL depending on number of levels */
uint64_t page_dir;
uint32_t unused_0;
/* Pointer to the PBL, or PDL depending on number of levels */
uint64_t page_dir;
-} __attribute__((packed));
/* hwrm_cfa_ctx_mem_rgtr_output (size:128b/16B) */
struct hwrm_cfa_ctx_mem_rgtr_output {
/* hwrm_cfa_ctx_mem_rgtr_output (size:128b/16B) */
struct hwrm_cfa_ctx_mem_rgtr_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***************************
* hwrm_cfa_ctx_mem_unrgtr *
/***************************
* hwrm_cfa_ctx_mem_unrgtr *
*/
uint16_t ctx_id;
uint8_t unused_0[6];
*/
uint16_t ctx_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_cfa_ctx_mem_unrgtr_output (size:128b/16B) */
struct hwrm_cfa_ctx_mem_unrgtr_output {
/* hwrm_cfa_ctx_mem_unrgtr_output (size:128b/16B) */
struct hwrm_cfa_ctx_mem_unrgtr_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*************************
* hwrm_cfa_ctx_mem_qctx *
/*************************
* hwrm_cfa_ctx_mem_qctx *
*/
uint16_t ctx_id;
uint8_t unused_0[6];
*/
uint16_t ctx_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_cfa_ctx_mem_qctx_output (size:256b/32B) */
struct hwrm_cfa_ctx_mem_qctx_output {
/* hwrm_cfa_ctx_mem_qctx_output (size:256b/32B) */
struct hwrm_cfa_ctx_mem_qctx_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**************************
* hwrm_cfa_ctx_mem_qcaps *
/**************************
* hwrm_cfa_ctx_mem_qcaps *
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
-} __attribute__((packed));
/* hwrm_cfa_ctx_mem_qcaps_output (size:128b/16B) */
struct hwrm_cfa_ctx_mem_qcaps_output {
/* hwrm_cfa_ctx_mem_qcaps_output (size:128b/16B) */
struct hwrm_cfa_ctx_mem_qcaps_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************
* hwrm_cfa_eem_qcaps *
/**********************
* hwrm_cfa_eem_qcaps *
#define HWRM_CFA_EEM_QCAPS_INPUT_FLAGS_PREFERRED_OFFLOAD \
UINT32_C(0x4)
uint32_t unused_0;
#define HWRM_CFA_EEM_QCAPS_INPUT_FLAGS_PREFERRED_OFFLOAD \
UINT32_C(0x4)
uint32_t unused_0;
-} __attribute__((packed));
/* hwrm_cfa_eem_qcaps_output (size:320b/40B) */
struct hwrm_cfa_eem_qcaps_output {
/* hwrm_cfa_eem_qcaps_output (size:320b/40B) */
struct hwrm_cfa_eem_qcaps_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/********************
* hwrm_cfa_eem_cfg *
/********************
* hwrm_cfa_eem_cfg *
uint16_t fid_ctx_id;
uint16_t unused_2;
uint32_t unused_3;
uint16_t fid_ctx_id;
uint16_t unused_2;
uint32_t unused_3;
-} __attribute__((packed));
/* hwrm_cfa_eem_cfg_output (size:128b/16B) */
struct hwrm_cfa_eem_cfg_output {
/* hwrm_cfa_eem_cfg_output (size:128b/16B) */
struct hwrm_cfa_eem_cfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*********************
* hwrm_cfa_eem_qcfg *
/*********************
* hwrm_cfa_eem_qcfg *
/* When set to 1, indicates the configuration is the RX flow. */
#define HWRM_CFA_EEM_QCFG_INPUT_FLAGS_PATH_RX UINT32_C(0x2)
uint32_t unused_0;
/* When set to 1, indicates the configuration is the RX flow. */
#define HWRM_CFA_EEM_QCFG_INPUT_FLAGS_PATH_RX UINT32_C(0x2)
uint32_t unused_0;
-} __attribute__((packed));
/* hwrm_cfa_eem_qcfg_output (size:256b/32B) */
struct hwrm_cfa_eem_qcfg_output {
/* hwrm_cfa_eem_qcfg_output (size:256b/32B) */
struct hwrm_cfa_eem_qcfg_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*******************
* hwrm_cfa_eem_op *
/*******************
* hwrm_cfa_eem_op *
#define HWRM_CFA_EEM_OP_INPUT_OP_EEM_CLEANUP UINT32_C(0x3)
#define HWRM_CFA_EEM_OP_INPUT_OP_LAST \
HWRM_CFA_EEM_OP_INPUT_OP_EEM_CLEANUP
#define HWRM_CFA_EEM_OP_INPUT_OP_EEM_CLEANUP UINT32_C(0x3)
#define HWRM_CFA_EEM_OP_INPUT_OP_LAST \
HWRM_CFA_EEM_OP_INPUT_OP_EEM_CLEANUP
-} __attribute__((packed));
/* hwrm_cfa_eem_op_output (size:128b/16B) */
struct hwrm_cfa_eem_op_output {
/* hwrm_cfa_eem_op_output (size:128b/16B) */
struct hwrm_cfa_eem_op_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/********************************
* hwrm_cfa_adv_flow_mgnt_qcaps *
/********************************
* hwrm_cfa_adv_flow_mgnt_qcaps *
*/
uint64_t resp_addr;
uint32_t unused_0[4];
*/
uint64_t resp_addr;
uint32_t unused_0[4];
-} __attribute__((packed));
/* hwrm_cfa_adv_flow_mgnt_qcaps_output (size:128b/16B) */
struct hwrm_cfa_adv_flow_mgnt_qcaps_output {
/* hwrm_cfa_adv_flow_mgnt_qcaps_output (size:128b/16B) */
struct hwrm_cfa_adv_flow_mgnt_qcaps_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/******************
* hwrm_cfa_tflib *
/******************
* hwrm_cfa_tflib *
uint8_t unused0[4];
/* TFLIB request data. */
uint32_t tf_req[26];
uint8_t unused0[4];
/* TFLIB request data. */
uint32_t tf_req[26];
-} __attribute__((packed));
/* hwrm_cfa_tflib_output (size:5632b/704B) */
struct hwrm_cfa_tflib_output {
/* hwrm_cfa_tflib_output (size:5632b/704B) */
struct hwrm_cfa_tflib_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/******************************
* hwrm_tunnel_dst_port_query *
/******************************
* hwrm_tunnel_dst_port_query *
#define HWRM_TUNNEL_DST_PORT_QUERY_INPUT_TUNNEL_TYPE_LAST \
HWRM_TUNNEL_DST_PORT_QUERY_INPUT_TUNNEL_TYPE_VXLAN_GPE_V6
uint8_t unused_0[7];
#define HWRM_TUNNEL_DST_PORT_QUERY_INPUT_TUNNEL_TYPE_LAST \
HWRM_TUNNEL_DST_PORT_QUERY_INPUT_TUNNEL_TYPE_VXLAN_GPE_V6
uint8_t unused_0[7];
-} __attribute__((packed));
/* hwrm_tunnel_dst_port_query_output (size:128b/16B) */
struct hwrm_tunnel_dst_port_query_output {
/* hwrm_tunnel_dst_port_query_output (size:128b/16B) */
struct hwrm_tunnel_dst_port_query_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/******************************
* hwrm_tunnel_dst_port_alloc *
/******************************
* hwrm_tunnel_dst_port_alloc *
*/
uint16_t tunnel_dst_port_val;
uint8_t unused_1[4];
*/
uint16_t tunnel_dst_port_val;
uint8_t unused_1[4];
-} __attribute__((packed));
/* hwrm_tunnel_dst_port_alloc_output (size:128b/16B) */
struct hwrm_tunnel_dst_port_alloc_output {
/* hwrm_tunnel_dst_port_alloc_output (size:128b/16B) */
struct hwrm_tunnel_dst_port_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*****************************
* hwrm_tunnel_dst_port_free *
/*****************************
* hwrm_tunnel_dst_port_free *
*/
uint16_t tunnel_dst_port_id;
uint8_t unused_1[4];
*/
uint16_t tunnel_dst_port_id;
uint8_t unused_1[4];
-} __attribute__((packed));
/* hwrm_tunnel_dst_port_free_output (size:128b/16B) */
struct hwrm_tunnel_dst_port_free_output {
/* hwrm_tunnel_dst_port_free_output (size:128b/16B) */
struct hwrm_tunnel_dst_port_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* Periodic statistics context DMA to host. */
/* ctx_hw_stats (size:1280b/160B) */
/* Periodic statistics context DMA to host. */
/* ctx_hw_stats (size:1280b/160B) */
uint64_t tpa_events;
/* Number of TPA aborts */
uint64_t tpa_aborts;
uint64_t tpa_events;
/* Number of TPA aborts */
uint64_t tpa_aborts;
-} __attribute__((packed));
/* Periodic statistics context DMA to host. */
/* ctx_hw_stats_ext (size:1344b/168B) */
/* Periodic statistics context DMA to host. */
/* ctx_hw_stats_ext (size:1344b/168B) */
uint64_t rx_tpa_bytes;
/* Number of TPA errors */
uint64_t rx_tpa_errors;
uint64_t rx_tpa_bytes;
/* Number of TPA errors */
uint64_t rx_tpa_errors;
-} __attribute__((packed));
/* Periodic Engine statistics context DMA to host. */
/* ctx_eng_stats (size:512b/64B) */
/* Periodic Engine statistics context DMA to host. */
/* ctx_eng_stats (size:512b/64B) */
* the unit is count of clock cycles
*/
uint64_t cdd_engine_usage;
* the unit is count of clock cycles
*/
uint64_t cdd_engine_usage;
-} __attribute__((packed));
/***********************
* hwrm_stat_ctx_alloc *
/***********************
* hwrm_stat_ctx_alloc *
* for the periodic DMA updates.
*/
uint16_t stats_dma_length;
* for the periodic DMA updates.
*/
uint16_t stats_dma_length;
-} __attribute__((packed));
/* hwrm_stat_ctx_alloc_output (size:128b/16B) */
struct hwrm_stat_ctx_alloc_output {
/* hwrm_stat_ctx_alloc_output (size:128b/16B) */
struct hwrm_stat_ctx_alloc_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************
* hwrm_stat_ctx_free *
/**********************
* hwrm_stat_ctx_free *
/* ID of the statistics context that is being queried. */
uint32_t stat_ctx_id;
uint8_t unused_0[4];
/* ID of the statistics context that is being queried. */
uint32_t stat_ctx_id;
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_stat_ctx_free_output (size:128b/16B) */
struct hwrm_stat_ctx_free_output {
/* hwrm_stat_ctx_free_output (size:128b/16B) */
struct hwrm_stat_ctx_free_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***********************
* hwrm_stat_ctx_query *
/***********************
* hwrm_stat_ctx_query *
/* ID of the statistics context that is being queried. */
uint32_t stat_ctx_id;
uint8_t unused_0[4];
/* ID of the statistics context that is being queried. */
uint32_t stat_ctx_id;
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_stat_ctx_query_output (size:1408b/176B) */
struct hwrm_stat_ctx_query_output {
/* hwrm_stat_ctx_query_output (size:1408b/176B) */
struct hwrm_stat_ctx_query_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***************************
* hwrm_stat_ctx_eng_query *
/***************************
* hwrm_stat_ctx_eng_query *
/* ID of the statistics context that is being queried. */
uint32_t stat_ctx_id;
uint8_t unused_0[4];
/* ID of the statistics context that is being queried. */
uint32_t stat_ctx_id;
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_stat_ctx_eng_query_output (size:640b/80B) */
struct hwrm_stat_ctx_eng_query_output {
/* hwrm_stat_ctx_eng_query_output (size:640b/80B) */
struct hwrm_stat_ctx_eng_query_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***************************
* hwrm_stat_ctx_clr_stats *
/***************************
* hwrm_stat_ctx_clr_stats *
/* ID of the statistics context that is being queried. */
uint32_t stat_ctx_id;
uint8_t unused_0[4];
/* ID of the statistics context that is being queried. */
uint32_t stat_ctx_id;
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_stat_ctx_clr_stats_output (size:128b/16B) */
struct hwrm_stat_ctx_clr_stats_output {
/* hwrm_stat_ctx_clr_stats_output (size:128b/16B) */
struct hwrm_stat_ctx_clr_stats_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/********************
* hwrm_pcie_qstats *
/********************
* hwrm_pcie_qstats *
* PCIe statistics will be stored
*/
uint64_t pcie_stat_host_addr;
* PCIe statistics will be stored
*/
uint64_t pcie_stat_host_addr;
-} __attribute__((packed));
/* hwrm_pcie_qstats_output (size:128b/16B) */
struct hwrm_pcie_qstats_output {
/* hwrm_pcie_qstats_output (size:128b/16B) */
struct hwrm_pcie_qstats_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* PCIe Statistics Formats */
/* pcie_ctx_hw_stats (size:768b/96B) */
/* PCIe Statistics Formats */
/* pcie_ctx_hw_stats (size:768b/96B) */
* to Recovery
*/
uint64_t pcie_recovery_histogram;
* to Recovery
*/
uint64_t pcie_recovery_histogram;
-} __attribute__((packed));
/**********************
* hwrm_exec_fwd_resp *
/**********************
* hwrm_exec_fwd_resp *
*/
uint16_t encap_resp_target_id;
uint8_t unused_0[6];
*/
uint16_t encap_resp_target_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_exec_fwd_resp_output (size:128b/16B) */
struct hwrm_exec_fwd_resp_output {
/* hwrm_exec_fwd_resp_output (size:128b/16B) */
struct hwrm_exec_fwd_resp_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/************************
* hwrm_reject_fwd_resp *
/************************
* hwrm_reject_fwd_resp *
*/
uint16_t encap_resp_target_id;
uint8_t unused_0[6];
*/
uint16_t encap_resp_target_id;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_reject_fwd_resp_output (size:128b/16B) */
struct hwrm_reject_fwd_resp_output {
/* hwrm_reject_fwd_resp_output (size:128b/16B) */
struct hwrm_reject_fwd_resp_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*****************
* hwrm_fwd_resp *
/*****************
* hwrm_fwd_resp *
uint64_t encap_resp_addr;
/* This is an encapsulated response. */
uint32_t encap_resp[24];
uint64_t encap_resp_addr;
/* This is an encapsulated response. */
uint32_t encap_resp[24];
-} __attribute__((packed));
/* hwrm_fwd_resp_output (size:128b/16B) */
struct hwrm_fwd_resp_output {
/* hwrm_fwd_resp_output (size:128b/16B) */
struct hwrm_fwd_resp_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*****************************
* hwrm_fwd_async_event_cmpl *
/*****************************
* hwrm_fwd_async_event_cmpl *
uint8_t unused_0[6];
/* This is an encapsulated asynchronous event completion. */
uint32_t encap_async_event_cmpl[4];
uint8_t unused_0[6];
/* This is an encapsulated asynchronous event completion. */
uint32_t encap_async_event_cmpl[4];
-} __attribute__((packed));
/* hwrm_fwd_async_event_cmpl_output (size:128b/16B) */
struct hwrm_fwd_async_event_cmpl_output {
/* hwrm_fwd_async_event_cmpl_output (size:128b/16B) */
struct hwrm_fwd_async_event_cmpl_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**************************
* hwrm_nvm_raw_write_blk *
/**************************
* hwrm_nvm_raw_write_blk *
uint32_t dest_addr;
/* Length of data to be written, in bytes. */
uint32_t len;
uint32_t dest_addr;
/* Length of data to be written, in bytes. */
uint32_t len;
-} __attribute__((packed));
/* hwrm_nvm_raw_write_blk_output (size:128b/16B) */
struct hwrm_nvm_raw_write_blk_output {
/* hwrm_nvm_raw_write_blk_output (size:128b/16B) */
struct hwrm_nvm_raw_write_blk_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*****************
* hwrm_nvm_read *
/*****************
* hwrm_nvm_read *
/* The length of the data to be read, in bytes. */
uint32_t len;
uint8_t unused_1[4];
/* The length of the data to be read, in bytes. */
uint32_t len;
uint8_t unused_1[4];
-} __attribute__((packed));
/* hwrm_nvm_read_output (size:128b/16B) */
struct hwrm_nvm_read_output {
/* hwrm_nvm_read_output (size:128b/16B) */
struct hwrm_nvm_read_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*********************
* hwrm_nvm_raw_dump *
/*********************
* hwrm_nvm_raw_dump *
uint32_t offset;
/* Total length of NVRAM contents to be read, in bytes. */
uint32_t len;
uint32_t offset;
/* Total length of NVRAM contents to be read, in bytes. */
uint32_t len;
-} __attribute__((packed));
/* hwrm_nvm_raw_dump_output (size:128b/16B) */
struct hwrm_nvm_raw_dump_output {
/* hwrm_nvm_raw_dump_output (size:128b/16B) */
struct hwrm_nvm_raw_dump_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/****************************
* hwrm_nvm_get_dir_entries *
/****************************
* hwrm_nvm_get_dir_entries *
* This is the host address where the directory will be written.
*/
uint64_t host_dest_addr;
* This is the host address where the directory will be written.
*/
uint64_t host_dest_addr;
-} __attribute__((packed));
/* hwrm_nvm_get_dir_entries_output (size:128b/16B) */
struct hwrm_nvm_get_dir_entries_output {
/* hwrm_nvm_get_dir_entries_output (size:128b/16B) */
struct hwrm_nvm_get_dir_entries_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*************************
* hwrm_nvm_get_dir_info *
/*************************
* hwrm_nvm_get_dir_info *
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
-} __attribute__((packed));
/* hwrm_nvm_get_dir_info_output (size:192b/24B) */
struct hwrm_nvm_get_dir_info_output {
/* hwrm_nvm_get_dir_info_output (size:192b/24B) */
struct hwrm_nvm_get_dir_info_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/******************
* hwrm_nvm_write *
/******************
* hwrm_nvm_write *
*/
uint32_t dir_item_length;
uint32_t unused_0;
*/
uint32_t dir_item_length;
uint32_t unused_0;
-} __attribute__((packed));
/* hwrm_nvm_write_output (size:128b/16B) */
struct hwrm_nvm_write_output {
/* hwrm_nvm_write_output (size:128b/16B) */
struct hwrm_nvm_write_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* hwrm_nvm_write_cmd_err (size:64b/8B) */
struct hwrm_nvm_write_cmd_err {
/* hwrm_nvm_write_cmd_err (size:64b/8B) */
struct hwrm_nvm_write_cmd_err {
#define HWRM_NVM_WRITE_CMD_ERR_CODE_LAST \
HWRM_NVM_WRITE_CMD_ERR_CODE_NO_SPACE
uint8_t unused_0[7];
#define HWRM_NVM_WRITE_CMD_ERR_CODE_LAST \
HWRM_NVM_WRITE_CMD_ERR_CODE_NO_SPACE
uint8_t unused_0[7];
-} __attribute__((packed));
/*******************
* hwrm_nvm_modify *
/*******************
* hwrm_nvm_modify *
*/
uint32_t len;
uint8_t unused_1[4];
*/
uint32_t len;
uint8_t unused_1[4];
-} __attribute__((packed));
/* hwrm_nvm_modify_output (size:128b/16B) */
struct hwrm_nvm_modify_output {
/* hwrm_nvm_modify_output (size:128b/16B) */
struct hwrm_nvm_modify_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***************************
* hwrm_nvm_find_dir_entry *
/***************************
* hwrm_nvm_find_dir_entry *
#define HWRM_NVM_FIND_DIR_ENTRY_INPUT_OPT_ORDINAL_LAST \
HWRM_NVM_FIND_DIR_ENTRY_INPUT_OPT_ORDINAL_GT
uint8_t unused_0[3];
#define HWRM_NVM_FIND_DIR_ENTRY_INPUT_OPT_ORDINAL_LAST \
HWRM_NVM_FIND_DIR_ENTRY_INPUT_OPT_ORDINAL_GT
uint8_t unused_0[3];
-} __attribute__((packed));
/* hwrm_nvm_find_dir_entry_output (size:256b/32B) */
struct hwrm_nvm_find_dir_entry_output {
/* hwrm_nvm_find_dir_entry_output (size:256b/32B) */
struct hwrm_nvm_find_dir_entry_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/****************************
* hwrm_nvm_erase_dir_entry *
/****************************
* hwrm_nvm_erase_dir_entry *
/* Directory Entry Index */
uint16_t dir_idx;
uint8_t unused_0[6];
/* Directory Entry Index */
uint16_t dir_idx;
uint8_t unused_0[6];
-} __attribute__((packed));
/* hwrm_nvm_erase_dir_entry_output (size:128b/16B) */
struct hwrm_nvm_erase_dir_entry_output {
/* hwrm_nvm_erase_dir_entry_output (size:128b/16B) */
struct hwrm_nvm_erase_dir_entry_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/*************************
* hwrm_nvm_get_dev_info *
/*************************
* hwrm_nvm_get_dev_info *
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
-} __attribute__((packed));
/* hwrm_nvm_get_dev_info_output (size:256b/32B) */
struct hwrm_nvm_get_dev_info_output {
/* hwrm_nvm_get_dev_info_output (size:256b/32B) */
struct hwrm_nvm_get_dev_info_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**************************
* hwrm_nvm_mod_dir_entry *
/**************************
* hwrm_nvm_mod_dir_entry *
* value of the content in the directory entry.
*/
uint32_t checksum;
* value of the content in the directory entry.
*/
uint32_t checksum;
-} __attribute__((packed));
/* hwrm_nvm_mod_dir_entry_output (size:128b/16B) */
struct hwrm_nvm_mod_dir_entry_output {
/* hwrm_nvm_mod_dir_entry_output (size:128b/16B) */
struct hwrm_nvm_mod_dir_entry_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**************************
* hwrm_nvm_verify_update *
/**************************
* hwrm_nvm_verify_update *
*/
uint16_t dir_ext;
uint8_t unused_0[2];
*/
uint16_t dir_ext;
uint8_t unused_0[2];
-} __attribute__((packed));
/* hwrm_nvm_verify_update_output (size:128b/16B) */
struct hwrm_nvm_verify_update_output {
/* hwrm_nvm_verify_update_output (size:128b/16B) */
struct hwrm_nvm_verify_update_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/***************************
* hwrm_nvm_install_update *
/***************************
* hwrm_nvm_install_update *
#define HWRM_NVM_INSTALL_UPDATE_INPUT_FLAGS_ALLOWED_TO_DEFRAG \
UINT32_C(0x4)
uint8_t unused_0[2];
#define HWRM_NVM_INSTALL_UPDATE_INPUT_FLAGS_ALLOWED_TO_DEFRAG \
UINT32_C(0x4)
uint8_t unused_0[2];
-} __attribute__((packed));
/* hwrm_nvm_install_update_output (size:192b/24B) */
struct hwrm_nvm_install_update_output {
/* hwrm_nvm_install_update_output (size:192b/24B) */
struct hwrm_nvm_install_update_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* hwrm_nvm_install_update_cmd_err (size:64b/8B) */
struct hwrm_nvm_install_update_cmd_err {
/* hwrm_nvm_install_update_cmd_err (size:64b/8B) */
struct hwrm_nvm_install_update_cmd_err {
#define HWRM_NVM_INSTALL_UPDATE_CMD_ERR_CODE_LAST \
HWRM_NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_SPACE
uint8_t unused_0[7];
#define HWRM_NVM_INSTALL_UPDATE_CMD_ERR_CODE_LAST \
HWRM_NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_SPACE
uint8_t unused_0[7];
-} __attribute__((packed));
/******************
* hwrm_nvm_flush *
/******************
* hwrm_nvm_flush *
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
* point to a physically contiguous block of memory.
*/
uint64_t resp_addr;
-} __attribute__((packed));
/* hwrm_nvm_flush_output (size:128b/16B) */
struct hwrm_nvm_flush_output {
/* hwrm_nvm_flush_output (size:128b/16B) */
struct hwrm_nvm_flush_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* hwrm_nvm_flush_cmd_err (size:64b/8B) */
struct hwrm_nvm_flush_cmd_err {
/* hwrm_nvm_flush_cmd_err (size:64b/8B) */
struct hwrm_nvm_flush_cmd_err {
#define HWRM_NVM_FLUSH_CMD_ERR_CODE_LAST \
HWRM_NVM_FLUSH_CMD_ERR_CODE_FAIL
uint8_t unused_0[7];
#define HWRM_NVM_FLUSH_CMD_ERR_CODE_LAST \
HWRM_NVM_FLUSH_CMD_ERR_CODE_FAIL
uint8_t unused_0[7];
-} __attribute__((packed));
/*************************
* hwrm_nvm_get_variable *
/*************************
* hwrm_nvm_get_variable *
#define HWRM_NVM_GET_VARIABLE_INPUT_FLAGS_FACTORY_DFLT \
UINT32_C(0x1)
uint8_t unused_0;
#define HWRM_NVM_GET_VARIABLE_INPUT_FLAGS_FACTORY_DFLT \
UINT32_C(0x1)
uint8_t unused_0;
-} __attribute__((packed));
/* hwrm_nvm_get_variable_output (size:128b/16B) */
struct hwrm_nvm_get_variable_output {
/* hwrm_nvm_get_variable_output (size:128b/16B) */
struct hwrm_nvm_get_variable_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* hwrm_nvm_get_variable_cmd_err (size:64b/8B) */
struct hwrm_nvm_get_variable_cmd_err {
/* hwrm_nvm_get_variable_cmd_err (size:64b/8B) */
struct hwrm_nvm_get_variable_cmd_err {
#define HWRM_NVM_GET_VARIABLE_CMD_ERR_CODE_LAST \
HWRM_NVM_GET_VARIABLE_CMD_ERR_CODE_LEN_TOO_SHORT
uint8_t unused_0[7];
#define HWRM_NVM_GET_VARIABLE_CMD_ERR_CODE_LAST \
HWRM_NVM_GET_VARIABLE_CMD_ERR_CODE_LEN_TOO_SHORT
uint8_t unused_0[7];
-} __attribute__((packed));
/*************************
* hwrm_nvm_set_variable *
/*************************
* hwrm_nvm_set_variable *
#define HWRM_NVM_SET_VARIABLE_INPUT_FLAGS_FACTORY_DEFAULT \
UINT32_C(0x80)
uint8_t unused_0;
#define HWRM_NVM_SET_VARIABLE_INPUT_FLAGS_FACTORY_DEFAULT \
UINT32_C(0x80)
uint8_t unused_0;
-} __attribute__((packed));
/* hwrm_nvm_set_variable_output (size:128b/16B) */
struct hwrm_nvm_set_variable_output {
/* hwrm_nvm_set_variable_output (size:128b/16B) */
struct hwrm_nvm_set_variable_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* hwrm_nvm_set_variable_cmd_err (size:64b/8B) */
struct hwrm_nvm_set_variable_cmd_err {
/* hwrm_nvm_set_variable_cmd_err (size:64b/8B) */
struct hwrm_nvm_set_variable_cmd_err {
#define HWRM_NVM_SET_VARIABLE_CMD_ERR_CODE_LAST \
HWRM_NVM_SET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR
uint8_t unused_0[7];
#define HWRM_NVM_SET_VARIABLE_CMD_ERR_CODE_LAST \
HWRM_NVM_SET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR
uint8_t unused_0[7];
-} __attribute__((packed));
/****************************
* hwrm_nvm_validate_option *
/****************************
* hwrm_nvm_validate_option *
/* index for the 4th dimensions */
uint16_t index_3;
uint8_t unused_0[2];
/* index for the 4th dimensions */
uint16_t index_3;
uint8_t unused_0[2];
-} __attribute__((packed));
/* hwrm_nvm_validate_option_output (size:128b/16B) */
struct hwrm_nvm_validate_option_output {
/* hwrm_nvm_validate_option_output (size:128b/16B) */
struct hwrm_nvm_validate_option_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/* hwrm_nvm_validate_option_cmd_err (size:64b/8B) */
struct hwrm_nvm_validate_option_cmd_err {
/* hwrm_nvm_validate_option_cmd_err (size:64b/8B) */
struct hwrm_nvm_validate_option_cmd_err {
#define HWRM_NVM_VALIDATE_OPTION_CMD_ERR_CODE_LAST \
HWRM_NVM_VALIDATE_OPTION_CMD_ERR_CODE_UNKNOWN
uint8_t unused_0[7];
#define HWRM_NVM_VALIDATE_OPTION_CMD_ERR_CODE_LAST \
HWRM_NVM_VALIDATE_OPTION_CMD_ERR_CODE_UNKNOWN
uint8_t unused_0[7];
-} __attribute__((packed));
/*****************
* hwrm_fw_reset *
/*****************
* hwrm_fw_reset *
*/
#define HWRM_FW_RESET_INPUT_FLAGS_RESET_GRACEFUL UINT32_C(0x1)
uint8_t unused_0[4];
*/
#define HWRM_FW_RESET_INPUT_FLAGS_RESET_GRACEFUL UINT32_C(0x1)
uint8_t unused_0[4];
-} __attribute__((packed));
/* hwrm_fw_reset_output (size:128b/16B) */
struct hwrm_fw_reset_output {
/* hwrm_fw_reset_output (size:128b/16B) */
struct hwrm_fw_reset_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
/**********************
* hwrm_port_ts_query *
/**********************
* hwrm_port_ts_query *
/* Port ID of port that is being queried. */
uint16_t port_id;
uint8_t unused_0[2];
/* Port ID of port that is being queried. */
uint16_t port_id;
uint8_t unused_0[2];
-} __attribute__((packed));
/* hwrm_port_ts_query_output (size:192b/24B) */
struct hwrm_port_ts_query_output {
/* hwrm_port_ts_query_output (size:192b/24B) */
struct hwrm_port_ts_query_output {
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
* the order of writes has to be such that this field is written last.
*/
uint8_t valid;
-} __attribute__((packed));
#endif /* _HSI_STRUCT_DEF_DPDK_H_ */
#endif /* _HSI_STRUCT_DEF_DPDK_H_ */
struct slow_protocol {
uint8_t subtype;
uint8_t reserved_119[119];
struct slow_protocol {
uint8_t subtype;
uint8_t reserved_119[119];
-} __attribute__((__packed__));
/** Generic slow protocol frame type structure */
struct slow_protocol_frame {
struct rte_ether_hdr eth_hdr;
struct slow_protocol slow_protocol;
/** Generic slow protocol frame type structure */
struct slow_protocol_frame {
struct rte_ether_hdr eth_hdr;
struct slow_protocol slow_protocol;
-} __attribute__((__packed__)) __rte_aligned(2);
+} __rte_packed __rte_aligned(2);
struct port_params {
uint16_t system_priority;
struct port_params {
uint16_t system_priority;
/**< Priority of this (unused in current implementation) */
uint16_t port_number;
/**< Port number. It corresponds to slave port id. */
/**< Priority of this (unused in current implementation) */
uint16_t port_number;
/**< Port number. It corresponds to slave port id. */
-} __attribute__((__packed__)) __rte_aligned(2);
+} __rte_packed __rte_aligned(2);
struct lacpdu_actor_partner_params {
uint8_t tlv_type_info;
struct lacpdu_actor_partner_params {
uint8_t tlv_type_info;
struct port_params port_params;
uint8_t state;
uint8_t reserved_3[3];
struct port_params port_params;
uint8_t state;
uint8_t reserved_3[3];
-} __attribute__((__packed__)) __rte_aligned(2);
+} __rte_packed __rte_aligned(2);
/** LACPDU structure (5.4.2 in 802.1AX documentation). */
struct lacpdu {
/** LACPDU structure (5.4.2 in 802.1AX documentation). */
struct lacpdu {
uint8_t tlv_type_terminator;
uint8_t terminator_length;
uint8_t reserved_50[50];
uint8_t tlv_type_terminator;
uint8_t terminator_length;
uint8_t reserved_50[50];
-} __attribute__((__packed__)) __rte_aligned(2);
+} __rte_packed __rte_aligned(2);
/** LACPDU frame: Contains ethernet header and LACPDU. */
struct lacpdu_header {
struct rte_ether_hdr eth_hdr;
struct lacpdu lacpdu;
/** LACPDU frame: Contains ethernet header and LACPDU. */
struct lacpdu_header {
struct rte_ether_hdr eth_hdr;
struct lacpdu lacpdu;
-} __attribute__((__packed__)) __rte_aligned(2);
+} __rte_packed __rte_aligned(2);
struct marker {
uint8_t subtype;
struct marker {
uint8_t subtype;
uint8_t tlv_type_terminator;
uint8_t terminator_length;
uint8_t reserved_90[90];
uint8_t tlv_type_terminator;
uint8_t terminator_length;
uint8_t reserved_90[90];
-} __attribute__((__packed__)) __rte_aligned(2);
+} __rte_packed __rte_aligned(2);
struct marker_header {
struct rte_ether_hdr eth_hdr;
struct marker marker;
struct marker_header {
struct rte_ether_hdr eth_hdr;
struct marker marker;
-} __attribute__((__packed__)) __rte_aligned(2);
+} __rte_packed __rte_aligned(2);
struct rte_eth_bond_8023ad_conf {
uint32_t fast_periodic_ms;
struct rte_eth_bond_8023ad_conf {
uint32_t fast_periodic_ms;
uint16_t vlan:1;
uint16_t ethernet:1;
#endif
uint16_t vlan:1;
uint16_t ethernet:1;
#endif
- } __attribute__((__packed__));
- } __attribute__((__packed__));
+ } __rte_packed;
+ } __rte_packed;
union {
uint16_t l3r; /**< Layer 3 result */
struct {
union {
uint16_t l3r; /**< Layer 3 result */
struct {
uint16_t first_ipv6:1;
uint16_t first_ipv4:1;
#endif
uint16_t first_ipv6:1;
uint16_t first_ipv4:1;
#endif
- } __attribute__((__packed__));
- } __attribute__((__packed__));
+ } __rte_packed;
+ } __rte_packed;
union {
uint8_t l4r; /**< Layer 4 result */
struct{
union {
uint8_t l4r; /**< Layer 4 result */
struct{
uint8_t l4_info_err:1;
uint8_t l4_type:3;
#endif
uint8_t l4_info_err:1;
uint8_t l4_type:3;
#endif
- } __attribute__((__packed__));
- } __attribute__((__packed__));
+ } __rte_packed;
+ } __rte_packed;
uint8_t cplan; /**< Classification plan id */
uint16_t nxthdr; /**< Next Header */
uint16_t cksum; /**< Checksum */
uint8_t cplan; /**< Classification plan id */
uint16_t nxthdr; /**< Next Header */
uint16_t cksum; /**< Checksum */
uint8_t gre_off; /**< GRE offset */
uint8_t l4_off; /**< Layer 4 offset */
uint8_t nxthdr_off; /**< Parser end point */
uint8_t gre_off; /**< GRE offset */
uint8_t l4_off; /**< Layer 4 offset */
uint8_t nxthdr_off; /**< Parser end point */
-} __attribute__ ((__packed__));
/* The structure is the Prepended Data to the Frame which is used by FMAN */
struct annotations_t {
/* The structure is the Prepended Data to the Frame which is used by FMAN */
struct annotations_t {
uint8_t ppid;
__le16 ifpid;
__le32 status;
uint8_t ppid;
__le16 ifpid;
__le32 status;
-} __attribute__((__packed__));
/**
* HW Packet Annotation Register structures
/**
* HW Packet Annotation Register structures
uint16_t ethtype;
uint8_t proto_version;
uint32_t usnic_id;
uint16_t ethtype;
uint8_t proto_version;
uint32_t usnic_id;
-} __attribute__((packed));
#define FILTER_FIELD_5TUP_PROTO FILTER_FIELD_VALID(1)
#define FILTER_FIELD_5TUP_SRC_AD FILTER_FIELD_VALID(2)
#define FILTER_FIELD_5TUP_PROTO FILTER_FIELD_VALID(1)
#define FILTER_FIELD_5TUP_SRC_AD FILTER_FIELD_VALID(2)
uint32_t dst_addr;
uint16_t src_port;
uint16_t dst_port;
uint32_t dst_addr;
uint16_t src_port;
uint16_t dst_port;
-} __attribute__((packed));
#define FILTER_FIELD_VMQ_VLAN FILTER_FIELD_VALID(1)
#define FILTER_FIELD_VMQ_MAC FILTER_FIELD_VALID(2)
#define FILTER_FIELD_VMQ_VLAN FILTER_FIELD_VALID(1)
#define FILTER_FIELD_VMQ_MAC FILTER_FIELD_VALID(2)
uint32_t flags;
uint16_t vlan;
uint8_t mac_addr[6];
uint32_t flags;
uint16_t vlan;
uint8_t mac_addr[6];
-} __attribute__((packed));
#define FILTER_FIELD_VLAN_IP_3TUP_VLAN FILTER_FIELD_VALID(1)
#define FILTER_FIELD_VLAN_IP_3TUP_L3_PROTO FILTER_FIELD_VALID(2)
#define FILTER_FIELD_VLAN_IP_3TUP_VLAN FILTER_FIELD_VALID(1)
#define FILTER_FIELD_VLAN_IP_3TUP_L3_PROTO FILTER_FIELD_VALID(2)
} u;
uint32_t l4_protocol;
uint16_t dst_port;
} u;
uint32_t l4_protocol;
uint16_t dst_port;
-} __attribute__((packed));
#define FILTER_GENERIC_1_BYTES 64
#define FILTER_GENERIC_1_BYTES 64
* " don't care"
*/
uint8_t val[FILTER_GENERIC_1_KEY_LEN];
* " don't care"
*/
uint8_t val[FILTER_GENERIC_1_KEY_LEN];
- } __attribute__((packed)) layer[FILTER_GENERIC_1_NUM_LAYERS];
-} __attribute__((packed));
+ } __rte_packed layer[FILTER_GENERIC_1_NUM_LAYERS];
+} __rte_packed;
/* Specifies the filter_action type. */
enum {
/* Specifies the filter_action type. */
enum {
union {
uint32_t rq_idx;
} u;
union {
uint32_t rq_idx;
} u;
-} __attribute__((packed));
#define FILTER_ACTION_RQ_STEERING_FLAG (1 << 0)
#define FILTER_ACTION_FILTER_ID_FLAG (1 << 1)
#define FILTER_ACTION_RQ_STEERING_FLAG (1 << 0)
#define FILTER_ACTION_FILTER_ID_FLAG (1 << 1)
uint32_t flags; /* use FILTER_ACTION_XXX_FLAG defines */
uint16_t filter_id;
uint8_t reserved[32]; /* for future expansion */
uint32_t flags; /* use FILTER_ACTION_XXX_FLAG defines */
uint16_t filter_id;
uint8_t reserved[32]; /* for future expansion */
-} __attribute__((packed));
/* Specifies the filter type. */
enum filter_type {
/* Specifies the filter type. */
enum filter_type {
struct filter_mac_vlan mac_vlan;
struct filter_vlan_ip_3tuple vlan_3tuple;
} u;
struct filter_mac_vlan mac_vlan;
struct filter_vlan_ip_3tuple vlan_3tuple;
} u;
-} __attribute__((packed));
/*
* This is a strict superset of "struct filter" and exists only
/*
* This is a strict superset of "struct filter" and exists only
struct filter_vlan_ip_3tuple vlan_3tuple;
struct filter_generic_1 generic_1;
} u;
struct filter_vlan_ip_3tuple vlan_3tuple;
struct filter_generic_1 generic_1;
} u;
-} __attribute__((packed));
enum {
CLSF_TLV_FILTER = 0,
enum {
CLSF_TLV_FILTER = 0,
u64 pa;
u32 size;
const void *zone;
u64 pa;
u32 size;
const void *zone;
-} __attribute__((packed));
#define i40e_allocate_dma_mem(h, m, unused, s, a) \
i40e_allocate_dma_mem_d(h, m, s, a)
#define i40e_allocate_dma_mem(h, m, unused, s, a) \
i40e_allocate_dma_mem_d(h, m, s, a)
struct i40e_virt_mem {
void *va;
u32 size;
struct i40e_virt_mem {
void *va;
u32 size;
-} __attribute__((packed));
#define i40e_allocate_virt_mem(h, m, s) i40e_allocate_virt_mem_d(h, m, s)
#define i40e_free_virt_mem(h, m) i40e_free_virt_mem_d(h, m)
#define i40e_allocate_virt_mem(h, m, s) i40e_allocate_virt_mem_d(h, m, s)
#define i40e_free_virt_mem(h, m) i40e_free_virt_mem_d(h, m)
#define __maybe_unused __attribute__((unused))
#endif
#ifndef __packed
#define __maybe_unused __attribute__((unused))
#endif
#ifndef __packed
-#define __packed __attribute__((packed))
+#define __packed __rte_packed
u64 pa;
u32 size;
const void *zone;
u64 pa;
u32 size;
const void *zone;
-} __attribute__((packed));
struct ice_virt_mem {
void *va;
u32 size;
struct ice_virt_mem {
void *va;
u32 size;
-} __attribute__((packed));
#define ice_malloc(h, s) rte_zmalloc(NULL, s, 0)
#define ice_calloc(h, c, s) rte_zmalloc(NULL, (c) * (s), 0)
#define ice_malloc(h, s) rte_zmalloc(NULL, s, 0)
#define ice_calloc(h, c, s) rte_zmalloc(NULL, (c) * (s), 0)
__le16 vlan; /* VLAN tag to add if indicated */
};
__le16 data_len; /* Length of frame + meta data */
__le16 vlan; /* VLAN tag to add if indicated */
};
__le16 data_len; /* Length of frame + meta data */
- } __attribute__((__packed__));
uint8_t dd;
__le32 dma_addr_lo;
uint8_t dd;
__le32 dma_addr_lo;
- } __attribute__((__packed__)) fld;
/* RX descriptor */
struct {
/* RX descriptor */
struct {
__le16 flags;
__le16 vlan;
__le16 flags;
__le16 vlan;
- } __attribute__((__packed__)) rxd;
uint16_t svlan;
uint16_t ethertype_cvlan;
uint16_t cvlan;
uint16_t svlan;
uint16_t ethertype_cvlan;
uint16_t cvlan;
-} __attribute__((__packed__));
struct pkt_key_ipv4_5tuple {
uint8_t time_to_live;
struct pkt_key_ipv4_5tuple {
uint8_t time_to_live;
uint32_t da;
uint16_t sp;
uint16_t dp;
uint32_t da;
uint16_t sp;
uint16_t dp;
-} __attribute__((__packed__));
struct pkt_key_ipv6_5tuple {
uint16_t payload_length;
struct pkt_key_ipv6_5tuple {
uint16_t payload_length;
uint8_t da[16];
uint16_t sp;
uint16_t dp;
uint8_t da[16];
uint16_t sp;
uint16_t dp;
-} __attribute__((__packed__));
struct pkt_key_ipv4_addr {
uint32_t addr;
struct pkt_key_ipv4_addr {
uint32_t addr;
-} __attribute__((__packed__));
struct pkt_key_ipv6_addr {
uint8_t addr[16];
struct pkt_key_ipv6_addr {
uint8_t addr[16];
-} __attribute__((__packed__));
static uint32_t
parse_match(char **tokens,
static uint32_t
parse_match(char **tokens,
__u32 dst_addr;
__u16 dport;
__u16 sport;
__u32 dst_addr;
__u16 dport;
__u16 sport;
-} __attribute__((packed));
struct ipv6_l3_l4_tuple {
__u8 src_addr[16];
__u8 dst_addr[16];
__u16 dport;
__u16 sport;
struct ipv6_l3_l4_tuple {
__u8 src_addr[16];
__u8 dst_addr[16];
__u16 dport;
__u16 sport;
-} __attribute__((packed));
static const __u8 def_rss_key[TAP_RSS_HASH_KEY_SIZE] = {
0xd1, 0x81, 0xc6, 0x2c,
static const __u8 def_rss_key[TAP_RSS_HASH_KEY_SIZE] = {
0xd1, 0x81, 0xc6, 0x2c,
__u32 key_size;
__u32 queues[TAP_MAX_QUEUES];
__u32 nb_queues;
__u32 key_size;
__u32 queues[TAP_MAX_QUEUES];
__u32 nb_queues;
-} __attribute__((packed));
uint16_t status;
uint16_t max_virtqueue_pairs;
uint16_t mtu;
uint16_t status;
uint16_t max_virtqueue_pairs;
uint16_t mtu;
-} __attribute__((packed));
/*
* How many bits to shift physical queue address written to QUEUE_PFN.
/*
* How many bits to shift physical queue address written to QUEUE_PFN.
struct vhost_memory memory;
} payload;
int fds[VHOST_MEMORY_MAX_NREGIONS];
struct vhost_memory memory;
} payload;
int fds[VHOST_MEMORY_MAX_NREGIONS];
-} __attribute((packed));
#define VHOST_USER_HDR_SIZE offsetof(struct vhost_user_msg, payload.u64)
#define VHOST_USER_PAYLOAD_SIZE \
#define VHOST_USER_HDR_SIZE offsetof(struct vhost_user_msg, payload.u64)
#define VHOST_USER_PAYLOAD_SIZE \
struct virtio_net_ctrl_mac {
uint32_t entries;
uint8_t macs[][RTE_ETHER_ADDR_LEN];
struct virtio_net_ctrl_mac {
uint32_t entries;
uint8_t macs[][RTE_ETHER_ADDR_LEN];
-} __attribute__((__packed__));
#define VIRTIO_NET_CTRL_MAC 1
#define VIRTIO_NET_CTRL_MAC_TABLE_SET 0
#define VIRTIO_NET_CTRL_MAC 1
#define VIRTIO_NET_CTRL_MAC_TABLE_SET 0
struct virtio_net_ctrl_hdr {
uint8_t class;
uint8_t cmd;
struct virtio_net_ctrl_hdr {
uint8_t class;
uint8_t cmd;
-} __attribute__((packed));
typedef uint8_t virtio_net_ctrl_ack;
typedef uint8_t virtio_net_ctrl_ack;
uint32_t wrttype:4;
} write_cmd;
};
uint32_t wrttype:4;
} write_cmd;
};
-} __attribute__ ((__packed__));
/** Represents a DPDMAI raw device */
struct dpaa2_dpdmai_dev {
/** Represents a DPDMAI raw device */
struct dpaa2_dpdmai_dev {
struct opae_ether_addr {
unsigned char addr_bytes[OPAE_ETHER_ADDR_LEN];
struct opae_ether_addr {
unsigned char addr_bytes[OPAE_ETHER_ADDR_LEN];
-} __attribute__((__packed__));
/* OPAE vBNG network API*/
int opae_manager_read_mac_rom(struct opae_manager *mgr, int port,
/* OPAE vBNG network API*/
int opae_manager_read_mac_rom(struct opae_manager *mgr, int port,
uint8_t reserved2[0x8]; /* 0xA0 */
uint32_t chanerr; /* 0xA8 */
uint32_t chanerrmask; /* 0xAC */
uint8_t reserved2[0x8]; /* 0xA0 */
uint32_t chanerr; /* 0xA8 */
uint32_t chanerrmask; /* 0xAC */
-} __attribute__((packed));
#define RTE_IOAT_CHANCMD_RESET 0x20
#define RTE_IOAT_CHANCMD_SUSPEND 0x04
#define RTE_IOAT_CHANCMD_RESET 0x20
#define RTE_IOAT_CHANCMD_SUSPEND 0x04
u8 mac[6];
u16 status;
u16 max_virtqueue_pairs;
u8 mac[6];
u16 status;
u16 max_virtqueue_pairs;
-} __attribute__((packed));
struct ifcvf_pci_mem_resource {
u64 phys_addr; /**< Physical address, 0 if not resource. */
struct ifcvf_pci_mem_resource {
u64 phys_addr; /**< Physical address, 0 if not resource. */
uint16_t svlan;
uint16_t ethertype_cvlan;
uint16_t cvlan;
uint16_t svlan;
uint16_t ethertype_cvlan;
uint16_t cvlan;
-} __attribute__((__packed__));
struct pkt_key_ipv4_5tuple {
uint8_t time_to_live;
struct pkt_key_ipv4_5tuple {
uint8_t time_to_live;
uint32_t da;
uint16_t sp;
uint16_t dp;
uint32_t da;
uint16_t sp;
uint16_t dp;
-} __attribute__((__packed__));
struct pkt_key_ipv6_5tuple {
uint16_t payload_length;
struct pkt_key_ipv6_5tuple {
uint16_t payload_length;
uint8_t da[16];
uint16_t sp;
uint16_t dp;
uint8_t da[16];
uint16_t sp;
uint16_t dp;
-} __attribute__((__packed__));
struct pkt_key_ipv4_addr {
uint32_t addr;
struct pkt_key_ipv4_addr {
uint32_t addr;
-} __attribute__((__packed__));
struct pkt_key_ipv6_addr {
uint8_t addr[16];
struct pkt_key_ipv6_addr {
uint8_t addr[16];
-} __attribute__((__packed__));
static uint32_t
parse_match(char **tokens,
static uint32_t
parse_match(char **tokens,
uint32_t salt;
uint64_t iv;
uint32_t cnt;
uint32_t salt;
uint64_t iv;
uint32_t cnt;
-} __attribute__((packed));
/* Socket ctx */
extern struct socket_ctx socket_ctx[NB_SOCKETS];
/* Socket ctx */
extern struct socket_ctx socket_ctx[NB_SOCKETS];
uint16_t port_dst;
uint16_t port_src;
uint8_t proto;
uint16_t port_dst;
uint16_t port_src;
uint8_t proto;
-} __attribute__((__packed__));
struct ipv6_5tuple {
uint8_t ip_dst[IPV6_ADDR_LEN];
struct ipv6_5tuple {
uint8_t ip_dst[IPV6_ADDR_LEN];
uint16_t port_dst;
uint16_t port_src;
uint8_t proto;
uint16_t port_dst;
uint16_t port_src;
uint8_t proto;
-} __attribute__((__packed__));
struct ipv4_l3fwd_route {
struct ipv4_5tuple key;
struct ipv4_l3fwd_route {
struct ipv4_5tuple key;
uint16_t port_dst;
uint16_t port_src;
uint8_t proto;
uint16_t port_dst;
uint16_t port_src;
uint8_t proto;
-} __attribute__((__packed__));
union ipv4_5tuple_host {
struct {
union ipv4_5tuple_host {
struct {
uint16_t port_dst;
uint16_t port_src;
uint8_t proto;
uint16_t port_dst;
uint16_t port_src;
uint8_t proto;
-} __attribute__((__packed__));
union ipv6_5tuple_host {
struct {
union ipv6_5tuple_host {
struct {
uint16_t port_dst;
uint16_t port_src;
uint8_t proto;
uint16_t port_dst;
uint16_t port_src;
uint8_t proto;
-} __attribute__((__packed__));
union ipv4_5tuple_host {
struct {
union ipv4_5tuple_host {
struct {
uint16_t port_dst;
uint16_t port_src;
uint8_t proto;
uint16_t port_dst;
uint16_t port_src;
uint8_t proto;
-} __attribute__((__packed__));
union ipv6_5tuple_host {
struct {
union ipv6_5tuple_host {
struct {
uint16_t sec_msb;
uint32_t sec_lsb;
uint32_t ns;
uint16_t sec_msb;
uint32_t sec_lsb;
uint32_t ns;
-} __attribute__((packed));
struct clock_id {
uint8_t id[8];
struct clock_id {
uint8_t id[8];
struct port_id {
struct clock_id clock_id;
uint16_t port_number;
struct port_id {
struct clock_id clock_id;
uint16_t port_number;
-} __attribute__((packed));
struct ptp_header {
uint8_t msg_type;
struct ptp_header {
uint8_t msg_type;
uint16_t seq_id;
uint8_t control;
int8_t log_message_interval;
uint16_t seq_id;
uint8_t control;
int8_t log_message_interval;
-} __attribute__((packed));
struct sync_msg {
struct ptp_header hdr;
struct tstamp origin_tstamp;
struct sync_msg {
struct ptp_header hdr;
struct tstamp origin_tstamp;
-} __attribute__((packed));
struct follow_up_msg {
struct ptp_header hdr;
struct tstamp precise_origin_tstamp;
uint8_t suffix[0];
struct follow_up_msg {
struct ptp_header hdr;
struct tstamp precise_origin_tstamp;
uint8_t suffix[0];
-} __attribute__((packed));
struct delay_req_msg {
struct ptp_header hdr;
struct tstamp origin_tstamp;
struct delay_req_msg {
struct ptp_header hdr;
struct tstamp origin_tstamp;
-} __attribute__((packed));
struct delay_resp_msg {
struct ptp_header hdr;
struct tstamp rx_tstamp;
struct port_id req_port_id;
uint8_t suffix[0];
struct delay_resp_msg {
struct ptp_header hdr;
struct tstamp rx_tstamp;
struct port_id req_port_id;
uint8_t suffix[0];
-} __attribute__((packed));
struct ptp_message {
union {
struct ptp_message {
union {
struct delay_req_msg delay_req;
struct follow_up_msg follow_up;
struct delay_resp_msg delay_resp;
struct delay_req_msg delay_req;
struct follow_up_msg follow_up;
struct delay_resp_msg delay_resp;
- } __attribute__((packed));
};
struct ptpv2_data_slave_ordinary {
};
struct ptpv2_data_slave_ordinary {
struct vhost_memory_padded memory;
struct vhost_user_config cfg;
} payload;
struct vhost_memory_padded memory;
struct vhost_user_config cfg;
} payload;
-} __attribute((packed));
* DPDK instances
*/
struct rte_mem_config *mem_config;
* DPDK instances
*/
struct rte_mem_config *mem_config;
-} __attribute__((__packed__));
/**
* Get the global configuration structure.
/**
* Get the global configuration structure.
int32_t socket_id; /**< NUMA socket ID. */
uint32_t flags; /**< Characteristics of this memzone. */
int32_t socket_id; /**< NUMA socket ID. */
uint32_t flags; /**< Characteristics of this memzone. */
-} __attribute__((__packed__));
/**
* Reserve a portion of physical memory.
/**
* Reserve a portion of physical memory.
struct efd_online_group_entry {
efd_hashfunc_t hash_idx[RTE_EFD_VALUE_NUM_BITS];
efd_lookuptbl_t lookup_table[RTE_EFD_VALUE_NUM_BITS];
struct efd_online_group_entry {
efd_hashfunc_t hash_idx[RTE_EFD_VALUE_NUM_BITS];
efd_lookuptbl_t lookup_table[RTE_EFD_VALUE_NUM_BITS];
-} __attribute__((__packed__));
/**
* A single chunk record, containing EFD_TARGET_CHUNK_NUM_RULES rules.
/**
* A single chunk record, containing EFD_TARGET_CHUNK_NUM_RULES rules.
struct efd_online_group_entry groups[EFD_CHUNK_NUM_GROUPS];
/**< Array of all the groups in the chunk. */
struct efd_online_group_entry groups[EFD_CHUNK_NUM_GROUPS];
/**< Array of all the groups in the chunk. */
-} __attribute__((__packed__));
/**
* EFD table structure
/**
* EFD table structure
uint8_t reserved; /**< Reserved */
uint16_t frag_data; /**< All fragmentation data */
uint32_t id; /**< Packet ID */
uint8_t reserved; /**< Reserved */
uint16_t frag_data; /**< All fragmentation data */
uint32_t id; /**< Packet ID */
-} __attribute__((__packed__));
uint32_t nonce;
uint64_t iv;
uint32_t cnt;
uint32_t nonce;
uint64_t iv;
uint32_t cnt;
-} __attribute__((packed));
/*
* AES-GCM devices have some specific requirements for IV and AAD formats.
/*
* AES-GCM devices have some specific requirements for IV and AAD formats.
uint32_t salt;
uint64_t iv;
uint32_t cnt;
uint32_t salt;
uint64_t iv;
uint32_t cnt;
-} __attribute__((packed));
struct aead_gcm_aad {
uint32_t spi;
struct aead_gcm_aad {
uint32_t spi;
uint64_t u64;
} sqn;
uint32_t align0; /* align to 16B boundary */
uint64_t u64;
} sqn;
uint32_t align0; /* align to 16B boundary */
-} __attribute__((packed));
struct gcm_esph_iv {
struct rte_esp_hdr esph;
uint64_t iv;
struct gcm_esph_iv {
struct rte_esp_hdr esph;
uint64_t iv;
-} __attribute__((packed));
static inline void
aes_ctr_cnt_blk_fill(struct aesctr_cnt_blk *ctr, uint64_t iv, uint32_t nonce)
static inline void
aes_ctr_cnt_blk_fill(struct aesctr_cnt_blk *ctr, uint64_t iv, uint32_t nonce)
uint32_t arp_sip; /**< sender IP address */
struct rte_ether_addr arp_tha; /**< target hardware address */
uint32_t arp_tip; /**< target IP address */
uint32_t arp_sip; /**< sender IP address */
struct rte_ether_addr arp_tha; /**< target hardware address */
uint32_t arp_tip; /**< target IP address */
-} __attribute__((__packed__)) __rte_aligned(2);
+} __rte_packed __rte_aligned(2);
#define RTE_ARP_OP_INVREPLY 9 /* response identifying peer */
struct rte_arp_ipv4 arp_data;
#define RTE_ARP_OP_INVREPLY 9 /* response identifying peer */
struct rte_arp_ipv4 arp_data;
-} __attribute__((__packed__)) __rte_aligned(2);
+} __rte_packed __rte_aligned(2);
struct rte_esp_hdr {
rte_be32_t spi; /**< Security Parameters Index */
rte_be32_t seq; /**< packet sequence number */
struct rte_esp_hdr {
rte_be32_t spi; /**< Security Parameters Index */
rte_be32_t seq; /**< packet sequence number */
-} __attribute__((__packed__));
struct rte_esp_tail {
uint8_t pad_len; /**< number of pad bytes (0-255) */
uint8_t next_proto; /**< IPv4 or IPv6 or next layer header */
struct rte_esp_tail {
uint8_t pad_len; /**< number of pad bytes (0-255) */
uint8_t next_proto; /**< IPv4 or IPv6 or next layer header */
-} __attribute__((__packed__));
struct rte_vlan_hdr {
uint16_t vlan_tci; /**< Priority (3) + CFI (1) + Identifier Code (12) */
uint16_t eth_proto;/**< Ethernet type of encapsulated frame. */
struct rte_vlan_hdr {
uint16_t vlan_tci; /**< Priority (3) + CFI (1) + Identifier Code (12) */
uint16_t eth_proto;/**< Ethernet type of encapsulated frame. */
-} __attribute__((__packed__));
uint16_t ver:3; /**< Version Number */
#endif
uint16_t proto; /**< Protocol Type */
uint16_t ver:3; /**< Version Number */
#endif
uint16_t proto; /**< Protocol Type */
-} __attribute__((__packed__));
uint8_t msg_type; /**< GTP message type */
uint16_t plen; /**< Total payload length */
uint32_t teid; /**< Tunnel endpoint ID */
uint8_t msg_type; /**< GTP message type */
uint16_t plen; /**< Total payload length */
uint32_t teid; /**< Tunnel endpoint ID */
-} __attribute__((__packed__));
/** GTP header length */
#define RTE_ETHER_GTP_HLEN \
/** GTP header length */
#define RTE_ETHER_GTP_HLEN \
rte_be16_t icmp_cksum; /* ICMP packet checksum. */
rte_be16_t icmp_ident; /* ICMP packet identifier. */
rte_be16_t icmp_seq_nb; /* ICMP packet sequence number. */
rte_be16_t icmp_cksum; /* ICMP packet checksum. */
rte_be16_t icmp_ident; /* ICMP packet identifier. */
rte_be16_t icmp_seq_nb; /* ICMP packet sequence number. */
-} __attribute__((__packed__));
/* ICMP packet types */
#define RTE_IP_ICMP_ECHO_REPLY 0
/* ICMP packet types */
#define RTE_IP_ICMP_ECHO_REPLY 0
rte_be16_t hdr_checksum; /**< header checksum */
rte_be32_t src_addr; /**< source address */
rte_be32_t dst_addr; /**< destination address */
rte_be16_t hdr_checksum; /**< header checksum */
rte_be32_t src_addr; /**< source address */
rte_be32_t dst_addr; /**< destination address */
-} __attribute__((__packed__));
/** Create IPv4 address */
#define RTE_IPV4(a, b, c, d) ((uint32_t)(((a) & 0xff) << 24) | \
/** Create IPv4 address */
#define RTE_IPV4(a, b, c, d) ((uint32_t)(((a) & 0xff) << 24) | \
uint8_t hop_limits; /**< Hop limits. */
uint8_t src_addr[16]; /**< IP address of source host. */
uint8_t dst_addr[16]; /**< IP address of destination host(s). */
uint8_t hop_limits; /**< Hop limits. */
uint8_t src_addr[16]; /**< IP address of source host. */
uint8_t dst_addr[16]; /**< IP address of destination host(s). */
-} __attribute__((__packed__));
/* IPv6 vtc_flow: IPv / TC / flow_label */
#define RTE_IPV6_HDR_FL_SHIFT 0
/* IPv6 vtc_flow: IPv / TC / flow_label */
#define RTE_IPV6_HDR_FL_SHIFT 0
uint8_t tag_lsb:4; /**< label(lsb) */
#endif
uint8_t ttl; /**< Time to live. */
uint8_t tag_lsb:4; /**< label(lsb) */
#endif
uint8_t ttl; /**< Time to live. */
-} __attribute__((__packed__));
rte_be16_t dst_port; /**< Destin port. */
rte_be32_t tag; /**< Validation tag. */
rte_be32_t cksum; /**< Checksum. */
rte_be16_t dst_port; /**< Destin port. */
rte_be32_t tag; /**< Validation tag. */
rte_be32_t cksum; /**< Checksum. */
-} __attribute__((__packed__));
rte_be16_t rx_win; /**< RX flow control window. */
rte_be16_t cksum; /**< TCP checksum. */
rte_be16_t tcp_urp; /**< TCP urgent pointer, if any. */
rte_be16_t rx_win; /**< RX flow control window. */
rte_be16_t cksum; /**< TCP checksum. */
rte_be16_t tcp_urp; /**< TCP urgent pointer, if any. */
-} __attribute__((__packed__));
rte_be16_t dst_port; /**< UDP destination port. */
rte_be16_t dgram_len; /**< UDP datagram length */
rte_be16_t dgram_cksum; /**< UDP datagram checksum */
rte_be16_t dst_port; /**< UDP destination port. */
rte_be16_t dgram_len; /**< UDP datagram length */
rte_be16_t dgram_cksum; /**< UDP datagram checksum */
-} __attribute__((__packed__));
struct rte_vxlan_hdr {
uint32_t vx_flags; /**< flag (8) + Reserved (24). */
uint32_t vx_vni; /**< VNI (24) + Reserved (8). */
struct rte_vxlan_hdr {
uint32_t vx_flags; /**< flag (8) + Reserved (24). */
uint32_t vx_vni; /**< VNI (24) + Reserved (8). */
-} __attribute__((__packed__));
/** VXLAN tunnel header length. */
#define RTE_ETHER_VXLAN_HLEN \
/** VXLAN tunnel header length. */
#define RTE_ETHER_VXLAN_HLEN \
uint8_t reserved[2]; /**< Reserved (16). */
uint8_t proto; /**< next-protocol (8). */
uint32_t vx_vni; /**< VNI (24) + Reserved (8). */
uint8_t reserved[2]; /**< Reserved (16). */
uint8_t proto; /**< next-protocol (8). */
uint32_t vx_vni; /**< VNI (24) + Reserved (8). */
-} __attribute__((__packed__));
/** VXLAN-GPE tunnel header length. */
#define RTE_ETHER_VXLAN_GPE_HLEN (sizeof(struct rte_udp_hdr) + \
/** VXLAN-GPE tunnel header length. */
#define RTE_ETHER_VXLAN_GPE_HLEN (sizeof(struct rte_udp_hdr) + \
struct lb_data {
uint32_t out[RTE_TABLE_ACTION_LB_TABLE_SIZE];
struct lb_data {
uint32_t out[RTE_TABLE_ACTION_LB_TABLE_SIZE];
-} __attribute__((__packed__));
static int
lb_apply(struct lb_data *data,
static int
lb_apply(struct lb_data *data,
struct mtr_trtcm_data {
struct rte_meter_trtcm trtcm;
uint64_t stats[RTE_COLORS];
struct mtr_trtcm_data {
struct rte_meter_trtcm trtcm;
uint64_t stats[RTE_COLORS];
-} __attribute__((__packed__));
#define MTR_TRTCM_DATA_METER_PROFILE_ID_GET(data) \
(((data)->stats[RTE_COLOR_GREEN] & 0xF8LLU) >> 3)
#define MTR_TRTCM_DATA_METER_PROFILE_ID_GET(data) \
(((data)->stats[RTE_COLOR_GREEN] & 0xF8LLU) >> 3)
struct tm_data {
uint32_t queue_id;
uint32_t reserved;
struct tm_data {
uint32_t queue_id;
uint32_t reserved;
-} __attribute__((__packed__));
static int
tm_apply_check(struct rte_table_action_tm_params *p,
static int
tm_apply_check(struct rte_table_action_tm_params *p,
struct rte_ether_hdr ether;
uint32_t mpls[RTE_TABLE_ACTION_MPLS_LABELS_MAX];
uint32_t mpls_count;
struct rte_ether_hdr ether;
uint32_t mpls[RTE_TABLE_ACTION_MPLS_LABELS_MAX];
uint32_t mpls_count;
-} __attribute__((__packed__)) __rte_aligned(2);
+} __rte_packed __rte_aligned(2);
#define PPP_PROTOCOL_IP 0x0021
#define PPP_PROTOCOL_IP 0x0021
struct rte_ipv4_hdr ipv4;
struct rte_udp_hdr udp;
struct rte_vxlan_hdr vxlan;
struct rte_ipv4_hdr ipv4;
struct rte_udp_hdr udp;
struct rte_vxlan_hdr vxlan;
-} __attribute__((__packed__)) __rte_aligned(2);
+} __rte_packed __rte_aligned(2);
struct encap_vxlan_ipv4_vlan_data {
struct rte_ether_hdr ether;
struct encap_vxlan_ipv4_vlan_data {
struct rte_ether_hdr ether;
struct rte_ipv4_hdr ipv4;
struct rte_udp_hdr udp;
struct rte_vxlan_hdr vxlan;
struct rte_ipv4_hdr ipv4;
struct rte_udp_hdr udp;
struct rte_vxlan_hdr vxlan;
-} __attribute__((__packed__)) __rte_aligned(2);
+} __rte_packed __rte_aligned(2);
struct encap_vxlan_ipv6_data {
struct rte_ether_hdr ether;
struct rte_ipv6_hdr ipv6;
struct rte_udp_hdr udp;
struct rte_vxlan_hdr vxlan;
struct encap_vxlan_ipv6_data {
struct rte_ether_hdr ether;
struct rte_ipv6_hdr ipv6;
struct rte_udp_hdr udp;
struct rte_vxlan_hdr vxlan;
-} __attribute__((__packed__)) __rte_aligned(2);
+} __rte_packed __rte_aligned(2);
struct encap_vxlan_ipv6_vlan_data {
struct rte_ether_hdr ether;
struct encap_vxlan_ipv6_vlan_data {
struct rte_ether_hdr ether;
struct rte_ipv6_hdr ipv6;
struct rte_udp_hdr udp;
struct rte_vxlan_hdr vxlan;
struct rte_ipv6_hdr ipv6;
struct rte_udp_hdr udp;
struct rte_vxlan_hdr vxlan;
-} __attribute__((__packed__)) __rte_aligned(2);
+} __rte_packed __rte_aligned(2);
struct encap_qinq_pppoe_data {
struct rte_ether_hdr ether;
struct rte_vlan_hdr svlan;
struct rte_vlan_hdr cvlan;
struct pppoe_ppp_hdr pppoe_ppp;
struct encap_qinq_pppoe_data {
struct rte_ether_hdr ether;
struct rte_vlan_hdr svlan;
struct rte_vlan_hdr cvlan;
struct pppoe_ppp_hdr pppoe_ppp;
-} __attribute__((__packed__)) __rte_aligned(2);
+} __rte_packed __rte_aligned(2);
static size_t
encap_data_size(struct rte_table_action_encap_config *encap)
static size_t
encap_data_size(struct rte_table_action_encap_config *encap)
struct nat_ipv4_data {
uint32_t addr;
uint16_t port;
struct nat_ipv4_data {
uint32_t addr;
uint16_t port;
-} __attribute__((__packed__));
struct nat_ipv6_data {
uint8_t addr[16];
uint16_t port;
struct nat_ipv6_data {
uint8_t addr[16];
uint16_t port;
-} __attribute__((__packed__));
static size_t
nat_data_size(struct rte_table_action_nat_config *nat __rte_unused,
static size_t
nat_data_size(struct rte_table_action_nat_config *nat __rte_unused,
struct ttl_data {
uint32_t n_packets;
struct ttl_data {
uint32_t n_packets;
-} __attribute__((__packed__));
#define TTL_INIT(data, decrement) \
((data)->n_packets = (decrement) ? 1 : 0)
#define TTL_INIT(data, decrement) \
((data)->n_packets = (decrement) ? 1 : 0)
struct stats_data {
uint64_t n_packets;
uint64_t n_bytes;
struct stats_data {
uint64_t n_packets;
uint64_t n_bytes;
-} __attribute__((__packed__));
static int
stats_apply(struct stats_data *data,
static int
stats_apply(struct stats_data *data,
*/
struct time_data {
uint64_t time;
*/
struct time_data {
uint64_t time;
-} __attribute__((__packed__));
static int
time_apply(struct time_data *data,
static int
time_apply(struct time_data *data,
/** Private data size to store cipher iv / aad. */
uint8_t iv_aad_data[32];
/** Private data size to store cipher iv / aad. */
uint8_t iv_aad_data[32];
-} __attribute__((__packed__));
static int
sym_crypto_cfg_check(struct rte_table_action_sym_crypto_config *cfg)
static int
sym_crypto_cfg_check(struct rte_table_action_sym_crypto_config *cfg)
*/
struct tag_data {
uint32_t tag;
*/
struct tag_data {
uint32_t tag;
-} __attribute__((__packed__));
static int
tag_apply(struct tag_data *data,
static int
tag_apply(struct tag_data *data,
*/
struct decap_data {
uint16_t n;
*/
struct decap_data {
uint16_t n;
-} __attribute__((__packed__));
static int
decap_apply(struct decap_data *data,
static int
decap_apply(struct decap_data *data,
} payload;
int fds[VHOST_MEMORY_MAX_NREGIONS];
int fd_num;
} payload;
int fds[VHOST_MEMORY_MAX_NREGIONS];
int fd_num;
-} __attribute((packed)) VhostUserMsg;
+} __rte_packed VhostUserMsg;
#define VHOST_USER_HDR_SIZE offsetof(VhostUserMsg, payload.u64)
#define VHOST_USER_HDR_SIZE offsetof(VhostUserMsg, payload.u64)