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

Unclear binding between externalReference and Policy Template identifier in M5 Service Access Information #95

Closed
rjb1000 opened this issue Oct 12, 2023 · 5 comments
Assignees
Labels
3GPP Rel-16 Issues relating to 3GPP Release 16 specifications. 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 Dynamic Policies Clarification Improvement

Comments

@rjb1000
Copy link
Contributor

rjb1000 commented Oct 12, 2023

Context

According to TS 26.512 V17.6.0:

  • A PolicyTemplate is provisioned with a single mandatory externalReference string that is used to correlate with a Service Operation Point declared in a DASH MPD.
  • When the Media Session Handler retrieves its Service Access Information from the 5GMS AF at reference point M5, this includes a dynamicPolicyInvocationConfiguration comprising:
    • An array of Policy Template resource identifiers.
    • An array of external references.
  • When it sees a Service Operation Point in a DASH MPD, the 5GMS Client instantiates a dynamic policy in the 5GMS AF by citing the Policy Template resource identifier corresponding to the external reference of that Service Operation Point.

Problem description

The set of Policy Template resource identifiers and external references are not explicitly bound together in the OpenAPI YAML specification for M5 Service Access Information.

{
	"provisioningSessionId": "b54a1428-6848-41ee-aa9a-ad12c2bbb05a",
	"provisioningSessionType": "DOWNLINK",
	"streamingAccess": {
		...
	},
	"dynamicPolicyInvocationConfiguration": {
		"serverAddresses": ["http://127.0.0.24:7777/3gpp-m5/v2/"],
		"validPolicyTemplateIds": ["c291c720-6848-41ee-aa9a-ad12c2bbb05a", "ce073c84-6848-41ee-aa9a-ad12c2bbb05a"],
		"sdfMethods":	["5_TUPLE"],
		"externalReferences": ["SD_Basic", "HD_Premium"]
	}
}

The 5GMS Client must use array indices to implicitly match them up into corresponding pairs. This requires the members of the array to be populated in the same order by the 5GMS AF, which is not specified.

This implicit binding is workable, but not a very good API design.

Suggested solution

It would be better to express this binding more explicitly in the OpenAPI YAML specification.

Ideally, this would be an associative array (a.k.a. dictionary or hash map) with the external reference as the key and the Policy Template identifier as the value. However, OpenAPI 3.0 associative arrays are not well supported by 3GPP.

A simpler solution is an array of duples:

{
	"provisioningSessionId": "b54a1428-6848-41ee-aa9a-ad12c2bbb05a",
	"provisioningSessionType": "DOWNLINK",
	"streamingAccess": {
		...
	},
	"dynamicPolicyInvocationConfiguration": {
		"serverAddresses": ["http://127.0.0.24:7777/3gpp-m5/v2/"],
		"policyTemplateBindings": [
			{
				"externalReference": "SD_Basic",
				"policyTemplateId": "c291c720-6848-41ee-aa9a-ad12c2bbb05a"
			},
			{
				"externalReference": "HD_Premium",
				"policyTemplateId": "ce073c84-6848-41ee-aa9a-ad12c2bbb05a"
			}
		],
		"sdfMethods": ["5_TUPLE"]
	}
}
@rjb1000 rjb1000 added Improvement Clarification 3GPP Rel-16 Issues relating to 3GPP Release 16 specifications. 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. labels Oct 12, 2023
@rjb1000 rjb1000 added this to the 3GPP SA4#126→SA#102 milestone Oct 12, 2023
@rjb1000 rjb1000 changed the title Unclear binding between externalReference and Policy Template at M5 Unclear binding between externalReference and Policy Template identifier in M5 Service Access Information Oct 12, 2023
@rjb1000
Copy link
Contributor Author

rjb1000 commented Oct 26, 2023

@ibouazizi: It is valid to have a Policy Template without an external reference, so we do need to deal with this eventuality.

Could make the externalReference property optional in the binding object.

@ibouazizi: How about changing the name from policyTemplateBindings to simply policyTemplates?

@rjb1000
Copy link
Contributor Author

rjb1000 commented Oct 27, 2023

Revised design, as discussed on yesterday's joint call between 5G-MAG and 3GPP SA4 MBS:

{
	"provisioningSessionId": "b54a1428-6848-41ee-aa9a-ad12c2bbb05a",
	"provisioningSessionType": "DOWNLINK",
	"streamingAccess": {
		...
	},
	"dynamicPolicyInvocationConfiguration": {
		"serverAddresses": ["http://127.0.0.24:7777/3gpp-m5/v2/"],
		"policyTemplates": [
			{
				"externalReference": "SD_Basic",
				"policyTemplateId": "c291c720-6848-41ee-aa9a-ad12c2bbb05a"
			},
			{
				"externalReference": "HD_Premium",
				"policyTemplateId": "ce073c84-6848-41ee-aa9a-ad12c2bbb05a"
			},
			{
				"policyTemplateId": "1fef53ec-d8db-4c06-9653-3103b3158e5c"
			}
		],
		"sdfMethods": ["5_TUPLE"]
	}
}

Note the third example with no externalReference.

@ibouazizi, @tlohmar: On what basis would a Media Session Handler instantiate such a Policy Template given that it has no other information to go on?

@rjb1000
Copy link
Contributor Author

rjb1000 commented Dec 5, 2023

Change Requests agreed at SA4#126 (Chicago):

  • TS 26 512
    • Rel-17: CR0054r1 "Essential maintenance" in S4-231631.
    • Rel-16: CR0056 "Essential maintenance" in S4-231632.

policyTemplateBindings replaces validPolicyTemplateIds and externalReferences in table 11.2.3.1-1 and clause C.3.8.

@jordijoangimenez jordijoangimenez moved this to Agreed/endorsed by Working Group in Specifications - 3GPP - Feedback Feb 13, 2024
@rjb1000 rjb1000 moved this from Agreed/endorsed by Working Group to Approved for publication by Technical Body in Specifications - 3GPP - Feedback Feb 23, 2024
@rjb1000
Copy link
Contributor Author

rjb1000 commented Feb 23, 2024

CR Packs approved at SA#102 (Edinburgh):

@rjb1000 rjb1000 moved this from Approved for publication by Technical Body to Published in Specifications - 3GPP - Feedback Feb 23, 2024
@rjb1000
Copy link
Contributor Author

rjb1000 commented Feb 23, 2024

@rjb1000 rjb1000 closed this as completed Feb 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3GPP Rel-16 Issues relating to 3GPP Release 16 specifications. 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 Dynamic Policies Clarification Improvement
Projects
Development

No branches or pull requests

7 participants