Revert "Allows duplicating packets when requesting packet-in via PacketService"
and makes wipeDeferred as default.

This reverts commit 874900ec363da57928d6f087527e6e9cbfbc0645.

Change-Id: I080ece4f2f316a95c36bdd09f91c0482fbe6f8d9
diff --git a/cli/src/main/java/org/onosproject/cli/net/PacketRequestsListCommand.java b/cli/src/main/java/org/onosproject/cli/net/PacketRequestsListCommand.java
index 1755f82..2bf1feb 100644
--- a/cli/src/main/java/org/onosproject/cli/net/PacketRequestsListCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/PacketRequestsListCommand.java
@@ -27,7 +27,7 @@
         description = "Lists packet requests")
 public class PacketRequestsListCommand extends AbstractShellCommand {
 
-    private static final String FMT = "nodeId=%s appId=%s, priority=%s, criteria=%s copy=%s";
+    private static final String FMT = "nodeId=%s appId=%s, priority=%s, criteria=%s";
 
     @Override
     protected void execute() {
@@ -41,8 +41,7 @@
     }
 
     private void print(PacketRequest request) {
-        print(FMT, request.nodeId(), request.appId().name(), request.priority(),
-                request.selector().criteria(), request.copy());
+        print(FMT, request.nodeId(), request.appId().name(), request.priority(), request.selector().criteria());
     }
 
 }
diff --git a/core/api/src/main/java/org/onosproject/net/packet/DefaultPacketRequest.java b/core/api/src/main/java/org/onosproject/net/packet/DefaultPacketRequest.java
index 2f3d88a..934a7f4 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/DefaultPacketRequest.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/DefaultPacketRequest.java
@@ -34,7 +34,7 @@
     private final ApplicationId appId;
     private final NodeId nodeId;
     private final Optional<DeviceId> deviceId;
-    private final boolean copy;
+
 
     /**
      * Creates a new packet request.
@@ -46,27 +46,11 @@
      */
     public DefaultPacketRequest(TrafficSelector selector, PacketPriority priority,
                                 ApplicationId appId, NodeId nodeId, Optional<DeviceId> deviceId) {
-        this(selector, priority, appId, nodeId, deviceId, false);
-    }
-
-    /**
-     * Creates a new packet request.
-     * @param selector  traffic selector
-     * @param priority  intercept priority
-     * @param appId     application id
-     * @param nodeId    identifier of node where request originated
-     * @param deviceId  device id
-     * @param copy      copy flag
-     */
-    public DefaultPacketRequest(TrafficSelector selector, PacketPriority priority,
-                                ApplicationId appId, NodeId nodeId, Optional<DeviceId> deviceId,
-                                boolean copy) {
         this.selector = selector;
         this.priority = priority;
         this.appId = appId;
         this.nodeId = nodeId;
         this.deviceId = deviceId;
-        this.copy = copy;
     }
 
     @Override
@@ -94,13 +78,8 @@
     }
 
     @Override
-    public boolean copy() {
-        return copy;
-    }
-
-    @Override
     public int hashCode() {
-        return Objects.hash(selector, priority, appId, nodeId, deviceId, copy);
+        return Objects.hash(selector, priority, appId, nodeId, deviceId);
     }
 
     @Override
@@ -116,8 +95,7 @@
                 && Objects.equals(this.priority, other.priority)
                 && Objects.equals(this.appId, other.appId)
                 && Objects.equals(this.nodeId, other.nodeId)
-                && Objects.equals(this.deviceId, other.deviceId)
-                && Objects.equals(this.copy, other.copy);
+                && Objects.equals(this.deviceId, other.deviceId);
     }
 
     @Override
@@ -128,7 +106,6 @@
                 .add("appId", appId)
                 .add("nodeId", nodeId)
                 .add("applies to", deviceId.map(DeviceId::toString).orElse("all"))
-                .add("copy", copy)
                 .toString();
     }
 }
diff --git a/core/api/src/main/java/org/onosproject/net/packet/PacketRequest.java b/core/api/src/main/java/org/onosproject/net/packet/PacketRequest.java
index 2249102..abebb2b 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/PacketRequest.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/PacketRequest.java
@@ -62,11 +62,4 @@
      */
     Optional<DeviceId> deviceId();
 
-    /**
-     * Obtains copy flag.
-     *
-     * @return true if copy flag is set
-     */
-    boolean copy();
-
 }
diff --git a/core/api/src/main/java/org/onosproject/net/packet/PacketService.java b/core/api/src/main/java/org/onosproject/net/packet/PacketService.java
index 88bbbb5..adaea07 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/PacketService.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/PacketService.java
@@ -69,22 +69,6 @@
     void requestPackets(TrafficSelector selector, PacketPriority priority,
                         ApplicationId appId);
 
