Subject: [Roll] On how to configure/run RPL on nodes with two interfaces

From: "Sun, Yanjun" <[email-masked]>
Date: Thu, 12 May 2011 13:25:47 -0500

Hello All,

I'm new to this mailing list. I'm trying to figure out how to configure/run RPL on a node with two interfaces. Following the rules of RPL, I came up with several configurations even for a simple two node network below. Could you please comment on whether they make sense and whether there is any better alternative? As most discussion in RPL is focused on nodes with single interface (though I strongly believe it'll work well for multiple interfaces), the configuration really puzzled me. So I would appreciate if anyone could help me out.

I'd like to use a very simple network to describe my questions.  Node 1 is the root and node 2 is a leaf. Both nodes have two wired interfaces. A1 is connected to A2 and B1 is connected to B2. we'd like to find out what's the best way to configure RPL for such a network to forward packets on both links.

                              +-------------+
                              |    Root     |
                              |             |
                          +---+A1    1    B1+----+
                          |   |             |    |
                          |   |             |    |
                          |   +-------------+    |
                          |                      |
                          |                      |
                          |                      |
                          |   +-------------+    |
                          |   |             |    |
                          +---+A2    2    B2+----+
                              |             |
                              +------+------+

I could think of two possible configurations. In the first RPL configuration, I let node 1 use only *one* instance, INST1. One DIO message with A1 as DODAGID will be broadcast over both interfaces A1 and B1. Then another message with B1 as DODAGID will be also broadcast over both interfaces. Based on the RPL draft that limits a node to join only one DODAG given an instance ID, node 2 can only choose one link to join node 1 and leave the other link *unused*.

In the second configuration, I let node 1 to use *two* instances, INST1 and INST2. One DIO message with A1 as DODAGID and INST1 will be broadcast over both interfaces A1 and B1. Then another message with B1 as DODAGID and INST2 will be also broadcast over both interfaces. Some Objective Functions may allow us to forward packets on both links now. But the control becomes hard when the network has multiple hops. Ideally, I prefer node 2 to dynamically choose a link because link qualities could change over time quickly.

Any comment or suggestion would be appreciated and thank you for your time,

Yanjun

--
Yanjun Sun
Systems and Applications R&D Center
Texas Instruments, Inc, USA

---

From: Michael Richardson <[email-masked]>
Date: Thu, 12 May 2011 22:16:49 -0400

>>>>> "Yanjun" == Yanjun Sun <Sun> writes:
    Yanjun> I'm new to this mailing list. I'm trying to figure out how
    Yanjun> to configure/run RPL on a node with two
    Yanjun> interfaces. Following the rules of RPL, I came up with
    Yanjun> several configurations even for a simple two node network
    Yanjun> below. Could you please comment on whether they make sense
    Yanjun> and whether there is any better alternative? As most
    Yanjun> discussion in RPL is focused on nodes with single interface
    Yanjun> (though I strongly believe it'll work well for multiple
    Yanjun> interfaces), the configuration really puzzled me. So I would
    Yanjun> appreciate if anyone could help me out.

So, RPL is not focused on a single interface.

RPL is focused on connections where there is multiple access, just not
really broadcast available. Yet, it's not ATM-like NBMA.
A machine with two interfaces is just part of two broadcast domains
where the ETX is 0 for any machines crossing that line.  The two
interfaces don't have to be two radios, it could also be a single radio
with multiple frequencies.

In my test bench, I use simulated ethernet, but since I don't have
simulation of radio propogation issues, I just have a network with 7 or
so ethernet broadcast domains.

    Yanjun> I'd like to use a very simple network to describe my
    Yanjun> questions.  Node 1 is the root and node 2 is a leaf. Both
    Yanjun> nodes have two wired interfaces. A1 is connected to A2 and
    Yanjun> B1 is connected to B2. we'd like to find out what's the best
    Yanjun> way to configure RPL for such a network to forward packets
    Yanjun> on both links.

I don't think you can.
RPL doesn't promise you that you will be able to make the most amount of
bandwidth available, but that you will get a minimal cost (by Objective
Function) path.

    Yanjun> In the second configuration, I let node 1 to use *two*
    Yanjun> instances, INST1 and INST2. One DIO message with A1 as
    Yanjun> DODAGID and INST1 will be broadcast over both interfaces A1
    Yanjun> and B1. Then another message with B1 as DODAGID and INST2
    Yanjun> will be also broadcast over both interfaces. Some Objective
    Yanjun> Functions may allow us to forward packets on both links
    Yanjun> now. But the control becomes hard when the network has

This is the only way I can see doing things.  

    Yanjun> multiple hops. Ideally, I prefer node 2 to dynamically
    Yanjun> choose a link because link qualities could change over time
    Yanjun> quickly.

if the ETX across the A links and the B links is significantly
different, and this changes over time, then I expect that your DODAG may
re-organize to always have the best working path.

-- 
]       He who is tired of Weird Al is tired of life!           |  firewalls  [
]   Michael Richardson, Sandelman Software Works, Ottawa, ON    |net architect[
] [email-masked] http://www.sandelman.ottawa.on.ca/ |device driver[
   Kyoto Plus: watch the video <http://www.youtube.com/watch?v=kzx1ycLXQSE>
	               then sign the petition.

