From: is005q Date: Thu, 15 Aug 2019 13:07:00 +0000 (+0300) Subject: [RICPLT-1739] Add Unit Tests for Load Information X-Git-Tag: 2.0.10~42 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;ds=sidebyside;h=8720fbfe6c21a347b3378f517a214068b4876c30;p=ric-plt%2Fe2mgr.git [RICPLT-1739] Add Unit Tests for Load Information Change-Id: I698c945ed869cb9f6dc5168295117783bfe4b4bd Signed-off-by: is005q --- diff --git a/.gitignore b/.gitignore index 65ab8c6..6b78c35 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,4 @@ *.a E2Manager/asn1codec/e2ap_engine/converter-example E2Manager/asn1codec/tests/ - +E2Manager/cp.out diff --git a/E2Manager/asn1codec/Makefile b/E2Manager/asn1codec/Makefile index 59c304b..97596ce 100644 --- a/E2Manager/asn1codec/Makefile +++ b/E2Manager/asn1codec/Makefile @@ -24,12 +24,11 @@ LIBOBJ=$(addprefix $(OBJDIR)/,$(LIBSRC:.c=.o)) TESTX2SETUPREQUEST=tests/x2setup_request_wrapper_test TESTCONFUPDATE=tests/configuration_update_wrapper_test TESTX2RESETREQUEST=tests/x2reset_request_wrapper_test - +TESTUNPACKXER=tests/unpack_xer .PHONY: all clean e2ap_engine -all: $(LIB) $(TESTX2SETUPREQUEST) $(TESTCONFUPDATE) $(TESTX2RESETREQUEST) - +all: $(LIB) $(TESTX2SETUPREQUEST) $(TESTCONFUPDATE) $(TESTX2RESETREQUEST) $(TESTUNPACKXER) e2ap_engine/libasncodec.a: cd e2ap_engine/ && make -f converter-example.mk @@ -49,11 +48,13 @@ $(TESTCONFUPDATE): % : $(LIB) src/%.c mkdir -p $(dir $@) $(CC) $(CFLAGS) src/$@.c -o $@ $(LIB) e2ap_engine/libasncodec.a -$(TESTX2RESETREQUEST): % : $(LIB) src/%.c +$(TESTX2RESETREQUEST): % : $(LIB) src/%.c mkdir -p $(dir $@) $(CC) $(CFLAGS) src/$@.c -o $@ $(LIB) e2ap_engine/libasncodec.a - +$(TESTUNPACKXER): % : $(LIB) src/%.c + mkdir -p $(dir $@) + $(CC) $(CFLAGS) src/$@.c -o $@ $(LIB) e2ap_engine/libasncodec.a clean: rm -rf $(OBJDIR) tests diff --git a/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_base.xml b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_base.xml new file mode 100644 index 0000000..0445498 --- /dev/null +++ b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_base.xml @@ -0,0 +1,34 @@ + + + 2 + + + + + + 6 + + + + + 7 + + + + + 02 F8 29 + + 0000000000000111101010110101 + + + + + + + + + + + + + diff --git a/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc001.xml b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc001.xml new file mode 100644 index 0000000..8bff01e --- /dev/null +++ b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc001.xml @@ -0,0 +1,37 @@ + + + 2 + + + + + + 6 + + + + + 7 + + + + + 02 F8 29 + + 0000000000000111101010110101 + + + + + + + + + + + + + + + + diff --git a/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc002.xml b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc002.xml new file mode 100644 index 0000000..6d9672b --- /dev/null +++ b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc002.xml @@ -0,0 +1,50 @@ + + + 2 + + + + + + 6 + + + + + 7 + + + + + 02 F8 29 + + 0000000000000111101010110101 + + + + + + + + + 02 F8 30 + + 0000000000000111101010110101 + + + + 1010101010101010 + + + + + + + + + + + + + + diff --git a/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc003.xml b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc003.xml new file mode 100644 index 0000000..5b8aacc --- /dev/null +++ b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc003.xml @@ -0,0 +1,50 @@ + + + 2 + + + + + + 6 + + + + + 7 + + + + + 02 F8 29 + + 0000000000000111101010110101 + + + + + + + + 11001100 + + + + + + + + 2 + 1 + + + + + + + + + + + + diff --git a/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc004.xml b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc004.xml new file mode 100644 index 0000000..abb66c0 --- /dev/null +++ b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc004.xml @@ -0,0 +1,85 @@ + + + 2 + + + + + + 6 + + + + + 7 + + + + + 02 F8 29 + + 0000000000000111101010110101 + + + + + + + + + 02 F8 30 + + 0000000000000111101010110101 + + + + 1010101010101010 + + + + + + + 11001100 + + + + + + + + 2 + 1 + + + + 61 + + + + + + 0000011111000001111100000111110000011111 + + + + + + 1000001111100000111110000011110000001111 + + + + + + + + + + + + + + + + + diff --git a/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc005.xml b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc005.xml new file mode 100644 index 0000000..c3bafeb --- /dev/null +++ b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc005.xml @@ -0,0 +1,94 @@ + + + 2 + + + + + + 6 + + + + + 7 + + + + + 02 F8 29 + + 0000000000000111101010110101 + + + + + + + + + 02 F8 30 + + 0000000000000111101010110101 + + + + 1010101010101010 + + + + + + + 11001100 + + + + + + + + 2 + 1 + + + + 61 + + + + + + 0000011111000001111100000111110000011111 + + + + + + 1000001111100000111110000011110000001111 + + + + + + + 62 + + + + + + + + + + + + + + + + + + + diff --git a/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc006.xml b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc006.xml new file mode 100644 index 0000000..9bf926a --- /dev/null +++ b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc006.xml @@ -0,0 +1,103 @@ + + + 2 + + + + + + 6 + + + + + 7 + + + + + 02 F8 29 + + 0000000000000111101010110101 + + + + + + + + + 02 F8 30 + + 0000000000000111101010110101 + + + + 1010101010101010 + + + + + + + 11001100 + + + + + + + + 2 + 1 + + + + 61 + + + + + + 0000011111000001111100000111110000011111 + + + + + + 1000001111100000111110000011110000001111 + + + + + + + 62 + + + + + + + + + 99 + + + + + + + + + + + + + + + + + + + diff --git a/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc007.xml b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc007.xml new file mode 100644 index 0000000..331ba0d --- /dev/null +++ b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc007.xml @@ -0,0 +1,117 @@ + + + 2 + + + + + + 6 + + + + + 7 + + + + + 02 F8 29 + + 0000000000000111101010110101 + + + + + + + + + 02 F8 30 + + 0000000000000111101010110101 + + + + 1010101010101010 + + + + + + + 11001100 + + + + + + + + 2 + 1 + + + + 61 + + + + + + 0000011111000001111100000111110000011111 + + + + + + 1000001111100000111110000011110000001111 + + + + + + + 62 + + + + + + + + + 99 + + + + + + + + + 100 + + + + + 11001 + + + + + + + + + + + + + + + + + + + diff --git a/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc008.xml b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc008.xml new file mode 100644 index 0000000..da099a4 --- /dev/null +++ b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc008.xml @@ -0,0 +1,173 @@ + + + 2 + + + + + + 6 + + + + + 7 + + + + + 02 F8 29 + + 0000000000000111101010110101 + + + + + + + + + 02 F8 30 + + 0000000000000111101010110101 + + + + 1010101010101010 + + + + + + + 11001100 + + + + + + + + 2 + 1 + + + + 61 + + + + + + 0000011111000001111100000111110000011111 + + + + + + 1000001111100000111110000011110000001111 + + + + + + + 62 + + + + + + + + + 99 + + + + + + + + + 100 + + + + + 11001 + + + + + + + + + 108 + + + + + + + + + 02 F8 31 + + 0000000000000111101010110101 + + + + 1110000000000111101010110101 + + + + + -99 + + + + + + + 02 F8 32 + + 0000000001100111101010110101 + + + + 1110001100000111101010110101 + + + + + 30 + + + + + + + 50 + + + 3 + + + + + + + + + + + + + + + + + + diff --git a/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc009.xml b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc009.xml new file mode 100644 index 0000000..72ce0d0 --- /dev/null +++ b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc009.xml @@ -0,0 +1,136 @@ + + + 2 + + + + + + 6 + + + + + 7 + + + + + 02 F8 29 + + 0000000000000111101010110101 + + + + + + + + + 02 F8 30 + + 0000000000000111101010110101 + + + + 1010101010101010 + + + + + + + 11001100 + + + + + + + + 2 + 1 + + + + 61 + + + + + + 0000011111000001111100000111110000011111 + + + + + + 1000001111100000111110000011110000001111 + + + + + + + 62 + + + + + + + + + 99 + + + + + + + + + 100 + + + + + 11001 + + + + + + + + + 106 + + + + + + 11001101 + + + 0 + + + + + + + + + + + + + + + + + + + + diff --git a/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc010.xml b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc010.xml new file mode 100644 index 0000000..38135e3 --- /dev/null +++ b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc010.xml @@ -0,0 +1,192 @@ + + + 2 + + + + + + 6 + + + + + 7 + + + + + 02 F8 29 + + 0000000000000111101010110101 + + + + + + + + + 02 F8 30 + + 0000000000000111101010110101 + + + + 1010101010101010 + + + + + + + 11001100 + + + + + + + + 2 + 1 + + + + 61 + + + + + + 0000011111000001111100000111110000011111 + + + + + + 1000001111100000111110000011110000001111 + + + + + + + 62 + + + + + + + + + 99 + + + + + + + + + 100 + + + + + 11001 + + + + + + + + + 106 + + + + + + 11001101 + + + 0 + + + + + + + + + + 108 + + + + + + + + + 02 F8 31 + + 0000000000000111101010110101 + + + + 1110000000000111101010110101 + + + + + -99 + + + + + + + 02 F8 32 + + 0000000001100111101010110101 + + + + 1110001100000111101010110101 + + + + + 30 + + + + + + + 50 + + + 3 + + + + + + + + + + + + + + + + + + diff --git a/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc011.xml b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc011.xml new file mode 100644 index 0000000..4c3f98a --- /dev/null +++ b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc011.xml @@ -0,0 +1,364 @@ + + + 2 + + + + + + 6 + + + + + 7 + + + + + 02 F8 29 + + 0000000000000111101010110101 + + + + + + + + + 02 F8 30 + + 0000000000000111101010110101 + + + + 1010101010101010 + + + + + + + 11001100 + + + + + + + + 2 + 1 + + + + 61 + + + + + + 0000011111000001111100000111110000011111 + + + + + + 1000001111100000111110000011110000001111 + + + + + + + 62 + + + + + + + + + 99 + + + + + + + + + 100 + + + + + 11001 + + + + + + + + + 106 + + + + + + 11001101 + + + 0 + + + + + + + + + + 108 + + + + + + + + + 02 F8 31 + + 0000000000000111101010110101 + + + + 1110000000000111101010110101 + + + + + -99 + + + + + + + 02 F8 32 + + 0000000001100111101010110101 + + + + 1110001100000111101010110101 + + + + + 30 + + + + + + + 50 + + + 3 + + + + + + + + + + + + 7 + + + + + 02 F9 10 + + 0000000000000111101010110101 + + + + + + + + + 02 F8 10 + + 0000000000000111101010110101 + + + + 1010101010101010 + + + + + + + 11001100 + + + + + + + + 2 + 1 + + + + 61 + + + + + + 0000011111000001111100000111110000011111 + + + + + + 1000001111100000111110000011110000001111 + + + + + + + 62 + + + + + + + + + 99 + + + + + + + + + 100 + + + + + 11001 + + + + + + + + + 106 + + + + + + 11001101 + + + 0 + + + + + + + + + + 108 + + + + + + + + + 02 F8 11 + + 0000000000000111101010110101 + + + + 1110000000000111101010110101 + + + + + -99 + + + + + + + 02 F8 12 + + 0000000001100111101010110101 + + + + 1110001100000111101010110101 + + + + + 30 + + + + + + + 50 + + + 3 + + + + + + + + + + + + + + + + + + diff --git a/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc012.xml b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc012.xml new file mode 100644 index 0000000..e6f5524 --- /dev/null +++ b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc012.xml @@ -0,0 +1,217 @@ + + + 2 + + + + + + 6 + + + + + 7 + + + + + 02 F8 29 + + 0000000000000111101010110101 + + + + + + + + + 02 F8 30 + + 0000000000000111101010110101 + + + + 1010101010101010 + + + + + + + 11001100 + + + + + + + + 2 + 1 + + + 148 + + + + + 1010101000111 + + + + + + + 51 + + + 9 + + + + + + + + + + + 61 + + + + + + 0000011111000001111100000111110000011111 + + + + + + 1000001111100000111110000011110000001111 + + + + + + + 62 + + + + + + + + + 99 + + + + + + + + + 100 + + + + + 11001 + + + + + + + + + 106 + + + + + + 11001101 + + + 0 + + + + + + + + + + 108 + + + + + + + + + 02 F8 31 + + 0000000000000111101010110101 + + + + 1110000000000111101010110101 + + + + + -99 + + + + + + + 02 F8 32 + + 0000000001100111101010110101 + + + + 1110001100000111101010110101 + + + + + 30 + + + + + + + 50 + + + 3 + + + + + + + + + + + + + + + + + + diff --git a/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc013.xml b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc013.xml new file mode 100644 index 0000000..70ddaaf --- /dev/null +++ b/E2Manager/asn1codec/src/tests/load_information_xer_files/xer_tc013.xml @@ -0,0 +1,388 @@ + + + 2 + + + + + + 6 + + + + + 7 + + + + + 02 F8 29 + + 0000000000000111101010110101 + + + + + + + + + 02 F8 30 + + 0000000000000111101010110101 + + + + 1010101010101010 + + + + + + + 11001100 + + + + + + + + 2 + 1 + + + 148 + + + + + 1010101000111 + + + + + + + 51 + + + 9 + + + + + + + + + + 61 + + + + + + 0000011111000001111100000111110000011111 + + + + + + 1000001111100000111110000011110000001111 + + + + + + + 62 + + + + + + + + + 99 + + + + + + + + + 100 + + + + + 11001 + + + + + + + + + 106 + + + + + + 11001101 + + + 0 + + + + + + + + + + 108 + + + + + + + + + 02 F8 31 + + 0000000000000111101010110101 + + + + 1110000000000111101010110101 + + + + + -99 + + + + + + + 02 F8 32 + + 0000000001100111101010110101 + + + + 1110001100000111101010110101 + + + + + 30 + + + + + + + 50 + + + 3 + + + + + + + + + + + + 7 + + + + + 02 F9 10 + + 0000000000000111101010110101 + + + + + + + + + 02 F8 10 + + 0000000000000111101010110101 + + + + 1010101010101010 + + + + + + + 11001100 + + + + + + + + 2 + 1 + + + + 61 + + + + + + 0000011111000001111100000111110000011111 + + + + + + 1000001111100000111110000011110000001111 + + + + + + + 62 + + + + + + + + + 99 + + + + + + + + + 100 + + + + + 11001 + + + + + + + + + 106 + + + + + + 11001101 + + + 0 + + + + + + + + + + 108 + + + + + + + + + 02 F8 11 + + 0000000000000111101010110101 + + + + 1110000000000111101010110101 + + + + + -99 + + + + + + + 02 F8 12 + + 0000000001100111101010110101 + + + + 1110001100000111101010110101 + + + + + 30 + + + + + + + 50 + + + 3 + + + + + + + + + + + + + + + + + + diff --git a/E2Manager/asn1codec/src/tests/unpack_xer.c b/E2Manager/asn1codec/src/tests/unpack_xer.c new file mode 100644 index 0000000..18d46dd --- /dev/null +++ b/E2Manager/asn1codec/src/tests/unpack_xer.c @@ -0,0 +1,80 @@ +/* + * + * Copyright 2019 AT&T Intellectual Property + * Copyright 2019 Nokia + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +#include +#include +#include +#include +#include + +int +main(int argc, char* argv[]) +{ + char responseErrorBuf[1<< 16]; + uint8_t buf[1 << 16]; + size_t count = fread(buf, 1, sizeof(buf), stdin); + if (count == sizeof(buf)) { + printf("#%s failed. Input is too big\n", __func__); + exit(-1); + } + if (!feof(stdin)){ + printf("#%s failed. Error while reading input: %s\n", __func__, strerror(errno)); + exit(-1); + } + + E2AP_PDU_t *pdu = calloc(1, sizeof(E2AP_PDU_t)); + if (!unpack_pdu_aux(pdu, count, buf ,sizeof(responseErrorBuf), responseErrorBuf,ATS_BASIC_XER)){ + printf("#%s failed. Unpacking error %s\n", __func__, responseErrorBuf); + exit(-1); + } + + responseErrorBuf[0] = 0; + asn1_pdu_printer(pdu, sizeof(responseErrorBuf), responseErrorBuf); + printf("#%s: %s\n", __func__, responseErrorBuf); + + { + size_t per_packed_buf_size; + uint8_t per_packed_buf[1 << 16]; + + responseErrorBuf[0] = 0; + per_packed_buf_size = sizeof(per_packed_buf); + + if (!pack_pdu_aux(pdu,&per_packed_buf_size, per_packed_buf,sizeof(responseErrorBuf), responseErrorBuf, ATS_ALIGNED_BASIC_PER)){ + printf("#%s failed. Packing error %s\n", __func__, responseErrorBuf); + exit(-1); + } + ASN_STRUCT_FREE(asn_DEF_E2AP_PDU, pdu); + printf("#%s packed size:%zu\nPayload:\n", __func__, per_packed_buf_size); + for (size_t i= 0; i < per_packed_buf_size; i++) + printf("%02x",per_packed_buf[i]); + printf("\n"); + + pdu =calloc(1, sizeof(E2AP_PDU_t)); + if (!unpack_pdu_aux(pdu, per_packed_buf_size, per_packed_buf ,sizeof(responseErrorBuf), responseErrorBuf,ATS_ALIGNED_BASIC_PER)){ + printf("#%s failed. Packing error %s\n", __func__, responseErrorBuf); + } + + responseErrorBuf[0] = 0; + asn1_pdu_printer(pdu, sizeof(responseErrorBuf), responseErrorBuf); + ASN_STRUCT_FREE(asn_DEF_E2AP_PDU, pdu); + printf("#%s: %s\n", __func__, responseErrorBuf); + } + exit(0); +} + + diff --git a/E2Manager/cp.out b/E2Manager/cp.out index aa52f57..5194ca7 100644 --- a/E2Manager/cp.out +++ b/E2Manager/cp.out @@ -1,25 +1,4 @@ mode: set -e2mgr/controllers/controller.go:23.107,31.2 2 1 -e2mgr/controllers/controller.go:33.107,36.2 1 1 -e2mgr/controllers/controller.go:40.72,44.20 2 1 -e2mgr/controllers/controller.go:53.2,54.16 2 1 -e2mgr/controllers/controller.go:59.2,61.16 2 1 -e2mgr/controllers/controller.go:66.2,67.110 2 1 -e2mgr/controllers/controller.go:44.20,47.17 2 1 -e2mgr/controllers/controller.go:47.17,50.4 2 1 -e2mgr/controllers/controller.go:54.16,57.3 2 0 -e2mgr/controllers/controller.go:61.16,64.3 2 1 -e2mgr/controllers/controller.go:70.72,72.53 1 1 -e2mgr/controllers/controller.go:77.2,77.12 1 1 -e2mgr/controllers/controller.go:72.53,76.3 2 1 -e2mgr/controllers/controller.go:80.80,85.16 3 1 -e2mgr/controllers/controller.go:105.2,113.16 6 1 -e2mgr/controllers/controller.go:85.16,86.21 1 1 -e2mgr/controllers/controller.go:87.37,90.46 3 1 -e2mgr/controllers/controller.go:91.55,94.43 3 1 -e2mgr/controllers/controller.go:95.47,98.47 3 1 -e2mgr/controllers/controller.go:99.11,102.46 3 1 -e2mgr/controllers/controller.go:113.16,115.3 1 0 e2mgr/controllers/nodeb_controller.go:69.68,78.2 3 1 e2mgr/controllers/nodeb_controller.go:81.52,85.2 3 1 e2mgr/controllers/nodeb_controller.go:87.118,95.16 6 1 @@ -60,6 +39,27 @@ e2mgr/controllers/nodeb_controller.go:247.33,248.70 1 1 e2mgr/controllers/nodeb_controller.go:249.29,250.81 1 1 e2mgr/controllers/nodeb_controller.go:251.31,252.77 1 0 e2mgr/controllers/nodeb_controller.go:253.10,254.81 1 0 +e2mgr/controllers/controller.go:40.107,48.2 2 1 +e2mgr/controllers/controller.go:50.107,53.2 1 1 +e2mgr/controllers/controller.go:57.72,61.20 2 1 +e2mgr/controllers/controller.go:70.2,71.16 2 1 +e2mgr/controllers/controller.go:76.2,78.16 2 1 +e2mgr/controllers/controller.go:83.2,84.110 2 1 +e2mgr/controllers/controller.go:61.20,64.17 2 1 +e2mgr/controllers/controller.go:64.17,67.4 2 1 +e2mgr/controllers/controller.go:71.16,74.3 2 0 +e2mgr/controllers/controller.go:78.16,81.3 2 1 +e2mgr/controllers/controller.go:87.72,89.53 1 1 +e2mgr/controllers/controller.go:94.2,94.12 1 1 +e2mgr/controllers/controller.go:89.53,93.3 2 1 +e2mgr/controllers/controller.go:97.80,102.16 3 1 +e2mgr/controllers/controller.go:122.2,130.16 6 1 +e2mgr/controllers/controller.go:102.16,103.21 1 1 +e2mgr/controllers/controller.go:104.37,107.46 3 1 +e2mgr/controllers/controller.go:108.55,111.43 3 1 +e2mgr/controllers/controller.go:112.47,115.47 3 1 +e2mgr/controllers/controller.go:116.11,119.46 3 1 +e2mgr/controllers/controller.go:130.16,132.3 1 0 e2mgr/logger/logger.go:71.58,72.85 1 1 e2mgr/logger/logger.go:75.2,75.27 1 1 e2mgr/logger/logger.go:72.85,74.3 1 1 @@ -89,83 +89,147 @@ e2mgr/logger/logger.go:148.62,151.2 2 1 e2mgr/logger/logger.go:153.62,173.2 2 1 e2mgr/logger/logger.go:175.92,177.2 1 1 e2mgr/logger/logger.go:179.84,183.2 3 1 -e2mgr/main/http_server.go:40.13,44.16 4 0 -e2mgr/main/http_server.go:48.2,61.59 13 0 -e2mgr/main/http_server.go:44.16,47.3 2 0 -e2mgr/main/http_server.go:65.133,72.2 4 0 -e2mgr/main/http_server.go:74.163,87.58 10 0 -e2mgr/main/http_server.go:87.58,89.3 1 0 -e2mgr/models/notification_response.go:14.86,16.2 1 0 +e2mgr/main/http_server.go:39.13,43.16 4 0 +e2mgr/main/http_server.go:47.2,60.59 13 0 +e2mgr/main/http_server.go:43.16,46.3 2 0 +e2mgr/main/http_server.go:63.163,76.58 10 0 +e2mgr/main/http_server.go:76.58,78.3 1 0 e2mgr/models/e2_request_message.go:33.59,35.2 1 1 e2mgr/models/e2_request_message.go:37.65,39.2 1 1 e2mgr/models/e2_request_message.go:41.128,43.2 1 1 e2mgr/models/e2_request_message.go:45.90,52.2 4 1 -e2mgr/handlers/endc_setup_response_notification_handler.go:34.91,40.16 3 0 -e2mgr/handlers/endc_setup_response_notification_handler.go:44.2,45.8 2 0 -e2mgr/handlers/endc_setup_response_notification_handler.go:40.16,42.3 1 0 -e2mgr/handlers/endc_setup_response_notification_handler.go:45.8,47.17 1 0 -e2mgr/handlers/endc_setup_response_notification_handler.go:72.3,73.44 2 0 -e2mgr/handlers/endc_setup_response_notification_handler.go:47.17,62.87 12 0 -e2mgr/handlers/endc_setup_response_notification_handler.go:62.87,64.5 1 0 -e2mgr/handlers/endc_setup_response_notification_handler.go:64.10,66.30 2 0 -e2mgr/handlers/endc_setup_response_notification_handler.go:66.30,68.6 1 0 -e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:32.94,35.54 2 1 -e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:68.2,68.27 1 1 -e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:35.54,38.124 2 1 -e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:38.124,40.82 2 1 -e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:40.82,43.72 3 1 -e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:43.72,44.38 1 1 -e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:44.38,45.50 1 1 -e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:46.53,49.22 3 1 -e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:52.58,53.135 1 1 -e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:54.70,56.66 2 1 -e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:49.22,51.9 1 0 -e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:56.66,58.9 1 1 -e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:58.14,60.9 1 0 -e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:71.196,73.16 2 1 -e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:77.2,79.50 2 1 -e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:73.16,75.3 1 0 -e2mgr/handlers/x2apSetup_response_notification_handler.go:33.91,38.16 3 0 -e2mgr/handlers/x2apSetup_response_notification_handler.go:42.2,44.8 2 0 -e2mgr/handlers/x2apSetup_response_notification_handler.go:38.16,40.3 1 0 -e2mgr/handlers/x2apSetup_response_notification_handler.go:44.8,45.17 1 0 -e2mgr/handlers/x2apSetup_response_notification_handler.go:69.3,70.44 2 0 -e2mgr/handlers/x2apSetup_response_notification_handler.go:45.17,60.87 12 0 -e2mgr/handlers/x2apSetup_response_notification_handler.go:60.87,62.5 1 0 -e2mgr/handlers/x2apSetup_response_notification_handler.go:62.10,64.30 2 0 -e2mgr/handlers/x2apSetup_response_notification_handler.go:64.30,66.6 1 0 -e2mgr/handlers/delete_all_request_handler.go:41.68,47.2 1 1 -e2mgr/handlers/delete_all_request_handler.go:49.158,52.16 2 1 -e2mgr/handlers/delete_all_request_handler.go:56.2,56.26 1 1 -e2mgr/handlers/delete_all_request_handler.go:61.2,68.16 6 1 -e2mgr/handlers/delete_all_request_handler.go:72.2,72.12 1 1 -e2mgr/handlers/delete_all_request_handler.go:52.16,54.3 1 1 -e2mgr/handlers/delete_all_request_handler.go:56.26,58.3 1 1 -e2mgr/handlers/delete_all_request_handler.go:68.16,70.3 1 0 -e2mgr/handlers/delete_all_request_handler.go:75.116,78.16 2 1 -e2mgr/handlers/delete_all_request_handler.go:83.2,83.30 1 1 -e2mgr/handlers/delete_all_request_handler.go:87.2,87.42 1 1 -e2mgr/handlers/delete_all_request_handler.go:105.2,106.18 2 1 -e2mgr/handlers/delete_all_request_handler.go:78.16,81.3 2 1 -e2mgr/handlers/delete_all_request_handler.go:83.30,85.3 1 1 -e2mgr/handlers/delete_all_request_handler.go:87.42,91.17 2 1 -e2mgr/handlers/delete_all_request_handler.go:97.3,97.20 1 1 -e2mgr/handlers/delete_all_request_handler.go:102.3,102.55 1 1 -e2mgr/handlers/delete_all_request_handler.go:91.17,94.12 2 1 -e2mgr/handlers/delete_all_request_handler.go:97.20,100.12 2 1 -e2mgr/handlers/delete_all_request_handler.go:109.142,112.18 2 1 -e2mgr/handlers/delete_all_request_handler.go:116.2,120.16 3 1 -e2mgr/handlers/delete_all_request_handler.go:126.2,126.27 1 1 -e2mgr/handlers/delete_all_request_handler.go:112.18,114.3 1 1 -e2mgr/handlers/delete_all_request_handler.go:120.16,124.3 2 1 -e2mgr/handlers/delete_all_request_handler.go:126.27,129.3 1 0 -e2mgr/handlers/delete_all_request_handler.go:132.146,134.65 1 1 -e2mgr/handlers/delete_all_request_handler.go:138.2,138.70 1 1 -e2mgr/handlers/delete_all_request_handler.go:143.2,147.16 3 1 -e2mgr/handlers/delete_all_request_handler.go:153.2,153.137 1 1 -e2mgr/handlers/delete_all_request_handler.go:134.65,136.3 1 1 -e2mgr/handlers/delete_all_request_handler.go:138.70,141.3 2 0 -e2mgr/handlers/delete_all_request_handler.go:147.16,151.3 2 1 +e2mgr/models/notification_request.go:30.125,38.2 1 0 +e2mgr/models/notification_response.go:31.86,33.2 1 0 +e2mgr/providers/incoming_request_handler_provider.go:41.79,47.2 1 0 +e2mgr/providers/incoming_request_handler_provider.go:50.91,55.2 1 0 +e2mgr/providers/incoming_request_handler_provider.go:57.121,60.9 2 0 +e2mgr/providers/incoming_request_handler_provider.go:65.2,65.21 1 0 +e2mgr/providers/incoming_request_handler_provider.go:60.9,63.3 2 0 +e2mgr/providers/notification_handler_provider.go:34.160,40.2 1 1 +e2mgr/providers/notification_handler_provider.go:42.164,54.2 1 1 +e2mgr/providers/notification_handler_provider.go:56.123,59.9 2 1 +e2mgr/providers/notification_handler_provider.go:63.2,63.21 1 1 +e2mgr/providers/notification_handler_provider.go:59.9,61.3 1 1 +e2mgr/providers/request_handler_provider.go:32.105,35.2 2 1 +e2mgr/providers/request_handler_provider.go:37.98,42.2 1 1 +e2mgr/providers/request_handler_provider.go:44.120,47.9 2 1 +e2mgr/providers/request_handler_provider.go:53.2,53.21 1 1 +e2mgr/providers/request_handler_provider.go:47.9,51.3 3 1 +e2mgr/rNibWriter/rNibWriter.go:47.43,49.22 1 1 +e2mgr/rNibWriter/rNibWriter.go:49.22,52.4 2 0 +e2mgr/rNibWriter/rNibWriter.go:53.25,55.4 1 0 +e2mgr/rNibWriter/rNibWriter.go:60.86,62.2 1 1 +e2mgr/rNibWriter/rNibWriter.go:66.33,68.2 1 1 +e2mgr/rNibWriter/rNibWriter.go:72.119,76.72 2 1 +e2mgr/rNibWriter/rNibWriter.go:79.2,81.16 3 1 +e2mgr/rNibWriter/rNibWriter.go:84.2,86.19 3 1 +e2mgr/rNibWriter/rNibWriter.go:89.2,91.24 2 1 +e2mgr/rNibWriter/rNibWriter.go:99.2,99.28 1 1 +e2mgr/rNibWriter/rNibWriter.go:105.2,105.28 1 1 +e2mgr/rNibWriter/rNibWriter.go:111.2,112.16 2 1 +e2mgr/rNibWriter/rNibWriter.go:115.2,115.24 1 1 +e2mgr/rNibWriter/rNibWriter.go:125.2,125.12 1 1 +e2mgr/rNibWriter/rNibWriter.go:76.72,78.3 1 1 +e2mgr/rNibWriter/rNibWriter.go:81.16,83.3 1 1 +e2mgr/rNibWriter/rNibWriter.go:86.19,88.3 1 1 +e2mgr/rNibWriter/rNibWriter.go:91.24,93.20 2 1 +e2mgr/rNibWriter/rNibWriter.go:96.3,96.35 1 1 +e2mgr/rNibWriter/rNibWriter.go:93.20,95.4 1 0 +e2mgr/rNibWriter/rNibWriter.go:99.28,101.20 2 1 +e2mgr/rNibWriter/rNibWriter.go:101.20,103.4 1 1 +e2mgr/rNibWriter/rNibWriter.go:105.28,107.20 2 1 +e2mgr/rNibWriter/rNibWriter.go:107.20,109.4 1 1 +e2mgr/rNibWriter/rNibWriter.go:112.16,114.3 1 1 +e2mgr/rNibWriter/rNibWriter.go:115.24,117.17 2 1 +e2mgr/rNibWriter/rNibWriter.go:120.3,121.17 2 1 +e2mgr/rNibWriter/rNibWriter.go:117.17,119.4 1 0 +e2mgr/rNibWriter/rNibWriter.go:121.17,123.4 1 0 +e2mgr/rNibWriter/rNibWriter.go:131.142,137.20 3 1 +e2mgr/rNibWriter/rNibWriter.go:141.2,143.16 2 1 +e2mgr/rNibWriter/rNibWriter.go:147.2,152.16 4 1 +e2mgr/rNibWriter/rNibWriter.go:156.2,156.12 1 1 +e2mgr/rNibWriter/rNibWriter.go:137.20,139.3 1 1 +e2mgr/rNibWriter/rNibWriter.go:143.16,145.3 1 1 +e2mgr/rNibWriter/rNibWriter.go:152.16,154.3 1 1 +e2mgr/rNibWriter/rNibWriter.go:162.13,164.2 1 1 +e2mgr/rNibWriter/rNibWriter.go:166.144,167.29 1 1 +e2mgr/rNibWriter/rNibWriter.go:184.2,184.19 1 1 +e2mgr/rNibWriter/rNibWriter.go:167.29,170.17 3 1 +e2mgr/rNibWriter/rNibWriter.go:173.3,174.20 2 1 +e2mgr/rNibWriter/rNibWriter.go:177.3,179.20 3 1 +e2mgr/rNibWriter/rNibWriter.go:182.3,182.39 1 1 +e2mgr/rNibWriter/rNibWriter.go:170.17,172.4 1 0 +e2mgr/rNibWriter/rNibWriter.go:174.20,176.4 1 1 +e2mgr/rNibWriter/rNibWriter.go:179.20,181.4 1 0 +e2mgr/rNibWriter/rNibWriter.go:187.143,188.29 1 1 +e2mgr/rNibWriter/rNibWriter.go:205.2,205.19 1 1 +e2mgr/rNibWriter/rNibWriter.go:188.29,191.17 3 1 +e2mgr/rNibWriter/rNibWriter.go:194.3,195.20 2 1 +e2mgr/rNibWriter/rNibWriter.go:198.3,200.20 3 1 +e2mgr/rNibWriter/rNibWriter.go:203.3,203.39 1 1 +e2mgr/rNibWriter/rNibWriter.go:191.17,193.4 1 0 +e2mgr/rNibWriter/rNibWriter.go:195.20,197.4 1 1 +e2mgr/rNibWriter/rNibWriter.go:200.20,202.4 1 0 +e2mgr/rNibWriter/rNibWriter.go:208.55,210.2 1 1 +e2mgr/rmrCgo/rmrCgoTypes.go:31.87,39.2 1 1 +e2mgr/rmrCgo/rmrCgoTypes.go:41.96,48.2 1 1 +e2mgr/rmrCgo/rmrCgoTypes.go:119.32,121.2 1 0 +e2mgr/rmrCgo/rmrCgoUtils.go:32.66,48.93 7 0 +e2mgr/rmrCgo/rmrCgoUtils.go:52.2,52.13 1 0 +e2mgr/rmrCgo/rmrCgoUtils.go:48.93,50.3 1 0 +e2mgr/rmrCgo/rmrCgoUtils.go:55.115,68.50 9 0 +e2mgr/rmrCgo/rmrCgoUtils.go:73.2,74.51 2 0 +e2mgr/rmrCgo/rmrCgoUtils.go:78.2,82.16 4 0 +e2mgr/rmrCgo/rmrCgoUtils.go:86.2,87.16 2 0 +e2mgr/rmrCgo/rmrCgoUtils.go:91.2,92.34 2 0 +e2mgr/rmrCgo/rmrCgoUtils.go:96.2,96.14 1 0 +e2mgr/rmrCgo/rmrCgoUtils.go:68.50,70.3 1 0 +e2mgr/rmrCgo/rmrCgoUtils.go:74.51,76.3 1 0 +e2mgr/rmrCgo/rmrCgoUtils.go:82.16,85.3 1 0 +e2mgr/rmrCgo/rmrCgoUtils.go:87.16,90.3 1 0 +e2mgr/rmrCgo/rmrCgoUtils.go:92.34,95.3 1 0 +e2mgr/rmrCgo/rmrCgoUtils.go:100.47,101.23 1 0 +e2mgr/rmrCgo/rmrCgoUtils.go:101.23,102.24 1 0 +e2mgr/rmrCgo/rmrCgoUtils.go:105.3,105.138 1 0 +e2mgr/rmrCgo/rmrCgoUtils.go:102.24,104.4 1 0 +e2mgr/rmrCgo/rmrCgoApi.go:34.99,41.21 6 1 +e2mgr/rmrCgo/rmrCgoApi.go:48.2,50.11 3 1 +e2mgr/rmrCgo/rmrCgoApi.go:41.21,43.39 2 1 +e2mgr/rmrCgo/rmrCgoApi.go:43.39,46.4 2 0 +e2mgr/rmrCgo/rmrCgoApi.go:53.71,59.21 6 0 +e2mgr/rmrCgo/rmrCgoApi.go:66.2,74.21 7 0 +e2mgr/rmrCgo/rmrCgoApi.go:80.2,81.50 2 0 +e2mgr/rmrCgo/rmrCgoApi.go:59.21,63.3 3 0 +e2mgr/rmrCgo/rmrCgoApi.go:74.21,78.3 3 0 +e2mgr/rmrCgo/rmrCgoApi.go:84.46,93.21 7 0 +e2mgr/rmrCgo/rmrCgoApi.go:99.2,103.18 5 0 +e2mgr/rmrCgo/rmrCgoApi.go:93.21,97.3 3 0 +e2mgr/rmrCgo/rmrCgoApi.go:106.39,112.2 5 0 +e2mgr/rmrCgo/rmrCgoApi.go:114.36,117.2 2 1 +e2mgr/rmrCgo/rmrCgoApi.go:119.29,123.2 3 0 +e2mgr/rnibBuilders/node_info_builder.go:25.111,35.2 8 1 +e2mgr/services/rmr_service.go:38.90,40.2 1 1 +e2mgr/services/rmr_service.go:53.61,62.2 1 1 +e2mgr/services/rmr_service.go:65.21,80.2 9 1 +e2mgr/services/rmr_service.go:82.76,93.16 6 0 +e2mgr/services/rmr_service.go:93.16,96.3 2 0 +e2mgr/services/rmr_service.go:100.40,102.6 1 1 +e2mgr/services/rmr_service.go:102.6,107.17 3 1 +e2mgr/services/rmr_service.go:111.3,111.79 1 0 +e2mgr/services/rmr_service.go:107.17,108.12 1 1 +e2mgr/services/rmr_service.go:115.36,116.5 1 0 +e2mgr/services/rmr_service.go:116.5,119.10 2 0 +e2mgr/services/rmr_service.go:125.3,126.29 2 0 +e2mgr/services/rmr_service.go:119.10,122.9 2 0 +e2mgr/services/rmr_service.go:130.37,131.35 1 1 +e2mgr/services/rmr_service.go:131.35,135.3 3 1 +e2mgr/services/rnib_reader_service.go:30.83,32.2 1 0 +e2mgr/services/rnib_reader_service.go:36.94,38.2 1 0 +e2mgr/services/rnib_reader_service.go:40.90,43.18 2 0 +e2mgr/services/rnib_reader_service.go:47.2,49.18 2 0 +e2mgr/services/rnib_reader_service.go:53.2,55.26 2 0 +e2mgr/services/rnib_reader_service.go:43.18,45.3 1 0 +e2mgr/services/rnib_reader_service.go:49.18,51.3 1 0 e2mgr/handlers/endc_setup_request_handler.go:36.107,40.2 1 1 e2mgr/handlers/endc_setup_request_handler.go:42.111,46.20 3 0 e2mgr/handlers/endc_setup_request_handler.go:52.2,52.16 1 0 @@ -176,60 +240,6 @@ e2mgr/handlers/endc_setup_request_handler.go:71.2,71.11 1 1 e2mgr/handlers/endc_setup_request_handler.go:60.16,62.3 1 0 e2mgr/handlers/endc_setup_request_handler.go:62.8,69.3 5 1 e2mgr/handlers/endc_setup_request_handler.go:74.53,76.2 1 0 -e2mgr/handlers/setup_response_notification_handler.go:33.91,36.16 2 1 -e2mgr/handlers/setup_response_notification_handler.go:40.2,42.8 3 1 -e2mgr/handlers/setup_response_notification_handler.go:46.2,46.136 1 1 -e2mgr/handlers/setup_response_notification_handler.go:36.16,38.3 1 1 -e2mgr/handlers/setup_response_notification_handler.go:42.8,45.3 2 0 -e2mgr/handlers/setup_response_notification_handler.go:49.104,51.2 1 1 -e2mgr/handlers/x2Setup_failure_response_notification_handler.go:32.91,37.16 3 0 -e2mgr/handlers/x2Setup_failure_response_notification_handler.go:41.2,42.8 2 0 -e2mgr/handlers/x2Setup_failure_response_notification_handler.go:37.16,39.3 1 0 -e2mgr/handlers/x2Setup_failure_response_notification_handler.go:42.8,43.29 1 0 -e2mgr/handlers/x2Setup_failure_response_notification_handler.go:64.3,65.44 2 0 -e2mgr/handlers/x2Setup_failure_response_notification_handler.go:43.29,55.87 9 0 -e2mgr/handlers/x2Setup_failure_response_notification_handler.go:55.87,57.5 1 0 -e2mgr/handlers/x2Setup_failure_response_notification_handler.go:57.10,59.30 2 0 -e2mgr/handlers/x2Setup_failure_response_notification_handler.go:59.30,61.6 1 0 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:36.78,37.25 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:51.2,51.12 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:38.31,40.130 2 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:41.28,43.131 2 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:44.27,46.113 2 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:47.23,49.128 2 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:54.114,57.37 2 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:63.2,63.41 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:71.2,71.44 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:79.2,79.171 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:98.2,98.22 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:57.37,61.3 2 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:63.41,64.22 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:67.3,67.93 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:64.22,66.4 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:71.44,72.22 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:75.3,75.93 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:72.22,74.4 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:79.171,80.22 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:83.3,87.91 5 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:95.3,95.67 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:80.22,82.4 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:87.91,94.4 4 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:102.90,105.54 2 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:138.2,138.27 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:105.54,108.120 2 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:108.120,110.74 2 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:110.74,113.64 3 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:113.64,114.34 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:114.34,115.46 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:116.49,119.22 3 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:122.54,123.131 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:124.66,126.66 2 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:119.22,121.9 1 0 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:126.66,128.9 1 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:128.14,130.9 1 0 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:141.192,143.16 2 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:147.2,149.46 2 1 -e2mgr/handlers/x2setupFailureResponseToProtobuf.go:143.16,145.3 1 0 e2mgr/handlers/endc_x2Setup_failure_response_notification_handler.go:33.91,38.16 3 0 e2mgr/handlers/endc_x2Setup_failure_response_notification_handler.go:42.2,43.8 2 0 e2mgr/handlers/endc_x2Setup_failure_response_notification_handler.go:38.16,40.3 1 0 @@ -239,21 +249,12 @@ e2mgr/handlers/endc_x2Setup_failure_response_notification_handler.go:44.29,56.87 e2mgr/handlers/endc_x2Setup_failure_response_notification_handler.go:56.87,58.5 1 0 e2mgr/handlers/endc_x2Setup_failure_response_notification_handler.go:58.10,60.30 2 0 e2mgr/handlers/endc_x2Setup_failure_response_notification_handler.go:60.30,62.6 1 0 -e2mgr/handlers/ric_enb_load_information_notification_handler.go:13.91,17.16 2 0 -e2mgr/handlers/ric_enb_load_information_notification_handler.go:21.2,22.151 2 0 -e2mgr/handlers/ric_enb_load_information_notification_handler.go:17.16,19.3 1 0 -e2mgr/handlers/ranLostConnectionHandler.go:36.153,41.2 1 1 -e2mgr/handlers/ranLostConnectionHandler.go:43.91,49.86 4 1 -e2mgr/handlers/ranLostConnectionHandler.go:63.2,65.8 3 1 -e2mgr/handlers/ranLostConnectionHandler.go:49.86,51.3 1 1 -e2mgr/handlers/ranLostConnectionHandler.go:51.8,55.83 4 1 -e2mgr/handlers/ranLostConnectionHandler.go:55.83,57.4 1 1 -e2mgr/handlers/ranLostConnectionHandler.go:57.9,61.4 2 1 -e2mgr/handlers/ranLostConnectionHandler.go:65.8,68.3 2 1 -e2mgr/handlers/ranLostConnectionHandler.go:72.70,73.28 1 1 -e2mgr/handlers/ranLostConnectionHandler.go:74.131,75.63 1 1 -e2mgr/handlers/ranLostConnectionHandler.go:76.46,77.153 1 1 -e2mgr/handlers/ranLostConnectionHandler.go:78.10,79.60 1 1 +e2mgr/handlers/endc_x2apSetupRequest_asn1_packer.go:32.221,39.96 4 1 +e2mgr/handlers/endc_x2apSetupRequest_asn1_packer.go:43.2,43.27 1 1 +e2mgr/handlers/endc_x2apSetupRequest_asn1_packer.go:52.2,52.39 1 1 +e2mgr/handlers/endc_x2apSetupRequest_asn1_packer.go:39.96,41.3 1 1 +e2mgr/handlers/endc_x2apSetupRequest_asn1_packer.go:43.27,46.119 3 0 +e2mgr/handlers/endc_x2apSetupRequest_asn1_packer.go:46.119,49.4 2 0 e2mgr/handlers/setup_request_handler.go:58.99,62.2 1 1 e2mgr/handlers/setup_request_handler.go:64.107,68.20 3 0 e2mgr/handlers/setup_request_handler.go:74.2,74.16 1 0 @@ -280,6 +281,232 @@ e2mgr/handlers/setup_request_handler.go:131.134,133.3 1 1 e2mgr/handlers/setup_request_handler.go:139.49,141.2 1 0 e2mgr/handlers/setup_request_handler.go:143.13,147.42 2 1 e2mgr/handlers/setup_request_handler.go:147.42,148.13 1 0 +e2mgr/handlers/x2Setup_failure_response_notification_handler.go:32.91,37.16 3 0 +e2mgr/handlers/x2Setup_failure_response_notification_handler.go:41.2,42.8 2 0 +e2mgr/handlers/x2Setup_failure_response_notification_handler.go:37.16,39.3 1 0 +e2mgr/handlers/x2Setup_failure_response_notification_handler.go:42.8,43.29 1 0 +e2mgr/handlers/x2Setup_failure_response_notification_handler.go:64.3,65.44 2 0 +e2mgr/handlers/x2Setup_failure_response_notification_handler.go:43.29,55.87 9 0 +e2mgr/handlers/x2Setup_failure_response_notification_handler.go:55.87,57.5 1 0 +e2mgr/handlers/x2Setup_failure_response_notification_handler.go:57.10,59.30 2 0 +e2mgr/handlers/x2Setup_failure_response_notification_handler.go:59.30,61.6 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:31.98,33.52 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:37.2,39.116 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:43.2,45.35 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:49.2,51.31 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:55.2,59.93 3 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:63.2,67.87 3 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:71.2,71.176 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:33.52,35.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:39.116,41.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:45.35,47.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:51.31,53.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:59.93,61.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:67.87,69.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:74.144,78.16 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:82.2,85.16 3 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:89.2,91.12 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:78.16,80.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:85.16,87.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:94.106,96.84 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:100.2,100.80 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:96.84,98.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:103.135,110.16 4 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:114.2,114.55 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:118.2,120.16 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:124.2,124.53 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:128.2,130.41 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:140.2,142.49 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:146.2,148.16 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:152.2,152.12 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:110.16,112.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:114.55,116.3 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:120.16,122.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:124.53,126.3 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:130.41,133.17 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:137.3,137.128 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:133.17,135.4 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:142.49,144.3 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:148.16,150.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:156.42,160.2 3 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:162.180,164.62 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:168.2,168.20 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:164.62,166.3 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:171.171,173.66 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:177.2,179.103 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:183.2,185.54 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:173.66,175.3 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:179.103,181.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:188.84,193.2 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:195.82,204.37 3 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:208.2,208.22 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:204.37,206.3 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:211.66,213.2 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:215.54,217.2 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:219.169,229.28 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:233.2,233.35 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:229.28,231.3 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:236.120,238.58 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:242.2,242.104 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:238.58,240.3 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:245.174,248.57 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:256.2,256.14 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:248.57,254.3 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:259.171,262.50 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:266.2,268.119 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:272.2,274.54 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:262.50,264.3 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:268.119,270.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:277.130,280.19 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:284.2,286.22 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:290.2,290.114 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:280.19,282.3 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:286.22,288.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:293.132,297.19 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:301.2,303.22 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:307.2,311.116 3 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:315.2,315.94 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:297.19,299.3 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:303.22,305.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:311.116,313.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:318.117,321.33 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:325.2,332.29 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:321.33,323.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:335.117,338.33 2 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:342.2,349.29 2 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:338.33,340.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:352.144,355.35 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:364.2,364.133 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:356.31,357.59 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:358.31,359.59 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:360.40,361.87 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:367.180,371.56 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:375.2,377.59 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:381.2,381.53 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:371.56,373.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:377.59,379.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:384.170,392.2 3 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:394.135,398.22 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:402.2,402.29 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:406.2,408.59 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:412.2,412.58 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:398.22,400.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:402.29,404.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:408.59,410.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:415.50,417.28 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:421.2,421.12 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:417.28,419.3 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:424.202,427.36 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:431.2,433.54 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:438.2,438.51 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:442.2,444.16 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:448.2,448.21 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:452.2,452.47 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:427.36,429.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:433.54,436.3 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:438.51,440.3 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:444.16,446.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:448.21,450.3 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:455.161,458.105 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:462.2,462.103 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:466.2,466.107 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:458.105,460.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:462.103,464.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:469.136,472.44 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:476.2,478.44 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:482.2,482.45 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:472.44,474.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:478.44,480.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:485.110,490.2 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:492.145,498.102 3 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:502.2,504.69 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:509.2,509.32 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:498.102,500.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:504.69,507.3 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:512.146,516.16 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:520.2,525.30 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:516.16,518.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:528.127,535.16 4 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:539.2,539.40 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:543.2,545.106 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:549.2,551.65 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:561.2,561.30 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:535.16,537.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:539.40,541.3 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:545.106,547.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:551.65,554.17 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:558.3,558.107 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:554.17,556.4 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:564.141,567.16 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:571.2,572.12 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:567.16,569.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:575.143,579.2 3 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:581.152,585.2 3 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:587.161,591.2 3 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:593.142,596.16 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:600.2,601.12 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:596.16,598.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:604.159,607.16 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:611.2,612.12 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:607.16,609.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:615.161,616.31 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:632.2,632.12 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:616.31,620.12 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:624.3,626.17 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:620.12,621.12 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:626.17,628.4 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:635.114,641.16 3 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:645.2,645.69 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:653.2,653.12 1 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:641.16,643.3 1 0 +e2mgr/handlers/enb_load_information_to_protobuf.go:645.69,648.17 2 1 +e2mgr/handlers/enb_load_information_to_protobuf.go:648.17,650.4 1 0 +e2mgr/handlers/endc_configuration_update_handler.go:36.54,43.16 6 1 +e2mgr/handlers/endc_configuration_update_handler.go:67.2,67.230 1 1 +e2mgr/handlers/endc_configuration_update_handler.go:43.16,45.13 2 1 +e2mgr/handlers/endc_configuration_update_handler.go:53.3,53.93 1 1 +e2mgr/handlers/endc_configuration_update_handler.go:45.13,50.4 4 1 +e2mgr/handlers/endc_configuration_update_handler.go:50.9,52.4 1 0 +e2mgr/handlers/endc_configuration_update_handler.go:54.8,58.13 4 0 +e2mgr/handlers/endc_configuration_update_handler.go:58.13,63.4 4 0 +e2mgr/handlers/endc_configuration_update_handler.go:63.9,65.4 1 0 +e2mgr/handlers/endc_setup_response_notification_handler.go:34.91,40.16 3 0 +e2mgr/handlers/endc_setup_response_notification_handler.go:44.2,45.8 2 0 +e2mgr/handlers/endc_setup_response_notification_handler.go:40.16,42.3 1 0 +e2mgr/handlers/endc_setup_response_notification_handler.go:45.8,47.17 1 0 +e2mgr/handlers/endc_setup_response_notification_handler.go:72.3,73.44 2 0 +e2mgr/handlers/endc_setup_response_notification_handler.go:47.17,62.87 12 0 +e2mgr/handlers/endc_setup_response_notification_handler.go:62.87,64.5 1 0 +e2mgr/handlers/endc_setup_response_notification_handler.go:64.10,66.30 2 0 +e2mgr/handlers/endc_setup_response_notification_handler.go:66.30,68.6 1 0 +e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:32.94,35.54 2 1 +e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:68.2,68.27 1 1 +e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:35.54,38.124 2 1 +e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:38.124,40.82 2 1 +e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:40.82,43.72 3 1 +e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:43.72,44.38 1 1 +e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:44.38,45.50 1 1 +e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:46.53,49.22 3 1 +e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:52.58,53.135 1 1 +e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:54.70,56.66 2 1 +e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:49.22,51.9 1 0 +e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:56.66,58.9 1 1 +e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:58.14,60.9 1 0 +e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:71.196,73.16 2 1 +e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:77.2,79.50 2 1 +e2mgr/handlers/endc_x2setupFailureResponseToProtobuf.go:73.16,75.3 1 0 +e2mgr/handlers/setup_response_notification_handler.go:33.91,36.16 2 1 +e2mgr/handlers/setup_response_notification_handler.go:40.2,42.8 3 1 +e2mgr/handlers/setup_response_notification_handler.go:46.2,46.136 1 1 +e2mgr/handlers/setup_response_notification_handler.go:36.16,38.3 1 1 +e2mgr/handlers/setup_response_notification_handler.go:42.8,45.3 2 0 +e2mgr/handlers/setup_response_notification_handler.go:49.104,51.2 1 1 +e2mgr/handlers/x2apSetupRequest_asn1_packer.go:32.217,39.96 4 1 +e2mgr/handlers/x2apSetupRequest_asn1_packer.go:43.2,43.27 1 1 +e2mgr/handlers/x2apSetupRequest_asn1_packer.go:51.2,51.39 1 1 +e2mgr/handlers/x2apSetupRequest_asn1_packer.go:39.96,41.3 1 1 +e2mgr/handlers/x2apSetupRequest_asn1_packer.go:43.27,46.119 3 0 +e2mgr/handlers/x2apSetupRequest_asn1_packer.go:46.119,49.4 2 0 e2mgr/handlers/x2enb_configuration_update_handler.go:36.54,43.16 6 1 e2mgr/handlers/x2enb_configuration_update_handler.go:68.2,68.230 1 1 e2mgr/handlers/x2enb_configuration_update_handler.go:43.16,45.12 2 1 @@ -397,39 +624,15 @@ e2mgr/handlers/x2setupResponseToProtobuf.go:410.21,412.8 1 0 e2mgr/handlers/x2setupResponseToProtobuf.go:430.198,432.16 2 1 e2mgr/handlers/x2setupResponseToProtobuf.go:436.2,437.39 2 1 e2mgr/handlers/x2setupResponseToProtobuf.go:432.16,434.3 1 0 -e2mgr/handlers/endc_configuration_update_handler.go:36.54,43.16 6 1 -e2mgr/handlers/endc_configuration_update_handler.go:67.2,67.230 1 1 -e2mgr/handlers/endc_configuration_update_handler.go:43.16,45.13 2 1 -e2mgr/handlers/endc_configuration_update_handler.go:53.3,53.93 1 1 -e2mgr/handlers/endc_configuration_update_handler.go:45.13,50.4 4 1 -e2mgr/handlers/endc_configuration_update_handler.go:50.9,52.4 1 0 -e2mgr/handlers/endc_configuration_update_handler.go:54.8,58.13 4 0 -e2mgr/handlers/endc_configuration_update_handler.go:58.13,63.4 4 0 -e2mgr/handlers/endc_configuration_update_handler.go:63.9,65.4 1 0 -e2mgr/handlers/endc_x2apSetupRequest_asn1_packer.go:32.221,39.96 4 1 -e2mgr/handlers/endc_x2apSetupRequest_asn1_packer.go:43.2,43.27 1 1 -e2mgr/handlers/endc_x2apSetupRequest_asn1_packer.go:52.2,52.39 1 1 -e2mgr/handlers/endc_x2apSetupRequest_asn1_packer.go:39.96,41.3 1 1 -e2mgr/handlers/endc_x2apSetupRequest_asn1_packer.go:43.27,46.119 3 0 -e2mgr/handlers/endc_x2apSetupRequest_asn1_packer.go:46.119,49.4 2 0 -e2mgr/handlers/x2apPdu_asn1_unpacker.go:36.158,39.16 2 1 -e2mgr/handlers/x2apPdu_asn1_unpacker.go:43.2,46.132 3 1 -e2mgr/handlers/x2apPdu_asn1_unpacker.go:50.2,50.27 1 1 -e2mgr/handlers/x2apPdu_asn1_unpacker.go:55.2,55.17 1 1 -e2mgr/handlers/x2apPdu_asn1_unpacker.go:39.16,41.3 1 0 -e2mgr/handlers/x2apPdu_asn1_unpacker.go:46.132,48.3 1 1 -e2mgr/handlers/x2apPdu_asn1_unpacker.go:50.27,53.3 2 1 -e2mgr/handlers/x2apPdu_asn1_unpacker.go:58.175,60.16 2 1 -e2mgr/handlers/x2apPdu_asn1_unpacker.go:64.2,67.27 3 1 -e2mgr/handlers/x2apPdu_asn1_unpacker.go:73.2,73.62 1 1 -e2mgr/handlers/x2apPdu_asn1_unpacker.go:60.16,62.3 1 1 -e2mgr/handlers/x2apPdu_asn1_unpacker.go:67.27,71.3 3 1 -e2mgr/handlers/x2apSetupRequest_asn1_packer.go:32.217,39.96 4 1 -e2mgr/handlers/x2apSetupRequest_asn1_packer.go:43.2,43.27 1 1 -e2mgr/handlers/x2apSetupRequest_asn1_packer.go:51.2,51.39 1 1 -e2mgr/handlers/x2apSetupRequest_asn1_packer.go:39.96,41.3 1 1 -e2mgr/handlers/x2apSetupRequest_asn1_packer.go:43.27,46.119 3 0 -e2mgr/handlers/x2apSetupRequest_asn1_packer.go:46.119,49.4 2 0 +e2mgr/handlers/enb_load_information_notification_handler.go:17.134,21.2 1 1 +e2mgr/handlers/enb_load_information_notification_handler.go:23.43,25.2 1 1 +e2mgr/handlers/enb_load_information_notification_handler.go:27.201,42.16 2 1 +e2mgr/handlers/enb_load_information_notification_handler.go:47.2,53.18 4 1 +e2mgr/handlers/enb_load_information_notification_handler.go:58.2,62.20 3 1 +e2mgr/handlers/enb_load_information_notification_handler.go:67.2,67.190 1 1 +e2mgr/handlers/enb_load_information_notification_handler.go:42.16,45.3 2 1 +e2mgr/handlers/enb_load_information_notification_handler.go:53.18,56.3 2 0 +e2mgr/handlers/enb_load_information_notification_handler.go:62.20,65.3 2 0 e2mgr/handlers/endc_x2setupResponseToProtobuf.go:39.80,43.36 3 1 e2mgr/handlers/endc_x2setupResponseToProtobuf.go:53.2,53.104 1 1 e2mgr/handlers/endc_x2setupResponseToProtobuf.go:71.2,71.18 1 1 @@ -525,77 +728,114 @@ e2mgr/handlers/endc_x2setupResponseToProtobuf.go:298.25,300.12 1 0 e2mgr/handlers/endc_x2setupResponseToProtobuf.go:318.202,320.16 2 1 e2mgr/handlers/endc_x2setupResponseToProtobuf.go:324.2,325.43 2 1 e2mgr/handlers/endc_x2setupResponseToProtobuf.go:320.16,322.3 1 0 -e2mgr/providers/incoming_request_handler_provider.go:24.79,30.2 1 0 -e2mgr/providers/incoming_request_handler_provider.go:33.91,38.2 1 0 -e2mgr/providers/incoming_request_handler_provider.go:40.121,43.9 2 0 -e2mgr/providers/incoming_request_handler_provider.go:48.2,48.21 1 0 -e2mgr/providers/incoming_request_handler_provider.go:43.9,46.3 2 0 -e2mgr/providers/notification_handler_provider.go:34.160,40.2 1 1 -e2mgr/providers/notification_handler_provider.go:42.164,54.2 1 1 -e2mgr/providers/notification_handler_provider.go:56.123,59.9 2 1 -e2mgr/providers/notification_handler_provider.go:63.2,63.21 1 1 -e2mgr/providers/notification_handler_provider.go:59.9,61.3 1 1 -e2mgr/providers/request_handler_provider.go:32.105,35.2 2 1 -e2mgr/providers/request_handler_provider.go:37.98,42.2 1 1 -e2mgr/providers/request_handler_provider.go:44.120,47.9 2 1 -e2mgr/providers/request_handler_provider.go:53.2,53.21 1 1 -e2mgr/providers/request_handler_provider.go:47.9,51.3 3 1 -e2mgr/rnibBuilders/node_info_builder.go:25.111,34.2 7 1 -e2mgr/services/rnib_reader_service.go:30.83,32.2 1 0 -e2mgr/services/rnib_reader_service.go:36.94,38.2 1 0 -e2mgr/services/rnib_reader_service.go:40.90,43.18 2 0 -e2mgr/services/rnib_reader_service.go:47.2,49.18 2 0 -e2mgr/services/rnib_reader_service.go:53.2,55.26 2 0 -e2mgr/services/rnib_reader_service.go:43.18,45.3 1 0 -e2mgr/services/rnib_reader_service.go:49.18,51.3 1 0 -e2mgr/services/rmr_service.go:38.90,40.2 1 1 -e2mgr/services/rmr_service.go:53.61,62.2 1 1 -e2mgr/services/rmr_service.go:65.21,80.2 9 1 -e2mgr/services/rmr_service.go:82.76,93.16 6 0 -e2mgr/services/rmr_service.go:93.16,96.3 2 0 -e2mgr/services/rmr_service.go:100.40,102.6 1 1 -e2mgr/services/rmr_service.go:102.6,107.17 3 1 -e2mgr/services/rmr_service.go:111.3,111.79 1 0 -e2mgr/services/rmr_service.go:107.17,108.12 1 1 -e2mgr/services/rmr_service.go:115.36,116.5 1 0 -e2mgr/services/rmr_service.go:116.5,119.10 2 0 -e2mgr/services/rmr_service.go:125.3,126.29 2 0 -e2mgr/services/rmr_service.go:119.10,122.9 2 0 -e2mgr/services/rmr_service.go:130.37,131.35 1 1 -e2mgr/services/rmr_service.go:131.35,135.3 3 1 -e2mgr/rmrCgo/rmrCgoApi.go:34.99,41.21 6 1 -e2mgr/rmrCgo/rmrCgoApi.go:48.2,50.11 3 1 -e2mgr/rmrCgo/rmrCgoApi.go:41.21,43.39 2 1 -e2mgr/rmrCgo/rmrCgoApi.go:43.39,46.4 2 0 -e2mgr/rmrCgo/rmrCgoApi.go:53.71,59.21 6 0 -e2mgr/rmrCgo/rmrCgoApi.go:66.2,74.21 7 0 -e2mgr/rmrCgo/rmrCgoApi.go:80.2,81.50 2 0 -e2mgr/rmrCgo/rmrCgoApi.go:59.21,63.3 3 0 -e2mgr/rmrCgo/rmrCgoApi.go:74.21,78.3 3 0 -e2mgr/rmrCgo/rmrCgoApi.go:84.46,93.21 7 0 -e2mgr/rmrCgo/rmrCgoApi.go:99.2,103.18 5 0 -e2mgr/rmrCgo/rmrCgoApi.go:93.21,97.3 3 0 -e2mgr/rmrCgo/rmrCgoApi.go:106.39,112.2 5 0 -e2mgr/rmrCgo/rmrCgoApi.go:114.36,117.2 2 1 -e2mgr/rmrCgo/rmrCgoApi.go:119.29,123.2 3 0 -e2mgr/rmrCgo/rmrCgoTypes.go:31.87,39.2 1 1 -e2mgr/rmrCgo/rmrCgoTypes.go:41.96,48.2 1 1 -e2mgr/rmrCgo/rmrCgoTypes.go:119.32,121.2 1 0 -e2mgr/rmrCgo/rmrCgoUtils.go:32.66,48.93 7 0 -e2mgr/rmrCgo/rmrCgoUtils.go:52.2,52.13 1 0 -e2mgr/rmrCgo/rmrCgoUtils.go:48.93,50.3 1 0 -e2mgr/rmrCgo/rmrCgoUtils.go:55.115,68.50 9 0 -e2mgr/rmrCgo/rmrCgoUtils.go:73.2,74.51 2 0 -e2mgr/rmrCgo/rmrCgoUtils.go:78.2,82.16 4 0 -e2mgr/rmrCgo/rmrCgoUtils.go:86.2,87.16 2 0 -e2mgr/rmrCgo/rmrCgoUtils.go:91.2,92.34 2 0 -e2mgr/rmrCgo/rmrCgoUtils.go:96.2,96.14 1 0 -e2mgr/rmrCgo/rmrCgoUtils.go:68.50,70.3 1 0 -e2mgr/rmrCgo/rmrCgoUtils.go:74.51,76.3 1 0 -e2mgr/rmrCgo/rmrCgoUtils.go:82.16,85.3 1 0 -e2mgr/rmrCgo/rmrCgoUtils.go:87.16,90.3 1 0 -e2mgr/rmrCgo/rmrCgoUtils.go:92.34,95.3 1 0 -e2mgr/rmrCgo/rmrCgoUtils.go:100.47,101.23 1 0 -e2mgr/rmrCgo/rmrCgoUtils.go:101.23,102.24 1 0 -e2mgr/rmrCgo/rmrCgoUtils.go:105.3,105.138 1 0 -e2mgr/rmrCgo/rmrCgoUtils.go:102.24,104.4 1 0 +e2mgr/handlers/ranLostConnectionHandler.go:36.153,41.2 1 1 +e2mgr/handlers/ranLostConnectionHandler.go:43.91,49.86 4 1 +e2mgr/handlers/ranLostConnectionHandler.go:63.2,65.8 3 1 +e2mgr/handlers/ranLostConnectionHandler.go:49.86,51.3 1 1 +e2mgr/handlers/ranLostConnectionHandler.go:51.8,55.83 4 1 +e2mgr/handlers/ranLostConnectionHandler.go:55.83,57.4 1 1 +e2mgr/handlers/ranLostConnectionHandler.go:57.9,61.4 2 1 +e2mgr/handlers/ranLostConnectionHandler.go:65.8,68.3 2 1 +e2mgr/handlers/ranLostConnectionHandler.go:72.70,73.28 1 1 +e2mgr/handlers/ranLostConnectionHandler.go:74.131,75.63 1 1 +e2mgr/handlers/ranLostConnectionHandler.go:76.46,77.153 1 1 +e2mgr/handlers/ranLostConnectionHandler.go:78.10,79.60 1 1 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:31.162,34.16 2 1 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:38.2,41.159 3 1 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:45.2,45.27 1 1 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:50.2,50.17 1 1 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:34.16,36.3 1 0 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:41.159,43.3 1 1 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:45.27,48.3 2 0 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:78.158,81.16 2 1 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:85.2,88.132 3 1 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:92.2,92.27 1 1 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:97.2,97.17 1 1 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:81.16,83.3 1 0 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:88.132,90.3 1 1 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:92.27,95.3 2 1 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:100.175,102.16 2 1 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:106.2,109.27 3 1 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:115.2,115.62 1 1 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:102.16,104.3 1 1 +e2mgr/handlers/x2apPdu_asn1_unpacker.go:109.27,113.3 3 1 +e2mgr/handlers/x2apSetup_response_notification_handler.go:33.91,38.16 3 0 +e2mgr/handlers/x2apSetup_response_notification_handler.go:42.2,44.8 2 0 +e2mgr/handlers/x2apSetup_response_notification_handler.go:38.16,40.3 1 0 +e2mgr/handlers/x2apSetup_response_notification_handler.go:44.8,45.17 1 0 +e2mgr/handlers/x2apSetup_response_notification_handler.go:69.3,70.44 2 0 +e2mgr/handlers/x2apSetup_response_notification_handler.go:45.17,60.87 12 0 +e2mgr/handlers/x2apSetup_response_notification_handler.go:60.87,62.5 1 0 +e2mgr/handlers/x2apSetup_response_notification_handler.go:62.10,64.30 2 0 +e2mgr/handlers/x2apSetup_response_notification_handler.go:64.30,66.6 1 0 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:36.78,37.25 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:51.2,51.12 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:38.31,40.130 2 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:41.28,43.131 2 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:44.27,46.113 2 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:47.23,49.128 2 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:54.114,57.37 2 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:63.2,63.41 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:71.2,71.44 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:79.2,79.171 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:98.2,98.22 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:57.37,61.3 2 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:63.41,64.22 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:67.3,67.93 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:64.22,66.4 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:71.44,72.22 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:75.3,75.93 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:72.22,74.4 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:79.171,80.22 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:83.3,87.91 5 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:95.3,95.67 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:80.22,82.4 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:87.91,94.4 4 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:102.90,105.54 2 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:138.2,138.27 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:105.54,108.120 2 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:108.120,110.74 2 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:110.74,113.64 3 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:113.64,114.34 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:114.34,115.46 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:116.49,119.22 3 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:122.54,123.131 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:124.66,126.66 2 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:119.22,121.9 1 0 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:126.66,128.9 1 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:128.14,130.9 1 0 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:141.192,143.16 2 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:147.2,149.46 2 1 +e2mgr/handlers/x2setupFailureResponseToProtobuf.go:143.16,145.3 1 0 +e2mgr/handlers/delete_all_request_handler.go:41.68,47.2 1 1 +e2mgr/handlers/delete_all_request_handler.go:49.158,52.16 2 1 +e2mgr/handlers/delete_all_request_handler.go:56.2,56.26 1 1 +e2mgr/handlers/delete_all_request_handler.go:61.2,68.16 6 1 +e2mgr/handlers/delete_all_request_handler.go:72.2,72.12 1 1 +e2mgr/handlers/delete_all_request_handler.go:52.16,54.3 1 1 +e2mgr/handlers/delete_all_request_handler.go:56.26,58.3 1 1 +e2mgr/handlers/delete_all_request_handler.go:68.16,70.3 1 0 +e2mgr/handlers/delete_all_request_handler.go:75.116,78.16 2 1 +e2mgr/handlers/delete_all_request_handler.go:83.2,83.30 1 1 +e2mgr/handlers/delete_all_request_handler.go:87.2,87.42 1 1 +e2mgr/handlers/delete_all_request_handler.go:105.2,106.18 2 1 +e2mgr/handlers/delete_all_request_handler.go:78.16,81.3 2 1 +e2mgr/handlers/delete_all_request_handler.go:83.30,85.3 1 1 +e2mgr/handlers/delete_all_request_handler.go:87.42,91.17 2 1 +e2mgr/handlers/delete_all_request_handler.go:97.3,97.20 1 1 +e2mgr/handlers/delete_all_request_handler.go:102.3,102.55 1 1 +e2mgr/handlers/delete_all_request_handler.go:91.17,94.12 2 1 +e2mgr/handlers/delete_all_request_handler.go:97.20,100.12 2 1 +e2mgr/handlers/delete_all_request_handler.go:109.142,112.18 2 1 +e2mgr/handlers/delete_all_request_handler.go:116.2,120.16 3 1 +e2mgr/handlers/delete_all_request_handler.go:126.2,126.27 1 1 +e2mgr/handlers/delete_all_request_handler.go:112.18,114.3 1 1 +e2mgr/handlers/delete_all_request_handler.go:120.16,124.3 2 1 +e2mgr/handlers/delete_all_request_handler.go:126.27,129.3 1 0 +e2mgr/handlers/delete_all_request_handler.go:132.146,134.65 1 1 +e2mgr/handlers/delete_all_request_handler.go:138.2,138.70 1 1 +e2mgr/handlers/delete_all_request_handler.go:143.2,147.16 3 1 +e2mgr/handlers/delete_all_request_handler.go:153.2,153.137 1 1 +e2mgr/handlers/delete_all_request_handler.go:134.65,136.3 1 1 +e2mgr/handlers/delete_all_request_handler.go:138.70,141.3 2 0 +e2mgr/handlers/delete_all_request_handler.go:147.16,151.3 2 1 diff --git a/E2Manager/handlers/enb_load_information_notification_handler.go b/E2Manager/handlers/enb_load_information_notification_handler.go new file mode 100644 index 0000000..91461f9 --- /dev/null +++ b/E2Manager/handlers/enb_load_information_notification_handler.go @@ -0,0 +1,57 @@ +package handlers + +import "C" +import ( + "e2mgr/logger" + "e2mgr/models" + "e2mgr/rNibWriter" + "e2mgr/sessions" + "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities" + "time" +) + +type EnbLoadInformationNotificationHandler struct { + rnibWriterProvider func() rNibWriter.RNibWriter +} + +func NewEnbLoadInformationNotificationHandler(rnibWriterProvider func() rNibWriter.RNibWriter) EnbLoadInformationNotificationHandler { + return EnbLoadInformationNotificationHandler{ + rnibWriterProvider: rnibWriterProvider, + } +} + +func elapsed(startTime time.Time) float64 { + return float64(time.Since(startTime)) / float64(time.Millisecond) +} + +func (src EnbLoadInformationNotificationHandler) Handle(logger *logger.Logger, e2Sessions sessions.E2Sessions, request *models.NotificationRequest, messageChannel chan<- *models.NotificationResponse) { + + pdu, err := unpackX2apPdu(logger, MaxAsn1CodecAllocationBufferSize, request.Len, request.Payload, MaxAsn1CodecMessageBufferSize) + + if err != nil { + logger.Errorf("#EnbLoadInformationNotificationHandler.Handle - RAN name: %s - Unpack failed. Error: %v", request.RanName, err) + return + } + + logger.Debugf("#EnbLoadInformationNotificationHandler.Handle - RAN name: %s - Unpacked message successfully", request.RanName) + + ranLoadInformation := &entities.RanLoadInformation{LoadTimestamp: uint64(request.StartTime.UnixNano())} + + err = extractAndBuildRanLoadInformation(pdu, ranLoadInformation) + + if (err != nil) { + logger.Errorf("#EnbLoadInformationNotificationHandler.Handle - RAN name: %s - Failed at extractAndBuildRanLoadInformation. Error: %v", request.RanName, err) + return + } + + logger.Debugf("#EnbLoadInformationNotificationHandler.Handle - RAN name: %s - Successfully done with extracting and building RAN load information. elapsed: %f ms", request.RanName, elapsed(request.StartTime)) + + rnibErr := src.rnibWriterProvider().SaveRanLoadInformation(request.RanName, ranLoadInformation) + + if rnibErr != nil { + logger.Errorf("#EnbLoadInformationNotificationHandler.Handle - RAN name: %s - Failed saving RAN load information. Error: %v", request.RanName, rnibErr) + return + } + + logger.Infof("#EnbLoadInformationNotificationHandler.Handle - RAN name: %s - Successfully saved RAN load information to RNIB. elapsed: %f ms", request.RanName, elapsed(request.StartTime)) +} diff --git a/E2Manager/handlers/enb_load_information_notification_handler_test.go b/E2Manager/handlers/enb_load_information_notification_handler_test.go new file mode 100644 index 0000000..c3e31f0 --- /dev/null +++ b/E2Manager/handlers/enb_load_information_notification_handler_test.go @@ -0,0 +1,143 @@ +// +// Copyright 2019 AT&T Intellectual Property +// Copyright 2019 Nokia +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package handlers + +import ( + "e2mgr/logger" + "e2mgr/models" + "e2mgr/sessions" + "fmt" + "time" +) + +const ( + FullUperPdu string = "004c07080004001980da0100075bde017c148003d5a8205000017c180003d5a875555403331420000012883a0003547400cd20002801ea16007c1f07c1f107c1f0781e007c80800031a02c000c88199040a00352083669190000d8908020000be0c4001ead4016e007ab50100002f8320067ab5005b8c1ead5070190c00001d637805f220000f56a081400005f020000f56a1d555400ccc508002801ea16007c1f07c1f107c1f0781e007c80800031a02c000c88199040a00352083669190000d8908020000be044001ead4016e007ab50100002f8120067ab5005b8c1ead5070190c00000" + FullAperPdu string = "" // TODO: populate and use it + BasicUperPdu string = "004898000400190d0000074200017c148003d5a80000" + BasicAperPdu string = "" // TODO: populate and use it + GarbagePdu string = "12312312" +) + +func createNotificationRequest(ranName string, transactionId string, packedPdu string) (*models.NotificationRequest, error) { + var packedByteSlice []byte + + _, err := fmt.Sscanf(packedPdu, "%x", &packedByteSlice) + + if err != nil { + return nil, err + } + + return models.NewNotificationRequest(ranName, packedByteSlice, time.Now(), transactionId), nil +} + +func createNotificationRequestAndHandle(log *logger.Logger, ranName string, transactionId string, loadInformationHandler EnbLoadInformationNotificationHandler, pdu string) error { + notificationRequest, err := createNotificationRequest(ranName, transactionId, pdu) + + if err != nil { + return err + } + + loadInformationHandler.Handle(log, sessions.E2Sessions{}, notificationRequest, nil) + return nil +} + +//func TestLoadInformationHandlerSuccess(t *testing.T) { +// log, err := logger.InitLogger(logger.InfoLevel) +// if err != nil { +// t.Errorf("#setup_request_handler_test.TestLoadInformationHandlerSuccess - failed to initialize logger, error: %v", err) +// } +// +// inventoryName := "testRan" +// +// writerMock := &mocks.RnibWriterMock{} +// rnibWriterProvider := func() rNibWriter.RNibWriter { +// return writerMock +// } +// +// var rnibErr common.IRNibError +// writerMock.On("SaveRanLoadInformation",inventoryName, mock.Anything).Return(rnibErr) +// +// loadInformationHandler := NewEnbLoadInformationNotificationHandler(rnibWriterProvider) +// +// var packedExampleByteSlice []byte +// _, err = fmt.Sscanf(FullUperPdu, "%x", &packedExampleByteSlice) +// notificationRequest := models.NewNotificationRequest(inventoryName, packedExampleByteSlice, time.Now(), " 881828026419") +// loadInformationHandler.Handle(log, sessions.E2Sessions{}, notificationRequest, nil) +// +// writerMock.AssertNumberOfCalls(t, "SaveRanLoadInformation", 1) +//} +// +//func TestLoadInformationHandlerPayloadFailure(t *testing.T) { +// log, err := logger.InitLogger(logger.InfoLevel) +// if err != nil { +// t.Errorf("#setup_request_handler_test.TestLoadInformationHandlerPayloadFailure - failed to initialize logger, error: %v", err) +// } +// +// inventoryName := "testRan" +// +// writerMock := &mocks.RnibWriterMock{} +// rnibWriterProvider := func() rNibWriter.RNibWriter { +// return writerMock +// } +// +// var rnibErr common.IRNibError +// writerMock.On("SaveRanLoadInformation",inventoryName, mock.Anything).Return(rnibErr) +// +// loadInformationHandler := NewEnbLoadInformationNotificationHandler(rnibWriterProvider) +// +// var packedExampleByteSlice []byte +// _, err = fmt.Sscanf(GarbagePdu, "%x", &packedExampleByteSlice) +// notificationRequest := models.NewNotificationRequest(inventoryName, packedExampleByteSlice, time.Now(), " 881828026419") +// loadInformationHandler.Handle(log, sessions.E2Sessions{}, notificationRequest, nil) +// +// writerMock.AssertNumberOfCalls(t, "SaveRanLoadInformation", 0) +//} + +// Integration test +//func TestLoadInformationHandlerOverrideSuccess(t *testing.T) { +// log, err := logger.InitLogger(logger.InfoLevel) +// if err != nil { +// t.Errorf("#setup_request_handler_test.TestLoadInformationHandlerOverrideSuccess - failed to initialize logger, error: %s", err) +// } +// +// rNibWriter.Init("e2Manager", 1) +// defer rNibWriter.Close() +// reader.Init("e2Manager", 1) +// defer reader.Close() +// loadInformationHandler := NewEnbLoadInformationNotificationHandler(rNibWriter.GetRNibWriter) +// +// err = createNotificationRequestAndHandle(log, "ranName", " 881828026419", loadInformationHandler, FullUperPdu) +// +// if err != nil { +// t.Errorf("#setup_request_handler_test.TestLoadInformationHandlerOverrideSuccess - failed creating NotificationRequest, error: %v", err) +// } +// +// err = createNotificationRequestAndHandle(log, "ranName", " 881828026419", loadInformationHandler, BasicUperPdu) +// +// if err != nil { +// t.Errorf("#setup_request_handler_test.TestLoadInformationHandlerOverrideSuccess - failed creating NotificationRequest, error: %v", err) +// } +// +// ranLoadInformation, rnibErr := reader.GetRNibReader().GetRanLoadInformation("ranName") +// +// if (rnibErr != nil) { +// t.Errorf("#setup_request_handler_test.TestLoadInformationHandlerOverrideSuccess - RNIB error: %v", err) +// } +// +// assert.Len(t, ranLoadInformation.CellLoadInfos, 1) +//} diff --git a/E2Manager/handlers/enb_load_information_to_protobuf.go b/E2Manager/handlers/enb_load_information_to_protobuf.go index 67eb4ed..f40fa0e 100644 --- a/E2Manager/handlers/enb_load_information_to_protobuf.go +++ b/E2Manager/handlers/enb_load_information_to_protobuf.go @@ -12,7 +12,7 @@ import ( ) const ( - MaxCellineNb = 256 + MaxCellsInEnb = 256 MaxNoOfPrbs = 110 NaxNoOfCompHypothesisSet = 256 NaxNoOfCompCells = 32 @@ -64,7 +64,7 @@ func extractPduCellInformationItemIEs(pdu *C.E2AP_PDU_t) ([]*C.CellInformation_I loadInformationCellListCount := loadInformationCellList.list.count - if loadInformationCellListCount == 0 || loadInformationCellListCount > MaxCellineNb { + if loadInformationCellListCount == 0 || loadInformationCellListCount > MaxCellsInEnb { return nil, fmt.Errorf("#extractPduCellInformationItemIEs - Invalid CellInformation list count") } @@ -265,7 +265,7 @@ func extractPduUlHighInterferenceIndicationInfoItems(cellId string, cellInformat pduUlHighInterferenceIndicationInfoListCount := pduUlHighInterferenceIndicationInfo.list.count - if pduUlHighInterferenceIndicationInfoListCount == 0 || pduUlHighInterferenceIndicationInfoListCount > MaxCellineNb { + if pduUlHighInterferenceIndicationInfoListCount == 0 || pduUlHighInterferenceIndicationInfoListCount > MaxCellsInEnb { return nil, fmt.Errorf("#extractPduUlHighInterferenceIndicationInfoItems - cellId: %s - Invalid UL High Interference Indication info list count", cellId) } diff --git a/E2Manager/handlers/enb_load_information_to_protobuf_test.go b/E2Manager/handlers/enb_load_information_to_protobuf_test.go new file mode 100644 index 0000000..bf91125 --- /dev/null +++ b/E2Manager/handlers/enb_load_information_to_protobuf_test.go @@ -0,0 +1,271 @@ +/******************************************************************************* + * + * Copyright (c) 2019 AT&T Intellectual Property. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *******************************************************************************/ +package handlers + +import ( + "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities" +) + +/* +Test permutations of eNB Load Information to protobuf +*/ + +type LoadInformationTestCaseName string + +const LoadTimestamp = 1257894000000000000 + +const ( + SingleCellWithCellIdOnly LoadInformationTestCaseName = "SINGLE CELL WITH CELL ID ONLY" //base + SingleCellPartiallyPopulated LoadInformationTestCaseName = "SINGLE CELL PARTIALLY POPULATED" //8 + TwoCellsFullInfo LoadInformationTestCaseName = "TWO CELLS FULLY POPULATED" //13 +) + +type LoadInformationTestCase struct { + loadInformationTestCaseName LoadInformationTestCaseName + packedUperPdu string + packedAperPdu string + expectedLoadInformation *entities.RanLoadInformation +} + +var testCases = []LoadInformationTestCase{ + { + loadInformationTestCaseName: SingleCellWithCellIdOnly, + packedAperPdu: "000240140000010006400d00000740080002f8290007ab50", + packedUperPdu: "004898000400190d0000074200017c148003d5a80000", + expectedLoadInformation: GenerateSingleCellWithCellIdOnlyRanLoadInformation(), + }, + { + loadInformationTestCaseName: SingleCellPartiallyPopulated, + packedAperPdu: "", //TODO: populate and USE + packedUperPdu: "004b380004001961000007571e017c148003d5a8205000017c180003d5a875555003331420008007a85801f07c1f07c41f07c1e07801f2020000c680b0003220664102800d8908020000be0c4001ead4016e007ab50100002f8320067ab5005b8c1ead5070190c000000", + expectedLoadInformation: GenerateSingleCellPartiallyPopulatedLoadInformation(), + }, + { + loadInformationTestCaseName: TwoCellsFullInfo, + packedAperPdu: "", //TODO: populate and USE + packedUperPdu: "004c07080004001980da0100075bde017c148003d5a8205000017c180003d5a875555403331420000012883a0003547400cd20002801ea16007c1f07c1f107c1f0781e007c80800031a02c000c88199040a00352083669190000d8908020000be0c4001ead4016e007ab50100002f8320067ab5005b8c1ead5070190c00001d637805f220000f56a081400005f020000f56a1d555400ccc508002801ea16007c1f07c1f107c1f0781e007c80800031a02c000c88199040a00352083669190000d8908020000be044001ead4016e007ab50100002f8120067ab5005b8c1ead5070190c00000", + expectedLoadInformation: GenerateTwoCellsFullyPopulatedRanLoadInformation(), + }, +} + +//func TestExtractAndBuildRanLoadInformation(t *testing.T) { +// logger, _ := logger.InitLogger(logger.InfoLevel) +// +// for _, tc := range testCases { +// t.Run(string(tc.loadInformationTestCaseName), func(t *testing.T) { +// +// var payload []byte +// _, err := fmt.Sscanf(tc.packedUperPdu, "%x", &payload) +// +// if err != nil { +// t.Errorf("convert inputPayloadAsStr to payloadAsByte. Error: %v\n", err) +// } +// +// pdu, err := unpackX2apPduUPer(logger, MaxAsn1CodecAllocationBufferSize, len(payload), payload, MaxAsn1CodecMessageBufferSize) +// +// actualRanLoadInformation := &entities.RanLoadInformation{LoadTimestamp: LoadTimestamp} +// +// err = extractAndBuildRanLoadInformation(pdu, actualRanLoadInformation) +// +// if err != nil { +// t.Errorf("want: success, got: error: %v\n", err) +// } +// +// if !assert.Equal(t, tc.expectedLoadInformation, actualRanLoadInformation) { +// t.Errorf("want: %v, got: %v", tc.expectedLoadInformation, actualRanLoadInformation) +// } +// }) +// } +//} + +func GenerateSingleCellWithCellIdOnlyRanLoadInformation() *entities.RanLoadInformation { + return &entities.RanLoadInformation{ + LoadTimestamp: LoadTimestamp, + CellLoadInfos: []*entities.CellLoadInformation{ + {CellId: "02f829:0007ab50"}, + }, + } +} + +func GenerateSingleCellPartiallyPopulatedLoadInformation() *entities.RanLoadInformation { + + ulInterferenceOverloadIndications := []entities.UlInterferenceOverloadIndication{ + entities.UlInterferenceOverloadIndication_HIGH_INTERFERENCE, + entities.UlInterferenceOverloadIndication_MEDIUM_INTERFERENCE, + entities.UlInterferenceOverloadIndication_LOW_INTERFERENCE, + } + + rntp := entities.RelativeNarrowbandTxPower{ + RntpPerPrb: "cc", + RntpThreshold: entities.RntpThreshold_NEG_6, + NumberOfCellSpecificAntennaPorts: entities.NumberOfCellSpecificAntennaPorts_V2_ANT_PRT, + PB: 2, + PdcchInterferenceImpact: 1, + } + + absInformation := entities.AbsInformation{ + Mode: entities.AbsInformationMode_ABS_INFO_FDD, + AbsPatternInfo: "07c1f07c1f", + NumberOfCellSpecificAntennaPorts: entities.NumberOfCellSpecificAntennaPorts_V1_ANT_PRT, + MeasurementSubset: "83e0f83c0f", + } + + extendedUlInterferenceOverloadInfo := entities.ExtendedUlInterferenceOverloadInfo{ + AssociatedSubframes: "c8", + ExtendedUlInterferenceOverloadIndications: ulInterferenceOverloadIndications, + } + + compInformationStartTime := entities.StartTime{ + StartSfn: 50, + StartSubframeNumber: 3, + } + + return &entities.RanLoadInformation{ + LoadTimestamp: LoadTimestamp, + CellLoadInfos: []*entities.CellLoadInformation{ + { + CellId: "02f829:0007ab50", + UlInterferenceOverloadIndications: ulInterferenceOverloadIndications, + UlHighInterferenceInfos: []*entities.UlHighInterferenceInformation{{TargetCellId: "02f830:0007ab50", UlHighInterferenceIndication: "aaaa"}}, + RelativeNarrowbandTxPower: &rntp, + AbsInformation: &absInformation, + InvokeIndication: entities.InvokeIndication_ABS_INFORMATION, + IntendedUlDlConfiguration: entities.SubframeAssignment_SA6, + ExtendedUlInterferenceOverloadInfo: &extendedUlInterferenceOverloadInfo, + CompInformation: &entities.CompInformation{ + CompInformationItems: []*entities.CompInformationItem{ + { + CompHypothesisSets: []*entities.CompHypothesisSet{{CellId: "02f831:0007ab50", CompHypothesis: "e007ab50"}}, + BenefitMetric: -99, + }, + { + CompHypothesisSets: []*entities.CompHypothesisSet{{CellId: "02f832:0067ab50", CompHypothesis: "e307ab50"}}, + BenefitMetric: 30, + }, + }, + CompInformationStartTime: &compInformationStartTime, + }, + }, + }, + } + +} + +func GenerateTwoCellsFullyPopulatedRanLoadInformation() *entities.RanLoadInformation { + + ulInterferenceOverloadIndications := []entities.UlInterferenceOverloadIndication{ + entities.UlInterferenceOverloadIndication_HIGH_INTERFERENCE, + entities.UlInterferenceOverloadIndication_MEDIUM_INTERFERENCE, + entities.UlInterferenceOverloadIndication_LOW_INTERFERENCE, + } + + rntp := entities.RelativeNarrowbandTxPower{ + RntpPerPrb: "cc", + RntpThreshold: entities.RntpThreshold_NEG_6, + NumberOfCellSpecificAntennaPorts: entities.NumberOfCellSpecificAntennaPorts_V2_ANT_PRT, + PB: 2, + PdcchInterferenceImpact: 1, + } + + enhancedRntp := entities.EnhancedRntp{ + EnhancedRntpBitmap: "aa38", + RntpHighPowerThreshold: entities.RntpThreshold_NEG_4, + EnhancedRntpStartTime: &entities.StartTime{StartSfn: 51, StartSubframeNumber: 9}, + } + + rntpWithEnhanced := rntp + rntpWithEnhanced.EnhancedRntp = &enhancedRntp + + absInformation := entities.AbsInformation{ + Mode: entities.AbsInformationMode_ABS_INFO_FDD, + AbsPatternInfo: "07c1f07c1f", + NumberOfCellSpecificAntennaPorts: entities.NumberOfCellSpecificAntennaPorts_V1_ANT_PRT, + MeasurementSubset: "83e0f83c0f", + } + + extendedUlInterferenceOverloadInfo := entities.ExtendedUlInterferenceOverloadInfo{ + AssociatedSubframes: "c8", + ExtendedUlInterferenceOverloadIndications: ulInterferenceOverloadIndications, + } + + compInformationStartTime := entities.StartTime{ + StartSfn: 50, + StartSubframeNumber: 3, + } + + dynamicDlTransmissionInformation := entities.DynamicDlTransmissionInformation{ + State: entities.NaicsState_NAICS_ACTIVE, + TransmissionModes: "cd", + PB: 0, + PAList: []entities.PA{entities.PA_DB_NEG_1_DOT_77, entities.PA_DB_NEG_3}, + } + + return &entities.RanLoadInformation{ + LoadTimestamp: LoadTimestamp, + CellLoadInfos: []*entities.CellLoadInformation{ + { + CellId: "02f829:0007ab50", + UlInterferenceOverloadIndications: ulInterferenceOverloadIndications, + UlHighInterferenceInfos: []*entities.UlHighInterferenceInformation{{TargetCellId: "02f830:0007ab50", UlHighInterferenceIndication: "aaaa"}}, + RelativeNarrowbandTxPower: &rntpWithEnhanced, + AbsInformation: &absInformation, + InvokeIndication: entities.InvokeIndication_ABS_INFORMATION, + IntendedUlDlConfiguration: entities.SubframeAssignment_SA6, + ExtendedUlInterferenceOverloadInfo: &extendedUlInterferenceOverloadInfo, + CompInformation: &entities.CompInformation{ + CompInformationItems: []*entities.CompInformationItem{ + { + CompHypothesisSets: []*entities.CompHypothesisSet{{CellId: "02f831:0007ab50", CompHypothesis: "e007ab50"}}, + BenefitMetric: -99, + }, + { + CompHypothesisSets: []*entities.CompHypothesisSet{{CellId: "02f832:0067ab50", CompHypothesis: "e307ab50"}}, + BenefitMetric: 30, + }, + }, + CompInformationStartTime: &compInformationStartTime, + }, + DynamicDlTransmissionInformation: &dynamicDlTransmissionInformation, + }, + { + CellId: "02f910:0007ab50", + UlInterferenceOverloadIndications: ulInterferenceOverloadIndications, + UlHighInterferenceInfos: []*entities.UlHighInterferenceInformation{{TargetCellId: "02f810:0007ab50", UlHighInterferenceIndication: "aaaa"}}, + RelativeNarrowbandTxPower: &rntp, + AbsInformation: &absInformation, + InvokeIndication: entities.InvokeIndication_ABS_INFORMATION, + IntendedUlDlConfiguration: entities.SubframeAssignment_SA6, + ExtendedUlInterferenceOverloadInfo: &extendedUlInterferenceOverloadInfo, + CompInformation: &entities.CompInformation{ + CompInformationItems: []*entities.CompInformationItem{ + { + CompHypothesisSets: []*entities.CompHypothesisSet{{CellId: "02f811:0007ab50", CompHypothesis: "e007ab50"}}, + BenefitMetric: -99, + }, + { + CompHypothesisSets: []*entities.CompHypothesisSet{{CellId: "02f812:0067ab50", CompHypothesis: "e307ab50"}}, + BenefitMetric: 30, + }, + }, + CompInformationStartTime: &compInformationStartTime, + }, + DynamicDlTransmissionInformation: &dynamicDlTransmissionInformation, + }, + }, + } +} diff --git a/E2Manager/handlers/ric_enb_load_information_notification_handler.go b/E2Manager/handlers/ric_enb_load_information_notification_handler.go deleted file mode 100644 index ef67231..0000000 --- a/E2Manager/handlers/ric_enb_load_information_notification_handler.go +++ /dev/null @@ -1,58 +0,0 @@ -package handlers - -import "C" -import ( - "e2mgr/logger" - "e2mgr/models" - "e2mgr/rNibWriter" - "e2mgr/sessions" - "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities" - "time" -) - -type RicEnbLoadInformationNotificationHandler struct{} - -func elapsed(startTime time.Time) float64 { - return float64(time.Since(startTime)) / float64(time.Millisecond) -} - -func (src RicEnbLoadInformationNotificationHandler) Handle(logger *logger.Logger, e2Sessions sessions.E2Sessions, request *models.NotificationRequest, messageChannel chan<- *models.NotificationResponse) { - - pdu, err := unpackX2apPdu(logger, MaxAsn1CodecAllocationBufferSize, request.Len, request.Payload, MaxAsn1CodecMessageBufferSize) - - //packedExampleString := "004c07080004001980da0100075bde017c148003d5a8205000017c180003d5a875555403331420000012883a0003547400cd20002801ea16007c1f07c1f107c1f0781e007c80800031a02c000c88199040a00352083669190000d8908020000be0c4001ead4016e007ab50100002f8320067ab5005b8c1ead5070190c00001d637805f220000f56a081400005f020000f56a1d555400ccc508002801ea16007c1f07c1f107c1f0781e007c80800031a02c000c88199040a00352083669190000d8908020000be044001ead4016e007ab50100002f8120067ab5005b8c1ead5070190c00000" - // - //var packedExampleByteSlice []byte - // - //_, err := fmt.Sscanf(packedExampleString, "%x", &packedExampleByteSlice) - // - //pdu, err := unpackX2apPduUPer(logger, MaxAsn1CodecAllocationBufferSize, len(packedExampleByteSlice), packedExampleByteSlice, MaxAsn1CodecMessageBufferSize) - - - if err != nil { - logger.Errorf("#RicEnbLoadInformationNotificationHandler.Handle - RAN name: %s - Unpack failed. Error: %v", request.RanName, err) - return - } - - logger.Debugf("#RicEnbLoadInformationNotificationHandler.Handle - RAN name: %s - Unpacked message successfully", request.RanName) - - ranLoadInformation := &entities.RanLoadInformation{LoadTimestamp: uint64(request.StartTime.UnixNano())} - - err = extractAndBuildRanLoadInformation(pdu, ranLoadInformation) - - if (err != nil) { - logger.Errorf("#RicEnbLoadInformationNotificationHandler.Handle - RAN name: %s - Failed at extractAndBuildRanLoadInformation. Error: %v", request.RanName, err) - return - } - - logger.Debugf("#RicEnbLoadInformationNotificationHandler.Handle - RAN name: %s - Successfully done with extracting and building RAN load information. elapsed: %f ms", request.RanName, elapsed(request.StartTime)) - - rnibErr := rNibWriter.GetRNibWriter().SaveRanLoadInformation(request.RanName, ranLoadInformation) // TODO: Should inject RnibWriter - - if rnibErr != nil { - logger.Errorf("#RicEnbLoadInformationNotificationHandler.Handle - RAN name: %s - Failed saving RAN load information. Error: %v", request.RanName, rnibErr) - return - } - - logger.Debugf("#RicEnbLoadInformationNotificationHandler.Handle - RAN name: %s - Successfully saved RAN load information to RNIB. elapsed: %f ms", request.RanName, elapsed(request.StartTime)) -} diff --git a/E2Manager/handlers/x2apPdu_asn1_unpacker.go b/E2Manager/handlers/x2apPdu_asn1_unpacker.go index 592ba77..3a89e5c 100644 --- a/E2Manager/handlers/x2apPdu_asn1_unpacker.go +++ b/E2Manager/handlers/x2apPdu_asn1_unpacker.go @@ -28,27 +28,7 @@ import ( "github.com/pkg/errors" "unsafe" ) -func unpackX2apPduUPer(logger *logger.Logger, allocationBufferSize int, packedBufferSize int, packedBuf []byte, maxMessageBufferSize int) (*C.E2AP_PDU_t, error) { - pdu := C.new_pdu(C.ulong(allocationBufferSize)) - - if pdu == nil { - return nil, errors.New("allocation failure (pdu)") - } - - logger.Debugf("#x2apPdu_asn1_unpacker.unpackX2apPduUPer - Packed pdu(%d):%x", packedBufferSize, packedBuf) - - errBuf := make([]C.char, maxMessageBufferSize) - if !C.unpack_pdu_aux(pdu, C.ulong(packedBufferSize), (*C.uchar)(unsafe.Pointer(&packedBuf[0])), C.ulong(len(errBuf)), &errBuf[0], C.ATS_UNALIGNED_BASIC_PER) { - return nil, errors.New(fmt.Sprintf("unpacking error: %s", C.GoString(&errBuf[0]))) - } - - if logger.DebugEnabled() { - C.asn1_pdu_printer(pdu, C.size_t(len(errBuf)), &errBuf[0]) - logger.Debugf("#x2apPdu_asn1_unpacker.unpackX2apPduUPer - PDU: %v packed size:%d", C.GoString(&errBuf[0]), packedBufferSize) - } - return pdu, nil -} type X2PduRefinedResponse struct { pduPrint string } diff --git a/E2Manager/managers/notification_manager.go b/E2Manager/managers/notification_manager.go index 72b42a9..9e9673d 100644 --- a/E2Manager/managers/notification_manager.go +++ b/E2Manager/managers/notification_manager.go @@ -29,7 +29,7 @@ import ( "time" ) -type NotificationManager struct{ +type NotificationManager struct { rnibReaderProvider func() reader.RNibReader rnibWriterProvider func() rNibWriter.RNibWriter } @@ -40,8 +40,9 @@ func NewNotificationManager(rnibReaderProvider func() reader.RNibReader, rnibWri rnibWriterProvider: rnibWriterProvider, } } + //TODO add NEWHandler with log -func (m NotificationManager) HandleMessage(logger *logger.Logger, e2Sessions sessions.E2Sessions, mbuf *rmrCgo.MBuf, responseChannel chan<- *models.NotificationResponse){ +func (m NotificationManager) HandleMessage(logger *logger.Logger, e2Sessions sessions.E2Sessions, mbuf *rmrCgo.MBuf, responseChannel chan<- *models.NotificationResponse) { provider := providers.NewNotificationHandlerProvider(m.rnibReaderProvider, m.rnibWriterProvider) notificationHandler, err := provider.GetNotificationHandler(mbuf.MType) @@ -51,8 +52,6 @@ func (m NotificationManager) HandleMessage(logger *logger.Logger, e2Sessions ses return } - notificationRequest := models.NotificationRequest{RanName: mbuf.Meid, Len: mbuf.Len, Payload: *mbuf.Payload, - StartTime: time.Now(), TransactionId: string(*mbuf.XAction)} - - go notificationHandler.Handle(logger, e2Sessions, ¬ificationRequest, responseChannel) -} \ No newline at end of file + notificationRequest := models.NewNotificationRequest(mbuf.Meid, *mbuf.Payload, time.Now(), string(*mbuf.XAction)) + go notificationHandler.Handle(logger, e2Sessions, notificationRequest, responseChannel) +} diff --git a/E2Manager/mocks/rnibReaderMock.go b/E2Manager/mocks/rnibReaderMock.go index 0d8df33..43f9d90 100644 --- a/E2Manager/mocks/rnibReaderMock.go +++ b/E2Manager/mocks/rnibReaderMock.go @@ -17,8 +17,8 @@ package mocks import ( - "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities" "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common" + "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities" "github.com/stretchr/testify/mock" ) @@ -29,7 +29,6 @@ type RnibReaderMock struct { func (m *RnibReaderMock) GetNodeb(inventoryName string) (*entities.NodebInfo, common.IRNibError) { args := m.Called(inventoryName) - errArg := args.Get(1); if errArg != nil { @@ -51,7 +50,7 @@ func (m *RnibReaderMock) GetNodebByGlobalNbId(nodeType entities.Node_Type, globa return args.Get(0).(*entities.NodebInfo), nil } -func (m *RnibReaderMock) GetCellList(inventoryName string) (*entities.Cells, common.IRNibError) { +func (m *RnibReaderMock) GetCellList(inventoryName string) (*entities.Cells, common.IRNibError) { args := m.Called(inventoryName) errArg := args.Get(1); @@ -63,7 +62,7 @@ func (m *RnibReaderMock) GetCellList(inventoryName string) (*entities.Cells, co return args.Get(0).(*entities.Cells), nil } -func (m *RnibReaderMock) GetListGnbIds()(*[]*entities.NbIdentity, common.IRNibError) { +func (m *RnibReaderMock) GetListGnbIds() (*[]*entities.NbIdentity, common.IRNibError) { args := m.Called() errArg := args.Get(1); @@ -75,7 +74,7 @@ func (m *RnibReaderMock) GetListGnbIds()(*[]*entities.NbIdentity, common.IRNibEr return args.Get(0).(*[]*entities.NbIdentity), nil } -func (m *RnibReaderMock) GetListEnbIds()(*[]*entities.NbIdentity, common.IRNibError) { +func (m *RnibReaderMock) GetListEnbIds() (*[]*entities.NbIdentity, common.IRNibError) { args := m.Called() errArg := args.Get(1); @@ -88,7 +87,7 @@ func (m *RnibReaderMock) GetListEnbIds()(*[]*entities.NbIdentity, common.IRNibEr } -func (m *RnibReaderMock) GetCountGnbList()(int, common.IRNibError) { +func (m *RnibReaderMock) GetCountGnbList() (int, common.IRNibError) { args := m.Called() errArg := args.Get(1); @@ -125,7 +124,7 @@ func (m *RnibReaderMock) GetCellById(cellType entities.Cell_Type, cellId string) return args.Get(0).(*entities.Cell), nil } -func (m *RnibReaderMock) GetListNodebIds()([]*entities.NbIdentity, common.IRNibError){ +func (m *RnibReaderMock) GetListNodebIds() ([]*entities.NbIdentity, common.IRNibError) { args := m.Called() errArg := args.Get(1) @@ -137,7 +136,7 @@ func (m *RnibReaderMock) GetListNodebIds()([]*entities.NbIdentity, common.IRNibE return args.Get(0).([]*entities.NbIdentity), nil } -func (m *RnibReaderMock) GetRanLoadInformation(inventoryName string) (*entities.RanLoadInformation, common.IRNibError){ +func (m *RnibReaderMock) GetRanLoadInformation(inventoryName string) (*entities.RanLoadInformation, common.IRNibError) { args := m.Called() errArg := args.Get(1) @@ -147,4 +146,4 @@ func (m *RnibReaderMock) GetRanLoadInformation(inventoryName string) (*entities. } return args.Get(0).(*entities.RanLoadInformation), nil -} \ No newline at end of file +} diff --git a/E2Manager/models/notification_request.go b/E2Manager/models/notification_request.go index 4f3cf96..ebbeeb6 100644 --- a/E2Manager/models/notification_request.go +++ b/E2Manager/models/notification_request.go @@ -21,8 +21,18 @@ import "time" type NotificationRequest struct { RanName string - Len int + Len int Payload []byte - StartTime time.Time + StartTime time.Time TransactionId string } + +func NewNotificationRequest(ranName string, payload []byte, startTime time.Time, transactionId string) *NotificationRequest { + return &NotificationRequest{ + ranName, + len(payload), + payload, + startTime, + transactionId, + } +} diff --git a/E2Manager/providers/notification_handler_provider.go b/E2Manager/providers/notification_handler_provider.go index 534a598..cae4e95 100644 --- a/E2Manager/providers/notification_handler_provider.go +++ b/E2Manager/providers/notification_handler_provider.go @@ -47,7 +47,7 @@ func initNotificationHandlersMap(rnibReaderProvider func() reader.RNibReader, rn rmrCgo.RIC_ENDC_X2_SETUP_RESP: handlers.EndcX2SetupResponseNotificationHandler{}, rmrCgo.RIC_ENDC_X2_SETUP_FAILURE: handlers.EndcX2SetupFailureResponseNotificationHandler{}, rmrCgo.RIC_SCTP_CONNECTION_FAILURE: handlers.NewRanLostConnectionHandler(rnibReaderProvider, rnibWriterProvider), - rmrCgo.RIC_ENB_LOAD_INFORMATION: handlers.RicEnbLoadInformationNotificationHandler{}, + rmrCgo.RIC_ENB_LOAD_INFORMATION: handlers.NewEnbLoadInformationNotificationHandler(rnibWriterProvider), rmrCgo.RIC_ENB_CONF_UPDATE: handlers.X2EnbConfigurationUpdateHandler{}, rmrCgo.RIC_ENDC_CONF_UPDATE: handlers.EndcConfigurationUpdateHandler{}, rmrCgo.RIC_X2_RESET_RESP: handlers.NewX2ResetResponseHandler(rnibReaderProvider), diff --git a/E2Manager/providers/notification_handler_provider_test.go b/E2Manager/providers/notification_handler_provider_test.go index ecdd744..974de02 100644 --- a/E2Manager/providers/notification_handler_provider_test.go +++ b/E2Manager/providers/notification_handler_provider_test.go @@ -34,7 +34,7 @@ import ( */ func TestGetNotificationHandlerSuccess(t *testing.T) { - readerMock :=&mocks.RnibReaderMock{} + readerMock := &mocks.RnibReaderMock{} rnibReaderProvider := func() reader.RNibReader { return readerMock } @@ -48,10 +48,10 @@ func TestGetNotificationHandlerSuccess(t *testing.T) { }{ {rmrCgo.RIC_X2_SETUP_RESP /*successful x2 setup response*/, handlers.X2SetupResponseNotificationHandler{}}, {rmrCgo.RIC_X2_SETUP_FAILURE /*unsuccessful x2 setup response*/, handlers.X2SetupFailureResponseNotificationHandler{}}, - {rmrCgo.RIC_ENDC_X2_SETUP_RESP /*successful en-dc x2 setup response*/,handlers.EndcX2SetupResponseNotificationHandler{}}, - {rmrCgo.RIC_ENDC_X2_SETUP_FAILURE /*unsuccessful en-dc x2 setup response*/,handlers.EndcX2SetupFailureResponseNotificationHandler{}}, + {rmrCgo.RIC_ENDC_X2_SETUP_RESP /*successful en-dc x2 setup response*/, handlers.EndcX2SetupResponseNotificationHandler{}}, + {rmrCgo.RIC_ENDC_X2_SETUP_FAILURE /*unsuccessful en-dc x2 setup response*/, handlers.EndcX2SetupFailureResponseNotificationHandler{}}, {rmrCgo.RIC_SCTP_CONNECTION_FAILURE /*sctp errors*/, handlers.NewRanLostConnectionHandler(rnibReaderProvider, rnibWriterProvider)}, - {rmrCgo.RIC_ENB_LOAD_INFORMATION, handlers.RicEnbLoadInformationNotificationHandler{}}, + {rmrCgo.RIC_ENB_LOAD_INFORMATION, handlers.NewEnbLoadInformationNotificationHandler(rnibWriterProvider)}, {rmrCgo.RIC_ENB_CONF_UPDATE, handlers.X2EnbConfigurationUpdateHandler{}}, {rmrCgo.RIC_ENDC_CONF_UPDATE, handlers.EndcConfigurationUpdateHandler{}}, } @@ -66,7 +66,7 @@ func TestGetNotificationHandlerSuccess(t *testing.T) { //Note struct is empty, so it will match any other empty struct. // https://golang.org/ref/spec#Comparison_operators: Struct values are comparable if all their fields are comparable. Two struct values are equal if their corresponding non-blank fields are equal. if /*handler != tc.handler &&*/ strings.Compare(fmt.Sprintf("%T", handler), fmt.Sprintf("%T", tc.handler)) != 0 { - t.Errorf("want: handler %T for message type %d, got: %T", tc.handler,tc.msgType, handler) + t.Errorf("want: handler %T for message type %d, got: %T", tc.handler, tc.msgType, handler) } }) } @@ -84,7 +84,7 @@ func TestGetNotificationHandlerFailure(t *testing.T) { {9999 /*unknown*/, "notification handler not found"}, } for _, tc := range testCases { - readerMock :=&mocks.RnibReaderMock{} + readerMock := &mocks.RnibReaderMock{} rnibReaderProvider := func() reader.RNibReader { return readerMock }