110 likes | 247 Views
Software Tools for the Field Programmable Port Extender (FPX). Todd Sproull Washington University, Applied Research Lab January 11, 2001 Supported by: NSF ANI-0096052 and Xilinx Inc. http://www.arl.wustl.edu/arl/projects/fpx. Controlling the FPX. Methods of Communication - Fpx_control
E N D
Software Tools for the Field Programmable Port Extender (FPX) Todd Sproull Washington University, Applied Research Lab January 11, 2001 Supported by: NSF ANI-0096052 and Xilinx Inc. http://www.arl.wustl.edu/arl/projects/fpx
Controlling the FPX • Methods of Communication - Fpx_control - Telnet - Web Interface / CGI - Basic_send - User Applications • Emulation • Nid_listener • Rad_listener • Software Plug-ins - Concepts - Functionality Fip Memory Manager Remote Applications Read Basic WEB Telnet Fip Send Access CGI Basic Send Software Controller fpx_control fpx_control 0.0 7.1 VCI 76 (NID), VCI 100 (RAD) VCI 115 (NID), VCI 123 (RAD) OC-3 Link (up to 32 VCIs) Washington University NID NID Gigabit Switch RAD RAD
Pictorial view of fpx_control interfaced with hardware Fpx_control {0-7}.{0/1}
FPX Software Applications • API allows applications to communicate with fpx_control • Read_FIP - Interface between FIPL software and fpx_control - Reads in memory updates from FIPL - Sends updates to fpx_control - Replies to FIPL with successful transmission
FIPL Interface to FPX Flow of information from FIPL to FPX -FIPL issues an add route command -Read_FIP takes stdin and packages the strings into 1 large string -Read_FIP opens a TCP socket and sends data to fpx_control -Fpx_control reads in string and packets commands into multiple control cells for FPX -FPX updates memory and sends acknowledgement back to fpx_control -Acknowledgements travel all the way back to FIPL and user is able to enter another command
FIPL Example • Quit fpx_control:q • Delete log: rm rad_log_##.txt • Restart fpx_control: fpx_control #.# • Enable RAD logging on fpx_control: g rad • On different Xterm: • Lauch FIPL interface: rf • Add the following routes: • A 0.0.0.0/0 0 • A 10.186.192.0/19 63 • A 218.128.0.0/11 34 • A 10.186.160.0/3 4 • A 128.0.0.0/3 6 • A 10.186.160.0/19 77 (new route) • Quit FIPL interface: q
Read_fip Software • Read_fip is a modified version of basic_send • Many different possibilities customizing basic_send • Accepts multiple strings and bundles into a large string • Sends the string after an end of command sequence “****” • - Communication from Web using CGI or Perl allows more options for issuing commands
Software Plug-ins for Hardware Modules • Software that allows RAD applications the ability to format unique control cells • Enables developers to easily change the format of a control cell independent of fpx_control
Contents of a Software Plug-in Module <module> # Module title and version number Fast IP Lookup Example Module 1.0 </module> <input_opcodes> # Input Opcode, Menu_command, Command_argument 0x14, R, Root_Node_Pointer, 0x16, I, IP_Flow_1, </input_opcodes> <output_opcodes> # Output opcode, Text, Command_argument 0x15, Root node pointer Updated to ,Root_Node_Pointer, 0x17, Name changed to ,IP_Flow_1, </output_opcodes> <fields> # Command_argument, argument_type, # start_word,start_bit,stop_word,stop_bit Root_Node_Pointer,x,1,31,1,13, IP_Flow_1,x,2,31,2,16, </fields> <help> # Help Menu R root pointer address update: R address (hex) I Update IP Flow 1: I address (hex) </help> • Tags identify relevant fields • Developer specifies data types and lengths • Provides total control over information sent to RAD application • Example is “Fast IP Lookup” module
Using Software Plug-ins • Issue Probe command to see what modules have been loaded • “p” • Load required module • “n fipl.fpx” • Issue commands for that module • “m1.r 1234” • “m1.I 4321” • Commands follow the format: • m#.command argument (if necessary)