Fixed the use of index NwConstants
[genius.git] / mdsalutil / mdsalutil-api / src / main / java / org / opendaylight / genius / mdsalutil / NwConstants.java
index b8c85d2cdea98f84584ccd75ad83f2579232567d..adf3843d0d80f0d3d145458ca5d56a67a22af706 100644 (file)
@@ -62,10 +62,12 @@ public final class NwConstants {
     public static final String SCF_SERVICE_NAME = "SCF_SERVICE";
     public static final String L3VPN_SERVICE_NAME = "L3VPN_SERVICE";
     public static final String ELAN_SERVICE_NAME = "ELAN_SERVICE";
+    public static final String DEFAULT_EGRESS_SERVICE_NAME = "DEFAULT_EGRESS_SERVICE";
 
     // Egress (w.r.t switch) service indexes
-    public static final short INGRESS_ACL_SERVICE_INDEX = 6;
-    public static final String INGRESS_ACL_SERVICE_NAME = "INGRESS_ACL_SERVICE";
+    public static final short EGRESS_ACL_SERVICE_INDEX = 6;
+
+    public static final String EGRESS_ACL_SERVICE_NAME = "EGRESS_ACL_SERVICE";
 
     public static final BigInteger COOKIE_IPV6_TABLE = new BigInteger("4000000", 16);
     public static final BigInteger VLAN_TABLE_COOKIE = new BigInteger("8000000", 16);
@@ -77,6 +79,7 @@ public final class NwConstants {
     public static final BigInteger COOKIE_SNAT_TABLE = new BigInteger("8000006", 16);
     public static final BigInteger EGRESS_DISPATCHER_TABLE_COOKIE = new BigInteger("8000007", 16);
     public static final BigInteger COOKIE_OUTBOUND_NAPT_TABLE = new BigInteger("8000008", 16);
+    public static final BigInteger COOKIE_L3_GW_MAC_TABLE = new BigInteger("8000009", 16);
     public static final BigInteger COOKIE_VXLAN_TRUNK_L2_TABLE = new BigInteger("1200000", 16);
     public static final BigInteger COOKIE_GRE_TRUNK_L2_TABLE = new BigInteger("1400000", 16);
     public static final BigInteger COOKIE_ELAN_INGRESS_TABLE = new BigInteger("8040000", 16);
@@ -89,7 +92,7 @@ public final class NwConstants {
     public static final short GRE_TRUNK_INTERFACE_TABLE = 12;
     public static final short LPORT_DISPATCHER_TABLE = 17;
     public static final short DHCP_TABLE_EXTERNAL_TUNNEL = 18;
-    public static final short DHCP_TABLE = 19;
+    public static final short L3_GW_MAC_TABLE = 19;
     public static final short L3_LFIB_TABLE = 20;
     public static final short L3_FIB_TABLE = 21;
     public static final short L3_SUBNET_ROUTE_TABLE=22;
@@ -99,13 +102,10 @@ public final class NwConstants {
     public static final short SNAT_TABLE = 28;
     public static final short INTERNAL_TUNNEL_TABLE = 36;
     public static final short EXTERNAL_TUNNEL_TABLE = 38;
-    public static final short EGRESS_ACL_TABLE_ID = 40;
-    public static final short EGRESS_ACL_FILTER_TABLE_ID = 41;
-    /**
-     * @deprecated Use {@link #EGRESS_ACL_FILTER_TABLE_ID} instead.
-     */
-    @Deprecated
-    public static final short EGRESS_ACL_NEXT_TABLE_ID = 41;
+    public static final short INGRESS_ACL_TABLE = 40;
+    public static final short INGRESS_ACL_FILTER_TABLE = 41;
+    public static final short INGRESS_LEARN_TABLE = 41;
+    public static final short INGRESS_LEARN2_TABLE = 42;
     public static final short INBOUND_NAPT_TABLE = 44;
     public static final short IPV6_TABLE = 45;
     public static final short OUTBOUND_NAPT_TABLE = 46;
@@ -114,16 +114,67 @@ public final class NwConstants {
     public static final short ELAN_DMAC_TABLE = 51;
     public static final short ELAN_UNKNOWN_DMAC_TABLE = 52;
     public static final short ELAN_FILTER_EQUALS_TABLE = 55;
+    public static final short DHCP_TABLE = 60;
     public static final short SCF_UP_SUB_FILTER_TCP_BASED_TABLE = 70;
     public static final short SCF_DOWN_SUB_FILTER_TCP_BASED_TABLE = 72;
     public static final short SCF_CHAIN_FWD_TABLE = 75;
     public static final short L3_INTERFACE_TABLE = 80;
     public static final short EGRESS_LPORT_DISPATCHER_TABLE = 220;
-    public static final short INGRESS_ACL_TABLE_ID = 251;
-    public static final short INGRESS_ACL_FILTER_TABLE_ID = 252;
-    /**
-     * @deprecated Use {@link #INGRESS_ACL_FILTER_TABLE_ID} instead.
-     */
-    @Deprecated
-    public static final short INGRESS_ACL_NEXT_TABLE_ID = 252;
- }
+    public static final short EGRESS_ACL_TABLE = 251;
+    public static final short EGRESS_ACL_FILTER_TABLE = 252;
+    public static final short EGRESS_LEARN_TABLE = 252;
+    public static final short EGRESS_LEARN2_TABLE = 253;
+
+    public enum NxmOfFieldType {
+        NXM_OF_IN_PORT(0x0000, 0, 2, 16),
+        NXM_OF_ETH_DST(0x0000, 1, 6, 48),
+        NXM_OF_ETH_SRC(0x0000, 2, 6, 48),
+        NXM_OF_ETH_TYPE(0x0000, 3, 2, 16),
+        NXM_OF_VLAN_TCI(0x0000, 4, 2, 12),
+        NXM_OF_IP_TOS(0x0000, 5, 1, 8),
+        NXM_OF_IP_PROTO(0x0000, 6, 1, 8),
+        NXM_OF_IP_SRC(0x0000, 7, 4, 32),
+        NXM_OF_IP_DST(0x0000, 8, 4, 32),
+        NXM_OF_TCP_SRC(0x0000, 9, 2, 16),
+        NXM_OF_TCP_DST(0x0000, 10, 2, 16),
+        NXM_OF_UDP_SRC(0x0000, 11, 2, 16),
+        NXM_OF_UDP_DST(0x0000, 12, 2, 16),
+        NXM_OF_ICMP_TYPE(0x0000, 13, 1, 8),
+        NXM_OF_ICMP_CODE(0x0000, 14, 1, 8),
+        NXM_OF_ARP_OP(0x0000, 15, 2, 16),
+        NXM_OF_ARP_SPA(0x0000, 16, 4, 16),
+        NXM_OF_ARP_TPA(0x0000, 17, 4, 16),
+        NXM_NX_REG0(0x0001, 0, 4, -1),
+        NXM_NX_REG1(0x0001, 1, 4, -1),
+        NXM_NX_REG2(0x0001, 2, 4, -1),
+        NXM_NX_REG3(0x0001, 3, 4, -1),
+        NXM_NX_REG4(0x0001, 4, 4, -1),
+        NXM_NX_REG5(0x0001, 5, 4, -1),
+        NXM_NX_REG6(0x0001, 6, 4, -1),
+        NXM_NX_REG7(0x0001, 7, 4, -1);
+
+        long hexType;
+        long flowModHeaderLen;
+
+        NxmOfFieldType(long vendor, long field, long length, long flowModHeaderLen) {
+            hexType = nxmHeader(vendor, field, length);
+            this.flowModHeaderLen = flowModHeaderLen;
+        }
+
+        private static long nxmHeader(long vendor, long field, long length) {
+            return ((vendor) << 16) | ((field) << 9) | (length);
+        }
+
+        public String getHexType() {
+            return String.valueOf(hexType);
+        }
+
+        public String getFlowModHeaderLen() {
+            return String.valueOf(flowModHeaderLen);
+        }
+    }
+
+    public enum LearnFlowModsType {
+        MATCH_FROM_FIELD, MATCH_FROM_VALUE, COPY_FROM_FIELD, COPY_FROM_VALUE, OUTPUT_TO_PORT;
+    }
+}