Configuration using REST Interface

You can use any tool to generate REST messages to configure SD-Core with subscribers, device groups, and network slices.

Subscriber Configuration

The example below configures subscriber 208014567891209 in SD-Core. You can configure any number of subscribers using these APIs. SD-Core automatically configures the Network Function responsible for authentication with the provided details.

POST Request - Add a subscriber:

URL: http://<config-service-name-or-ip>:<port>/api/subscriber/<imsi-xxx>
Example: http://<config-service-name-or-ip>:<port>/api/subscriber/imsi-208014567891209

Request Body:

{
    "UeId": "208014567891209",
    "plmnId": "20801",
    "opc": "d4416644f6154936193433dd20a0ace0",
    "key": "465b5ce8b199b49faa5f0a2ee238a6bc",
    "sequenceNumber": "96"
}

DELETE Request - Remove a subscriber:

URL: http://<config-service-name-or-ip>:<port>/api/subscriber/<imsi-xxx>
Example: http://<config-service-name-or-ip>:<port>/api/subscriber/imsi-208014567891209

Device Group Configuration

The example below groups multiple IMSIs under one IP domain. The IP domain corresponds to APN in 4G and DNN in 5G. This configuration includes the UE IP pool and QoS settings for all users in this group.

POST Request - Create a device group:

URL: http://<config-service-name-or-ip>:<port>/device-group/<group-name>
Example: http://config5g:8080/device-group/iot-camera

Request Body:

{
    "imsis": [
        "123456789123456",
        "123456789123457",
        "123456789123458"
    ],
    "site-info": "menlo",
    "ip-domain-name": "pool1",
    "ip-domain-expanded": {
         "dnn": "internet",
         "ue-ip-pool": "10.91.0.0/16",
         "dns-primary": "8.8.8.8",
         "dns-secondary": "8.8.4.4",
         "mtu": 1460,
         "ue-dnn-qos":
         {
             "dnn-mbr-uplink": 4000000,
             "dnn-mbr-downlink": 20000000,
             "bitrate-unit": "Mbps",
             "traffic-class":
             {
                 "qci": 9,
                 "arp": 1,
                 "pdb": 2,
                 "pelr": 1,
                 "name": "platinum"
             }
        }
    }
}

DELETE Request - Remove a device group:

URL: http://<config-service-name-or-ip>:<port>/device-group/<group-name>
Example: http://config5g:8080/device-group/iot-camera

Note

REST API supports the PUT method to modify or replace device group configuration. IMSIs can be added or removed using the PUT method.

Note

If UPF is configured to allocate UE addresses, you must add the address pool configuration to the UPF deployment, even if you have already specified the UE address pool in the slice configuration.

Network Slice Configuration

The example below creates a network slice with a set of eNBs/gNBs, UPF, and device groups.

POST Request - Create a network slice:

URL: http://<config-service-name-or-ip>:<port>/network-slice/<slice-name>
Example: http://config5g:8080/network-slice/slice1

Request Body:

{
    "slice-id": {
        "sst": "1",
        "sd": "010203"
    },
    "qos": {
        "uplink": 4000000,
        "downlink": 20000000,
        "bitrate-unit": "Mbps",
        "traffic-class": {
            "qci": 9,
            "arp": 1,
            "pdb": 2,
            "pelr": 1,
            "name": "platinum"
        }
    },
    "site-device-group": [
        "iot-camera"
    ],
    "site-info": {
        "site-name": "menlo",
        "plmn": {
            "mcc": "315",
            "mnc": "010"
        },
        "gNodeBs": [
            {
                "name": "menlo-gnb1",
                "tac": 1
            }
        ],
        "upf": {
            "upf-name": "upf.menlo.aetherproject.org",
            "upf-port": 8805
        }
    }
}

DELETE Request - Remove a network slice:

URL: http://<config-service-name-or-ip>:<port>/network-slice/<slice-name>
Example: http://config5g:8080/network-slice/slice1

Note

Each slice must have a single UPF. Multiple UPFs cannot be added to a single slice. One or more access nodes can be added to a slice. Currently, SD-Core does not validate access nodes connecting to MME/AMF, but TAC and PLMN validation is performed in the core network.

Network Slice with Application Filtering Configuration """""""""""""""""""""""""""""""""""""""""""""""""""""

The example below creates a network slice with application filtering enabled. This configuration restricts traffic to only allow a single application hosted at address 10.91.1.3.

POST Request - Create a network slice with application filtering:

URL: http://<config-service-name-or-ip>:<port>/network-slice/<slice-name>
Example: http://config5g:8080/network-slice/slice1

Request Body:

{
     "slice-id":
     {
         "sst": "1",
         "sd": "010203"
     },
     "qos":
     {
         "uplink": 4000000,
         "downlink": 20000000,
         "bitrate-unit": "Mbps",
         "traffic-class":
         {
             "qci": 9,
             "arp": 1,
             "pdb": 2,
             "pelr": 1,
             "name": "platinum"
         }
     },
     "site-device-group":
     [
         "iot-camera"
     ],
     "site-info":
     {
         "site-name": "menlo",
         "plmn":
         {
             "mcc": "315",
             "mnc": "010"
         },
         "gNodeBs":
        [
            {
                "name": "menlo-gnb1",
                "tac": 1
            }
        ],
        "upf":
        {
            "upf-name": "upf.menlo.aetherproject.org",
            "upf-port": 8805
        }
     },
     "application-filtering-rules":
    [
        {
            "rule-name": "rule-1",
            "priority": 5,
            "action": "permit",
            "endpoint": "10.91.1.3",
            "traffic-class":
            {
                "name": "platinum",
                "qci": 9,
                "arp": 125,
                "pdb": 300,
                "pelr": 6
            }
        }
    ]
}

DELETE Request - Remove a network slice:

URL: http://<config-service-name-or-ip>:<port>/network-slice/<slice-name>
Example: http://config5g:8080/network-slice/slice1

Note

ROC (Runtime Operational Controller) uses these REST APIs to configure SD-Core. ROC provides a user-friendly web portal to manage network slices and devices. For more information, refer to the Aether documentation.