*[MEC012 - Radio Network Information Service](#mec012-radio-network-information-service)
*[MEC028 - WLAN Access Information Service](#mec028-wlan-access-information-sevice)
*[Example MEC Sandbox Use Cases](#example-mec-sandbox-use-cases)
*[Sandbox External ME App discovery of the Network and Tracking a Device via Location Service API](#sandbox-external-me-app-discovery-of-the-network-and-tracking-a-device-via-location-service-api)
*[Browser based MEC client tracking the Location of a Device](#browser-based-mec-client-tracking-the-location-of-a-device)
@@ -35,16 +36,19 @@
> The MEC Sandbox includes four Macro Network Topology options, including: 1) 4G Cellular, 2) 4G Cellular with WiFi Hotspots, 3) 5G Cellular, and 4) 5G Cellular with WiFi.
The following applies across all the Sandbox Macro Network Scenarios options:
* Network provided by a single Mobile Network Operator (MNO). Sandbox will appear as a "test" network and not an actual MNO network (e.g. Monaco Telecom)
* Network provided by a single Mobile Network Operator (MNO).
* Sandbox will appear as a "test" network and not an actual MNO network (e.g. Monaco Telecom)
* PLNM: MCC = 001; MNC == 001
* WiFi Hotspots are also provided by the MNO as 3GPP Trusted WiFi
* Terminals maintain a consistent IP Address across 3GPP cellular and WiFi connections.
* All WiFi Hotspots will present the same SSID.
* Terminals have a single data connection at any one time. Terminals attach to the closest Point of Attachment with the following order of connection precedence:
1. First connection preference is WiFi
2. Second connection preference is a 3GPP Small Cell
3. Last connection preference is a 3GPP Macro Cell, with no gaps in macro cell coverage.
* Final geo-location of access points (3GPP and WiFi) will be adjusted based on selected mobility paths of terminals.
* Terminals are identified by IPv4 Address, which is a common identifier across MEC Service APIs: Location Service, RNIS, and WLAN API.
* When connected to WiFi, terminals may also be identified by MAC Address (required in the MEC028 data model)
### Macro Network 4G
@@ -88,9 +92,10 @@ The following applies across all the Sandbox Macro Network Scenarios options:
### Macro Network 5G
* Seven 5G Macro Cell Tower Locations (same as 4G option, all towers are 5G)
**Open Point: present all macro locations as 5G NR cells, 4G LTE cells, or a mixture. To be resolved in Sandbox MVP*
* Twelve 5G NR Small Cells Locations in high terminal traffic areas
* Small cells have a 100 meter range
* Terminal connection preference is Small Cells over Macro Cells - single PoA connection at any given time
@@ -165,9 +170,9 @@ See details below.
> This section describes how MEC Service APIs may be utilized by a MEC Sandbox user. Note, the MEC Service APIs are not isolated from each other. For example, a Sandbox User may call the Location Service and RNIS at the same time. The MEC Sandbox API responses will be consistent across both Services.
### MEC013 Location Service
> _v2 will be considered when available on Forge. However, v2 delta summary and impact to the Sandbox is provided._
> _All endpoints specified in v1 will be included in the MEC Sandbox as part of STF587. v2 endpoints will be considered for Milestone D, depending availability in Forge and remaining STF587 effort. No change in scenario specification since Milestone A._
#### MEC013 v1.1.1 - currently available swagger version
#### MEC013 v1.1.1 - currently available swagger version on Forge
| Timestamp == string (date and time) | Timestamp == <br>- Uint32 seconds in Unix-time since Jan 1 1970 <br>- Uint32 nanoseconds in Unix-time | Modified - change in format |
| Location Info == | - latitude <br>- longitude <br>- altitude <br>- accuracy | Modified - much more complex type. See Section 6.5.3. Includes v.1.1.1 parameters, plus: shape information, velocity, etc. |
| /users/{userId} <br><br> UE Location Look-up of a single UE | /v2/users <br><br> UE Location Lookup for a specific UE **or a group of UEs** | Modified <br><br> Query input: <br>- zoneId(s) <br>- accessPointId(s)<br>- UE address(s) |
|- | /v2/queries/distance | Addition – user can query the distance between a terminal an either a geo-location or another terminal (need to know addresses for both terminals) <br><br> Query input: <br>-Parameter 1 == UE address <br>-Parameter 2 == geo-location (distance between UE and this point), <br>or UE address (distance between two UEs <br><br>*Future consideration* |
|- |/v2/subscriptions/periodic | Addition - user can subscribe notifications to periodic location notifications <br><br> Subscription input: <br>- address of terminal to report <br>- accuracy <br>- frequency of reporting (period) <br>- duration <br><br> Notification (Subscription Notification) – issued periodically: <br>- UE address <br>- Current UE location: accuracy, altitude, latitude, longitude, time-stamp
|- | /v2/subscriptions/distance | Addition - user can subscribe to changes in distance between a UE (or set of UEs) and a reference UE (or set) <br><br> Subscription input: <br>- reference address(s) <br>- monitored address(s) <br>- distance <br>- accuracy <br>- criteria: all within, any within, all beyond, all beyond<br>- check immediately on subscription <br>- max frequency of reporting <br>- duration <br>- max count - number of notifications <br><br>Notification (Subscription Notification) – issued on criteria: <br>- address and current Location for all UEs: reference and monitored |
|-| /v2/subscriptions/area/circle | Addition - user can subscribe to user(s) location in relation to a geo-located circle (defined by coordinates and a radius) <br><br> Subscription input: <br>- UE address(s) <br>- Circle info: latitude, longitude, radius <br>- accuracy <br>- criteria: entering, leaving <br>- check immediately on subscription <br>- max frequency of reporting <br>- duration <br>- max count - number of notifications <br><br>Notification (Subscription Notification) – – issued on criteria: <br>- UE address <br>- Current UE Location |
|- | /v2/queries/distance | Addition – user can query the distance between a terminal an either a geo-location or another terminal (need to know addresses for both terminals) <br><br> Query input: <br>-Parameter 1 == UE address <br>-Parameter 2 == geo-location (distance between UE and this point), <br>or UE address (distance between two UEs <br><br>*STF587 Milestone D consideration, depending on remaining time and effort* |
|- |/v2/subscriptions/periodic | Addition - user can subscribe notifications to periodic location notifications <br><br> Subscription input: <br>- address of terminal to report <br>- accuracy <br>- frequency of reporting (period) <br>- duration <br><br> Notification (Subscription Notification) – issued periodically: <br>- UE address <br>- Current UE location: accuracy, altitude, latitude, longitude, time-stamp<br><br>*STF587 Milestone D consideration, depending on remaining time and effort* |
|- | /v2/subscriptions/distance | Addition - user can subscribe to changes in distance between a UE (or set of UEs) and a reference UE (or set) <br><br> Subscription input: <br>- reference address(s) <br>- monitored address(s) <br>- distance <br>- accuracy <br>- criteria: all within, any within, all beyond, all beyond<br>- check immediately on subscription <br>- max frequency of reporting <br>- duration <br>- max count - number of notifications <br><br>Notification (Subscription Notification) – issued on criteria: <br>- address and current Location for all UEs: reference and monitored <br><br>*STF587 Milestone D consideration, depending on remaining time and effort*|
|-| /v2/subscriptions/area/circle | Addition - user can subscribe to user(s) location in relation to a geo-located circle (defined by coordinates and a radius) <br><br> Subscription input: <br>- UE address(s) <br>- Circle info: latitude, longitude, radius <br>- accuracy <br>- criteria: entering, leaving <br>- check immediately on subscription <br>- max frequency of reporting <br>- duration <br>- max count - number of notifications <br><br>Notification (Subscription Notification) – – issued on criteria: <br>- UE address <br>- Current UE Location <br><br>*STF587 Milestone D consideration, depending on remaining time and effort*|
### MEC012 Radio Network Information Service
> *Under development including consideration for RNIS v2 - to be completed for Milestone B*
> _The following query endpoints and subscriptions will be supported in STF587, based on v1: (1) rab_info; (2) plmn_info; (3) cell_change; (4) rab_est; (5) rab_rel. v2 changes for these endpoints are minor and may be considered during implementation or when v2 is available on Forge. The remaining endpoints are either marked for STF587 Milestone D consideration (depending on time and effort) or deferred for future consideration beyond STF587. All RABs will have a consistent QCI value (e.g. non-GBR, QCI = 80 -- Low latency eMBB applications, TCP/UDP-based )_
#### MEC 012 v1.1.1 - currently available swagger version
| /queries/rab_info | This resource is queried to retrieve information on Radio Access Bearers. | Terminal's are identified via UE_IPV4_ADDRESS type in associateId <br><br> Sandbox query input utilizes: <ul><li> cell_id (array): returns RabInfo for all terminals connected within the input cells (RabInfo includes terminal's assoicateId = IP address) </li><li> ue_ipv4_address (array): returns RabInfo for all input terminal's based on IP address (RabInfo includes terminal's connected Cell Id) </li><li> If no parameters are included: returns all RabInfo for all connected terminals in all cells </li><li> Both parameters are considered an "and".</li></ul><br> All other parameter are ignored. | Although the MEC Sandbox does not include data paths to terminals, the rab_info query can be used to discover terminals and their connected cells in the Sandbox. <br><br> As a Sandbox user, I can use this call to learn about all terminals in the network connected to 3GPP PoAs. I don't need to know the Terminal Id or the Cell Id. Input = null. <br><br> As a Sandbox user, if I know a Terminal's Id (IP address), I can use this call to determine if and where that terminal is 3GPP connected (input = terminal IP address) <br><br> As a Sandbox user, if I know a Cell Id, I can use this call to learn what terminals may be connected in that cell (input = cell id in EGCI format). |
| /queries/rab_info | This resource is queried to retrieve information on Radio Access Bearers. | Terminal's are identified via UE_IPV4_ADDRESS type in associateId <br><br> Sandbox query input utilizes: <ul><li> cell_id (array): returns RabInfo for all terminals connected within the input cells (RabInfo includes terminal's assoicateId = IP address) </li><li> ue_ipv4_address (array): returns RabInfo for all input terminal's based on IP address (RabInfo includes terminal's connected Cell Id) </li><li> If no parameters are included: returns all RabInfo for all connected terminals in all cells </li><li> Both parameters are considered an "and" </li></ul><br> All other parameter are ignored, including MEC app instance ID (Sandbox models all Service API requests coming from the same MEC App instance) | Although the MEC Sandbox does not include data paths to terminals, the rab_info query can be used to discover terminals and their connected cells in the Sandbox. <br><br> As a Sandbox user, I can use this call to learn about all terminals in the network connected to 3GPP PoAs. I don't need to know the Terminal Id or the Cell Id. Input = null. <br><br> As a Sandbox user, if I know a Terminal's Id (IP address), I can use this call to determine if and where that terminal is 3GPP connected (input = terminal IP address) <br><br> As a Sandbox user, if I know a Cell Id, I can use this call to learn what terminals may be connected in that cell (input = cell id in EGCI format). <br><br> RABs will have a consistent QCI value (e.g. non-GBR, QCI = 80 -- Low latency eMBB applications, TCP/UDP-based ).
| /queries/plmn_info | This resource is queried to retrieve information on the underlying Mobile Network that the mobile edge application is associated to. | Returns Sandbox PLMN: <ul><li> MCC = 001; <li> MNC = 001 </ul> | As a Sandbox user, I can use this query to learn the PLMN of the Sandbox Network. <br><br> RNIS v1: cellId set to static value <br><br> Application instance identifier is ignored. |
| /queries/s1_bearer_info | This resource is queried to retrieve S1-U bearer information related to specific UE(s). | *Future Consideration* | |
| /queries/s1_bearer_info | This resource is queried to retrieve S1-U bearer information related to specific UE(s). | *Not supporting - future consideration beyond STF587* | S1 Bearer too detailed for MEC Sandbox |
| /queies/layer2_meas <br><br>*v2 addition* | This resource is queried to obtained detailed cellular measurement information, filtered by all measurements, per UE, per Cell, etc. <br><br> L2 measurement information includes: <ul><li> Cell level information (PRB usage, # of active GBR and non-GBR terminals, packet discard rate, etc.); <li> UE level information (connected cell ID, packet delay, packet discard rate, throughput, data volume, etc.) </ul> | *STF587 Milestone D consideration, depending on remaining time and effort* | As a Sandbox user, I can use this query to learn latency, packet loss, and throughput information for terminals. I can also learn where terminals are connected in the 3GPP network. <br><br>*Sandbox scope does not include data traffic to/from emulated terminal devices. However, measurements that are network configuration or cell connection related could be supported (i.e not active measurements, e.g. data volume)* |
##### Subscription Endpoints
> Subscriptions not listed will be considered in Milestone
| /subscriptions | The GET method is used to request information about the subscriptions for this requestor. Upon success, the response contains entity body with the list of links to the subscriptions that are present for the requestor. | Return list of all RNIS subscriptions | Sandbox supports a single requester (i.e. single ME app calling MEC services). |
| /subscriptions/cell_change | Cell change notifications | Notifications report cell changes based on input filters <br><br> Supported filters include: <ul><li> associateId: list of terminals based on IP address <li> plmnId: ignored <li> cellId: list of cells (if not present, all cell changes) <li> hoStatus: ignored (notifications on COMPLETE) </ul> Filters are considered an "and" between types, then an "or" within the list of a type. For example: UEs (1,2,3) + Cells (a,b,c). Notification will trigger if any of the UEs handover with any of the cells; Otherwise not. UE1 handover with Cell4 for example. <br><br> Expiry Deadline is ignored. | As a Sandbox User, I can set a notification with no filters and I will get all cell change events that occur in the sandbox. <br><br> As a Sandbox User, I can set a notification for a specific terminal (or set) and monitor its handover changes across the 3GPP points of access. <br><br> As a Sandbox User, I can set a notification to monitor a specific cell (or set of cells) and monitor handover events for that cell.
| /subscriptions/rab_est | RAB establishment notification | Notifications report RAB establishments in the network, i.e. when a terminal connects to the 3GPP network. Sandbox examples include: <ul><li> Terminal is added to the Macro Network Scenario by the user <li> Terminal connects to a 3GPP PoA after being connected to WiFi </ul><br>Supported filters include: <ul><li> plmnId: ignored <li> cellId: list of cell (if not present, RAB establishment on any cell) <li> QCI: ignored </ul><br> Expiry Deadline is ignored. <br><br> Notification returns: <ul><li> associateId: IPv4 address of the terminal <li> erabId: RAB Id for the terminal's bearer </ul> | As a Sandbox User, I can set a notification with no filters and I will get all RAB establishment events on any cell (terminal connection to 3GPP anywhere in the network). <br><br> As a Sandbox User, I can set a notification for a specific cell (or set of cells) and monitor RAB establishments for those cells. |
| /subscriptions/rab_est | RAB establishment notification | Notifications report RAB establishments in the network, i.e. when a terminal connects to the 3GPP network. <br><br> Sandbox examples include: <ul><li> Terminal is added to the Macro Network Scenario by the user <li> Terminal connects to a 3GPP PoA after being connected to WiFi </ul><br>Supported filters include: <ul><li> plmnId: ignored <li> cellId: list of cell (if not present, RAB establishment on any cell) <li> QCI: ignored </ul><br> Expiry Deadline is ignored. <br><br> Notification returns: <ul><li> associateId: IPv4 address of the terminal <li> erabId: RAB Id for the terminal's bearer </ul> | As a Sandbox User, I can set a notification with no filters and I will get all RAB establishment events on any cell (terminal connection to 3GPP anywhere in the network). <br><br> As a Sandbox User, I can set a notification for a specific cell (or set of cells) and monitor RAB establishments for those cells. |
| /subscriptions/rab_mod | RAB modification notification | *Not supporting - future consideration beyond STF587* | Within the MEC Sandbox RABs will not change QCR, GBR or MBR. |
| /subscriptions/rab_rel | RAB release notification | Notifications report RAB releases in the network, i.e. when a terminal disconnects from the 3GPP network. Sandbox examples include: <ul><li> Terminal is removed from the Macro Network Scenario by the user <li> Terminal disconnects from a 3GPP PoA and connects to WiFi (RAB is released). </ul><br> Supported filters include: <ul><li> erabId: single value (or associateId, list of IP addresses) <li> plmnId: ignored <li> cellId: list of cell (if not present, RAB release on any cell) <li> QCI: ignored </ul><br> Expiry Deadline is ignored. | As a Sandbox User, I can set a notification with no filters and I will get all RAB release events on any cell (terminal disconnect from 3GPP anywhere in the network - device removed or WiFi connection). <br><br> As a Sandbox User, I can get a RAB release notification for a specific terminal and I will get a notification, if that terminal disconnects from 3GPP. |
| subscriptions/meas_rep_ue | Notification providing a UE measurement report (4G LTE), when available | *STF587 Milestone D consideration, depending on remaining time and effort*<br><br> Periodic events fit into MEC Sandbox scope (e.g. PERIODICAL_REPORT_STRONGEST_CELLS). Sandbox to trigger reports based on a internal period (not MEC app or Sandbox user configurable). <br><br> Trigger-based events not supported. | As a Sandbox user, I can set notifications to monitor UEs connected 4G LTE that include: signal levels, cell connection, and neighbor cells. |
| subscriptions/ta | Notification providing a UE timing advance report | *STF587 Milestone D consideration, depending on remaining time and effort*<br><br> Sandbox to trigger TA reports based on a internal period (not MEC app or Sandbox user configurable). | Timing advanced calculated based on terminal distance from 3GPP PoA. <br><br> Applied to both 4G and 5G Cells. |
| subscriptions/ca_reconf | Carrier aggregation reconfiguration notification | *Not supporting - future consideration beyond STF587* | Not supporting carrier aggregation emulation. Too detailed for MEC Sandbox |
| subscriptions/nr_meas_rep_ue | Notification providing a UE measurement report (5G NR), when available | *STF587 Milestone D consideration, depending on remaining time and effort*<br><br> Periodic events fit into MEC Sandbox scope (e.g. NR_PERIODICAL). Sandbox to trigger reports based on a internal period (not MEC app or Sandbox user configurable). <br><br> Trigger-based events not supported. | As a Sandbox user, I can set notifications to monitor UE when connected to 5G NR that include: signal levels, cell connection, and neighbor cells.
> Other miscellaneous v2 differences:
| v1.1.1: | v2.1.1: | Notes: |
| ----------|------------ | -------------- |
| PlmnInfo -- <br> includes Cell ID | Modified. <br><br> Cell ID removed from PlmnInfo | v1 Sandbox implementation setting Cell ID to static value |
### MEC028 WLAN Service
### MEC028 WLAN Access Network Information Service