3 TLDK project scope is as follows:
5 1) To implement a set of libraries for L4 protocol processing (UDP, TCP etc.)
6 for both IPv4 and IPv6.
8 The goal is to provide lightweight, high performance and highly adaptable
9 implementation for L4(UDP, TCP etc.) protocol processing. The provided API
10 are not planned to be compatible with BSD socket API. These libraries are
11 supposed to be built on top of DPDK.
13 Note: these libraries are not supposed to be a 'complete' network stack.
15 Implementation of ARP, IP, ETHER, etc. layers and related routing tables,
16 code for setup, manage and perform actual IO over underlying devices are
17 all out of scope of these libraries.
19 The only information these libraries need to know about the
21 - supported HW offloads
22 - MTU and L3/L2 addresses
23 That allows the libraries to fill L2/L3 headers and mbuf metadata
24 for the outgoing packets.
26 These libraries should be developed in such manner, that they could be used
27 independently from implementations of 2) and 3).
29 2) To create VPP graph nodes, plugins etc using those libraries to implement
32 3) To create such mechanisms (netlink agents, packaging, etc) necessary
33 to make the resulting host stack easily usable by existing non-vpp aware
36 The library uses siphash logic from the below source
37 https://github.com/veorq/SipHash
42 1) Obtain latest DPDK and build it.
43 (refer to http://dpdk.org for information how to download and build it).
44 2) Make sure that RTE_SDK and RTE_TARGET DPDK related environment variables
46 3) Go to the TLDK root directory and type: 'make all'.
47 4) Run sample applications.
49 For enabling unit tests application using GoogleTest please see:
53 export RTE_SDK=/opt/DPDK
54 export RTE_TARGET=x86_64-native-linuxapp-gcc
58 ./x86_64-native-linuxapp-gcc/app/l4fwd ...
66 | +--libtle_dring - dring library
68 | +--libtle_l4p - implementation of the TCP/UDP packet processing
70 | +--libtle_timer - implementation of the timer library
74 | +--l4fwd - sample app to demonstrate and test libtle_l4p TCP/UDP
75 | usage (refer to examples/l4fwd/README for more information)
77 +----test - unit-tests
79 | +--dring - UT for libtle_dring (standalone app)
81 | +--gtest - UT for libtle_dring, libtle_l4p and libtle_timer
84 | +--timer - UT for libtle_timer (standalone app)