flowrules are pushed: we still have an intermittent hang though
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/DefaultTrafficSelector.java b/core/api/src/main/java/org/onlab/onos/net/flow/DefaultTrafficSelector.java
new file mode 100644
index 0000000..9ec49e4
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/DefaultTrafficSelector.java
@@ -0,0 +1,44 @@
+package org.onlab.onos.net.flow;
+
+import static org.slf4j.LoggerFactory.getLogger;
+
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.onlab.onos.net.flow.criteria.Criterion;
+import org.slf4j.Logger;
+
+public final class DefaultTrafficSelector implements TrafficSelector {
+
+ private final List<Criterion> selector;
+
+ private DefaultTrafficSelector(List<Criterion> selector) {
+ this.selector = Collections.unmodifiableList(selector);
+ }
+
+ @Override
+ public List<Criterion> criteria() {
+ return selector;
+ }
+
+ public static class Builder implements TrafficSelector.Builder {
+
+ private final Logger log = getLogger(getClass());
+
+ private final List<Criterion> selector = new LinkedList<>();
+
+ @Override
+ public TrafficSelector.Builder add(Criterion criterion) {
+ selector.add(criterion);
+ return this;
+ }
+
+ @Override
+ public TrafficSelector build() {
+ return new DefaultTrafficSelector(selector);
+ }
+
+ }
+
+}