Subject: Re: [rohc] [rfc5225] Positioning of IPX dynamic chain in profile 0x0104 (IP ONLY)

From: Carl Knutsson <[email-masked]>
Date: Wed, 04 Nov 2009 09:46:35 +0100

Klaus, Suneeta,

Comments inline...

Klaus Warnke wrote:
> Hi Suneeta,
> 
> I think the dynamic chain ends with the _dynamic format of the last
> extension header after the inner ip header, like ah_dynamic.
> This makes sense for me.
> 
> I have two question too.
> 
> For what profile is the ipv4_regular_innermost_dynamic format?
> This format can be used for a innermost ipv4 header in a profile not
> ip-only. 

Yes, for all profiles except ROHCv2 IP the compressed format
'ipv4_regular_innermost_dynamic' will fail.

> And, additionally, there is no counterpart for ipv6 defined.
> 

Correct. Only two *_dynamic formats is needed for ipv6.

> And, is there a special reason, why the field ip_version for the
> udp_baseheader is static encoded in DEFAULT, but for the other
> _baseheader encoding methods not?

No special reason.

> 
> br
> Klaus
> 
> At Tue, 13 Oct 2009 04:49:47 -0700 (PDT),
> Suneeta Rao wrote:
>> Hi ROHCWG,
>>
>> I have a doubt regarding placing of IPX dynamic chain in IP ONLY
>> profile.
>>
>> As per my understanding, under normal circumstances i.e.when IPX
>> headers are absent, the dynamic chain shall terminate with IP
>> dynamic chain as per RFC5225 ROHC-FNCOMPRESSED
>> ipv4_endpoint_innermost_dynamic (for IPV4) Pg 60.
>>
>> What should be behavior in presence of IPX headers (AH/GRE for IPV4
>> and HOP-BY-HOP/ROUTING/DESTINATION for IPV6)?
>>
>> Should the chain terminate with IP dynamic chain(as per ROHCFN named
>> above) followed by IPX dynamic chain.  or Alternatively should it
>> terminate in IP dynamic chain and IPX headers cannot be compressed
>> in this profile.
>>
>> The confusion is because the ROHCFN says "ipv4_endpoint" for
>> innermost IP header in IP ONLY profile.

*_endpoint_* have no special meaning. Only compressed formats that ends
with *_irregular, *_static, *_dynamic or *_list_item comes with special
rules.

"ENFORCE((is_innermost == 1)  && .."

The ROHC FN statement above tells us that it is the innermost or last IP
 header in the dynamic chain. Not necessarily the last item in the dynamic.

cheers,
/Calle