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/TrafficTreatment.java b/core/api/src/main/java/org/onlab/onos/net/flow/TrafficTreatment.java
new file mode 100644
index 0000000..0eb5299
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/TrafficTreatment.java
@@ -0,0 +1,38 @@
+package org.onlab.onos.net.flow;
+
+import java.util.List;
+
+/**
+ * Abstraction of network traffic treatment.
+ */
+public interface TrafficTreatment {
+
+    /**
+     * Returns list of instructions on how to treat traffic.
+     *
+     * @return list of treatment instructions
+     */
+    List<Instruction> instructions();
+
+    /**
+     * Builder of traffic treatment entities.
+     */
+    public interface Builder {
+
+        /**
+         * Adds a traffic treatment instruction. If a same type instruction has
+         * already been added, it will be replaced by this one.
+         *
+         * @param instruction new instruction
+         */
+        void add(Instruction instruction);
+
+        /**
+         * Builds an immutable traffic treatment descriptor.
+         *
+         * @return traffic treatment
+         */
+        TrafficTreatment build();
+    }
+
+}