peixiaoxia / tldk Goto Github PK
View Code? Open in Web Editor NEWThis project forked from fdio/tldk
This project forked from fdio/tldk
1. OVERVIEW TLDK project scope is as follows: 1) To implement a set of libraries for L4 protocol processing (UDP, TCP etc.) for both IPv4 and IPv6. The goal is to provide lightweight, high performance and highly adaptable implementation for L4(UDP, TCP etc.) protocol processing. The provided API are not planned to be compatible with BSD socket API. These libraries are supposed to be built on top of DPDK. Note: these libraries are not supposed to be a 'complete' network stack. Implementation of ARP, IP, ETHER, etc. layers and related routing tables, code for setup, manage and perform actual IO over underlying devices are all out of scope of these libraries. The only information these libraries need to know about the underlying devices: - supported HW offloads - MTU and L3/L2 addresses That allows the libraries to fill L2/L3 headers and mbuf metadata for the outgoing packets. These libraries should be developed in such manner, that they could be used independently from implementations of 2) and 3). 2) To create VPP graph nodes, plugins etc using those libraries to implement a host stack. 3) To create such mechanisms (netlink agents, packaging, etc) necessary to make the resulting host stack easily usable by existing non-vpp aware software. The library uses siphash logic from the below source https://github.com/veorq/SipHash 2. INSTALLATION GUIDE 1) Obtain latest supported DPDK version and build it. (refer to http://dpdk.org for information how to download and build it). Currently supported(tested) DPDK versions: 18.11 LTS. 2) Make sure that RTE_SDK and RTE_TARGET DPDK related environment variables are setup correctly. 3) Go to the TLDK root directory and type: 'make all'. 4) Run sample applications. For enabling unit tests application using GoogleTest please see: ./test/gtest/README As an example: export RTE_SDK=/opt/DPDK export RTE_TARGET=x86_64-native-linuxapp-gcc cd tldk make all ./x86_64-native-linuxapp-gcc/app/l4fwd ... 3. CONTENTS $(TLDK_ROOT) | +----app | | | +-- nginx - a clone of nginx integrated with TLDK | (refer to app/nginx/README.TLDK for more information) | +----lib | | | +--libtle_dring - dring library | | | +--libtle_l4p - implementation of the TCP/UDP packet processing | | | +--libtle_timer - implementation of the timer library | +----examples | | | +--l4fwd - sample app to demonstrate and test libtle_l4p TCP/UDP | | usage (refer to examples/l4fwd/README for more information) | | | +--test - function test scripts for l4lib using l4fwd | +----test - unit-tests | | | +--dring - UT for libtle_dring (standalone app) | | | +--gtest - UT for libtle_dring, libtle_l4p and libtle_timer | | (googletest) | | | +--timer - UT for libtle_timer (standalone app)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.