X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=test%2Frco%2Frco.go;fp=test%2Frco%2Frco.go;h=0000000000000000000000000000000000000000;hb=586cbbc7da7e66d7143ec685012380d63f00cacd;hp=646bb421e3485b9c3a0fa32bd804e7b0cd6c2de4;hpb=ff8dccd02d76eebfccc0b509ce0b42a2c1760e12;p=ric-plt%2Fsubmgr.git diff --git a/test/rco/rco.go b/test/rco/rco.go deleted file mode 100644 index 646bb42..0000000 --- a/test/rco/rco.go +++ /dev/null @@ -1,168 +0,0 @@ -/* -================================================================================== - Copyright (c) 2019 AT&T Intellectual Property. - Copyright (c) 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 main - -import ( - "encoding/hex" - "errors" - submgr "gerrit.o-ran-sc.org/r/ric-plt/submgr/pkg/control" - "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp" - "github.com/spf13/viper" - "os" - "strconv" - "time" -) - -type Rco struct { - submgr.E2ap -} - -var c = make(chan submgr.RmrDatagram, 1) -var params xapp.RMRParams - -var requestRawData string -var deleteRawData string -var seedSN uint16 -var deleteSeedSN uint16 - -func init() { - viper.AutomaticEnv() - viper.SetEnvPrefix("rco") - viper.AllowEmptyEnv(true) - requestRawData = viper.GetString("rawdata") - if requestRawData == "" { - requestRawData = "00c90020000003ea7e00050000010002ea6300020003ea81000a000000ea6b4003000440" - } - deleteRawData = viper.GetString("deleterawdata") - if deleteRawData == "" { - deleteRawData = "00ca0012000002ea7e00050000010002ea6300020003" - } - xapp.Logger.Info("Initial RAW DATA: %v", requestRawData) - xapp.Logger.Info("Initial DELETE RAW DATA: %v", deleteRawData) - seedSN = uint16(viper.GetInt("seed_sn")) - if seedSN == 0 || seedSN > 65535 { - seedSN = 12345 - } - deleteSeedSN = uint16(viper.GetInt("delete_seed_sn")) - if deleteSeedSN == 0 || deleteSeedSN > 65535 { - deleteSeedSN = seedSN - } - - xapp.Logger.Info("Initial SEQUENCE NUMBER: %v", seedSN) -} - -func (r *Rco) GeneratePayload(subId uint16) (payload []byte, err error) { - skeleton, err := hex.DecodeString(requestRawData) - if err != nil { - return make([]byte, 0), errors.New("nable to decode data provided in \"RCO_RAWDATA\" environment variable") - } - payload, err = r.SetSubscriptionRequestSequenceNumber(skeleton, subId) - return -} - -func (r *Rco) GenerateDeletePayload(subId uint16) (payload []byte, err error) { - skeleton, err := hex.DecodeString(deleteRawData) - if err != nil { - return make([]byte, 0), errors.New("unable to decode data provided in \"RCO_DELETERAWDATA\" environment variable") - } - payload, err = r.SetSubscriptionDeleteRequestSequenceNumber(skeleton, subId) - return -} - -func (r Rco) Consume(params *xapp.RMRParams) (err error) { - switch params.Mtype { - case xapp.RICMessageTypes["RIC_SUB_RESP"]: - payloadSeqNum, err := r.GetSubscriptionResponseSequenceNumber(params.Payload) - if err != nil { - xapp.Logger.Error("SUBRESP: Unable to get Subscription Sequence Number from Payload due to: " + err.Error()) - } - xapp.Logger.Info("Subscription Response Message Received: RMR SUBSCRIPTION_ID: %v | PAYLOAD SEQUENCE_NUMBER: %v", params.SubId, payloadSeqNum) - return err - case xapp.RICMessageTypes["RIC_SUB_DEL_RESP"]: - payloadSeqNum, err := r.GetSubscriptionDeleteResponseSequenceNumber(params.Payload) - if err != nil { - xapp.Logger.Error("DELRESP: Unable to get Subscription Sequence Number from Payload due to: " + err.Error()) - } - xapp.Logger.Info("Subscription Delete Response Message Received: RMR SUBSCRIPTION_ID: %v | PAYLOAD SEQUENCE_NUMBER: %v", params.SubId, payloadSeqNum) - return err - default: - err = errors.New("Message Type " + strconv.Itoa(params.Mtype) + " is discarded") - xapp.Logger.Error("Unknown message type: %v", err) - return - } -} - -func (r *Rco) SendRequests() (err error) { - message, err := r.GeneratePayload(seedSN) - if err != nil { - xapp.Logger.Debug(err.Error()) - return - } - deletemessage, err := r.GenerateDeletePayload(deleteSeedSN) - if err != nil { - xapp.Logger.Debug(err.Error()) - return - } - for { - time.Sleep(5 * time.Second) - c <- submgr.RmrDatagram{MessageType: 12010, SubscriptionId: seedSN, Payload: message} - seedSN++ - time.Sleep(5 * time.Second) - c <- submgr.RmrDatagram{MessageType: 12020, SubscriptionId: deleteSeedSN, Payload: deletemessage} - deleteSeedSN++ - } -} - -func (r *Rco) Run() { - for { - message := <-c - payloadSeqNum, err := r.GetSubscriptionRequestSequenceNumber(message.Payload) - if err != nil { - xapp.Logger.Debug("Unable to get Subscription Sequence Number from Payload due to: " + err.Error()) - } - params.SubId = int(message.SubscriptionId) - params.Mtype = message.MessageType - params.PayloadLen = len(message.Payload) - params.Payload = message.Payload - xapp.Logger.Info("Sending Message: TYPE: %v | RMR SUBSCRIPTION_ID: %v | PAYLOAD SEQUENCE_NUMBER: %v)", message.MessageType, message.SubscriptionId, payloadSeqNum) - xapp.Rmr.Send(¶ms, false) - } -} - -func (r *Rco) sendInvalidTestMessages() { - for { - time.Sleep(7 * time.Second) - c <- submgr.RmrDatagram{MessageType: 10000, SubscriptionId: 0, Payload: make([]byte, 1)} - time.Sleep(7 * time.Second) - c <- submgr.RmrDatagram{MessageType: 12010, SubscriptionId: 0, Payload: make([]byte, 1)} - } -} - -func main() { - rco := Rco{} - go xapp.Rmr.Start(rco) - go rco.Run() - go rco.sendInvalidTestMessages() - err := rco.SendRequests() - if err != nil { - xapp.Logger.Info("Error: %v", err) - os.Exit(1) - } -}