#define MVPP2_CLS_FLOW_TBL1_REG                        0x1828
 #define     MVPP2_CLS_FLOW_TBL1_N_FIELDS_MASK  0x7
 #define     MVPP2_CLS_FLOW_TBL1_N_FIELDS(x)    (x)
+#define     MVPP2_CLS_FLOW_TBL1_LU_TYPE(lu)    (((lu) & 0x3f) << 3)
 #define     MVPP2_CLS_FLOW_TBL1_PRIO_MASK      0x3f
 #define     MVPP2_CLS_FLOW_TBL1_PRIO(x)                ((x) << 9)
 #define     MVPP2_CLS_FLOW_TBL1_SEQ_MASK       0x7
 #define MVPP22_CLS_C2_TCAM_DATA2               0x1b18
 #define MVPP22_CLS_C2_TCAM_DATA3               0x1b1c
 #define MVPP22_CLS_C2_TCAM_DATA4               0x1b20
+#define     MVPP22_CLS_C2_LU_TYPE(lu)          ((lu) & 0x3f)
 #define     MVPP22_CLS_C2_PORT_ID(port)                ((port) << 8)
 #define MVPP22_CLS_C2_HIT_CTR                  0x1b50
 #define MVPP22_CLS_C2_ACT                      0x1b60
 
        fe->data[0] |= MVPP2_CLS_FLOW_TBL0_PORT_ID(port);
 }
 
+static void mvpp2_cls_flow_lu_type_set(struct mvpp2_cls_flow_entry *fe,
+                                      u8 lu_type)
+{
+       fe->data[1] &= ~MVPP2_CLS_FLOW_TBL1_LU_TYPE(MVPP2_CLS_LU_TYPE_MASK);
+       fe->data[1] |= MVPP2_CLS_FLOW_TBL1_LU_TYPE(lu_type);
+}
+
 /* Initialize the parser entry for the given flow */
 static void mvpp2_cls_flow_prs_init(struct mvpp2 *priv,
                                    struct mvpp2_cls_flow *flow)
        mvpp2_cls_flow_last_set(&fe, 0);
        mvpp2_cls_flow_pri_set(&fe, 0);
        mvpp2_cls_flow_seq_set(&fe, MVPP2_CLS_FLOW_SEQ_FIRST1);
+       mvpp2_cls_flow_lu_type_set(&fe, MVPP2_CLS_LU_ALL);
 
        /* Add all ports */
        for (i = 0; i < MVPP2_MAX_PORTS; i++)
        c2.tcam[4] = MVPP22_CLS_C2_PORT_ID(pmap);
        c2.tcam[4] |= MVPP22_CLS_C2_TCAM_EN(MVPP22_CLS_C2_PORT_ID(pmap));
 
+       /* Match on Lookup Type */
+       c2.tcam[4] |= MVPP22_CLS_C2_TCAM_EN(MVPP22_CLS_C2_LU_TYPE(MVPP2_CLS_LU_TYPE_MASK));
+       c2.tcam[4] |= MVPP22_CLS_C2_LU_TYPE(MVPP2_CLS_LU_ALL);
+
        /* Update RSS status after matching this entry */
        c2.act = MVPP22_CLS_C2_ACT_RSS_EN(MVPP22_C2_UPD_LOCK);
 
 
        MVPP2_FL_LAST,
 };
 
+enum mvpp2_cls_lu_type {
+       MVPP2_CLS_LU_ALL = 0,
+};
+
+/* LU Type defined for all engines, and specified in the flow table */
+#define MVPP2_CLS_LU_TYPE_MASK                 0x3f
+
 struct mvpp2_cls_flow {
        /* The L2-L4 traffic flow type */
        int flow_type;