CS 395 Project Checkpoint #1

This first checkpoint is primarily designed to get you started, and ensure that you work with all of the pieces of code I've provided. (See ckpt1.zip.)

Additional Simplifications

For this checkpoint, we'll ignore all fields in the MAC frame except for the data field. The other fields must still be sent and received, but they can be left blank. Also, since we're ignoring the control information and therefore the frame type, we will assume that all frames are data frames. We will also ignore the CSMA/CA mechanism for the time being. Stations will send data as soon as MAC_Send() is called, without watching for channel use or otherwise attempting to avoid collisions.


Download ckpt1.zip as a starting point. Familiarize yourself with the interface to the RF physical layer by reading rf.h and the RF description. Read the description of the MAC interface in the project document before proceeding. You might also want to run the MACtest application that's included in the .zip file to see how the finished product should behave for this checkpoint. Once you're comfortable with all of the pieces, create a mac.c file and implement all of the routines listed in the mac.h file. Make sure that you enforce the limits on the maximum number of bytes that can be sent, and be careful not to overwrite the user's buffer during a receive. When data arrives from the RF layer, your MAC implementation must store it somewhere so that it can be delivered at the next call to MAC_Recv. For the purposes of this checkpoint, it is only necessary to store the latest frame. Thus, if several frames arrive before the call to MAC_Recv, all but the last will be lost.

Brad Richards 2002