1 #/*****************************************************************************
3 # Copyright 2019 AT&T Intellectual Property *
4 # Copyright 2019 Nokia *
6 # Licensed under the Apache License, Version 2.0 (the "License"); *
7 # you may not use this file except in compliance with the License. *
8 # You may obtain a copy of the License at *
10 # http://www.apache.org/licenses/LICENSE-2.0 *
12 # Unless required by applicable law or agreed to in writing, software *
13 # distributed under the License is distributed on an "AS IS" BASIS, *
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
15 # See the License for the specific language governing permissions and *
16 # limitations under the License. *
18 #******************************************************************************/
20 This is an update to E2 Simulator, based on E2AP v1 defined in ORAN
21 E2 Simulator is built as a library that supports basic functions and is
22 linked by an E2 Simulation application.
24 The E2 Simulator breaks up the simulation roles into two:
28 #1 is the role supported by E2 Simulator library, while #2 is supported by the
29 calling application. An example of a calling application is provided in this repo
32 E2 Simulator enables a specific E2SM to be supported by the calling application in
35 * E2SM must be registered by the calling application
36 * E2SM-specific code uses callbacks to handle interaction from xApp
37 * E2SM-specific code must continuously implement simulation logic
39 Registration of an E2SM with the E2 Simulator entails the following:
40 * RAN function definition
41 * Callback functions for any of the following:
46 The following is the E2 Simulator Main Program Flow
47 1. Upon startup, Simulator generates E2 Setup Request
48 For each E2SM that is registered, include RAN function definition
50 2. Upon receiving incoming requests, decode
51 Identify RAN function ID
52 Call appropriate callback function for RAN function ID and request type
53 Provide entire encoded request
54 If no callback is provided, we return an error response
55 3. Upon receiving responses, decode:
56 Identify RAN function ID
57 If a callback is registered for this message type, call it based on RAN function ID and request type
58 Provide entire encoded response
59 If no callback is registered, no action is taken
61 E2SM Callback Functions:
63 * Callback functions are responsible for sending responses
64 * They may also need to set up ongoing simulation messaging
65 REPORT Service sends back periodic Indication messages containing REPORT
66 INSERT Service sends back periodic Indication messages containing INSERT
67 * They may need to associate incoming messages with existing service invocation
69 CONTROL message associated with INSERT
70 * Base E2 simulator should not be concerned with these details; only specific E2SM code should be responsible for any messaging
73 # INSTALLATION Instructions (tested on Ubuntu 16.04)
74 1. Install dependencies
76 $ sudo apt-get install -y
90 2. Build the official e2sim
95 $ cmake .. -DDEV_PKG=1