SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Introduction to Linux-wpan and
Potential Collaboration
Stefan Schmidt
stefan@osg.samsung.com
Samsung Open Source Group
Agenda
● Relationship to RIOT
● Linux-wpan Project
● Current Collaboration
● Future
Relationship to RIOT
Relationship
● Over the air protocol interoperation
● IEEE 802.15.4 and 6LoWPAN
● Independent implementations
● Interoperability testing
● RIOT native on Linux
Linux-wpan Project
Motivation
● Platforms already running Linux could benefit
from native 15.4 and 6LoWPAN subsystems
● 15.4 transceivers could easily be added to existing
designs
● Battery powered sensors on the other hand are
more likely to run a OS like RIOT
● Example: Google OneHub AP which already comes
with, de-activated, 15.4 hardware
● Example: Ci40 Creator board as home IoT hub
Development Boards
● Development boards with 15.4 hardware
● Ci40 Creator (Keno should have mentioned the
6LoWPAN clickers)
● ARTIK 5/10
● Raspberry Pi with openlabs shield
● Various transceivers hooked up via SPI
● EOL atusb USB transceiver
Linux-wpan Project
● IEEE 802.15.4 and 6LoWPAN support in the mainline Linux
kernel
● Started in 2008 as linux-zigbee project on SourceForge
● First steps of mainlining in 2012
● New project name to avoid confusion: linux-wpan
● New maintainer: Alexander Aring, Pengutronix
● Normal kernel development model
● Patches are posted and reviewed on the mailing list
● Accepted patches find their way through bluetooth-next
towards Linus tree
Linux-wpan Community
● Small community: 1-2 core devs and ~4
additional people for specific drivers
● #linux-wpan on Freenode (~25 people)
● http://vger.kernel.org/vger-lists.html#linux-
wpan (~85 people)
● https://github.com/linux-wpan (no PR model)
● http://wpan.cakelab.org used for wpan-tools
releases and docs
Current Status
● ieee802154 layer with driver for various
transceivers (at86rf2xx, mrf24j40, cc2520,
atusb, adf7242)
● Link Layer Security
● 6LoWPAN with fragmentation and reassembly
(RFC 4944)
● LOWPAN_IPHC and NHC for UDP (RFC 6282)
● Testing between Linux, RIOT and Contiki
Current Collaboration
Development
● Developer discussions about protocol
interpretations
● Test counterpart for new developments
e.g. neighbour discovery
● RIOT native on Linux
Testing
● Linux-wpan on the Raspberry Pi to
test as boarder router for RIOT nodes
● Part of tests run before every RIOT
release
● Packet sniffing
Future
raw802154
● PR #5582, currently reviewed
● With RIOT native on Linux this can be used for
virtual testing on the 15.4 level
● RIOT will use a fake loop-back interface of the
Linux-wpan subsystem through the
raw802154 driver
● Virtual 15.4 communication between RIOT,
Linux and maybe later OpenThread
raw802154 Details
● The RIOT driver will use raw packets over AF_PACKET
● The Linux loop-back interface will be used in promiscuous
mode to avoid address filter problems
●
Acknowledgements are not handled
● Several virtual interfaces can be created with RIOT and
Linux
●
Could also be used to run on a real transceiver interface,
not recommended :-)
Comparison
Feature Linux RIOT
IEEE 802.15.4: data and ACK frames ✔ ✔
IEEE 802.15.4: beacon and MAC command frames ✘ ✘
IEEE 802.15.4: coordinator scenario: scanning, joining, PAN coordinator ✘ ✘
IEEE 802.15.4: link layer security ✔ ✘
6LoWPAN: frame encapsulation, fragmentation, addressing (RFC 4944) ✔ ✔
6LoWPAN: IP header compression (RFC 6282) ✔ ✔
6LoWPAN: next header compression, UDP only (RFC 6282) ✔ ✔
6LoWPAN: generic header compression (RFC 7400) Partial ✘
6LoWPAN: neighbour discovery optimizations (RFC 6775) Partial ✔
Mesh link establishment draft ✘ ✘
Linux-wpan Future
● Implement missing parts of the 15.4 specification
● Beacon and MAC command frame support
● Coordinator support in MAC layer and wpan-tools
● Scanning
● Improve existing drivers and add support for new
hardware
● Neighbour Discovery Optimizations (RFC 6775), started
● Evaluate running OpenThread on top of linux-wpan
RIOT Future
● Only suggestions from my side :-)
● Link Layer Security implementation
● Beacon and MAC command frame support
● PAN scanning and joining
● Support more transceivers
● Simply hook them up to a board over SPI
● Learn from what we had to figure out e.g.
mrf24j40 problems with security enabled frames
Together
● Automate RIOT vs. Linux testing with the
raw802154 driver in RIOT
● Compatible short address handling
● The mesh link establishment draft might
be interesting to implement (OpenThread,
ZigBee IP)
Thank you!
6LoWPAN
● Physical and MAC layer defined by IEEE 802.15.4
from 2003 onwards
● Series of IETF specifications from 2007 onwards
(RFCs 4944, 6282, 7400, etc)
L3 Network Layer
L4 Transport Layer
L1 Physical Layer
L5 Application Layer
L2 Data Link Layer
IP
TCP | UDP | ICMP
Ethernet PHY
Application
Ethernet MAC
IPv6
UDP | ICMPv6
6LoWPAN
IEEE 802.15.4 PHY
Application
IEEE 802.15.4 MAC
Architecture
● ieee802154 and mac802154 handle
the driver and MAC layer (wpan0
interface)
● 6LoWPAN sits on top of the wpan
devices and acts as an adaptation layer
to be used by the normal IPv6 kernel
stack (lowpan0 interface)
● The 6LoWPAN subsystem transparently
handles fragmentation and reassembly
between the different MTUs as well as
compression

Más contenido relacionado

La actualidad más candente

BUD17-405: Building a reference IoT product with Zephyr
BUD17-405: Building a reference IoT product with Zephyr BUD17-405: Building a reference IoT product with Zephyr
BUD17-405: Building a reference IoT product with Zephyr
Linaro
 
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
LAS16-500: The Rise and Fall of Assembler and the VGIC from HellLAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
Linaro
 

La actualidad más candente (20)

6LoWPAN: An Open IoT Networking Protocol
6LoWPAN: An Open IoT Networking Protocol6LoWPAN: An Open IoT Networking Protocol
6LoWPAN: An Open IoT Networking Protocol
 
IoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivityIoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivity
 
Run Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT NetworkRun Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT Network
 
IoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilityIoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT Interoperability
 
Introduction to IoT.JS
Introduction to IoT.JSIntroduction to IoT.JS
Introduction to IoT.JS
 
SOSCON 2016 JerryScript
SOSCON 2016 JerryScriptSOSCON 2016 JerryScript
SOSCON 2016 JerryScript
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
 
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesTizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
 
Clang: More than just a C/C++ Compiler
Clang: More than just a C/C++ CompilerClang: More than just a C/C++ Compiler
Clang: More than just a C/C++ Compiler
 
A Close Look at ARM Code Size
A Close Look at ARM Code SizeA Close Look at ARM Code Size
A Close Look at ARM Code Size
 
BUD17-405: Building a reference IoT product with Zephyr
BUD17-405: Building a reference IoT product with Zephyr BUD17-405: Building a reference IoT product with Zephyr
BUD17-405: Building a reference IoT product with Zephyr
 
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
LAS16-500: The Rise and Fall of Assembler and the VGIC from HellLAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
 
LAS16-507: LXC support in LAVA
LAS16-507: LXC support in LAVALAS16-507: LXC support in LAVA
LAS16-507: LXC support in LAVA
 
George Grey Welcome Keynote - BUD17-100K1
George Grey Welcome Keynote - BUD17-100K1George Grey Welcome Keynote - BUD17-100K1
George Grey Welcome Keynote - BUD17-100K1
 
Framework for IoT Interoperability
Framework for IoT InteroperabilityFramework for IoT Interoperability
Framework for IoT Interoperability
 
Where is LLVM Being Used Today?
Where is LLVM Being Used Today? Where is LLVM Being Used Today?
Where is LLVM Being Used Today?
 
Upstreaming 101 - SFO17-TR02
Upstreaming 101 - SFO17-TR02Upstreaming 101 - SFO17-TR02
Upstreaming 101 - SFO17-TR02
 
Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102
 
Rapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USBRapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USB
 
LAS16-200: SCMI - System Management and Control Interface
LAS16-200:  SCMI - System Management and Control InterfaceLAS16-200:  SCMI - System Management and Control Interface
LAS16-200: SCMI - System Management and Control Interface
 

Destacado (7)

Liste gabes
Liste gabesListe gabes
Liste gabes
 
Tizen Connected with IoTivity
Tizen Connected with IoTivityTizen Connected with IoTivity
Tizen Connected with IoTivity
 
Toward "OCF Automotive" profile
Toward "OCF Automotive" profileToward "OCF Automotive" profile
Toward "OCF Automotive" profile
 
OIC AGL Collaboration
OIC AGL CollaborationOIC AGL Collaboration
OIC AGL Collaboration
 
IoTivity: From Devices to the Cloud
IoTivity: From Devices to the CloudIoTivity: From Devices to the Cloud
IoTivity: From Devices to the Cloud
 
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxIoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
 
Ejemplo de primaria
Ejemplo de primariaEjemplo de primaria
Ejemplo de primaria
 

Similar a Introduction to Linux-wpan and Potential Collaboration

What_s_New_in_OpenShift_Container_Platform_4.6.pdf
What_s_New_in_OpenShift_Container_Platform_4.6.pdfWhat_s_New_in_OpenShift_Container_Platform_4.6.pdf
What_s_New_in_OpenShift_Container_Platform_4.6.pdf
chalermpany
 

Similar a Introduction to Linux-wpan and Potential Collaboration (20)

6LoWPAN: An open IoT Networking Protocol
6LoWPAN: An open IoT Networking Protocol6LoWPAN: An open IoT Networking Protocol
6LoWPAN: An open IoT Networking Protocol
 
Linux Kernel Status Report for IEEE 802.15.4 & 6LoWPAN
Linux Kernel Status Report for IEEE 802.15.4 & 6LoWPANLinux Kernel Status Report for IEEE 802.15.4 & 6LoWPAN
Linux Kernel Status Report for IEEE 802.15.4 & 6LoWPAN
 
CentOS NFV SIG Introduction and Update
CentOS NFV SIG Introduction and UpdateCentOS NFV SIG Introduction and Update
CentOS NFV SIG Introduction and Update
 
SFO15-102:ODP Project Update
SFO15-102:ODP Project UpdateSFO15-102:ODP Project Update
SFO15-102:ODP Project Update
 
BKK16-106 ODP Project Update
BKK16-106 ODP Project UpdateBKK16-106 ODP Project Update
BKK16-106 ODP Project Update
 
LCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at LinaroLCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at Linaro
 
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
 
LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2
 
RootStack - Devfactory
RootStack - DevfactoryRootStack - Devfactory
RootStack - Devfactory
 
What_s_New_in_OpenShift_Container_Platform_4.6.pdf
What_s_New_in_OpenShift_Container_Platform_4.6.pdfWhat_s_New_in_OpenShift_Container_Platform_4.6.pdf
What_s_New_in_OpenShift_Container_Platform_4.6.pdf
 
Cloud native IPC for Microservices Workshop @ Containerdays 2022
Cloud native IPC for Microservices Workshop @ Containerdays 2022Cloud native IPC for Microservices Workshop @ Containerdays 2022
Cloud native IPC for Microservices Workshop @ Containerdays 2022
 
P4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptxP4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptx
 
Summit 16: ARM Mini-Summit - OpenDataPlane Monarch Release - Linaro
Summit 16: ARM Mini-Summit -   OpenDataPlane Monarch Release - LinaroSummit 16: ARM Mini-Summit -   OpenDataPlane Monarch Release - Linaro
Summit 16: ARM Mini-Summit - OpenDataPlane Monarch Release - Linaro
 
