diff --git a/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFChannelHandler.java b/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFChannelHandler.java
index 76019fd..100203f 100644
--- a/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFChannelHandler.java
+++ b/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFChannelHandler.java
@@ -1363,11 +1363,12 @@
         // The OF protocol requires us to start things off by sending the highest
         // version of the protocol supported.
 
-        // bitmap represents OF1.0, OF1.3, and OF1.4
+        // bitmap represents OF1.0, OF1.3, OF1.4, and OF1.5
         // see Sec. 7.5.1 of the OF1.3.4 spec
         U32 bitmap = U32.ofRaw((0b1 << OFVersion.OF_10.getWireVersion()) |
                                (0b1 << OFVersion.OF_13.getWireVersion()) |
-                               (0b1 << OFVersion.OF_14.getWireVersion()));
+                               (0b1 << OFVersion.OF_14.getWireVersion()) |
+                               (0b1 << OFVersion.OF_15.getWireVersion()));
         OFVersion version = Optional.ofNullable(ofVersion).orElse(OFVersion.OF_13);
         OFHelloElem hem = OFFactories.getFactory(version)
                 .buildHelloElemVersionbitmap()
diff --git a/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/RoleManager.java b/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/RoleManager.java
index ad4975a..bc9799c 100644
--- a/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/RoleManager.java
+++ b/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/RoleManager.java
@@ -123,7 +123,7 @@
         }
 
         int xid = sw.getNextTransactionId();
-        OFRoleRequest rrm = OFFactories.getFactory(OFVersion.OF_13)
+        OFRoleRequest rrm = sw.factory()
                 .buildRoleRequest()
                 .setRole(roleToSend)
                 .setXid(xid)
diff --git a/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java b/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
index 5e0fae4..2b003d1 100644
--- a/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
+++ b/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
@@ -327,6 +327,8 @@
                 sw.sendMsg(fact.buildFeaturesRequest().setXid(0).build());
                 break;
             case OF_13:
+            case OF_14:
+            case OF_15:
                 sw.sendMsg(fact.buildPortDescStatsRequest().setXid(0).build());
                 break;
             default:
@@ -977,11 +979,13 @@
             if (status.getReason() != OFPortReason.DELETE) {
                 return buildPortDescription(port);
             } else {
-                PortNumber portNo = PortNumber.portNumber(port.getPortNo().getPortNumber());
-                Port.Type type = port.getCurr().contains(OFPortFeatures.PF_FIBER) ? FIBER : COPPER;
-                SparseAnnotations annotations = makePortAnnotation(port.getName(), port.getHwAddr().toString()).build();
-                return new DefaultPortDescription(portNo, false, true, type,
-                                                  portSpeed(port), annotations);
+                PortDescription desc = buildPortDescription(port);
+                if (desc.isEnabled()) {
+                    return DefaultPortDescription.builder(desc)
+                            .isEnabled(false)
+                            .build();
+                }
+                return desc;
             }
         }
 
diff --git a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilder.java b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilder.java
index 6ed4cca..921ed93 100644
--- a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilder.java
+++ b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilder.java
@@ -134,6 +134,7 @@
             return new FlowModBuilderVer10(flowRule, factory, xid, driverService);
         case OF_13:
         case OF_14:
+        case OF_15:
             return new FlowModBuilderVer13(flowRule, factory, xid, driverService);
         default:
             throw new UnsupportedOperationException(
diff --git a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/util/FlowEntryBuilder.java b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/util/FlowEntryBuilder.java
index 9fa03be..da30eea 100644
--- a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/util/FlowEntryBuilder.java
+++ b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/util/FlowEntryBuilder.java
@@ -53,6 +53,7 @@
 import org.projectfloodlight.openflow.protocol.OFFlowRemoved;
 import org.projectfloodlight.openflow.protocol.OFFlowStatsEntry;
 import org.projectfloodlight.openflow.protocol.OFMatchV3;
+import org.projectfloodlight.openflow.protocol.OFObject;
 import org.projectfloodlight.openflow.protocol.OFVersion;
 import org.projectfloodlight.openflow.protocol.action.OFAction;
 import org.projectfloodlight.openflow.protocol.action.OFActionCircuit;
@@ -268,6 +269,8 @@
             case OF_11:
             case OF_12:
             case OF_13:
+            case OF_14:
+            case OF_15:
                 return entry.getInstructions();
             default:
                 log.warn("Unknown OF version {}", entry.getVersion());
@@ -283,6 +286,8 @@
             case OF_11:
             case OF_12:
             case OF_13:
+            case OF_14:
+            case OF_15:
                 return entry.getInstructions();
             default:
                 log.warn("Unknown OF version {}", entry.getVersion());
@@ -743,7 +748,7 @@
             case VLAN_VID:
                 if (selectorInterpreter != null &&
                         selectorInterpreter.supported(ExtensionSelectorTypes.OFDPA_MATCH_VLAN_VID.type())) {
-                    if (match.getVersion().equals(OFVersion.OF_13)) {
+                    if (isOF13OrLater(match)) {
                         OFOxm oxm = ((OFMatchV3) match).getOxmList().get(MatchField.VLAN_VID);
                         builder.extension(selectorInterpreter.mapOxm(oxm),
                                 deviceId);
@@ -1079,7 +1084,7 @@
             case OFDPA_OVID:
                 if (selectorInterpreter != null &&
                         selectorInterpreter.supported(ExtensionSelectorTypes.OFDPA_MATCH_OVID.type())) {
-                    if (match.getVersion().equals(OFVersion.OF_13)) {
+                    if (isOF13OrLater(match)) {
                         OFOxm oxm = ((OFMatchV3) match).getOxmList().get(MatchField.OFDPA_OVID);
                         builder.extension(selectorInterpreter.mapOxm(oxm),
                                           deviceId);
@@ -1091,7 +1096,7 @@
             case OFDPA_MPLS_L2_PORT:
                 if (selectorInterpreter != null &&
                         selectorInterpreter.supported(ExtensionSelectorTypes.OFDPA_MATCH_MPLS_L2_PORT.type())) {
-                    if (match.getVersion().equals(OFVersion.OF_13)) {
+                    if (isOF13OrLater(match)) {
                         OFOxm oxm = ((OFMatchV3) match).getOxmList().get(MatchField.OFDPA_MPLS_L2_PORT);
                         builder.extension(selectorInterpreter.mapOxm(oxm),
                                           deviceId);
@@ -1108,6 +1113,14 @@
         return builder.build();
     }
 
+    /**
+     * @param obj OpenFlow object to test
+     * @return true if OFObject is OF_13 or later
+     */
+    private static boolean isOF13OrLater(OFObject obj) {
+        return obj.getVersion().wireVersion >= OFVersion.OF_13.wireVersion;
+    }
+
     private DriverHandler getDriver(DeviceId devId) {
         Driver driver = driverService.getDriver(devId);
         DriverHandler handler = new DefaultDriverHandler(new DefaultDriverData(driver, devId));
diff --git a/tools/test/topos/default.py b/tools/test/topos/default.py
index 16e8788..b58b780 100644
--- a/tools/test/topos/default.py
+++ b/tools/test/topos/default.py
@@ -7,6 +7,11 @@
 class AttMplsTopo( Topo ):
     "Internet Topology Zoo Specimen."
 
+    def addSwitch( self, name, **opts ):
+        kwargs = { 'protocols' : 'OpenFlow13' }
+        kwargs.update( opts )
+        return super(AttMplsTopo, self).addSwitch( name, **kwargs )
+
     def __init__( self ):
         "Create a topology."
 
