Bug 5483 - added support for num values in rules
[groupbasedpolicy.git] / groupbasedpolicy / src / main / java / org / opendaylight / groupbasedpolicy / api / sf / 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.api.sf;
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.Parameter.IsRequired;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.Type;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.ParameterBuilder;
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 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
22
23 import com.google.common.collect.ImmutableList;
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      * ICMPv6 protocol value
48      */
49     public static final Long ICMPv6_VALUE = Long.valueOf(58);
50     /**
51      * SCTP protocol value
52      */
53     public static final Long SCTP_VALUE = Long.valueOf(132);
54
55     public static final ClassifierDefinitionId ID = new ClassifierDefinitionId("Classifier-IP-Protocol");
56     /**
57      * Protocol classifier-definition
58      */
59     public static final ClassifierDefinition DEFINITION = new ClassifierDefinitionBuilder().setId(ID)
60         .setName(new ClassifierName("ip_proto"))
61         .setDescription(new Description("Match on the IP protocol of IP traffic"))
62         .setParameter(ImmutableList.of(new ParameterBuilder().setName(new ParameterName(PROTO_PARAM))
63             .setDescription(new Description("The IP protocol to match against"))
64             .setIsRequired(IsRequired.Required)
65             .setType(Type.Int)
66             .build()))
67         .build();
68
69     public static final InstanceIdentifier<ClassifierDefinition> IID = InstanceIdentifier
70         .builder(SubjectFeatureDefinitions.class).child(ClassifierDefinition.class, DEFINITION.getKey()).build();
71
72 }