/* * Copyright (c) 2015 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.renderer.ofoverlay.sf; import java.util.Map; import com.google.common.collect.ImmutableMap; import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.FlowUtils; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValue; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValueBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.parameter.value.RangeValueBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.EtherType; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ethernet.match.fields.EthernetType; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ethernet.match.fields.EthernetTypeBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.EthernetMatch; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.EthernetMatchBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.IpMatch; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.IpMatchBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Layer4Match; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.SctpMatchBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.TcpMatchBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.UdpMatchBuilder; public class ClassifierTestUtils { static final EthernetType IPV4_ETH_TYPE = new EthernetTypeBuilder().setType(new EtherType(FlowUtils.IPv4)).build(); static final EthernetType IPV6_ETH_TYPE = new EthernetTypeBuilder().setType(new EtherType(FlowUtils.IPv6)).build(); static final Long TCP = 6L; static final Long UDP = 17L; static final Long SCTP = 132L; static Map<String, ParameterValue> createRangeValueParam(String paramName, long min, long max) { return ImmutableMap.of(paramName, new ParameterValueBuilder() .setRangeValue(new RangeValueBuilder().setMin(min).setMax(max).build()).build()); } static Map<String, ParameterValue> createIntValueParam(String paramName, long value) { return ImmutableMap.of(paramName, new ParameterValueBuilder().setIntValue(value).build()); } static EthernetMatch createEthernetMatch(EthernetType ethType) { return new EthernetMatchBuilder().setEthernetType(ethType).build(); } static IpMatch createIpMatch(short ipProtoValue) { return new IpMatchBuilder().setIpProtocol(ipProtoValue).build(); } static Layer4Match createUdpDstPort(int portNumber) { return new UdpMatchBuilder().setUdpDestinationPort(new PortNumber(portNumber)).build(); } static Layer4Match createUdpSrcPort(int portNumber) { return new UdpMatchBuilder().setUdpSourcePort(new PortNumber(portNumber)).build(); } static Layer4Match createTcpDstPort(int portNumber) { return new TcpMatchBuilder().setTcpDestinationPort(new PortNumber(portNumber)).build(); } static Layer4Match createTcpSrcPort(int portNumber) { return new TcpMatchBuilder().setTcpSourcePort(new PortNumber(portNumber)).build(); } static Layer4Match createSctpDstPort(int portNumber) { return new SctpMatchBuilder().setSctpDestinationPort(new PortNumber(portNumber)).build(); } static Layer4Match createSctpSrcPort(int portNumber) { return new SctpMatchBuilder().setSctpSourcePort(new PortNumber(portNumber)).build(); } }