Driver and flow stats handling for Calient fiber switch S160.
Bump loxigen to 0.4.1.onos-SNAPSHOT.

Change-Id: Ieb8aa4fe716e12f89b83770eff617561f30cdd08
diff --git a/openflow/api/src/main/java/org/onosproject/openflow/controller/OpenFlowSwitch.java b/openflow/api/src/main/java/org/onosproject/openflow/controller/OpenFlowSwitch.java
index 49ca5a8..1b6810b 100644
--- a/openflow/api/src/main/java/org/onosproject/openflow/controller/OpenFlowSwitch.java
+++ b/openflow/api/src/main/java/org/onosproject/openflow/controller/OpenFlowSwitch.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.openflow.controller;
 
+import org.onosproject.net.Device;
 import org.projectfloodlight.openflow.protocol.OFFactory;
 import org.projectfloodlight.openflow.protocol.OFMessage;
 import org.projectfloodlight.openflow.protocol.OFPortDesc;
@@ -136,11 +137,11 @@
     void returnRoleReply(RoleState requested, RoleState response);
 
     /**
-     * Indicates if this switch is optical.
+     * Returns the switch device type.
      *
-     * @return true if optical
+     * @return device type
      */
-    boolean isOptical();
+    Device.Type deviceType();
 
     /**
      * Identifies the channel used to communicate with the switch.
diff --git a/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/AbstractOpenFlowSwitch.java b/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/AbstractOpenFlowSwitch.java
index 8ac1e22..2f6357b 100644
--- a/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/AbstractOpenFlowSwitch.java
+++ b/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/AbstractOpenFlowSwitch.java
@@ -18,6 +18,7 @@
 
 import org.jboss.netty.channel.Channel;
 import org.onlab.packet.IpAddress;
+import org.onosproject.net.Device;
 import org.onosproject.net.driver.AbstractHandlerBehaviour;
 import org.onosproject.openflow.controller.Dpid;
 import org.onosproject.openflow.controller.RoleState;
@@ -95,7 +96,7 @@
     }
 
     @Override
-    public final void sendMsg(OFMessage m) {
+    public void sendMsg(OFMessage m) {
         if (role == RoleState.MASTER && channel.isConnected()) {
             channel.write(Collections.singletonList(m));
         }
@@ -413,8 +414,8 @@
 
 
     @Override
-    public boolean isOptical() {
-        return false;
+    public Device.Type deviceType() {
+        return Device.Type.SWITCH;
     }