/*
* Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.groupbasedpolicy.api.sf;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierDefinitionId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Description;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ParameterName;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.SubjectFeatureDefinitions;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.IsRequired;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.Type;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.ParameterBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinition;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinitionBuilder;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import com.google.common.collect.ImmutableList;
/**
* Match against TCP or UDP, and source and/or destination ports
*/
public class L4ClassifierDefinition {
/**
* Source port parameter name
*/
public static final String SRC_PORT_PARAM = "sourceport";
/**
* Source port range parameter name
*/
public static final String SRC_PORT_RANGE_PARAM = "sourceport_range";
/**
* Destination port parameter name
*/
public static final String DST_PORT_PARAM = "destport";
/**
* Destination port range parameter name
*/
public static final String DST_PORT_RANGE_PARAM = "destport_range";
public static final ClassifierDefinitionId ID = new ClassifierDefinitionId("Classifier-L4");
/**
* Layer 4 classifier-definition
*/
public static final ClassifierDefinition DEFINITION = new ClassifierDefinitionBuilder().setId(ID)
.setName(new ClassifierName("l4"))
.setDescription(new Description("Match on the port number of UDP or TCP traffic"))
.setParameter(ImmutableList.of(
new ParameterBuilder().setName(new ParameterName(SRC_PORT_PARAM))
.setDescription(new Description("The source port number to match against"))
.setType(Type.Int)
.setIsRequired(IsRequired.Optional)
.build(),
new ParameterBuilder().setName(new ParameterName(SRC_PORT_RANGE_PARAM))
.setDescription(new Description("The source port range to match against"))
.setType(Type.Range)
.setIsRequired(IsRequired.Optional)
.build(),
new ParameterBuilder().setName(new ParameterName(DST_PORT_PARAM))
.setDescription(new Description("The destination port number to match against"))
.setType(Type.Int)
.setIsRequired(IsRequired.Optional)
.build(),
new ParameterBuilder().setName(new ParameterName(DST_PORT_RANGE_PARAM))
.setDescription(new Description("The destination port range to match against"))
.setType(Type.Range)
.setIsRequired(IsRequired.Optional)
.build()))
.build();
public static final InstanceIdentifier<ClassifierDefinition> IID = InstanceIdentifier
.builder(SubjectFeatureDefinitions.class).child(ClassifierDefinition.class, DEFINITION.getKey()).build();
}