Difference between revisions of "GSOC2022PerfectArp"

From Nsnam
Jump to: navigation, search
(Weekly Reports)
(Weekly Reports)
Line 67: Line 67:
 
* Draft Merge Request of static perfect cache with two examples. [https://gitlab.com/nsnam/ns-3-dev/-/merge_requests/1012# link]
 
* Draft Merge Request of static perfect cache with two examples. [https://gitlab.com/nsnam/ns-3-dev/-/merge_requests/1012# link]
  
'''Week3'''
+
'''Week4'''
  
 
Duration: July4 - July10
 
Duration: July4 - July10

Revision as of 20:04, 10 July 2022

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 GSoC 2022 projects

Project Overview

  • Project Name: Perfect ARP and NDP
  • Student: Zhiheng Dong
  • Mentors: Tommaso Pecorella, Ameya Deshpande, Manoj Kumar Rana
  • Google page: https://summerofcode.withgoogle.com/programs/2022/projects/DdUT09pZ
  • Project Goals: The project aims to implement a “Perfect” version of ARP and NDP which produce caches that contain all needed IP address–MAC address mapping. ARP and NDP are sometimes intrusive in high level testing, it will introduce unexpected noise to the simulation (unwanted delays, packet drops, etc.). Perfect ARP/NDP can ensure every ARP/NDP look-up hits the cache so that no ARP messages or Neighbor discovery messages will be generated.
  • Repository: https://gitlab.com/ZhiHengD/ns-3-dev
  • About Me: I’m a first-year computer science graduate student from University of Southern California, US. I got my bachelor’s degree in computer science from University of Wisconsin- Madison, US. I began my graduate study in August 2021. I’m interested in computer networks and have good code experience in C and C++, I also did projects with Python, Java and JavaScript.
  • Project Plan: link

Milestones and Deliverables

Phase 1

Duration: Week 1 to Week 3

  • Enable ipv4 static perfect Arp
  • Enable ipv6 static perfect Ndp
  • Prepare examples and tests for them

Phase 2

Duration: Week 4 to Week 7

  • Enable ipv4 dynamical perfect Arp
  • Enable ipv6 dynamical perfect Ndp
  • Prepare examples and tests for them

Phase 3

Duration: Week 8 to Week 10

  • Handle DAD
  • Enable ipv6 dynamical perfect Ndp
  • Update documentation

Weekly Reports

Week1

Duration: June 13 - June 19

  • Start working on IPv4 perfect Arp.
  • Implemented an approach of creating subclass of ArpL3Protocol and ArpCache to dynamically create shared perfect cache.
  • Handled interface up/down event in that approach.
  • Tested IP neighbor cache flushing behavior about permanent entries in Linux.
  • Determined to implement perfect cache in a more concise way, which is create static perfect cache first after discussing with mentors.

Week2

Duration: June 20 - June 26

  • Implemented static perfect cache on both IPv4 and IPv6 by new helper class.
  • Start adding tests and examples for perfect ARP/NDP
  • Tested DAD behavior when interface disable ARP/NDP in Linux.

Week3

Duration: June 27 - July3

  • Implemented a subclass of Icmpv6L4Protocol for disable DAD
  • Create two example for perfect ARP/NDP, the one is simple csma, another is double wifi. Meet problems when creating global routing in double wifi example, fix by using nix-vector routing instead.
  • Draft Merge Request of static perfect cache with two examples. link

Week4

Duration: July4 - July10

  • Add test for perfect ARP/NDP.
  • Update MR based on comments. Fix mistakes and improve iteration logic. link
  • Continue and refine the work on the dynamical perfect cache. Perfect cache updating will base on IP addresses added/removed instead of link up/down.