-    /**
-     * Requests that packets matching the given selector are punted from the
-     * dataplane to the controller.
-     *
-     * @param selector the traffic selector used to match packets
-     * @param priority the priority of the rule
-     * @param appId    the application ID of the requester
-     * @param copy     request a copy of the matching packet to be punted to the controller.
-     *                 <p>
-     *                 If false, the original packet is always sent to the controller.
-     *                 If true, a copy of the packet is sent to the controller,
-     *                 as long as the packet can be duplicated.
-     *                 If duplication is not supported, the original packet will be sent to the controller.
-     */
-    void requestPackets(TrafficSelector selector, PacketPriority priority,
-                        ApplicationId appId, boolean copy);
 
     /**
      * Requests that packets matching the given selector are punted from the
@@ -113,23 +97,6 @@
 
     /**
      * Cancels previous packet requests for packets matching the given
-     * selector to be punted from the dataplane to the controller.
-     *
-     * @param selector the traffic selector used to match packets
-     * @param priority the priority of the rule
-     * @param appId    the application ID of the requester
-     * @param copy     request a copy of the matching packet to be punted to the controller.
-     *                 <p>
-     *                 If false, the original packet is always sent to the controller.
-     *                 If true, a copy of the packet is sent to the controller,
-     *                 as long as the packet can be duplicated.
-     *                 If duplication is not supported, the original packet will be sent to the controller.
-     */
-    void cancelPackets(TrafficSelector selector, PacketPriority priority,
-                       ApplicationId appId, boolean copy);
-
-    /**
-     * Cancels previous packet requests for packets matching the given
      * selector to be punted from the dataplane to the controller. If a
      * deviceId is specified then the packet request is only withdrawn from
      * the device represented by that deviceId.
diff --git a/core/api/src/test/java/org/onosproject/net/packet/PacketServiceAdapter.java b/core/api/src/test/java/org/onosproject/net/packet/PacketServiceAdapter.java
index 7631c03..22d4940 100644
--- a/core/api/src/test/java/org/onosproject/net/packet/PacketServiceAdapter.java
+++ b/core/api/src/test/java/org/onosproject/net/packet/PacketServiceAdapter.java
@@ -51,11 +51,6 @@
 
     @Override
     public void requestPackets(TrafficSelector selector, PacketPriority priority,
-                               ApplicationId appId, boolean copy) {
-    }
-
-    @Override
-    public void requestPackets(TrafficSelector selector, PacketPriority priority,
                                ApplicationId appId, Optional<DeviceId> deviceId) {
 
     }
@@ -67,11 +62,6 @@
 
     @Override
     public void cancelPackets(TrafficSelector selector, PacketPriority priority,
-                              ApplicationId appId, boolean copy) {
-    }
-
-    @Override
-    public void cancelPackets(TrafficSelector selector, PacketPriority priority,
                               ApplicationId appId, Optional<DeviceId> deviceId) {
 
     }
diff --git a/core/net/src/main/java/org/onosproject/net/packet/impl/PacketManager.java b/core/net/src/main/java/org/onosproject/net/packet/impl/PacketManager.java
index 1fe10a5..cb52c94 100644
--- a/core/net/src/main/java/org/onosproject/net/packet/impl/PacketManager.java
+++ b/core/net/src/main/java/org/onosproject/net/packet/impl/PacketManager.java
@@ -181,19 +181,12 @@
     @Override
     public void requestPackets(TrafficSelector selector, PacketPriority priority,
                                ApplicationId appId) {
-        this.requestPackets(selector, priority, appId, false);
-    }
-
-    @Override
-    public void requestPackets(TrafficSelector selector, PacketPriority priority,
-                               ApplicationId appId, boolean copy) {
         checkPermission(PACKET_READ);
         checkNotNull(selector, ERROR_NULL_SELECTOR);
         checkNotNull(appId, ERROR_NULL_APP_ID);
 
         PacketRequest request = new DefaultPacketRequest(selector, priority, appId,
-                localNodeId, Optional.empty(), copy);
-
+                                                         localNodeId, Optional.empty());
         store.requestPackets(request);
     }
 
@@ -210,23 +203,19 @@
                                          localNodeId, deviceId);
 
         store.requestPackets(request);
+
     }
 
     @Override
     public void cancelPackets(TrafficSelector selector, PacketPriority priority,
                               ApplicationId appId) {
-        this.cancelPackets(selector, priority, appId, false);
-    }
-
-    @Override
-    public void cancelPackets(TrafficSelector selector, PacketPriority priority,
-                              ApplicationId appId, boolean copy) {
         checkPermission(PACKET_READ);
         checkNotNull(selector, ERROR_NULL_SELECTOR);
         checkNotNull(appId, ERROR_NULL_APP_ID);
 
+
         PacketRequest request = new DefaultPacketRequest(selector, priority, appId,
-                localNodeId, Optional.empty(), copy);
+                                                         localNodeId, Optional.empty());
         store.cancelPackets(request);
     }
 
@@ -333,18 +322,17 @@
     }
 
     private DefaultForwardingObjective.Builder createBuilder(PacketRequest request) {
-        TrafficTreatment.Builder tBuilder = DefaultTrafficTreatment.builder();
-        tBuilder.punt();
-        if (!request.copy()) {
-            tBuilder.wipeDeferred();
-        }
+        TrafficTreatment treatment = DefaultTrafficTreatment.builder()
+                .punt()
+                .wipeDeferred()
+                .build();
 
         return DefaultForwardingObjective.builder()
                 .withPriority(request.priority().priorityValue())
                 .withSelector(request.selector())
                 .fromApp(appId)
                 .withFlag(ForwardingObjective.Flag.VERSATILE)
-                .withTreatment(tBuilder.build())
+                .withTreatment(treatment)
                 .makePermanent();
     }