Difference between revisions of "NSOC2020Routing"

From Nsnam
Jump to: navigation, search
 
(2 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
Back to [[Summer_Projects#ns-3_Summer_of_Code_2020 | NSoC 2020 projects]]
 
Back to [[Summer_Projects#ns-3_Summer_of_Code_2020 | NSoC 2020 projects]]
  
= Project Overview =
+
== Routing for community wireless ==
 
+
* '''Project Name:''' Routing for community wireless
+
 
* '''Student:''' [mailto:rrbothra@gmail.com Rahul Bothra]
 
* '''Student:''' [mailto:rrbothra@gmail.com Rahul Bothra]
* '''Mentors:''' [mailto:tomh@tomh.org Tom Henderson], others TBD
+
* '''Mentor:''' [mailto:tomh@tomh.org Tom Henderson]
* '''Project Goals:''' This project aims to develop models and evaluation programs related to routing in current community wireless networks.  [https://www.open-mesh.org/projects/batman-adv/wiki/BATMAN_IV batman-adv] for [https://freifunk.net/ Freifunk.net] is the initial target.
+
 
* '''Repository:''' https://gitlab.com/pro-panda/ns-3-dev/
 
* '''Repository:''' https://gitlab.com/pro-panda/ns-3-dev/
* '''About:''' https://pro-panda.github.io/about/. TL;DR -  
+
* '''About:''' https://pro-panda.github.io/about/
 +
: TL;DR - Rahul works as a Software Engineer at Microsoft. He graduated from BITS Pilani, India in Dec 2019. His area of interest is Networks and Systems.
 +
* '''Abstract:''' This project aims to develop models and evaluation programs related to routing in current community wireless networks.  [https://www.open-mesh.org/projects/batman-adv/wiki/BATMAN_IV batman-adv] for [https://freifunk.net/ Freifunk.net] is the initial target.
 +
 
 +
 
 +
== Project Overview ==
 +
: We meet Thursdays 3:30 PM GMT at https://meet.google.com/tam-izjx-wsg.
 +
: The tentative duration for this project is <s>3</s> 4 months.
 +
 
 +
'''TODOs''':
 +
* [https://www.open-mesh.org/doc/batman-adv/index.html Specs] are outdated, contribute towards fixing them as gaps are found.
 +
* Discuss the use of Tags with Mentors.
 +
 
 +
'''Next Milestone''':
 +
* Have a fully functional neighbor discovery taking into account the entry and exit of nodes from the mesh.
 +
* Define test cases which should cover all possible features and conditions.
 +
* Get feedback for completeness of test cases and discovery protocol from the batadv community.
 +
 
 +
 
 +
----
 +
 
 +
'''15th June - 30th June''':
 +
: Summary - Understanding the batadv-protocol and ns-3 code structure.
 +
* Read B.A.T.M.A.N. [https://tools.ietf.org/html/draft-wunderlich-openmesh-manet-routing-00 IETF draft].
 +
* Read Thesis on analysis and simulation of a Freifunk network using batman - [https://thardes.de/wp-content/uploads/2016/03/thesis.pdf]
 +
* Read documentation and specs - [https://www.open-mesh.org/doc/batman-adv/index.html]. Understood that the IETF draft is highly outdated and should be ignored.
 +
* Went through the ns-3 source code, the way models are designed, and how should the batman module be designed.
 +
 
 +
'''1st July - 15th July''':
 +
: Summary - Implementing the basic structure of the batman module.
 +
* Wrote definitions for [https://gitlab.com/pro-panda/ns-3-dev/-/blob/batman/master/src/batman/model/batman-header.h packet headers].
 +
* Wrote [https://gist.github.com/pro-panda/9d95ab9fa20162a98cdb5391921afcb4 script] to simulate batman on virtual namespaces on a Linux machine.
 +
* Started writing protocol definition and defining structures to maintain state on the nodes. Discussion with Tom helped in understanding that this should plugin itself to the mesh module.
 +
 
 +
 
 +
'''16th July - 25th July''':
 +
: LEAVE
  
: Rahul works as a Software Engineer at Microsoft. He graduated from BITS Pilani, India in Dec 2019.<br>
+
'''25th July - 31st July''':
: He volunteers with Sugar Labs - contributing code and mentoring in Google open-source programs.<br>
+
: Summary - Implementing protocol and state definitions as a routing protocol plugin to the mesh protocol.
: His area of interest is Networks and Systems.
+
* Wrote definitions for [https://gitlab.com/pro-panda/ns-3-dev/-/merge_requests/4 batman helper].
 +
* Rewriting definitions for batman protocol and state.

Latest revision as of 15:30, 30 July 2020

Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects

Installation - Troubleshooting - User FAQ - HOWTOs - Samples - Models - Education - Contributed Code - Papers

Back to NSoC 2020 projects

Routing for community wireless

TL;DR - Rahul works as a Software Engineer at Microsoft. He graduated from BITS Pilani, India in Dec 2019. His area of interest is Networks and Systems.
  • Abstract: This project aims to develop models and evaluation programs related to routing in current community wireless networks. batman-adv for Freifunk.net is the initial target.


Project Overview

We meet Thursdays 3:30 PM GMT at https://meet.google.com/tam-izjx-wsg.
The tentative duration for this project is 3 4 months.

TODOs:

  • Specs are outdated, contribute towards fixing them as gaps are found.
  • Discuss the use of Tags with Mentors.

Next Milestone:

  • Have a fully functional neighbor discovery taking into account the entry and exit of nodes from the mesh.
  • Define test cases which should cover all possible features and conditions.
  • Get feedback for completeness of test cases and discovery protocol from the batadv community.



15th June - 30th June:

Summary - Understanding the batadv-protocol and ns-3 code structure.
  • Read B.A.T.M.A.N. IETF draft.
  • Read Thesis on analysis and simulation of a Freifunk network using batman - [1]
  • Read documentation and specs - [2]. Understood that the IETF draft is highly outdated and should be ignored.
  • Went through the ns-3 source code, the way models are designed, and how should the batman module be designed.

1st July - 15th July:

Summary - Implementing the basic structure of the batman module.
  • Wrote definitions for packet headers.
  • Wrote script to simulate batman on virtual namespaces on a Linux machine.
  • Started writing protocol definition and defining structures to maintain state on the nodes. Discussion with Tom helped in understanding that this should plugin itself to the mesh module.


16th July - 25th July:

LEAVE

25th July - 31st July:

Summary - Implementing protocol and state definitions as a routing protocol plugin to the mesh protocol.
  • Wrote definitions for batman helper.
  • Rewriting definitions for batman protocol and state.