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();
+ }
+
+}