TESTING PLAN FOR rPGM protocol 1. Introduction This document contains details of the testing plan provided for the rPGM testing stage. The rPGM is a routing protocol based on PGM running on FreeBSD platform. The aim of this document is to give full details and instructions regarding the testing of the routing protocol with different configurations. The main aim of the test watch the behaviour of the rPGm software under different configurations: - Local area and Wide area - Low, medium, heavy load to monitor behaviou in the presence of heavy traffic - Various configurations depending on how many leaf nodes and intermediate routers between Source and destination host(s). 2. Testing Configurations Each configuration will be, in this document, including the following paragraphs: - Main configuration (e.g. Host to Router only, Host-Router-Host) - Brief explanation on roles of elements tested - Packets --> which packets to test (packet format from PGM spec in Appendix) - Packet fields --> which fields in the packet are important to be tested - Softare --> which software used to monitor - Environment --> LAN or WAN - Test Results --> results of the test (print out or log files) 2.1 Configurations Main configurations can be identified as following: 1. H --> R (local host --> local router) 2. H --> R --> H (local host/source --> local router --> local host/destination) 3. H --> R --> R --> H (local host/sorce --> local router --> local router --> local host/destination) 4. H --> lR --> rR --> rH (local source-->local router-->remote router-->remoter destination host) 5. H --> R --> R --> H1 and H2 and H3 and ...(this can be tested with the variance of router in the same LAN and router over the WAN) 3. H ---> R Configuration: Host to Router Between host to router a user level program is used to send PGM packets to the router. Packets: - RDATA - SPM Packtet fields: - Soure port - Destination port - Type - Data Packet sequence number - Data (maybe) Software: - At the moments the program used is PGMCAT from Luigi code. It sends PGM like packets to the router so they can be forwarded to the specified multicast address. Meng How is working on an implementation of the test program creating raw packets on a raw socket. It will be possible to test different packet types from this test program. - Tcpdump can be used to monitor packet traffic from Host to Router Environment: LAN Test Results: - Tcpdump log file for traffic from H to R - Printout by log file from router (print statement to check if the packets arrive to the kernel IP-Input routine) 4. HOST ---> ROUTER ---> HOST Configuration: Host to Router to Host (destination). In this configuration we test packets from host source sent to host destination travelling trough the PGM router. In this configuration, we can concentrate on the testing of the traffic Router to Host/destination. The first part of the traffic (Host to Router) need to be monitored to confirm that packets sent by host source are the same packets received at host destination, making sure that no packets are lost or dropped by the PGM router. Packets: - SPM - ODATA - RDATA - NAK - NCF Packet fields SPM - Source port - Destination port - SPM seq number - Path NLA ?? ODATA - Source port - Destination port - Data packet seq number - Data (important) RDATA - Source port - Destination port - Type (to make sure is RDATA) - Data packet seq number NAK - Source - Dest - global source ID - seq n. - source NLA NCF - source - destination - source NLA Software: - Tcpdump listening to both traffics H -->R and R --> H. - Test program sending data (pgmcat or Meng test software) Environment: LAN Test Results: - Tcpdump log files for both interfaces - Log files output from kernel handling routines (ip_input and ip_output) - Script files to automate testing (see doc.....) 5. HOST - ROUTER - ROUTER - HOST Configuration: Host to Router to Router to Host Packets - SPM - ODATA - RDATA - NAK - NCF Packet fields SPM - Source port - Destination port - SPM seq number - Path NLA ?? ODATA - Source port - Destination port - Data packet seq number - Data (important) RDATA - Source port - Destination port - Type (to make sure is RDATA) - Data packet seq number NAK - Source - Dest - global source ID - seq n. - source NLA NCF - source - destination - source NLA Software - Tcpdump listening to different interfaces to track packets from source destinations. - Kernel printouts - Script files to automate testing To be able to monitor packets with this configuaration, different test stages are needed: 1. check if packets arrive from Source to Destination (monitoring ODATA traffic) 2. Monitor forwarding routines from kernel of both routers (printouts of kernel log files monitoring which packets handling routines both routers will use) 3. Introduce packet loss: monitor the end destination sending NAK and making sure that the path is the upstream from where data is received 4. Monitor destination and second router to check NCF 5. Monitor general behaviour of configuration,introducing packet loss and monitoring all the hosts included in the test. This final test might need different machines with Tcpdump to monitor different interfaces Environment: LAN only Test Results: - Prinout of tcpdump for each stages - Kernel log files to monitor router packet handling routines Appendix PGM packet type format SPM 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Options | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Global Source ID ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Global Source ID | TSDU Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SPM's Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Trailing Edge Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Leading Edge Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NLA AFI | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Path NLA ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+ | Option Extensions when present ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+-+-+-+-+-+-+-+-+-+-+-+-+-+ ODATA / RDATA 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Options | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Global Source ID ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Global Source ID | TSDU Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data Packet Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Trailing Edge Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Extensions when present ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ... +-+-+- ... NCF / NAK 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Options | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Global Source ID ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Global Source ID | TSDU Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Requested Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NLA AFI | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source NLA ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+ | NLA AFI | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Multicast Group NLA ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+ | Option Extensions when present ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ...