Subject: RE: [nemo] RO taxonomy

From: "Pascal Thubert \(pthubert\)" <[email-masked]>
Date: Fri, 29 Oct 2004 10:59:46 +0200

> 
> > The text in that RRH section has been reused and then modified as the
> > RO taxonomy draft evolved. I'm not copying the RRH text here, but if
> > you wish to continue on this topic (please do :) then maybe we can
> > comment on that text directly.
> 
> Sorry, but I'm trying to have a discussion about the problem space, and
> not comment on any particular proposed solution; we need to understand
> the problem space first IMHO.

Yes, I was doing just that. The text I mentioned was not solution space but suggested that the approach that you detailed was not optimum. Here's the text in question:

1.1  Recursive complexity

   A number of drafts and publications suggest -or can be extended to- a
   model where the Home Agent and any arbitrary Correspondent would
   actually get individual binding from the chain of nested Mobile
   Routers, and form a routing header appropriately.

   An intermediate MR would keep track of all the pending communications
   between hosts in its subtree of Mobile Networks and their CNs, and a
   binding message to each CN each time it changes its point of
   attachment.

   If this was done, then each CN, by receiving all the binding messages
   and processing them recursively, could infer a partial topology of
   the nested Mobile Network, sufficient to build a multi-hop routing
   header for packets sent to nodes inside the nested Mobile Network.

   However, this extension has a cost:

   1.  Binding Update storm

       when one MR changes its point of attachment, it needs to send a
       BU to all the CNs of each node behind him.  When the Mobile
       Network is nested, the number of nodes and relative CNs can be
       huge, leading to congestions and drops.

   2.  Protocol Hacks

       Also, in order to send the BUs, the MR has to keep track of all
       the traffic it forwards to maintain his list of CNs.  In case of
       IPSec tunneled traffic, that CN information may not be available.

   3.  CN operation

       The computation burden of the CN becomes heavy, because it has to
       analyze each BU in a recursive fashion in order to infer nested
       Mobile Network topology required to build a multi hop routing
       header.

   4.  Missing BU

       If a CN doesn't receive the full set of PSBU sent by the MR, it
       will not be able to infer the full path to a node inside the
       nested Mobile Network.  The RH will be incomplete and the packet
       may or may not be delivered.

   5.  Obsolete BU

       If the Binding messages are sent asynchronously by each MR, then,
       when the relative position of MRs and/or the TLMR point of
       attachment change rapidly, the image of Mobile Network that the
       CN maintains is highly unstable.  If only one BU in the chain is
       obsolete due to the movement of an intermediate MR, the
       connectivity may be lost.

   A conclusion is that the path information must be somehow aggregated
   to provide the CN with consistent snapshots of the full path across
   the Mobile Network.  This can be achieved by an IPv6 form of loose
   source / record route header, that we introduce here as a Reverse
   Routing Header

Pascal

---

From: Erik Nordmark <[email-masked]>
Date: Fri, 29 Oct 2004 10:07:57 -0700

>        connectivity may be lost.

It also isn't clear to me how such an approach would work when multiple
MRs move at the same time. With a tree of AR->MR1->MR2->MNN,
if MR1 changes AR at the same time as MR2 changes from MR1, wouldn't the 
fact that each "layer" tries to independently signal the CN make things 
very flaky; some part of one layers 6 packet BU exchange with the CN 
might be lost due to the layers above also moving.

>    source / record route header, that we introduce here as a Reverse

Another possible way, in the case when the CN is modified, would be to 
have the MNN learn the list of CoA from announcements (e.g. in RAs) from 
the chain of MRs above it.
That way the MNN can reliably learn the list, and then the MNN can pass 
the list to the CN in a BU.

But I think the case when the CN isn't modified is about as easy; the 
MNN would instead of sending a BU to the CN with the list, it will send 
a BU to the CN which points at the top MR's COLA, and a BU to that MR 
which points it at the CoA of the next MR in the tree, etc.
Thus the MNN learns the path of MRs the packets need to traverse and 
creates bindings in each MR indicating the next hop.
(MNN->CN path and HAO left as an exercise for the reader :-)

    Erik