diff --git a/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java b/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java
index 8db1dbc..bf91497 100644
--- a/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java
+++ b/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java
@@ -72,31 +72,45 @@
     /**
      * Creates a bridge.
      *
+     * @deprecated version 1.7.0 - Hummingbird
      * @param bridgeName bridge name
      */
+    @Deprecated
     void createBridge(String bridgeName);
 
     /**
      * Creates a bridge.
      *
+     * @deprecated version 1.7.0 - Hummingbird
      * @param bridgeName bridge name
      * @param dpid data path id
      * @param exPortName external port name
      */
+    @Deprecated
     void createBridge(String bridgeName, String dpid, String exPortName);
 
     /**
      * Creates a bridge with given name and dpid.
      * Sets the bridge's controller with given controllers.
      *
+     * @deprecated version 1.7.0 - Hummingbird
      * @param bridgeName bridge name
      * @param dpid data path id
      * @param controllers controllers
      * @return true if bridge creation is successful, false otherwise
      */
+    @Deprecated
     boolean createBridge(String bridgeName, String dpid, List<ControllerInfo> controllers);
 
     /**
+     * Creates a bridge with a given bridge description.
+     *
+     * @param ovsdbBridge ovsdb bridge description
+     * @return true if bridge creation is successful, otherwise false
+     */
+    boolean createBridge(OvsdbBridge ovsdbBridge);
+
+    /**
      * Drops a bridge.
      *
      * @param bridgeName bridge name
@@ -119,6 +133,15 @@
     Set<ControllerInfo> getControllers(DeviceId openflowDeviceId);
 
     /**
+     * Returns local controller information.
+     * The connection is a TCP connection to the local ONOS instance's IP
+     * and the default OpenFlow port.
+     *
+     * @return local controller
+     */
+    ControllerInfo localController();
+
+    /**
      * Sets the Controllers for the specified bridge.
      * <p>
      * This method will replace the existing controller list with the new controller
