packet_merge
enum packet_merge type;
struct mlx5e_packet_merge_param packet_merge;
if (params->packet_merge.type != MLX5E_PACKET_MERGE_NONE)
if (params->packet_merge.type == MLX5E_PACKET_MERGE_SHAMPO)
if (params->packet_merge.type == MLX5E_PACKET_MERGE_SHAMPO)
bool lro_en = params->packet_merge.type == MLX5E_PACKET_MERGE_LRO;
if (params->packet_merge.type != MLX5E_PACKET_MERGE_SHAMPO)
MLX5_SET(modify_tir_in, builder->in, bitmask.packet_merge, 1);
if (priv->channels.params.packet_merge.type == MLX5E_PACKET_MERGE_SHAMPO) {
} else if (priv->channels.params.packet_merge.type != MLX5E_PACKET_MERGE_NONE) {
pkt_merge_param = priv->channels.params.packet_merge;
if (params->packet_merge.type == MLX5E_PACKET_MERGE_SHAMPO)
return mlx5e_rx_res_packet_merge_set_param(res, &priv->channels.params.packet_merge);
new_params.packet_merge.type = MLX5E_PACKET_MERGE_LRO;
else if (new_params.packet_merge.type == MLX5E_PACKET_MERGE_LRO)
new_params.packet_merge.type = MLX5E_PACKET_MERGE_NONE;
if (!(cur_params->packet_merge.type == MLX5E_PACKET_MERGE_SHAMPO &&
new_params.packet_merge.type == MLX5E_PACKET_MERGE_LRO)) {
new_params.packet_merge.type = MLX5E_PACKET_MERGE_SHAMPO;
} else if (new_params.packet_merge.type == MLX5E_PACKET_MERGE_SHAMPO) {
new_params.packet_merge.type = MLX5E_PACKET_MERGE_NONE;
params->packet_merge.type == MLX5E_PACKET_MERGE_NONE)
if (params->packet_merge.type != MLX5E_PACKET_MERGE_NONE) {
params->packet_merge.timeout = mlx5e_choose_lro_timeout(mdev, MLX5E_DEFAULT_LRO_TIMEOUT);
&priv->channels.params.packet_merge,
&priv->channels.params.packet_merge,
if (params->packet_merge.type == MLX5E_PACKET_MERGE_SHAMPO) {
&priv->channels.params.packet_merge,
params->packet_merge.type = MLX5E_PACKET_MERGE_NONE;
u8 packet_merge[0x1];