net/sched: cls_flower: add tunnel flags to fl_{set,dump}_key_flags()
authorAsbjørn Sloth Tønnesen <ast@fiberby.net>
Sat, 13 Jul 2024 02:19:05 +0000 (02:19 +0000)
committerJakub Kicinski <kuba@kernel.org>
Mon, 15 Jul 2024 16:14:38 +0000 (09:14 -0700)
Prepare to set and dump the tunnel flags.

This code won't see any of these flags yet, as these flags
aren't allowed by the NLA_POLICY_MASK, and the functions
doesn't get called with encap set to true yet.

Signed-off-by: Asbjørn Sloth Tønnesen <ast@fiberby.net>
Tested-by: Davide Caratti <dcaratti@redhat.com>
Reviewed-by: Davide Caratti <dcaratti@redhat.com>
Link: https://patch.msgid.link/20240713021911.1631517-9-ast@fiberby.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/sched/cls_flower.c

index fc9a9a0b4897c1329f8277874a47155ec3d7107c..2a440f11fe1faefc73d7bb4269eb022fa7eb8f9b 100644 (file)
@@ -1204,6 +1204,21 @@ static int fl_set_key_flags(struct nlattr **tb, bool encap, u32 *flags_key,
                        TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST,
                        FLOW_DIS_FIRST_FRAG);
 
+       fl_set_key_flag(key, mask, flags_key, flags_mask,
+                       TCA_FLOWER_KEY_FLAGS_TUNNEL_CSUM,
+                       FLOW_DIS_F_TUNNEL_CSUM);
+
+       fl_set_key_flag(key, mask, flags_key, flags_mask,
+                       TCA_FLOWER_KEY_FLAGS_TUNNEL_DONT_FRAGMENT,
+                       FLOW_DIS_F_TUNNEL_DONT_FRAGMENT);
+
+       fl_set_key_flag(key, mask, flags_key, flags_mask,
+                       TCA_FLOWER_KEY_FLAGS_TUNNEL_OAM, FLOW_DIS_F_TUNNEL_OAM);
+
+       fl_set_key_flag(key, mask, flags_key, flags_mask,
+                       TCA_FLOWER_KEY_FLAGS_TUNNEL_CRIT_OPT,
+                       FLOW_DIS_F_TUNNEL_CRIT_OPT);
+
        return 0;
 }
 
@@ -3127,6 +3142,21 @@ static int fl_dump_key_flags(struct sk_buff *skb, bool encap,
                        TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST,
                        FLOW_DIS_FIRST_FRAG);
 
+       fl_get_key_flag(flags_key, flags_mask, &key, &mask,
+                       TCA_FLOWER_KEY_FLAGS_TUNNEL_CSUM,
+                       FLOW_DIS_F_TUNNEL_CSUM);
+
+       fl_get_key_flag(flags_key, flags_mask, &key, &mask,
+                       TCA_FLOWER_KEY_FLAGS_TUNNEL_DONT_FRAGMENT,
+                       FLOW_DIS_F_TUNNEL_DONT_FRAGMENT);
+
+       fl_get_key_flag(flags_key, flags_mask, &key, &mask,
+                       TCA_FLOWER_KEY_FLAGS_TUNNEL_OAM, FLOW_DIS_F_TUNNEL_OAM);
+
+       fl_get_key_flag(flags_key, flags_mask, &key, &mask,
+                       TCA_FLOWER_KEY_FLAGS_TUNNEL_CRIT_OPT,
+                       FLOW_DIS_F_TUNNEL_CRIT_OPT);
+
        _key = cpu_to_be32(key);
        _mask = cpu_to_be32(mask);