[vc_row][vc_column width=”1/1″][vc_tour][vc_tab title=”Introduction” tab_id=”1454482023-1-25″][vc_column_text]
An OpenFlow switch is a software program or hardware device that forwards packets in a software-defined networking (SDN) environment. OpenFlow switches are either based on the OpenFlow protocol or compatible with it.
The OpenFlowSwitch(HWFT, with Hardware Flow Table) reference design provides a set of board-specific projects.
This design achieves a hardware accelerated OpenFlow switch, using multiple stages of FPGA-implemented hardware flow tables, which are cascaded with software flow tables inside the vSwitch running in the CPU.
Demo runs at Linux level.
[/vc_column_text][/vc_tab][vc_tab title=”Features” tab_id=”1454482023-2-11″][vc_column_text]
Feature | Description |
---|---|
Network STD. | IEEE 802.3, IEEE 802.3u, IEEE 802.3ab |
Physical Layer | 1. 1000/100/10Mbps Copper RJ45 |
2. support Auto MDIX, support Auto Neg. | |
DataLink Layer | 1. RGMII(ONS45 ONS20)/SGMII(ONS30) |
2. support Promiscuous Mode (default promiscuous) | |
3. support MDIO management to all PHYs | |
Switch Method | Mixed (Store-and-Forward in software, cut-through in FPGA) |
Switch Rate | Line rate, FPGA internal BW is 8Gbps |
OpenFlow | v1.3 |
Flow Table | Multiple, pipelined, default 64, max 3 impl. by FPGA |
Meter Table | Supported |
Match Fields | L2-L4 fields |
QoS | WRR queuing |
Metadata | Supported |
VLAN | Support tag-remove/add/modify |
[/vc_column_text][/vc_tab][vc_tab title=”Project List” tab_id=”1454482059749-2-7″][vc_column_text]
[/vc_column_text][/vc_tab][vc_tab title=”Pre-Built Images” tab_id=”1454482060591-3-7″][vc_column_text]
- For quick start demo.
File | ONetSwitch30 |
---|---|
boot.bin | Download |
devicetree | Download |
kernel | Download |
rootfs (EXT) | Download |
sw-lib | Download |
sw-app | Download |
- For image assembling.
File | ONetSwitch30 |
---|---|
system.bit | Download |
dt source | Download |
fsbl | Download |
u-boot (FAT) | Download |
u-boot (EXT) | Download |
rootfs (FAT) | Download |
- Additional init./config. script.
File | ONetSwitch30 |
---|---|
script | Download |
[/vc_column_text][/vc_tab][vc_tab title=”Block Diagram” tab_id=”1454482061742-4-9″][vc_column_text]
- System level
HW FT = Hardware-implemented Flow Table
SW FT = Software-implemented Flow Table
We allow n stages of logical flow tables to be mapped into m stages of physical flow tables, in order to get better flexibility. The physical FTs can be either software-implemented or hardware-implemented.
When implementing HW FTs, the hardware abstraction layer translates the software logic into the values of hardware registers.
- FPGA Diagram
Notice the difference of priority level between software linked list and hardware TCAM.
[/vc_column_text][/vc_tab][vc_tab title=”Address Map” tab_id=”1454482077920-5-3″][vc_column_text]
Base Address
For Zynq PS address map, please refer to Appx. B of Xilinx UG585.
For MAC and DMA register offset and description, please refer to Xilinx PG138 and Xilinx PG021.
ONS20/30/45 | BaseAddr | Notes |
---|---|---|
axi_dma0 | 0x40400000 | |
axi_ethernet0 | 0x43c00000 | eth1, MDIO master |
axi_ethernet1 | 0x43c40000 | eth2 |
axi_ethernet2 | 0x43c80000 | eth3 |
axi_ethernet3 | 0x43cc0000 | eth4 |
packet_pipeline | 0x48000000 | range to 0x48ffffff |
[/vc_column_text][/vc_tab][vc_tab title=”Demo” tab_id=”1454482078856-6-3″][vc_column_text]This is a demo without any controller in the scenario. Here’s another page showing how to run with RYU applications.
- Prepare the images in SD/TF card, following the instructions here.
- Setup the topo like below.
- Without connecting to any controller, manually send entries to enable the bidirectional communication between the two PCs.
*** example *** zynq> <ofsoftswitch-path>/utilities/dpctl tcp:127.0.0.1:6632 flow-mod cmd=add,table=0,prio=1 in_port=1 apply:output=2 zynq> <ofsoftswitch-path>/utilities/dpctl tcp:127.0.0.1:6632 flow-mod cmd=add,table=0,prio=0 in_port=2 apply:output=1
- Ping each other, should get the response.
[/vc_column_text][/vc_tab][/vc_tour][/vc_column][/vc_row]
Leave a Reply
You must be logged in to post a comment.