1. Abbreviations
1) sndcp: subnetworkdependence converage protocol, subnet-related aggregation Protocol
2) nsapi: Network Layer Service Access Point identifier. The identifier of the network layer service access point is actually an index of the PDP context of the service using the sndcp layer, the Service Access Point provided by sndcp to the upstream layer;
3) SAPI: the service access point provided by LLC to the upstream Layer
3)Qos:quality ofservice
4)BSS:Base StationSystem
5)SGSN:Service GPRSSupport Node
6)PDP:Packet DataProtocol
2. sndcp Function
1) PDP multiplexing. 1. Reuse data of different protocols into llc pdu;
2) user data compression and decompression;
3) compression and decompression of Protocol control information;
(4) The data unit (ll_pdu) of the network protocol data unit (N-PDU) Logical Link Control Protocol (LLC) and the data unit (ll_pdu) of the Logical Link Control Protocol) rebuilding network protocol data units (N-PDU );
Figure 1 sndcp multiplexing
§ Sndcp is used to enable LLC to bypass the network protocol from which the N-PDU comes, that is, reuse;
§ Sndcp can segment or reorganize network data, as well as compress or decompress the data, among which whether segment identifier segment is performed, because LLC has restrictions on data packets;
§ Bssgp uses tlli to distinguish different LLC, that is, to distinguish different users;
§ The SAPI of user-data in LLC must correspond to the nsapi in sndcp one by one, so nsapi is limited by the number of sapis;
Sndcp provides service access point nsapi to the upstream layer, the upper layer protocol sends N-PDU to sndcp entity through nsapi, sndcp compresses data according to configuration, segment after SN-PDU, send to LLC entity through SAPI. The N-PDU corresponds to the sn_data_req (reliability_class = 1 or 2) and sn_unitdata_req (reliability_class = 3or 4) in the sprd protocol stack. The corresponding relationship is shown in table 1, Figure 2. The relationship between sndcp, figure 3. the LLC server has other protocols for sndcp;
Table 1 correspondence between nsapi and SAPI
SAPI |
MESSAGE |
RELIABILITY CLASS |
3 |
SN_DATA_REQ |
1 |
5 |
SN_DATA_REQ |
2 |
9 |
SN_UNITDATA_REQ |
3 |
11 |
SN_UNITDATA_REQ |
4 |
1 |
GMM Mobility Management |
|
7 |
Short Message |
|
Figure 2 Relationship between top and bottom layers of sndcp
Figure 3. LLC hosts upper-layer data
3. Logical Structure of sndcp
Logical Structure of sndcp 3. The network side has a pair of wait logic entities, the upper layer is TCP/UDP and other application layer protocols, and the lower layer is the LLC protocol;
Figure 4 logical structure of sndcp
Sndcp sprd implementation structure 4. All configuration information comes from Sm. The signaling plane is only related to SM. The upper layer of the data plane is TCP/IP and the lower layer is LLC.
Figure 5 Implementation Structure of sprd sndcp
4. sprd sndcp message
4.1 SNSM_ACTIVATE_IND
After pdp_accept, SM notifies sndcp related parameters to activate (configure) sndcp entities;
4.2 SNSM_DEACTIVATE_IND
After PDP deactivate IND or PS domain detach, SM notifies sndcp;
4.3 SNSM_MODIFY_IND
The sm entity uses this primitive to trigger QoS configuration changes for an nsapi and the sapi to be used. The sm entity of sgsn uses it to notify the sndcp entity to create an nsapi with a re-negotiated QoS configuration and assigned SAPI, the sm entity of the mobile station can also be used to indicate the RF priority of the RLC/MAC. When receiving the snsm_modify_ind primitive, if necessary, sndcp must establish a point-to-point LLC operation for the specified SAPI and release the originally assigned SAPI
4.2 SN_XID_REQ
The sndcp user uses this primitive to pass the XId (exchangeidentity) parameter of the request to the peer object.
4.4 LL_SNDC_XID_IND
The sndcp object uses this primitive to pass the request's Xid parameter list to the sndcp user.
TlliAssigned_HandleSndcLlXidReq
4.5 LL_SNDC_XID_CNF
The sndcp entity uses this primitive to confirm the sn_xid_req, which should be after the sndcp receives the LLC-XID.cnf (that is, the peer validation has been received ).
4.6 SNSM_SEQUENCE_IND
It is used when sgsn is switched over in the routing area and is only used for confirming point-to-point LLC operations. When Ms receives the primitive, the received N-PDU numeric parameter indicates that the sgsn receives the N-PDU numeric value if the N-PDU in the buffer is validated by the N-PDU numeric received by the peer sndcp, the N-PDU must be removed from the buffer. In addition, the sndcp layer will continue the SN-PDU transfer of that nsapi after receiving the primitive, and all buffer N-PDU (such as those unconfirmed or unissued) must start transmission from the oldest N-PDU. If the SAPI used by this nsapi is not created, the buffer N-PDU can only be used after the ll_establish_ind or ll_establish_cnf primitive is received. Snsm_sequence_rsp is the response to snsm_sequence_ind. After receiving snsm_sequence_ind, the mobile station can send the primitive to return the received N-PDU value to sgsn.
4.7 SN_UNITDATA_REQ
This primitive is used by sndcp to transmit the N-PDU of unacknowledged. This primitive contains the nsapi used to identify PDP
4.8 SN_DATA_REQ
This primitive is primarily used by sndcp users for the transfer of the N-PDU in the validation mode (acknowledged), where successful transfer of the SN-PDU will be validated by the LLC layer. Parameters for this primitive include N-PDU, nsapi, and N-PDU number.
4.9 LL_SNDC_ESTABLISH_IND
The LLC layer uses this primitive to notify the sndcp layer of the establishment or reconstruction of a point-to-point operation in the validation mode of an SAPI. the requested Xid is used to pass the request's sndcp Xid parameter to the sndcp layer. in the case of reconstruction, all nsapis mapped to the affected SAPI must enter the recovery ing status, and all buffered N-PDUS (for example, those completely received but not confirmed, and those that have not yet been transferred) when the connection is rebuilt, it must start with the oldest N-PDU. and all compressed entities that use the validation mode for point-to-point LLC operations on this SAPI are reset.
4.10 LL_SNDC_ESTABLISH_CNF
The LLC layer uses this primitive to inform the sndcp layer of the successful initiation of a point-to-point operation in the validation mode of an SAPI. the XId parameter is used to pass the negotiated sndcp Xid parameter. in the case of reconstruction, all nsapis mapped to the affected SAPI will enter the recovery state, all buffered N-PDU (such as those that are fully received but not yet confirmed, or those that are not yet transmitted) when the connection is rebuilt, it will be transmitted starting with the oldest N-PDU. all compressed entities that use the validation mode for point-to-point LLC operations on this SAPI will be reset.
4.11 LL_SNDC_RELEASE_IND
The sndcp layer uses ll_release_req to release point-to-point operations of the validation method. ll_release_cnf is used by the LLC layer to confirm ll_release_req. Ll_release_ind is used by the LLC layer to notify the end of a point-to-point operation for an sapi in the sndcp layer. The cause parameter of this indication is used to indicate the reason for termination. After the sndcp layer receives ll_release_ind or ll_release_cnf, the compressed N-PDU queue of the affected SAPI will be removed from the sndcp layer, and the compressed entity that uses the confirmed point-to-point operation on this SAPI will be reset.
4.12 LL_SNDC_RELEASE_CNF
Join 4.9
4.13 LL_SNDC_RESET_IND
The LLC layer of sgsn uses this primitive to indicate that the XId parameter reset by the sndcp layer has been transmitted. the LLC layer of the mobile station uses this primitive to indicate that the sndcp layer receives the reset Xid parameter.
When receiving ll_reset_ind, The sndcp layer must
§ Treat all unfinished sndcp <----> LLC request type primitives as not sent
§ Reset all sndcpxid parameters to the default value
§ On the mobile station, for each nsapi that uses point-to-point operations in non-validation mode, set the sent N-PDU number (unconfirmed) to 0 and
§ Nsapi for each point-to-point operation that uses validation mode enters the recovery state and suspends the transfer of all N-PDU until the needle is received
SNSM-SEQUENCE_IND primitives for this nsapi. In sgsn, The sndcp layer must be a point-to-point operation in the sapis reconstruction validation mode affected in the LLC layer
4.14 LL_SNDC_SUSPENDSENDDATA
Used for traffic control? The message is reported to sndcp by LLC. The specific function is unknown and may be used for throttling.
4.15 LL_SNDC_RESUMESENDDATA
Used for traffic control? The message is reported to sndcp by LLC. The specific function is unknown and may be used for throttling.
4.16 LL_SNDC_UNITDATA_IND
Two primitives involved in data transmission in non-validation mode. In ll_unidata_req, the QoS parameter priority level, latency level, reliability level, and maximum throughput of sgsn. The QoS parameters of a mobile station include the maximum throughput and reliability. The reliability level indicates whether the LLC Asn carrying the SN-PDU is transmitted in protected mode, and whether the RLC/MAC uses validation mode or non-validation mode. The RF priority is included only on the mobile platform, indicating the wireless priority level used by the RLC/MAC.
4.17 LL_SNDC_DATA_IND
The primitive of the three LLC layers involved in the transfer of SN-PDU in validation mode. The sndcp layer uses ll_data_req to request data transmission and associates a reference parameter with each request. The QoS parameters of sgsn include priority, latency, and maximum throughput. The maximum throughput is included in the QoS parameters of the Mobile Server. The QoS parameter is the quality of the service information elements defined in 3GPP ts04.08. The RF priority is only included in the mobile platform, and the RF priority level for RLC/MAC is specified. Before using ll_data_req, you must first use ll_establish to establish a SAPI validation method for point-to-point operations. Ll_data_cnf is used by the LLC layer to inform the successful transmission of sndcp SN-PDU. This primitive contains a reference parameter through which the ll_data_req, the buffer N-PDU that receives the fully received confirm will be deleted.
4.18 LL_SNDC_DATA_CNF
See 4.14
4.19 SNSM_TLLI_IND
SM notifies sndcp tlli.
4.20 LL_SNDC_DEACTIVED_IND
If the LLC entity sends a message to sndcp, how can it be activated? Not sure.
4.21 LL_SNDC_ACTIVED_IND
4.22 LL_SNDC_ESTABLISH_IND
4.23 LL_SNDC_XID_IND
4.24 LL_SNDC_DATA_IND
4.25 SN_DATA_REQ
4.26 LL_SNDC_ESTABLISH_CNF
4.27 LL_SNDC_XID_CNF
4.28 LL_SNDC_UNITDATA_IND
5. sndcp data transmission instance
5.1 specific functions
§ Map SN-DATA primitives to ll_data primitives
§ Map SN-UNIDATA primitives to ll_unidata primitives
§ Reuse a N-PDU to multiple network layer entities to establish, rebuild, and release a point-to-point LLC operation with the appropriate LLC connection
§ Validation methods in point-to-point LLC operations, the LLC layer implements data integrity through buffering and retransmission mechanisms
§ Manage shipping series numbers for each nsapi independently
§ Compress lengthy Protocol control information on the transmission end and decompress it on the receiving end. The compression method is used at the network and transport layers used.
§ Compress lengthy data information on the transmission end and decompress it on the receiving end. For each SAPI, data compression is performed independently, or each PDP context may be executed independently. The compression parameters can be negotiated between MS and sggn.
Segment and reorganize. The output of the compression function is the maximum length of ll_pdu. The specific network layer protocol used by this program is irrelevant.
§ Negotiate Xid parameters between peer sndcp entities.
Figure 6 sndcp data process at the sending end
5.2 multiplexing of N-PDU
The protocol used by the network layer is identified by the dynamically assigned nsapi (this nsapi should be generated at the SM layer during PDP activation and then passed to the sndcp layer through the SNSM-ACTIVE_IND, in fact, it is equivalent to establishing a ing between the network layer protocol and nsapi ). After receiving the N-PDU, sndcp inserts the nsapi before sending it to the lower layer. After receiving the underlying data, the peer object determines the network protocol used based on the nsapi.
5.3 creation and release of point-to-point LLC operations
1) Establish guidelines
§ Receive the SNSM-ACTIVE.ind that the QoS configuration for this nsapi requires the use of acknowledgedpeer-to-Peer LLC operation, but the corresponding SAPI has not created the acknowledged peer-to-peer LLC operation (reliabilityclass parameter in QoS)
§ Received SNSM-MODIFY.ind (dlmu2001: QoS profile changes at this time, which may change from unacknowledged mode to acknowledged mode, or update from an old SAPI to a new SAPI)
2) reconstruction principles
§ V.42 errors detected by the Data Compression Algorithm
§ In receivefirst segment state during sharding and receives the SN-DATA PDU at position F 0 (the PDU will be discarded at this time, and the LLC operation will be rebuilt)
§ During sharding, the system is in the replicesubsequent segment state, receives the SN-DATA PDU at position F 1, and dcomp, pcomp or the N-PDU number is different from the first fragment (the previous fragment that belongs to the same N-PDU will be discarded, and the LLC operation of the corresponding SAPI will be rebuilt)
3) creation/reconstruction process initiated by sndcp
Note:
§ Ll_estab.req can contain the XId parameter.
§ Possible results: Successful; failed; resolved after the conflict
§ If ll_estab.cnf is received, the creation is successful. If ll_release.ind is received, the creation fails. According to the cause of the failure, the sndcp layer must perform the appropriate action (such as notifying the SM sublayer)
§ If the sndcp entity receives ll_estab.req or ll_xid.req after it sends ll_estab.ind or ll_xid.req, a conflict occurs. In this case, the sndcp entity does not send ll_estab.req, handle the received ll_estab.ind or ll _ Xid normally. req: If the previously issued ll_estab.req or ll_xid.req contains one or more Xid parameters, or if the XId parameter contains one or more compressed fields, alternatively, a compressed field contains one or more parameters that are not negotiated in ll_estab.ind or ll_xid.ind. Then, the sndcp entity then negotiates with ll_xid.req.
4) Release of acknowledged peer-to-peer LLC operation
§ Release criteria: nsapis that receive SNSM-DEACTIVE.ind or SNSM-MODIFY.ind and the corresponding SAPI no longer use acknowledgedpeer-to-peer.
§ Process: Call ll_release.req. If ll_release.cnf is received, the release is successful.
5.4 N-PDU Buffer
§ The N-PDU must be buffered before compressing the component and transmitting it to the LLC layer. Which buffer layer is better for this buffer? Network Layer?
§ Upon receipt of the SNSM-DEACTIVE.ind, the corresponding buffer for the related nsapi is deleted
§ For data transmission in acknowledged mode, the buffer must be confirmed before deletion (ll_data.cnf and SNSM. sequence can complete this confirmation)
§ Delete the unacknowledged data transmission after the transfer is completed.
5. Delivery Order Management
The sndcp layer maintains the shipping order of each nsapi N-PDU between peer entities.