Changed xapptweak rmr send function to take in retry releated timeout 01/2701/4
authorJuha Hyttinen <juha.hyttinen@nokia.com>
Mon, 9 Mar 2020 07:37:06 +0000 (09:37 +0200)
committerJuha Hyttinen <juha.hyttinen@nokia.com>
Mon, 9 Mar 2020 09:15:41 +0000 (11:15 +0200)
Change-Id: I5c92ecbfb578ec45ffb72600d45f7f858ce05394
Signed-off-by: Juha Hyttinen <juha.hyttinen@nokia.com>
Dockerfile
pkg/control/control.go
pkg/control/subscription.go
pkg/control/transaction.go
pkg/teststub/controlRmrStub.go
pkg/teststubdummy/stubRmrDummy.go
pkg/teststube2ap/stubE2.go
pkg/xapptweaks/rmrparams.go
pkg/xapptweaks/rmrwrapper.go
pkg/xapptweaks/xappwrapper.go

index 6143fdb..b7adf64 100644 (file)
@@ -29,6 +29,14 @@ RUN apt update && apt install -y iputils-ping net-tools curl tcpdump gdb valgrin
 
 WORKDIR /tmp
 
+#RUN git clone https://github.com/nokia/asn1c.git
+#RUN cd asn1c && test -f configure || autoreconf -iv
+#RUN cd asn1c &&  ./configure
+#RUN cd asn1c && make
+##RUN cd asn1c && make check
+#RUN cd asn1c && make install
+
+
 ARG RMRVERSION=3.2.4
 # Install RMr shared library
 RUN wget --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr_${RMRVERSION}_amd64.deb/download.deb && dpkg -i rmr_${RMRVERSION}_amd64.deb && rm -rf rmr_${RMRVERSION}_amd64.deb
