... | ... | @@ -8,9 +8,11 @@ A video is available on [Youtube](https://youtu.be/s2-3sdp3Zy4). |
|
|
|
|
|
## From snap
|
|
|
|
|
|
Use the `build_m5g` script to install the FlexRAN snap:
|
|
|
Use the `build_m5g` script to install the FlexRAN snap, or directly using the
|
|
|
`snap install` command:
|
|
|
```bash
|
|
|
$ ./build_m5g -F
|
|
|
$ sudo snap install flexran
|
|
|
$ flexran.help
|
|
|
```
|
|
|
|
... | ... | @@ -21,7 +23,7 @@ $ sudo snap connect oai-ran:log-observe |
|
|
$ sudo snap connect oai-ran:process-control
|
|
|
```
|
|
|
|
|
|
It can be run in the following ways:
|
|
|
Then, it can be run in the following ways:
|
|
|
```bash
|
|
|
$ sudo flexran # program, recommended, stop with Ctrl-C
|
|
|
$ sudo flexran.start # as a daemon
|
... | ... | @@ -49,9 +51,10 @@ The following output shows on a successful start: |
|
|
[INFO][FLEXRAN_RTC] - Listening on port 9999 for incoming REST connections
|
|
|
```
|
|
|
|
|
|
The controller is now running. If not running, start the CN. Then, navigate to
|
|
|
the RAN's configuration and enable the controller. Also, set the correct IP
|
|
|
address:
|
|
|
The controller is now running: you can check this by going to
|
|
|
`localhost:9999/capabilities` using a browser. If not already running, start
|
|
|
the CN. Then, navigate to the RAN's configuration and enable the controller.
|
|
|
Also, set the correct IP address:
|
|
|
```
|
|
|
NETWORK_CONTROLLER: {
|
|
|
FLEXRAN_ENABLED = "yes";
|
... | ... | @@ -112,54 +115,14 @@ that are currently available at the controller RIB. |
|
|
|
|
|
## Radio Resource Management
|
|
|
|
|
|
Reconfigure the MAC scheduling based on the JSON policy file in the payload for
|
|
|
the most recently added agent as follows:
|
|
|
```bash
|
|
|
curl -X POST http://FlexRAN_PUBLIC_IPADDR:9999/slice/enb/-1 --data-binary @filepath/filename.json
|
|
|
```
|
|
|
Replace `FlexRAN_PUBLIC_IPADDR` with the correct IP.
|
|
|
|
|
|
An example of policy file is provided below, in which two slices in UL/DL with
|
|
|
25%/75% of resources (RBs) are assigned on the basis of a 50 RB LTE
|
|
|
configuration. In this example, slices don't share resources, and users are
|
|
|
assigned not more than the slice's resources divided by the user count of this
|
|
|
slice. A detailed description of the parameters can be found
|
|
|
[here](http://mosaic-5g.io/apidocs/flexran/#api-SliceConfiguration-ApplySliceConfiguration).
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"dl": [
|
|
|
{
|
|
|
"id": 0,
|
|
|
"percentage": 25,
|
|
|
"maxmcs": 28
|
|
|
},
|
|
|
{
|
|
|
"id": 3,
|
|
|
"percentage": 75,
|
|
|
"maxmcs": 28
|
|
|
}
|
|
|
],
|
|
|
"ul": [
|
|
|
{
|
|
|
"id": 0,
|
|
|
"percentage": 25,
|
|
|
"maxmcs": 20,
|
|
|
"firstRb": 0
|
|
|
},
|
|
|
{
|
|
|
"id": 3,
|
|
|
"percentage": 75,
|
|
|
"maxmcs": 20,
|
|
|
"firstRb": 13
|
|
|
}
|
|
|
],
|
|
|
"intrasliceShareActive": false,
|
|
|
"intersliceShareActive": false
|
|
|
}
|
|
|
```
|
|
|
For radio resource management for slicing purposes, refer to the
|
|
|
[slicing](tutorials/slicing) and [slice lifecycle](tutorials/slice-lifecycle)
|
|
|
tutorials.
|
|
|
|
|
|
## More Examples
|
|
|
|
|
|
We ran a comprehensive demo and showed almost all features in [Mosaic5G's
|
|
|
Workshop 2020](https://mosaic5g.io/workshop-2020/).
|
|
|
|
|
|
The following responses are standard HTTP response code:
|
|
|
* Successful: `HTTP Code 200 "OK"`
|
|
|
* Unsuccessful: `HTTP Code 404 "Bad Request"`. There was a problem with the
|
|
|
request, a JSON error message indicating the cause. |
|
|
The example scripts and configuration [are available
|
|
|
here](sample-conf/demo-flexran.zip). |