CS415 Minithreads Project 5 Overview Adrian Bozdog (Adi) adrianb@cs.cornell.edu What you have to do Implement Ad-hoc networking layer a version of Dynamic Source Routing alg Communication layers should use miniroute_send_pkt instead of network_send_pkt Routing layer can use network_send_pkt A new network_handler routine should deal with all packets There may be packets (control routing packets, packets for other machines) that are not for the current machine Forwards packets that contain data for the current machine to the old network handler CS414 Minithreads overview 2 Routing layer Data may be sent through intermediate nodes A source uses a routing path to every destination Processes three types of routing packets: Data packets Route Discovery packets Route Reply packets CS414 Minithreads overview User application TCP-like protocol UDP-like protocol Routing 3 Network Routing packets (1) Data packets: Contain the path to the destination The intermediate nodes should not involve communication layers (i.e TCP, UDP layers) Route Discovery packets: Establish routes from sources to destinations Flood the network until the destination is reached Every packet is flooded for at most MAX_ROUTE_LENGTH – 1 Every machine adds itself to the route path before broadcasting the network CS414 Minithreads overview 4 Routing packets (2) Route Reply packets: Used to give route information to the sources Send by destinations back to the sources Flooded through the network until they are broadcasted MAX_ROUTE_LENGTH times or reach the sources Do not change the routes established by the Route Discovery packets CS414 Minithreads overview 5 Routing cache Avoid discovering a route to the destination for every sent packet Keeps SIZE_OF_ROUTE_CACHE routes to destinations A cached route is used only if it is not older than 3 seconds Otherwise run the route discovery protocol to get the route to destination CS414 Minithreads overview 6 Code change/addition Changes to network.h Set BCAST_ENABLED to 1 Set BCAST_ADDRESS 192.168.1.255 for ad-hoc network (see instructions for setting an ad-hoc network) x.y.z.255 for CSUGLAB For debugging purposes Set BCAST_TOPOLOGY_FILE Provide a topology file (see project description) Used only in CSUGLAB (not on Jornada/Tablets) Add miniroute.h and miniroute.c to your project CS414 Minithreads overview 7 Implementation hints There must be at most a single routing discovery process for any destination at any time Multiple threads should not trigger multiple routing discovery processes for the same destination Only one cache entry for each destination Use the route reply packets with the latest information (use seq_no for this) Use the structures and data-types provided in miniroute.h Allow other machines that run other student’s code to participate in the routing protocol CS414 Minithreads overview 8 Test Cases Use any test from previous steps (project 3 and 4) Write new tests reading application data from the terminal Add read.c, read.h and read_private.h Include “read_private.h” to minithread.c Add miniterm_initialize to minithread_system_initialize Test cases should use miniterm_read() to read data from the terminal CS414 Minithreads overview 9 Tablets Can compile and run tests like CSUGLAB desktops Can compile code for Jornada Can synchronize with Jornada using ActiveSync Run tests between Jornada and the Tablet Specify the TCP/IP properties for the Tablet in the same way as for Jornada for ad-hoc network Specify an Ip address based on your group Set Subnet Mask to 255.255.255.0 Set Gateway to 192.168.1.254 Install the software used to compile code for Jornada ( see “Tips for running programs on Jornada” on CMS) Install Handheld PC 2000 SDK CS414 Minithreads overview 10 Project 5 presentation Demo slots : Tuesday April 15 between 6 and 9 pm Wednesday April 16 between 6 and 9 pm Every group has a slot of 10 minutes A test of my choice should be compiled and run between Jornada machines / Tablet should be compiled and run on CSUG desktops Set a DEBUG option in the routing layer used to print information about messages received by the routing layer You can sign for a slot on a sign-up sheet starting from Thursday afternoon (4119 Upson) CS414 Minithreads overview 11