diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/BasicServerDriver.java b/drivers/server/src/main/java/org/onosproject/drivers/server/BasicServerDriver.java
index ba16a3a..3cc18e0 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/BasicServerDriver.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/BasicServerDriver.java
@@ -46,6 +46,16 @@
     public    static final String BASE_URL = ROOT_URL + "/metron";
 
     /**
+     * Common parameters to be exchanged with the server's agent.
+     */
+    public static final String PARAM_ID             = "id";
+    public static final String PARAM_NICS           = "nics";
+    public static final String PARAM_CPUS           = "cpus";
+    public static final String NIC_PARAM_RX_FILTER  = "rxFilter";
+    public static final String NIC_PARAM_RX_METHOD  = "method";
+
+
+    /**
      * Successful HTTP status codes.
      */
     private static final int STATUS_OK = Response.Status.OK.getStatusCode();
@@ -99,7 +109,7 @@
      *
      * @return RestSBController instance
      */
-    protected RestSBController getController() {
+    public RestSBController getController() {
         synchronized (CONTROLLER_LOCK) {
             if (controller == null) {
                 init();
diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/ServerDevicesDiscovery.java b/drivers/server/src/main/java/org/onosproject/drivers/server/ServerDevicesDiscovery.java
index 8d08585..8a009f3 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/ServerDevicesDiscovery.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/ServerDevicesDiscovery.java
@@ -20,9 +20,9 @@
 import org.onosproject.drivers.server.behavior.MonitoringStatisticsDiscovery;
 import org.onosproject.drivers.server.devices.CpuDevice;
 import org.onosproject.drivers.server.devices.CpuVendor;
-import org.onosproject.drivers.server.devices.NicDevice;
-import org.onosproject.drivers.server.devices.NicRxFilter;
-import org.onosproject.drivers.server.devices.NicRxFilter.RxFilter;
+import org.onosproject.drivers.server.devices.nic.NicDevice;
+import org.onosproject.drivers.server.devices.nic.NicRxFilter;
+import org.onosproject.drivers.server.devices.nic.NicRxFilter.RxFilter;
 import org.onosproject.drivers.server.devices.ServerDeviceDescription;
 import org.onosproject.drivers.server.devices.RestServerSBDevice;
 import org.onosproject.drivers.server.stats.CpuStatistics;
@@ -104,13 +104,10 @@
     /**
      * Parameters to be exchanged with the server's agent.
      */
-    private static final String PARAM_ID               = "id";
-    private static final String PARAM_CPUS             = "cpus";
     private static final String PARAM_MANUFACTURER     = "manufacturer";
     private static final String PARAM_HW_VENDOR        = "hwVersion";
     private static final String PARAM_SW_VENDOR        = "swVersion";
     private static final String PARAM_SERIAL           = "serial";
-    private static final String PARAM_NICS             = "nics";
     private static final String PARAM_TIMING_STATS     = "timing_stats";
     private static final String PARAM_TIMING_AUTOSCALE = "autoscale_timing_stats";
 
@@ -121,9 +118,6 @@
     private static final String NIC_PARAM_SPEED            = "speed";
     private static final String NIC_PARAM_STATUS           = "status";
     private static final String NIC_PARAM_HW_ADDR          = "hwAddr";
-    private static final String NIC_PARAM_RX_FILTER        = "rxFilter";
-    private static final String NIC_PARAM_RX_METHOD        = "method";
-    private static final String NIC_PARAM_RX_METHOD_VALUES = "values";
 
     /**
      * NIC statistics.
@@ -260,7 +254,7 @@
         }
 
         // Get all the attributes
-        String id     = get(jsonNode, PARAM_ID);
+        String id     = get(jsonNode, BasicServerDriver.PARAM_ID);
         String vendor = get(jsonNode, PARAM_MANUFACTURER);
         String hw     = get(jsonNode, PARAM_HW_VENDOR);
         String sw     = get(jsonNode, PARAM_SW_VENDOR);
@@ -268,7 +262,7 @@
 
         // CPUs are composite attributes
         Set<CpuDevice> cpuSet = new HashSet<CpuDevice>();
-        JsonNode cpuNode = objNode.path(PARAM_CPUS);
+        JsonNode cpuNode = objNode.path(BasicServerDriver.PARAM_CPUS);
 
         // Construct CPU objects
         for (JsonNode cn : cpuNode) {
@@ -311,7 +305,7 @@
             }
             boolean status     = nicObjNode.path(NIC_PARAM_STATUS).asInt() > 0;
             String hwAddr      = get(nn, NIC_PARAM_HW_ADDR);
-            JsonNode tagNode   = nicObjNode.path(NIC_PARAM_RX_FILTER);
+            JsonNode tagNode   = nicObjNode.path(BasicServerDriver.NIC_PARAM_RX_FILTER);
             if (tagNode == null) {
                 throw new IllegalArgumentException(
                     "The Rx filters of NIC " + nicId + " are not reported"
@@ -348,11 +342,9 @@
             nicSet.add(nic);
         }
 
-        /**
-         * Construct a complete server device object.
-         * Lists of NICs and CPUs extend the information
-         * already in RestSBDevice (parent class).
-         */
+        // Construct a complete server device object.
+        // Lists of NICs and CPUs extend the information
+        // already in RestSBDevice (parent class).
         RestServerSBDevice dev = new DefaultRestServerSBDevice(
             device.ip(), device.port(), device.username(),
             device.password(), device.protocol(), device.url(),
@@ -400,10 +392,8 @@
         // .. and object
         RestServerSBDevice device = null;
 
-        /*
-         * In case this method is called before discoverDeviceDetails,
-         * there is missing information to be gathered.
-         */
+        // In case this method is called before discoverDeviceDetails,
+        // there is missing information to be gathered.
         short i = 0;
         while ((device == null) && (i < DISCOVERY_RETRIES)) {
             i++;
@@ -517,7 +507,7 @@
      * @param deviceId the device ID to be queried
      * @return list of (per core) CpuStatistics
      */
-     private Collection<CpuStatistics> getCpuStatistics(DeviceId deviceId) {
+     public Collection<CpuStatistics> getCpuStatistics(DeviceId deviceId) {
         // List of port statistics to return
         Collection<CpuStatistics> cpuStats = null;
 
@@ -589,11 +579,10 @@
         // Load the JSON into objects
         ObjectMapper mapper = new ObjectMapper();
         Map<String, Object> jsonMap = null;
-        JsonNode jsonNode  = null;
         ObjectNode objNode = null;
         try {
             jsonMap  = mapper.readValue(response, Map.class);
-            jsonNode = mapper.convertValue(jsonMap, JsonNode.class);
+            JsonNode jsonNode = mapper.convertValue(jsonMap, JsonNode.class);
             objNode = (ObjectNode) jsonNode;
         } catch (IOException ioEx) {
             log.error(
@@ -773,7 +762,7 @@
             return cpuStats;
         }
 
-        JsonNode cpuNode = objNode.path(PARAM_CPUS);
+        JsonNode cpuNode = objNode.path(BasicServerDriver.PARAM_CPUS);
 
         for (JsonNode cn : cpuNode) {
             ObjectNode cpuObjNode = (ObjectNode) cn;
diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/RestServerSBDevice.java b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/RestServerSBDevice.java
index a1172f8..f57e734 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/RestServerSBDevice.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/RestServerSBDevice.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.drivers.server.devices;
 
+import org.onosproject.drivers.server.devices.nic.NicDevice;
 import org.onosproject.protocol.rest.RestSBDevice;
 
 import java.util.Collection;
diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/ServerDeviceDescription.java b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/ServerDeviceDescription.java
index dced9cd..02c9a11 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/ServerDeviceDescription.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/ServerDeviceDescription.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.drivers.server.devices;
 
+import org.onosproject.drivers.server.devices.nic.NicDevice;
 import org.onosproject.net.device.DeviceDescription;
 
 import java.util.Collection;
diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/MacRxFilterValue.java b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/MacRxFilterValue.java
similarity index 90%
rename from drivers/server/src/main/java/org/onosproject/drivers/server/devices/MacRxFilterValue.java
rename to drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/MacRxFilterValue.java
index b5dfe12..dec0276 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/MacRxFilterValue.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/MacRxFilterValue.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.drivers.server.devices;
+package org.onosproject.drivers.server.devices.nic;
 
 import org.onlab.packet.MacAddress;
 
@@ -24,32 +24,23 @@
 /**
  * A MAC Rx filter value.
  */
-public class MacRxFilterValue extends RxFilterValue implements Comparable  {
+public class MacRxFilterValue extends RxFilterValue implements Comparable {
 
     private MacAddress mac;
 
     public MacRxFilterValue() {
         super();
-
         this.mac = null;
     }
 
     public MacRxFilterValue(MacAddress mac) {
         super();
-
-        checkNotNull(mac, "MAC address of Rx filter is NULL");
-
-        this.mac = mac;
+        setValue(mac);
     }
 
     public MacRxFilterValue(MacRxFilterValue other) {
         super();
-
-        if (other.value() == null) {
-            return;
-        }
-
-        this.mac = other.value();
+        setValue(other.value());
     }
 
     /**
@@ -68,7 +59,6 @@
      */
     public void setValue(MacAddress mac) {
         checkNotNull(mac, "MAC address of Rx filter is NULL");
-
         this.mac = mac;
     }
 
diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/MplsRxFilterValue.java b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/MplsRxFilterValue.java
similarity index 88%
rename from drivers/server/src/main/java/org/onosproject/drivers/server/devices/MplsRxFilterValue.java
rename to drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/MplsRxFilterValue.java
index 21ea37d..1d4c155 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/MplsRxFilterValue.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/MplsRxFilterValue.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.drivers.server.devices;
+package org.onosproject.drivers.server.devices.nic;
 
 import org.onlab.packet.MplsLabel;
 
@@ -30,26 +30,17 @@
 
     public MplsRxFilterValue() {
         super();
-
         this.mplsLabel = null;
     }
 
     public MplsRxFilterValue(MplsLabel mplsLabel) {
         super();
-
-        checkNotNull(mplsLabel, "MPLS label of Rx filter is NULL");
-
-        this.mplsLabel = mplsLabel;
+        setValue(mplsLabel);
     }
 
     public MplsRxFilterValue(MplsRxFilterValue other) {
         super();
-
-        if (other.value() == null) {
-            return;
-        }
-
-        this.mplsLabel = other.value();
+        setValue(other.value());
     }
 
     /**
@@ -68,7 +59,6 @@
      */
     public void setValue(MplsLabel mplsLabel) {
         checkNotNull(mplsLabel, "MPLS label of Rx filter is NULL");
-
         this.mplsLabel = mplsLabel;
     }
 
diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/NicDevice.java b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/NicDevice.java
similarity index 97%
rename from drivers/server/src/main/java/org/onosproject/drivers/server/devices/NicDevice.java
rename to drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/NicDevice.java
index 0416a6c..91cd7f9 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/NicDevice.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/NicDevice.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.onosproject.drivers.server.devices;
+package org.onosproject.drivers.server.devices.nic;
 
 import org.onlab.packet.MacAddress;
 
diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/NicRxFilter.java b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/NicRxFilter.java
similarity index 77%
rename from drivers/server/src/main/java/org/onosproject/drivers/server/devices/NicRxFilter.java
rename to drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/NicRxFilter.java
index ffddc9b..e2d5758 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/NicRxFilter.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/NicRxFilter.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.onosproject.drivers.server.devices;
+package org.onosproject.drivers.server.devices.nic;
 
 import org.apache.commons.lang.ArrayUtils;
 import com.google.common.base.MoreObjects;
@@ -35,9 +35,27 @@
      * Supported Rx filters.
      */
     public enum RxFilter {
+        /**
+         * NIC dispatches traffic according to VLAN tags.
+         */
         VLAN("vlan"),
+        /**
+         * NIC dispatches traffic according to the destination MAC addresses.
+         */
         MAC("mac"),
-        MPLS("mpls");
+        /**
+         * NIC dispatches traffic according to MPLS tags.
+         */
+        MPLS("mpls"),
+        /**
+         * NIC dispatches traffic according to (generic) flow rules.
+         */
+        FLOW("flow"),
+        /**
+         * NIC dispatches traffic by hashing the values of some header fields.
+         * This is also known as Receive-Side Scaling (RSS).
+         */
+        RSS("rss");
 
         private String rxFilter;
 
@@ -57,6 +75,15 @@
             return MAP.containsKey(rxFilter.toString());
         }
 
+        public static boolean isSupportedSet(Set<RxFilter> rxFilters) {
+            for (RxFilter rf : rxFilters) {
+                if (!MAP.containsKey(rf.toString())) {
+                    return false;
+                }
+            }
+            return true;
+        }
+
         private RxFilter(String rxFilter) {
             this.rxFilter = rxFilter;
         }
@@ -65,6 +92,7 @@
         public String toString() {
             return this.rxFilter;
         }
+
     }
 
     private Set<RxFilter> rxFilters;
diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/RxFilterValue.java b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/RxFilterValue.java
similarity index 93%
rename from drivers/server/src/main/java/org/onosproject/drivers/server/devices/RxFilterValue.java
rename to drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/RxFilterValue.java
index 29d2c99..10ebe04 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/RxFilterValue.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/RxFilterValue.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.drivers.server.devices;
+package org.onosproject.drivers.server.devices.nic;
 
 /**
  * The base class that holds the value of a NIC's Rx filter.
diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/VlanRxFilterValue.java b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/VlanRxFilterValue.java
similarity index 87%
rename from drivers/server/src/main/java/org/onosproject/drivers/server/devices/VlanRxFilterValue.java
rename to drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/VlanRxFilterValue.java
index a984810..86cec25 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/VlanRxFilterValue.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/VlanRxFilterValue.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.drivers.server.devices;
+package org.onosproject.drivers.server.devices.nic;
 
 import org.onlab.packet.VlanId;
 
@@ -30,26 +30,17 @@
 
     public VlanRxFilterValue() {
         super();
-
-        this.vlanId = null;
+        this.vlanId = VlanId.NONE;
     }
 
     public VlanRxFilterValue(VlanId vlanId) {
         super();
-
-        checkNotNull(vlanId, "VLAN ID of Rx filter is NULL");
-
-        this.vlanId = vlanId;
+        setValue(vlanId);
     }
 
     public VlanRxFilterValue(VlanRxFilterValue other) {
         super();
-
-        if (other.value() == null) {
-            return;
-        }
-
-        this.vlanId = other.value();
+        setValue(other.value());
     }
 
     /**
diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/RxFilterValue.java b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/package-info.java
similarity index 70%
copy from drivers/server/src/main/java/org/onosproject/drivers/server/devices/RxFilterValue.java
copy to drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/package-info.java
index 29d2c99..a2e5cf7 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/devices/RxFilterValue.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/devices/nic/package-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2017-present Open Networking Foundation
+ * Copyright 2018-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.
@@ -13,14 +13,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.drivers.server.devices;
 
 /**
- * The base class that holds the value of a NIC's Rx filter.
+ * API for NIC server devices.
  */
-public abstract class RxFilterValue {
-
-    public RxFilterValue() {
-    }
-
-}
+package org.onosproject.drivers.server.devices.nic;
diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/impl/devices/DefaultNicDevice.java b/drivers/server/src/main/java/org/onosproject/drivers/server/impl/devices/DefaultNicDevice.java
index d69ff23..3ff5e65 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/impl/devices/DefaultNicDevice.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/impl/devices/DefaultNicDevice.java
@@ -16,8 +16,8 @@
 
 package org.onosproject.drivers.server.impl.devices;
 
-import org.onosproject.drivers.server.devices.NicDevice;
-import org.onosproject.drivers.server.devices.NicRxFilter;
+import org.onosproject.drivers.server.devices.nic.NicDevice;
+import org.onosproject.drivers.server.devices.nic.NicRxFilter;
 
 import org.onlab.packet.MacAddress;
 
diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/impl/devices/DefaultRestServerSBDevice.java b/drivers/server/src/main/java/org/onosproject/drivers/server/impl/devices/DefaultRestServerSBDevice.java
index 7232ed5..410a5b4 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/impl/devices/DefaultRestServerSBDevice.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/impl/devices/DefaultRestServerSBDevice.java
@@ -17,7 +17,7 @@
 package org.onosproject.drivers.server.impl.devices;
 
 import org.onosproject.drivers.server.devices.CpuDevice;
-import org.onosproject.drivers.server.devices.NicDevice;
+import org.onosproject.drivers.server.devices.nic.NicDevice;
 import org.onosproject.drivers.server.devices.RestServerSBDevice;
 
 import org.onosproject.protocol.rest.DefaultRestSBDevice;
diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/impl/devices/DefaultServerDeviceDescription.java b/drivers/server/src/main/java/org/onosproject/drivers/server/impl/devices/DefaultServerDeviceDescription.java
index 50aeb02..c5ac09a 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/impl/devices/DefaultServerDeviceDescription.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/impl/devices/DefaultServerDeviceDescription.java
@@ -17,7 +17,7 @@
 package org.onosproject.drivers.server.impl.devices;
 
 import org.onosproject.drivers.server.devices.CpuDevice;
-import org.onosproject.drivers.server.devices.NicDevice;
+import org.onosproject.drivers.server.devices.nic.NicDevice;
 import org.onosproject.drivers.server.devices.ServerDeviceDescription;
 
 import org.onosproject.net.device.DefaultDeviceDescription;
