Download presentation
Presentation is loading. Please wait.
Published byBuck Malone Modified over 6 years ago
1
Remote Management of the Field Programmable Port Extender (FPX)
Todd Sproull Washington University, Applied Research Lab January 10, 2001 Supported by: NSF ANI and Xilinx Inc.
2
Controlling the FPX Methods of Communication Emulation Modules
Fip Memory Methods of Communication - Fpx_control - Telnet - Web Interface / CGI - Basic_send - User Applications Emulation Nid_listener Rad_listener Modules - Concepts - Functionality Remote Manager Applications Basic Telnet Read WEB Send Fip 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 Gigabit Switch NID NID RAD RAD
3
Multiple TCP Sockets for
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
Table data definitions
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 VC EC ccp RAD Switch LineCard Default Flow Action (Bypass) VC EC ccp RAD Switch LineCard VCI = 0x34 (Control Cell) Table data definitions RAD_LC 2-bit LUT RAD_SW 2-bit LUT LC 2-bit LUT SW 2-bit LUT RAD_LC 11 RAD_SW 10 LC 01 SW 00
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 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
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 abcdef01 Format: r32 mem_type address num_reads Example: r32 s 20 2 Response: Data from address 20 is 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
Allows end hosts control of FPX
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 -
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 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
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)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.