Re: Question related to ROHC-TCP Profile
"Finking, Robert" <[email protected]>
| Newsgroups | gmane.ietf.rohc |
|---|---|
| Message-ID | <A632AD91CF90F24A87C42F6B96ADE5C50462359E@rsys005a.comm.ad.roke.co.uk> |
Hi Igor,
Thanks for the post and apologies for any lack of clarity in the RFCs.
A key concept to understand when reading ROHC-FN is the idea of binding.
You are right that the line you have quoted below only specifies the
ULENGTH (32 bits). However, if you look at the next line, you will find
that the UVALUE is also bound by means of the field_scaling encoding
method:
seq_number_scaled [ 32 ];
seq_number_residue =:=
field_scaling(payload_size, seq_number_scaled.UVALUE,
seq_number.UVALUE) [ 32 ];
The field_scaling encoding method is defined as follows:
field_scaling(stride_value, scaled_value, unscaled_value)
{
UNCOMPRESSED {
residue_field [ 32 ];
}
COMPRESSED no_scaling {
ENFORCE(stride_value == 0);
ENFORCE(residue_field.UVALUE == unscaled_value);
ENFORCE(scaled_value == 0);
}
COMPRESSED scaling_used {
ENFORCE(stride_value != 0);
ENFORCE(residue_field.UVALUE == (unscaled_value % stride_value));
ENFORCE(unscaled_value ==
scaled_value * stride_value + residue_field.UVALUE);
}
}
So, the seq_number_scaled.UVALUE is bound to scaled_value within the
field_scaling encoding method. Assuming the stride_value (i.e. the
payload_size) is non-zero, this binds the scaled_value (i.e. the
seq_number_scaled.UVALUE) in an expression with stride_value,
residue_field.UVALUE and unscaled_value (i.e. seq_number.UVALUE). This
is done in such a way the scaled value is the unscaled_value divided by
the stride_value. In short, the UVALUE of seq_number_scaled is set by
the field_scaling encoding method (which also calculates the
modulus/residue from the scaling and encodes it in 32 bits).
I am not sure if that has helped, it is often hard to put these things
in words. Feel free to ask further questions if this does not answer
your question.
Thanks for using ROHC-FN
Regards
Raffles
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On
> Behalf Of eggor
> Sent: 11 March 2009 12:41
> To: [email protected]
> Subject: [rohc] Question related to ROHC-TCP Profile
>
> Hi,
>
> I've just started working on implementation of the ROHC-TCP
> profile, and I needed some clarifications.
>
> Question about "seq_number_scaled" field defined in the
> CONTROL format of the tcp(payload_size, ack_stride_value,
> ip_inner_ecn) encoding method. It is defined as:
>
> CONTROL {
> seq_number_scaled [ 32 ];
> ...
> }
>
> and isn't appeared in other formats. If I truly understood
> ROCH-FN, this definition specifies only ULENGTH attribute of
> this field, so the question is: where compressor can get its
> UVALUE? And the second question is how decompressor can restore it?
>
> Thanks in advance,
> Igor.
> _______________________________________________
> Rohc mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/rohc
>