cb7b051e9c7c535700a5bade4eb9b64b6e887d06
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / util / ActionConstants.java
1 /*\r
2  * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 \r
9 package org.opendaylight.openflowjava.protocol.impl.util;\r
10 \r
11 /**\r
12  * @author michal.polkorab\r
13  *\r
14  */\r
15 public final class ActionConstants {\r
16 \r
17     /** Openflow v1.0 & v1.3 OFPAT_OUTPUT code */\r
18     public static final byte OUTPUT_CODE = 0;\r
19     /** Openflow v1.0 OFPAT_SET_VLAN_VID code */\r
20     public static final byte SET_VLAN_VID_CODE = 1;\r
21     /** Openflow v1.0 OFPAT_SET_VLAN_PCP code */\r
22     public static final byte SET_VLAN_PCP_CODE = 2;\r
23     /** Openflow v1.0 OFPAT_STRIP_VLAN code */\r
24     public static final byte STRIP_VLAN_CODE = 3;\r
25     /** Openflow v1.0 OFPAT_SET_DL_SRC code */\r
26     public static final byte SET_DL_SRC_CODE = 4;\r
27     /** Openflow v1.0 OFPAT_SET_DL_DST code */\r
28     public static final byte SET_DL_DST_CODE = 5;\r
29     /** Openflow v1.0 OFPAT_SET_NW_SRC code */\r
30     public static final byte SET_NW_SRC_CODE = 6;\r
31     /** Openflow v1.0 OFPAT_SET_NW_DST code */\r
32     public static final byte SET_NW_DST_CODE = 7;\r
33     /** Openflow v1.0 OFPAT_SET_NW_TOS code */\r
34     public static final byte SET_NW_TOS_CODE = 8;\r
35     /** Openflow v1.0 OFPAT_SET_TP_SRC code */\r
36     public static final byte SET_TP_SRC_CODE = 9;\r
37     /** Openflow v1.0 OFPAT_SET_TP_DST code */\r
38     public static final byte SET_TP_DST_CODE = 10;\r
39     /** Openflow v1.0 OFPAT_ENQUEUE code */\r
40     public static final byte ENQUEUE_CODE = 11;\r
41     /** Openflow v1.3 OFPAT_COPY_TTL_OUT code */\r
42     public static final byte COPY_TTL_OUT_CODE = 11;\r
43     /** Openflow v1.3 OFPAT_COPY_TTL_IN code */\r
44     public static final byte COPY_TTL_IN_CODE = 12;\r
45     /** Openflow v1.3 OFPAT_SET_MPLS_TTL code */\r
46     public static final byte SET_MPLS_TTL_CODE = 15;\r
47     /** Openflow v1.3 OFPAT_DEC_MPLS_TTL code */\r
48     public static final byte DEC_MPLS_TTL_CODE = 16;\r
49     /** Openflow v1.3 OFPAT_PUSH_VLAN code */\r
50     public static final byte PUSH_VLAN_CODE = 17;\r
51     /** Openflow v1.3 OFPAT_POP_VLAN code */\r
52     public static final byte POP_VLAN_CODE = 18;\r
53     /** Openflow v1.3 OFPAT_PUSH_MPLS code */\r
54     public static final byte PUSH_MPLS_CODE = 19;\r
55     /** Openflow v1.3 OFPAT_POP_MPLS code */\r
56     public static final byte POP_MPLS_CODE = 20;\r
57     /** Openflow v1.3 OFPAT_SET_QUEUE code */\r
58     public static final byte SET_QUEUE_CODE = 21;\r
59     /** Openflow v1.3 OFPAT_GROUP code */\r
60     public static final byte GROUP_CODE = 22;\r
61     /** Openflow v1.3 OFPAT_SET_NW_TTL code */\r
62     public static final byte SET_NW_TTL_CODE = 23;\r
63     /** Openflow v1.3 OFPAT_DEC_NW_TTL code */\r
64     public static final byte DEC_NW_TTL_CODE = 24;\r
65     /** Openflow v1.3 OFPAT_SET_FIELD code */\r
66     public static final int SET_FIELD_CODE = 25;\r
67     /** Openflow v1.3 OFPAT_PUSH_PBB code */\r
68     public static final byte PUSH_PBB_CODE = 26;\r
69     /** Openflow v1.3 OFPAT_POP_PBB code */\r
70     public static final byte POP_PBB_CODE = 27;\r
71 \r
72     /** Padding in OFPAT_OUTPUT (OF v1.3) */\r
73     public static final byte OUTPUT_PADDING = 6;\r
74     /** Padding in OFPAT_SET_VLAN_VID (OF v1.3) */\r
75     public static final byte PADDING_IN_SET_VLAN_VID_ACTION = 2;\r
76     /** Padding in OFPAT_SET_VLAN_PCP (OF v1.3) */\r
77     public static final byte PADDING_IN_SET_VLAN_PCP_ACTION = 3;\r
78     /** Padding in OFPAT_SET_NW_TOS (OF v1.3) */\r
79     public static final byte PADDING_IN_SET_NW_TOS_ACTION = 3;\r
80     /** Padding in OFPAT_ENQUEUE (OF v1.3) */\r
81     public static final int PADDING_IN_ENQUEUE_ACTION = 6;\r
82     /** Padding in OFPAT_SET_MPLS_TTL (OF v1.3) */\r
83     public static final byte SET_MPLS_TTL_PADDING = 3;\r
84     /** Padding in OFPAT_SET_NW_TTL (OF v1.3) */\r
85     public static final byte SET_NW_TTL_PADDING = 3;\r
86     /** Padding in OFPAT_SET_DL_SRC and OFPAT_SET_DL_DST (OF v1.3) */\r
87     public static final byte PADDING_IN_DL_ADDRESS_ACTION = 6;\r
88     /** Padding in OFPAT_SET_TP_SRC and OFPAT_SET_TP_DST (OF v1.3) */\r
89     public static final byte PADDING_IN_TP_PORT_ACTION = 2;\r
90     /** Padding in action header (OF v1.3) */\r
91     public static final byte PADDING_IN_ACTION_HEADER = 4;\r
92     /** Padding in OFPAT_PUSH_VLAN, OFPAT_PUSH_MPLS, OFPAT_POP_MPLS\r
93      *  and OFPAT_PUSH_PBB (OF v1.3) */\r
94     public static final byte ETHERTYPE_ACTION_PADDING = 2;\r
95 \r
96     /** Most common action length */\r
97     public static final byte GENERAL_ACTION_LENGTH = 8;\r
98     /** Action larger than GENERAL_ACTION_LENGTH - currently\r
99      *  only 16 bytes long actions for both OF v1.0 & v1.3*/\r
100     public static final byte LARGER_ACTION_LENGTH = 16;\r
101     /** Action header size */\r
102     public static final byte ACTION_IDS_LENGTH = 4;\r
103 \r
104     private ActionConstants() {\r
105         throw new UnsupportedOperationException("Utility class shouldn't be instantiated");\r
106     }\r
107 }\r