5G-MAG / Standards

Specifications related to 5G-MAG's areas of work. Tracking comments, bug-fixing, request for new features, etc.
https://www.5g-mag.com/standards
12 stars 4 forks source link

TS 26.512: M5 Dynamic Policies API and Network Assistance API - Potential inconsistency in the resource structure #105

Closed dsilhavy closed 8 months ago

dsilhavy commented 10 months ago

Description

TS 26.512 17.70 defines the M5 Dynamic Policies API and the M5 Network Assistance API and their corresponding resource structures:

The DynamicPolicy resource that is sent as a payload in the POST request is defined in Section 11.5.3.1 and contains a provisioningSessionId. The same is true for the provisioning of a new network assistance session, as can be seen in the defintion of the NetworkAssistanceSession resource in Section 11.6.3.

Compared to other API endpoints such as the one for consumption reporting and metrics reporting the provisioningSessionId is not part of the resource structure. As an example:

Discussion

I was wondering what the reason was to place the provisioningSessionId in the POST body for dynamic policies and network assistance. This seems to be inconsistent to what was done for metrics reporting and consumption reporting.

As an example, can we add the provisioningSessionId as a sub-resource path to the POST request of the Dynamic Policies API? From my understanding the provisioningSessionId is not needed for the GET, PUT, PATCH and DELETE operations as we are using a unique dynamicPolicyId. Consequently, we can not add the provisioningSessionId to the base URL path.

rjb1000 commented 10 months ago

Thinking about this one...

rjb1000 commented 10 months ago

After discussing with @davidjwbbc, I decided to try and make the case for this change in TS 26.510 Rel-18 first and will present a pCR to SA4#127 for possible agreement.

For consistency of approach across reference point M5 (except for Service Access Information retrieval, which is being changed differently in Rel-18), we both agreed that a uniform base path that includes the Provisioning Session ID at the start for all the other API endpoints would be beneficial:

Here is my prototype implementation on a feature branch of 3GPP Forge:

rjb1000 commented 10 months ago

As an adjunct of this design, {provisioningSessionId} needs to become a read-only property of the DynamicPolicy and NetworkAssistanceSession resources that are created by the Media AF on request from the Media Session Handler.

rjb1000 commented 8 months ago

Decided not to pursue this in Rel-16 or Rel-17 because it would break backwards compatibility of the APIs.