This clause introduces MSGin5G message segmentation and reassembly functionality to the MSGin5G Service.
Segmentation and reassembly operations are performed by the MSGin5G Server, or by the MSGin5G Client, or by the Message Gateway, depending on the communication models. For Application-to-Point use case, the MSGin5G Server performs MSGin5G message segmentation while the MSGin5G Client performs MSGin5G message reassembly. For Point-to-Application use case, the MSGin5G Client performs MSGin5G message segmentation while the MSGin5G Server performs MSGin5G message reassembly. For the Point-to-Point use case the MSGin5G Client performs both the segmentation and the reassembly.
The Message Gateway performs segmentation and reassembly if the sender or the recipient is a non-MSGin5G UE.
The Aggregated message request should not be segmented. If aggregated message is sent to a recipient whose supported message segment size is smaller than the payload of aggregated message, the MSGin5G Server should handle the Aggregated message as specified in clause 8.4.2.
The maximum segmentation size of the payload of MSGin5G message is 2048 bytes and can be configurable. The supported segment size for an MSGin5G UE may be provided in the MSGin5G UE registration request.
Figure 8.5.2-1 shows the MSGin5G message segmentation and reassembly procedure for Application-to-Point MSGin5G message use cases (e.g. AOMT).
Pre-conditions:
A UE hosts an MSGin5G Client and an Application Client.
The MSGin5G Client has registered with the MSGin5G Server.
An Application Server needs to deliver application data to the Application Client on the UE and the size of the application data exceeds the maximum allowed packet size (e.g. due to limitation by the UE's access network transport).
Both the Application Server and the MSGin5G UE are hosted by the same MSGin5G Server.
The MSGin5G Server compares the size of the payload of the received message to the Supported MSGin5G segment size of the targeted UE and detects that the size exceeds the limit. As a result, the MSGin5G Sever segments the received message into a set of segmented messages. Within each segmented message, the information elements defined in Table 8.3.3-1 are included to enable the MSGin5G Client on the targeted UE to reassemble the segmented messages, with following clarifications.
The MSGin5G message request includes following information elements from Table 8.3.3-1:
Originating AS Service ID, Recipient UE Service ID, Message ID, Segmentation Set Identifier and Message segment number in each segmented message
Delivery status required and Total number of message segments, only if it is the first segment of the message
Last Segment Flag, only if it is the last segment of the message.
The MSGin5G Server sends each segmented message to the targeted UE. If any segment is not received within the expected time (based on configuration) then proceed to step 4.
If MSGin5G Client has received all segments (determined based on First segment and Last Segment), the MSGin5G Client reassembles all the segmented messages into a single MSGin5G message based on the information elements mentioned in step 2. If not all segments are received within expected time, then the MSGin5G Client recovers the segments as described in clause 8.5.6 MSGin5G message segment recovery procedure, before continuing with rest of the steps.
The MSGin5G Client sends Message received confirmation request to the MSGin5G Server. The information elements defined in Table 8.5.2-2 are included in the request. The result information element will contain "success" if the reassembly of the segments is success. Otherwise, the result information element will contain "failure".
If reassembly of segments is successful, the MSGin5G Client delivers the contents of the MSGin5G message to the targeted Application Client. If MSGin5G Client has not received all messages (even after recovery procedure) or reassembly of segments failed for any reason (e.g. corrupt data) then the MSGin5G Client will notify receiving of a failed message to the Application Client.
Figure 8.5.3-1 shows the MSGin5G message segmentation and reassembly procedure for Point-to-Application MSGin5G message use cases (e.g. MOAT).
Pre-conditions:
A UE hosts an MSGin5G Client and an Application Client.
The MSGin5G Client registered with the MSGin5G Server.
An Application Client on the UE needs to deliver application data to an Application Server and the size of the application data exceeds the maximum allowed packet size (e.g. due to limitation by the UE's access network transport).
Both the Application Server and the MSGin5G UE are hosted by the same MSGin5G Server.
An Application Client on a UE sends a message to an MSGin5G Client that targets an Application Server and that has a size that exceeds the maximum allowed packet size.
The MSGin5G Client compares the size of the payload of the received message to its Supported MSGin5G segment size for message delivery to the MSGin5G Server and detects that the size exceeds the limit. As a result, the MSGin5G Client segments the received message into a set of segmented messages such that each segmented message can fit within the Supported MSGin5G segment size. Within each segmented message, the information elements defined in Table 8.3.2-1 are included to enable the MSGin5G Server to reassemble the segmented messages, with following clarifications.
The MSGin5G message request includes following information elements from Table 8.3.2-1:
Originating UE Service ID, Recipient AS Service ID, Message ID, Segmentation set identifier and Message segment number in each segmented message
Delivery status required and Total number of message segments, only if it is the first segment of the message
Last segment flag, only if it is the last segment of the message.
The MSGin5G Client sends each segmented message to the MSGin5G Server. If any segment is not received within the expected time (based on configuration) then proceed to step 4.
If MSGin5G Server has received all segments (determined based on first segment and last Segment), the MSGin5G Server reassembles all the segmented messages into a single MSGin5G message based on the information elements mentioned in step 2. If not all segments are received within expected time, then the MSGin5G Server recovers the segments as described in clause 8.5.6 MSGin5G message segment recovery procedure, before continuing with rest of the steps.
The MSGin5G Server sends a Message received confirmation to the MSGin5G Client. The information elements defined in Table 8.3.2-3 are included in the request.
If reassembly of segments is successful, the MSGin5G Server delivers the contents of the MSGin5G message to the targeted Application Server. If MSGin5G Server has not received all messages (even after recovery procedure) or reassembly of segments failed for any reason (e.g. corrupt data) then the MSGin5G Server will notify receiving of a failed message to the Application Server.
Figure 8.5.4-1 shows the MSGin5G message segmentation and reassembly procedure for Point-to-Point MSGin5G message use cases (e.g. MOMT).
If the recipient UE is a non-MSGin5G UE, the reassembly is performed by the Message Gateway.
This procedure assumes that a UE is only aware of the maximum payload size of the delivery mechanism it is currently using, and it is not aware of the maximum payload size of the recipient UE.
Pre-conditions:
Both UEs host an MSGin5G Client and an Application Client.
The MSGin5G Clients registered with the MSGin5G Server.
An Application Client on the UE needs to deliver application data to an Application Client on another UE and the size of the application data exceeds the allowed maximum packet size (e.g. due to limitation by the UE's access network transport).
Both the sending and the receiving MSGin5G UE are hosted by the same MSGin5G Server.
The MSGin5G Client 1 compares the size of payload of the received message to its Supported MSGin5G segment size for message delivery to the MSGin5G Server and detects that the size exceeds the limit of the originating UE. As a result, the MSGin5G Client segments the received message into a set of segmented messages such that each segmented message can fit within the Supported MSGin5G segment size.
The MSGin5G message request includes following information elements from Table 8.3.2-1:
Originating UE Service ID, Recipient UE Service ID, Message ID, Segmentation set identifier and Message segment number in each segmented message
Delivery status required and Total number of message segments, only if it is the first segment of the message
Last segment flag, only if it is the last segment of the message.
The MSGin5G Client 1 sends each segmented message to the MSGin5G Server. If any segment is not received within the expected time (based on configuration) then proceed to step 5.
The MSGin5G Server checks if each segment does not exceed the configured maximum packet size of the targeted UE. If the maximum packet size is not exceeded, then the MSGin5G Server proceeds with step 6.
If the maximum packet size is exceeded, the MSGin5G Server performs the following operations:
If all segments are received within expected time, then the MSGin5G Server reassembles subsequent segmented messages into a single MSGin5G message until the Last segment flag indication is received. The re-assembled message is then segmented such that each segment is smaller than the maximum allowed packet size of the targeted UE. Within each segmented message, the information elements as mentioned in step 2 are included to enable reassembly at the target, then proceed with step 6.
If not all segments are received within expected time, then the MSGin5G Server acts as Message Receiver to recover the segments as described in clause 8.5.6 MSGin5G message segment recovery procedure, before continuing with rest of the steps. If all segments are received after recovery procedure, then the MSGin5G Server skips to step 4-a, otherwise proceed to step 5.
The MSGin5G Server sends Message received confirmation to the MSGin5G Client 1. The information elements defined in Table 8.3.2-3 are included in the request. If the Result information element is "failure" further steps are not executed.
The MSGin5G Server sends each segmented message to the MSGin5G Client 2. If any segment as a separate message is not received within the expected time (based on configuration) then proceed to step 8.
The MSGin5G Client 2 reassembles all the segmented messages into a single MSGin5G message based on the information elements defined mentioned in step 2. If not all segments are received within expected time, then the MSGin5G Client 2 acts as Message receiver to recover the segments as described in clause 8.5.6 MSGin5G message segment recovery procedure, before continuing with rest of the steps.
The MSGin5G Client 2 sends Message received confirmation to the MSGin5G Server. The information elements defined in Table 8.5.2-2 are included in the request. The Result information element will contain "success" if the reassembly of the segments is successful. Otherwise, the Result information element will contain "failure".
The MSGin5G Client 2 delivers the contents of the MSGin5G message to the targeted Application Client. If MSGin5G Client has not received all messages (even after recovery procedure) or reassembly of segments failed for any reason (e.g. corrupt data) then the MSGin5G Client will notify receiving of failed message to Application Client.
A Group Message is sent from the MSGin5G Server to a group of recipient UEs. The MSGin5G Server sends the message to each individual recipient taking into account the Supported MSGin5G segment size of each recipient and segments the message as described in clause 8.5.4.
Figure 8.5.6-1 illustrates an MSGin5G message segmentation recovery procedure. The procedure is applicable to Application-to-Point messages, Point-to-Application messages, Point-to-Point message and Group messages.
Pre-conditions:
The Message sender has delivered segmented messages to Message receiver.
The Message receiver sends Segment recovery request to Message sender. The information elements defined in Table 8.5.6-1 are included in the request message.
The Segmentation Set Identifier as received in segments.
List of Segment range
M
List of Segment range which the client wants to recover, each segment range consist of start and end sequence number of missing segments e.g. (5-7, 10-10, 15-19).
The Message sender sends each segmented message to the Message receiver within an individual access network transport packet. If any segment is not received within the expected time (based on configuration) then the Message receiver may consider as recovery failed or may initiate the procedure again with updated list of segment range.
If Message receiver has received all segments (determined based on First segment and Last Segment), the Message receiver reassembles all the segmented messages into a single MSGin5G message.