notificationUri of npcf-am-policy-control/v1/policies does not contain any id

While in registration procedure, AMF sends npcf-am-policy-control/v1/policies post request to PCF.
The request has notificationUri field.

When PCF decides to terminate session, PCF sends callback post request of the received request.
The callback URI is {$request.body#/notificationUri}/terminate

My question is the notificationUri does not contain any ID. I am wondering how AMF to decide individual AMPolicyData.

Do I misunderstand the procedure?


free5GCv3.4.1

[amf->pcf][POST-Req] /npcf-am-policy-control/v1/policies

{
	"notificationUri":"http://127.0.0.18:8000/namf-callback/v1/am-policy/",
	"supi":"imsi-208930000000001",
	"gpsi":"msisdn-",
	...
}

On the other hand, notificationUri of /npcf-smpolicycontrol/v1/sm-policies contains id bellow.

[smf->pcf][POST-Req] /npcf-smpolicycontrol/v1/sm-policies
{
	"supi":"imsi-208930000000001",
	"pduSessionId":1,
	"pduSessionType":"IPV4",
	"dnn":"internet",
	"notificationUri":"http://127.0.0.2:8000/nsmf-callback/sm-policies/urn:uuid:8b4af020-5ad6-4aa7-9fed-e7dbdb695b67",
	"accessType":"3GPP_ACCESS",
	...
}

Hi @takaoka-stellar
When the AMF requests to create an AM Policy:

1.The AMF sends an npcf-am-policy-control/v1/policies POST request to the PCF.
2.The PCF assigns a policy association ID and determines the applicable policy.

When the PCF requests the termination of the policy association:

The PCF sends an HTTP POST request with “{notificationUri}/terminate”. The TerminationNotification data structure in the request body includes the policy association ID, encoded as “polAssoId”, and the reason for the termination of the policy association.

You can refer to TS29.507 for details on the Npcf_AMPolicyControl_Create service operation and the request for termination of the policy association.

Thank you for your reply.

I checked TS29.507v18.5 and as you mentioned, Termination Request which PCF sends included polAssoId in resourceUri.
Stil I have a question.

  1. [AMF->PCF][POST-Req] /npcf-am-policy-control/v1/policies
  2. [PCF->AMF][POST-Res] /npcf-am-policy-control/v1/policies
    PCF assigns a policy association ID and determines the applicable policy.
  3. [PCF->AMF][POST-Req] {$request.body#/notificationUri}/terminate [with polAssoId]

I understand the sequence as above.
To terminate policy association, AMF needs to know which policy association data the polAssoId is related to.
My question is how AMF to know it.

I think PCF has to notice the relation in the AM PolicyCreate Response. But I think there is no relation in the response body.


  1. [AMF->PCF][POST-Req] /npcf-am-policy-control/v1/policies
{
	"notificationUri":"http://127.0.0.18:8000/namf-callback/v1/am-policy/",
	"supi":"imsi-208930000000001",
	"gpsi":"msisdn-",
	"accessType":"3GPP_ACCESS",
	"pei":"imeisv-4370816125816151",
	"servingPlmn":{
		"mnc":"93",
		"mcc":"208"
	},
	"guami":{
		"plmnId":{
			"mcc":"208",
			"mnc":"93"
		},
		"amfId":"cafe00"
	},
	"suppFeat":""
}
  1. [PCF->AMF][POST-Res] /npcf-am-policy-control/v1/policies
{
	"request":{
		"notificationUri":"http://127.0.0.18:8000/namf-callback/v1/am-policy/",
		"supi":"imsi-208930000000001",
		"gpsi":"msisdn-",
		"accessType":"3GPP_ACCESS",
		"pei":"imeisv-4370816125816151",
		"servingPlmn":{
			"mnc":"93",
			"mcc":"208"
		},
		"guami":{
			"plmnId":{
				"mcc":"208",
				"mnc":"93"
			},
			"amfId":"cafe00"
		},
		"suppFeat":""
	},
	"suppFeat":""
}

3. [PCF->AMF][POST-Req]  {$request.body#/notificationUri}/terminate

{
	resourceUri
	cause
}

Hi, @takaoka-stellar

2.[PCF->AMF][POST-Res] /npcf-am-policy-control/v1/policies/{polAssoId}

paths:
   /policies:

    post:

      operationId: CreateIndividualAMPolicyAssociation
      summary: Create individual AM policy association.
      tags:
        - AM Policy Associations (Collection)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyAssociationRequest'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyAssociation'
          headers:
            Location:
              description: 'Contains the URI of the newly created resource, according to the structure: {apiRoot}/npcf-am-policy-control/v1/policies/{polAssoId}'
              required: true
              schema:
                type: string