aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/mlx5/mlx5_en/en.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/mlx5/mlx5_en/en.h')
-rw-r--r--sys/dev/mlx5/mlx5_en/en.h31
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);