---

From: C Chauvenet <[email-masked]>
Date: Fri, 13 May 2011 01:14:55 -0700

Hi,

RPL on muti-interfaces nodes is to my mind a very valuable feature.

Jumping into the discussion, a thought came to my mind :

If you have several interfaces on your nodes, you should have several MAC address (one for each interface), so you should have several IPv6 address.
So in fact, would the problem of multi-interfaces be similar to multiple nodes (considering a node as a particular IPv6 address) ?

So in your case, using both interfaces would result in doing some kind of multicasting.

Other thoughts ?

Cédric.

Le 12 mai 2011 à 20:25, Sun, Yanjun a écrit :

Hello All,

I’m new to this mailing list. I’m trying to figure out how to configure/run RPL on a node with two interfaces. Following the rules of RPL, I came up with several configurations even for a simple two node network below. Could you please comment on whether they make sense and whether there is any better alternative? As most discussion in RPL is focused on nodes with single interface (though I strongly believe it’ll work well for multiple interfaces), the configuration really puzzled me. So I would appreciate if anyone could help me out.

I’d like to use a very simple network to describe my questions.  Node 1 is the root and node 2 is a leaf. Both nodes have two wired interfaces. A1 is connected to A2 and B1 is connected to B2. we’d like to find out what’s the best way to configure RPL for such a network to forward packets on both links.

                              +-------------+
                              |    Root     |
                              |             |
                          +---+A1    1    B1+----+
                          |   |             |    |
                          |   |             |    |
                          |   +-------------+    |
                          |                      |
                          |                      |
                          |                      |
                          |   +-------------+    |
                          |   |             |    |
                          +---+A2    2    B2+----+
                              |             |
                              +------+------+

Yanjun

<ATT00001..txt>

---

From: "Sun, Yanjun" <[email-masked]>
Date: Fri, 13 May 2011 11:22:55 -0500

Hi Cédric, Michael,

Thank you for your valuable inputs.

Cédric: Our understanding is aligned on the IPv6 address usage. I could only think of a tiny difference between multi-interfaces and multiple nodes and please correct me if I'm wrong. Suppose only one root node creates one RPLInstance in a network. In the multi-interface case, we see two types of DIO messages, each corresponding to an IPv6 address of the root. A leaf node can't tell that they're essentially from the same root node. In the multiple nodes case, we only see one type of DIO message.

Michael: You're right, but I wonder if the following dynamic path selection could possibly trigger some undesired control overhead at nodes below node 1 and 2.

>re-organize to always have the best working path.

Suppose node 1 and 2 are at the very top of a DODAG and there are many nodes below them. Also suppose node 1 created one RPLInstance and two DODAGIDs (one for each interface, the configuration 1 I mentioned in my earlier email). When node 2 picks a different link due to changed EXT metrics, the DODGAID it belongs to may also change. I'm not sure if this will trigger all the nodes below node2 to update their "associations".

Thank you,

Yanjun

From: C Chauvenet [mailto:[email-masked]]
Sent: Friday, May 13, 2011 3:15 AM
To: Sun, Yanjun
Cc: [email-masked]
Subject: Re: [Roll] On how to configure/run RPL on nodes with two interfaces

Hi,

Other thoughts ?

Cédric.

Hello All,

                              +-------------+
                              |    Root     |
                              |             |
                          +---+A1    1    B1+----+
                          |   |             |    |
                          |   |             |    |
                          |   +-------------+    |
                          |                      |
                          |                      |
                          |                      |
                          |   +-------------+    |
                          |   |             |    |
                          +---+A2    2    B2+----+
                              |             |
                              +------+------+

Yanjun

-----Original Message-----
From: [email-masked] [mailto:[email-masked]]
Sent: Thursday, May 12, 2011 9:17 PM
To: Sun, Yanjun
Cc: [email-masked]
Subject: Re: [Roll] On how to configure/run RPL on nodes with two interfaces

    Yanjun> on both links.

I don't think you can.

Function) path.

    Yanjun> quickly.

--

                     then sign the petition.

---

From: Alexandru Petrescu <[email-masked]>
Date: Wed, 18 May 2011 16:13:28 +0200

I think that, in the network you depicted, where a node has several
real IP-enabled interfaces, RPL should not be forced into using more
than one instance.

                               +-------------+
                               |    Root     |
                               |             |
                           +---+A1    1    B1+----+
                           |   |             |    |
                           |   |             |    |
                           |   +-------------+    |
                           |                      |
                           |                      |
                           |                      |
                           |   +-------------+    |
                           |   |             |    |
                           +---+A2    2    B2+----+
                               |             |
                               +------+------+

(by comparison, OSPF running on this network does not _need_ several
instances.  It has a single daemon per machine, with a single view of
the network as reflected in its database.)

(my two cents worth).

Alex

Le 12/05/2011 20:25, Sun, Yanjun a écrit :
> Hello All, I’m new to this mailing list. I’m trying to figure out how
> to configure/run RPL on a node with two interfaces. Following the
> rules of RPL, I came up with several configurations even for a simple
> two node network below. Could you please comment on whether they make
> sense and whether there is any better alternative? As most discussion
> in RPL is focused on nodes with single interface (though I strongly
> believe it’ll work well for multiple interfaces), the configuration
> really puzzled me. So I would appreciate if anyone could help me
> out. I’d like to use a very simple network to describe my questions.
> Node 1 is the root and node 2 is a leaf. Both nodes have two wired
> interfaces. A1 is connected to A2 and B1 is connected to B2. we’d
> like to find out what’s the best way to configure RPL for such a
> network to forward packets on both links. +-------------+ | Root | |
> | +---+A1 1 B1+----+ | | | | | | | | | +-------------+ | | | | | | |
> | +-------------+ | | | | | +---+A2 2 B2+----+ | | +------+------+ I
> could think of two possible configurations. In the first RPL
> configuration, I let node 1 use only *one* instance, INST1. One DIO
> message with A1 as DODAGID will be broadcast over both interfaces A1
> and B1. Then another message with B1 as DODAGID will be also
> broadcast over both interfaces. Based on the RPL draft that limits a
> node to join only one DODAG given an instance ID, node 2 can only
> choose one link to join node 1 and leave the other link *unused*. In
> the second configuration, I let node 1 to use *two* instances, INST1
>  and INST2. One DIO message with A1 as DODAGID and INST1 will be
> broadcast over both interfaces A1 and B1. Then another message with
> B1 as DODAGID and INST2 will be also broadcast over both interfaces.
> Some Objective Functions may allow us to forward packets on both
> links now. But the control becomes hard when the network has multiple
> hops. Ideally, I prefer node 2 to dynamically choose a link because
> link qualities could change over time quickly. Any comment or
> suggestion would be appreciated and thank you for your time, Yanjun
> -- Yanjun Sun Systems and Applications R&D Center Texas Instruments,
> Inc, USA
>
>
>
> _______________________________________________ Roll mailing list
> [email-masked] https://www.ietf.org/mailman/listinfo/roll

---

From: "Sun, Yanjun" <[email-masked]>
Date: Wed, 18 May 2011 10:43:46 -0500

Alex,

Thanks a lot for your inputs. Could you please comment more on the reasons behind "RPL should not be forced into using more than one instance"? Could there be any risk such as loops? 

I totally agree with you on OSPF's behavior. I prefer RPL to OSPF-like protocols for our project because of RPL's small memory footprint. However, we have nodes with two interfaces, so I'd like to make sure it's well handled by RPL before moving forward.

Best regards,

Yanjun

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of Alexandru Petrescu
Sent: Wednesday, May 18, 2011 9:13 AM
To: [email-masked]
Subject: Re: [Roll] On how to configure/run RPL on nodes with two interfaces

                               +-------------+
                               |    Root     |
                               |             |
                           +---+A1    1    B1+----+
                           |   |             |    |
                           |   |             |    |
                           |   +-------------+    |
                           |                      |
                           |                      |
                           |                      |
                           |   +-------------+    |
                           |   |             |    |
                           +---+A2    2    B2+----+
                               |             |
                               +------+------+

(my two cents worth).

Alex

Le 12/05/2011 20:25, Sun, Yanjun a écrit :
> Hello All, I'm new to this mailing list. I'm trying to figure out how
> believe it'll work well for multiple interfaces), the configuration
> out. I'd like to use a very simple network to describe my questions.
> interfaces. A1 is connected to A2 and B1 is connected to B2. we'd
> like to find out what's the best way to configure RPL for such a

