@@ -11,7 +11,7 @@ A Sandbox User must select one of the following network configuration:
| Network | Network Configuration | Notes
| -| - |-
| 4G | Macro cell tower sites - single cell per tower site <br><br> Terminals connect to the closest cell tower (i.e. best signal) <br><br> 1 Edge Host site -- in MNO Central Office | Topology details: [4G Network Topology](#macro-network-4g)<br><br> Sandbox will appear as a "test" network and not an actual MNO network (e.g. Monaco Telecom) <br><br> PLMN: <br> - MCC = 001 <br> - MNC = 001 <br><br> Sandbox assumes that all calls to MEC Service APIs come from the same MEC Application instance (i.e. notifications from the same subscriber) |
| 5G | All macro cell sites (signal cell per site) configured as 5G <br><br> Configuration includes 5G Small Cells, in addition to the macro cell sites. <br><br> Terminals connect to the closest cell tower or small cell (i.e. best signal) <br><br> 1 Edge Host site -- in MNO Central Office | Topology details: [5G Network Topology](#macro-network-5g)<br><br>*Future consideration beyond STF587 scope: 2-3 Edge Hosts near macro towers*|
| 5G | All macro cell sites (signal cell per site) configured as 5G <br><br> Configuration includes 5G Small Cells, in addition to the macro cell sites. <br><br> Terminals connect to the closest cell tower or small cell (i.e. best signal) <br><br> 1 Edge Host site -- in MNO Central Office | Topology details: [5G Network Topology](#macro-network-5g) |
| +WiFi | WiFi as an "add-on" option to include in both 4G and 5G configurations. <br><br> WiFi hot-spots included in the network based on WiFi hot spot map. | Topology details: <br> - [4G Network Topology with WiFi](#macro-network-4g-and-wifi)<br> - [5G Network Topology with WiFi](#macro-network-5g-and-wifi) |
The following applies across all Macro-Network Scenarios:
* MEC Application learns the layout of the network: zones, access points, terminals, etc.
* MEC Application can select a terminal of interest and start tracking its location via both queries and notifications: connected zone, connected access point, and geo-location.
*See [user interface](../Sandbox-User-Interface#mec-sandbox-wireframe) for frontend details*
| Operation | Notes |
| --------- | ------ |
| 1. Log-in on the Sandbox landing page with access credentials & go to the User Sandbox area| *See [user interface wireframes](https://forge.etsi.org/rep/stf-587/mec-sandbox-scenarios/tree/master/Sandbox-User-Interface#mec-sandbox-wireframe) for details* |
| 2. Find the Location Service URL endpoints & configure them into my application or environment | *See [user interface wireframes](https://forge.etsi.org/rep/stf-587/mec-sandbox-scenarios/tree/master/Sandbox-User-Interface#mec-sandbox-wireframe) for details* |
| 3. Select the network to deploy in the user sandbox | *See [user interface wireframes](https://forge.etsi.org/rep/stf-587/mec-sandbox-scenarios/tree/master/Sandbox-User-Interface#mec-sandbox-wireframe) for details*|
| 1. Log-in on the Sandbox landing page with access credentials & go to the User Sandbox area| _See [frontend](../Sandbox-User-Interface#sbox01)_ |
| 2. Find the Location Service URL endpoints & configure them into my application or environment | _See [frontend](../Sandbox-User-Interface#sbox05a)_ |
| 3. Select the network to deploy in the user sandbox | _See [frontend](../Sandbox-User-Interface#sbox05a)_ |
| 4. Start my application or environment | Note: My MEC Application knows nothing about the sandbox scenario: zones, access points, terminals, etc. <br><br> The Sandbox User's External MEC Client environment must be able to handle API not available responses to allow the sandbox or user environment to be started independently. |
| I want to learn how the network is organized. <br><br>First, I learn zones in the network and how they are organized. <br><br> 5. Call "/<user-specific-mec-sandbox-url>/location-service/zones" <br><br> 5a. MEC sandbox returns a list of zones with zoneId | Examples are not a fully formed URLs <br><br> Now, my MEC Application knows all the zones in the network: # of PoAs in each zone and number of UEs in each zone. |
| I want to learn where the access points are in the network and their status (operational, etc.) <br><br> 6. Loop for each zoneID - Call "/<user-specific-mec-sandbox-url>/location-service/zones/{zoneId}/accessPoints" <br><br> 6a. MEC sandbox returns list of accessPoints within a zone | For each call - my MEC Application now knows the access point id for each PoA in a zone and where it is (geo-location), number of users on each PoA, and each PoA status (Serviceable), etc.|
* Try both queries and subscriptions / notifications.
*See [user interface](../Sandbox-User-Interface#mec-sandbox-wireframe) for frontend details*
| Operation: | Notes: |
| --------- | ------ |
| 1. Log-in on the Sandbox landing page with access credentials & go to the User Sandbox area | *See [user interface wireframes](https://forge.etsi.org/rep/stf-587/mec-sandbox-scenarios/tree/master/Sandbox-User-Interface#mec-sandbox-wireframe) for details* |
| 2. Select the network to deploy in the user sandbox | *See [user interface wireframes](https://forge.etsi.org/rep/stf-587/mec-sandbox-scenarios/tree/master/Sandbox-User-Interface#mec-sandbox-wireframe) for details* |
| MEC Sandbox presents a map of Monaco showing: access point locations (geo-location, etc.), terminal locations, terminal connections to access points, terminal mobility, etc. <br><br> 3. As a user, I monitor the map for a period of time to get an understanding on how terminals are moving, when handovers occur, etc. | *See [user interface wireframes](https://forge.etsi.org/rep/stf-587/mec-sandbox-scenarios/tree/master/Sandbox-User-Interface#mec-sandbox-wireframe) for details* |
| I want to see information about all users within a zone, picking a zone of interest (e.g. zone with the most terminals) <br><br> 4. "Try" /mec-sandbox/users for a single zone. <br> - Choose a zone of interest from the MEC sandbox UI & click the "try it from browser" to pen. <br> - Click the "try it from browser" for this endpoint and enter the zoneId. <br><br> 4a. MEC sandbox displays the response to the user: <br>- userList that includes all terminals in the zone (terminal address, accessPointId, zoneId). | I can repeat this operation over and over – monitoring the number and details for terminals as they change in the zone (enter, leave, transfer). <br><br> I can correlate the response data with the sandbox map graphic. <br><br>*See [user interface wireframes](https://forge.etsi.org/rep/stf-587/mec-sandbox-scenarios/tree/master/Sandbox-User-Interface#mec-sandbox-wireframe) for details* |
| I want to see the geo-location of a single terminal and query for changes in its location <br><br> 5. "Try" /mec-sandbox/users/{userId} for a single terminal. <br> - Select a terminal of interest from the MEC sandbox UI (e.g. high-mobility terminal). <br> - Click the "try it" for this endpoint and enter the terminal address. <br><br> 5a. MEC sandbox displays the response to the user: <br> - Terminal address, accessPointId, zoneId, geo-location | I can repeat this operation over and over – monitoring how for the selected terminal: <br> - geo-location changes <br> - handovers across access points and zones <br><br> I can correlate the response data with the sandbox map graphic. <br><br>*See [user interface wireframes](https://forge.etsi.org/rep/stf-587/mec-sandbox-scenarios/tree/master/Sandbox-User-Interface#mec-sandbox-wireframe) for details* |
| I want to be asynchronously notified when a terminal transitions across points of access (within or between zones). <br><br> 6. I "try" /mec-sandbox/subscriptions/userTracking (post): <br> - Select a terminal of interest from the MEC sandbox UI (e.g. high-mobility UE). <br> - Click the "try it" endpoint and enter the terminal address (userEventCriteria is left empty). <br><br> 6a. MEC sandbox displays the post response to the user. <br><br> 6b. Asynchronously - MEC Sandbox issues the ZonalPresenceNotification callback, when the terminal moves across PoAs in the sandbox. <br> - Notification is highlighted to the sandbox user. <br> - Notification data includes: callbackData, zoneId, terminal address, interestRealm, userEventType (entering, leaving, transferring), currentAccessPointId, previousAccessPointId, timestamp (in sandbox environment). | Note: Sandbox user does not include a callback reference (callback URL). The sandbox takes care of the callback URL. <br><br> Need to determine how to input (or not) clientCorrelator (returned in callbackData in notification) <br><br>*See [user interface wireframes](https://forge.etsi.org/rep/stf-587/mec-sandbox-scenarios/tree/master/Sandbox-User-Interface#mec-sandbox-wireframe) for details* |
| I want to be asynchronously notified when number of terminals in a zone exceeds "x". Notification will issue if the number of users exceeds or falls below "x". As an example, below x = 1. <br><br> 7. "Try" /mec-sandbox/subscriptions/zonalStatus (post): <br> - Select a zone of interest from the MEC sandbox UI (e.g. zone that currently contains no terminals; however, I have noticed 2 or more terminals in the zone in the past via the MEC sandbox UI). <br> - Click the "try it" and enter zoneID and numberOfUsersZoneThreshold (e.g. 1) <br><br> 7a. MEC sandbox displays the post response to the user <br><br> 7b. Asynchronously - MEC Sandbox issues the ZonalStatusNotification callback when 2 terminals connect within the subscribed zone or the number of connected users falls to 0 (i.e. threshold is crossed). <br> - Notification is highlighted to the sandbox user. <br> - Notification data includes: callbackData, zoneId, numberofUsersInZone, timestamp (in Sandbox environment).| Note: Notification is issued when the threshold is crossed: <br> - Exceeding – when 2 users become connect in the zone; <br> - Decreasing - when 0 users become connected in the zone. <br><br>*See [user interface wireframes](https://forge.etsi.org/rep/stf-587/mec-sandbox-scenarios/tree/master/Sandbox-User-Interface#mec-sandbox-wireframe) for details* |
| I want to cancel my subscriptions... <br><br> 8. "Try" /mec-sandbox/subscriptions/userTracking (delete - subscriptionId) <br><br> 8a. MEC sandbox displays the delete response to the user | Note: the sandbox takes care of and presents "Subscription Id" locations for individual notification subscriptions. <br><br> I can repeat this operation over and over for each subscription that I created. <br><br>*See [user interface wireframes](https://forge.etsi.org/rep/stf-587/mec-sandbox-scenarios/tree/master/Sandbox-User-Interface#mec-sandbox-wireframe) for details*|
| 9. Terminate my MEC sandbox scenario | *See [user interface wireframes](https://forge.etsi.org/rep/stf-587/mec-sandbox-scenarios/tree/master/Sandbox-User-Interface#mec-sandbox-wireframe) for details* |
| 10. Log-out of the MEC Sandbox (Forge Dev account) | *See [user interface wireframes](https://forge.etsi.org/rep/stf-587/mec-sandbox-scenarios/tree/master/Sandbox-User-Interface#mec-sandbox-wireframe) for details* |
| 1. Log-in on the Sandbox landing page with access credentials & go to the User Sandbox area | _See [frontend](../Sandbox-User-Interface#sbox01)_ |
| 2. Select the network to deploy in the user sandbox | _See [frontend](../Sandbox-User-Interface#sbox04)_ |
| MEC Sandbox presents a map of Monaco showing: access point locations (geo-location, etc.), terminal locations, terminal connections to access points, terminal mobility, etc. <br><br> 3. As a user, I monitor the map for a period of time to get an understanding on how terminals are moving, when handovers occur, etc. | _See [frontend](../Sandbox-User-Interface#sbox03)_ |
| I want to see information about all users within a zone, picking a zone of interest (e.g. zone with the most terminals) <br><br> 4. "Try" /mec-sandbox/users for a single zone. <br> - Choose a zone of interest from the MEC sandbox UI & click the "try it from browser" to pen. <br> - Click the "try it from browser" for this endpoint and enter the zoneId. <br><br> 4a. MEC sandbox displays the response to the user: <br>- userList that includes all terminals in the zone (terminal address, accessPointId, zoneId). | I can repeat this operation over and over – monitoring the number and details for terminals as they change in the zone (enter, leave, transfer). <br><br> I can correlate the response data with the sandbox map graphic. <br><br>_See [frontend](../Sandbox-User-Interface#sbox03)_ |
| I want to see the geo-location of a single terminal and query for changes in its location <br><br> 5. "Try" /mec-sandbox/users/{userId} for a single terminal. <br> - Select a terminal of interest from the MEC sandbox UI (e.g. high-mobility terminal). <br> - Click the "try it" for this endpoint and enter the terminal address. <br><br> 5a. MEC sandbox displays the response to the user: <br> - Terminal address, accessPointId, zoneId, geo-location | I can repeat this operation over and over – monitoring how for the selected terminal: <br> - geo-location changes <br> - handovers across access points and zones <br><br> I can correlate the response data with the sandbox map graphic. <br><br>_See [frontend](../Sandbox-User-Interface#sbox03)_ |
| I want to be asynchronously notified when a terminal transitions across points of access (within or between zones). <br><br> 6. I "try" /mec-sandbox/subscriptions/userTracking (post): <br> - Select a terminal of interest from the MEC sandbox UI (e.g. high-mobility UE). <br> - Click the "try it" endpoint and enter the terminal address (userEventCriteria is left empty). <br><br> 6a. MEC sandbox displays the post response to the user. <br><br> 6b. Asynchronously - MEC Sandbox issues the ZonalPresenceNotification callback, when the terminal moves across PoAs in the sandbox. <br> - Notification is highlighted to the sandbox user. <br> - Notification data includes: callbackData, zoneId, terminal address, interestRealm, userEventType (entering, leaving, transferring), currentAccessPointId, previousAccessPointId, timestamp (in sandbox environment). | Note: Sandbox user does not include a callback reference (callback URL). The sandbox takes care of the callback URL. <br><br> Need to determine how to input (or not) clientCorrelator (returned in callbackData in notification) <br><br>_See [frontend](../Sandbox-User-Interface#sbox05b)_ |
| I want to be asynchronously notified when number of terminals in a zone exceeds "x". Notification will issue if the number of users exceeds or falls below "x". As an example, below x = 1. <br><br> 7. "Try" /mec-sandbox/subscriptions/zonalStatus (post): <br> - Select a zone of interest from the MEC sandbox UI (e.g. zone that currently contains no terminals; however, I have noticed 2 or more terminals in the zone in the past via the MEC sandbox UI). <br> - Click the "try it" and enter zoneID and numberOfUsersZoneThreshold (e.g. 1) <br><br> 7a. MEC sandbox displays the post response to the user <br><br> 7b. Asynchronously - MEC Sandbox issues the ZonalStatusNotification callback when 2 terminals connect within the subscribed zone or the number of connected users falls to 0 (i.e. threshold is crossed). <br> - Notification is highlighted to the sandbox user. <br> - Notification data includes: callbackData, zoneId, numberofUsersInZone, timestamp (in Sandbox environment).| Note: Notification is issued when the threshold is crossed: <br> - Exceeding – when 2 users become connect in the zone; <br> - Decreasing - when 0 users become connected in the zone. <br><br>_See [frontend](../Sandbox-User-Interface#sbox05b)_ |
| I want to cancel my subscriptions... <br><br> 8. "Try" /mec-sandbox/subscriptions/userTracking (delete - subscriptionId) <br><br> 8a. MEC sandbox displays the delete response to the user | Note: the sandbox takes care of and presents "Subscription Id" locations for individual notification subscriptions. <br><br> I can repeat this operation over and over for each subscription that I created. |
| 9. Terminate my MEC sandbox scenario | |
| 10. Log-out of the MEC Sandbox (Forge Dev account) | |