Presentation is loading. Please wait.

Presentation is loading. Please wait.

Washington University, Applied Research Lab

Similar presentations


Presentation on theme: "Washington University, Applied Research Lab"— Presentation transcript:

1 Washington University, Applied Research Lab
NCHARGE: Remote Management of the Field Programmable Port Extender (FPX) Todd Sproull Washington University, Applied Research Lab August 15, 2001 Supported by: NSF ANI and Xilinx Inc.

2 Controlling the FPX Methods of Communication Software Plug-ins
Fip Memory Methods of Communication - NCHARGE - Telnet - Web Interface / CGI - Basic_send - User Applications Software Plug-ins - Concepts - Functionality Emulation Nid_listener Rad_listener Remote Manager Applications Basic Telnet Read WEB Send Fip Access CGI Basic Send Software Controller NCHARGE NCHARGE 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 Pictorial view of FPX software interfaced with hardware
NCHARGE {0-7}.{0/1}

4 Multiple TCP Sockets for
NCHARGE Issues control cells to FPX Provides reliable connections over ATM Allows for multiple users to connect remotely Multiple TCP Sockets for Remote Applications NCHARGE {0-7}.{0/1} Control cells Sent to and from FPX (RAD & NID)

5 Controlling Flows on the NID
Consists of 4 ports used for cell traffic 0 - SW (Switch) 1 - LC (Line Card) 2 - RAD_SW 3 - RAD_LC Cells routed based on VCI Lookup Table Cell routes are modified by issuing Write VCI Table Control cells VCI Table Control cells consist of number indicating the destination of a cell VCI Lookup Table is generated based on VCI Updates, default routes, and the table data definitions RAD RAD RAD RAD Switch LineCard Switch LineCard VC VC VC VC VC VC VC VC ccp ccp EC EC EC EC Switch LineCard Switch LineCard Default Flow Action VCI = 0x34 (Bypass) (Control Cell)

6 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 Read VCI entries Format: A VPI VCI Example: A 0 7E Response: A VPI=0 VCI=7E SW=3 LC=2 RAD_SW=1 RAD_LC=0 Table data definitions RAD_LC 2-bit LUT RAD_SW 2-bit LUT LC 2-bit LUT SW 2-bit LUT RAD_LC 3 RAD_SW 2 LC 1 SW

7 Web VCI Updates and Status

8 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 ( OC3, 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

9 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

10 Web VCI Status Control Example

11 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

12 Configuration Memory Example
Transfer vhdl design from PC to NID Format: L filename offset Example: L test_file 100 Program RAD with NID vhdl design Format: F offset byte_count Example: F FPX_CONTROL Load Configuration Full RAD Configuration NID RAD

13 Web Configuration Memory Example

14 RAD Memory Updates Supports 32/36/64 bit memory reads and writes
- Multiple memory updates may be issued in one control cell - Memory updates are issued by module id

15 RAD Memory Updates Example
Reading and writing 32/36/64 bit words Format: w32 mod_id address num_updates data Example: w abcdef01 Format: r32 mod_id address num_reads Example: r Response: Data from address 20 is Data from address 21 is abcdef01 Reading and Writing strings Format: ws mod_id address ‘text’ Example: ws 0 0 Bob_Smith Format: rs mod_id address Example: rs 0 0 Response: Bob_Smith

16 Web RAD Memory Updates Example

17 Other Features of NCHARGE
NCHARGE also provides: Ability to log all transactions to and from NID and RAD Support to add customized software interfaces to hardware plug-in modules - Probe function to display modules present on FPX - An on-screen help menu in case you are lost

18 Modules on the NCHARGE Webpage

19 Other Features of the NCHARGE Webpage

20 More Features of the NCHARGE Webpage

21 Emulation of the FPX Consists of two applications: - Nid_listener
Maintains VC tables Handles file transfers - Rad_listener Simulates RAD SRAM/SDRAM Responds to all memory read/write operations

22 Communicating with the FPX
Methods of communication -Console Mode -Telnet -Web Access -Basic_send -Library calls -User Applications (FIPL)

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

24 Web Telnet Access

25 Web Access to NCHARGE Web Access Provides: - Radio Button Interface
- Allows user to submit commands using CGI scripts - Provides for Switch Reset -

26 Using Basic_send Simple interface to send control cells to FPX
- Opens a TCP Socket - Transfers character string command line arguments - Displays output from NCHARGE

27 FIPL Interface to FPX Flow of information from FIPL to FPX
-Remote Host issues Add route from Web -Web Server processes command and sends to writefip over TCP socket -Write_FIP sends stdout command to FIPL -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

28 Setting up the FPX as a Router
Use the FPX as a router -Start the FIPL Memory Manager software for a particular port/stack -Download a few (<100) routes from MAE-WEST -Note the name of the file that you downloaded -Submit that list of routes to the FPX on the Fast IP Lookup Page -Now the FIPL software is configured to handle these routes!! -You should be able to add additional routes -You can also delete and modify routes from the webpage

29 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 NCHARGE

30 Contents of a Software Plug-in Module
# Module title and version number Fast IP Lookup Example Module 1.0 </module> <input_opcodes> # Input Opcode, Menu_command, Command_argument 0x14, 1,R, Root_Node_Pointer, 0x16, 1,I, IP_Flow_1, </input_opcodes> <output_opcodes> # Output opcode, Text, Command_argument 0x15, 1,Root node pointer Updated to ,Root_Node_Pointer, 0x17, 1,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

31 Cell Format of FIPL Module

32 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)

33 FIPL Module via Web page

34 Using Library Call Simple interface to send control cells to FPX
- fpx_message(char *command,int port, int stack, char *response)

35 Programming Exercise Construct a loop that issues sends several strings to a particular memory location Use sleep() between fpx_message calls so you can read the strings from the FPX webpage Be sure to include libNcharge.h When compiling include the libNcharge.cpp file as well g++ your_file.c libNcharge.cpp Include a \n character at the end of the string Format for write string is: ws module_number address text_string Module number for this example is always 0


Download ppt "Washington University, Applied Research Lab"

Similar presentations


Ads by Google