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
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) {
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) {
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"
)
}
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) {
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"
}
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) {
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 {
params.Xid = "TEST"
params.Mbuf = nil
- snderr := tc.RmrSend(params)
+ snderr := tc.RmrSend(params, 5)
if snderr != nil {
tc.TestError(t, "%s", snderr.Error())
}
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())
}
}
func (trans *RmrTransactionId) String() string {
- return "trans(" + trans.xid + "/" + trans.meid.RanName + ")"
+ return "trans(" + trans.xid + "/" + (&xapptweaks.RMRMeid{trans.meid}).String() + ")"
}
type E2Stub struct {
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
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())
}
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())
}
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
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())
}
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())
}
"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{}}
+}
+
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
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()
}
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()
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
}