diff options
Diffstat (limited to 'sys/dev/mlx5/mlx5_en/en.h')
-rw-r--r-- | sys/dev/mlx5/mlx5_en/en.h | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/sys/dev/mlx5/mlx5_en/en.h b/sys/dev/mlx5/mlx5_en/en.h index 502c1c19af6f..f59902be226a 100644 --- a/sys/dev/mlx5/mlx5_en/en.h +++ b/sys/dev/mlx5/mlx5_en/en.h @@ -89,14 +89,13 @@ #define MLX5E_PARAMS_DEFAULT_LOG_RQ_SIZE 0xa #define MLX5E_PARAMS_MAXIMUM_LOG_RQ_SIZE 0xe -#define MLX5E_MAX_BUSDMA_RX_SEGS 15 +#define MLX5E_MAX_BUSDMA_RX_SEGS 31 #ifndef MLX5E_MAX_RX_BYTES #define MLX5E_MAX_RX_BYTES MCLBYTES #endif -#define MLX5E_PARAMS_DEFAULT_LRO_WQE_SZ \ - MIN(65535, 7 * MLX5E_MAX_RX_BYTES) +#define MLX5E_PARAMS_DEFAULT_LRO_WQE_SZ 65535 #define MLX5E_DIM_DEFAULT_PROFILE 3 #define MLX5E_DIM_MAX_RX_CQ_MODERATION_PKTS_WITH_LRO 16 @@ -747,10 +746,13 @@ struct mlx5e_cq { struct mlx5_wq_ctrl wq_ctrl; } __aligned(MLX5E_CACHELINE_SIZE); +struct ipsec_accel_in_tag; + struct mlx5e_rq_mbuf { bus_dmamap_t dma_map; caddr_t data; struct mbuf *mbuf; + struct ipsec_accel_in_tag *ipsec_mtag; }; struct mlx5e_rq { @@ -770,6 +772,7 @@ struct mlx5e_rq { struct mlx5e_cq cq; struct lro_ctrl lro; volatile int enabled; + int processing; int ix; /* Dynamic Interrupt Moderation */ @@ -956,7 +959,7 @@ struct mlx5_flow_rule; struct mlx5e_eth_addr_info { u8 addr [ETH_ALEN + 2]; /* flow table rule per traffic type */ - struct mlx5_flow_rule *ft_rule[MLX5E_NUM_TT]; + struct mlx5_flow_handle *ft_rule[MLX5E_NUM_TT]; }; #define MLX5E_ETH_ADDR_HASH_SIZE (1 << BITS_PER_BYTE) @@ -992,10 +995,10 @@ enum { struct mlx5e_vlan_db { unsigned long active_vlans[BITS_TO_LONGS(VLAN_N_VID)]; - struct mlx5_flow_rule *active_vlans_ft_rule[VLAN_N_VID]; - struct mlx5_flow_rule *untagged_ft_rule; - struct mlx5_flow_rule *any_cvlan_ft_rule; - struct mlx5_flow_rule *any_svlan_ft_rule; + struct mlx5_flow_handle *active_vlans_ft_rule[VLAN_N_VID]; + struct mlx5_flow_handle *untagged_ft_rule; + struct mlx5_flow_handle *any_cvlan_ft_rule; + struct mlx5_flow_handle *any_svlan_ft_rule; bool filter_disabled; }; @@ -1004,7 +1007,7 @@ struct mlx5e_vxlan_db_el { u_int proto; u_int port; bool installed; - struct mlx5_flow_rule *vxlan_ft_rule; + struct mlx5_flow_handle *vxlan_ft_rule; TAILQ_ENTRY(mlx5e_vxlan_db_el) link; }; @@ -1027,19 +1030,20 @@ enum accel_fs_tcp_type { struct mlx5e_accel_fs_tcp { struct mlx5_flow_namespace *ns; struct mlx5e_flow_table tables[MLX5E_ACCEL_FS_TCP_NUM_TYPES]; - struct mlx5_flow_rule *default_rules[MLX5E_ACCEL_FS_TCP_NUM_TYPES]; + struct mlx5_flow_handle *default_rules[MLX5E_ACCEL_FS_TCP_NUM_TYPES]; }; struct mlx5e_flow_tables { struct mlx5_flow_namespace *ns; struct mlx5e_flow_table vlan; struct mlx5e_flow_table vxlan; - struct mlx5_flow_rule *vxlan_catchall_ft_rule; + struct mlx5_flow_handle *vxlan_catchall_ft_rule; struct mlx5e_flow_table main; struct mlx5e_flow_table main_vxlan; - struct mlx5_flow_rule *main_vxlan_rule[MLX5E_NUM_TT]; + struct mlx5_flow_handle *main_vxlan_rule[MLX5E_NUM_TT]; struct mlx5e_flow_table inner_rss; struct mlx5e_accel_fs_tcp accel_tcp; + struct mlx5_flow_table *ipsec_ft; }; struct mlx5e_xmit_args { @@ -1067,6 +1071,7 @@ struct mlx5e_dcbx { u32 xoff; }; +struct mlx5e_ipsec; struct mlx5e_priv { struct mlx5_core_dev *mdev; /* must be first */ @@ -1145,6 +1150,7 @@ struct mlx5e_priv { bool sw_is_port_buf_owner; struct pfil_head *pfil; + struct mlx5e_ipsec *ipsec; struct mlx5e_channel channel[]; }; @@ -1295,6 +1301,7 @@ void mlx5e_refresh_sq_inline(struct mlx5e_priv *priv); int mlx5e_update_buf_lossy(struct mlx5e_priv *priv); int mlx5e_fec_update(struct mlx5e_priv *priv); int mlx5e_hw_temperature_update(struct mlx5e_priv *priv); +int mlx5e_hw_lro_update_tirs(struct mlx5e_priv *priv); /* Internal Queue, IQ, API functions */ void mlx5e_iq_send_nop(struct mlx5e_iq *, u32); |