Zero-byte Support for Bidirectional Reliable Mode (R-mode) in Extended Link-Layer Assisted RObust Header Compression (ROHC) Profile
Extracted elements (21)
CRC replacement is not needed in R-mode because R-0 packets carry no CRC field, eliminating a significant complexity present in U/O-mode and removing the need for periodic context verification as a compensating measure.
NHP packets and packet loss indications in R-mode do not update either the compressor or decompressor context, so the secure reference principle (RFC 3095, section 5.5) is not affected and there is no loss of robustness compared to ROHC RTP.
R-mode uses acknowledgements (SN_ACKed > SN_break) to gate NHP resumption rather than the optimistic approach (sending headers for X subsequent packets) used in U/O-mode, because R-mode relies on ACKs for context synchronization and R-0 packets do not update decompressor context (unlike UO-0).
Zero-byte (NHP) operation exists to prevent the single-octet ROHC header from pushing a packet voice stream into the next higher fixed packet size for the radio, and is usable in certain widely deployed older air interfaces.
How Offset_D is derived depends on the implementation of this profile over a specific link technology and must be specified in implementation documents. Two example approaches are given: counting non-context-updating packets and packet loss indications, or using link timing when a linear mapping between RTP SN and link timing is maintained.
This profile is defined as additions and exceptions to RFC 3242, extending it with R-mode zero-byte support. All terminology is the same as in RFC 3242, and RFC 3242 rules for AL NHP determination apply with one modification for the R-mode unsafe condition.
For R-mode, periodic context verification is not needed and no change to ROHC RTP is required in this regard, because there is no CRC replacement in R-mode and the sending of R-0-CRC on 6-bit SN wrap-around implicitly provides periodic context verification.
It is RECOMMENDED to avoid the use of interspersed feedback packets to carry ACK information in R-mode, because interspersed feedback packets interrupt RTP SN sequencing and temporarily disable the sending of NHPs.
It is RECOMMENDED to implement the additional AL-to-compressor interface to improve compression efficiency, especially when the AL often becomes unsafe to send NHPs. This interface is not strictly required and its absence should not prevent implementing the profile.
Sending update_request via the optional AL-to-compressor interface is RECOMMENDED to improve worst-case performance, since passive waiting for a context update packet may take a long time during which NHPs cannot be sent.
The decompressor operating in R-mode SHOULD NOT send CV-REQUEST to the compressor, to avoid unnecessary overhead on the feedback channel, since CRC replacement is not an issue in R-mode.
The Mode and SN_ACKed parameters MUST always be attached to every packet delivered to the assisting layer (AL). SN_ACKed indicates the latest RTP SN that has been acknowledged and is used only when Mode value = R-mode.
Upon receiving an update_request from the AL, the compressor SHOULD use a context updating packet (e.g., R-0-CRC) when sending the next packet.
When CCP is used, the compressor operating in R-mode SHOULD set C-bit to 0 and not generate 7-bit CRC if computation cost causes concern, as context verification via CRC is not critical in R-mode.
SN_break is recorded by the AL when it determines it is unsafe to send NHPs. NHP transmission does not resume until the AL rule is satisfied again and SN_ACKed > SN_break.
The R-mode zero-byte operation maps R-0 packets to No-Header Packets (NHPs). R-0 is the only packet type in R-mode that can be replaced with NHP; all other R-mode packet types retain their headers.
The RTP SN of an NHP at the decompressor is determined as SN_Ref_D + Offset_D, where SN_Ref_D is the RTP SN of the last update packet received and Offset_D is the sequence number offset between the NHP and that last update packet.
The update_request message is sent from the AL to the compressor carrying the last SN_break value. It requests the compressor to send a context-updating packet so NHP transmission can resume after an unsafe period.
IANA has reserved ROHC profile identifier 0x0105 for the zero-byte R-mode profile defined in this document, where 0x0005 is the profile identifier assigned to the base LLA profile (RFC 3242).
The security considerations of ROHC RTP (RFC 3095, section 7) apply to this document. An additional concern is a denial-of-service scenario where an intruder injects bogus CCP packets with random CRC values, causing CRC check failures at the decompressor that lead to unnecessary context invalidation, feedback messages, and refresh packets, greatly reducing ROHC efficiency.
The AL transitions from NHP-sending to NHP-suspended when it determines it is unsafe to send NHPs (recording SN_break). It resumes NHP transmission only when its safety rule is satisfied and SN_ACKed > SN_break, triggered either by passive receipt of a context update or by sending an update_request.