[VOL-5488] fetch nni-port ID from voltdevice
Change-Id: I12a81dbb4e45cb4728f49d1d6324afc1ed6260b1
Signed-off-by: Akash Reddy Kankanala <akash.kankanala@radisys.com>
diff --git a/VERSION b/VERSION
index 1a03094..9767cc9 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.1.9
+0.1.10
diff --git a/internal/pkg/application/application.go b/internal/pkg/application/application.go
index e8bc663..cc5e331 100644
--- a/internal/pkg/application/application.go
+++ b/internal/pkg/application/application.go
@@ -1168,7 +1168,7 @@
}
if len(d.(*VoltDevice).NniPort) > 0 {
for _, nniPort := range d.(*VoltDevice).NniPort {
- nniPortID, err := GetApplication().GetPortID(nniPort)
+ nniPortID, err := GetApplication().GetDevicePortID(device, nniPort)
if err != nil {
logger.Errorw(ctx, "Error getting port ID by port Name", log.Fields{"Error": err})
continue
@@ -2349,3 +2349,16 @@
va.DevicesDisc.Store(id, device)
}
}
+
+func (va *VoltApplication) GetDevicePortID(device, port string) (uint32, error) {
+ logger.Debugw(ctx, "Received Get Device Port ID", log.Fields{"Port": port})
+ d := va.GetDevice(device)
+ if d == nil {
+ return 0, fmt.Errorf("device not found: %s", device)
+ }
+ value, ok := d.Ports.Load(port)
+ if !ok {
+ return 0, fmt.Errorf("port not found: %s", port)
+ }
+ return value.(*VoltPort).ID, nil
+}
diff --git a/internal/pkg/application/igmpprofiles.go b/internal/pkg/application/igmpprofiles.go
index f26e33b..673dacc 100644
--- a/internal/pkg/application/igmpprofiles.go
+++ b/internal/pkg/application/igmpprofiles.go
@@ -565,7 +565,7 @@
if err != nil {
return nil, err
}
- nniPortID, err1 := GetApplication().GetPortID(nniPort)
+ nniPortID, err1 := GetApplication().GetDevicePortID(device, nniPort)
if err1 != nil {
return nil, errors.New("Unknown NNI outport")
}
diff --git a/internal/pkg/application/service.go b/internal/pkg/application/service.go
index b36cb8f..bb2966f 100644
--- a/internal/pkg/application/service.go
+++ b/internal/pkg/application/service.go
@@ -593,7 +593,7 @@
logger.Errorw(ctx, "Error getting NNI port", log.Fields{"Error": err1})
return nil, err1
}
- inport, _ = GetApplication().GetPortID(nniPort)
+ inport, _ = GetApplication().GetDevicePortID(device.Name, nniPort)
}
outport, _ := GetApplication().GetPortID(vs.Port)
// PortName and PortID to be used for validation of port before flow pushing
@@ -791,7 +791,7 @@
logger.Errorw(ctx, "Error getting NNI port", log.Fields{"Error": err})
return nil, err
}
- outport, _ = GetApplication().GetPortID(nniPort)
+ outport, _ = GetApplication().GetDevicePortID(device.Name, nniPort)
}
inport, _ := GetApplication().GetPortID(vs.Port)
// PortName and PortID to be used for validation of port before flow pushing
diff --git a/internal/pkg/application/vnets.go b/internal/pkg/application/vnets.go
index 8a23636..e4f96be 100644
--- a/internal/pkg/application/vnets.go
+++ b/internal/pkg/application/vnets.go
@@ -1953,7 +1953,7 @@
logger.Errorw(ctx, "Error getting NNI port", log.Fields{"Error": err})
return nil, err
}
- inport, _ = GetApplication().GetPortID(nniPort)
+ inport, _ = GetApplication().GetDevicePortID(device.Name, nniPort)
}
subFlow.SetInPort(inport)
@@ -2051,7 +2051,7 @@
logger.Errorw(ctx, "Failed to fetch nni port from vpv", log.Fields{"error": err, "device": vpv.Device})
return nil, err
}
- nniport, err := GetApplication().GetPortID(nni)
+ nniport, err := GetApplication().GetDevicePortID(vpv.Device, nni)
if err != nil {
logger.Errorw(ctx, "Failed to fetch port ID for nni", log.Fields{"error": err, "nni": nni})
return nil, err
@@ -2212,7 +2212,7 @@
if err != nil {
return nil, err
}
- nniport, err := GetApplication().GetPortID(nni)
+ nniport, err := GetApplication().GetDevicePortID(vpv.Device, nni)
if err != nil {
return nil, err
}
@@ -2717,7 +2717,7 @@
logger.Errorw(ctx, "Error getting NNI port", log.Fields{"Error": err})
return true
}
- if portID, err := va.GetPortID(nniPort); err == nil {
+ if portID, err := va.GetDevicePortID(device.Name, nniPort); err == nil {
if state, _ := controller.GetController().GetPortState(device.Name, nniPort); state != controller.PortStateUp {
logger.Warnw(ctx, "Skipping Dev Flow Configuration - Port Down", log.Fields{"Device": device})
return true
@@ -2777,7 +2777,7 @@
logger.Errorw(ctx, "Error getting NNI port", log.Fields{"Error": err})
return true
}
- nniPortID, err := va.GetPortID(nniPort)
+ nniPortID, err := va.GetDevicePortID(device.Name, nniPort)
if err != nil {
logger.Errorw(ctx, "Push ICMPv6 Failed - Failed to get NNI Port Id", log.Fields{"Port": device.NniPort, "Reason": err.Error})
}
@@ -2829,7 +2829,7 @@
logger.Errorw(ctx, "Error getting NNI port", log.Fields{"Error": err})
return true
}
- if portID, err := va.GetPortID(nniPort); err == nil {
+ if portID, err := va.GetDevicePortID(device.Name, nniPort); err == nil {
if state, _ := controller.GetController().GetPortState(device.Name, nniPort); state != controller.PortStateUp {
logger.Warnw(ctx, "Skipping ICMPv6 Flow Deletion - Port Down", log.Fields{"Device": device})
return true
@@ -2883,7 +2883,7 @@
logger.Errorw(ctx, "Error getting NNI port", log.Fields{"Error": err})
return true
}
- nniPortID, err := va.GetPortID(nniPort)
+ nniPortID, err := va.GetDevicePortID(device.Name, nniPort)
if err != nil {
logger.Errorw(ctx, "Delete ICMPv6 Failed - Failed to get NNI Port Id", log.Fields{"Port": device.NniPort, "Reason": err.Error})
}
@@ -2950,7 +2950,7 @@
logger.Errorw(ctx, "Error getting NNI port", log.Fields{"Error": err})
return true
}
- if portID, err := va.GetPortID(nniPort); err == nil {
+ if portID, err := va.GetDevicePortID(device.Name, nniPort); err == nil {
if state, _ := controller.GetController().GetPortState(device.Name, nniPort); state != controller.PortStateUp {
logger.Warnw(ctx, "Skipping ICMPv6 Flow Deletion - Port Down", log.Fields{"Device": device})
return false
diff --git a/internal/pkg/application/vnets_test.go b/internal/pkg/application/vnets_test.go
index 7016667..9fa1e3f 100644
--- a/internal/pkg/application/vnets_test.go
+++ b/internal/pkg/application/vnets_test.go
@@ -2125,6 +2125,7 @@
assert.NotNil(t, got)
case "BuildDsDhcp6Flows":
voltDev.NniPort = []string{"16777216"}
+ voltDev.Ports.Store("16777216", voltPort)
va.DevicesDisc.Store("SDX6320031", voltDev)
va.DevicesConfig.Store("SDX6320031", deviceConfig)
got, err := vpv.BuildDsDhcp6Flows()