[ONOS-7311] and [ONOS-7197] Update ONOS to support most recent version of BMv2 and PI

Change-Id: Ie69cfe1946f3c9241dc7f59a64bd40005a063931
diff --git a/core/api/src/main/java/org/onosproject/net/pi/model/PiActionGroupType.java b/core/api/src/main/java/org/onosproject/net/pi/model/PiActionGroupType.java
deleted file mode 100644
index dd92888..0000000
--- a/core/api/src/main/java/org/onosproject/net/pi/model/PiActionGroupType.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2017-present Open Networking Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onosproject.net.pi.model;
-
-import com.google.common.annotations.Beta;
-
-/**
- * Type of action group in a protocol-independent pipeline.
- */
-@Beta
-public enum PiActionGroupType {
-
-    /**
-     * Performs load-balancing among different members of the group.
-     */
-    SELECT
-}
diff --git a/core/api/src/main/java/org/onosproject/net/pi/runtime/PiActionGroup.java b/core/api/src/main/java/org/onosproject/net/pi/runtime/PiActionGroup.java
index 9084bea..dd90f9b 100644
--- a/core/api/src/main/java/org/onosproject/net/pi/runtime/PiActionGroup.java
+++ b/core/api/src/main/java/org/onosproject/net/pi/runtime/PiActionGroup.java
@@ -21,7 +21,6 @@
 import com.google.common.base.Objects;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Maps;
-import org.onosproject.net.pi.model.PiActionGroupType;
 import org.onosproject.net.pi.model.PiActionProfileId;
 
 import java.util.Collection;
@@ -37,15 +36,12 @@
 public final class PiActionGroup implements PiEntity {
 
     private final PiActionGroupId id;
-    private final PiActionGroupType type;
     private final ImmutableSet<PiActionGroupMember> members;
     private final PiActionProfileId piActionProfileId;
 
-    private PiActionGroup(PiActionGroupId id, PiActionGroupType type,
-                          ImmutableSet<PiActionGroupMember> members,
+    private PiActionGroup(PiActionGroupId id, ImmutableSet<PiActionGroupMember> members,
                           PiActionProfileId piActionProfileId) {
         this.id = id;
-        this.type = type;
         this.members = members;
         this.piActionProfileId = piActionProfileId;
     }
@@ -60,15 +56,6 @@
     }
 
     /**
-     * Returns the type of this action group.
-     *
-     * @return action group type
-     */
-    public PiActionGroupType type() {
-        return type;
-    }
-
-    /**
      * Returns the members of this action group.
      *
      * @return collection of action members.
@@ -96,21 +83,19 @@
         }
         PiActionGroup that = (PiActionGroup) o;
         return Objects.equal(id, that.id) &&
-                Objects.equal(type, that.type) &&
                 Objects.equal(members, that.members) &&
                 Objects.equal(piActionProfileId, that.piActionProfileId);
     }
 
     @Override
     public int hashCode() {
-        return Objects.hashCode(id, type, members);
+        return Objects.hashCode(id, members);
     }
 
     @Override
     public String toString() {
         return MoreObjects.toStringHelper(this)
                 .add("groupId", id)
-                .add("type", type)
                 .add("members", members)
                 .add("piActionProfileId", piActionProfileId)
                 .toString();
@@ -136,7 +121,6 @@
     public static final class Builder {
 
         private PiActionGroupId id;
-        private PiActionGroupType type;
         private Map<PiActionGroupMemberId, PiActionGroupMember> members = Maps.newHashMap();
         private PiActionProfileId piActionProfileId;
 
@@ -156,17 +140,6 @@
         }
 
         /**
-         * Sets the type of this action group.
-         *
-         * @param type action group type
-         * @return this
-         */
-        public Builder withType(PiActionGroupType type) {
-            this.type = type;
-            return this;
-        }
-
-        /**
          * Adds one member to this action group.
          *
          * @param member action group member
@@ -206,11 +179,9 @@
          */
         public PiActionGroup build() {
             checkNotNull(id);
-            checkNotNull(type);
             checkArgument(!members.isEmpty(), "Members cannot be empty");
             checkNotNull(piActionProfileId);
-            return new PiActionGroup(id, type,
-                                     ImmutableSet.copyOf(members.values()),
+            return new PiActionGroup(id, ImmutableSet.copyOf(members.values()),
                                      piActionProfileId);
         }
     }
diff --git a/core/api/src/main/java/org/onosproject/net/pi/runtime/PiActionGroupMember.java b/core/api/src/main/java/org/onosproject/net/pi/runtime/PiActionGroupMember.java
index 2905eb9..9682383 100644
--- a/core/api/src/main/java/org/onosproject/net/pi/runtime/PiActionGroupMember.java
+++ b/core/api/src/main/java/org/onosproject/net/pi/runtime/PiActionGroupMember.java
@@ -57,8 +57,7 @@
     }
 
     /**
-     * Returns the weight associated to this member. Meaningful if the action group of this member is of type {@link
-     * org.onosproject.net.pi.model.PiActionGroupType#SELECT}.
+     * Returns the weight associated to this member.
      *
      * @return weight
      */
