240 likes | 390 Views
Remote Management of the Field Programmable Port Extender (FPX). Todd Sproull Washington University, Applied Research Lab January 10, 2001 Supported by: NSF ANI-0096052 and Xilinx Inc. http://www.arl.wustl.edu/arl/projects/fpx. Controlling the FPX. Methods of Communication
E N D
Remote Management of the Field Programmable Port Extender (FPX) Todd Sproull Washington University, Applied Research Lab January 10, 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 • Modules - 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
Fpx_control • Issues control cells to FPX • Provides reliable connections over ATM • Allows for multiple users to connect remotely Multiple TCP Sockets for Remote Applications Fpx_control {0-7}.{0/1} Control cells Sent to and from FPX (RAD & NID)
NID Overview Consists of 4 ports used for cell traffic SW (Switch) LC (Line Card) RAD_LC RAD_SW VCI is examined in order to route cells to appropriate output Cell destinations can be re-programmed by sending Write VCI Table Control cells VCI Table Control cells consist of 2-bit values indicating the destination of a cell VCI Lookup Table is generated based on VCI Updates, default routes, and the table data definitions RAD RAD Switch LineCard VC VC RAD RAD Switch LineCard VC VC ccp EC EC VC VC Switch LineCard Default Flow Action (Bypass) VC VC ccp EC EC Switch LineCard VCI = 0x34 (Control Cell) Table data definitions
VCI Updates and Status • VCI Update Commands • Write VCI entries • Format: T VPI VCI SW LC RAD_SW RAD_LC • Example: T 0 7E 3 2 1 0 • Read VCI entries • Format: A VPI VCI • Example: A 0 7E • Response: A 0 7E SW=3 LC=2 RAD_SW=1 RAD_LC=0
VCI Updates and Status • Status Control registers • Lets users check status of FPX • Useful for debugging hardware if problems arise • Displays the following information • RAD Configuration Status (RAD_Done) • Single bit that indicates completion of configuration and beginning of startup sequence • RAD Initialization Status (RAD_Init) • Single bit that indicates when the RAD is ready to accept data • Type Link • Line card identifier (0x1 – OC3, 0x2 – Dual G-link…) • VCI Compare Register • Display current VCI to send control updates on • RAD Programming Byte Count • Indicates number of bytes RAD has loaded in memory
VCI Status Control Example • Checking VCI Status • Example: S • Response:VPI 0x0 VCI 0x22 Opcode 0x42 VCI Compare Register 0x22 RAD_DONE 0x1 RAD_INIT 0x1 Type LINK 0x3 RAD Programming Byte Count 0x000
Configuration Memory Updates • Memory updates provide: - A reliable protocol to transfer VHDL designs - Ability to program RAD with multiple modules - A one step transfer and program option - Debugging information by displaying the contents of a specified location in memory • Example: L test_file 100 • Example: F 100 50
RAD Memory Updates • Supports 32/36/64 bit memory reads and writes - Multiple memory updates may be issued in one control cell - Menu help screen show example update
RAD Memory Updates Example • Reading and writing 32/36/64 bit words • Format:w32 mem_type address num_updates data • Example:w32 s 20 2 12345678 abcdef01 • Format: r32 mem_type address num_reads • Example: r32 s 20 2 • Response: Data from address 20 is 1234568 Data from address 21 is abcdef01 • Writing strings • Format: ws address ‘text’ • Example:ws 0 ‘hello bob’
64 Bit Memory Cell Differences from 32/36 cell: • F bit is removed • Address field is 25 bits • Format allows up to 4 consecutive SDRAM updates
Other Features of Fpx_control • Fpx_control also provides: • Ability to log all transactions to and from NID and RAD • Support to add plug-in modules - Probe function to display modules present on FPX - An on-screen help menu in case you are lost
Emulation of the FPX • Consists of two applications: - Nid_listener Maintains VC tables Handles file transfers - Rad_listener Simulates RAD SRAM Responds to all memory read/write operations
Communicating with the FPX • Methods of communication -Console Mode -Telnet -Web Access -Basic_send -User Applications (FIPL)
Telnet Access • Allows end hosts control of FPX - Supports multiple connections - Provides full functionality of console mode
Web Access to Fpx_control Web Access Provides: - Radio Button Interface - Allows user to submit commands using CGI scripts - Provides for Switch Reset - http://fpx.arl.wustl.edu
Other Applications • API allows other 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 -FIP_reader takes stdin and packages the strings into 1 large string -FIP_reader 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 and acknowledgement back to fpx_control -Acknowledgements travel all the way back to FIPL and user is able to enter another command
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
Using Basic_send Simple interface to send control cells to FPX - Opens a TCP Socket - Transfers character string command line arguments - Displays output from fpx_control
Modules • Software plug-ins that allow RAD applications the ability to format unique control cells • Enables developers to easily change the format of a control cell independent of fpx_control
Content of a Software 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 Modules • 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)