Topology The skeleton and dependencies of the project have been setup in a VM for your convenience. VM has the network topology and the allows your router implementation to talk with the network topology.
Overview What your routing logic needs to do Route Ethernet frames between the Internet (the myth cluster) and the HTTP servers Handle ARP request and replies Handle traceroutes ◦Generate TTL Exceeds Message Handle TCP/UDP packets sent to one of the routers' interfaces ◦Generate ICMP Port Unreachable Respond to ICMP echo requests Maintain an ARP cache Respond to ICMP echo requests Maintain an ARP cache See webpage for full requirements
Getting Started Load the virtual machine disk image into your favourite VMM. Eg: VMWare Player, VirtualBox, VMWare fusion etc. Username/Password is mininet/mininet. Start Mininet and POX. Two steps to get the infrastructure up and running ◦./cse123-p2/run_mininet.sh ○./cse123-p2/run_pox.sh Build and execute router ◦make clean ○ make ○./sr Check packet flow with wireshark Expected output
ARP Flow Chart Receive Raw Ethernet Frame It's an IP packet It's an ARP packet Cache it, go through my request queue and send outstanding packets Cache it, go through my request queue and send outstanding packets Construct an ARP reply and send it back Construct an ARP reply and send it back Reply to me Request to me
IP Flow Chart
Coding Advice sr_protocol.h ip header def sr_ethernet_hdr def hdr_icmp_t def arp header def Protocol Resolution definitions Sr_if.c sr_get_interfaces sr_add_interface sr_set_ether_addr (set to the last interface in the interface list) sr_set_ether_ip Print funcs for debugging