_______________________________________________
Roll mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/roll

---

From: Phoebus Chen <[email-masked]>
Date: Wed, 18 May 2011 23:06:58 +0200

Yanjun,

	I think using a Virtual Root, as described in (Section 3.1.3. 
draft-ietf-roll-rpl-19) bullet point number 3, may solve your problem.

	In your case, "backbone network" doesn't apply since both interfaces 
are on one node.  So you have a perfect connection.  Effectively, can 
advertise an ETX of 1 on both interfaces (path ETX from each interface 
to virtual root).  And you can use one RPLInstanceID and DODAGID.  Since 
what happens within your root node is all your own code, you probably 
don't have to simulate all the details of sending DIOs from your virtual 
root to the interfaces, etc., so long as the behavior seen at the 
interfaces looks like that of an RPL DAG with two nodes with perfect 
links to a root.

Good luck,
-- 
Phoebus Chen
Postdoctoral Researcher
Automatic Control Lab, KTH (Royal Institute of Technology)
http://www.ee.kth.se/~phoebus

On 5/13/11 6:22 PM, Sun, Yanjun wrote:
> Cédric: Our understanding is aligned on the IPv6 address usage. I could
> only think of a tiny difference between multi-interfaces and multiple
> nodes and please correct me if I’m wrong. Suppose only one root node
> creates one RPLInstance in a network. In the multi-interface case, we
> see two types of DIO messages, each corresponding to an IPv6 address of
> the root. A leaf node can’t tell that they’re essentially from the same
> root node. In the multiple nodes case, we only see one type of DIO message.
>
> Michael: You’re right, but I wonder if the following dynamic path
> selection could possibly trigger some undesired control overhead at
> nodes below node 1 and 2.
>
> Suppose node 1 and 2 are at the very top of a DODAG and there are many
> nodes below them. Also suppose node 1 created one RPLInstance and two
> DODAGIDs (one for each interface, the configuration 1 I mentioned in my
> earlier email). When node 2 picks a different link due to changed EXT
> metrics, the DODGAID it belongs to may also change. I’m not sure if this
> will trigger all the nodes below node2 to update their “associations”.
>
> Thank you,
>
> Yanjun
>
> *From:*C Chauvenet [mailto:[email-masked]]
> *Sent:* Friday, May 13, 2011 3:15 AM
> *To:* Sun, Yanjun
> *Cc:* [email-masked]
> *Subject:* Re: [Roll] On how to configure/run RPL on nodes with two
> interfaces
>
> Hi,
>
> If you have several interfaces on your nodes, you should have several
> MAC address (one for each interface), so you should have several IPv6
> address.
>
> So in fact, would the problem of multi-interfaces be similar to multiple
> nodes (considering a node as a particular IPv6 address) ?
>
> I’m new to this mailing list. I’m trying to figure out how to
> configure/run RPL on a node with two interfaces. Following the rules of
> RPL, I came up with several configurations even for a simple two node
> network below. Could you please comment on whether they make sense and
> whether there is any better alternative? As most discussion in RPL is
> focused on nodes with single interface (though I strongly believe it’ll
> work well for multiple interfaces), the configuration really puzzled me.
> So I would appreciate if anyone could help me out.
>
> I’d like to use a very simple network to describe my questions. Node 1
> is the root and node 2 is a leaf. Both nodes have two wired interfaces.
> A1 is connected to A2 and B1 is connected to B2. we’d like to find out
> what’s the best way to configure RPL for such a network to forward
> packets on both links.
>
> +-------------+
>
> | Root |
>
> | |
>
> +---+A1 1 B1+----+
>
> | | | |
>
> | | | |
>
> | +-------------+ |
>
> | |
>
> | |
>
> | |
>
> | +-------------+ |
>
> | | | |
>
> +---+A2 2 B2+----+
>
> | |
>
> +------+------+
>
> I could think of two possible configurations. In the first RPL
> message with A1 as DODAGID will be broadcast over both interfaces A1 and
> B1. Then another message with B1 as DODAGID will be also broadcast over
> both interfaces. Based on the RPL draft that limits a node to join only
> one DODAG given an instance ID, node 2 can only choose one link to join
> node 1 and leave the other link *unused*.
>
> In the second configuration, I let node 1 to use *two* instances, INST1
> broadcast over both interfaces A1 and B1. Then another message with B1
> as DODAGID and INST2 will be also broadcast over both interfaces. Some
> Objective Functions may allow us to forward packets on both links now.
> But the control becomes hard when the network has multiple hops.
> Ideally, I prefer node 2 to dynamically choose a link because link
> qualities could change over time quickly.
>