Patch "ice: ignore protocol field in GTP offload" has been added to the 5.18-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

    ice: ignore protocol field in GTP offload

to the 5.18-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:
     ice-ignore-protocol-field-in-gtp-offload.patch
and it can be found in the queue-5.18 subdirectory.

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



commit 8d29adc3900af18d59ac4ffe5216e3b44acfb1dc
Author: Marcin Szycik <marcin.szycik@xxxxxxxxxxxxxxx>
Date:   Mon May 9 21:01:18 2022 +0200

    ice: ignore protocol field in GTP offload
    
    [ Upstream commit d4ea6f6373ef56d1d795a24f1f5874f4a6019199 ]
    
    Commit 34a897758efe ("ice: Add support for inner etype in switchdev")
    added the ability to match on inner ethertype. A side effect of that change
    is that it is now impossible to add some filters for protocols which do not
    contain inner ethtype field. tc requires the protocol field to be specified
    when providing certain other options, e.g. src_ip. This is a problem in
    case of GTP - when user wants to specify e.g. src_ip, they also need to
    specify protocol in tc command (otherwise tc fails with: Illegal "src_ip").
    Because GTP is a tunnel, the protocol field is treated as inner protocol.
    GTP does not contain inner ethtype field and the filter cannot be added.
    
    To fix this, ignore the ethertype field in case of GTP filters.
    
    Fixes: 9a225f81f540 ("ice: Support GTP-U and GTP-C offload in switchdev")
    Signed-off-by: Marcin Szycik <marcin.szycik@xxxxxxxxxxxxxxx>
    Tested-by: Sandeep Penigalapati <sandeep.penigalapati@xxxxxxxxx>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/intel/ice/ice_tc_lib.c b/drivers/net/ethernet/intel/ice/ice_tc_lib.c
index 3acd9f921c44..734bfa121e24 100644
--- a/drivers/net/ethernet/intel/ice/ice_tc_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_tc_lib.c
@@ -994,7 +994,9 @@ ice_parse_cls_flower(struct net_device *filter_dev, struct ice_vsi *vsi,
 		n_proto_key = ntohs(match.key->n_proto);
 		n_proto_mask = ntohs(match.mask->n_proto);
 
-		if (n_proto_key == ETH_P_ALL || n_proto_key == 0) {
+		if (n_proto_key == ETH_P_ALL || n_proto_key == 0 ||
+		    fltr->tunnel_type == TNL_GTPU ||
+		    fltr->tunnel_type == TNL_GTPC) {
 			n_proto_key = 0;
 			n_proto_mask = 0;
 		} else {



[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