DPDK In Depth
DPDK In DepthDPDK In Depth
DPDK In Depth
 
DPDK summit 2015: It's kind of fun to do the impossible with DPDK
DPDK summit 2015: It's kind of fun  to do the impossible with DPDKDPDK summit 2015: It's kind of fun  to do the impossible with DPDK
DPDK summit 2015: It's kind of fun to do the impossible with DPDK
 
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro NakajimaDPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
 
Irati goals and achievements - 3rd RINA Workshop
Irati goals and achievements - 3rd RINA WorkshopIrati goals and achievements - 3rd RINA Workshop
Irati goals and achievements - 3rd RINA Workshop
 
BKK16-210 Migrating to the new dispatcher
BKK16-210 Migrating to the new dispatcherBKK16-210 Migrating to the new dispatcher
BKK16-210 Migrating to the new dispatcher
 
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
 
LF_OVS_17_State of the OVN
LF_OVS_17_State of the OVNLF_OVS_17_State of the OVN
LF_OVS_17_State of the OVN
 

Más de Samsung Open Source Group

Más de Samsung Open Source Group (9)

The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)
 
Easy IoT with JavaScript
Easy IoT with JavaScriptEasy IoT with JavaScript
Easy IoT with JavaScript
 
Spawny: A New Approach to Logins
Spawny: A New Approach to LoginsSpawny: A New Approach to Logins
Spawny: A New Approach to Logins
 
IoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and BeyondIoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and Beyond
 
IoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorialIoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorial
 
GENIVI + OCF Cooperation
GENIVI + OCF CooperationGENIVI + OCF Cooperation
GENIVI + OCF Cooperation
 
Open Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate StrategyOpen Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate Strategy
 
IoTivity Connects RVI from GENIVI's Develoment Platform to Tizen devices
IoTivity Connects RVI from GENIVI's Develoment Platform to Tizen devicesIoTivity Connects RVI from GENIVI's Develoment Platform to Tizen devices
IoTivity Connects RVI from GENIVI's Develoment Platform to Tizen devices
 
IoTivity on Tizen: How to
IoTivity on Tizen: How toIoTivity on Tizen: How to
IoTivity on Tizen: How to
 

Último

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Último (20)

AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 

