From 6b3796f1b3cbdc0ec389d50dd98fbf6ef2aae720 Mon Sep 17 00:00:00 2001 From: Anssi Mannila Date: Fri, 12 Feb 2021 09:11:35 +0200 Subject: [PATCH] Metrics related code refactoring Change-Id: Ia7b6b9fe2c8a75b3e52b0b0dfe4899047609d3a1 Signed-off-by: Anssi Mannila --- pkg/control/control.go | 16 +-- pkg/control/metrics_test.go | 52 ++++----- pkg/control/sdl.go | 3 +- pkg/control/ut_ctrl_submgr_test.go | 13 ++- pkg/control/ut_messaging_test.go | 214 +++++++++++++++++++------------------ 5 files changed, 157 insertions(+), 141 deletions(-) diff --git a/pkg/control/control.go b/pkg/control/control.go index 6111c63..182e06f 100755 --- a/pkg/control/control.go +++ b/pkg/control/control.go @@ -360,8 +360,7 @@ func (c *Control) handleXAPPSubscriptionRequest(params *xapp.RMRParams) { } defer trans.Release() - err = c.tracker.Track(trans) - if err != nil { + if err = c.tracker.Track(trans); err != nil { xapp.Logger.Error("XAPP-SubReq: %s", idstring(err, trans)) return } @@ -373,12 +372,17 @@ func (c *Control) handleXAPPSubscriptionRequest(params *xapp.RMRParams) { return } - // - // Wake subs request - // + c.wakeSubscriptionRequest(subs, trans) +} + +//------------------------------------------------------------------- +// Wake Subscription Request to E2node +//------------------------------------------------------------------ +func (c *Control) wakeSubscriptionRequest(subs *Subscription, trans *TransactionXapp) { + go c.handleSubscriptionCreate(subs, trans) event, _ := trans.WaitEvent(0) //blocked wait as timeout is handled in subs side - err = nil + var err error if event != nil { switch themsg := event.(type) { case *e2ap.E2APSubscriptionResponse: diff --git a/pkg/control/metrics_test.go b/pkg/control/metrics_test.go index 3f0c41c..82f621f 100644 --- a/pkg/control/metrics_test.go +++ b/pkg/control/metrics_test.go @@ -26,32 +26,32 @@ import ( func TestAddAllCountersOnce(t *testing.T) { // Check that all counters can be added correctly - mainCtrl.SetTimesCounterWillBeAdded(cSubReqFromXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubRespToXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubFailToXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubReReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubRespFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubFailFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubReqTimerExpiry, 1) - mainCtrl.SetTimesCounterWillBeAdded(cRouteCreateFail, 1) - mainCtrl.SetTimesCounterWillBeAdded(cRouteCreateUpdateFail, 1) - mainCtrl.SetTimesCounterWillBeAdded(cMergedSubscriptions, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqFromXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespToXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelFailFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqTimerExpiry, 1) - mainCtrl.SetTimesCounterWillBeAdded(cRouteDeleteFail, 1) - mainCtrl.SetTimesCounterWillBeAdded(cRouteDeleteUpdateFail, 1) - mainCtrl.SetTimesCounterWillBeAdded(cUnmergedSubscriptions, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSDLWriteFailure, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSDLReadFailure, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSDLRemoveFailure, 1) - - mainCtrl.GetCounterValuesBefore(t) + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 1}, + Counter{cSubReqFromXapp, 1}, + Counter{cSubRespToXapp, 1}, + Counter{cSubReqToE2, 1}, + Counter{cSubReReqToE2, 1}, + Counter{cSubRespFromE2, 1}, + Counter{cSubFailFromE2, 1}, + Counter{cSubReqTimerExpiry, 1}, + Counter{cRouteCreateFail, 1}, + Counter{cRouteCreateUpdateFail, 1}, + Counter{cMergedSubscriptions, 1}, + Counter{cSubDelReqFromXapp, 1}, + Counter{cSubDelRespToXapp, 1}, + Counter{cSubDelReqToE2, 1}, + Counter{cSubDelReReqToE2, 1}, + Counter{cSubDelRespFromE2, 1}, + Counter{cSubDelFailFromE2, 1}, + Counter{cSubDelReqTimerExpiry, 1}, + Counter{cRouteDeleteFail, 1}, + Counter{cRouteDeleteUpdateFail, 1}, + Counter{cUnmergedSubscriptions, 1}, + Counter{cSDLWriteFailure, 1}, + Counter{cSDLReadFailure, 1}, + Counter{cSDLRemoveFailure, 1}, + }) mainCtrl.c.UpdateCounter(cSubReqFromXapp) mainCtrl.c.UpdateCounter(cSubRespToXapp) diff --git a/pkg/control/sdl.go b/pkg/control/sdl.go index f179975..0d7f845 100644 --- a/pkg/control/sdl.go +++ b/pkg/control/sdl.go @@ -200,8 +200,7 @@ func (c *Control) ReadAllSubscriptionsFromSdl() ([]uint32, map[uint32]*Subscript retMap[subscriptionInfo.ReqId.InstanceId] = subs // Remove subId from free subIds. Original slice is modified here! - subIds, err = removeNumber(subIds, subscriptionInfo.ReqId.InstanceId) - if err != nil { + if subIds, err = removeNumber(subIds, subscriptionInfo.ReqId.InstanceId); err != nil { return nil, nil, fmt.Errorf("SDL: ReadAllSubscriptionsFromSdl() error: %s\n", err.Error()) } } diff --git a/pkg/control/ut_ctrl_submgr_test.go b/pkg/control/ut_ctrl_submgr_test.go index bc1435a..009e70b 100644 --- a/pkg/control/ut_ctrl_submgr_test.go +++ b/pkg/control/ut_ctrl_submgr_test.go @@ -46,6 +46,8 @@ type Counter struct { Value uint64 } +type CountersToBeAdded []Counter + var countersBeforeMap map[string]Counter var toBeAddedCountersMap map[string]Counter @@ -258,14 +260,15 @@ func (mc *testingSubmgrControl) GetMetrics(t *testing.T) (string, error) { return string(respBody[:]), nil } -func (mc *testingSubmgrControl) SetTimesCounterWillBeAdded(counterName string, addedValue uint64) { +func (mc *testingSubmgrControl) CounterValuesToBeVeriefied(t *testing.T, countersToBeAdded CountersToBeAdded) { + if len(toBeAddedCountersMap) == 0 { toBeAddedCountersMap = make(map[string]Counter) } - counter := Counter{} - counter.Name = counterName - counter.Value = addedValue - toBeAddedCountersMap[counterName] = counter + for _, counter := range countersToBeAdded { + toBeAddedCountersMap[counter.Name] = counter + } + mc.GetCounterValuesBefore(t) } func (mc *testingSubmgrControl) GetCounterValuesBefore(t *testing.T) { diff --git a/pkg/control/ut_messaging_test.go b/pkg/control/ut_messaging_test.go index e1d3424..f4c7159 100644 --- a/pkg/control/ut_messaging_test.go +++ b/pkg/control/ut_messaging_test.go @@ -56,9 +56,10 @@ func TestSubReqAndRouteNok(t *testing.T) { CaseBegin("TestSubReqAndRouteNok") // Init counter check - mainCtrl.SetTimesCounterWillBeAdded(cSubReqFromXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cRouteCreateFail, 1) - mainCtrl.GetCounterValuesBefore(t) + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 1}, + Counter{cRouteCreateFail, 1}, + }) waiter := rtmgrHttp.AllocNextEvent(false) newSubsId := mainCtrl.get_registry_next_subid(t) @@ -108,17 +109,17 @@ func TestSubReqAndRouteUpdateNok(t *testing.T) { CaseBegin("TestSubReqAndRouteUpdateNok") // Init counter check - mainCtrl.SetTimesCounterWillBeAdded(cSubReqFromXapp, 2) - mainCtrl.SetTimesCounterWillBeAdded(cSubReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubRespFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubRespToXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cRouteCreateUpdateFail, 1) - - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqFromXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespToXapp, 1) - mainCtrl.GetCounterValuesBefore(t) + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 2}, + Counter{cSubReqToE2, 1}, + Counter{cSubRespFromE2, 1}, + Counter{cSubRespToXapp, 1}, + Counter{cRouteCreateUpdateFail, 1}, + Counter{cSubDelReqFromXapp, 1}, + Counter{cSubDelReqToE2, 1}, + Counter{cSubDelRespFromE2, 1}, + Counter{cSubDelRespToXapp, 1}, + }) cretrans := xappConn1.SendSubsReq(t, nil, nil) crereq, cremsg := e2termConn1.RecvSubsReq(t) @@ -184,17 +185,17 @@ func TestSubDelReqAndRouteDeleteNok(t *testing.T) { CaseBegin("TestSubDelReqAndRouteDeleteNok") // Init counter check - mainCtrl.SetTimesCounterWillBeAdded(cSubReqFromXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubRespFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubRespToXapp, 1) - - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqFromXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cRouteDeleteFail, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespToXapp, 1) - mainCtrl.GetCounterValuesBefore(t) + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 1}, + Counter{cSubReqToE2, 1}, + Counter{cSubRespFromE2, 1}, + Counter{cSubRespToXapp, 1}, + Counter{cSubDelReqFromXapp, 1}, + Counter{cRouteDeleteFail, 1}, + Counter{cSubDelReqToE2, 1}, + Counter{cSubDelRespFromE2, 1}, + Counter{cSubDelRespToXapp, 1}, + }) cretrans := xappConn1.SendSubsReq(t, nil, nil) crereq, cremsg := e2termConn1.RecvSubsReq(t) @@ -280,17 +281,17 @@ func TestSubMergeDelAndRouteUpdateNok(t *testing.T) { CaseBegin("TestSubMergeDelAndRouteUpdateNok") // Init counter check - mainCtrl.SetTimesCounterWillBeAdded(cSubReqFromXapp, 2) - mainCtrl.SetTimesCounterWillBeAdded(cSubReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubRespFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubRespToXapp, 2) - - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqFromXapp, 2) - mainCtrl.SetTimesCounterWillBeAdded(cRouteDeleteUpdateFail, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespToXapp, 2) - mainCtrl.GetCounterValuesBefore(t) + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 2}, + Counter{cSubReqToE2, 1}, + Counter{cSubRespFromE2, 1}, + Counter{cSubRespToXapp, 2}, + Counter{cSubDelReqFromXapp, 2}, + Counter{cRouteDeleteUpdateFail, 1}, + Counter{cSubDelReqToE2, 1}, + Counter{cSubDelRespFromE2, 1}, + Counter{cSubDelRespToXapp, 2}, + }) //Req1 rparams1 := &teststube2ap.E2StubSubsReqParams{} @@ -374,16 +375,16 @@ func TestSubReqAndSubDelOk(t *testing.T) { CaseBegin("TestSubReqAndSubDelOk") // Init counter check - mainCtrl.SetTimesCounterWillBeAdded(cSubReqFromXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubRespFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubRespToXapp, 1) - - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqFromXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespToXapp, 1) - mainCtrl.GetCounterValuesBefore(t) + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 1}, + Counter{cSubReqToE2, 1}, + Counter{cSubRespFromE2, 1}, + Counter{cSubRespToXapp, 1}, + Counter{cSubDelReqFromXapp, 1}, + Counter{cSubDelReqToE2, 1}, + Counter{cSubDelRespFromE2, 1}, + Counter{cSubDelRespToXapp, 1}, + }) cretrans := xappConn1.SendSubsReq(t, nil, nil) crereq, cremsg := e2termConn1.RecvSubsReq(t) @@ -809,18 +810,20 @@ func TestSameSubsDiffRan(t *testing.T) { //----------------------------------------------------------------------------- func TestSubReqRetryInSubmgr(t *testing.T) { - CaseBegin("TestSubReqRetryInSubmgr start") - mainCtrl.SetTimesCounterWillBeAdded(cSubReqFromXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubReReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubRespFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubRespToXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqFromXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespToXapp, 1) - mainCtrl.GetCounterValuesBefore(t) + + // Init counter check + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 1}, + Counter{cSubReqToE2, 1}, + Counter{cSubReReqToE2, 1}, + Counter{cSubRespFromE2, 1}, + Counter{cSubRespToXapp, 1}, + Counter{cSubDelReqFromXapp, 1}, + Counter{cSubDelReqToE2, 1}, + Counter{cSubDelRespFromE2, 1}, + Counter{cSubDelRespToXapp, 1}, + }) // Xapp: Send SubsReq cretrans := xappConn1.SendSubsReq(t, nil, nil) @@ -879,15 +882,17 @@ func TestSubReqRetryInSubmgr(t *testing.T) { //----------------------------------------------------------------------------- func TestSubReqRetryNoRespSubDelRespInSubmgr(t *testing.T) { - CaseBegin("TestSubReqTwoRetriesNoRespSubDelRespInSubmgr start") - mainCtrl.SetTimesCounterWillBeAdded(cSubReqFromXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubReReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubReqTimerExpiry, 2) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespFromE2, 1) - mainCtrl.GetCounterValuesBefore(t) + + // Init counter check + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 1}, + Counter{cSubReqToE2, 1}, + Counter{cSubReReqToE2, 1}, + Counter{cSubReqTimerExpiry, 2}, + Counter{cSubDelReqToE2, 1}, + Counter{cSubDelRespFromE2, 1}, + }) // Xapp: Send SubsReq xappConn1.SendSubsReq(t, nil, nil) @@ -943,15 +948,17 @@ func TestSubReqRetryNoRespSubDelRespInSubmgr(t *testing.T) { //----------------------------------------------------------------------------- func TestSubReqTwoRetriesNoRespAtAllInSubmgr(t *testing.T) { - CaseBegin("TestSubReqTwoRetriesNoRespAtAllInSubmgr start") - mainCtrl.SetTimesCounterWillBeAdded(cSubReqFromXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubReReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubReqTimerExpiry, 2) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqTimerExpiry, 2) - mainCtrl.GetCounterValuesBefore(t) + + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 1}, + Counter{cSubReqToE2, 1}, + Counter{cSubReReqToE2, 1}, + Counter{cSubReqTimerExpiry, 2}, + Counter{cSubDelReqToE2, 1}, + Counter{cSubDelReReqToE2, 1}, + Counter{cSubDelReqTimerExpiry, 2}, + }) // Xapp: Send SubsReq xappConn1.SendSubsReq(t, nil, nil) @@ -1009,15 +1016,16 @@ func TestSubReqTwoRetriesNoRespAtAllInSubmgr(t *testing.T) { //----------------------------------------------------------------------------- func TestSubReqSubFailRespInSubmgr(t *testing.T) { - CaseBegin("TestSubReqSubFailRespInSubmgr start") - mainCtrl.SetTimesCounterWillBeAdded(cSubReqFromXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubFailFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubFailToXapp, 1) - mainCtrl.GetCounterValuesBefore(t) + + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 1}, + Counter{cSubReqToE2, 1}, + Counter{cSubFailFromE2, 1}, + Counter{cSubDelReqToE2, 1}, + Counter{cSubDelRespFromE2, 1}, + Counter{cSubFailToXapp, 1}, + }) // Xapp: Send SubsReq cretrans := xappConn1.SendSubsReq(t, nil, nil) @@ -1192,17 +1200,18 @@ func TestSubDelReqTwoRetriesNoRespInSubmgr(t *testing.T) { //----------------------------------------------------------------------------- func TestSubDelReqSubDelFailRespInSubmgr(t *testing.T) { - CaseBegin("TestSubReqSubDelFailRespInSubmgr start") - mainCtrl.SetTimesCounterWillBeAdded(cSubReqFromXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubRespFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubRespToXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqFromXapp, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelFailFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespToXapp, 1) - mainCtrl.GetCounterValuesBefore(t) + + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 1}, + Counter{cSubReqToE2, 1}, + Counter{cSubRespFromE2, 1}, + Counter{cSubRespToXapp, 1}, + Counter{cSubDelReqFromXapp, 1}, + Counter{cSubDelReqToE2, 1}, + Counter{cSubDelFailFromE2, 1}, + Counter{cSubDelRespToXapp, 1}, + }) // Subs Create cretrans := xappConn1.SendSubsReq(t, nil, nil) @@ -1280,17 +1289,18 @@ func TestSubReqAndSubDelOkSameAction(t *testing.T) { CaseBegin("TestSubReqAndSubDelOkSameAction") // Init counter check - mainCtrl.SetTimesCounterWillBeAdded(cSubReqFromXapp, 2) - mainCtrl.SetTimesCounterWillBeAdded(cSubReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubRespFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubRespToXapp, 2) - mainCtrl.SetTimesCounterWillBeAdded(cMergedSubscriptions, 1) - mainCtrl.SetTimesCounterWillBeAdded(cUnmergedSubscriptions, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqFromXapp, 2) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelReqToE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespFromE2, 1) - mainCtrl.SetTimesCounterWillBeAdded(cSubDelRespToXapp, 2) - mainCtrl.GetCounterValuesBefore(t) + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 2}, + Counter{cSubReqToE2, 1}, + Counter{cSubRespFromE2, 1}, + Counter{cSubRespToXapp, 2}, + Counter{cMergedSubscriptions, 1}, + Counter{cUnmergedSubscriptions, 1}, + Counter{cSubDelReqFromXapp, 2}, + Counter{cSubDelReqToE2, 1}, + Counter{cSubDelRespFromE2, 1}, + Counter{cSubDelRespToXapp, 2}, + }) //Req1 rparams1 := &teststube2ap.E2StubSubsReqParams{} -- 2.16.6