blob: 9678dc1d43efbb81cd86cb5d951c5cdd6196eeb5 [file] [log] [blame]
tom8bb16062014-09-12 14:47:46 -07001package org.onlab.onos.net.flow;
2
3import java.util.List;
4
5/**
6 * Abstraction of a slice of network traffic.
7 */
8public interface TrafficSelector {
9
10 /**
11 * Returns selection criteria as an ordered list.
12 *
13 * @return list of criteria
14 */
15 List<Criterion> criteria();
16
17 /**
18 * Builder of traffic selector entities.
19 */
20 public interface Builder {
21
22 /**
23 * Adds a traffic selection criterion. If a same type criterion has
24 * already been added, it will be replaced by this one.
25 *
26 * @param criterion new criterion
alshabib369d2942014-09-12 17:59:35 -070027 * @return self
tom8bb16062014-09-12 14:47:46 -070028 */
alshabib369d2942014-09-12 17:59:35 -070029 Builder add(Criterion criterion);
tom8bb16062014-09-12 14:47:46 -070030
31 /**
32 * Builds an immutable traffic selector.
33 *
34 * @return traffic selector
35 */
36 TrafficSelector build();
37 }
38
39}