mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-23 05:11:04 +02:00
[ONOS-3116] Flow classifier for service function chain.
Change-Id: Iad6f548c190a96a0b2a79a2bd9b90d0a96f3c179
This commit is contained in:
parent
b07481491f
commit
531fcf521e
@ -0,0 +1,259 @@
|
||||
/*
|
||||
* Copyright 2015 Open Networking Laboratory
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.onosproject.vtnrsc;
|
||||
|
||||
import org.onlab.packet.IpPrefix;
|
||||
|
||||
/**
|
||||
* Abstraction of an entity which provides flow classifier for service function chain.
|
||||
* FlowClassifier classify the traffic based on the criteria defined in the request.
|
||||
* The classification can be based on port range or source and destination IP address or
|
||||
* other flow classifier elements.
|
||||
*/
|
||||
public interface FlowClassifier {
|
||||
|
||||
/**
|
||||
* Returns flow classifier ID.
|
||||
*
|
||||
* @return flow classifier id
|
||||
*/
|
||||
FlowClassifierId flowClassifierId();
|
||||
|
||||
/**
|
||||
* Returns Tenant ID.
|
||||
*
|
||||
* @return tenant Id
|
||||
*/
|
||||
TenantId tenantId();
|
||||
|
||||
/**
|
||||
* Returns flow classifier name.
|
||||
*
|
||||
* @return flow classifier name
|
||||
*/
|
||||
String name();
|
||||
|
||||
/**
|
||||
* Returns flow classifier description.
|
||||
*
|
||||
* @return flow classifier description
|
||||
*/
|
||||
String description();
|
||||
|
||||
/**
|
||||
* Returns EtherType.
|
||||
*
|
||||
* @return EtherType
|
||||
*/
|
||||
String etherType();
|
||||
|
||||
/**
|
||||
* Returns IP Protocol.
|
||||
*
|
||||
* @return IP protocol
|
||||
*/
|
||||
String protocol();
|
||||
|
||||
/**
|
||||
* Returns minimum source port range.
|
||||
*
|
||||
* @return minimum source port range
|
||||
*/
|
||||
int minSrcPortRange();
|
||||
|
||||
/**
|
||||
* Returns maximum source port range.
|
||||
*
|
||||
* @return maximum source port range
|
||||
*/
|
||||
int maxSrcPortRange();
|
||||
|
||||
/**
|
||||
* Returns minimum destination port range.
|
||||
*
|
||||
* @return minimum destination port range
|
||||
*/
|
||||
int minDstPortRange();
|
||||
|
||||
/**
|
||||
* Returns maximum destination port range.
|
||||
*
|
||||
* @return maximum destination port range.
|
||||
*/
|
||||
int maxDstPortRange();
|
||||
|
||||
/**
|
||||
* Returns Source IP prefix.
|
||||
*
|
||||
* @return Source IP prefix
|
||||
*/
|
||||
IpPrefix srcIpPrefix();
|
||||
|
||||
/**
|
||||
* Returns Destination IP prefix.
|
||||
*
|
||||
* @return Destination IP prefix
|
||||
*/
|
||||
IpPrefix dstIpPrefix();
|
||||
|
||||
/**
|
||||
* Returns Source virtual port.
|
||||
*
|
||||
* @return Source virtual port
|
||||
*/
|
||||
VirtualPortId srcPort();
|
||||
|
||||
/**
|
||||
* Returns Destination virtual port.
|
||||
*
|
||||
* @return Destination virtual port
|
||||
*/
|
||||
VirtualPortId dstPort();
|
||||
|
||||
/**
|
||||
* Returns whether this Flow classifier is an exact match to the
|
||||
* Flow classifier given in the argument.
|
||||
*
|
||||
* @param flowClassifier other flowClassifier to match against
|
||||
* @return true if the flowClassifiers are an exact match, otherwise false
|
||||
*/
|
||||
boolean exactMatch(FlowClassifier flowClassifier);
|
||||
|
||||
/**
|
||||
* Builder for flow Classifier.
|
||||
*/
|
||||
interface Builder {
|
||||
|
||||
/**
|
||||
* Returns Flow Classifier.
|
||||
*
|
||||
* @return flow classifier.
|
||||
*/
|
||||
FlowClassifier build();
|
||||
|
||||
/**
|
||||
* Sets Flow Classifier ID.
|
||||
*
|
||||
* @param flowClassifierId flow classifier id.
|
||||
* @return Builder object by setting flow classifier Id.
|
||||
*/
|
||||
Builder setFlowClassifierId(FlowClassifierId flowClassifierId);
|
||||
|
||||
/**
|
||||
* Sets Tenant ID.
|
||||
*
|
||||
* @param tenantId tenant id.
|
||||
* @return Builder object by setting Tenant ID.
|
||||
*/
|
||||
Builder setTenantId(TenantId tenantId);
|
||||
|
||||
/**
|
||||
* Sets Flow classifier name.
|
||||
*
|
||||
* @param name flow classifier name
|
||||
* @return builder object by setting flow classifier name
|
||||
*/
|
||||
Builder setName(String name);
|
||||
|
||||
/**
|
||||
* Sets flow classifier description.
|
||||
*
|
||||
* @param description flow classifier description
|
||||
* @return flow classifier description
|
||||
*/
|
||||
Builder setDescription(String description);
|
||||
|
||||
/**
|
||||
* Sets EtherType.
|
||||
*
|
||||
* @param etherType EtherType
|
||||
* @return EtherType
|
||||
*/
|
||||
Builder setEtherType(String etherType);
|
||||
|
||||
/**
|
||||
* Sets IP protocol.
|
||||
*
|
||||
* @param protocol IP protocol
|
||||
* @return builder object by setting IP protocol
|
||||
*/
|
||||
Builder setProtocol(String protocol);
|
||||
|
||||
/**
|
||||
* Set minimum source port range.
|
||||
*
|
||||
* @param minRange minimum source port range
|
||||
* @return builder object by setting minimum source port range
|
||||
*/
|
||||
Builder setMinSrcPortRange(int minRange);
|
||||
|
||||
/**
|
||||
* Sets maximum source port range.
|
||||
*
|
||||
* @param maxRange maximum source port range
|
||||
* @return builder object by setting maximum source port range
|
||||
*/
|
||||
Builder setMaxSrcPortRange(int maxRange);
|
||||
|
||||
/**
|
||||
* Sets minimum destination port range.
|
||||
*
|
||||
* @param minRange minimum destination port range
|
||||
* @return builder object by setting minimum destination port range
|
||||
*/
|
||||
Builder setMinDstPortRange(int minRange);
|
||||
|
||||
/**
|
||||
* Sets maximum destination port range.
|
||||
*
|
||||
* @param maxRange maximum destination port range.
|
||||
* @return builder object by setting maximum destination port range.
|
||||
*/
|
||||
Builder setMaxDstPortRange(int maxRange);
|
||||
|
||||
/**
|
||||
* Sets Source IP prefix.
|
||||
*
|
||||
* @param srcIpPrefix Source IP prefix
|
||||
* @return builder object by setting Source IP prefix
|
||||
*/
|
||||
Builder setSrcIpPrefix(IpPrefix srcIpPrefix);
|
||||
|
||||
/**
|
||||
* Sets Destination IP prefix.
|
||||
*
|
||||
* @param dstIpPrefix Destination IP prefix
|
||||
* @return builder object by setting Destination IP prefix
|
||||
*/
|
||||
Builder setDstIpPrefix(IpPrefix dstIpPrefix);
|
||||
|
||||
/**
|
||||
* Sets Source virtual port.
|
||||
*
|
||||
* @param srcPort Source virtual port
|
||||
* @return builder object by setting Source virtual port
|
||||
*/
|
||||
Builder setSrcPort(VirtualPortId srcPort);
|
||||
|
||||
/**
|
||||
* Sets Destination virtual port.
|
||||
*
|
||||
* @param dstPort Destination virtual port
|
||||
* @return builder object by setting Destination virtual port
|
||||
*/
|
||||
Builder setDstPort(VirtualPortId dstPort);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user