Move definitions of classifiers and actions to
[groupbasedpolicy.git] / groupbasedpolicy / src / main / java / org / opendaylight / groupbasedpolicy / sf / classifiers / EtherTypeClassifierDefinition.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 com.google.common.collect.ImmutableList;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierDefinitionId;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Description;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ParameterName;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.SubjectFeatureDefinitions;
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.definition.ParameterBuilder;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinition;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinitionBuilder;
22 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
23
24 /**
25  * Match on the ether type of the traffic
26  */
27 public class EtherTypeClassifierDefinition {
28
29     /**
30      * Ethertype parameter name
31      */
32     public static final String ETHERTYPE_PARAM = "ethertype";
33     /**
34      * ARP ethertype value
35      */
36     public static final Long ARP_VALUE = Long.valueOf(0x0806);
37     /**
38      * IPv4 ethertype value
39      */
40     public static final Long IPv4_VALUE = Long.valueOf(0x0800);
41     /**
42      * IPv6 ethertype value
43      */
44     public static final Long IPv6_VALUE = Long.valueOf(0x86DD);
45
46     public static final ClassifierDefinitionId ID = new ClassifierDefinitionId(
47             "6a48ab45-a462-429d-b18c-3a575b2c8bef");
48     /**
49      * Ethertype classifier-definition
50      */
51     public static final ClassifierDefinition DEFINITION = new ClassifierDefinitionBuilder().setId(ID)
52         .setName(new ClassifierName("ether_type"))
53         .setDescription(new Description("Match on the ether type of the traffic"))
54         .setParameter(
55                 ImmutableList.of(new ParameterBuilder().setName(new ParameterName(ETHERTYPE_PARAM))
56                     .setDescription(new Description("The ethertype to match against"))
57                     .setIsRequired(IsRequired.Required)
58                     .setType(Type.Int)
59                     .build()))
60         .build();
61
62     public static final InstanceIdentifier IID =
63             InstanceIdentifier.builder(SubjectFeatureDefinitions.class)
64                     .child(ClassifierDefinition.class, DEFINITION.getKey())
65                     .build();
66
67 }