1 / 24

Remote Management of the Field Programmable Port Extender (FPX)

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

yale
Download Presentation

Remote Management of the Field Programmable Port Extender (FPX)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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)

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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’

  11. 32/36 Bit Control Cell Format

  12. 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

  13. 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

  14. 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

  15. Communicating with the FPX • Methods of communication -Console Mode -Telnet -Web Access -Basic_send -User Applications (FIPL)

  16. Telnet Access • Allows end hosts control of FPX - Supports multiple connections - Provides full functionality of console mode

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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)

More Related