- Xilinx Vivado 2017.4
- Xilinx SDNet 2017.4
- Zynq Processing Sysyem
- 1G Ethernet IP Core with 2 different Phy (RGMII,1000BASEX)
- Programmable Packets Parser, FlowTable and Processing Pipeline
signal | range | address |
---|---|---|
Ethernet0 | 256k | 0x43c00000 |
Ethernet1 | 256k | 0x43c40000 |
Ethernet2 | 256k | 0x43c80000 |
Ethernet3 | 256k | 0x43cc0000 |
Ethernet4 | 256k | 0x43d00000 |
Ethernet5 | 256k | 0x43d40000 |
Ethernet6 | 256k | 0x43d80000 |
Ethernet7 | 256k | 0x43dc0000 |
Packet_pipeline | 256k | 0x43e00000 |
Just copy all the files in ./ready_to_download/sd_card/ into the FAT partition of SD_card, and start the device.
Download the repository:
$ git clone https://github.com/maxluck518/ons45-app53-ref_ofshw
Open Vivado 2017.4 and move into the dir downloaded before, then run the following tcl command:
$ source ./onets_7045_8x_ref_ofshw.tcl
Wait until the script completed.
-
Run Synethesis,Implement and Generate bitstream steps in Vivado;
-
Wait until the Steps completed,Launch Vivado SDK to generate boot.bin and devicetree.dtc
For more details, please refer to the documents: UG973
Currently, the project only support for only 1 action for packet forwarding.
Extact the tcp/ip five-tuple(dst_ip,src_ip,proto,dst_port,src_port)
key (phy_src_port,dip,sip,proto,dport,sport) | mask (wildcard_for_key) | value (phy_dst_port) |
---|---|---|
112 bits | 112 bits | 8 bits |
Based on the value got from the lookup table, Each packet can be sent to the specific phy_port.
For more about SDNet : UG1252, UG1012
The Software Agent is used for downloading flow_entry to the lookup table in SDNet.
Use the Prebuild app download_flow_entry in ./ready_to_download/tools/
Create :
$ touch test.txt
Edit :
$ vim test.txt
$ ./download_flow_entry test.txt
For more details about the flow_entry format: flow_table
To be continued!