X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=sim%2Fe2-interface.git;a=blobdiff_plain;f=e2sim%2FREADME.md;h=2790b0d9570c0389ab2fdb9f4b9fa5884bc9af99;hp=ed260c3d1f29b3369cb694c2e215466ae4ae449a;hb=a9733dbcc47e93a3b2843056f1d587196296c324;hpb=3ebf932d23dcbec9ed19f4a51f9d00a0a54f5124 diff --git a/e2sim/README.md b/e2sim/README.md index ed260c3..2790b0d 100644 --- a/e2sim/README.md +++ b/e2sim/README.md @@ -17,8 +17,60 @@ # * #******************************************************************************/ - -# INSTALLATION (tested on Ubuntu 16.04) +This is an update to E2 Simulator, based on E2AP v1 defined in ORAN +E2 Simulator is built as a library that supports basic functions and is +linked by an E2 Simulation application. + +The E2 Simulator breaks up the simulation roles into two: +1. Base E2AP support +2. E2SM Support + +#1 is the role supported by E2 Simulator library, while #2 is supported by the +calling application. An example of a calling application is provided in this repo +under the + +E2 Simulator enables a specific E2SM to be supported by the calling application in +the following way: + +* E2SM must be registered by the calling application +* E2SM-specific code uses callbacks to handle interaction from xApp +* E2SM-specific code must continuously implement simulation logic + +Registration of an E2SM with the E2 Simulator entails the following: +* RAN function definition +* Callback functions for any of the following: + Subscription + Control + Any Responses + +The following is the E2 Simulator Main Program Flow +1. Upon startup, Simulator generates E2 Setup Request + For each E2SM that is registered, include RAN function definition + +2. Upon receiving incoming requests, decode + Identify RAN function ID + Call appropriate callback function for RAN function ID and request type + Provide entire encoded request + If no callback is provided, we return an error response +3. Upon receiving responses, decode: + Identify RAN function ID + If a callback is registered for this message type, call it based on RAN function ID and request type + Provide entire encoded response + If no callback is registered, no action is taken + +E2SM Callback Functions: + +* Callback functions are responsible for sending responses +* They may also need to set up ongoing simulation messaging + REPORT Service sends back periodic Indication messages containing REPORT + INSERT Service sends back periodic Indication messages containing INSERT +* They may need to associate incoming messages with existing service invocation + Modify Subscription + CONTROL message associated with INSERT +* Base E2 simulator should not be concerned with these details; only specific E2SM code should be responsible for any messaging + + +# INSTALLATION Instructions (tested on Ubuntu 16.04) 1. Install dependencies $ sudo apt-get update $ sudo apt-get install -y @@ -35,61 +87,12 @@ libboost-all-dev $ sudo apt-get clean - 2. SET ENVIRONMENT VARIABLE - Add this line to `~/.bashrc` - export E2SIM_DIR= - - 3. Build the official e2sim - $ ./build_e2sim - -# USAGE - $ $E2SIM_DIR/build/e2sim [SERVER IP] [PORT] - - By default, SERVER IP = 127.0.0.1, PORT = 36421 - The RIC (i.e., E2 Manager) will need to setup X2 or E2 connection to e2sim on - this SERVER IP and PORT - -# DOCKER - * Build docker image: run this command from $E2SIM_DIR - $ sudo docker build -f docker/Dockerfile -t [DOCKER_IMAGE]:[TAG] . - - * Example how to run docker container - $ sudo docker run --rm --net host -it [DOCKER_IMAGE]:[TAG] sh -c "./build/e2sim [SERVER IP] [PORT]" - ex: sudo docker run --rm --net host -it e2sim:1.0.0 sh -c "./build/e2sim 127.0.0.1 36422" - -# SUPPORTED MESSAGE FLOWS -- RESOURCE STATUS REQUEST (RIC -> RAN) version 1.4.0 November 16, 2019 -- RESOURCE STATUS RESPONSE (RAN -> RIC) -- RESOURCE STATUS UPDATE (RAN -> RIC) - -- RIC INDICATION (RAN -> RIC) version 1.3.0 September 13, 2019 - SgNBAdditionRequest - -- RIC SUBSCRIPTION REQUEST (RIC -> RAN) version 1.2.0 May 24, 2019 -- RIC SUBSCRIPTION RESPONSE (RAN -> RIC) -- RIC SUBSCRIPTION FAILURE (RAN -> RIC) - -- ENDC X2 SETUP REQUEST (RIC -> RAN) -- ENDC X2 SETUP RESPONSE (RAN -> RIC) - -- X2 SETUP REQUEST (RIC -> RAN) -- X2 SETUP RESPONSE (RAN -> RIC) - -# GENERATING ASN1C CODES FOR E2AP, E2SM, X2AP - 1. Install asn1c compiler - ./tools/install_asn1c + 2. Build the official e2sim + $ mkdir build + $ cd build + $ cmake .. + $ make package + $ cmake .. -DDEV_PKG=1 + $ make package - 2. Generate asn1c codes using e2ap, e2sm and x2ap specs - This requires the following files in tools/asn_defs - - e2ap-v031.asn - - e2sm-gNB-X2-release-1-v041.asn - - x2ap-no-desc-15-04.asn -# Change logs: - 11/16/2019: - Switch back to using asn1c compiler - - add support to Resource Status Request, Response, and Update (over X2) - 05/24/2019: add support for RIC SUBSCRIPTION REQUEST, RESPONSE, and FAILURE - 05/21/2019: add support for ENDC X2 SETUP - no longer use asn1c - all X2AP and E2AP messages are encapsulated into E2AP-PDU - 03/12/2019: currently supports sending and receiving X2 SETUP messages