You are here: Home / Past Courses / Spring 2011 - ECPE 293B / Projects / Grading Rubrics

Grading Rubrics

HW Project 1 - Ethernet Switch - Simulator Checkpoint

Group Number: ___________________________

Grading breakdown:

  • Group hardware Implementation / correctness in simulator: 60 points
  • Individual questions: 40 points


Total Grade:

Hardware Tests in Simulator (60 points):

# Points Description Grade
1 10 Are packets from new non-learned hosts broadcast by the switch?
2 10 Are MAC addressed learned by the switch? (Does the forwarding table update?)
3 10 Are non-broadcast packets with learned MAC addresses switched by the switch?
4 10 Are packets destined to the broadcast address (destination MAC of FF:FF:...) broadcast by the switch? (In this test, multiple broadcast packets are sent to multiple ports of the switch)
5 10 Can a custom entry be loaded into the forwarding table? Will it successfully allow the operator to forward a packet out a different port?
6 10 Do register values show forwarding table hits and misses?


Individual Questions for Group Members (40 points):

  1. What part of the project did you work on? (In detail)
  2. What are the sequence of steps that will occur in your switch, from when a packet arrives to when it is sent out?
    1. Packets are pushed in from previous module (input arbiter)
    2. Need to accept enough of the packet to see the destination and source MAC addr, and save in buffer (FIFO). We have to buffer because the field we need to update (output ports) comes *before* the field we need to search on (destination addr).
      1. How will incoming packet data from the previous module be handled while the table is being searched? (A FIFO?)
    3. Lookup the destination immediately so we can update the output port(s) and send the packet to next module
    4. Learning the source address can happen while the packet is streaming through
  3. What tests are currently implemented in the simulator? How did you decide what features should be included in your tests?

 


HW Project 1 - Ethernet Switch

Group Number: ___________________________

Grading breakdown:

  • Hardware Implementation / correctness: 65 points
  • Software Implementation / correctness: 15 points
  • Written Report: 15 points
  • Simulator Checkpoint: 5 points


Total Grade:

Hardware Tests (65 points):

# Points Description Grade
1 10 Are packets from new non-learned hosts broadcast by the switch?
2 10 Are non-broadcast packets with learned MAC addresses switched by the switch? (In this test, a forwarding table entry is manually added to the table by regwrite, and a packet generated to use that entry)
3 10 Are MAC addressed learned by the switch? (In this test, a single packet is sent, and the forwarding table monitored by regread to see if a new entry is added. Or, if software was not functional, additional packets were sent to see that the switch switched the packets after learning).
4 5 Are packets destined to the broadcast address (destination MAC of FF:FF:...) broadcast by the switch? (In this test, multiple broadcast packets are sent to multiple ports of the switch)
5 5 Does the ping (ICMP echo) protocol work correctly from PC A to PC B? (In this test, the original ARP request is broadcast, the ARP reply is switched since the original host was learned, and the subsequent ICMP echo requests/replies are always switched since the hosts have been learned.)
6 5 Does the switch drop old forwarding table entries when the table is full? (In this test, packets from 64 different source MAC addresses are sent in sequence and the forwarding table is monitored to ensure only the most recent forwarding entries are still present.)
7 5 Does the switch drop Ethernet frames where the source and destination computers are on the same port? (In this case, no forwarding is needed)
8 5 Does the switch update the forwarding table if a host moves from one port to another port?
9 5 Does the switch correctly forward back-to-back packets that are all minimum-sized Ethernet frames?
10 5 Can the switch support high bandwidth TCP streaming? (Maximum TCP payload bandwidth over Gigabit Ethernet with no packet loss is approximately 940Mb/s)
Bandwidth Server1->Server2: _______


Software Tests (20 points):

# Points Description Grade
1 5 Can the forwarding table be cleared? After clearing, will packets to (now) unknown destinations be broadcast?
2 5 Can the forwarding table be printed? Are the contents of the table correct after a simple ping test? Does the size of the forwarding table meet project requirements?
3 5 Can a custom entry be loaded into the forwarding table? Will it successfully allow the operator to forward a packet out a different port?
4 5 Do register values show forwarding table hits and misses? Do these registers update on a simple ping test?


