Remote Management of the Field Programmable Port Extender (FPX)

24
eld Programmable Port Extender (FPX) 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

description

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 - PowerPoint PPT Presentation

Transcript of Remote Management of the Field Programmable Port Extender (FPX)

Page 1: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 1

Remote Management of the Field Programmable Port Extender

(FPX)

Todd Sproull

Washington University, Applied Research Lab

January 10, 2001

Supported by: NSF ANI-0096052and Xilinx Inc.

http://www.arl.wustl.edu/arl/projects/fpx

Page 2: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (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

Basic

Send

CGI

Fip Memory

Manager

Access

WEBBasic TelnetSend

NID NID

RAD

0.0

Gigabit Switch

OC-3 Link

fpx_control 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

fpx_control

Page 3: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 3

Fpx_control

• Issues control cells to FPX• Provides reliable connections over ATM• Allows for multiple users to connect remotely

Fpx_control{0-7}.{0/1}

Control cellsSent to and from

FPX (RAD & NID)

Multiple TCP Sockets for Remote Applications

Page 4: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 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

VC

EC

VC

ccpEC

VC VC

RADSwitch

RADLineCard

LineCardSwitchDefault Flow Action

(Bypass)

VC

EC

VC

ccpEC

VC VC

RADSwitch

RADLineCard

LineCardSwitchVCI = 0x34(Control Cell)

RAD_LC 2-bit LUT

RAD_SW 2-bit LUT

LC 2-bit LUT

SW 2-bit LUT

RAD_LC 11 11 11 11RAD_SW 10 10 10 10LC 01 01 01 01SW 00 00 00 00

Table data definitions

Page 5: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 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

Page 6: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 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

Page 7: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 7

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

Page 8: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 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

Page 9: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 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

Page 10: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 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’

Page 11: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 11

32/36 Bit Control Cell FormatControl 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

Page 12: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 12

64 Bit Memory Cell

-F bit is removed

-Address field is 25 bits

-Format allows up to 4 consecutive SDRAM updates

Differences from 32/36 cell:

OpCode = 0x17 SDRAM Memory Operation Response

Control Cell Format for 64 bit RAD SDRAM Memory Operations

ModuleID = 0x00 RAD Control Cell Processor

OpCode = 0x16 SDRAM Memory OperationVPI = 0x000, VCI = 0x0023 (35) RAD Control CellV - Valid Command: 1 = Valid command, 0 = Invalid, EOC

ModuleID N/A

64 Bit Word

64 bit WORD 3 (31:0)

64 bit WORD 3 (63:32)

64 bit WORD 2 (31:0)

64 bit WORD 2 (63:32)

64 bit WORD 1 (31:0)

64 bit WORD 1 (63:32)

64 bit WORD 0 (31:0)

64 bit WORD 0 (63:32)

(3:0)Count

ADDR(24:0)

R - Read or Write: 1 = Read, 0 = WriteD - Device: 1 = Device 1, 0 = Device 0

OpCode

V RD

HEC

CRCSequence #

CM DATA

PTI

PAD

VCIGFC / VPI

OpCode

HEC

HDR

PL2

PL3

PL4

PL5

PL6

PL7

PL8

PL9

PL10

PL11

PL1

2345678910111213141516171819202122232425262728293031 01

Page 13: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 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

Page 14: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 14

Emulation of the FPX

• Consists of two applications:

- Nid_listener

Maintains VC tables

Handles file transfers

- Rad_listener

Simulates RAD SRAMResponds to all memory read/write operations

Page 15: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 15

Communicating with the FPX

• Methods of communication-Console Mode-Telnet -Web Access-Basic_send-User Applications (FIPL)

Page 16: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 16

Telnet Access

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

Page 17: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 17

Web Access to Fpx_control

- Radio Button Interface- Allows user to submit commands using CGI scripts- Provides for Switch Reset- http://fpx.arl.wustl.edu

Web Access Provides:

Page 18: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 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

Page 19: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 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

Page 20: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 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

Page 21: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 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

Page 22: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 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

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

Page 23: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 23

Content of a Software 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, 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>

Page 24: Remote Management of the  Field Programmable Port Extender (FPX)

Field Programmable Port Extender (FPX) 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)