Added a set of abstractions for flow rule subsystem.
Added an apps source subtree.
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/TrafficSelector.java b/core/api/src/main/java/org/onlab/onos/net/flow/TrafficSelector.java
new file mode 100644
index 0000000..c024e9c
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/TrafficSelector.java
@@ -0,0 +1,38 @@
+package org.onlab.onos.net.flow;
+
+import java.util.List;
+
+/**
+ * Abstraction of a slice of network traffic.
+ */
+public interface TrafficSelector {
+
+ /**
+ * Returns selection criteria as an ordered list.
+ *
+ * @return list of criteria
+ */
+ List<Criterion> criteria();
+
+ /**
+ * Builder of traffic selector entities.
+ */
+ public interface Builder {
+
+ /**
+ * Adds a traffic selection criterion. If a same type criterion has
+ * already been added, it will be replaced by this one.
+ *
+ * @param criterion new criterion
+ */
+ void add(Criterion criterion);
+
+ /**
+ * Builds an immutable traffic selector.
+ *
+ * @return traffic selector
+ */
+ TrafficSelector build();
+ }
+
+}