Subject: [6tsch] synchronization between BBRs

From: Thomas Watteyne <[email-masked]>
Date: Tue, 23 Apr 2013 21:31:56 -0700

All,

I would like to resume the discussion we had some weeks ago
concerning synchronization between BBRs.

The topology of interest is the one below, in which multiple BBRs are
present in the network. There can be several advantages of having multiple
BBRs, including:
- load balancing between BBRs
- better overall latency
- greater (path) diversity
- the ability to use a single PCE to manage the multi-BBR LLN

I'm borrowing the figure below from
draft-thubert-6lowpan-backbone-router-03:

               ---+------------------------
                  |      External Network
                  |
               +-----+                  +-----+
               |     | Router           |     | PCE /
               |     |                  |     | Common Net Mgt
               +-----+                  +-----+
                  |                        |
                  |     Subnet Backbone    |
            +--------------------+------------------+
            |                    |                  |
         +-----+             +-----+             +-----+
         |     | Backbone    |     | Backbone    |     | Backbone
    o    |     | router      |     | router      |     | router
         +-----+             +-----+             +-----+
    o                  o                   o                 o   o
        o    o   o         o   o  o   o         o  o   o    o
   o             o        o  LLN      o      o         o      o
      o   o    o      o      o o     o  o   o    o    o     o

In the TSCH context, we have the specificity that our nodes are
synchronized. To be specific, a node's clock needs to be with one guard
time (GT, typically 1ms) of its neighbors'. If we want to take full
advantage of having multiple BBRs (including the possibility for a node to
"roam" from one BBR to the next), we need the BBRs to be synchronized. More
specifically, we need each BBR to be synchronized within a GT of the nodes
surrounding it.

As discussed in earlier threads, there are several techniques one can think
of, which can be classified as in-band (synchronize over the LLN) or
out-of-band (synchronize using a protocol over the BB, or using a common
clock source such as GPS). In-band has some advantages (e.g. BBR can
consist of the same HW as non-BBR nodes), out-of-band has others (e.g. LLN
does no need to be fully connected all the time).

Given this context, I would like to propose the following statements to the
mailing list, and request you comments:

Statement 1. "When multiple BBRs are interconnected by a backbone, these
BBRs MAY be synchronized."
Statement 2. “When BBRs are synchronized, their relative de-synchronization
should be in the order of the de-synchronization between two neighbor nodes
in the network.”
Statement 3. "The mechanism used for synchronizing BBRs is
implementation-specific."

Thomas