Title: FPGA2000 - Field Programmable port Extender (FPX) for Distributed Routing and Queuing
1Software Tools for the Field Programmable Port
Extender (FPX)
Todd Sproull Washington University, Applied
Research Lab January 11, 2001 Supported by NSF
ANI-0096052 and Xilinx Inc. http//www.arl.wustl.
edu/arl/projects/fpx
2Controlling the FPX
- Methods of Communication
- - Fpx_control
- - Telnet
- - Web Interface / CGI
- - Basic_send
- - User Applications
- Emulation
- Nid_listener
- Rad_listener
- Software Plug-ins
- - Concepts
- - Functionality
Fip Memory
Manager
Remote
Applications
Read
WEB
Basic
Telnet
Fip
Access
Send
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
3Pictorial view of fpx_control interfaced with
hardware
Fpx_control 0-7.0/1
4FPX Software Applications
- API allows 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
5FIPL Interface to FPX
Flow of information from FIPL to FPX -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 -FPX updates memory
and sends acknowledgement back to fpx_control
-Acknowledgements travel all the way back to FIPL
and user is able to enter another command
6FIPL Example
- Quit fpx_controlq
- Delete log rm rad_log_.txt
- Restart fpx_control fpx_control .
- Enable RAD logging on fpx_control g rad
- On different Xterm
- Lauch FIPL interface rf
- Add the following routes
- A 0.0.0.0/0 0
- A 10.186.192.0/19 63
- A 218.128.0.0/11 34
- A 10.186.160.0/3 4
- A 128.0.0.0/3 6
- A 10.186.160.0/19 77 (new route)
- Quit FIPL interface q
-
7Read_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
8Software 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 fpx_control
9Contents of a Software Plug-in Module
ltmodulegt Module title and version number Fast
IP Lookup Example Module 1.0 lt/modulegt ltinput_opco
desgt Input Opcode, Menu_command,
Command_argument 0x14, R, Root_Node_Pointer, 0x16,
I, IP_Flow_1, lt/input_opcodesgt ltoutput_opcodesgt
Output opcode, Text, Command_argument 0x15,
Root node pointer Updated to ,Root_Node_Pointer, 0
x17, Name changed to ,IP_Flow_1, lt/output_opcodes
gt ltfieldsgt 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, lt/fiel
dsgt lthelpgt Help Menu R root pointer address
update R address (hex) I Update IP Flow 1 I
address (hex) lt/helpgt
- 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
10Cell Format of FIPL Module
11Using 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)