[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[AVT] Proposed change to Enhanced CRTP





We'd like to propose a change to the Enhanced CRTP draft, draft-ietf-avt-crtp-enhance-07.txt
http://www.ietf.org/internet-drafts/draft-ietf-avt-crtp-enhance-07.txt

One of the enhancements is to add a Headers Checksum (HDRCKSUM) when UDP checksum is not present (see section 2.2).
The UDP checksum is used by the decompressor to periodically validate the reconstructed packets. When not present,
a HDRCKSUM may be inserted by the compressor replacing the missing UDP checksum. The decompressor removes the HDRCKSUM after validating the reconstructed packet.

Currently the HDRCKSUM covers the pseudo-IP header, the UDP header and the fixed part of the RTP header (first 12 bytes).
Those are the only parts of the reconstructed packet that can be validated by the HDRCKSUM.
The CSRC list is not included in the HDRCKSUM.

We propose to include the CSRC list in the HDRCKSUM since the CSRC list is part of the header compression context.

The CSRC list is stored at the decompressor context and inserted to the restored packets. If the HDRCKSUM does not cover the CSRC list and the CSRC list at the decompressor is errored, a bad CSRC list will be restored into multiple packets until the CSRC
list changes and is resent by the compressor as an update.
If the HDRCKSUM covers the CSRC list, an error in the CSRC list will be caught early and corrected.

When there is a change in the CSRC list, the CSRC list is sent as an update to the context.
The CSRC list should be treated in the same way as the other context updating changes and be included in the HDRCKSUM.

On the other hand, adding the CSRC list to the HDRCKSUM requires more processing calculating the HDRCKSUM. Also if
the accuracy of the CSRC list is not crucial and the CSRC list is included in the HDRCKSUM, then an error in the CSRC list
will result in dropping a few packets while the contexts are getting synchronized.


The proposed change to the text is as follows:

Old:

   The HDRCKSUM is calculated in the same way as a UDP checksum except
   that it does not cover all of the UDP data.  That is, the HDRCKSUM is
   the 16-bit one's complement of the one's complement sum of the
   pseudo-IP header (as defined for UDP), the UDP header, and the first
   12 bytes of the UDP data which are assumed to hold the fixed part of
   an RTP header.  The extended part of the RTP header and the RTP data
   will not be included in the HDRCKSUM.

New:

   The HDRCKSUM is calculated in the same way as a UDP checksum except
   that it does not cover all of the UDP data.  That is, the HDRCKSUM is
   the 16-bit one's complement of the one's complement sum of the
   pseudo-IP header (as defined for UDP), the UDP header,     the first
                                                          ^^^^
   12 bytes of the UDP data which are assumed to hold the fixed part of
   an RTP header, and the CSRC list.
                ^^^^^^^^^^^^^^^^^^^
   The extended part of the RTP header beyond the CSRC list and the RTP data
                                       ^^^^^^^^^^^^^^^^^^^^
   will not be included in the HDRCKSUM.