Subject: [Roll] [6man] #5 (draft-thubert-6man-flow-label-for-rpl): draft-thubert-6man-flow-label-for-rpl-03 Evidence about energy consumption

From: "6man issue tracker" <[email-masked]>
Date: Sun, 10 Aug 2014 16:48:29 -0000

#5: draft-thubert-6man-flow-label-for-rpl-03 Evidence about energy consumption

 Source: http://www.ietf.org/mail-archive/web/roll/current/msg08755.html

 From: Philip Levis <pal at cs.stanford.edu> Date: Tue, 29 Jul 2014
 17:02:17 -0700

 I'm worried by the fundamental premise of the approach:

 "The 8-octets overhead is detrimental to the LLN operation, in particular
 with regards to bandwidth and battery constraints.  The extra
 encapsulation may cause a containing frame to grow above maximum frame
 size, leading to Layer 2 or 6LoWPAN [RFC4944] fragmentation, which in turn
 cause even more energy spending and issues discussed in the LLN Fragment
 Forwarding and Recovery [I-D.thubert-6lo-forwarding-fragments]."

 The basic assumption of this paragraph is that energy consumption is
 dominated by transmission time. Has anyone presented any actual evidence
 -- i.e., actual energy numbers -- of the cost this introduces?

 Because

 "This specification suggests that energy-saving is another compelling
 reason for a violation to the aforementioned rule."

 makes the assumption that the energy saving is significant. Breaking the
 end-to-end nature of the flow label for some tiny saving seems like a
 mistake. But if this would actually save a significant amount of energy
 that couldn't be saved through other, simpler, means, then it seems like a
 great idea.

 My fear is that this area -- low-power link layers, energy saving
 protocols -- is an area that is still new to the IETF and tends to have
 very subtle issues. What's being proposed here is pretty significant.
 Simple, intuitive arguments might not hold up to scrutiny in real
 networks.

 If you look at it in this light, one comment the draft makes is especially
 troubling:

 "But if we consider the whole RPL domain as a large virtual host from the
 standpoint of the rest of the Internet"

 This is completely contrary to the deep, fundamental premise of the
 Internet of Things and when we started down the path of bringing IPv6 to
 LLNs. Before 6lowpan, LLN devices were typically considered peripherals,
 devices that connect to an Internet host through other interfaces and
 protocols (USB, ZWave, ZigBee, etc., etc.). This gave greater flexibility
 on what those networks could do, but it placed a hard barrier on the
 Internet. You needed new tools, management interfaces, software, and
 policies for managing the two sides of the network. E.g, you manage your
 IP network and separately manage your embedded network. The big promise of
 6lowpan and all of the subsequent technologies the IETF has developed is
 that instead, we can consider it IP down into these networks as well.
 Considering an entire LLN as a virtual host goes back to this segmented
 model, and so is a step backwards.

 In summary, this draft presents a tradeoff: break the end-to-end behavior
 of the flow label for improved energy efficiency. I'd argue strongly in
 favor of this draft if "improved" meant "doubles". But if it means "5% in
 1% of use cases", this seems like a poor tradeoff. The IETF 90 slides say
 it's a "show stopper" for SDOs. I'm not sure what that means? Is there any
 greater detail on this? I'd like to make an informed engineering decision,
 but don't have enough data to do so.

 Phil

-- 
-------------------------------------------------+-------------------------
 Reporter:  [email-masked]            |      Owner:
     Type:  defect                               |  [email-masked]
 Priority:  major                                |     Status:  new
Component:  draft-thubert-6man-flow-label-for-   |  Milestone:
  rpl                                            |    Version:
 Severity:  In WG Last Call                      |   Keywords:
-------------------------------------------------+-------------------------

Ticket URL: <http://trac.tools.ietf.org/wg/6man/trac/ticket/5>
6man <http://tools.ietf.org/wg/6man/>

---

From: "6man issue tracker" <[email-masked]>
Date: Sun, 10 Aug 2014 16:50:44 -0000

