120 likes | 394 Views
802.1D Spanning Tree Compliant switch. Gireesh Shrimali, Jeslin Puthenparambil EE384Y Course Project. Outline. Features System Architecture Hardware Architecture Software Architecture Software-Hardware interaction Test topologies. Features . 8x8 layer 2 switch
E N D
802.1D Spanning Tree Compliant switch Gireesh Shrimali, Jeslin Puthenparambil EE384Y Course Project
Outline • Features • System Architecture • Hardware Architecture • Software • Architecture • Software-Hardware interaction • Test topologies
Features • 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
System 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
Hardware Architecture SRAM SRAM UFPGA CFPGA Ethernet Controller
Hardware – UFPGA Block Diagram Memory Interface Address Table CFPGA Interface Address Learning Ingress Data FIFO Status Addr Control Engine to/from Memory to/from CFPGA Egress Data Egress Data
Hardware - Statistics • Hardware Usage on EP20K400EBC652-1 • 50% for logic elements • 52% for pins • Speed: 27MHz • Huge MUX (~50 data inputs) on read data
Software Architecture - Server • 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 Server - functions as the spanning tree protocol running with the NetFPGA switch Hardware ST-Server Spanning Tree algorithm BPDUs Server H/W interface Encapsulated Packets to/from hardware
Software Architecture - 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 Client - functions like an independent switch or router running spanning tree protocol ST-Client Spanning Tree algorithm BPDUs Client H/W interface Encapsulated Packets to/from hardware
Software Hardware Interaction • Server sending a BPDU to the client on port 0 48 port commercial switch NetFPGA Server 0 7 NetFPGA 8x8 Switch hardware DA:AA-7B-C8-BB-00-00, SA:AA-7B-C8-BB-00-0F, VID:15,SAP,BPDU DA:AA-7B-C8-BB-00-00, SA:AA-7B-C8-BB-00-0F, SAP,BPDU DA:01-80-C2-00-00-00, SA:AA-7B-C8-BB-00-0F, SAP,BPDU DA:01-80-C2-00-00-00, SA:AA-7B-C8-BB-00-0F, VID:08,SAP,BPDU
Software Hardware Interaction • Client sending a BPDU to the Server on port 0 48 port commercial switch NetFPGA Server 0 7 NetFPGA 8x8 Switch hardware DA:01-80-C2-00-00-00, SA:AA-7B-C8-BB-00-10, VID:08,SAP,BPDU DA:01-80-C2-00-00-00, SA:AA-7B-C8-BB-00-10, SAP,BPDU DA:AA-7B-C8-BB-00-08, SA:AA-7B-C8-BB-00-00, SAP,BPDU DA:AA-7B-C8-BB-00-08, SA:AA-7B-C8-BB-00-00, VID:15,SAP,BPDU
Test Topologies Simple Topology Topology with loop Client Client Server Server client client