diff --git a/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/manager/NshSpiIdGenerators.java b/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/manager/NshSpiIdGenerators.java
new file mode 100644
index 0000000..1dbe8c8
--- /dev/null
+++ b/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/manager/NshSpiIdGenerators.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * 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.sfc.manager;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * Unique NSH SPI Id generator for NSH header.
+ */
+public final class NshSpiIdGenerators {
+
+    private static final AtomicInteger NSH_SPI_ID_GEN = new AtomicInteger();
+    private static final int MAX_NSH_SPI_ID = 0x7FFFFFFF;
+    private static int nshSpiId;
+
+    /**
+     * Default constructor.
+     */
+    private NshSpiIdGenerators() {
+    }
+
+    /**
+     * Get the next NSH SPI id.
+     *
+     * @return NSH SPI id
+     */
+    public static int create() {
+        do {
+            if (nshSpiId >= MAX_NSH_SPI_ID) {
+                if (NSH_SPI_ID_GEN.get() >= MAX_NSH_SPI_ID) {
+                    NSH_SPI_ID_GEN.set(0);
+                }
+            }
+            nshSpiId = NSH_SPI_ID_GEN.incrementAndGet();
+        } while (nshSpiId > MAX_NSH_SPI_ID);
+        return nshSpiId;
+    }
+}
