Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ContentHostingConfiguration.distributionConfigurations.supplementaryDistributionNetworks inconsistencies. #28

Closed
davidjwbbc opened this issue Oct 17, 2022 · 10 comments
Assignees
Labels
3GPP Rel-17 Issues relating to 3GPP Release 17 specifications. 3GPP TS 26.512 Issues relating to SA4's "5G Media Streaming (5GMS); Protocols" specification. 5GMS Content Hosting Adopted Correction

Comments

@davidjwbbc
Copy link

davidjwbbc commented Oct 17, 2022

Description

From TS 26.512:

  1. Table 7.6.3.1-1 states that the distributionConfigurations.supplementaryDistributionNetworks field is a "Array(Map(DistributionNetworkType -> DistributionMode)", this has an uneven number of brackets. The text suggests that this is a mappings list, so "Array(" probably should not be there.
  2. Annex C.3.5 defines distributionConfigurations.supplementaryDistributionNetworks as an object with a "default" property whose value is a DistributionNetworkType and any other property whose value is a DistributionMode type. This is contradictory to the suggested structure in table 7.6.3.1-1.

The table suggests that this structure should look something like:

{
  "NETWORK_EMBMS": "MODE_HYBRID",
  "FUTURE_NETWORK_TYPE": "MODE_EXCLUSIVE"
}

However the OpenAPI in C.3.5 suggests that it would look like (where "default" is a mandatory property):

{
   "default": "NETWORK_EMBMS",
   "anything_i_want": "MODE_HYBRID"
}

I suspect that the first interpretation, from the table, is the correct one. Unfortunately this cannot be explicitly specified in OpenAPI as the type of the object property keys cannot be defined, they have to be a plain string. If this structure is wanted, then the only option is to document what the key type should be in the object description text.

(From discussion on this issue)
The alternative, in order to strongly type the two values, is to change this to an array of objects which have two mandatory fields, one for the distributionNetworkType and one for the distributionMode.

Suggested solution

  1. Change the entry for distributionConfigurations.supplementaryDistributionNetworks in table 7.6.3.1-1 to say "Array(Object)" for the Data Type.
  2. Add two extra rows in Table 7.6.3.1-1 after distributionConfigurations.supplementaryDistributionNetworks:
    distributionNetworkTypeDistributionNetworkType1..1Specifies the distribution network type for this mapping. Must be unique within this supplementaryDistributionNetworks array.
    distributionModeDistributionMode1..1Specifies the distribution mode to use with the distributionNetworkType.
3. Change the YAML in C.3.5 for TS26512_M1_ContentHostingProvisioning.yaml#components/schemas/DistributionConfiguration/supplementaryDistributionNetworks to:
supplementaryDistributionNetworks:
    type: array
    items:
        type: object
        properties:
            distributionNetworkType:
                $ref: '#/components/schemas/DistributionNetworkType'
            distributionMode:
                $ref: '#/components/schemas/DistributionMode'
        required:
          - distributionNetworkType
          - distributionMode
@davidjwbbc davidjwbbc added this to the 3GPP SA4#121→SA#97 milestone Oct 17, 2022
@rjb1000 rjb1000 added Correction 3GPP Rel-17 Issues relating to 3GPP Release 17 specifications. 3GPP TS 26.512 Issues relating to SA4's "5G Media Streaming (5GMS); Protocols" specification. Adopted and removed Improvement labels Oct 17, 2022
@rjb1000
Copy link
Contributor

rjb1000 commented Oct 17, 2022

(Note that this issue does not affect Rel-16: it is a feature of Rel-17 onwards.)

@rjb1000
Copy link
Contributor

rjb1000 commented Oct 17, 2022

The design intent here is a dictionary (associative array, hash map) with a predetermined set of valid index keys.

https://swagger.io/docs/specification/data-models/dictionaries/

@rjb1000
Copy link
Contributor

rjb1000 commented Oct 17, 2022

If the index of the associative array cannot be strongly typed in OpenAPI, how about a simple array of objects that have two members: distributionNetworkType and distributionMode?

@davidjwbbc
Copy link
Author

The array of objects with a pair of values would be:

supplementaryDistributionNetworks:
    type: array
    items:
        type: object
        properties:
            distributionNetworkType:
                $ref: '#/components/schemas/DistributionNetworkType'
            distributionMode:
                $ref: '#/components/schemas/DistributionMode'
        required:
          - distributionNetworkType
          - distributionMode

@rjb1000
Copy link
Contributor

rjb1000 commented Oct 18, 2022

Yes, that's precisely what I had in mind, @davidjwbbc.

Thanks for saving me the trouble!

davidjwbbc added a commit to 5G-MAG/rt-common-shared that referenced this issue Oct 18, 2022
This is a copy of release 17.2.0 of the TS26512_M1_ContentHostingProvisioning.yaml file with the `distributionConfigurations.supplementaryDistributionNetworks` structure changed in line with 5G-MAG/Standards#28. This fixes an issue where openapi-generator 5.2.0 looks for the wrong data type for distributionNetworkType and distributionMode.
davidjwbbc added a commit to 5G-MAG/rt-common-shared that referenced this issue Oct 18, 2022
This is a copy of release 17.2.0 of the TS26512_M1_ContentHostingProvisioning.yaml file with the `distributionConfigurations.supplementaryDistributionNetworks` structure changed in line with 5G-MAG/Standards#28. This fixes an issue where openapi-generator 5.2.0 looks for the wrong data type for distributionNetworkType and distributionMode.
@rjb1000
Copy link
Contributor

rjb1000 commented Oct 26, 2022

Latest draft CR for Rel-17 available to 5G-MAG members on Causeway as CDT0107.3GPP SA4#121 TS26.512 API corrections.

@rjb1000
Copy link
Contributor

rjb1000 commented Nov 8, 2022

Formal CRs submitted to SA4#121:

  • (This feature did not exist in Rel-16.)
  • Rel-17 CR0028 in S4-221251.

@rjb1000
Copy link
Contributor

rjb1000 commented Nov 18, 2022

The following Change Requests were agreed at SA4#121 Closing Plenary yesterday afternoon:

  • TS 26.512:
    • Rel-16: (Not applicable.)
    • Rel-17: CR0028r2 S4-221606.

@rjb1000
Copy link
Contributor

rjb1000 commented Dec 19, 2022

Change Request approved at SA#98-e:

@rjb1000
Copy link
Contributor

rjb1000 commented Jan 9, 2023

New specifications published:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3GPP Rel-17 Issues relating to 3GPP Release 17 specifications. 3GPP TS 26.512 Issues relating to SA4's "5G Media Streaming (5GMS); Protocols" specification. 5GMS Content Hosting Adopted Correction
Projects
Development

No branches or pull requests

3 participants