diff --git a/internal/pkg/application/application.go b/internal/pkg/application/application.go
index 85f06be..6fd69b7 100644
--- a/internal/pkg/application/application.go
+++ b/internal/pkg/application/application.go
@@ -1361,23 +1361,6 @@
 		return
 	}
 
-	vpvList := vpvs.([]*VoltPortVnet)
-	if vpvList[0].PonPort != 0xFF && vpvList[0].PonPort != p.PonPort {
-		logger.Errorw(ctx, "UNI port discovered on wrong PON Port. Dropping Port Indication", log.Fields{"Device": device, "Port": port, "DetectedPon": p.PonPort, "ExpectedPon": vpvList[0].PonPort})
-
-		// Remove the flow (if any) which are already installed - Valid for PON switching when VGC pod is DOWN
-		for _, vpv := range vpvs.([]*VoltPortVnet) {
-			vpv.VpvLock.Lock()
-			logger.Warnw(ctx, "Removing existing VPVs/Services flows for for Subscriber: UNI Detected on wrong PON", log.Fields{"Port": vpv.Port, "Vnet": vpv.VnetName})
-			vpv.PortDownInd(cntx, device, port, false)
-			if vpv.IgmpEnabled {
-				va.ReceiverDownInd(cntx, device, port)
-			}
-			vpv.VpvLock.Unlock()
-		}
-		return
-	}
-
 	for _, vpv := range vpvs.([]*VoltPortVnet) {
 		vpv.VpvLock.Lock()
 		// If no service is activated drop the portUpInd
diff --git a/internal/pkg/application/vnets.go b/internal/pkg/application/vnets.go
index c8e51d4..09613c9 100644
--- a/internal/pkg/application/vnets.go
+++ b/internal/pkg/application/vnets.go
@@ -727,11 +727,6 @@
 		return
 	}
 
-	if vpv.PonPort != 0xFF && vpv.PonPort != vp.PonPort {
-		logger.Errorw(ctx, "UNI port discovered on wrong PON Port. Dropping Flow Configuration for VPV", log.Fields{"Device": d.Name, "Port": vpv.Port, "DetectedPon": vp.PonPort, "ExpectedPon": vpv.PonPort, "Vnet": vpv.VnetName})
-		return
-	}
-
 	//Disable the flag so that flows can be pushed again
 	// vpv.IgmpFlowsApplied = false
 	// vpv.DsFlowsApplied = false
@@ -2237,13 +2232,9 @@
 		vpv.setDevice(d.Name)
 		p := d.GetPort(port)
 		if p != nil {
-			if vs.PonPort != 0xFF && vs.PonPort != p.PonPort {
-				logger.Errorw(ctx, "UNI port discovered on wrong PON Port. Dropping Flow Push for VPV", log.Fields{"Device": d.Name, "Port": port, "DetectedPon": p.PonPort, "ExpectedPon": vs.PonPort, "Vnet": vpv.VnetName})
-			} else {
-				logger.Infow(ctx, "Checking UNI port state", log.Fields{"State": p.State})
-				if d.State == controller.DeviceStateUP && p.State == PortStateUp {
-					vpv.PortUpInd(cntx, d, port)
-				}
+			logger.Infow(ctx, "Checking UNI port state", log.Fields{"State": p.State})
+			if d.State == controller.DeviceStateUP && p.State == PortStateUp {
+				vpv.PortUpInd(cntx, d, port)
 			}
 		}
 	}
diff --git a/voltha-go-controller/nbi/bwprofile.go b/voltha-go-controller/nbi/bwprofile.go
index 3e13453..95e0744 100644
--- a/voltha-go-controller/nbi/bwprofile.go
+++ b/voltha-go-controller/nbi/bwprofile.go
@@ -35,15 +35,15 @@
 
 //BWProfile - Sadis BW Profile
 type BWProfile struct {
-	ID                        string `json:"id,omitempty"`
-	PeakInformationRate       uint32 `json:"pir,omitempty"`
-	PeakBurstSize             uint32 `json:"pbs,omitempty"`
-	CommittedInformationRate  uint32 `json:"cir,omitempty"`
-	CommittedBurstSize        uint32 `json:"cbs,omitempty"`
-	ExceededInformationRate   uint32 `json:"eir,omitempty"`
-	ExceededBurstSize         uint32 `json:"ebs,omitempty"`
-	AssuredInformationRate    uint32 `json:"air,omitempty"`
-	GuaranteedInformationRate uint32 `json:"gir,omitempty"`
+	ID                        string `json:"id"`
+	PeakInformationRate       uint32 `json:"pir"`
+	PeakBurstSize             uint32 `json:"pbs"`
+	CommittedInformationRate  uint32 `json:"cir"`
+	CommittedBurstSize        uint32 `json:"cbs"`
+	ExceededInformationRate   uint32 `json:"eir"`
+	ExceededBurstSize         uint32 `json:"ebs"`
+	AssuredInformationRate    uint32 `json:"air"`
+	GuaranteedInformationRate uint32 `json:"gir"`
 }
 
 // ProfileDelReq structure
