Title: 802.1D Spanning Tree Compliant switch
1802.1D Spanning Tree Compliant switch
- Gireesh Shrimali, Jeslin Puthenparambil
- EE384Y Course Project
2Outline
- Features
- System Architecture
- Hardware Architecture
- Software
- Architecture
- Software-Hardware interaction
- Test topologies
3Features
- 8x8 layer 2 switch
- External SRAM (statically allocated) for packet
storage - Performs address learning - Max 4 addresses per
port - Implements 802.1D spanning tree protocol running
from an external server
4System Architecture
48 port commercial switch
NetFPGA Server
Spanning Tree Server
0
7
NetFPGA 8x8 Switch hardware
Packet Gen
Spanning Tree Client (s)
Hardware part of the project
Software part of the project
5Hardware Architecture
SRAM
SRAM
Ethernet Controller
CFPGA
UFPGA
6Hardware UFPGA Block Diagram
Memory Interface
CFPGA Interface
Address Table
Address Learning
Ingress Data
FIFO Status
Control Engine
Addr
to/from Memory
to/from CFPGA
Egress Data
Egress Data
7Hardware - Statistics
- Hardware Usage on EP20K400EBC652-1
- 50 for logic elements
- 52 for pins
- Speed 27MHz
- Huge MUX (50 data inputs) on read data
8Software Architecture - Server
Server - functions as the spanning tree protocol
running with the NetFPGA switch Hardware
- 802.1D Spanning Tree Algorithm
- Startup sending BPDUs on the Configured ports
- Process Receive BPDUs
- Process timer expiries
- Sever hardware interface
- Controls the complete NetFPGA board
- Send register access commands as control packets
- Process command responses as control packets
- Send/Receive BPDUs with reserved MAC address
- Always use port 7 for communication with the
hardware - Encapsulate the packets with VLAN-id of the port
7
ST-Server
Spanning Tree algorithm
BPDUs
Server H/W interface
Encapsulated Packets to/from hardware
9Software Architecture - Client
Client - functions like an independent switch or
router running spanning tree protocol
ST-Client
- 802.1D Spanning Tree Algorithm
- Startup sending BPDUs on the Configured ports
- Process Receive BPDUs
- Process timer expiries
- Client hardware interface
- Send/Receive BPDUs using standard Spanning Tree
broadcast MAC address - Encapsulate the packets with appropriate VLAN-ids
Spanning Tree algorithm
BPDUs
Client H/W interface
Encapsulated Packets to/from hardware
10Software Hardware Interaction
- Server sending a BPDU to the client on port 0
48 port commercial switch
NetFPGA Server
0
7
NetFPGA 8x8 Switch hardware
DAAA-7B-C8-BB-00-00, SAAA-7B-C8-BB-00-0F,
VID15,SAP,BPDU
DAAA-7B-C8-BB-00-00, SAAA-7B-C8-BB-00-0F,
SAP,BPDU
DA01-80-C2-00-00-00, SAAA-7B-C8-BB-00-0F,
SAP,BPDU
DA01-80-C2-00-00-00, SAAA-7B-C8-BB-00-0F,
VID08,SAP,BPDU
11Software Hardware Interaction
- Client sending a BPDU to the Server on port 0
48 port commercial switch
NetFPGA Server
0
7
NetFPGA 8x8 Switch hardware
DA01-80-C2-00-00-00, SAAA-7B-C8-BB-00-10,
VID08,SAP,BPDU
DA01-80-C2-00-00-00, SAAA-7B-C8-BB-00-10,
SAP,BPDU
DAAA-7B-C8-BB-00-08, SAAA-7B-C8-BB-00-00,
SAP,BPDU
DAAA-7B-C8-BB-00-08, SAAA-7B-C8-BB-00-00,
VID15,SAP,BPDU
12Test Topologies
Simple Topology
Topology with loop
Client
Client
Server
Server
client
client