6.2.7 Direct discovery update procedure for open discovery

24.3343GPPProximity-services (ProSe) User Equipment (UE) to ProSe function protocol aspectsRelease 17Stage 3TS

6.2.7.1 General

The direct discovery update procedure is used to update or revoke a previously allocated ProSe Application Code, or Discovery Filter(s) as specified in 3GPP TS 23.303 [2].

6.2.7.2 Direct discovery update procedure initiation

When triggered to revoke a previously allocated ProSe Application Code for an announcing UE or revoke Discovery Filter(s) for a monitoring UE, the ProSe Function in the HPLMN sends a DISCOVERY_UPDATE_REQUEST message to the UE with:

– a new ProSe Function transaction ID not used in any other direct discovery procedures in PC3 interface;

– the UE identity set to the UE’s IMSI; and

– the Discovery Entry ID set to the Discovery Entry ID of the corresponding Discovery Entry that contains the ProSe Application Code or the Discovery Filter(s) to be revoked.

When triggered to update a previously allocated ProSe Application Code for an announcing UE, the ProSe function in the HPLMN shall allocate a new ProSe Application Code for the ProSe Application ID with a new validity timer T4000, associate the discovery entry with the new ProSe Application Code and restart timer T4001.Then the ProSe Function sends a DISCOVERY_UPDATE_REQUEST message to the UE with:

– a new ProSe Function transaction ID not used in any other direct discovery procedures in PC3 interface;

– the UE identity set to the UE’s IMSI;

– the Discovery Entry ID set to the Discovery Entry ID of the corresponding Discovery Entry that contains the ProSe Application Code to be updated; and

– the Update Info containing the ProSe Application Code set to the new ProSe Application Code allocated by the ProSe Function and a Validity Timer T4000 set to the T4000 timer value assigned by the ProSe Function to the new ProSe Application Code.

When triggered to update Discovery Filter(s) for a monitoring UE, the ProSe Function in the HPLMN updates the content of Discovery Filter(s), associate the discovery entry with the updated Discovery Filter(s) and restart timer T4003 for each filter. The update of Discovery Filter content includes setting new TTL timer(s) and if necessary, assigning new ProSe Application Code and ProSe Application Mask(s). Then the ProSe Function sends a DISCOVERY_UPDATE_REQUEST message to the UE with:

– a new ProSe Function transaction ID not used in any other direct discovery procedures in PC3 interface;

– the UE identity set to the UE’s IMSI;

– the Discovery Entry ID set to the Discovery Entry ID of the corresponding Discovery Entry that contains the Discovery Filter(s) to be updated; and

– the Update Info containing the Discovery Filter(s) set to the new Discovery Filter(s) allocated by the ProSe Function.

NOTE 1: The ProSe Function can include one or multiple transactions in one DISCOVERY_UPDATE_REQUEST message for ProSe App Codes or Discovery Filter(s) contained in different discovery entries, and receive corresponding < discovery-update-response> element or <response-reject> element in a DISCOVERY_UPDATE_RESPONSE message for each respective transaction. In the following description of direct discovery update request procedure, only one transaction is included.

Figure 6.2.7.2.1 illustrates the interaction of the UE and the ProSe Function in the direct discovery update procedure.

Figure 6.2.7.2.1: Direct discovery update procedure for open discovery

NOTE 2: In the figure 6.2.7.2.1, the timers are started only when the procedure is triggered to update a previously allocated ProSe Application Code for an announcing UE or update Discovery Filter(s) for a monitoring UE.

6.2.7.3 Direct discovery update procedure accepted by the UE

Upon receiving a DISCOVERY_UPDATE_REQUEST message, the UE shall check if the UE identity contained in the DISCOVERY_UPDATE_REQUEST message is the IMSI of the UE. If the UE identity is the IMSI of the UE, the UE shall check if the Discovery Entry ID contained in the DISCOVERY_UPDATE_REQUEST message is known. If the Discovery Entry ID is known, the UE shall proceed with the following direct discovery update procedure.

If the Update Info is not included in the DISCOVERY_UPDATE_REQUEST message, the UE shall stop running timers corresponding to the discovery entry and delete the discovery entry corresponding to the Discovery Entry ID contained in the DISCOVERY_UPDATE_REQUEST message. The UE informs the lower layers to stop announcing or monitoring corresponding to the Discovery Entry ID contained in the DISCOVERY_UPDATE_REQUEST message.

