This page contains late breaking announcements from Dr. Hollingsworth and Joseph Dunnick (the TA). Please check this page a couple of times a week.
The Project proposal first draft is now due on Friday 10/24/97 at 6:00 PM in Dr. Hollingsworth's office. We extended the project proposal to allow more time to finish the class discussion of the Network layer.
Bit pack the VPI, CVI, PT, and CLP fields into 4 bytes. Create a char array of 49 bytes. One byte can hold the checksum field. Even though the sizeof function will specify 56 bytes, pass a size of 53 to the garbler, and everything should work.
You may assume there will be no more than 48 nodes running at once.
You may assume the maximum node number is 256. (one byte's worth)
You may NOT assume sequential numbering of the nodes.
You may NOT assume the ID number of the ndoes will be between 0 and 48.
This means that some groups will have to consider the possibility of multi-cell
routing signals.
Here is some advice on the project. These are not requirements.
Integers (and probably other primative data types longer than 1 byte) have to be used on integer boundaries, aka only on every xth address where x is the size of your data type. If you see an unaligned access error, it probably means you have a char array and you are trying to cast it to an int (or other data type) inbetween an int boundary. For example: char data[48]; *(int *)(char + 2) = 3; would be the sort of thing that would cause an alignment problem. The way to fix this is to use bcopy to extract your data or (probably easier) pad your data structures to make them byte-aligned. Note: Your packet struct is probably not causing the alignment if you followed the bit packing information. Note 2: Different architectures have different alignment requirements.
The final verdict: You may use garb_sendto_routing() to send your signal cells, with a zero probablity of garbling or dropping. HOWEVER, if you can support signal cells using plain old garb_sendto_normal(), this will be worth more points.