Written Report (15 points):


HW Project 2 - Router Design Document

Group Number: ___________________________

Grading Breakdown

  • Introduction - 0 points
  • Feature Set - 10 points
  • Architectural Description - 40 points
  • Other Architectural Issues - 15 points
  • Testing - 15 points
  • Writing Style (Clarity / Organization) - 15 points
  • Honor code (division of labor) - 5 points


Total Grade:


Introduction (0 points):

 


Feature Set (10 points):

Points Description Grade
5 What functions will be performed in the hardware data plane?
5 What functions will not be performed in the hardware data plane?


Architectural Description (40 points):

Points Description Grade
5 Block diagram(s) that show how you have partitioned your design into different functional modules
5 Written description that details the functionality of each module, and its expectations and dependencies on adjacent modules
5 High-level pseudo-code or description for LPM algorithm
5 High-level pseudo-code or description for input packet decoding flow
5 Block diagram(s) that show the data and control flow between your modules
5 Block diagram(s) and written descriptions that show the buffering/congestion points in your design (i.e. Where can packets be lost or delayed due to lack of resources?)
5 Written description and/or tables detailing any internal state (registers, counters, etc.) that your router maintains
5 What happens if I write to a register (say, an entry in the ARP or routing tables) in the middle of a packet?

 

Other Architectural Issues (15 points):

 

Testing (15 points):

Points Description Grade
5 What tests will you run in the simulator?
5 What tests will you run on real hardware?
5 How will you implement these tests?


Writing Style (Clarity / Organization) (15 points):

(Items include introductions for all sections and clear descriptions of all design elements)

 

Honor code (5 points):

Points Description Grade
5 What was the division of labor for this project?

 

Other Comments:

 

 

SW Project 1 - Software Router

Group Number: ___________________________

Grading Breakdown

  • Honor code - 5 points
  • Implementation / correctness - 65 points
  • Written report - 30 points


Total Grade:


Honor Code (5 points):

Points Description Grade
5 What was the division of labor, and source of any copied code for this project?

 

Implementation / correctness (65 points):

# Points Description Grade
1 5 Router responds to ARP requests correctly
2 10 Router responds to pings on all interfaces (appropriate source/target IP addresses)
3 5 Router generates correct ARP requests
4 5 Router forwards well-formed IP packets to destination (packet headers modified correctly)
5 5 Router forwards well-formed IP packets to next hop router (packet headers modified correctly)
6 5 Router caches multiple MAC addresses and does not reissue ARP requests
7 5 Router correctly performs LPM using new rtables
8 5 Router correctly uses default route
9 5 Traceroute through the router functions correctly
10 5 ICMP no route to host (no ARP reply and no routing table entry). ARP errors should have different reply for gateway and destination missing
11 5 Discard "invalid" packets (non-IPv4, IP options set, fragmented, invalid checksum)
12 5 Download large file correctly (the two VNS-provided hosts in your topology each contain a web server with test files to download)

 

Written Report (30 points):

  • (0) Introduction
  • (4) Description of overall router structure
  • (4) Description of router design modularity and extendibility
  • (2) Description of router design thread-safety
  • (4) Description of routing table design and implementation
  • (4) Description of ARP system design and implementation
  • (4) Description of packet flow through the router for multiple scenarios (e.g. locally addressed packets, forwarded packets, bad packets etc.)
  • (4) Description of router testing and support for debugging
  • (4) Writing style / clarity

 


Code change for #11 grading

