Skip to content

Draft/qod api documentation#2

Open
ravindrapalaskar17 wants to merge 10 commits intoqod-api-documentationfrom
draft/qod-api-documentation
Open

Draft/qod api documentation#2
ravindrapalaskar17 wants to merge 10 commits intoqod-api-documentationfrom
draft/qod-api-documentation

Conversation

@ravindrapalaskar17
Copy link
Copy Markdown
Owner

Hi Akos I have done the necessary changes suggested by you.. in Qod API documentation. Kindly review the same.


**Base URL**
The RESTful QOD (Quality on Demand) API endpoint, for example [**https://telekom-api.developer.telekom.com/5g-throughput**](https://telekom-api.developer.telekom.com/5g-throughput)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This URL doesn't seem to work.


**App-Flow**
Describes the precise flow the developer wants to prioritize and have stable bandwidth/latency for. This flow is described using source IP address which is (ueId), Destination IP address which is (asId) and ports with flow direction.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about other identifiers like msisdn or externalId? Better would be that the flow is described using the UE-identifier (IP address, msisdn or external ID), the application server identifier (IP address) and ports.

Based on the API, QoS sessions can be created, queried, and deleted.The QoD API has the following characteristics:
* A specified App-Flow is prioritized to ensure stable throughput/latency for that flow
* The prioritized App-Flow is described by providing additional information such as ports, direction of flow etc.
* Stable bandwidth/latency is requested by selecting from the list of QoS profiles made available by the service provider (e.g. Small ,Medium, Large) to map throughput requirements
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

direction of flow?

| POST<br> \<base-url>/qod/v0/sessions | **Create Session** | Creates a new QoS session on demand |
| GET<br> \<base-url>/qod/v0/sessions/{sessionId} | **Query for Session** | Get session information |
| DELETE<br> \<base-url>/qod/v0/sessions/{sessionId} | **Delete Session** | Deleting a QoS session Free resources related to QoS session|
<br>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Strange sentence, are those 2?

| **Create QoS session** |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **HTTP Request**<br> POST \<base-url>/qod/v0/sessions<br>**Query Parameters**<br> No query parameters are defined.<br>**Path Parameters**<br> No path parameters are defined.<br>**Request Body Parameters**<br> **duration (optional)**: Session duration in seconds. Maximal value of 24 hours is used if not set.<br> **ueId:** The IPv4 address of the user equipment. It can contain a single IP address or a range, using a mask.<br> Format: \<address>[/\<mask>]<br> - address : an IPv4 number in dotted-quad form 1.2.3.4. Only this exact IP number will match the flow control rule.<br> - address/mask : an IP number as above with a mask width of the form 1.2.3.4/24.<br> *In this case, all IP numbers from 1.2.3.0 to 1.2.3.255 will match. The bit width MUST be valid for the IP version.*<br> **asId:** The IPv4 address of the application server. It can contain a single IP address or a range, using a mask.<br> <br> **uePort (optional):** A list of single ports or port ranges on the user equipment.<br> Ports may be specified as <\{port\ |port\-port\}\[\,ports\[\,\.\.\.\]\]\>\.<br> The '-' notation specifies a range of ports (including boundaries).<br> Example: '5010-5020,5021,5022'<br> **asPort (optional):** A list of single ports or port ranges on the application server.<br> **protocolIn:** The used transport protocol for the uplink.<br> TCP - TCP protocol<br> UDP - UDP protocol<br> ANY - all protocols<br> **protocolOut :** The used transport protocol for the downlink.<br> TCP - TCP protocol<br> UDP - UDP protocol<br> ANY - all protocols<br> **qos:** Qualifier for the requested throughput profile (QoS values based on example mapping and might differ in production networks).<br> THROUGHPUT\_S - Example: downlink up to 10Mbps<br> THROUGHPUT\_M - Example: downlink up to 30Mbps<br> THROUGHPUT\_L - Example: downlink up to 100Mbps<br> **notificationUri (optional):** URI of the callback receiver. Allows asynchronous delivery of session related events<br>Example: '[<span class="s2">https://application-server.com/notifications</span>](https://application-server.com/notifications)'</span><br> **notificationAuthToken (optional):** Authentification token for callback API.<br> Example: 'c8974e592c2fa383d4a3960714'<br><br>**Response**<br> **201: Session created**<br> Response body:<br> **duration:** Session duration in seconds.<br> **ueAddr:** The ipv4 address of the user equipment.<br> **asAddr:** The ipv4 address of the application server.<br> **uePort (optional):** The requested port(s) on the user equipment.<br> **asPort (optional):** The requested port(s) on the user equipment.<br> **protocolIn:** The used transport protocol for the uplink.<br> **protocolOut:** The used transport protocol for the downlink.<br> **qos:** QoS qualifier of the requested throughput profile.<br> **notificationUri (optional):** URI of the callback receiver.<br> **notificationAuthToken (optional):** Authentication token for callback API.<br> **id:** Session ID in UUID format.<br> Example: 123e4567-e89b-12d3-a456-426614174000<br> **startedAt:** Timestamp of session start, in seconds since unix epoch.<br> Example: 1639479600<br> **expiresAt**: Timestamp of session expiration if the session was not deleted, in seconds since unix epoch.<br><br> **400:** **Invalid input.**<br> **401:** **Un-authorized, missing or incorrect authentication.**<br> **405:** **Invalid input**<br> **500:** **Session not created**<br> **503:** **Service temporarily unavailable** |
<br>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ueId and asId are still not just IP-addresses. Please check the API spec!

there is no uePort, but uePorts. What is <{port\ ?

asPorts is missing
qos is missing
notifications is missing
response codes are incorrect: there is no 200 but 201. 400 is missing... etc. Please check the API spec!

| **Quering QoS session information** |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **HTTP Request**<br> GET\<base-url>/qod/v0/sessions/{sessionId}<br>**Query Parameters**<br> No query parameters are defined.<br>**Path Parameters**<br> sessionId: Session id that was obtained from the Create QoS Session operation.<br>**Request Body Parameters**<br> No request body parameters are defined.<br>**Response**<br><br> **200: Session information returned.**<br> Response body:<br> **duration:** Session duration in seconds.<br> **ueId:** The ipv4 address of the user equipment.<br> **asId:** The ipv4 address of the application server.<br> **uePort (optional):** The requested port(s) on the user equipment.<br> **asPort (optional):** The requested port(s) on the user equipment.<br> **qos:** Qualifier of the requested throughput profile.<br> **notificationUri (optional):** URI of the callback receiver.<br> **notificationAuthToken (optional):** Authentication token for callback API.<br> **id:** Session ID in UUID format.<br> **startedAt:** Timestamp of session start in seconds since unix epoch.<br> **expiresAt:** Timestamp of session expiration if the session was not deleted in seconds since unix epoch.<br><br> **401:** Un-authorised, missing or incorrect authentication.<br> **404:** Session not found.<br> **503:** Service temporarily unavailable. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ueId and asId are still not just IP-addresses. Please check the API spec!

there is no uePort, but uePorts.
there is no asPort, but asPorts.

"asPort (optional): The requested port(s) on the user equipment. "
That's not correct.

"qos: Qualifier of the requested throughput profile."
not just troughput

| 10 | 409 | CONFLICT | "Another session is created for the same UE" |
| 11 | 500 | INTERNAL | "Session could not be created" |
| 12 | 503 | SERVICE_UNAVALIBLE | "Service unavailable" |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: SERVICE_UNAVALIBLE


* QoS session with 1H duration and QoS-profile "L" mapping,
* App-Flow is specified for UE-Terminal IP address (ueId=192.168.0.0/24), Application server network (asId=192.168.0.0/24) and Port number (asPorts=ranges from 5010 to 5020).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not the uiId/asId equals the ip address but only the ipv4address part of it.

ravindrapalaskar17 pushed a commit that referenced this pull request Sep 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants