  Over the past 10 years, low-power wireless networks have transitioned to
supporting IPv6 connectivity through 6LoWPAN, a set of standards which specify
how to aggressively compress IPv6 packets over low-power wireless links such as
802.15.4.
  We find that different low-power IPv6 stacks are unable to communicate using
6LoWPAN, and therefore IP, due to design tradeoffs between code size and energy
efficiency. We argue that applying traditional protocol design principles to
low-power networks is responsible for these failures, in part because receivers
must accommodate a wide range of senders.
  Based on these findings, we propose three design principles for Internet
protocols on low-power networks. These principles are based around the
importance of providing flexible tradeoffs between code size and energy
efficiency. We apply these principles to 6LoWPAN and show that the resulting
design of the protocol provides developers a wide range of tradeoff points
while allowing implementations with different choices to seamlessly
communicate.