Introduction to Linux-wpan and Potential Collaboration

  • 1. Introduction to Linux-wpan and Potential Collaboration Stefan Schmidt stefan@osg.samsung.com Samsung Open Source Group
  • 2. Agenda ● Relationship to RIOT ● Linux-wpan Project ● Current Collaboration ● Future
  • 4. Relationship ● Over the air protocol interoperation ● IEEE 802.15.4 and 6LoWPAN ● Independent implementations ● Interoperability testing ● RIOT native on Linux
  • 6. Motivation ● Platforms already running Linux could benefit from native 15.4 and 6LoWPAN subsystems ● 15.4 transceivers could easily be added to existing designs ● Battery powered sensors on the other hand are more likely to run a OS like RIOT ● Example: Google OneHub AP which already comes with, de-activated, 15.4 hardware ● Example: Ci40 Creator board as home IoT hub
  • 7. Development Boards ● Development boards with 15.4 hardware ● Ci40 Creator (Keno should have mentioned the 6LoWPAN clickers) ● ARTIK 5/10 ● Raspberry Pi with openlabs shield ● Various transceivers hooked up via SPI ● EOL atusb USB transceiver
  • 8. Linux-wpan Project ● IEEE 802.15.4 and 6LoWPAN support in the mainline Linux kernel ● Started in 2008 as linux-zigbee project on SourceForge ● First steps of mainlining in 2012 ● New project name to avoid confusion: linux-wpan ● New maintainer: Alexander Aring, Pengutronix ● Normal kernel development model ● Patches are posted and reviewed on the mailing list ● Accepted patches find their way through bluetooth-next towards Linus tree
  • 9. Linux-wpan Community ● Small community: 1-2 core devs and ~4 additional people for specific drivers ● #linux-wpan on Freenode (~25 people) ● http://vger.kernel.org/vger-lists.html#linux- wpan (~85 people) ● https://github.com/linux-wpan (no PR model) ● http://wpan.cakelab.org used for wpan-tools releases and docs
  • 10. Current Status ● ieee802154 layer with driver for various transceivers (at86rf2xx, mrf24j40, cc2520, atusb, adf7242) ● Link Layer Security ● 6LoWPAN with fragmentation and reassembly (RFC 4944) ● LOWPAN_IPHC and NHC for UDP (RFC 6282) ● Testing between Linux, RIOT and Contiki
  • 12. Development ● Developer discussions about protocol interpretations ● Test counterpart for new developments e.g. neighbour discovery ● RIOT native on Linux
  • 13. Testing ● Linux-wpan on the Raspberry Pi to test as boarder router for RIOT nodes ● Part of tests run before every RIOT release ● Packet sniffing
  • 15. raw802154 ● PR #5582, currently reviewed ● With RIOT native on Linux this can be used for virtual testing on the 15.4 level ● RIOT will use a fake loop-back interface of the Linux-wpan subsystem through the raw802154 driver ● Virtual 15.4 communication between RIOT, Linux and maybe later OpenThread
  • 16. raw802154 Details ● The RIOT driver will use raw packets over AF_PACKET ● The Linux loop-back interface will be used in promiscuous mode to avoid address filter problems ● Acknowledgements are not handled ● Several virtual interfaces can be created with RIOT and Linux ● Could also be used to run on a real transceiver interface, not recommended :-)
  • 17. Comparison Feature Linux RIOT IEEE 802.15.4: data and ACK frames ✔ ✔ IEEE 802.15.4: beacon and MAC command frames ✘ ✘ IEEE 802.15.4: coordinator scenario: scanning, joining, PAN coordinator ✘ ✘ IEEE 802.15.4: link layer security ✔ ✘ 6LoWPAN: frame encapsulation, fragmentation, addressing (RFC 4944) ✔ ✔ 6LoWPAN: IP header compression (RFC 6282) ✔ ✔ 6LoWPAN: next header compression, UDP only (RFC 6282) ✔ ✔ 6LoWPAN: generic header compression (RFC 7400) Partial ✘ 6LoWPAN: neighbour discovery optimizations (RFC 6775) Partial ✔ Mesh link establishment draft ✘ ✘
  • 18. Linux-wpan Future ● Implement missing parts of the 15.4 specification ● Beacon and MAC command frame support ● Coordinator support in MAC layer and wpan-tools ● Scanning ● Improve existing drivers and add support for new hardware ● Neighbour Discovery Optimizations (RFC 6775), started ● Evaluate running OpenThread on top of linux-wpan
  • 19. RIOT Future ● Only suggestions from my side :-) ● Link Layer Security implementation ● Beacon and MAC command frame support ● PAN scanning and joining ● Support more transceivers ● Simply hook them up to a board over SPI ● Learn from what we had to figure out e.g. mrf24j40 problems with security enabled frames
  • 20. Together ● Automate RIOT vs. Linux testing with the raw802154 driver in RIOT ● Compatible short address handling ● The mesh link establishment draft might be interesting to implement (OpenThread, ZigBee IP)
  • 22. 6LoWPAN ● Physical and MAC layer defined by IEEE 802.15.4 from 2003 onwards ● Series of IETF specifications from 2007 onwards (RFCs 4944, 6282, 7400, etc) L3 Network Layer L4 Transport Layer L1 Physical Layer L5 Application Layer L2 Data Link Layer IP TCP | UDP | ICMP Ethernet PHY Application Ethernet MAC IPv6 UDP | ICMPv6 6LoWPAN IEEE 802.15.4 PHY Application IEEE 802.15.4 MAC
  • 23. Architecture ● ieee802154 and mac802154 handle the driver and MAC layer (wpan0 interface) ● 6LoWPAN sits on top of the wpan devices and acts as an adaptation layer to be used by the normal IPv6 kernel stack (lowpan0 interface) ● The 6LoWPAN subsystem transparently handles fragmentation and reassembly between the different MTUs as well as compression