Remove OFConstants.SIZE_OF_LONG_IN_BYTES
[openflowplugin.git] / openflowplugin-api / src / main / java / org / opendaylight / openflowplugin / api / OFConstants.java
index f405a9dcd19a17289a83d32778bb6f5df65180b6..c1ff095a45e80bbea8aa75b06e550ec34bddac7b 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -7,10 +7,18 @@
  */
 package org.opendaylight.openflowplugin.api;
 
-import java.math.BigInteger;
+import com.google.common.collect.ImmutableList;
+import java.util.List;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowCookie;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.common.Uint64;
+import org.opendaylight.yangtools.yang.common.Uint8;
 
 /**
- * OFP related constants
+ * OFP related constants.
  */
 public final class OFConstants {
 
@@ -18,48 +26,64 @@ public final class OFConstants {
         throw new UnsupportedOperationException("OF plugin Constants holder class");
     }
 
-    /** enum ofp_port_no, reserved port: process with normal L2/L3 switching  */
-    public static final short OFPP_NORMAL = ((short)0xfffa);
-    /** enum ofp_port_no, reserved port: all physical ports except input port  */
-    public static final short OFPP_ALL  = ((short)0xfffc);
-    /** enum ofp_port_no, reserved port: local openflow port  */
-    public static final short OFPP_LOCAL = ((short)0xfffe);
-
+    /** enum ofp_port_no, reserved port: process with normal L2/L3 switching.  */
+    public static final short OFPP_NORMAL = (short)0xfffa;
+    /** enum ofp_port_no, reserved port: all physical ports except input port.  */
+    public static final short OFPP_ALL  = (short)0xfffc;
+    /** enum ofp_port_no, reserved port: local openflow port.  */
+    public static final short OFPP_LOCAL = (short)0xfffe;
 
-    /** openflow protocol 1.0 - version identifier */
+    /** openflow protocol 1.0 - version identifier. */
     public static final short OFP_VERSION_1_0 = 0x01;
-    /** openflow protocol 1.3 - version identifier */
+    /** openflow protocol 1.3 - version identifier. */
     public static final short OFP_VERSION_1_3 = 0x04;
 
-    public final static String OF_URI_PREFIX = "openflow:";
+    public static final String OF_URI_PREFIX = "openflow:";
 
     /** enum ofp_table: Table numbering, wildcard table used for table config, flow stats and flow deletes. */
-    public static final Short OFPTT_ALL = 0xff;
-    public static final Long ANY = 0xffffffffL;
+    public static final Uint8 OFPTT_ALL = Uint8.MAX_VALUE;
+    public static final Uint32 ANY = Uint32.MAX_VALUE;
     /** Wildcard port used only for flow mod (delete) and flow stats requests. Selects
      *  all flows regardless of output port (including flows with no output port).*/
-    public static final Long OFPP_ANY = ANY;
+    public static final Uint32 OFPP_ANY = ANY;
     /** enum ofp_group: For OFPFC_DELETE* commands, require matching entries to include this as an
      *  output group. A value of OFPG_ANY indicates no restriction. */
-    public static final Long OFPG_ANY = ANY;
+    public static final Uint32 OFPG_ANY = ANY;
+    /** enum ofp_group: Represents all groups for group delete commands. */
+    public static final Uint32 OFPG_ALL = Uint32.valueOf(0xfffffffcL).intern();
     /** Refers to all queues configured at the specified port. */
-    public static final Long OFPQ_ALL = ANY;
-    public static final BigInteger DEFAULT_COOKIE = BigInteger.ZERO;
-    public static final BigInteger DEFAULT_COOKIE_MASK = BigInteger.ZERO;
+    public static final Uint32 OFPQ_ALL = ANY;
+    /** Represents all meters for stat requests commands. */
+    public static final Uint32 OFPM_ALL = ANY;
+    /** Default cookie. */
+    public static final Uint64 DEFAULT_COOKIE = Uint64.ZERO;
+    public static final Uint64 DEFAULT_COOKIE_MASK = Uint64.ZERO;
+    public static final FlowCookie DEFAULT_FLOW_COOKIE = new FlowCookie(DEFAULT_COOKIE);
+    public static final Uint16 DEFAULT_FLOW_PRIORITY = Uint16.valueOf(0x8000).intern();
+    /** Empty flow match. */
+    public static final Match EMPTY_MATCH = new MatchBuilder().build();
+
     /** indicates that no buffering should be applied and the whole packet is to be
      *  sent to the controller. */
-    public static final Long OFP_NO_BUFFER = 0xffffffffL;
+    public static final Uint32 OFP_NO_BUFFER = Uint32.valueOf(0xffffffffL).intern();
     /** enum ofp_controller_max_len: indicates that no buffering should be applied and the whole packet is to be
      *  sent to the controller. */
-    public static final Integer OFPCML_NO_BUFFER = 0xffff;
-
+    public static final Uint16 OFPCML_NO_BUFFER = Uint16.MAX_VALUE;
 
     public static final int MAC_ADDRESS_LENGTH = 6;
-    public static final int SIZE_OF_LONG_IN_BYTES = 8;
     public static final int SIGNUM_UNSIGNED = 1;
 
-    /** RpcError application tag */
+    /** RpcError application tag. */
     public static final String APPLICATION_TAG = "OPENFLOW_PLUGIN";
-    /** RpcError tag - timeout */
+    /** RpcError tag - timeout. */
     public static final String ERROR_TAG_TIMEOUT = "TIMOUT";
+
+    /** Persistent ID of OpenFlowPlugin configuration file. */
+    public static final String CONFIG_FILE_ID = "org.opendaylight.openflowplugin";
+
+    /** supported version ordered by height (highest version is at the beginning). */
+    public static final List<Short> VERSION_ORDER = ImmutableList
+            .<Short>builder()
+            .add((short) 0x04, (short) 0x01)
+            .build();
 }