updateports functional
diff --git a/providers/of/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java b/providers/of/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java
index 71219b7..1740f4b 100644
--- a/providers/of/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java
+++ b/providers/of/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java
@@ -30,7 +30,9 @@
import org.onlab.onos.of.controller.OpenFlowSwitch;
import org.onlab.onos.of.controller.OpenFlowSwitchListener;
import org.onlab.onos.of.controller.RoleState;
+import org.projectfloodlight.openflow.protocol.OFPortConfig;
import org.projectfloodlight.openflow.protocol.OFPortDesc;
+import org.projectfloodlight.openflow.protocol.OFPortState;
import org.slf4j.Logger;
/**
@@ -50,7 +52,7 @@
private DeviceProviderService providerService;
- private OpenFlowSwitchListener listener = new InternalDeviceProvider();
+ private final OpenFlowSwitchListener listener = new InternalDeviceProvider();
/**
* Creates an OpenFlow device provider.
@@ -119,17 +121,6 @@
providerService.updatePorts(deviceId(uri), buildPortDescriptions(sw.getPorts()));
}
- private List<PortDescription> buildPortDescriptions(
- List<OFPortDesc> ports) {
- List<PortDescription> portDescs = new ArrayList<PortDescription>();
- for (OFPortDesc port : ports) {
- PortNumber portNo = PortNumber.portNumber(port.getPortNo().getPortNumber());
-
- portDescs.add(new DefaultPortDescription(portNo,
- port.getState()));
- }
- }
-
@Override
public void switchRemoved(Dpid dpid) {
if (providerService == null) {
@@ -149,6 +140,21 @@
return uri;
}
+ private List<PortDescription> buildPortDescriptions(
+ List<OFPortDesc> ports) {
+ final List<PortDescription> portDescs = new ArrayList<PortDescription>();
+ PortNumber portNo;
+ boolean enabled;
+ for (OFPortDesc port : ports) {
+ portNo = PortNumber.portNumber(port.getPortNo().getPortNumber());
+ enabled = !port.getState().contains(OFPortState.LINK_DOWN) &&
+ !port.getConfig().contains(OFPortConfig.PORT_DOWN);
+ portDescs.add(new DefaultPortDescription(portNo,
+ enabled));
+ }
+ return portDescs;
+ }
+
}
}