> >>
> >>    Pascal> [Pascal] The FL based proposal for RPL uses 12 mutable
> > bits.
> >>
> >>    Pascal> They are used as an in-band control plane that checks
the
> >>    Pascal> consistency of routing states along a path. Those states
> > can
> >>    Pascal> easily get out of sync due to the nature of the links,
but
> >>    Pascal> the maintenance can be costly. We want to accelerate the
> >>    Pascal> repairs on those links that are actually used when an
> >>    Pascal> inconsistency is detected that will impact the delivery.
> >>
> >> I don't understand how the FL helps us on this!  Probably I missed
> > something
> >> important.  What you write below was my entire understanding of our
> > need for
> >> an in-band tag.
> >
> > [Pascal] This point is not about the flow label specifically but
about
> > the RPL strategy, and it works whether we use the flow label or the
> > hop by hop techniques to transport the info. In short, the mere fact
> > that there is a packet on the broken path causes us to 1) detect and
> > 2) fix the issue. If there's no packet on a broken path then it can
> > stay broken for a while. There will probably be many broken paths at
> > any point of time in the network, due to transient link
interference,
> > movement,  and all sorts of routing desyncs. Considering the cost of
> > proactive rapid resolution, we have chosen not to fix the routing
> > issues as soon as they appear but 1) lazily and 2) on-demand.
> > The lazy piece is a global reconstruction of the DAG that happens
> > periodically. The on-demand piece is a data path validation that
> > allows us to fix a path as it is being used, either using a mutable
> > flow label field or the Hop by Hop header.
> 
> Maybe a rewording might make this clearer.
> 
> Basically, RPL puts up to two pieces information in packets that it
routes. The
> first is which routing topology this packet should be routed on: RPL
supports
> multiple parallel topologies, e.g., one optimized for low latency and
a second
> optimized for low energy. This information is called the
RPLInstanceId.
> 
> The second is information about the "cost" of the forwarder's route to
the
> destination. This hop-by-hop "cost" information is called Rank. Rank
is needed
> to detect routing loops: if a router receives a packet whose prior
router's Rank
> is less than or equal to its own, Rank is not strictly decreasing and
there may be
> a routing loop.
> 
> Being able to embed this information in the flow label, rather than
requiring
> additional headers and IP-in-IP, would greatly reduce header overhead.
In RPL,
> we're often concerned about very short, such as 10 byte, packets, so
this could
> be a big savings.
> 
> The challenge is that the RPLInstanceId is 8 bits and Rank is 16 bits.
> 
> Does that make sense?

[Pascal] Agreed. We'll note that the Hop by Hop + IP in IP is costly but
solves the generic problem *within* the RPL network. The use of the Flow
label *within* the RPL network would be an alternate so it could have a
more limited applicability, like a more limited number of instances or a
Rank floor that can be expressed in 1 octet or less, which is probably
more than enough considering that infinity is 16 in RIP. This could
cover a large number of foreseeable deployments.

There is certainly a strong benefit in Low Power Lossy Networks to make
the flow label mutable. Still, making it all mutable will definitely
block a communication path between the app and the network, which I feel
is a mistake.

Pascal

--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6@ietf.org
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------

Reply via email to