Add implementation of nsh actions

Change-Id: I24f778bf11c96ad5f9eaa3b47d1ffcf1824e12a0
diff --git a/drivers/src/main/java/org/onosproject/driver/extensions/NiciraExtensionTreatmentInterpreter.java b/drivers/src/main/java/org/onosproject/driver/extensions/NiciraExtensionTreatmentInterpreter.java
index b364237..a746078 100644
--- a/drivers/src/main/java/org/onosproject/driver/extensions/NiciraExtensionTreatmentInterpreter.java
+++ b/drivers/src/main/java/org/onosproject/driver/extensions/NiciraExtensionTreatmentInterpreter.java
@@ -100,28 +100,34 @@
             return factory.actions().niciraResubmit((int) resubmit.inPort().toLong(),
                                                   resubmit.table());
         }
-        if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.NICIRA_SET_NSH_SPI.type())) {
-            // TODO this will be implemented later
-        }
         if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.NICIRA_RESUBMIT_TABLE.type())) {
             NiciraResubmitTable resubmitTable = (NiciraResubmitTable) extensionTreatment;
             return factory.actions().niciraResubmitTable((int) resubmitTable.inPort().toLong(),
                                                          resubmitTable.table());
         }
+        if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.NICIRA_SET_NSH_SPI.type())) {
+            NiciraSetNshSpi niciraNshSpi = (NiciraSetNshSpi) extensionTreatment;
+            return factory.actions().niciraSetNsp(niciraNshSpi.nshSpi().servicePathId());
+        }
         if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.NICIRA_SET_NSH_SI.type())) {
-            // TODO this will be implemented later
+            NiciraSetNshSi niciraNshSi = (NiciraSetNshSi) extensionTreatment;
+            return factory.actions().niciraSetNsp(niciraNshSi.nshSi().serviceIndex());
         }
         if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.NICIRA_SET_NSH_CH1.type())) {
-            // TODO this will be implemented later
+            NiciraSetNshContextHeader niciraNshch = (NiciraSetNshContextHeader) extensionTreatment;
+            return factory.actions().niciraSetNshc1(niciraNshch.nshCh().nshContextHeader());
         }
         if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.NICIRA_SET_NSH_CH2.type())) {
-            // TODO this will be implemented later
+            NiciraSetNshContextHeader niciraNshch = (NiciraSetNshContextHeader) extensionTreatment;
+            return factory.actions().niciraSetNshc2(niciraNshch.nshCh().nshContextHeader());
         }
         if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.NICIRA_SET_NSH_CH3.type())) {
-            // TODO this will be implemented later
+            NiciraSetNshContextHeader niciraNshch = (NiciraSetNshContextHeader) extensionTreatment;
+            return factory.actions().niciraSetNshc3(niciraNshch.nshCh().nshContextHeader());
         }
         if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.NICIRA_SET_NSH_CH4.type())) {
-            // TODO this will be implemented later
+            NiciraSetNshContextHeader niciraNshch = (NiciraSetNshContextHeader) extensionTreatment;
+            return factory.actions().niciraSetNshc4(niciraNshch.nshCh().nshContextHeader());
         }
         if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.NICIRA_MOV_ETH_SRC_TO_DST.type())
                 || type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.NICIRA_MOV_ARP_SPA_TO_TPA.type())