index 7b0760c..b5c60ec 100755 (executable)
@@ -158,7 +158,7 @@ func (c *Control) rmrSendToE2T(desc string, subs *Subscription, trans *Transacti
        params.Payload = trans.Payload.Buf
        params.Mbuf = nil
        xapp.Logger.Info("MSG to E2T: %s %s %s", desc, trans.String(), params.String())
-       return c.RmrSend(params)
+       return c.RmrSend(params, 5)
 }
 
 func (c *Control) rmrSendToXapp(desc string, subs *Subscription, trans *TransactionXapp) (err error) {
@@ -173,7 +173,7 @@ func (c *Control) rmrSendToXapp(desc string, subs *Subscription, trans *Transact
        params.Payload = trans.Payload.Buf
        params.Mbuf = nil
        xapp.Logger.Info("MSG to XAPP: %s %s %s", desc, trans.String(), params.String())
-       return c.RmrSend(params)
+       return c.RmrSend(params, 5)
 }
 
 func (c *Control) Consume(params *xapp.RMRParams) (err error) {
index f66a1f1..c3e1c20 100644 (file)
@@ -21,6 +21,7 @@ package control
 
 import (
        "gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/e2ap"
+       "gerrit.o-ran-sc.org/r/ric-plt/submgr/pkg/xapptweaks"
        "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
        "sync"
 )
@@ -42,7 +43,7 @@ type Subscription struct {
 }
 
 func (s *Subscription) String() string {
-       return "subs(" + s.ReqId.String() + "/" + s.Meid.RanName + "/" + s.EpList.String() + ")"
+       return "subs(" + s.ReqId.String() + "/" + (&xapptweaks.RMRMeid{s.Meid}).String() + "/" + s.EpList.String() + ")"
 }
 
 func (s *Subscription) GetCachedResponse() (interface{}, bool) {
index 56dff1d..1298925 100644 (file)
@@ -21,6 +21,7 @@ package control
 
 import (
        "gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/e2ap"
+       "gerrit.o-ran-sc.org/r/ric-plt/submgr/pkg/xapptweaks"
        "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
        "strconv"
        "sync"
@@ -52,7 +53,7 @@ type Transaction struct {
 }
 
 func (t *Transaction) String() string {
-       return "trans(" + strconv.FormatUint(uint64(t.Seq), 10) + "/" + t.Meid.RanName + ")"
+       return "trans(" + strconv.FormatUint(uint64(t.Seq), 10) + "/" + (&xapptweaks.RMRMeid{t.Meid}).String() + ")"
 }
 
 func (t *Transaction) SendEvent(event interface{}, waittime time.Duration) (bool, bool) {
index a01a0a5..e486d13 100644 (file)
@@ -156,7 +156,7 @@ func RmrStubControlWaitAlive(seconds int, mtype int, rmr xapptweaks.XAppWrapperI
        for ; i <= seconds*2 && status == false; i++ {
 
                rmr.GetLogger().Info("SEND TESTPING: %s", params.String())
-               rmr.RmrSend(params)
+               rmr.RmrSend(params, 0)
 
                status = true
                for _, val := range allRmrStubs {
index 77e4b7d..c08036f 100644 (file)
@@ -66,7 +66,7 @@ func (tc *RmrDummyStub) SendReq(t *testing.T) {
        params.Xid = "TEST"
        params.Mbuf = nil
 
-       snderr := tc.RmrSend(params)
+       snderr := tc.RmrSend(params, 5)
        if snderr != nil {
                tc.TestError(t, "%s", snderr.Error())
        }
@@ -104,7 +104,7 @@ func RmrDummyHandleMessage(msg *xapptweaks.RMRParams, mtypeseed int, rmr xapptwe
                params.Xid = msg.Xid
                params.Mbuf = nil
                rmr.GetLogger().Info("SEND DUMMY RESP: %s", params.String())
-               err := rmr.RmrSend(params)
+               err := rmr.RmrSend(params, 5)
                if err != nil {
                        rmr.GetLogger().Error("RmrDummyHandleMessage: err(%s)", err.Error())
                }
index a5dfa54..0ebb29f 100644 (file)
@@ -43,7 +43,7 @@ type RmrTransactionId struct {
 }
 
 func (trans *RmrTransactionId) String() string {
-       return "trans(" + trans.xid + "/" + trans.meid.RanName + ")"
+       return "trans(" + trans.xid + "/" + (&xapptweaks.RMRMeid{trans.meid}).String() + ")"
 }
 
 type E2Stub struct {
@@ -205,7 +205,7 @@ func (tc *E2Stub) SendSubsReq(t *testing.T, rparams *E2StubSubsReqParams, oldTra
        params.Mbuf = nil
 
        tc.Logger.Info("SEND SUB REQ: %s", params.String())
-       snderr := tc.RmrSend(params)
+       snderr := tc.RmrSend(params, 5)
        if snderr != nil {
                tc.TestError(t, "RMR SEND FAILED: %s %s", trans.String(), snderr.Error())
                return nil
@@ -290,7 +290,7 @@ func (tc *E2Stub) SendSubsResp(t *testing.T, req *e2ap.E2APSubscriptionRequest,
        params.Mbuf = nil
 
        tc.Logger.Info("SEND SUB RESP: %s", params.String())
-       snderr := tc.RmrSend(params)
+       snderr := tc.RmrSend(params, 5)
        if snderr != nil {
                tc.TestError(t, "RMR SEND FAILED: %s", snderr.Error())
        }
@@ -363,7 +363,7 @@ func (tc *E2Stub) SendSubsFail(t *testing.T, fparams *E2StubSubsFailParams, msg
        params.Mbuf = nil
 
        tc.Logger.Info("SEND SUB FAIL: %s", params.String())
-       snderr := tc.RmrSend(params)
+       snderr := tc.RmrSend(params, 5)
        if snderr != nil {
                tc.TestError(t, "RMR SEND FAILED: %s", snderr.Error())
        }
@@ -446,7 +446,7 @@ func (tc *E2Stub) SendSubsDelReq(t *testing.T, oldTrans *RmrTransactionId, e2Sub
        params.Mbuf = nil
 
        tc.Logger.Info("SEND SUB DEL REQ: %s", params.String())
-       snderr := tc.RmrSend(params)
+       snderr := tc.RmrSend(params, 5)
        if snderr != nil {
                tc.TestError(t, "RMR SEND FAILED: %s %s", trans.String(), snderr.Error())
                return nil
@@ -516,7 +516,7 @@ func (tc *E2Stub) SendSubsDelResp(t *testing.T, req *e2ap.E2APSubscriptionDelete
        params.Mbuf = nil
 
        tc.Logger.Info("SEND SUB DEL RESP: %s", params.String())
-       snderr := tc.RmrSend(params)
+       snderr := tc.RmrSend(params, 5)
        if snderr != nil {
                tc.TestError(t, "RMR SEND FAILED: %s", snderr.Error())
        }
@@ -588,7 +588,7 @@ func (tc *E2Stub) SendSubsDelFail(t *testing.T, req *e2ap.E2APSubscriptionDelete
        params.Mbuf = nil
 
        tc.Logger.Info("SEND SUB DEL FAIL: %s", params.String())
-       snderr := tc.RmrSend(params)
+       snderr := tc.RmrSend(params, 5)
        if snderr != nil {
                tc.TestError(t, "RMR SEND FAILED: %s", snderr.Error())
        }
index f0ac9fb..30f42fd 100644 (file)
@@ -26,6 +26,39 @@ import (
        "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
 )
 
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type RMRMeid struct {
+       *xapp.RMRMeid
+}
+
+func (meid *RMRMeid) String() string {
+       str := "meid("
+       pad := ""
+       if len(meid.PlmnID) > 0 {
+               str += pad + "PlmnID=" + meid.PlmnID
+               pad = " "
+       }
+       if len(meid.EnbID) > 0 {
+               str += pad + "EnbID=" + meid.EnbID
+               pad = " "
+       }
+       if len(meid.RanName) > 0 {
+               str += pad + "RanName=" + meid.RanName
+               pad = " "
+       }
+       str += ")"
+       return str
+}
+
+func NewMeid(meid *xapp.RMRMeid) *RMRMeid {
+       if meid != nil {
+               return &RMRMeid{meid}
+       }
+       return &RMRMeid{&xapp.RMRMeid{}}
+}
+
 //-----------------------------------------------------------------------------
 //
 //-----------------------------------------------------------------------------
@@ -35,8 +68,7 @@ type RMRParams struct {
 
 func (params *RMRParams) String() string {
        var b bytes.Buffer
-       sum := md5.Sum(params.Payload)
-       fmt.Fprintf(&b, "params(Src=%s Mtype=%d SubId=%d Xid=%s Meid=%s Paylens=%d/%d Payhash=%x)", params.Src, params.Mtype, params.SubId, params.Xid, params.Meid.RanName, params.PayloadLen, len(params.Payload), sum)
+       fmt.Fprintf(&b, "params(Src=%s Mtype=%d SubId=%d Xid=%s Meid=%s Paylens=%d/%d Paymd5=%x)", params.Src, params.Mtype, params.SubId, params.Xid, (&RMRMeid{params.Meid}).String(), params.PayloadLen, len(params.Payload), md5.Sum(params.Payload))
        return b.String()
 }
 
index ef633bd..ac602bf 100644 (file)
@@ -47,14 +47,16 @@ func (tc *RmrWrapper) Unlock() {
 func (tc *RmrWrapper) Init() {
 }
 
-func (tc *RmrWrapper) RmrSend(params *RMRParams) (err error) {
+func (tc *RmrWrapper) RmrSend(params *RMRParams, to time.Duration) (err error) {
        if tc.Rmr == nil {
                err = fmt.Errorf("Failed rmr object nil for %s", params.String())
                return
        }
-       status := false
-       i := 1
-       for ; i <= 10 && status == false; i++ {
+       tc.Lock()
+       status := tc.Rmr.Send(params.RMRParams, false)
+       tc.Unlock()
+       i := 0
+       for ; i < int(to)*2 && status == false; i++ {
                tc.Lock()
                status = tc.Rmr.Send(params.RMRParams, false)
                tc.Unlock()
index 8b7c91d..faf3c18 100644 (file)
@@ -21,13 +21,14 @@ package xapptweaks
 
 import (
        "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
+       "time"
 )
 
 //-----------------------------------------------------------------------------
 //
 //-----------------------------------------------------------------------------
 type XAppWrapperIf interface {
-       RmrSend(params *RMRParams) (err error)
+       RmrSend(params *RMRParams, to time.Duration) (err error)
        GetLogger() *xapp.Log
 }