flow: remove spi key from flowi struct
authorFlorian Westphal <fw@strlen.de>
Wed, 14 Apr 2021 16:12:51 +0000 (18:12 +0200)
committerSteffen Klassert <steffen.klassert@secunet.com>
Mon, 19 Apr 2021 10:25:11 +0000 (12:25 +0200)
xfrm session decode ipv4 path (but not ipv6) sets this, but there are no
consumers.  Remove it.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
include/net/flow.h
net/xfrm/xfrm_policy.c

index 39d0ced..6f5e702 100644 (file)
@@ -59,7 +59,6 @@ union flowi_uli {
                __le16  sport;
        } dnports;
 
-       __be32          spi;
        __be32          gre_key;
 
        struct {
@@ -90,7 +89,6 @@ struct flowi4 {
 #define fl4_dport              uli.ports.dport
 #define fl4_icmp_type          uli.icmpt.type
 #define fl4_icmp_code          uli.icmpt.code
-#define fl4_ipsec_spi          uli.spi
 #define fl4_mh_type            uli.mht.type
 #define fl4_gre_key            uli.gre_key
 } __attribute__((__aligned__(BITS_PER_LONG/8)));
@@ -150,7 +148,6 @@ struct flowi6 {
 #define fl6_dport              uli.ports.dport
 #define fl6_icmp_type          uli.icmpt.type
 #define fl6_icmp_code          uli.icmpt.code
-#define fl6_ipsec_spi          uli.spi
 #define fl6_mh_type            uli.mht.type
 #define fl6_gre_key            uli.gre_key
        __u32                   mp_hash;
index 156347f..cc6e02e 100644 (file)
@@ -3326,39 +3326,6 @@ decode_session4(struct sk_buff *skb, struct flowi *fl, bool reverse)
                                fl4->fl4_icmp_code = icmp[1];
                        }
                        break;
-               case IPPROTO_ESP:
-                       if (xprth + 4 < skb->data ||
-                           pskb_may_pull(skb, xprth + 4 - skb->data)) {
-                               __be32 *ehdr;
-
-                               xprth = skb_network_header(skb) + ihl * 4;
-                               ehdr = (__be32 *)xprth;
-
-                               fl4->fl4_ipsec_spi = ehdr[0];
-                       }
-                       break;
-               case IPPROTO_AH:
-                       if (xprth + 8 < skb->data ||
-                           pskb_may_pull(skb, xprth + 8 - skb->data)) {
-                               __be32 *ah_hdr;
-
-                               xprth = skb_network_header(skb) + ihl * 4;
-                               ah_hdr = (__be32 *)xprth;
-
-                               fl4->fl4_ipsec_spi = ah_hdr[1];
-                       }
-                       break;
-               case IPPROTO_COMP:
-                       if (xprth + 4 < skb->data ||
-                           pskb_may_pull(skb, xprth + 4 - skb->data)) {
-                               __be16 *ipcomp_hdr;
-
-                               xprth = skb_network_header(skb) + ihl * 4;
-                               ipcomp_hdr = (__be16 *)xprth;
-
-                               fl4->fl4_ipsec_spi = htonl(ntohs(ipcomp_hdr[1]));
-                       }
-                       break;
                case IPPROTO_GRE:
                        if (xprth + 12 < skb->data ||
                            pskb_may_pull(skb, xprth + 12 - skb->data)) {
@@ -3377,7 +3344,6 @@ decode_session4(struct sk_buff *skb, struct flowi *fl, bool reverse)
                        }
                        break;
                default:
-                       fl4->fl4_ipsec_spi = 0;
                        break;
                }
        }
@@ -3470,12 +3436,7 @@ decode_session6(struct sk_buff *skb, struct flowi *fl, bool reverse)
                        fl6->flowi6_proto = nexthdr;
                        return;
 #endif
-               /* XXX Why are there these headers? */
-               case IPPROTO_AH:
-               case IPPROTO_ESP:
-               case IPPROTO_COMP:
                default:
-                       fl6->fl6_ipsec_spi = 0;
                        fl6->flowi6_proto = nexthdr;
                        return;
                }