Move definitions of classifiers and actions to
[groupbasedpolicy.git] / groupbasedpolicy / src / main / java / org / opendaylight / groupbasedpolicy / sf / classifiers / IpProtoClassifierDefinition.java
1 /*
2  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.groupbasedpolicy.sf.classifiers;
10
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierDefinitionId;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Description;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ParameterName;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.SubjectFeatureDefinitions;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.ParameterBuilder;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.IsRequired;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.Type;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinition;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinitionBuilder;
21
22 import com.google.common.collect.ImmutableList;
23 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
24
25 /**
26  * Match on the IP protocol of IP traffic
27  */
28 public class IpProtoClassifierDefinition {
29
30     /**
31      * Protocol parameter name
32      */
33     public static final String PROTO_PARAM = "proto";
34     /**
35      * TCP protocol value
36      */
37     public static final Long TCP_VALUE = Long.valueOf(6);
38     /**
39      * UDP protocol value
40      */
41     public static final Long UDP_VALUE = Long.valueOf(17);
42     /**
43      * ICMP protocol value
44      */
45     public static final Long ICMP_VALUE = Long.valueOf(1);
46     /**
47      * SCTP protocol value
48      */
49     public static final Long SCTP_VALUE = Long.valueOf(132);
50
51     public static final ClassifierDefinitionId ID =
52             new ClassifierDefinitionId("79c6fdb2-1e1a-4832-af57-c65baf5c2335");
53     /**
54      * Protocol classifier-definition
55      */
56     public static final ClassifierDefinition DEFINITION =
57             new ClassifierDefinitionBuilder().setId(ID)
58                     .setName(new ClassifierName("ip_proto"))
59                     .setDescription(new Description("Match on the IP protocol of IP traffic"))
60                     .setParameter(ImmutableList.of(
61                                     new ParameterBuilder().setName(new ParameterName(PROTO_PARAM))
62                                             .setDescription(new Description(
63                                                     "The IP protocol to match against"))
64                                             .setIsRequired(IsRequired.Required)
65                                             .setType(Type.Int)
66                                             .build()))
67                     .build();
68
69     public static final InstanceIdentifier IID =
70             InstanceIdentifier.builder(SubjectFeatureDefinitions.class)
71                     .child(ClassifierDefinition.class, DEFINITION.getKey())
72                     .build();
73
74 }