[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: draft-ietf-shim6-proto-06 : Context confusion
Hi,
I think that in the previous mail, I had not well in mind the fact that
the only way for a host to have multiple own context tags is to first
drop one context, then create a new one with the same context tag, so
that in any case, there is only one possible context for the context
tag, with still the possibility of having packets arriving to the newly
created context, but addressed to the dropped context.
With this in mind, I understand better the interest of having
non-overlapping locators sets. This way we can work as if the two (or
more) locator sets were corresponding to different machines.
But in this case the following sentence should probably be adapted a bit
(section 7.6):
----
The confusion can be detected when I2/I2bis/R2 is received since we
require that those messages MUST include a sufficiently large set of
locators in a Locator List option that the peer can determine whether
or not two contexts have the same host as the peer by comparing if
there is any common locators in Ls(peer).
----
Now, we could consider the case of a single host with multiple disjoint
locator sets being seen by its pair as multiple hosts. This is without
problem except a little subtlety. Here is the adapted example of the
previous mail :
----
1. host A has two contexts with host B, one with the set of locators
<A1,B1/B2> and CTx, the other with <A2,B3/B4> and CTy.
2. After some time, host B drops the first context.
3. Now he wants to create another one : <A1,B3/B4> with CTx.
----
When A receives the I2 message from B, it is not able (as should be) to
detect that it is speaking with the same host, as the locator sets are
disjoint. As a consequence, the context in A with CT(peer)=CTx will not
be discarded. We are now in the situation of A possibly sending packets
to both the discarded context <A1,B1/B2> and the newly created one <A1,
B3/B4>, using CTx in both cases.
IMHO, this can be detected by B, and should be stated in the draft as
another case of confusion detection (in fact both confusion and context
loss detection). For this to be done, section 12.1 could be slightly
changed, to say that a receiver MUST NOT assume that a packet with the
shim6 payload extension header and a context tag matching with a context
is really attached to the context. Rather, to verify this, the source
locator must be checked against Ls(peer) :
o if the source locator is included in Ls(peer), usual translation is done.
o if the source locator is not included in Ls(peer), then probably this
packet belongs to an old, dropped context, and an R1bis message MUST be
sent in this case, in order to recover the previously discarded context
(in my example <A1,B1/B2>).
I hope this proposal is clearer and more realistic than the one
described in my previous mail.
Thanks for any comment,
Sébastien.