Traffic Steering (TS) xApplication (xApp) for µONOS RIC - associates the users with the eNB/gNB taking into account user radio conditions, cell types, and service type/QoS profile. It can be controlled by policies from non-RT RIC (A1 interface).
- Suitable for heterogeneous scenarios
- Per-user association decision taking into account radio conditions (e.g. RSRP), service type (e.g. 5QI), cell type
- Optimizes user-throughput and cell-outage
Example of an policy influence on single UE. The traffic sterring is realized by direct indication of user as the policy scope contains ueId
. It is worth paying attention to UE association at different point of time.
12:58:32 - start of xApp
there is no TS policy applied
13:00:00 - put policy with ID 1 to A1T endpoint
{
"scope":{
"ueId":"0000000003064635"
},
"tspResources":[
{
"cellIdList":[
{
"plmnId":{
"mcc":"314",
"mnc":"628"
},
"cId":{
"ncI":470106432
}
}
],
"preference":"PREFER"
}
]
}
13:01:47 - delete policy with ID 1 at A1T endpoint
there is no TS policy applied
13:02:47 - put policy with ID 2 at A1T endpoint
{
"scope":{
"ueId":"0000000003064635"
},
"tspResources":[
{
"cellIdList":[
{
"plmnId":{
"mcc":"314",
"mnc":"628"
},
"cId":{
"ncI":470106432
}
}
],
"preference":"AVOID"
}
]
}
13:04:07 - put policy with ID 2 at A1T endpoint (update)
{
"scope":{
"ueId":"0000000003064635"
},
"tspResources":[
{
"cellIdList":[
{
"plmnId":{
"mcc":"314",
"mnc":"628"
},
"cId":{
"ncI":470106432
}
}
],
"preference":"FORBID"
}
]
}
13:05:07 - delete policy with ID 2 at A1T endpoint
there is no TS policy applied
Click to show demo
Example of an policy influence on single UE or group of UEs. The traffic sterring is realized by indication of user's service type as the policy scope contains qosId
- in this case 5qI
value is used. It is assumed that only one slice exists. The values of 5QI are changing randomly according to the data generated by the simulator. It is worth paying attention to UE association at different point of time.
13:55:00 - start of xApp
there is no TS policy applied
13:56:23 - put policy with ID 1 to A1T endpoint
{
"scope":{
"sliceId":{
"sst":1,
"sd":"456DEF",
"plmnId":{
"mcc":"314",
"mnc":"628"
}
},
"qosId":{
"5qI":1
}
},
"tspResources":[
{
"cellIdList":[
{
"plmnId":{
"mcc":"314",
"mnc":"628"
},
"cId":{
"ncI":470106432
}
}
],
"preference":"SHALL"
}
]
}
To use TS xApp there should be kubernetes, docker, helm and sdran (by ONOS) installed and deployed. You can use SDRAN-in-a-Box project to install everything at once, or install requirements manually and deploy sdran from SDRAN Helm charts repository.
TS xApp was tested under this version of SD-RAN modules. Tested under ran-simulator model two-cell-two-node-model.yaml
.
Module | Version |
---|---|
onos-a1t | v0.1.11 |
onos-cli | v0.9.10 |
onos-config | v0.10.27 |
onos-e2t | v0.10.11 |
onos-topo | v0.9.2 |
ran-simulator | v0.9.6 |
e2sm_mho_go | v0.8.7 |
To deploy TS xApp firstly build docker image, and then use helm to install xApp.
make docker
make install-xapp
<ip_address>:31963/policytypes/ORAN_TrafficSteeringPreference_2.0.0/policies/<policy_id>
- the policies are send toA1
interface on addresskubectl logs -n riab rimedo-ts-<id> rimedo-ts
- observe logs of TS xAppwatch onos uenib get ues -v
- observe RSRP of UE (type inonos-cli
)