Project 3: chirouter¶
In this project you will be implementing a simple IP router capable of routing IPv4 datagrams between multiple networks. This router will have a static routing table, so you will not have to deal with implementing a routing protocol like RIP or OSPF; instead, the project will focus on the routing of IP datagrams. While, at a high level, this just involves receiving IP datagrams and figuring out what interface they should be sent on, this requires building additional functionality before you can actually start routing IP datagrams.
Please refer to the following documents to complete this project:
Take into account that this project requires using a network simulator that needs to be run with root privileges on a Linux machine. For students using Windows or Mac, we provide a Docker container that you can use to run the network simulator on your computer ()
Submission Timeline¶
This project has one required submission, and an optional resubmission:
Submission |
Requirements |
Due Date |
---|---|---|
Project 3 |
chirouter (entire project) |
Wednesday, May 15th, 8pm |
Resubmission (Optional) |
You may submit a revised version to improve your Completeness score only |
Friday, May 24th, 8pm |
Please see Project 3 rubric for more details on how each submission will be graded.
Initializing your Project 3 Repository¶
Make sure that you have read the Getting Started page as well as the the Project Registration instructions.
One-time setup instructions
Only one team member needs to run these commands. Create an empty directory and, inside that
directory run the following commands. In the commands below, $REPO_URL
refers to the
SSH URL of your repository. To get this URL, log into GitHub and navigate to your
project repository. Then, under “Quick setup — if you’ve done this kind of thing before”,
make sure the “SSH” button is selected, and copy the URL that appears next to it.
It should look something like this: git@github.com:uchicago-cmsc23320-spr-24/chirouter-jdoe-jrandom.git
git init
git remote add origin $REPO_URL
git remote add upstream https://github.com/uchicago-cs/chirouter.git
git pull upstream main
git push -u origin main
Cloning instructions
Once the repository has been set up, you can clone the repository in other locations as follows:
git clone $REPO_URL
git remote add upstream https://github.com/uchicago-cs/chirouter.git