CS415 Minithreads Project 5 Overview Adrian Bozdog (Adi)

advertisement
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
Download