Patch "net/mlx5e: Rely on reqid in IPsec tunnel mode" has been added to the 6.12-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    net/mlx5e: Rely on reqid in IPsec tunnel mode

to the 6.12-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     net-mlx5e-rely-on-reqid-in-ipsec-tunnel-mode.patch
and it can be found in the queue-6.12 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 69a19552242212aee287e902b20da2a7f5444f34
Author: Leon Romanovsky <leon@xxxxxxxxxx>
Date:   Wed Jan 15 13:39:09 2025 +0200

    net/mlx5e: Rely on reqid in IPsec tunnel mode
    
    [ Upstream commit 25f23524dfa227959beb3b2c2c0f38e0222f4cfa ]
    
    All packet offloads SAs have reqid in it to make sure they have
    corresponding policy. While it is not strictly needed for transparent
    mode, it is extremely important in tunnel mode. In that mode, policy and
    SAs have different match criteria.
    
    Policy catches the whole subnet addresses, and SA catches the tunnel gateways
    addresses. The source address of such tunnel is not known during egress packet
    traversal in flow steering as it is added only after successful encryption.
    
    As reqid is required for packet offload and it is unique for every SA,
    we can safely rely on it only.
    
    The output below shows the configured egress policy and SA by strongswan:
    
    [leonro@vm ~]$ sudo ip x s
    src 192.169.101.2 dst 192.169.101.1
            proto esp spi 0xc88b7652 reqid 1 mode tunnel
            replay-window 0 flag af-unspec esn
            aead rfc4106(gcm(aes)) 0xe406a01083986e14d116488549094710e9c57bc6 128
            anti-replay esn context:
             seq-hi 0x0, seq 0x0, oseq-hi 0x0, oseq 0x0
             replay_window 1, bitmap-length 1
             00000000
            crypto offload parameters: dev eth2 dir out mode packet
    
    [leonro@064 ~]$ sudo ip x p
    src 192.170.0.0/16 dst 192.170.0.0/16
            dir out priority 383615 ptype main
            tmpl src 192.169.101.2 dst 192.169.101.1
                    proto esp spi 0xc88b7652 reqid 1 mode tunnel
            crypto offload parameters: dev eth2 mode packet
    
    Fixes: b3beba1fb404 ("net/mlx5e: Allow policies with reqid 0, to support IKE policy holes")
    Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxx>
    Reviewed-by: Jacob Keller <jacob.e.keller@xxxxxxxxx>
    Signed-off-by: Tariq Toukan <tariqt@xxxxxxxxxx>
    Signed-off-by: Paolo Abeni <pabeni@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c
index e51b03d4c717f..57861d34d46f8 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c
@@ -1718,23 +1718,21 @@ static int tx_add_rule(struct mlx5e_ipsec_sa_entry *sa_entry)
 		goto err_alloc;
 	}
 
-	if (attrs->family == AF_INET)
-		setup_fte_addr4(spec, &attrs->saddr.a4, &attrs->daddr.a4);
-	else
-		setup_fte_addr6(spec, attrs->saddr.a6, attrs->daddr.a6);
-
 	setup_fte_no_frags(spec);
 	setup_fte_upper_proto_match(spec, &attrs->upspec);
 
 	switch (attrs->type) {
 	case XFRM_DEV_OFFLOAD_CRYPTO:
+		if (attrs->family == AF_INET)
+			setup_fte_addr4(spec, &attrs->saddr.a4, &attrs->daddr.a4);
+		else
+			setup_fte_addr6(spec, attrs->saddr.a6, attrs->daddr.a6);
 		setup_fte_spi(spec, attrs->spi, false);
 		setup_fte_esp(spec);
 		setup_fte_reg_a(spec);
 		break;
 	case XFRM_DEV_OFFLOAD_PACKET:
-		if (attrs->reqid)
-			setup_fte_reg_c4(spec, attrs->reqid);
+		setup_fte_reg_c4(spec, attrs->reqid);
 		err = setup_pkt_reformat(ipsec, attrs, &flow_act);
 		if (err)
 			goto err_pkt_reformat;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux