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

Re: shim header in every shimmed packet



On 12-okt-2005, at 12:09, Erik Nordmark wrote:

And of course, it doesn't get any simpler than simply putting in an explicit shim6 header with the context tag in every shimmed packet. This is what's on the table now.

Iljitsch,
it is not in every packet.
It is only in packets after a locator switch i.e., when the IPv6 source and/or destination are different then the ULIDs.

That's what I meant with "every shimmed packet".

Looks like you are assuming that there will be failures all the time so that NO packet will have ULIDs=locators.

Of course not. Most packets will not be rewritten by the shim.

However, when this capability becomes common it's not inconceivable that people are going to let it catch stuff that is now repaired differently, so that rewriting becomes more common that it would seem extrapolating the current situation.

And of course there is traffic engineering, which may lead to a fairly large amount of rewriting.

Isn't the receiver's ability to demux the packets to the correct context without the context tag a function of the locator sets and ULIDs that are in use?
If so I don't see how a single bit can suffice.

It seems like one would need to at a minimum covey that bit in the Update Ack message (in addition to the context establishment) so that when the peer changes its locators, the host can restate whether or not it can demux without the context tag for the new set of locators.

Right. I haven't thought much about the issues around locator updating because I was kind of assuming this wouldn't happen in the presense of HBA.

But the current design also uses uncoordinated teardown of the context state, which can result in one end not having any context state any more, even though the peer might send packets using that context. With the context tag in the packets that need to be rewritten by the receiver, we can detect this condition. But your 'single bit' scheme would seem to need some different way to detect this missing state. Any ideas on how to do this?

That would be something that we explore in the "how to safely suppress the shim header after rewriting" document but in the case where the locator sets for the different ULIDs are disjoint this isn't an issue: the receiver without state that receives a shimmed packet without a shim header will know this because the packet is addressed at a locator-only address. It can then either send back a shim error or an ICMP error.