Comment (by [email-masked]):

 ----------------

 Source: http://www.ietf.org/mail-archive/web/roll/current/msg08756.html

 From: Brian E Carpenter <brian.e.carpenter at gmail.com> Date: Wed, 30 Jul
 2014 13:36:44 +1200

 On 30/07/2014 12:02, Philip Levis wrote:
 ...
 > "This specification suggests that energy-saving is another
 > compelling reason for a violation to the aforementioned
 > rule."
 >
 > makes the assumption that the energy saving is significant.
 > Breaking the end-to-end nature of the flow label for some
 > tiny saving seems like a mistake.

 I can't evaluate whether the energy saving is significant.
 However, I don't have any deep faith in the e2e-ness of the
 flow label. The reality (as RFC 6437 tries to recognise)
 is that it's a mutable field, and is therefore untrustworthy
 for e2e use. It has value for load balancing if all packets
 of a given flow have the same label, whether the label is
 set by the source or by a border device. For that reason,
 I think the usage proposed in this draft is OK.

 However, I do agree that at least a hand-waving estimate of
 the % energy saving would be useful.

     Brian Carpenter R

 ----------------

 Source:  http://www.ietf.org/mail-archive/web/roll/current/msg08761.html

 From: Philip Levis <pal at cs.stanford.edu> Date: Thu, 31 Jul 2014
 15:11:21 -0700

 On Jul 29, 2014, at 6:36 PM, Brian E Carpenter <brian.e.carpenter at
 gmail.com> wrote:

 > On 30/07/2014 12:02, Philip Levis wrote:
 > ...
 >> "This specification suggests that energy-saving is another
 >> compelling reason for a violation to the aforementioned
 >> rule."
 >>
 >> makes the assumption that the energy saving is significant.
 >> Breaking the end-to-end nature of the flow label for some
 >> tiny saving seems like a mistake.
 >
 > I can't evaluate whether the energy saving is significant.
 > However, I don't have any deep faith in the e2e-ness of the
 > flow label. The reality (as RFC 6437 tries to recognise)
 > is that it's a mutable field, and is therefore untrustworthy
 > for e2e use. It has value for load balancing if all packets
 > of a given flow have the same label, whether the label is
 > set by the source or by a border device. For that reason,
 > I think the usage proposed in this draft is OK.
 >
 > However, I do agree that at least a hand-waving estimate of
 > the % energy saving would be useful.
 >
 >    Brian Carpenter

 *shrug* My thoughts are pretty simple. I'm sure you know all this (as one
 of the authors!) but I'll revisit for everyone else's sake. 6437 states

 "A forwarding node MUST either leave a non-zero flow label value unchanged
 or change it only for compelling operational security reasons as described
 in Section 6.1."

 So, this is a MUST. Either the RPL flow label draft contradicts 6437 (and
 should say so explicitly), or there should be an explicit update to 6437.
 In fact, the current draft is misleading and incorrect. It says

 "but the RFC also indicates a violation to the rule can be accepted for
 compelling reasons, and that security is a case justifying such a
 violation.  This specification suggests that energy-saving is another
 compelling    reason for a violation to the aforementioned rule."

 This is *not* what 6437 says. It says for compelling operational security
 reasons, not compelling reasons, of which one case is security.

 Having been researching, implementing, and deploying low-power protocols
 for over a decade, I've become exceedingly skeptical when someone proposes
 a protocol with energy as a motivation without quantifying it. For
 example, there are tons of protocols in the research literature which talk
 about using transmission power control to save energy (trading off range
 for power). But almost all of these papers ignore the fact that (unlike
 mobile/cellular systems, which the authors have been publishing in for
 years) RF is a tiny sliver of power in low-power networks. So reducing
 your transmission (RF) power by 99% only reduces your radio power by 50%.
 Generally a losing proposition. This is the same reason why power saving
 in WiFi involves synchronization on AP beacons and not adjusting transmit
 power. If someone doesn't quantify the potential benefit based on real
 hardware and protocols, then it could be based on mistaken assumptions.

 I mean, it doesn't take much here. Start with a working low-power RPL
 network. Send packets with sizes following a reasonable distribution based
 on an actual application. In one experiment send just those packets. In
 another add the 8 bytes. In a third add 8 + the IP-in-IP encapsulation.
 Measure the energy cost.

 And, generally speaking, if you can't demonstrate the problem very easily,
 then perhaps it isn't a real problem at all.

 All that being said, I think using the flow label in this way is a good
 idea, and definitely valuable. But as it is now, doing so violates 6437,
 and so the assumptions implementers make when reading 6437. I think the
 bar for doing so should be high, higher than vague suggestions and hand
 waving which might not be correct.

 Phil

 ----------------

 Source: http://www.ietf.org/mail-archive/web/roll/current/msg08763.html

 From: Xavier Vilajosana <xvilajosana at eecs.berkeley.edu> Date: Fri, 1
 Aug 2014 10:50:15 +0200

 Dear Phil, all,

 I do not completely agree :)

 Let's look at what IPHC does at the LBR when a flow label is elided and
 has to be inflated to be forwarded to the IPv6 network, this standardized
 behaviour is somehow interfering the end to end notion of the flow label
 as the content is being populated at the border of the LLN. For me this is
 not different than changing the scope of the flow label inside the LLN to
 transport RPL information and resetting  it at the LBR once data moves
 outside of the network considering that inside the LLN the flow label has
 no meaning.

 Looking into an article we wrote some time back, "A Realistic Energy
 Consumption Model for TSCH Networks". published in IEEE Sensors

 we know that the charge used by a mote (something similar to telosb) to
 send 127bytes is around 69uC and to receive them is 72uC (considering the
 optimal case where receiver has a guard time of 1ms and the network is
 synchronized).  By using the flow label instead of the RPL extension
 header we save 5bytes which give us a gain 2,71uC per data packet per hop
 when sent and something similar when received (i.e ~5uC in total), this is
 a 8% saving (accounting TX and RX side) considering that motes are always
 using 127bytes packets.

 If we go to a more realistic case where motes send ~50bytes packets, the
 charge needed to send/receive them is something around 27.5uC and being
 able to save 5 bytes represents a 10% saving for the sender and 10% for
 the receiver (~20% saving if we look it overall per hop).
 If we use batteries that power the mote for 5 years, a 20% saving gives us
 ~1 more year which I think is pretty significant.

 regards,
 Xavi

 ----------------

 Source: http://www.ietf.org/mail-archive/web/roll/current/msg08764.html

 From: Carsten Bormann <cabo at tzi.org> Date: Fri, 1 Aug 2014 13:23:44
 +0200

 On 01 Aug 2014, at 10:50, Xavier Vilajosana <xvilajosana at
 eecs.berkeley.edu> wrote:

 >
 > Let's look at what IPHC does at the LBR when a flow label is elided and
 has to be inflated to be forwarded to the IPv6 network, this standardized
 behaviour is somehow interfering the end to end notion of the flow label
 as the content is being populated at the border of the LLN.

 No.  With IPHC, the flow label has always been there, it just was
 transmitted in a very compressed form.

 I think the visceral reaction that most of us have in using the flow label
 as a mesh routing header is that this blurs the layer boundaries.  So much
 for O, R, F, and rank.  Putting the VLAN (“instance ID”) into the packet
 is a significantly larger change, because it essentially extends the IP
 service interface by a VLAN ID.  We normally try to hide IDs of this kind
 below IP.

 Now, I’m not saying any of this new architecture is wrong.  I just think
 what we need to do is discuss this as the architectural change that it is,
 not as a simple optimization.  (The need for some kind of optimization of
 IP-in-IP mesh routing for small-packet IoT applications is pretty obvious
 to me.)

 The other story is that we are retracting RFC 6437 and turning the flow
 label into the “field you may trample on in your lower layers if you have
 a good reason”.  Cynically, one could say this is proper payback for
 designing this field without a compelling purpose and no protocol
 evolution story attached to it.  So the evolution just eats it.  Teachable
 moment.

 Grüße, Carsten

 ----------------

 Source: http://www.ietf.org/mail-archive/web/roll/current/msg08766.html

 From: "Pascal Thubert (pthubert)" Date: Fri, 1 Aug 2014 12:56:40 +0000

 > No.  With IPHC, the flow label has always been there, it just was
 transmitted
 > in a very compressed form.

 My take is that you are both providing angles on a same thing. It does not
 make sense for a LLN node to waste compute power and bandwidth to get a
 random through that is of use only in the core of the internet, should the
 packet ever get there. So the flow label is effectively zero - or
 something locally significant in specific standards, which is not design
 to serve the purpose of load balancing in the core. So in either case, we
 need the root to 'inflate' the zero flow label, or replace it by something
 that fits the core of the Internet. That behavior was not specified so far
 and it should be. This document is covering this particular gap.

 Cheers,

 Pascal

 ----------------

 Source: http://www.ietf.org/mail-archive/web/roll/current/msg08767.html

 From: "Pascal Thubert (pthubert)"  Date: Fri, 1 Aug 2014 13:25:06 +0000

 > I think the visceral reaction that most of us have in using the flow
 label as a
 > mesh routing header is that this blurs the layer boundaries.  So much
 for O,
 > R, F, and rank.  Putting the VLAN ("instance ID") into the packet is a
 > significantly larger change, because it essentially extends the IP
 service
 > interface by a VLAN ID.  We normally try to hide IDs of this kind below
 IP.
 >
 > Now, I'm not saying any of this new architecture is wrong.  I just think
 what
 > we need to do is discuss this as the architectural change that it is,
 not as a
 > simple optimization.  (The need for some kind of optimization of IP-in-
 IP
 > mesh routing for small-packet IoT applications is pretty obvious to me.)
 >
 >
 I agree, Carsten.

 An angle is that we allow for localized usage of the flow label as opposed
 to end-to-end.

 Another is that we allow for different semantics within a local domain, as
 long as the packet that leaves the local domain fits the requirements in
 RFC 6437.

 As you point out, it is worth noting that we include information about
 flow isolation and rules by which a flow will be routed, which is akin to
 Multi-Topology Routing though MTR is based on TOS bits.

 It would be good to design an architecture that encompasses such
 capabilities.

 We'll note that ISA100.11a is shipping with a flow label that contains an
 index to a state (so-called a contract) that is installed on the nodes on
 the way and by and large extends the notion of PHB on a per flow basis.

 Cheers,

 Pascal

 Severity:  In WG Last Call                      |  Resolution:
 Keywords:                                       |

Ticket URL: <http://trac.tools.ietf.org/wg/6man/trac/ticket/5#comment:1>
6man <http://tools.ietf.org/wg/6man/>