[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Flow label - the problem
Iljitsch van Beijnum wrote:
On 21-apr-2005, at 13:11, marcelo bagnulo braun wrote:
But it's not just the overhead. The problem is that adding bytes to
the packet increases the work that must be done per packet. This is
also very bad.
Ok, no arguing that extra overhead is bad, but keep in mind that the
overhead is only cause when there is a rehoming event i.e. that the
locator being carried is different from the ULID of the session.
You still need to work your way through each packet to see if there is
a header, so it's still bad even if the header isn't there...
Er, every node has to step through all Next Headers anyway, whether or
not there is an extra header there.
As I said before, the only thing needed to make the flow label
usable for this, and without taking away from its other uses, is
avoid reusing flow labels for sessions with an unknown shim6 status.
Not sure if a agree here.
I mean, are you cosnidering the case where new locators can be added
after the context has been established?
In general: yes. There may be some corner cases, though. Are you
thinking about the situation where a locator that first belongs to one
host later belongs to another host?
Bingo. That's the point about virtualized IP addresses in a rack of
servers - addresses may well jump from box to box, or be created
and destroyed.
I mean, the requirement is to verify that those context that have
intersecting locator set use different flow id values.
How can different associations have overlapping locator sets?
If incoming traffic for virtual address X in a rack of servers is
assigned dynamically when a new session starts, it may be assigned
to different boxes for different sessions. Same thing for virtual
address Y and virtual address Z. So you end up with {X,Y} and {X,Z}
being locator 2-tuples for two different boxes, and then {X,Y,Z} is not
a valid locator 3-tuple. The fact that locator sets intersect does
not mean that you can form their union.
Brian
so if you are assuming that we have an static set of locators, then
this is easy, since you can verify it when the session is established.
However if you assume dynamic locator sets, then this is simply
impossible, since you cannot possible verify what will happen in the
future i.e. if some of the locators included in one context won't be
later on added to another context that has the same flow id value
associated.
But the problem only exists when we have communication with the locator
in question beforehand. So what would have to happen is that there is
shim6 communication between two hosts, but there is also communication
from one host to a locator without shim6, and then that locator is
bound to the existing shim6 association. I agree that this can happen,
but only for a very limited time: either the shim6- agnostic session
will start up shim6 negotiations, or the existing association will add
the new locator.
In other words: sessions move out of the state where their flow label
can't be reused for other sessions fairly quickly because either they
turn out shim-enabled and then we know the set of locators for which
the flow label must remain unique, or they turn out shim-incable and
the flow label can be reused for any other destination address.