@@ -139,8 +138,7 @@
         }
 
         /**
-         * Sets the weight of this member. Meaningful only if the action group is of type {@link
-         * org.onosproject.net.pi.model.PiActionGroupType#SELECT}.
+         * Sets the weight of this member.
          * <p>
          * Default value is 0.
          *
diff --git a/core/api/src/test/java/org/onosproject/net/pi/runtime/PiActionGroupTest.java b/core/api/src/test/java/org/onosproject/net/pi/runtime/PiActionGroupTest.java
index 6672d91..bd4bc2c 100644
--- a/core/api/src/test/java/org/onosproject/net/pi/runtime/PiActionGroupTest.java
+++ b/core/api/src/test/java/org/onosproject/net/pi/runtime/PiActionGroupTest.java
@@ -20,7 +20,6 @@
 import com.google.common.testing.EqualsTester;
 import org.apache.commons.collections.CollectionUtils;
 import org.junit.Test;
-import org.onosproject.net.pi.model.PiActionGroupType;
 import org.onosproject.net.pi.model.PiActionId;
 import org.onosproject.net.pi.model.PiActionParamId;
 
@@ -54,14 +53,12 @@
     private PiActionGroup piActionGroup1 = PiActionGroup.builder()
             .addMember(piActionGroupMember)
             .withId(piActionGroupId)
-            .withType(PiActionGroupType.SELECT)
             .withActionProfileId(ACTION_PROF_ID)
             .build();
 
     private PiActionGroup sameAsPiActionGroup1 = PiActionGroup.builder()
             .addMember(piActionGroupMember)
             .withId(piActionGroupId)
-            .withType(PiActionGroupType.SELECT)
             .withActionProfileId(ACTION_PROF_ID)
             .build();
 
@@ -69,7 +66,6 @@
     private PiActionGroup piActionGroup2 = PiActionGroup.builder()
             .addMember(piActionGroupMember)
             .withId(piActionGroupId2)
-            .withType(PiActionGroupType.SELECT)
             .withActionProfileId(ACTION_PROF_ID)
             .build();
 
@@ -105,7 +101,6 @@
         piActionGroupMembers.add(piActionGroupMember);
         assertThat(piActionGroup1, is(notNullValue()));
         assertThat(piActionGroup1.id(), is(piActionGroupId));
-        assertThat(piActionGroup1.type(), is(PiActionGroupType.SELECT));
         assertThat("Incorrect members value",
                    CollectionUtils.isEqualCollection(piActionGroup1.members(), piActionGroupMembers));
     }
diff --git a/core/net/src/main/java/org/onosproject/net/pi/impl/PiGroupTranslatorImpl.java b/core/net/src/main/java/org/onosproject/net/pi/impl/PiGroupTranslatorImpl.java
index eeabebc..ea7ae50 100644
--- a/core/net/src/main/java/org/onosproject/net/pi/impl/PiGroupTranslatorImpl.java
+++ b/core/net/src/main/java/org/onosproject/net/pi/impl/PiGroupTranslatorImpl.java
@@ -19,7 +19,6 @@
 import org.onosproject.net.Device;
 import org.onosproject.net.group.Group;
 import org.onosproject.net.group.GroupBucket;
-import org.onosproject.net.pi.model.PiActionGroupType;
 import org.onosproject.net.pi.model.PiPipeconf;
 import org.onosproject.net.pi.model.PiPipelineInterpreter;
 import org.onosproject.net.pi.runtime.PiAction;
@@ -63,14 +62,6 @@
         final PiActionGroup.Builder piActionGroupBuilder = PiActionGroup.builder()
                 .withId(PiActionGroupId.of(group.id().id()));
 
-        switch (group.type()) {
-            case SELECT:
-                piActionGroupBuilder.withType(PiActionGroupType.SELECT);
-                break;
-            default:
-                throw new PiTranslationException(format("Group type %s not supported", group.type()));
-        }
-
         if (!(group.appCookie() instanceof PiGroupKey)) {
             throw new PiTranslationException("Group app cookie is not PI (class should be PiGroupKey)");
         }
diff --git a/core/net/src/test/java/org/onosproject/net/pi/impl/PiTranslatorServiceTest.java b/core/net/src/test/java/org/onosproject/net/pi/impl/PiTranslatorServiceTest.java
index 9a80e9f..801780e 100644
--- a/core/net/src/test/java/org/onosproject/net/pi/impl/PiTranslatorServiceTest.java
+++ b/core/net/src/test/java/org/onosproject/net/pi/impl/PiTranslatorServiceTest.java
@@ -43,7 +43,6 @@
 import org.onosproject.net.group.GroupBucket;
 import org.onosproject.net.group.GroupBuckets;
 import org.onosproject.net.group.GroupDescription;
-import org.onosproject.net.pi.model.PiActionGroupType;
 import org.onosproject.net.pi.model.PiPipeconf;
 import org.onosproject.net.pi.runtime.PiAction;
 import org.onosproject.net.pi.runtime.PiActionGroup;
@@ -245,8 +244,6 @@
 
         assertThat("Group ID must be equal",
                    piGroup1.id().id(), is(equalTo(GROUP_ID.id())));
-        assertThat("Group type must be SELECT",
-                   piGroup1.type(), is(equalTo(PiActionGroupType.SELECT)));
         assertThat("Action profile ID must be equal",
                    piGroup1.actionProfileId(), is(equalTo(ACT_PRF_WCMP_SELECTOR_ID)));
 
diff --git a/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java b/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
index 6a03032..2148450 100644
--- a/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
+++ b/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
@@ -203,7 +203,6 @@
 import org.onosproject.net.packet.DefaultOutboundPacket;
 import org.onosproject.net.packet.DefaultPacketRequest;
 import org.onosproject.net.packet.PacketPriority;
-import org.onosproject.net.pi.model.PiActionGroupType;
 import org.onosproject.net.pi.model.PiActionId;
 import org.onosproject.net.pi.model.PiActionParamId;
 import org.onosproject.net.pi.model.PiActionProfileId;
@@ -619,7 +618,6 @@
             .register(DomainConstraint.class)
             .register(
                     // PI model
-                    PiActionGroupType.class,
                     PiActionId.class,
                     PiActionParamId.class,
                     PiActionProfileId.class,