Place pieces of the following code in sr_vns.c under the VNSPACKET section. You can corrupt the packet before passing it to your software router.  If you change it earlier in that section, you can corrupt the packet before logging it, and use wireshark to verify that the packet was mangled as desired.

  • Note: Some types of packet errors will require the checksum to be recalculated. (Otherwise, we're just testing the bad checksum error over and over again).  Use your own checksum function instead of inet_cksum() as listed here.
     // JAS
     // -- Corrupt packet to test IPv6, bad checksum, fragments, etc... --
     /*
     int i;
     for(i=0; i<len-sizeof(c_packet_header); i++)
       {
         printf("x%02X\n", *(buf+sizeof(c_packet_header)+i));
       }
     */
     /*
     if(*(buf+sizeof(c_packet_header)+12) == 0x08
        && *(buf+sizeof(c_packet_header)+13) == 0x00)
       {
         // If IP: Corrupt IP header checksum
         *(buf+sizeof(c_packet_header)+24)=0xAA;
       }
     */
     /*      
     if(*(buf+sizeof(c_packet_header)+12) == 0x08
        && *(buf+sizeof(c_packet_header)+13) == 0x00)
       {
         // If IP: Change to IPv6 / Header length 5
         *(buf+sizeof(c_packet_header)+14)=0x65;

         // Now Recalculate the checksum                                                                      
         *((uint16_t *) (buf+sizeof(c_packet_header)+24)) = 0;
         *((uint16_t *) (buf+sizeof(c_packet_header)+24)) = inet_chksum(buf+sizeof(c_packet_header)+14, 20);
       }
     */
     /*
     if(*(buf+sizeof(c_packet_header)+12) == 0x08
        && *(buf+sizeof(c_packet_header)+13) == 0x00)
       {
         // If IP: Clear "don't fragment" bit 
         // Set "more frags follow" bit
         // Set fragment offset to 0
         *(buf+sizeof(c_packet_header)+20)=0x20;

         // Now Recalculate the checksum                                                                      
         *((uint16_t *) (buf+sizeof(c_packet_header)+24)) = 0;
         *((uint16_t *) (buf+sizeof(c_packet_header)+24)) = inet_chksum(buf+sizeof(c_packet_header)+14, 20);
       }
     */
     /*
     if(*(buf+sizeof(c_packet_header)+12) == 0x08
        && *(buf+sizeof(c_packet_header)+13) == 0x00)
       {
         // If IP: Change IHL to 6 (from 5)
         // so there is room for IP options
         *(buf+sizeof(c_packet_header)+14)=0x46;

         // Now Recalculate the checksum                                                                      
         *((uint16_t *) (buf+sizeof(c_packet_header)+24)) = 0;
         *((uint16_t *) (buf+sizeof(c_packet_header)+24)) = inet_chksum(buf+sizeof(c_packet_header)+14, 20);
       }
     */


HW Project 3 - Hardware Router

Group Number: ___________________________

Grading Breakdown

  • Implementation / correctness - 85 points
  • Written report - 15 points


Total Grade:


Implementation / correctness (85 points):

# Points Description Grade
1 4 Router bitfile compiles at 125MHz with no timing errors
2 8 Router correctly performs ping test when using routing table with next-hop gateways
3 8 Router correctly performs ping test when using routing table with direct-connect subnets
4 8 Router correctly performs ping test when using routing table with default-route rule
5 6 Router correctly decrements TTL in outgoing packet
6 6 Router correctly updates IP checksum in outgoing packet
7 6 Router correctly passes through unmodified packet data and other headers in outgoing packet
8 6 Router correctly sends outgoing packet to correct output port
9 6 Router correctly drops control-plane packets (ARP, packets destined to the router, non-IPv4, etc...)
10 6 Router can be used to download large file correctly over TCP
11 6 Router provides statistics via the register interface (10 different counters specified in Register Map interface)
12 15 Software utility has read/write access to the route table, ARP tables, and destination IP table

 

Written Report (15 points):

 

SW Project 2 - User Interface

Group Number: ___________________________

Grading Breakdown

  • Implementation / correctness - 60 points
  • Usability of the user interface - 10 points
  • Written report - 30 points

 

Total Grade:


Implementation / correctness (60 points):

# Points Description Grade
1 5 UI allows viewing of VNS info (user, server, vhost, lhost, topology id)
2 5 UI allows viewing of IP info (interfaces, routing table, ARP cache)
3 5 UI allows addition of static ARP entry (given an IP address and a MAC address)
4 5 UI allows deletion of static ARP entry (given an IP address)
5 5 UI allows addition of routing table entry (given a destination IP address, mask, gateway IP address, and interface name)
6 5 UI allows deletion of routing table entry (given a destination IP address and mask)
7 5 UI allows interfaces to be enabled or disabled (given an interface name) and no packets are sent over a disabled interface
8 5 UI allows modification of interface IP address, subnet mask, and MAC address (given an interface name)
9 5 UI allows creation of ICMP echo request to a specified IP address, and displays the response
10 5 UI allows modification of ARP timeout value
11 5 ARP entries correctly timeout according to user-specified value
12 5 Router correctly implements a TCP echo server

 


User Interface Usability (10 points):

(Online help/documentation is required for either the command-line or web interface)

 


Written Report (30 points):

  • A clear, concise description of how your router handles ARP timeouts
  • A clear, concise description of how the TCP/IP stack is integrated into your router
  • A clear, concise description of the design of your echo server
  • A clear, concise description of the design of your user interface
  • A user manual for your user interface
  • An updated and expanded description of your testing methodology

 

Integration

Group Number: ___________________________

Grading Breakdown

  • Correctness with reference hardware: 40 points
  • Correctness with your hardware: 50 points
  • Performance: 10 points


Total Grade:


Correctness with reference hardware (40 points):

# Points Description Grade
1 10 Router can be configured and monitored for all tests via UI (HW / SW route table, HW / SW ARP table, destination IP table, port enabled/disabled, statistics registers)
2 5 Router correctly performs ping test after being initialized by software (hardware routing table always matches by test design. Software router performs ARP for the first packet but entry is cached in hardware for subsequent packets)
3 5 Router software responds correctly to traceroute
4 5 Router software responds to pings on all interfaces with appropriate source/target IP addresses
5 5 Router software generates correct ARP requests and responses, and removes expired entries from hardware
6 5 Router software issues ICMP errors for expired TTL, no routing table match, and no ARP reply for missing gateway or destination
7 5 Router software discards "invalid" packets (non-IPv4, IP options, invalid checksum)


Correctness with your hardware (50 points):

# Points Description Grade
1 10 Router can be configured and monitored for all tests via UI (HW / SW route table, HW / SW ARP table, destination IP table, port enabled/disabled, statistics registers)
2 5 Router correctly performs ping tests for different routing tables after being initialized by software (hardware routing table always matches by test design. Software router performs ARP for the first packet but entry is cached in hardware for subsequent packets)
3 5 Router preserves functional correctness in situations where software ARP table is larger than hardware ARP table
4 5 Router preserves functional correctness in situations where software routing table is larger than hardware routing table
5 5 Router software responds correctly to traceroute
6 5 Router software responds to pings on all interfaces with appropriate source/target IP addresses
7 5 Router software generates correct ARP requests and responses, and removes expired entries from hardware
8 5 Router software issues ICMP errors for expired TTL, no routing table match, and no ARP reply for missing gateway or destination
9 5 Router software discards "invalid" packets (non-IPv4, IP options, invalid checksum)


Performance (10 points):

Performance is measured with your hardware router implementation

# Points Description Grade
1 5 TCP large file download bandwidth
2 5 Forwarding path latency


Project Presentation

Group Number: ___________________________


Total Grade:

 

Overview (1 point)

 

Technical Description (4 points)

 

Challenges / Insights / Lessons Learned (3 points)

 

Presentation Style (2 points)

 

Final Report

Group Number: ___________________________


Total Grade:


Introduction (5 points):


Software (15 points):

(Have you addressed comments given in your previous assignments?)

Hardware (15 points):

(Have you addressed comments given in your previous assignments?)

Integration (25 points):

(See bulleted list in project assignment)

Testing (10 points):

(See bulleted list in project assignment)

Conclusions (15 points):

(See bulleted list in project assignment)

Writing quality (15 points):

(Are all sections of your document well-written?  Do they integrate together into a coherent report?)