blob: 0924bb9ac3e01388290427625de7cd93eeb39e02 [file] [log] [blame]
Bharat saraswale37f7f32015-10-26 15:50:22 +05301/*
Brian O'Connora09fe5b2017-08-03 21:12:30 -07002 * Copyright 2015-present Open Networking Foundation
Bharat saraswale37f7f32015-10-26 15:50:22 +05303 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
Jonathan Hart317f4762015-11-09 16:05:36 -080016package org.onosproject.vtnrsc.flowclassifier;
Bharat saraswale37f7f32015-10-26 15:50:22 +053017
Mahesh Poojary Huaweiecf971d2015-12-05 14:25:53 +053018import org.onosproject.event.ListenerService;
Bharat saraswale37f7f32015-10-26 15:50:22 +053019import org.onosproject.vtnrsc.FlowClassifier;
20import org.onosproject.vtnrsc.FlowClassifierId;
21
22/**
23 * Provides Services for Flow Classifier.
24 */
Mahesh Poojary Huaweiecf971d2015-12-05 14:25:53 +053025public interface FlowClassifierService extends ListenerService<FlowClassifierEvent, FlowClassifierListener> {
Bharat saraswale37f7f32015-10-26 15:50:22 +053026
27 /**
Mahesh Poojary Sfac02262015-11-20 19:13:22 +053028 * Check whether Flow Classifier is present based on given Flow Classifier
29 * Id.
30 *
31 * @param id flow classifier identifier
32 * @return true if flow classifier is present otherwise return false
33 */
34 boolean exists(FlowClassifierId id);
35
36 /**
37 * Returns the number of flow classifiers known to the system.
38 *
39 * @return number of flow classifiers
40 */
41 int getFlowClassifierCount();
42
43 /**
Bharat saraswale37f7f32015-10-26 15:50:22 +053044 * Store Flow Classifier.
45 *
Mahesh Poojary Sfac02262015-11-20 19:13:22 +053046 * @param flowClassifier flow classifier
47 * @return true if adding flow classifier into store is success otherwise
48 * return false
Bharat saraswale37f7f32015-10-26 15:50:22 +053049 */
50 boolean createFlowClassifier(FlowClassifier flowClassifier);
51
52 /**
53 * Return the existing collection of Flow Classifier.
54 *
Mahesh Poojary Sfac02262015-11-20 19:13:22 +053055 * @return flow classifier collections
Bharat saraswale37f7f32015-10-26 15:50:22 +053056 */
57 Iterable<FlowClassifier> getFlowClassifiers();
58
59 /**
Bharat saraswale37f7f32015-10-26 15:50:22 +053060 * Retrieve the Flow Classifier based on given Flow Classifier id.
61 *
Mahesh Poojary Sfac02262015-11-20 19:13:22 +053062 * @param id flow classifier identifier
63 * @return flow classifier if present otherwise returns null
Bharat saraswale37f7f32015-10-26 15:50:22 +053064 */
65 FlowClassifier getFlowClassifier(FlowClassifierId id);
66
67 /**
68 * Update Flow Classifier based on given Flow Classifier Id.
69 *
Mahesh Poojary Sfac02262015-11-20 19:13:22 +053070 * @param flowClassifier flow classifier
71 * @return true if flow classifier update is success otherwise return false
Bharat saraswale37f7f32015-10-26 15:50:22 +053072 */
73 boolean updateFlowClassifier(FlowClassifier flowClassifier);
74
75 /**
76 * Remove Flow Classifier from store based on given Flow Classifier Id.
77 *
Mahesh Poojary Sfac02262015-11-20 19:13:22 +053078 * @param id flow classifier identifier
79 * @return true if flow classifier removal is success otherwise return
80 * false
Bharat saraswale37f7f32015-10-26 15:50:22 +053081 */
82 boolean removeFlowClassifier(FlowClassifierId id);
Jonathan Hart317f4762015-11-09 16:05:36 -080083}