diff --git a/drivers/default/src/main/java/org/onosproject/driver/handshaker/Ofdpa3SwitchHandshaker.java b/drivers/default/src/main/java/org/onosproject/driver/handshaker/Ofdpa3SwitchHandshaker.java
new file mode 100644
index 0000000..40e54c1
--- /dev/null
+++ b/drivers/default/src/main/java/org/onosproject/driver/handshaker/Ofdpa3SwitchHandshaker.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2016-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.driver.handshaker;
+
+import org.projectfloodlight.openflow.protocol.OFCapabilities;
+import org.projectfloodlight.openflow.protocol.OFFeaturesReply;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Driver for ofdpa 3 switches
+ * TODO : Remove this and also remove the specific switch handler from
+ * onos-drivers.xml once bug with GROUP_STATS is fixed.
+ */
+public class Ofdpa3SwitchHandshaker extends DefaultSwitchHandshaker {
+
+    @Override
+    public void setFeaturesReply(OFFeaturesReply featuresReply) {
+
+        OFFeaturesReply.Builder builder = featuresReply.createBuilder();
+
+        // do not try to set PORTS or ACTIONS,
+        // they are not supported for this openflow version
+        builder.setAuxiliaryId(featuresReply.getAuxiliaryId());
+        builder.setDatapathId(featuresReply.getDatapathId());
+        builder.setNBuffers(featuresReply.getNBuffers());
+        builder.setReserved(featuresReply.getReserved());
+        builder.setXid(featuresReply.getXid());
+
+        Set<OFCapabilities> capabilities = new HashSet<>(featuresReply.getCapabilities());
+        capabilities.add(OFCapabilities.GROUP_STATS);
+        builder.setCapabilities(capabilities);
+
+        super.setFeaturesReply(builder.build());
+    }
+
+}
diff --git a/drivers/default/src/main/resources/onos-drivers.xml b/drivers/default/src/main/resources/onos-drivers.xml
index dec58e5..180c852 100644
--- a/drivers/default/src/main/resources/onos-drivers.xml
+++ b/drivers/default/src/main/resources/onos-drivers.xml
@@ -76,6 +76,7 @@
 
     <!--  Driver for OFDPA 3.0 EA*.
        ~  TODO: version number from switch is still 2.0. Update when 3.0 is GA.
+       ~  TODO: remove Ofdpa3SwitchHandshaker when bug for GroupStats is fixed.
       -->
     <driver name="ofdpa3" extends="ofdpa"
             manufacturer="Broadcom Corp\." hwVersion="OF-DPA 2.0" swVersion="OF-DPA 2.0">
@@ -93,6 +94,8 @@
                    impl="org.onosproject.driver.extensions.Ofdpa3ExtensionTreatmentInterpreter" />
         <behaviour api="org.onosproject.net.flow.ExtensionSelectorCodec"
                    impl="org.onosproject.driver.extensions.Ofdpa3ExtensionSelectorInterpreter" />
+        <behaviour api="org.onosproject.openflow.controller.driver.OpenFlowSwitchDriver"
+                   impl="org.onosproject.driver.handshaker.Ofdpa3SwitchHandshaker"/>
     </driver>
 
     <driver name="xpliant" extends="ofdpa3"
