diff --git a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/InstancePort.java b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/InstancePort.java
index 83c0741..5c44c96 100644
--- a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/InstancePort.java
+++ b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/InstancePort.java
@@ -42,11 +42,6 @@
         INACTIVE,
 
         /**
-         * Signifies that the given instance port is in pending removal state.
-         */
-        PENDING_REMOVAL,
-
-        /**
          * Signifies that the given instance port is in migrating state.
          */
         MIGRATING,
diff --git a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/OpenstackNetworkEvent.java b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/OpenstackNetworkEvent.java
index 4f4892f..88b61be 100644
--- a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/OpenstackNetworkEvent.java
+++ b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/OpenstackNetworkEvent.java
@@ -69,11 +69,21 @@
         OPENSTACK_PORT_CREATED,
 
         /**
+         * Signifies that the OpenStack port will be updated.
+         */
+        OPENSTACK_PORT_PRE_UPDATE,
+
+        /**
          * Signifies that the OpenStack port is updated.
          */
         OPENSTACK_PORT_UPDATED,
 
         /**
+         * Signifies that the OpenStack port will be removed.
+         */
+        OPENSTACK_PORT_PRE_REMOVE,
+
+        /**
          * Signifies that the OpenStack port is removed.
          */
         OPENSTACK_PORT_REMOVED,
diff --git a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/PreCommitPortService.java b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/PreCommitPortService.java
new file mode 100644
index 0000000..bc06e17
--- /dev/null
+++ b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/PreCommitPortService.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.openstacknetworking.api;
+
+import org.onosproject.openstacknetworking.api.OpenstackNetworkEvent.Type;
+
+/**
+ * Handles port precommit request.
+ */
+public interface PreCommitPortService extends PreCommitService<String, Type> {
+}
diff --git a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/PreCommitService.java b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/PreCommitService.java
new file mode 100644
index 0000000..4b94997
--- /dev/null
+++ b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/PreCommitService.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.openstacknetworking.api;
+
+/**
+ * Handles precommit request.
+ */
+public interface PreCommitService<T, E> {
+
+    /**
+     * Subscribes pre-update event for the given subject inside the given class.
+     *
+     * @param subject       subject to subscribe
+     * @param eventType     event type (update or remove)
+     * @param className     target class name
+     */
+    void subscribePreCommit(T subject, E eventType, String className);
+
+    /**
+     * Unsubscribes pre-update event for the given subject inside the given class.
+     *
+     * @param subject       subject to unsubscribe
+     * @param eventType     event type (update or remove)
+     * @param className     target class name
+     */
+    void unsubscribePreCommit(T subject, E eventType, String className);
+
+    /**
+     * Obtains the count value of subscribers for the given subject and event type.
+     *
+     * @param subject       subject to subscribe
+     * @param eventType     event type (update or remove)
+     * @return subscriber count
+     */
+    int subscriberCountByEventType(T subject, E eventType);
+
+    /**
+     * Obtains the count value of subscribers for the given subject.
+     *
+     * @param subject       subject to subscribe
+     * @return subscriber count
+     */
+    int subscriberCount(T subject);
+}
