diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/BridgeDescription.java b/core/api/src/main/java/org/onosproject/net/behaviour/BridgeDescription.java
index a8c0832..5ab5c07 100644
--- a/core/api/src/main/java/org/onosproject/net/behaviour/BridgeDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/BridgeDescription.java
@@ -80,6 +80,13 @@
     Optional<String> datapathId();
 
     /**
+     * Returns OVSDB datapath Type of the bridge.
+     *
+     * @return datapath type
+     */
+    Optional<String> datapathType();
+
+    /**
      * Returns OpenFlow device ID. Valid only if OpenFlow controller is configured
      * for the bridge.
      *
@@ -141,6 +148,14 @@
         Builder datapathId(String datapathId);
 
         /**
+         * Returns bridge description builder with a given datapath type.
+         *
+         * @param datapathType datapath type
+         * @return bridge description builder
+         */
+        Builder datapathType(String datapathType);
+
+        /**
          * Returns bridge description builder with in-band control disabled.
          *
          * @return bridge description builder
diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/DefaultBridgeDescription.java b/core/api/src/main/java/org/onosproject/net/behaviour/DefaultBridgeDescription.java
index f35b646..ef9c767 100644
--- a/core/api/src/main/java/org/onosproject/net/behaviour/DefaultBridgeDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/DefaultBridgeDescription.java
@@ -38,6 +38,7 @@
     private final boolean enableLocalController;
     private final Optional<FailMode> failMode;
     private final Optional<String> datapathId;
+    private final Optional<String> datapathType;
     private final Optional<Boolean> disableInBand;
 
     /* Adds more configurations */
@@ -47,12 +48,14 @@
                                      boolean enableLocalController,
                                      Optional<FailMode> failMode,
                                      Optional<String> datapathId,
+                                     Optional<String> datapathType,
                                      Optional<Boolean> disableInBand) {
         this.name = checkNotNull(name);
         this.controllers = controllers;
         this.enableLocalController = enableLocalController;
         this.failMode = failMode;
         this.datapathId = datapathId;
+        this.datapathType = datapathType;
         this.disableInBand = disableInBand;
     }
 
@@ -87,6 +90,11 @@
     }
 
     @Override
+    public Optional<String> datapathType() {
+        return datapathType;
+    }
+
+    @Override
     public Optional<DeviceId> deviceId() {
         if (datapathId.isPresent()) {
             return Optional.of(DeviceId.deviceId("of:" + datapathId.get()));
@@ -116,6 +124,7 @@
         private boolean enableLocalController = false;
         private Optional<FailMode> failMode = Optional.empty();
         private Optional<String> datapathId = Optional.empty();
+        private Optional<String> datapathType = Optional.empty();
         private Optional<Boolean> disableInBand = Optional.empty();
 
         private Builder() {
@@ -127,6 +136,7 @@
                                                 enableLocalController,
                                                 failMode,
                                                 datapathId,
+                                                datapathType,
                                                 disableInBand);
         }
 
@@ -164,6 +174,12 @@
         }
 
         @Override
+        public Builder datapathType(String datapathType) {
+            this.datapathType = Optional.ofNullable(datapathType);
+            return this;
+        }
+
+        @Override
         public Builder disableInBand() {
             this.disableInBand = Optional.of(Boolean.TRUE);
             return this;
diff --git a/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridge.java b/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridge.java
index 00eb375..b38d1d7 100644
--- a/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridge.java
+++ b/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridge.java
@@ -45,6 +45,7 @@
     private final List<ControllerInfo> controllers;
 
     /* Adds more properties */
+    private final Optional<String> datapathType;
 
     /* other optional configs */
     private final Map<String, String> otherConfigs;
@@ -55,14 +56,17 @@
      * @param name name of the bridge
      * @param failMode openflow controller fail mode policy
      * @param controllers list of openflow controllers
+     * @param datapathType ovs datapath_type
      * @param otherConfigs other configs
      */
     private OvsdbBridge(String name, Optional<FailMode> failMode,
                        List<ControllerInfo> controllers,
+                       Optional<String> datapathType,
                        Map<String, String> otherConfigs) {
         this.name = checkNotNull(name);
         this.failMode = failMode;
         this.controllers = controllers;
+        this.datapathType = datapathType;
         this.otherConfigs = otherConfigs;
     }
 
@@ -94,6 +98,15 @@
     }
 
     /**
+     * Returns OVSDB datapath Type of the bridge.
+     *
+     * @return datapath type
+     */
+    public Optional<String> datapathType() {
+        return datapathType;
+    }
+
+    /**
      * Returns other configurations of the bridge.
      *
      * @return map of configurations
@@ -134,6 +147,7 @@
                 .add("bridgeName", name)
                 .add("failMode", failMode)
                 .add("controllers", controllers)
+                .add("datapathType", datapathType)
                 .add("otherConfigs", otherConfigs)
                 .toString();
     }
@@ -164,6 +178,7 @@
         private String name;
         private Optional<FailMode> failMode = Optional.empty();
         private List<ControllerInfo> controllers = Lists.newArrayList();
+        private Optional<String> datapathType = Optional.empty();
         private Map<String, String> otherConfigs = Maps.newHashMap();
 
         private Builder() {
@@ -182,7 +197,9 @@
                 otherConfigs.put(DISABLE_INBAND,
                                  bridgeDesc.disableInBand().get().toString());
             }
-
+            if (bridgeDesc.datapathType().isPresent()) {
+                this.datapathType = bridgeDesc.datapathType();
+            }
             this.name = bridgeDesc.name();
             this.failMode = bridgeDesc.failMode();
             this.controllers = Lists.newArrayList(bridgeDesc.controllers());
@@ -194,7 +211,7 @@
          * @return ovsdb bridge
          */
         public OvsdbBridge build() {
-            return new OvsdbBridge(name, failMode, controllers, otherConfigs);
+            return new OvsdbBridge(name, failMode, controllers, datapathType, otherConfigs);
         }
 
         /**
@@ -264,6 +281,17 @@
         }
 
         /**
+         * Returns OVSDB bridge builder with a given datapath type.
+         *
+         * @param datapathType datapath Type
+         * @return ovsdb bridge builder
+         */
+        public Builder datapathType(String datapathType) {
+            this.datapathType = Optional.ofNullable(datapathType);
+            return this;
+        }
+
+        /**
          * Returns OVSDB bridge builder with a given disable in-band config.
          *
          * @return ovsdb bridge builder
diff --git a/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java b/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
index f60d48c..cc6e8b5 100644
--- a/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
+++ b/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
@@ -522,6 +522,11 @@
             bridge.setFailMode(Sets.newHashSet(failMode));
         }
 
+        if (ovsdbBridge.datapathType().isPresent()) {
+            String datapathType = ovsdbBridge.datapathType().get();
+            bridge.setDatapathType(datapathType);
+        }
+
         String bridgeUuid = getBridgeUuid(ovsdbBridge.name());
         if (bridgeUuid == null) {
             bridge.setName(ovsdbBridge.name());
