[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [rohc] ROHC context reuse & mode
Hi all,
Myself, Carsten, Ghyslain and L-E continued the "re-use" discussion at the IETF
meeting. I will summarize that discussion here, so that we can verify these
conclusions on the list and hopefully make some "final" decisions on this subject.
* Re-use and mode
We all agreed that the solution proposed earlier that mode is inherited when a
new flow re-uses a context of the same profile seems like the best option. We
should hopefully be able to verify this at the next interop. When a context is
re-used for a different profile, the mode will be set to initial mode (e.g.
U-mode for 3095-profiles). We propose to add some text regarding this to the
implementer's guide.
* Keeping decompressor context after IR reception
In the earlier discussion, some people felt that all context at the decompressor
should be discarded every time an IR is received, no matter what the reason is
for the IR being sent (repetition, initialization, static-nack). See message
thread below.
The discussion we had in Seoul does not agree with this (but please feel free to
correct any mistakes in the conclusions below). It _seems_ like there won't be
any problem for the decompressor to keep the state that is not transmitted in
the IR packet (second-order values, list compression item confidence etc). Since
IR stands for Initialization and Refresh, it should be possible to use in a
simple refresh way and not lose all context.
When the compressor re-uses a context for a new flow, it should try to
re-establish all second order values etc, but should not need to do this for a
"normal" refresh.
Therefore, we propose to add a bit more text to the implementer's guide to
clarify what state can be kept by the decompressor and something about what the
compressor can assume about decompressor state after IR packets.
Naturally, if the profile is changed, then the decompressor can safely flush out
all information, since this is the only time that the decompressor can know for
sure that this is for a new flow.
If we would go with the other suggestion of always assuming all state is
discarded, then the decompressor will have quite a hard time to establish
second-order values when running in U-mode (example, expected delta of extension
header sequence numbers), and so far no problems seen with keeping this kind of
state.
* IR-no-dynchain packets (see 5.7.7 and 5.7.7.2 in RFC3095)
These packets (which will be transmitted without payload), only update the
static part of the context and are then to be discarded, and not passed on to
upper layers. Since we allow context to be kept by the decompressor when IR
packets are received, we feel that this should not have to invalidate the
dynamic chain, and we propose adding one sentence (impl. guide again) to
describe that these packets only update the static chain.
* IR-DYN profile downgrade (see 5.11.1. & 5.12.1. in RFC3095)
According to the decision to go to initial mode when changing profiles with an
IR packet (see above), it seems like a resonable assumption that these also
should use "initial mode". It is of course _possible_ to "inherit mode" here,
but that would require more text to specify that IR-DYN profile changes differ
from IR profile changes. Do we really want more special cases?
Best regards,
Kristofer Sandlund, Effnet AB
zhigang.c.liu@nokia.com wrote:
To be accurate, we should say context ID is reused, not the context
(e.g. header field values, parameters, etc).
In addition, we can also make a clarification related to this: an IR
packet will flush out the decompressor context that exists before
receipt of the IR packet. (Note: mode is treated differently than
the "normal" context which can be in different states.)
BR,
Zhigang
-----Original Message-----
From: ext Lars-Erik Jonsson [mailto:larsman@home.se]
Sent: 18 February, 2004 07:32 AM
To: kristofer.sandlund@effnet.com
Cc: rohc@ietf.org; Liu Zhigang.C (Nokia-NRC/Dallas)
Subject: Re: Re: [rohc] ROHC context reuse & mode
OK,
I can buy that argumentation. So, what we should clarify then is that:
1) This is what happens when a context is re-used
for a new flow, compressed with the same profile.
2) If a context is re-used for compression of a new
flow using a different profile, compression is
obviously restarted in U-mode, independent of
previous mode
Would that be it?
/L-E
Zhigang/L-E,
I think that Zhigang's scheme of letting mode be inherited
when we have the same
profile seems like the best choice to me. I think this
approach will be more
consistent with the mode transition logic.
If we choose the "always U-mode when new flow" approach, and
a new flow appears
in the middle of a pending mode transition, we would probably
have to specify
that the decompressor must detect that it is a new flow (for example
static-def-diffing as I suggested earlier) and also it should
set D_TRANS=done &
D_MODE=U-mode when we have a new flow (i.e. mode trans must
be restarted). The
inheritance scheme will just complete the mode transition
without having to
understand that it is a new flow.
I can agree that this is slightly inconsistent with the spec,
but I don't think
it "clearly says new contexts must start in U-mode". All it
says is "Compression
with ROHC MUST start in the Unidirectional mode" (sec.
4.4.1), which _could_ be
interpreted as being on a per-channel basis. If so, mode
inheritance is
completely ok.
Rgds,
Kristofer Sandlund, Effnet AB
_______________________________________________
Rohc mailing list
Rohc@ietf.org
https://www1.ietf.org/mailman/listinfo/rohc