nfp: flower: remove dead code paths
authorJohn Hurley <john.hurley@netronome.com>
Sat, 9 Dec 2017 03:37:02 +0000 (19:37 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 11 Dec 2017 17:07:57 +0000 (12:07 -0500)
Port matching is selected by default on every rule so remove check for it
and delete 'else' side of the statement. Remove nfp_flower_meta_one as now
it will not feature in the code. Rename nfp_flower_meta_two given that one
has been removed.

'Additional metadata' if statement can never be true so remove it as well.

Signed-off-by: John Hurley <john.hurley@netronome.com>
Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com>
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/netronome/nfp/flower/cmsg.h
drivers/net/ethernet/netronome/nfp/flower/match.c
drivers/net/ethernet/netronome/nfp/flower/offload.c

index 66070741d55fb42c7f85973678687570482c1146..430a3932cf4db3b0046a2f265e11d00075e85cf5 100644 (file)
@@ -165,20 +165,6 @@ struct nfp_fl_pop_vlan {
        __be16 reserved;
 };
 
-/* Metadata without L2 (1W/4B)
- * ----------------------------------------------------------------
- *    3                   2                   1
- *  1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * |  key_layers   |    mask_id    |           reserved            |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- */
-struct nfp_flower_meta_one {
-       u8 nfp_flow_key_layer;
-       u8 mask_id;
-       u16 reserved;
-};
-
 struct nfp_fl_pre_tunnel {
        struct nfp_fl_act_head head;
        __be16 reserved;
@@ -209,7 +195,7 @@ struct nfp_fl_set_vxlan {
  *                           NOTE: |             TCI               |
  *                                 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  */
-struct nfp_flower_meta_two {
+struct nfp_flower_meta_tci {
        u8 nfp_flow_key_layer;
        u8 mask_id;
        __be16 tci;
index 60614d4f0e2250e522650b4712641f3b7c7c3cc2..1f2b879e12d4530bd74eff18daf53119be6fd7e5 100644 (file)
@@ -38,7 +38,7 @@
 #include "main.h"
 
 static void
-nfp_flower_compile_meta_tci(struct nfp_flower_meta_two *frame,
+nfp_flower_compile_meta_tci(struct nfp_flower_meta_tci *frame,
                            struct tc_cls_flower_offload *flow, u8 key_type,
                            bool mask_version)
 {
@@ -46,7 +46,7 @@ nfp_flower_compile_meta_tci(struct nfp_flower_meta_two *frame,
        struct flow_dissector_key_vlan *flow_vlan;
        u16 tmp_tci;
 
-       memset(frame, 0, sizeof(struct nfp_flower_meta_two));
+       memset(frame, 0, sizeof(struct nfp_flower_meta_tci));
        /* Populate the metadata frame. */
        frame->nfp_flow_key_layer = key_type;
        frame->mask_id = ~0;
@@ -67,14 +67,6 @@ nfp_flower_compile_meta_tci(struct nfp_flower_meta_two *frame,
        }
 }
 
-static void
-nfp_flower_compile_meta(struct nfp_flower_meta_one *frame, u8 key_type)
-{
-       frame->nfp_flow_key_layer = key_type;
-       frame->mask_id = 0;
-       frame->reserved = 0;
-}
-
 static int
 nfp_flower_compile_port(struct nfp_flower_in_port *frame, u32 cmsg_port,
                        bool mask_version, enum nfp_flower_tun_type tun_type)
@@ -278,49 +270,32 @@ int nfp_flower_compile_flow_match(struct tc_cls_flower_offload *flow,
 
        ext = nfp_flow->unmasked_data;
        msk = nfp_flow->mask_data;
-       if (NFP_FLOWER_LAYER_PORT & key_ls->key_layer) {
-               /* Populate Exact Metadata. */
-               nfp_flower_compile_meta_tci((struct nfp_flower_meta_two *)ext,
-                                           flow, key_ls->key_layer, false);
-               /* Populate Mask Metadata. */
-               nfp_flower_compile_meta_tci((struct nfp_flower_meta_two *)msk,
-                                           flow, key_ls->key_layer, true);
-               ext += sizeof(struct nfp_flower_meta_two);
-               msk += sizeof(struct nfp_flower_meta_two);
-
-               /* Populate Exact Port data. */
-               err = nfp_flower_compile_port((struct nfp_flower_in_port *)ext,
-                                             nfp_repr_get_port_id(netdev),
-                                             false, tun_type);
-               if (err)
-                       return err;
-
-               /* Populate Mask Port Data. */
-               err = nfp_flower_compile_port((struct nfp_flower_in_port *)msk,
-                                             nfp_repr_get_port_id(netdev),
-                                             true, tun_type);
-               if (err)
-                       return err;
-
-               ext += sizeof(struct nfp_flower_in_port);
-               msk += sizeof(struct nfp_flower_in_port);
-       } else {
-               /* Populate Exact Metadata. */
-               nfp_flower_compile_meta((struct nfp_flower_meta_one *)ext,
-                                       key_ls->key_layer);
-               /* Populate Mask Metadata. */
-               nfp_flower_compile_meta((struct nfp_flower_meta_one *)msk,
-                                       key_ls->key_layer);
-               ext += sizeof(struct nfp_flower_meta_one);
-               msk += sizeof(struct nfp_flower_meta_one);
-       }
 
-       if (NFP_FLOWER_LAYER_META & key_ls->key_layer) {
-               /* Additional Metadata Fields.
-                * Currently unsupported.
-                */
-               return -EOPNOTSUPP;
-       }
+       /* Populate Exact Metadata. */
+       nfp_flower_compile_meta_tci((struct nfp_flower_meta_tci *)ext,
+                                   flow, key_ls->key_layer, false);
+       /* Populate Mask Metadata. */
+       nfp_flower_compile_meta_tci((struct nfp_flower_meta_tci *)msk,
+                                   flow, key_ls->key_layer, true);
+       ext += sizeof(struct nfp_flower_meta_tci);
+       msk += sizeof(struct nfp_flower_meta_tci);
+
+       /* Populate Exact Port data. */
+       err = nfp_flower_compile_port((struct nfp_flower_in_port *)ext,
+                                     nfp_repr_get_port_id(netdev),
+                                     false, tun_type);
+       if (err)
+               return err;
+
+       /* Populate Mask Port Data. */
+       err = nfp_flower_compile_port((struct nfp_flower_in_port *)msk,
+                                     nfp_repr_get_port_id(netdev),
+                                     true, tun_type);
+       if (err)
+               return err;
+
+       ext += sizeof(struct nfp_flower_in_port);
+       msk += sizeof(struct nfp_flower_in_port);
 
        if (NFP_FLOWER_LAYER_MAC & key_ls->key_layer) {
                /* Populate Exact MAC Data. */
index 1b7c59a8b139d5b144672f591f41fae779487a8c..98fb1cba3ed905c2e506a1117466ad02a2ee1404 100644 (file)
@@ -151,7 +151,7 @@ nfp_flower_calculate_key_layers(struct nfp_fl_key_ls *ret_key_ls,
 
        key_layer_two = 0;
        key_layer = NFP_FLOWER_LAYER_PORT;
-       key_size = sizeof(struct nfp_flower_meta_one) +
+       key_size = sizeof(struct nfp_flower_meta_tci) +
                   sizeof(struct nfp_flower_in_port);
 
        if (dissector_uses_key(flow->dissector, FLOW_DISSECTOR_KEY_ETH_ADDRS) ||