If the Update Info is included in the DISCOVERY_UPDATE_REQUEST message, the UE shall replace the existing ProSe Application Code or the Discovery Filter(s) with new ProSe Application Code or the Discovery Filter(s) contained in the Update Info correspondingly. The announcing UE shall stop the timer T4000, start the validity timer T4000 with the received value for the new ProSe Application Code and perform open ProSe direct discovery announcing with the new ProSe Application Code as described in subclause 6.2.2.4. The monitoring UE shall stop TTL timer T4002, start TTL timer T4002 with the received value for each new Discovery Filter(s) and perform open ProSe direct discovery monitoring with each new Discovery Filter(s) as described in subclause 6.2.3.4.

Then the UE shall send a DISCOVERY_UPDATE_RESPONSE message containing a <response-update> element with:

– the ProSe Function transaction ID set to the value of the ProSe Function transaction ID received in the DISCOVERY_UPDATE_REQUEST message; and

– the Discovery Entry ID set to the value of the Discovery Entry ID received in the DISCOVERY_UPDATE_REQUEST message.

6.2.7.4 Direct discovery update procedure completed by the ProSe Function

Upon receiving a DISCOVERY_UPDATE_RESPONSE message, if the ProSe Function transaction ID contained in the <response-update> element does not match the value sent by the ProSe Function in a DISCOVERY_UPDATE_REQUEST message, the ProSe Function shall discard the DISCOVERY_UPDATE_RESPONSE message. Otherwise, the ProSe Function shall perform the following procedure.

When the UE is an announcing UE and the radio resources that the UE intends to use are operated by a PLMN other than the HPLMN, the ProSe Function shall execute the procedures defined in 3GPP TS 29.345 [5] to inform the ProSe Function in VPLMN or local PLMN.

When the UE is a monitoring UE and the ProSe Application ID monitored by the UE is PLMN-specific and that PLMN ID indicated by the ProSe Application ID is not the same as that of the PLMN to which the ProSe Function belongs, the ProSe Function executes the procedures defined in 3GPP TS 29.345 [5] to inform the ProSe Function in the PLMN indicated by the ProSe Application ID.

For each Discovery Entry ID received in the DISCOVERY_UPDATE_RESPONSE message, if the procedure is to revoke a previously allocated ProSe Application Code or Discovery Filter(s), the ProSe Function shall delete the discovery entry indicated by the Discovery Entry ID from the UE’s context and release the associated resources.

6.2.7.5 Direct discovery update procedure not accepted by the UE

If the DISCOVERY_UPDATE_REQUEST message cannot be accepted by the UE, the UE sends a DISCOVERY_UPDATE_RESPONSE message containing a <response-reject> element to the ProSe Function including an appropriate PC3 Control Protocol cause value.

If the UE identity contained in the DISCOVERY_UPDATE_REQUEST message is not the IMSI of the UE, the UE shall send a DISCOVERY_UPDATE_RESPONSE message containing a <response-reject> element with PC3 Control Protocol cause value #18 "Invalid UE Identity".

If the Discovery Entry ID contained in the DISCOVERY_UPDATE _REQUEST message is unknown, the UE shall send the DISCOVERY_UPDATE_RESPONSE message containing a <response-reject> element with PC3 Control Protocol cause value # 10 "Unknown or Invalid Discovery Entry ID".

6.2.7.6 Abnormal cases

6.2.7.6.1 Abnormal cases in the ProSe Function

The following abnormal cases can be identified:

a) Indication from the transport layer of transmission failure of DISCOVERY_UPDATE_REQUEST message (e.g. after TCP retransmission timeout)

The ProSe Function shall close the existing secure connection to the UE.

b) No response from the UE after the DISCOVERY_UPDATE_REQUEST message has been successfully delivered (e.g., TCP ACK has been received for the DISCOVERY_UPDATE_REQUEST message)

The ProSe Function shall retransmit the DISCOVERY_UPDATE_REQUEST message.

NOTE: The timer to trigger retransmission and the maximum number of allowed retransmissions are ProSe Function implementation specific.

6.2.7.6.2 Abnormal cases in the UE

The following abnormal cases can be identified:

a) Indication from the lower layer of transmission failure of DISCOVERY_UPDATE_RESPONSE message.

After receiving an indication from lower layer that the DISCOVERY_UPDATE_RESPONSE message has not been successfully acknowledged (e.g. TCP ACK is not received), the UE shall abort the procedure.