This is an implementation of the RIPv2 protocol in Python. It was programmed for assignment one of COSC364 by:
- Max Moir (mmo199)
- Martyn Gascoigne (mga138)
It implements the basic RIP routing protocol with Split Horizon and Poison Reverse. The corresponding report for this assignment can be found here
The program is designed to converge upon an ideal network state from a given set of router config files. Config files bust be written in the following format:
router-id [id]
input-ports [port-number], [port-number], …
output-ports [port-number]-[metric-value]-[peer-router-id], …
Example config files are located in src/cfgs.
First, clone the project using the following command:
$ git clone https://github.com/maxwmoir/rip-project.gitAfter this enter the project repository and create a virtual enviroment.
$ cd rip-project
$ python -m venv venv After activating your enviroment the program can be run from the command line by supplying the name of the config file.
$ python -m daemon.py "path-to-config" - Make sure all methods have docstring
- Fix Operation not permitted error with sock.send
- Remove unnecessary prints and commenting
- Reorder methods
- Remove use of magic nos.