From c9a607db8f2dd0b745d30e55c95ef12af9a7bb54 Mon Sep 17 00:00:00 2001 From: Abdulwahid W Date: Thu, 13 Oct 2022 14:50:20 +0000 Subject: [PATCH] fixed issue in meid table if same meid is associated with different E2T Signed-off-by: Abdulwahid W Change-Id: Ie8c4cdbd0a67bfd77fdd40c0d2cfccea8e788aaf --- RELNOTES | 3 +++ container-tag.yaml | 2 +- pkg/rpe/rmr.go | 42 ++++++++++++++++++++++-------------------- pkg/rpe/types.go | 6 +++--- 4 files changed, 29 insertions(+), 24 deletions(-) diff --git a/RELNOTES b/RELNOTES index d68b57f..15d9ecf 100644 --- a/RELNOTES +++ b/RELNOTES @@ -1,3 +1,6 @@ +### v0.9.2 +* fixed issue in meid table if same meid is associated with different E2T + ### v0.8.2 * Added some checks for E2tcreate handling and RMR update to v4.8.0 diff --git a/container-tag.yaml b/container-tag.yaml index 2479949..7898fd5 100644 --- a/container-tag.yaml +++ b/container-tag.yaml @@ -2,4 +2,4 @@ # By default this file is in the docker build directory, # but the location can configured in the JJB template. --- -tag: 0.9.1 +tag: 0.9.2 diff --git a/pkg/rpe/rmr.go b/pkg/rpe/rmr.go index 5447693..87c0e2b 100644 --- a/pkg/rpe/rmr.go +++ b/pkg/rpe/rmr.go @@ -96,32 +96,34 @@ func (r *Rmr) generateRMRPolicies(eps rtmgr.Endpoints, rcs *rtmgr.RicComponents, count := 0 rawrt = append(rawrt, key+"meid_map|start\n") - keys := make(map[string]RouteIndex) + + keys := make(map[string]MeidEntry) + MEID := "" + E2TIP := "" + RECTYP := "" for _, value := range rcs.MeidMap { - if _, v := keys[key+value+"\n"]; !v { - rawrt = append(rawrt, key+value+"\n") - appendedindex := uint16(len(rawrt) - 1) - keys[key+value+"\n"] = RouteIndex{true, appendedindex} - count++ - } if strings.Contains(value, "mme_ar") { tmpstr := strings.Split(value, "|") - //MEID entry for mme_ar must always contain 3 strings speartred by | i.e "mme_ar||" - MEID := strings.TrimSuffix(tmpstr[2], "\n") - - mapindex := "mme_del|" + MEID + "\n" - i := keys[mapindex].index - if keys[mapindex].flag { - //copy(rawrt[i:], rawrt[i+1:]) - //rawrt[len(rawrt)-1] = "" - //rawrt = rawrt[:len(rawrt)-1] - rawrt[i] = "" - delete(keys, mapindex) - count-- - } + MEID = strings.TrimSuffix(tmpstr[2], "\n") + E2TIP = strings.TrimSuffix(tmpstr[1], "\n") + RECTYP = "mme_ar" + } else if strings.Contains(value, "mme_del") { + tmpstr := strings.Split(value, "|") + MEID = strings.TrimSuffix(tmpstr[1], "\n") + E2TIP = "" + RECTYP = "mme_del" } + keys[MEID] = MeidEntry{RECTYP, E2TIP} } + + for k, v := range keys { + if v.recordtype == "mme_ar" { + rawrt = append(rawrt, key+v.recordtype+"|"+v.e2tip+"|"+k+"\n") + count++ + } + } + rawrt = removeEmptyStrings(rawrt) rawrt = append(rawrt, key+"meid_map|end|"+strconv.Itoa(count)+"\n") diff --git a/pkg/rpe/types.go b/pkg/rpe/types.go index 95cdf01..b7e1742 100644 --- a/pkg/rpe/types.go +++ b/pkg/rpe/types.go @@ -51,7 +51,7 @@ type Engine interface { GeneratePartialPolicies(eps rtmgr.Endpoints, xappSubData *models.XappSubscriptionData, updatetype rtmgr.RMRUpdateType) *[]string } -type RouteIndex struct { - flag bool - index uint16 +type MeidEntry struct { + recordtype string + e2tip string } -- 2.16.6