ios-xe renderer reporting capabilities
[groupbasedpolicy.git] / renderers / ios-xe / src / main / java / org / opendaylight / groupbasedpolicy / renderer / ios_xe_provider / sf / EtherTypeClassifier.java
1 /*
2  * Copyright (c) 2016 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.renderer.ios_xe_provider.sf;
10
11 import java.util.List;
12
13 import org.opendaylight.groupbasedpolicy.api.sf.EtherTypeClassifierDefinition;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierDefinitionId;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ParameterName;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.has.parameters.type.parameter.type.IntBuilder;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.capabilities.supported.classifier.definition.SupportedParameterValues;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.capabilities.supported.classifier.definition.SupportedParameterValuesBuilder;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.supported._int.value.fields.SupportedIntValue;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.supported._int.value.fields.SupportedIntValueBuilder;
21
22 import com.google.common.collect.ImmutableList;
23
24 /**
25  * Match on the ether type of the traffic.
26  */
27 public class EtherTypeClassifier extends Classifier {
28
29     public EtherTypeClassifier(ClassifierDefinitionId parent) {
30         super(parent);
31     }
32
33     @Override
34     public ClassifierDefinitionId getId() {
35         return EtherTypeClassifierDefinition.ID;
36     }
37
38     @Override
39     public List<SupportedParameterValues> getSupportedParameterValues() {
40
41         List<SupportedIntValue> values = ImmutableList.of(
42                 new SupportedIntValueBuilder().setValue(EtherTypeClassifierDefinition.IPv4_VALUE).build(),
43                 new SupportedIntValueBuilder().setValue(EtherTypeClassifierDefinition.IPv6_VALUE).build());
44         SupportedParameterValuesBuilder builder = new SupportedParameterValuesBuilder();
45         builder.setParameterName(new ParameterName(EtherTypeClassifierDefinition.ETHERTYPE_PARAM));
46         builder.setParameterType(new IntBuilder().setSupportedIntValue(values).build());
47
48         return ImmutableList.of(builder.build());
49     }
50 }