Presentation on theme: "John DeHart Computer Science & Engineering Washington University www.arl.wustl.edu GEC7: SPP Tutorial Notes."— Presentation transcript:
John DeHart Computer Science & Engineering Washington University GEC7: SPP Tutorial Notes
Essence of a Good Tutorial Mix of Talks and Hands-On Exercises Hands-On Exercises in Reverse Order »Give them something that works first This lets them see how everything works »Then have them change something in the working exercise »Then give them less and have them fill in some details »Etc. Have people on hand to answer questions and give help during hands-on exercises Provide handouts so attendees have printed directions for exercises and copies of slides Working in groups vs. working as individuals Don’t try to do too much
What do we want to achieve? Experience GPE and NPE based Routers? GPE-based Router: »Simple Pass-Through Two Interfaces –Packets from Interface 1 are sent out Interface 2 and vice versa NPE-based Router: »Control from GPE »Local Delivery (LD) and Exception (EXC) traffic to GPE »Filters »Tunnels
What resources will be need? Predefined SPP Slices and Accounts? Pre-built tarfiles for attendees to download? Network Connections at site? Data generating nodes »Planetlab? Coordinating planetlab slices with our SPP slices Difficulty with UDP Tunnels on PlanetLab nodes.
Agenda (3 Hrs, with 15 min. break) 0:00 – 0:20 Overview (Jon and/or Patrick) »System Components »Software Components and Interfaces »Deployed nodes and configuration 0:20 – 0:45 Reserving and Using System Resources (Ken) »External Interfaces »NPE Resources »Command Line API »Traffic Monitoring 0:45 – 1:10 Creating and Running GPE-based App (Jon) »Forest Configuring external interfaces Configuring and running Forest routers Using Planetlab to generate traffic 1:10 – 1:25 Break 1:25 – 2:00 Creating and Running a Fastpath (John, Ken or Mart) »IPv4 Similar to above 2:00 – 3:00 Hands-on Session (Jon, John, Ken, Patrick)
Reserving and Using System Resources Talk SPP Interfaces »External »Internal Reservations »FastPath »SlowPath »XML file Time Resource Parameters Interfaces Command Line API Leave ip_fpc and ip_fpd for FastPath talk or do here? Maybe mention here but leave details for later? »scfg »sliced Traffic Monitoring »FastPath Stats Indices Queues »SlowPath User Data from File
Creating and Running a FastPath Configuring SPP Interfaces for a Fast Path »Meta-Interfaces and UDP Tunnels Packet Formats »UDP Tunnels »Meta-Net Packets Starting a FastPath »Fast Path Daemon (e.g. ip_fpd) »Local Delivery and Exception traffic »Responding to ICMP Requests, etc. Filters »MN Specific (e.g. ip_fpc) Generating Data »UDP Tunnel Encapsulation Traffic Monitoring »FastPath Stats Indices Queues
Hands-On Session Each person works individually Use IPv4 Fastpath One router/slice per person Make tarfile available for them to download to their slice »Includes script to run to configure router Make SPPmon and hardware file available for them to load on laptops Part 1 »Configure router to route a packet from their laptop back to their laptop »“ping” router from their laptops using a program we provide Needs to run on variety of laptop OS’s Part 2 »Group 3 participants routers to join their routers »Add filters to send packets the long way around Part 3 »Use traffic generators we have set up on Planetlab Nodes We provide script/program that they run that sends message to server on PL Node to start traffic generator. »Manipulate Queue parameters »Monitor traffic
Tasks Tarfile for configuring Router SPPmon and hardware file for uses to load on laptop Ping program for sending and receiving packet to test router. »Runs on users’ laptops (Linux, MacOS, Windows, Cygwin?) »Sends IP packet in UDP tunnel »Command line arguments to set tunnel and internal IP pkt headers »Receives IP packet in UDP tunnel and verifies that internal packet is same as sent. Traffic generator start script/program client/server »Client Runs on users’ laptops (Linux, MacOS, Windows, Cygwin?) Sends IP packet (no tunnel required) to planetlab node to start traffic generator Command line arguments to set planetlab node IP and Port, traffic parameters (duration, rate, type, IP hdrs) »Server Runs on planetlab nodes Receives IP packet (no tunnel) Starts traffic generator with parameters as set in packet payload Handouts detailing what resources each participant should use. »SPP, Slice, planetlab node for traffic generator (IP, Port#), etc. Finish conversion of current SPP Utilities (client, resrv, …)
Still to do… Redo FastPath talk to include demo. Change MetaRouter to Slice/Fastpath, MetaNet to Slice/FastPath Change ‘Other end of MI’ to ‘Next Hop’ Add payload size minimum to tgit. Future reservations go away on reboots. Redo SPPmon experiment files to use new SPPmon with labels. Remove bw from release command(s) so user is not required to specify the bandwidth of an endpoint when doing a release. Generate ssh tunnel instructions for users. We will probably not have direct I2 access. Make up solution configureRouter.sh scripts for each user. Add to slice directories. Automate backups of GPE Vservers Clean up output from configureRouter.sh so it tells the user something understandable. Re-populate all slices with files Populate USB flash drives Get mail working on SPP PLC Automate startup of servers and receivers for TG »Servers seem to need re-starting regularly.
Still to do… Backup plan for planetlab hosts that are not working »Have a second and third host ready for each user and make it easy to switch »To switch TGSRC need to change tgit »For TGSRC, probably don’t actually need to change configureRouter.sh since we don’t actually check for src addr/port and we don’t send anything back to the SRC. »Not sure we care about TGDST. If it is dead, does it really matter? ICMP error messages? »But to be complete we should change TGSRC in tgit and configureRouter.sh and TGDST in configureRouter.sh »All PL_HOST’s should have server and receiver started on them so we can quickly switch »2/27/10: Added 33 more planetlab hosts to washu_sppDemo slice. install fsd on all CPs Try Fred’s suggestions on fixing SNMP open socket problems.
In progress 2/26/10: Update USB stick with latest SPPmon and experiment files Purchase USB flash drives (Order sent to Kelli, 2/25)
DONE DONE: Clean up “mnet_run: entered: calling updateEnvIP” messages in ip_fpd DONE: Clear ip_fpd.log file before running ip_fpd or just >& into it instead of >>h DONE: Change configureRouter.sh so it gives them the commands needed at end but forces them to set the values for variables DONE: Add something to configureRouter.sh to print dots while sleeping. DONE: Change configureRouter.sh script to use the MID returned by scfg DONE: Load emacs, pico (and other editors?) on ALL GPE slices DONE: Add slide with example of get_ifaces and what each interface is. DONE: Remove use of BINDIR in configureRouter.sh, set path to use /usr/local/bin and use utilities and daemons from there. DONE: Fix scfg with new name changes (claim_resources, etc) »Then change scripts to use new names: Do this before FRIDAY!!! DONE: Update /usr/local/bin binaries on all slices ( Do this after updating scfg above) DONE: Set hostname on spphost’s (Any implications for ONL?) DONE: Config WASH back to normal (was testing ProtoGENI vlan stuff) »Test gec01 and gec02 with MI between: This will test KANS WASH link DONE: Expand port numbers used for sliced so unique on each GPE DONE: Make Sirius reservations DONE: Fix sliced so it does not hog the CPU.
DONE DONE: Fix User11 handout. DONE: Verify that all experiment files have Pkts/s as Y Axis. DONE: Test tunnels and experiment files that use them. DONE: Change limit on open files on all CPs (added ulimit –n to /etc/rc.local) »Turns out that the limit is also built into select(). There is a limit of 1024 file descriptors in the FD SET that is given to select. This limit is built into a binary library that python uses to do a select. So, we can’t easily change it for a work-around. DONE: Fix free_resources, free_sp_resources, free_fp_resources confusion in usage, etc. DONE: Add some directions on adding SPPmon monitoring entries DONE: Make up solution worksheets. DONE: Jyoti is adding feature to allow user to add label to SPP DONE: Add slide info on tgit and how it works so they know it just sends pkt to server. DONE: Change _PORT in configureRouter.sh to _IFN to agree with get_ifaces »_PORT_10 becomes _IFN_2 _PORT_9 becomes _IFN_1 _PORT_8 becomes _IFN_0 DONE: Add a worksheet for doing the setup_fp_tunnel, write_fltr stuff at the end so they have to write the values down on paper before going to the configureRouter.sh. And tie it in to the previous filter and its result.