...
- configClientType: cps
- # cps api
cps:
cpsUsername: cpsuser
cpsPassword: cpsr0cks!
cpsUrl: http://<cps-tbdmt-ip>:8080/execute
cpsCellListUrl: 'cps-ran-schemaset/get-cell'
cpsNbrListUrl: 'cps-ran-schemaset/get-nbr-list1'
A1 Interface Simulator (A1 Termination) with Kafka Cluster Communicator Module:
The O-RAN SC A1 Simulator (A1 SIM) is a RAN-Sim enhancement to add A1 interface support to RAN app. It has an internal Kafka Cluster Communicator module which further redirects A1 Policy operations to a Kafka Cluster message topic, to be consumed by RAN app. Then, responses from RAN app are collected from another configured Kafka Cluster message topic. After a request message is sent, a response message will be expected within some configurable timeout interval (default: 30 sec).
Installation:
- A1 SIM has to be cloned from this link: https://gerrit.o-ran-sc.org/r/admin/repos/sim/a1-interface,general
- Go to the directory: "a1-interface/near-rt-ric-simulator/test/STD_2.0.0" and edit the file called "build_and_start_with_kafka.sh"
On the line 98, change Kafka Cluster address and port: MSG_BROKER_URL=localhost:9092
Also, you can set request_topic and response_topic for per policy type. However, for the Step 5, you have to configure your topics named kafkatopicreq2 and kafkatopicres2.
To do so, go to the directory "a1-interface/near-rt-ric-simulator/test/KAFKA_DISPATCHER/resources" and edit the file named "policytype_to_topicmap.json"
After Kafka Cluster is being created, please validate existance of your topics using a command like the below:Code Block language bash $ /opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092 kafkatopicreq2 kafkatopicres2
- In order to build & start A1 SIM with Kafka Cluster Communicator module, fire this command: "./build_and_start_with_kafka.sh duplicate-check kafka-srv publish-resp"
- Check to see both containers are available and running.$ docker ps
Code Block language bash $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES dd966210ce86 a1test "/bin/sh -c 'src/sta…" About a minute ago Up About a minute a1StdSimulator 1ac17bac7ffa kafka_dispatcher "/bin/sh -c src/star…" About a minute ago Up About a minute kafkamessagedispatcher
- Finally, run unit test cases:
$ ./basic_test.sh nonsecure duplicate-check ignore-ext-srvWhen the test cases run successfully, you will see a message like the below:
********************
*** All tests ok ***
********************
RAN App :
A new RAN App module in RAN-Sim is an abstraction of the function provided by an xApp to support A1-based actions. For Kohn release, RAN App will provide the following functions to support A1-based action for the ANR SON use case:
1.Receive A1 policy message over Kafka bus from A1 Termination
2.Communicate via websocket with RAN-Sim Controller to control the CU/DU NF in the Honeycomb NF modules, to achieve an end result similar to what an xApp would have done over E2.
For Kohn release, the A1 message received has handover (HO) related kpis and RAN App will effect a change in the configuration of the NR Cell Relation property in the appropriate CU(s).
...
server.port=9091
kafka.bootstrapAddress=10.31.4.44:9092
#spring.kafka.producer.bootstrap-servers=10.31.4.44:9092
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.springframework.kafka.support.serializer.JsonSerializer
ranapp.testing.topic.name=xapptest-topic
ranapp.testing.topic.id=testtopic
restapi.version=v1
websocketserver.address=10.31.4.44:8081
websocketserver.endpoint=/ransim/RansimAgent/ANR-xAPP:9091
ranapp.name=ANR-RanAPP:9091
ranapp.policytype=ANR
ranapp.hokpi1_threshold=100
kafkadispatcher.url=http://10.31.4.44:7075/policytypetotopicmapping/
...