diff --git a/VERSION b/VERSION
index e8e277f..04c5555 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.1.16
+0.1.17
diff --git a/voltha-go-controller/nbi/rest.go b/voltha-go-controller/nbi/rest.go
index 966f69a..6a9be34 100644
--- a/voltha-go-controller/nbi/rest.go
+++ b/voltha-go-controller/nbi/rest.go
@@ -87,6 +87,7 @@
 	NetConfigPath                     string = "/network-configurations"
 	DeviceConfigPath                  string = "/olt/{serialNumber}"
 	FlowProvisionStatus               string = "/flow-status/{portName}"
+	Uplinkpath                        string = "/uplink/{deviceId}"
 )
 
 // RestStart to execute for API
@@ -133,6 +134,7 @@
 	mu.HandleFunc(BasePath+NetConfigPath, prometheusMiddleware((&NetConfigHandle{}).NetConfigServeHTTP))
 	mu.HandleFunc(BasePath+DeviceConfigPath, prometheusMiddleware((&onosnbi.DeviceConfigHandle{}).ServeHTTP))
 	mu.HandleFunc(BasePath+FlowProvisionStatus, prometheusMiddleware((&SubscriberHandle{}).StatusServeHTTP))
+	mu.HandleFunc(BasePath+Uplinkpath, (&onosnbi.UpdateUplinkDeviceConfigHandle{}).ServeHTTP)
 
 	err := http.ListenAndServe(":8181", mu)
 	if p != nil {
diff --git a/voltha-go-controller/onos_nbi/deviceconfig.go b/voltha-go-controller/onos_nbi/deviceconfig.go
index 949b447..afb2afe 100644
--- a/voltha-go-controller/onos_nbi/deviceconfig.go
+++ b/voltha-go-controller/onos_nbi/deviceconfig.go
@@ -38,6 +38,9 @@
 type DeviceConfigHandle struct {
 }
 
+type UpdateUplinkDeviceConfigHandle struct {
+}
+
 // ServeHTTP to serve HTTP requests
 func (oh *DeviceConfigHandle) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 	logger.Infow(ctx, "Received-northbound-request", log.Fields{"Method": r.Method, "URL": r.URL})
@@ -53,6 +56,19 @@
 	}
 }
 
+// ServeHTTP to serve HTTP requests
+func (oh *UpdateUplinkDeviceConfigHandle) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+	logger.Infow(ctx, "Received-northbound-request", log.Fields{"Method": r.Method, "URL": r.URL})
+	switch r.Method {
+	case cPost:
+		oh.UpdateDeviceConfig(context.Background(), w, r)
+	default:
+		logger.Warnw(ctx, "Unsupported Method", log.Fields{"Method": r.Method})
+		err := errorCodes.ErrOperationNotSupported
+		http.Error(w, err.Error(), http.StatusBadRequest)
+	}
+}
+
 func (oh *DeviceConfigHandle) AddDeviceConfig(cntx context.Context, w http.ResponseWriter, r *http.Request) {
 	logger.Debug(cntx, "Inside AddDeviceConfig method")
 	// Get the payload to process the request
@@ -104,3 +120,31 @@
 		http.Error(w, err.Error(), http.StatusBadRequest)
 	}
 }
+
+func (oh *UpdateUplinkDeviceConfigHandle) UpdateDeviceConfig(cntx context.Context, w http.ResponseWriter, r *http.Request) {
+	logger.Debug(cntx, "Inside UpdateDeviceConfig method")
+	// Get the payload to process the request
+	d := new(bytes.Buffer)
+	if _, err := d.ReadFrom(r.Body); err != nil {
+		logger.Errorw(ctx, "Error reading buffer", log.Fields{"Reason": err.Error()})
+		http.Error(w, err.Error(), http.StatusConflict)
+		return
+	}
+	// Unmarshal the request into device configuration structure
+	req := &app.DeviceConfig{}
+	if err := json.Unmarshal(d.Bytes(), req); err != nil {
+		logger.Errorw(ctx, "Unmarshal Failed", log.Fields{"Reason": err.Error()})
+		http.Error(w, err.Error(), http.StatusConflict)
+		return
+	}
+	if len(req.NniPorts) == 0 {
+		logger.Errorw(ctx, "No NNI ports to update", log.Fields{"Req": req})
+		err := errorCodes.ErrInvalidParamInRequest
+		http.Error(w, err.Error(), http.StatusBadRequest)
+		return
+	}
+	devConfig := app.GetApplication().GetDeviceConfig(req.SerialNumber)
+	devConfig.NniPorts = req.NniPorts
+	app.GetApplication().UpdateDeviceConfig(cntx, devConfig)
+	logger.Infow(ctx, "updated Device Config ", log.Fields{"Req": req})
+}
