ONOS-4086 to ONOS-4091, ONOS-4098 to ONOS-4100:ISIS controller implementation

Change-Id: I7be52805652fe762baf808515401d6b5042b2aa5
diff --git a/protocols/isis/api/src/main/java/org/onosproject/isis/controller/IsisController.java b/protocols/isis/api/src/main/java/org/onosproject/isis/controller/IsisController.java
index 7d5b111..fc10019 100644
--- a/protocols/isis/api/src/main/java/org/onosproject/isis/controller/IsisController.java
+++ b/protocols/isis/api/src/main/java/org/onosproject/isis/controller/IsisController.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.isis.controller;
 
+import com.fasterxml.jackson.databind.JsonNode;
 import org.onosproject.isis.controller.topology.IsisRouterListener;
 
 import java.util.List;
@@ -41,18 +42,9 @@
     /**
      * Updates configuration of processes.
      *
-     * @param processes process instance to update
+     * @param processesNode json node represents process
      */
-    void updateConfig(List<IsisProcess> processes);
-
-    /**
-     * Deletes configuration parameters.
-     *
-     * @param processes list of process instance
-     * @param attribute string key which deletes the particular node or element
-     * from the controller
-     */
-    void deleteConfig(List<IsisProcess> processes, String attribute);
+    void updateConfig(JsonNode processesNode);
 
     /**
      * Gets the all configured processes.
diff --git a/protocols/isis/api/src/main/java/org/onosproject/isis/controller/IsisInterface.java b/protocols/isis/api/src/main/java/org/onosproject/isis/controller/IsisInterface.java
index 0b97c7d..3ac7122 100644
--- a/protocols/isis/api/src/main/java/org/onosproject/isis/controller/IsisInterface.java
+++ b/protocols/isis/api/src/main/java/org/onosproject/isis/controller/IsisInterface.java
@@ -230,6 +230,13 @@
     void setPriority(int priority);
 
     /**
+     * Returns hello interval.
+     *
+     * @return hello interval
+     */
+    public int helloInterval();
+
+    /**
      * Sets hello interval.
      *
      * @param helloInterval hello interval
@@ -301,4 +308,11 @@
      * @param circuitId circuit ID
      */
     void setCircuitId(String circuitId);
+
+    /**
+     * Removes neighbor from the interface neighbor map.
+     *
+     * @param isisNeighbor ISIS neighbor instance
+     */
+    void removeNeighbor(IsisNeighbor isisNeighbor);
 }
diff --git a/protocols/isis/api/src/main/java/org/onosproject/isis/controller/IsisNeighbor.java b/protocols/isis/api/src/main/java/org/onosproject/isis/controller/IsisNeighbor.java
index 22b0cca..eedf11c 100644
--- a/protocols/isis/api/src/main/java/org/onosproject/isis/controller/IsisNeighbor.java
+++ b/protocols/isis/api/src/main/java/org/onosproject/isis/controller/IsisNeighbor.java
@@ -98,4 +98,14 @@
      * @param holdingTime Holding time of neighbor
      */
     void setHoldingTime(int holdingTime);
+
+    /**
+     * Starts the inactivity timer for this neighbor.
+     */
+    void startInactivityTimeCheck();
+
+    /**
+     * Stops the inactivity timer.
+     */
+    void stopInactivityTimeCheck();
 }
diff --git a/protocols/isis/api/src/main/java/org/onosproject/isis/controller/IsisProcess.java b/protocols/isis/api/src/main/java/org/onosproject/isis/controller/IsisProcess.java
index a5d1ae6..ec6dcc1 100644
--- a/protocols/isis/api/src/main/java/org/onosproject/isis/controller/IsisProcess.java
+++ b/protocols/isis/api/src/main/java/org/onosproject/isis/controller/IsisProcess.java
@@ -23,6 +23,13 @@
 public interface IsisProcess {
 
     /**
+     * Returns process ID.
+     *
+     * @return process ID
+     */
+    public String processId();
+
+    /**
      * Sets process ID.
      *
      * @param processId process ID