[VOL-5534] Processing of the NNI trap flows fails sometimes leading to failure of IP Address Assignment for FTTB .
Change-Id: I1bce7f2ae62721a80242077b68e29de11bf94387
Signed-off-by: pnalmas <praneeth.nalmas@radisys.com>
diff --git a/rw_core/core/device/logical_agent_route.go b/rw_core/core/device/logical_agent_route.go
index c1172d0..eeae4b0 100644
--- a/rw_core/core/device/logical_agent_route.go
+++ b/rw_core/core/device/logical_agent_route.go
@@ -48,7 +48,7 @@
}
// Return a 'half' route to make the flow decomposer logic happy
- routes, err := agent.deviceRoutes.GetHalfRoute(true, 0, 0)
+ routes, err := agent.deviceRoutes.GetHalfRoute(false, ingressPortNo, 0)
if err != nil {
return nil, fmt.Errorf("no upstream route from:%d to:%d :%w", ingressPortNo, egressPortNo, route.ErrNoRoute)
}
diff --git a/rw_core/flowdecomposition/flow_decomposer.go b/rw_core/flowdecomposition/flow_decomposer.go
index 58fcb83..6d33a14 100644
--- a/rw_core/flowdecomposition/flow_decomposer.go
+++ b/rw_core/flowdecomposition/flow_decomposer.go
@@ -126,7 +126,7 @@
fa := &fu.FlowArgs{
KV: fu.OfpFlowModArgs{"priority": uint64(flow.Priority), "cookie": flow.Cookie},
MatchFields: []*ofp.OfpOxmOfbField{
- fu.InPort(egressHop.Egress),
+ fu.InPort(ingressHop.Ingress),
},
Actions: fu.GetActions(flow),
}
@@ -138,7 +138,7 @@
return nil, err
}
fg.AddFlow(fs)
- deviceRules.AddFlowsAndGroup(egressHop.DeviceID, fg)
+ deviceRules.AddFlowsAndGroup(ingressHop.DeviceID, fg)
} else {
// Trap flow for UNI port
logger.Debug(ctx, "trap-uni")