1 / 26

Porting the (  , t) protocol to the Sharp Zaurus PDA

Porting the (  , t) protocol to the Sharp Zaurus PDA. Dr. Taieb Znati Anandha Gopalan Jeff Leitman. May 2006. Goal Setup Review of DDCA & ICRP DDCA Timer Problem & Solution BitBake Problems with Netfilter & libipq Solution: Modified ICRP Demo. Overview. Goal .

bill
Download Presentation

Porting the (  , t) protocol to the Sharp Zaurus PDA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Porting the (, t) protocol to the Sharp Zaurus PDA Dr. Taieb Znati Anandha Gopalan Jeff Leitman May 2006

  2. Goal Setup Review of DDCA & ICRP DDCA Timer Problem & Solution BitBake Problems with Netfilter & libipq Solution: Modified ICRP Demo Overview

  3. Goal • Port the (,t) protocol to the PDA • Provide routing protocol for net applications • PDA’s are more portable vs. laptop, especially for first responders

  4. Setup • Sharp Zaurus SL-5500 • 206MHz SA-1100 StrongARM • 64MB DRAM and 16MB Flash • OpenZaurus 3.5.4 • Linux kernel version: 2.4.18 • Build Tool: BitBake

  5. Review: DDCA & ICRP • Very brief review

  6. Clustering Algorithm Example Cluster creation Join-Timer Expiration Create (Orphan) Cluster(s) 2 Join Req 1 4 0 3 Join-Timer Expiration Broadcast Join-Request Restart Join-Timer 5 Nodes with lowest identifiers or that are disconnected create new clusters---others continue seeking feasible cluster.

  7. Clustering Algorithm Example Link and node activation Adopt-Timer Expiration---Node-0, Node-5, and Node-4 Send Adopt-Request C1 2 Adopt Req 1 4 0 3 Adopt Req Join Req Adopt Req 6 5 Node Activation Send Join-Request Node movement results in a new link between node-0 and node-5.

  8. Clustering Algorithm Example Response phase Send/Receive Adopt-Response C1 2 Adopt Resp 1 4 0 3 Join Resp Adopt Resp 6 5 Send/Receive Join-Response Node-4 receives a join-request and, hence, abandons its attempt to seek adoption---responding to Node-6’s join-request instead.

  9. Clustering Algorithm Example Cluster expansion C1 2 1 Routing Update 4 0 3 6 5 Join-Timer Expiration Join Cluster Having received responses before timing out, Node-5 and Node-6 join clusters.

  10. Clustering Algorithm Example Cluster disconnection Cluster Disconnection Send Join-Request C1 2 1 4 0 3 C4 Join Req 6 5 Link failure results in Node-0 and Node-5 detecting a cluster disconnection. Each node reverts to un-clustered state.

  11. Clustering Algorithm Example Response phase C1 2 Receive Join Response 1 4 0 3 C4 Join Resp 6 5 Node-0 is successful in its join request, whereas, Node-5 is totally disconnected.

  12. Clustering Algorithm Example Adopt response phase C1 2 1 4 0 3 C4 Adopt Resp 6 5 Receive Adopt-Response Node-5’s request is received by two nodes in the same cluster---each responds with an ‘adoption invitation’.

  13. Clustering Algorithm Example Cluster expansion by adoption C1 2 Join-Timer Expiration Join Cluster 1 4 0 3 C4 Routing Update 6 5 On timer expiration Node-5 joins cluster C1 by adoption.

  14. Approach • Keep same code where possible • More efficient to use existing code rather than re-write from scratch • Make sure the kernel has the features we need: • Multiple timers (for DDCA protocol) • Netfilter hooks (for dynamic, reactive version of ICRP) • libipq (supporting library / data structure for ICRP)

  15. Timer Problem • Need three timers for DDCA: • JOIN TIMER • ADOPT TIMER • Creating & modifying clusters • HELLO TIMER • Keep-alive for existing connections • Kernel version: Embedix 2.4.18-rmk7-pxa3 • Latest kernel that will run on the Zaurus • doesn’t support more than one system timer without patch (that does not exist for this version)

  16. Timer Solution • DDCA Timer Mask implemented • Simulates three timers with one system timer • FIFO Queue • Each element of the queue contains: • Which Timer (enumerated type) • Time To Live (i.e., seconds until expiration)

  17. DDCATimerMask: Example t=1

  18. DDCATimerMask: Example t=1 t=2

  19. DDCATimerMask: Example t=1 t=2 t=3

  20. DDCATimerMask: Example t=1 t=2 t=3 t=4

  21. BitBake: To Compile the Kernel • Bitbake is OpenEmbedded.org’s build system for embedded devices • Use to compile different Linux kernels for a variety of PDAs • easier to use (in theory) than manually using tools like patch and make

  22. BitBake: Trouble in the Kitchen • Slow & Large • Lack of adequate documentation • sparse logs • no error codes / docs • Why are we using this again? • OpenZaurus won’t boot non-OE compiled kernels • No luck with manually compiled kernels • Tried multiple different kernel versions & patches • None of these worked

  23. Netfilter & libipq • Netfilter hooks not working correctly • mismatched versions of libraries (rmk7 vs arm-gcc libraries) • Package manager tools not working correctly • apt-get and yum refuse to function properly on Pitt’s network • Must manually resolve these dependencies • Libipq’s ipq_list needed debugging

  24. Solution: User-space ICRP • Operate completely in user-space • pro-active table-driven protocol via HELLO messages • No need to modify kernel • Skip over libipq & netfilter requirement • Trade-off: increased message size • Each HELLO message is slightly larger to accommodate routing table info • Frequency of messaging remains the same

  25. Demo • Cluster formation / interaction • Multi-hop Routing • SSH / SCP over multi-hop path

  26. Thank you! • Questions?

More Related