{-# LANGUAGE OverloadedStrings #-} -- | -- Module: NetSpider.RPL -- Description: NetSpider data model and utility for RPL networks -- Maintainer: Toshio Ito -- -- This module defines NetSpider data model and utility for RPL -- networks. -- For usage example, see [net-spider-rpl-cli](https://hackage.haskell.org/package/net-spider-rpl-cli) package. -- -- RPL ( [IPv6 Routing Protocol for Low-Power and Lossy Networks, RFC 6550](https://tools.ietf.org/html/rfc6550) ) -- is a routing protocol for small wireless devices. Each node -- independently exchanges routing information with its neighbors over -- low-power wireless channels. Using those information, the nodes -- form one or more network topologies called DODAG -- (Destination-Oriented Directed Acyclic Graph) in a distributed -- manner. -- -- The module "NetSpider.RPL.DIO" defines NetSpider data model about -- DIO (DODAG Information Object). DIO is a control packet of RPL that -- is necessary to form upward routes. 'FoundNodeDIO' type defines -- DIO-specific information such as \"rank\". You can input -- 'FoundNodeDIO's to NetSpider database to construct the upward -- network. -- -- The "NetSpider.RPL.DAO" defines another data model -- 'FoundNodeDAO'. DAO (Destination Advertisement Object) is a control -- packet of RPL that is necessary to form downward -- routes. 'FoundNodeDAO' type defines DAO-specific information. You -- can input 'FoundNodeDAO' to NetSpider database to construct the -- downward network. -- -- Because network topologies maintained in 'FoundNodeDIO' and -- 'FoundNodeDAO' can be different, you have to use different node IDs -- for them. The module "NetSpider.RPL.FindingID" exports 'FindingID' -- that distingushes those two types of topologies. The DIO and DAO -- topologies are obtained from the NetSpider database as different -- Snapshot graphs. -- -- The two types of Snapshot graphs can be combined together by -- upgrading their internal data. "NetSpider.RPL.Combined" module -- provides functions to combine those graphs. -- -- The module "NetSpider.RPL.ContikiNG" (not re-exported by this -- module) is a utility module to make 'FoundNodeDIO's and -- 'FoundNodeDAO's. It defines utility functions to read and parse log -- files generated by Contiki-NG applications. -- [Contiki-NG](http://contiki-ng.org/) is a tiny operating system for -- wireless devices that supports RPL. -- module NetSpider.RPL ( module NetSpider.RPL.FindingID, module NetSpider.RPL.DIO, module NetSpider.RPL.DAO, module NetSpider.RPL.Combined ) where import NetSpider.RPL.FindingID import NetSpider.RPL.DIO import NetSpider.RPL.DAO import NetSpider.RPL.Combined