diff options
Diffstat (limited to 'sys/dev/mlx5')
| -rw-r--r-- | sys/dev/mlx5/mlx5_accel/mlx5_ipsec_fs.c | 19 | ||||
| -rw-r--r-- | sys/dev/mlx5/mlx5_accel/mlx5_ipsec_offload.c | 2 | 
2 files changed, 20 insertions, 1 deletions
| diff --git a/sys/dev/mlx5/mlx5_accel/mlx5_ipsec_fs.c b/sys/dev/mlx5/mlx5_accel/mlx5_ipsec_fs.c index fb9ca94278db..d1f454a5ec41 100644 --- a/sys/dev/mlx5/mlx5_accel/mlx5_ipsec_fs.c +++ b/sys/dev/mlx5/mlx5_accel/mlx5_ipsec_fs.c @@ -1134,6 +1134,11 @@ static int tx_add_kspi_rule(struct mlx5e_ipsec_sa_entry *sa_entry,  	setup_fte_no_frags(spec);  	setup_fte_reg_a_with_tag(spec, sa_entry->kspi); +	if (sa_entry->vid != VLAN_NONE) +		setup_fte_vid(spec, sa_entry->vid); +	else +		setup_fte_no_vid(spec); +  	rule = mlx5_add_flow_rules(tx->ft.sa_kspi, spec, flow_act, dest, num_dest);  	if (IS_ERR(rule)) {  		err = PTR_ERR(rule); @@ -1169,6 +1174,10 @@ static int tx_add_reqid_ip_rules(struct mlx5e_ipsec_sa_entry *sa_entry,  	flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL;  	if(attrs->reqid) { +		if (sa_entry->vid != VLAN_NONE) +			setup_fte_vid(spec, sa_entry->vid); +		else +			setup_fte_no_vid(spec);  		setup_fte_no_frags(spec);  		setup_fte_reg_c0(spec, attrs->reqid);  		rule = mlx5_add_flow_rules(tx->ft.sa, spec, flow_act, dest, num_dest); @@ -1181,6 +1190,11 @@ static int tx_add_reqid_ip_rules(struct mlx5e_ipsec_sa_entry *sa_entry,  		memset(spec, 0, sizeof(*spec));  	} +	if (sa_entry->vid != VLAN_NONE) +		setup_fte_vid(spec, sa_entry->vid); +	else +		setup_fte_no_vid(spec); +  	if (attrs->family == AF_INET)  		setup_fte_addr4(spec, &attrs->saddr.a4, &attrs->daddr.a4);  	else @@ -1322,6 +1336,11 @@ static int tx_add_policy(struct mlx5e_ipsec_pol_entry *pol_entry)                  goto err_mod_header;          } +        if (attrs->vid != VLAN_NONE) +                setup_fte_vid(spec, attrs->vid); +        else +                setup_fte_no_vid(spec); +          flow_act.flags |= FLOW_ACT_NO_APPEND;          dest[dstn].ft = tx->ft.sa;          dest[dstn].type = MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE; diff --git a/sys/dev/mlx5/mlx5_accel/mlx5_ipsec_offload.c b/sys/dev/mlx5/mlx5_accel/mlx5_ipsec_offload.c index 978e5f25ceaf..cc0bc1f3fcd2 100644 --- a/sys/dev/mlx5/mlx5_accel/mlx5_ipsec_offload.c +++ b/sys/dev/mlx5/mlx5_accel/mlx5_ipsec_offload.c @@ -120,7 +120,7 @@ static void mlx5e_ipsec_packet_setup(void *obj, u32 pdn,  	switch (attrs->dir) {  	case IPSEC_DIR_OUTBOUND: -		if (attrs->replay_esn.replay_window != 0) +		if (attrs->replay_esn.trigger)  			MLX5_SET(ipsec_aso, aso_ctx, mode, MLX5_IPSEC_ASO_INC_SN);  		else  			MLX5_SET(ipsec_aso, aso_ctx, mode, MLX5_IPSEC_ASO_MODE); | 
