field programmable port extender (fpx) 1 ncharge: remote management of the field programmable port...
Post on 29-Jan-2016
222 Views
Preview:
TRANSCRIPT
Field Programmable Port Extender (FPX) 1
NCHARGE: Remote Management of the
Field Programmable Port Extender (FPX)
Todd Sproull
Washington University, Applied Research Lab
August 15, 2001
Supported by: NSF ANI-0096052and Xilinx Inc.
http://www.arl.wustl.edu/arl/projects/fpx
Field Programmable Port Extender (FPX) 2
Controlling the FPX
• Methods of Communication- NCHARGE- Telnet- Web Interface / CGI- Basic_send- User Applications
• Software Plug-ins- Concepts- Functionality
• Emulation– Nid_listener– Rad_listener
BasicSend
CGI
Fip MemoryManager
AccessWEBBasic Telnet
Send
NID NID
RAD
0.0
Gigabit Switch
OC-3 Link
NCHARGE 7.1
SoftwareController
Fip
RemoteApplications
VCI 76 (NID), VCI 100 (RAD)
VCI 115 (NID), VCI 123 (RAD)
(up to 32 VCIs)
Read
Washington University
RAD
NCHARGE
Field Programmable Port Extender (FPX) 3
NCHARGE{0-7}.{0/1}
Pictorial view of FPX software interfaced with hardware
Control Cell Format for 32/36 bit RAD SRAM Memory Operations
OpCode = 0x15 SRAM Memory Operation ResponseOpCode = 0x14 SRAM Memory OperationVPI = 0x000, VCI = 0x0023 (35) RAD Control Cell
N/AX C(7:5)
N/AModuleIDOpCode
WORD 1
FRDV
1
F - 32 or 36 bit: 1 = 36 bit, 0 = 32 bit
FRDV
R - Read or Write: 1 = Read, 0 = WriteD - Device: 1 = Device 1, 0 = Device 0V - Valid Command: 1 = Valid command, 0 = Invalid, EOC
32 Bit format'N' Address
36 Bit format1 Address
36 Bit format2 Address
WORD 0 (31:0)
WORD 1 (31:0)
WORD 0 (31:0)
V FRD
HEC
ADDR(18:0)
ADDR(18:0)
ADDR(18:0)
WORD N
CRCSequence #
CM DATA
WORD 0
N/AW0(35:32)
W1(35:32)W0(35:32)
PTI
0
PAD
VCIGFC / VPI
OpCode
HEC
HDR
PL2
PL3
PL4
PL5
PL6
PL7
PL8
PL9
PL10
PL11
PL1
12345678910111213141516171819202122232425262728293031 0
ModuleID = 0x00 RAD Control Cell Processor
Field Programmable Port Extender (FPX) 4
NCHARGE
• Issues control cells to FPX• Provides reliable connections over ATM• Allows for multiple users to connect remotely
NCHARGE{0-7}.{0/1}
Control cellsSent to and from
FPX (RAD & NID)
Multiple TCP Sockets for Remote Applications
Field Programmable Port Extender (FPX) 5
Controlling Flows on the NID• Consists of 4 ports used for cell traffic
0 - SW (Switch)1 - LC (Line Card)2 - RAD_SW3 - 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
VC
EC
VC
ccpEC
VC VC
RADSwitch
RADLineCard
LineCardSwitchDefault Flow Action
(Bypass)
VC
EC
VC
ccpEC
VC VC
RADSwitch
RADLineCard
LineCardSwitchVCI = 0x34(Control Cell)
Field Programmable Port Extender (FPX) 6
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 VPI=0 VCI=7E SW=3 LC=2 RAD_SW=1 RAD_LC=0
RAD_LC 2-bit LUT
RAD_SW 2-bit LUT
LC 2-bit LUT
SW 2-bit LUT
RAD_LC 3 3 3 3RAD_SW 2 2 2 2LC 1 1 1 1SW 0 0 0 0
Table data definitions
Field Programmable Port Extender (FPX) 7
Web VCI Updates and Status
Field Programmable Port Extender (FPX) 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
Field Programmable Port Extender (FPX) 9
VCI Status Control Example
– 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
• Checking VCI Status
Field Programmable Port Extender (FPX) 10
Web VCI Status Control Example
Field Programmable Port Extender (FPX) 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
Field Programmable Port Extender (FPX) 12
Configuration Memory Example
–Format: L filename offset–Example: L test_file 100
•Transfer vhdl design from PC to NID
•Program RAD with NID vhdl design
–Format: F offset byte_count–Example: F 100 50
NID RAD
NCHARGE
Load Configuration Full RAD Configuration
Field Programmable Port Extender (FPX) 13
Web Configuration Memory Example
Field Programmable Port Extender (FPX) 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
Mo
du
le
Mo
du
le
Network Interfaces to NID
RAD
SRAMData
SRAM
SDRAM SDRAM
Data Data
Data
Field Programmable Port Extender (FPX) 15
RAD Memory Updates Example
• Reading and writing 32/36/64 bit words– Format: w32 mod_id address num_updates data– Example: w32 0 20 2 12345678 abcdef01
– Format: r32 mod_id address num_reads– Example: r32 0 20 2– Response: Data from address 20 is 1234568
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
Field Programmable Port Extender (FPX) 16
Web RAD Memory Updates Example
Field Programmable Port Extender (FPX) 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
Field Programmable Port Extender (FPX) 18
Modules on the NCHARGE Webpage
Field Programmable Port Extender (FPX) 19
Other Features of the NCHARGE Webpage
Field Programmable Port Extender (FPX) 20
More Features of the NCHARGE Webpage
Field Programmable Port Extender (FPX) 21
Emulation of the FPX
• Consists of two applications:
- Nid_listener
Maintains VC tablesHandles file transfers
- Rad_listener
Simulates RAD SRAM/SDRAMResponds to all memory read/write operations
Field Programmable Port Extender (FPX) 22
Communicating with the FPX
• Methods of communication-Console Mode-Telnet -Web Access-Basic_send-Library calls-User Applications (FIPL)
Field Programmable Port Extender (FPX) 23
Telnet Access
• Allows end hosts control of FPX- Supports multiple connections - Provides full functionality of console mode
Field Programmable Port Extender (FPX) 24
Web Telnet Access
Field Programmable Port Extender (FPX) 25
Web Access to NCHARGE
- Radio Button Interface- Allows user to submit commands using CGI scripts- Provides for Switch Reset- http://fpx.arl.wustl.edu
Web Access Provides:
Field Programmable Port Extender (FPX) 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
Field Programmable Port Extender (FPX) 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 NCHARGE -Fpx_control reads in string and packets commands into multiple control cells for FPX
Field Programmable Port Extender (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
Field Programmable Port Extender (FPX) 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
PAD
Control Cell Format for Modules
ModIDOpCode OpCode ModuleID
PAD
VCI = 0x23
CM DATA
HEC
CRCSequence #
PTIGFC / VPI
HEC
HDR
PL2
PL3
PL4
PL5
PL6
PL7
PL8
PL9
PL10
PL11
PL1
User Definable
012345678910111213141516171819202122232425262728293031
Space
Field Programmable Port Extender (FPX) 30
Contents of a Software Plug-in Module
• 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
<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>
Field Programmable Port Extender (FPX) 31
Cell Format of FIPL Module
Field Programmable Port Extender (FPX) 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)
Field Programmable Port Extender (FPX) 33
FIPL Module via Web page
Field Programmable Port Extender (FPX) 34
Using Library Call
• Simple interface to send control cells to FPX- fpx_message(char *command,int port, int stack, char *response)
Field Programmable Port Extender (FPX) 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
top related