Loading go-apps/meep-rnis/server/rnis.go +43 −5 Original line number Diff line number Diff line Loading @@ -84,13 +84,17 @@ const defaultSupportedQci = 80 type RabInfoData struct { queryErabId int32 queryQci int32 queryCellIds []string queryIpv4Addresses []string rabInfo *RabInfo } type UeData struct { Name string `json:"name"` ErabId int32 `json:"erabId"` Ecgi *Ecgi `json:"ecgi"` Qci int32 `json:"qci"` } type DomainData struct { Loading Loading @@ -219,6 +223,8 @@ func updateUeData(name string, mnc string, mcc string, cellId string, erabIdVali var ueData UeData ueData.Ecgi = &newEcgi ueData.Name = name ueData.Qci = defaultSupportedQci //only supporting one value oldPlmn := new(Plmn) oldPlmnMnc := "" Loading Loading @@ -1628,10 +1634,22 @@ func rabInfoGet(w http.ResponseWriter, r *http.Request) { rabInfoData.queryErabId = -1 } qciStr := q.Get("qci") if qciStr != "" { tmpQci, _ := strconv.Atoi(qciStr) rabInfoData.queryQci = int32(tmpQci) } else { rabInfoData.queryQci = -1 } /*comma separated list cellIdStr := q.Get("cell_id") cellIds := strings.Split(cellIdStr, ",") rabInfoData.queryCellIds = cellIds */ rabInfoData.queryCellIds = q["cell_id"] rabInfoData.queryIpv4Addresses = q["ue_ipv4_address"] //same for all plmnInfo seconds := time.Now().Unix() Loading Loading @@ -1693,6 +1711,11 @@ func populateRabInfo(key string, jsonInfo string, rabInfoData interface{}) error return nil } // Filter using query params if data.queryQci != -1 && ueData.Qci != data.queryQci { return nil } partOfFilter := true for _, cellId := range data.queryCellIds { if cellId != "" { Loading @@ -1707,6 +1730,21 @@ func populateRabInfo(key string, jsonInfo string, rabInfoData interface{}) error return nil } //name of the element is used as the ipv4 address at the moment partOfFilter = true for _, address := range data.queryIpv4Addresses { if address != "" { partOfFilter = false if address == ueData.Name { partOfFilter = true break } } } if !partOfFilter { return nil } var ueInfo RabInfoUeInfo assocId := new(AssociateId) Loading go-apps/meep-rnis/server/rnis_test.go +5 −6 Original line number Diff line number Diff line Loading @@ -1667,13 +1667,16 @@ func TestSbi(t *testing.T) { t.Fatalf("Error running test basic procedure") } ueName := "ue1" appName := "zone1-edge1-iperf" /****************************** * expected values section ******************************/ var expectedUeDataStr [2]string var expectedUeData [2]UeData expectedUeData[INITIAL] = UeData{1, &Ecgi{"2345678", &Plmn{"123", "456"}}} expectedUeData[UPDATED] = UeData{-1, &Ecgi{"", &Plmn{"123", "456"}}} expectedUeData[INITIAL] = UeData{ueName, 1, &Ecgi{"2345678", &Plmn{"123", "456"}}, 80} expectedUeData[UPDATED] = UeData{ueName, -1, &Ecgi{"", &Plmn{"123", "456"}}, 80} var expectedAppEcgiStr [2]string var expectedAppEcgi [2]Ecgi Loading Loading @@ -1711,10 +1714,6 @@ func TestSbi(t *testing.T) { fmt.Println("Set a scenario") initialiseScenario(testScenario) //different tests ueName := "ue1" appName := "zone1-edge1-iperf" jsonEcgiInfo, _ := rc.JSONGetEntry(baseKey+"UE:"+ueName, ".") if string(jsonEcgiInfo) != expectedUeDataStr[INITIAL] { t.Fatalf("Failed to get expected response") Loading Loading
go-apps/meep-rnis/server/rnis.go +43 −5 Original line number Diff line number Diff line Loading @@ -84,13 +84,17 @@ const defaultSupportedQci = 80 type RabInfoData struct { queryErabId int32 queryQci int32 queryCellIds []string queryIpv4Addresses []string rabInfo *RabInfo } type UeData struct { Name string `json:"name"` ErabId int32 `json:"erabId"` Ecgi *Ecgi `json:"ecgi"` Qci int32 `json:"qci"` } type DomainData struct { Loading Loading @@ -219,6 +223,8 @@ func updateUeData(name string, mnc string, mcc string, cellId string, erabIdVali var ueData UeData ueData.Ecgi = &newEcgi ueData.Name = name ueData.Qci = defaultSupportedQci //only supporting one value oldPlmn := new(Plmn) oldPlmnMnc := "" Loading Loading @@ -1628,10 +1634,22 @@ func rabInfoGet(w http.ResponseWriter, r *http.Request) { rabInfoData.queryErabId = -1 } qciStr := q.Get("qci") if qciStr != "" { tmpQci, _ := strconv.Atoi(qciStr) rabInfoData.queryQci = int32(tmpQci) } else { rabInfoData.queryQci = -1 } /*comma separated list cellIdStr := q.Get("cell_id") cellIds := strings.Split(cellIdStr, ",") rabInfoData.queryCellIds = cellIds */ rabInfoData.queryCellIds = q["cell_id"] rabInfoData.queryIpv4Addresses = q["ue_ipv4_address"] //same for all plmnInfo seconds := time.Now().Unix() Loading Loading @@ -1693,6 +1711,11 @@ func populateRabInfo(key string, jsonInfo string, rabInfoData interface{}) error return nil } // Filter using query params if data.queryQci != -1 && ueData.Qci != data.queryQci { return nil } partOfFilter := true for _, cellId := range data.queryCellIds { if cellId != "" { Loading @@ -1707,6 +1730,21 @@ func populateRabInfo(key string, jsonInfo string, rabInfoData interface{}) error return nil } //name of the element is used as the ipv4 address at the moment partOfFilter = true for _, address := range data.queryIpv4Addresses { if address != "" { partOfFilter = false if address == ueData.Name { partOfFilter = true break } } } if !partOfFilter { return nil } var ueInfo RabInfoUeInfo assocId := new(AssociateId) Loading
go-apps/meep-rnis/server/rnis_test.go +5 −6 Original line number Diff line number Diff line Loading @@ -1667,13 +1667,16 @@ func TestSbi(t *testing.T) { t.Fatalf("Error running test basic procedure") } ueName := "ue1" appName := "zone1-edge1-iperf" /****************************** * expected values section ******************************/ var expectedUeDataStr [2]string var expectedUeData [2]UeData expectedUeData[INITIAL] = UeData{1, &Ecgi{"2345678", &Plmn{"123", "456"}}} expectedUeData[UPDATED] = UeData{-1, &Ecgi{"", &Plmn{"123", "456"}}} expectedUeData[INITIAL] = UeData{ueName, 1, &Ecgi{"2345678", &Plmn{"123", "456"}}, 80} expectedUeData[UPDATED] = UeData{ueName, -1, &Ecgi{"", &Plmn{"123", "456"}}, 80} var expectedAppEcgiStr [2]string var expectedAppEcgi [2]Ecgi Loading Loading @@ -1711,10 +1714,6 @@ func TestSbi(t *testing.T) { fmt.Println("Set a scenario") initialiseScenario(testScenario) //different tests ueName := "ue1" appName := "zone1-edge1-iperf" jsonEcgiInfo, _ := rc.JSONGetEntry(baseKey+"UE:"+ueName, ".") if string(jsonEcgiInfo) != expectedUeDataStr[INITIAL] { t.Fatalf("Failed to get expected response") Loading