xref: /tldk/
History log of /tldk/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
3082ee6b 31-Jan-2020 Mariusz Drost <mariuszx.drost@intel.com>

l4p/tcp_ofo: ofo and loss tests merge

Addition of tests for packets that are out of order or lost that are
executed on a single machine (with use of tap interface).
Added tests are merged into existing test suite which runs on
local/remote machine. Choice of mode is done with ETH_DEV variable.

Signed-off-by: Mariusz Drost <mariuszx.drost@intel.com>
Change-Id: I766ebda215310342d9dc1edf71bc3667648fdeff

b3e45b24 31-Jan-2020 Mariusz Drost <mariuszx.drost@intel.com>

l4fwd: Change rx offload default

Tap interface does not provide any offload capabilities. To use that
interface with l4fwd app, default offload capabilities should be
set to 0.

Signed-off-by: Mariusz Drost <mariuszx.drost@intel.com>
Change-Id: If30f44bb986b87e079be3ec1dfe0ad5341862030

96c61c9a 27-Jan-2020 Vanessa Rene Valderrama <vvalderrama@linuxfoundation.org>

Update INFO.yaml file

Updating the INFO.yaml to get the job passing and allow for future
automation

Signed-off-by: Vanessa Rene Valderrama <vvalderrama@linuxfoundation.org>
Change-Id: Id537ef98027ffe1b5b3bf76ff8575829362c0c9b

b8f1ef2b 04-Nov-2019 Konstantin Ananyev <konstantin.ananyev@intel.com>

v6: make TCP stream alloc/free to use memtank API

Introduce two extra parameters for TCP context creation:
struct {
uint32_t min;
/**< min number of free streams (grow threshold). */
uint32_t max;
/**< max number of free streams (shrink threshold). */
} free_streams;

By default these params are equal to max_streams value
(avoid dynamic allocation and preserve current beahviour).

grow() is invoked from accept() FE call to refill streams tank for BE.
shrink() is invoked from close() FE call.

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Change-Id: I7af6a76d64813ee4a535323e27ffbfd75037fc92

47eb00f2 25-Oct-2019 Konstantin Ananyev <konstantin.ananyev@intel.com>

v6 rework TCP stream allocation

Allocate TCP stream and all necessary metadata
(RX/TX queues, OFO queue, DRBs, etc.) as one big buffer,
instead of separate alloc() calls for each of the sub-components.

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Change-Id: Idc9f3e9329920dfb34916f9bff28664ee5e99a42

703faabf 27-Jun-2019 Konstantin Ananyev <konstantin.ananyev@intel.com>

v6: memtank introduction

For analogy with mempool, named this structure memtank.
Same a s mempool it allows to alloc/free objects of fixed size
in a lightweight manner (not as lightweight as mempool,
but hopefully close enough).
The whole idea is that alloc/free is used at fast-path and don't
allocate/free more than *min_free* objects at one call.
So for majority of cases our fast-path alloc/free should be lightweight
(LIFO enqueue/dequeue operations).
Also user will need to call grow/shrink periodically
(ideally from the slow-path) to make sure there is enough
free objects in the tank.
Internally it is just a simple LIFO for up to *max_free* objects plus
a list of memory buffers (memchunk) from where these objects were
allocated.

v1 -> v2
- Added UT
- Fixed few bugs

v2 -> v3
- extend UT with more parameters

v3 -> v4
- add object alignement as parameter for memtank_create
- extend UT with more parameters
- added memtank dump routine

v4 -> v5
- fixed few bugs inside memtank lib
- extend UT with:
- new test case
- new command-line options: '-s <obj_size>', '-m <mem_func>'

v5 -> v6
- extend memtank dump to collect/display extra information
- make memtank dump routine MT safe
- add memtank sanity check function
- add proper comments for pubic API

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Change-Id: I8939772577f5d9e293088eaa9a9fe316c3fe8f87

0ee09439 19-Dec-2019 Mariusz Drost <mariuszx.drost@intel.com>

l4p/tcp_ofo: fix killing l4fwd app in tests

Between test cases l4fwd application is closed with kill command.
Default kill signal is SIGTERM which is not supported in l4fwd.
To close l4fwd cleanly, signal has been changed to SIGINT.

Signed-off-by: Mariusz Drost <mariuszx.drost@intel.com>
Change-Id: If083f18cab22766154cc80afa26d45d953277294

21121578 25-Oct-2019 Mariusz Drost <mariuszx.drost@intel.com>

l4p/tcp_ofo: Tests for ofo and loss of pkts

Tests for packets that are out of order and lost. They validate data
send over netcat (TCP) to TLDK/l4fwd app in echo mode. Data is set to
be reordered or loss some percentage of packets.

Signed-off-by: Mariusz Drost <mariuszx.drost@intel.com>
Change-Id: I68f80d1fb75d5e9e5ed6d052ddcdc60588284f78

0e37b2e9 09-Oct-2019 Mariusz Drost <mariuszx.drost@intel.com>

l4p/tcp: fix SIGSEGV when reading IPv6 address

IPv6 address is obtained through pointer to mbuf (part storing IPv6
addr). Structure which then holds that pointer defines it as a pointer
to _m128i data type. Because of that, when code is optimized,
instruction vmovdqa is used, which requires data to be aligned to
16-bytes. Pointer from mbuf does not have to be aligned in that way,
which may cause SIGSEGV.

Solution is to add attribute packed and aligned(1) to structure holding
IPv6 address. With that, vmovdqu assembly instruction is used, which is
the equivalent of vmovdqa, but for unaligned data.

Signed-off-by: Mariusz Drost <mariuszx.drost@intel.com>
Change-Id: I66e7ce2a317de2cdbc763ec8e31141605b5e5469

e4380f48 02-Jul-2019 Jielong Zhou <jielong.zjl@antfin.com>

l4p/tcp: fix removing overlapped data

rte_pktmbuf_adj and rte_pktmbuf_trim don't support removing data more than
one segment. We reimplemented these funtions to support removing multiple
segments.

Change-Id: I3e2d48310595ecae0acef0674ea2c78fa1068c5b
Signed-off-by: Jielong Zhou <jielong.zjl@antfin.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

17f6b7ad 02-Jul-2019 Jielong Zhou <jielong.zjl@antfin.com>

l4p/tcp_ofo: fix handling out-of-order packets

Problems are:
1. ofodb could not be assigned directly, as direct assignment does not
copy the mbuf pointer area belonging to it.

2. _ofo_insert_new and _ofo_insert_right doesn't remove overlap correctly.

3. _ofo_insert_new insert new db in wrong position.

4. rx_ofo_reduce sets wrong seq, and would insert overlapped data into
rx queue.

5. _ofo_compact may miss compacting some ofodbs and doesn't update partly
moved ofodb correctly.

Change-Id: I03f1065ef5a15ef2abc664f9cc98910aab72d39b
Signed-off-by: Jielong Zhou <jielong.zjl@antfin.com>

3fbc22a6 28-Jun-2019 Jielong Zhou <jielong.zjl@antfin.com>

l4p/udp: enqueue fragmented packets as a whole

Send or discard fragments of single IP/UDP packet as a whole, because part
of fragments could not be reassembled. Also avoid mbuf leak, for former
version would never free part of segments which are not sended.

Change-Id: I8cd13e60ced973a8f5d7d24369c3cbee64a38836
Signed-off-by: Jielong Zhou <jielong.zjl@antfin.com>

c5f8f7f0 14-Jun-2019 Jianfeng Tan <henry.tjf@antfin.com>

l4p: refactor rx checksum check

For rx checksum check, we put HW and SW ways into one function, with
some code clean up.
As now we do have CKSUM_UNKNOWN, no need to have dev->rx.ol_flags
at all.

Change-Id: Ied77e63e1ec6f5569d16d4ba666fcc968479197d
Signed-off-by: Jianfeng Tan <henry.tjf@antfin.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

deb5f499 14-Jun-2019 Jianfeng Tan <henry.tjf@antfin.com>

l4p/tcp: few fixes for sending RST packet logic

- for RST on RTO use SND.NXT instead of SND.UNA
- for RST on invalid SEQSEG.ACK in SYN-SENT state:
- use SEG.ACK
- don't terminate the connection

Change-Id: I9943f6fdfb89493af4b0437c5a81af34c450c630
Signed-off-by: Jielong Zhou <jielong.zjl@antfin.com>
Signed-off-by: Jianfeng Tan <henry.tjf@antfin.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

85b0a328 13-Jun-2019 Jianfeng Tan <henry.tjf@antfin.com>

dpdk: automate make config

Users need two steps to compile DPDK:
$ make config -C dpdk
$ make -C dpdk

We don't see the value for that. Add config as a dependency so that we
can compile it with only one step:
$ make -C dpdk

Change-Id: I78bc728e904d969be9ef7575029eea9fda105bc6
Signed-off-by: Jianfeng Tan <henry.tjf@antfin.com>

IT-16521

cecfc87f 13-Jun-2019 Jianfeng Tan <henry.tjf@antfin.com>

dpdk: move to v18.11 as default DPDK version

DPDK v18.11 is the latest LTS verison.

As of the API/ABI changes introduced in ether at v18.08, we cannot
compile l4fwd and nginx with old DPDK versions.

Change-Id: I225302d9a257e9bce4aa22ff84d76a57170e7eb7
Signed-off-by: Jianfeng Tan <henry.tjf@antfin.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

37854f54 13-Jun-2019 Jianfeng Tan <henry.tjf@antfin.com>

l4p: fix compile error

Fix below compile error:

error: ‘d6’ may be used uninitialized in this function
const struct in6_addr *d6;
^~

Change-Id: Ie8c7fb797e5c5d934651973669b3eee791c35ad3
Signed-off-by: Jianfeng Tan <henry.tjf@antfin.com>

0104c556 18-Dec-2018 Jianfeng Tan <henry.tjf@antfin.com>

l4p/udp: fix errno not set

Return EAGAIN as errno properly.

Change-Id: I056e34e6eca4955e1938bd00d86965236eef55fd
Signed-off-by: Jian Zhang <wuzai.zj@antfin.com>
Signed-off-by: Jianfeng Tan <henry.tjf@antfin.com>

5740a1da 17-Dec-2018 Jielong Zhou <jielong.zjl@antfin.com>

l4p/tcp: fix seq calculation in partial ack

Change-Id: I46fc0eb7f32dfafd22527c7711520cd3a1a0f48a
Signed-off-by: Jielong Zhou <jielong.zjl@antfin.com>

0852bebf 07-Jan-2019 Jielong Zhou <jielong.zjl@antfin.com>

l4p/tcp: fix dropping sequential packet

When grouping sequential rx packets, some packet may be dropped incorrectly
because of total length of packets are larger than receive window size
which is out of date.

We do not drop the packet, but check it again with updated receive window
size.

Change-Id: I656864a5f029850da5148b07279a34f22081a342
Signed-off-by: Jielong Zhou <jielong.zjl@antfin.com>

b419e591 20-May-2019 Jianfeng Tan <henry.tjf@antfin.com>

fix implicit-fallthrough error

On gcc 7.0+, we could encounter this error.

Change-Id: I7399197b91ce0c8b3106c08b573469c15c2075b9
Signed-off-by: Jianfeng Tan <henry.tjf@antfin.com>

f6603a8b 22-May-2019 Konstantin Ananyev <konstantin.ananyev@intel.com>

test/gtest: fix issue with CI

New googletest version changed default location of builded libraries.
Update gtest Makefile to work with both locations.

Change-Id: I4bddb257f1edef875c4675bb669b5d2308f6fe0f
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

309fc82f 15-Aug-2018 Vanessa Rene Valderrama <vvalderrama@linuxfoundation.org>

Add INFO.yaml file

Add INFO.yaml to list:
- Project description
- Properties
- Issue Tracking
- Contacts
- PTL information
- Meeting information
- Committer information

Change-Id: I0599a79858f2bea132182c6d85aa57631e6bcb8d
Signed-off-by: Vanessa Rene Valderrama <vvalderrama@linuxfoundation.org>

d8967fb1 09-Feb-2018 Konstantin Ananyev <konstantin.ananyev@intel.com>

tldk: introduce versioning, follow DPDK notation

Change-Id: I9d83b254fa66ff72dd2faddf366f35ecda13a6ea
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

9c72413c 09-Feb-2018 Konstantin Ananyev <konstantin.ananyev@intel.com>

Merge "at DPDK queue setup take into account device descriptor limits."


5b873e3b 08-Feb-2018 Konstantin Ananyev <konstantin.ananyev@intel.com>

at DPDK queue setup take into account device descriptor limits.

Change-Id: Idf7c65a8499f41d2cd53342f91f2b87e902faf58
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

946322cf 08-Feb-2018 Konstantin Ananyev <konstantin.ananyev@intel.com>

Move to 17.11 as default DPDK version.

As 17.11 will be new LTS - made it our default DPDK version.
Updated README.

Change-Id: I955513045ee1c6869a344cb551b095d6971b526f
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

5c795f7b 06-Feb-2018 Konstantin Ananyev <konstantin.ananyev@intel.com>

tldk: make sure it builds/works with latest dpdk (17.11/18.02)

Change-Id: I460b88661656b64558b442c7800b4edc20ad4b56
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

3726dc50 24-Nov-2017 Konstantin Ananyev <konstantin.ananyev@intel.com>

l4fwd: allow to specify TX payload contents for rxtx mode

Introduce a new command-line option that specifies the file
with response payload.

Change-Id: I1a208eeebe1d87970da23956fb08949abf601422
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

c1b4951c 01-Nov-2017 Konstantin Ananyev <konstantin.ananyev@intel.com>

tle_tcp: return ENODATA for unprocessed/unused packets that belong to existing stream.

Change-Id: I3109b843178cc8576ebaa6eae6c3f75081067feb
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

e18a033b 31-Oct-2017 Konstantin Ananyev <konstantin.ananyev@intel.com>

Integrate TLDK with NGINX

Created a clone of nginx (from https://github.com/nginx/nginx)
to demonstrate and benchmark TLDK library integrated with real
world application.
A new nginx module is created and and BSD socket-like API is implemented
on top of native TLDK API.
Note, that right now only minimalistic subset of socket-like API is provided:
- accept
- close
- readv
- recv
- writev
so only limited nginx functionality is available for a moment.

Change-Id: Ie1efe9349a0538da4348a48fb8306cbf636b5a92
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Signed-off-by: Remy Horton <remy.horton@intel.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>


README
app/nginx/.hgtags
app/nginx/LICENSE
app/nginx/README.TLDK
app/nginx/auto/cc/acc
app/nginx/auto/cc/bcc
app/nginx/auto/cc/ccc
app/nginx/auto/cc/clang
app/nginx/auto/cc/conf
app/nginx/auto/cc/gcc
app/nginx/auto/cc/icc
app/nginx/auto/cc/msvc
app/nginx/auto/cc/name
app/nginx/auto/cc/owc
app/nginx/auto/cc/sunc
app/nginx/auto/configure
app/nginx/auto/define
app/nginx/auto/endianness
app/nginx/auto/feature
app/nginx/auto/have
app/nginx/auto/have_headers
app/nginx/auto/headers
app/nginx/auto/include
app/nginx/auto/init
app/nginx/auto/install
app/nginx/auto/lib/conf
app/nginx/auto/lib/geoip/conf
app/nginx/auto/lib/google-perftools/conf
app/nginx/auto/lib/libatomic/conf
app/nginx/auto/lib/libatomic/make
app/nginx/auto/lib/libgd/conf
app/nginx/auto/lib/libxslt/conf
app/nginx/auto/lib/make
app/nginx/auto/lib/openssl/conf
app/nginx/auto/lib/openssl/make
app/nginx/auto/lib/openssl/makefile.bcc
app/nginx/auto/lib/openssl/makefile.msvc
app/nginx/auto/lib/pcre/conf
app/nginx/auto/lib/pcre/make
app/nginx/auto/lib/pcre/makefile.bcc
app/nginx/auto/lib/pcre/makefile.msvc
app/nginx/auto/lib/pcre/makefile.owc
app/nginx/auto/lib/perl/conf
app/nginx/auto/lib/perl/make
app/nginx/auto/lib/zlib/conf
app/nginx/auto/lib/zlib/make
app/nginx/auto/lib/zlib/makefile.bcc
app/nginx/auto/lib/zlib/makefile.msvc
app/nginx/auto/lib/zlib/makefile.owc
app/nginx/auto/make
app/nginx/auto/module
app/nginx/auto/modules
app/nginx/auto/nohave
app/nginx/auto/options
app/nginx/auto/os/conf
app/nginx/auto/os/darwin
app/nginx/auto/os/freebsd
app/nginx/auto/os/linux
app/nginx/auto/os/solaris
app/nginx/auto/os/win32
app/nginx/auto/sources
app/nginx/auto/stubs
app/nginx/auto/summary
app/nginx/auto/threads
app/nginx/auto/types/sizeof
app/nginx/auto/types/typedef
app/nginx/auto/types/uintptr_t
app/nginx/auto/types/value
app/nginx/auto/unix
app/nginx/conf/fastcgi.conf
app/nginx/conf/fastcgi_params
app/nginx/conf/koi-utf
app/nginx/conf/koi-win
app/nginx/conf/mime.types
app/nginx/conf/nginx-tldk.conf
app/nginx/conf/nginx.conf
app/nginx/conf/scgi_params
app/nginx/conf/uwsgi_params
app/nginx/conf/win-utf
app/nginx/contrib/README
app/nginx/contrib/geo2nginx.pl
app/nginx/contrib/unicode2nginx/koi-utf
app/nginx/contrib/unicode2nginx/unicode-to-nginx.pl
app/nginx/contrib/unicode2nginx/win-utf
app/nginx/contrib/vim/ftdetect/nginx.vim
app/nginx/contrib/vim/ftplugin/nginx.vim
app/nginx/contrib/vim/indent/nginx.vim
app/nginx/contrib/vim/syntax/nginx.vim
app/nginx/docs/GNUmakefile
app/nginx/docs/dtd/change_log_conf.dtd
app/nginx/docs/dtd/changes.dtd
app/nginx/docs/html/50x.html
app/nginx/docs/html/index.html
app/nginx/docs/man/nginx.8
app/nginx/docs/text/LICENSE
app/nginx/docs/text/README
app/nginx/docs/xml/change_log_conf.xml
app/nginx/docs/xml/nginx/changes.xml
app/nginx/docs/xsls/changes.xsls
app/nginx/docs/xslt/changes.xslt
app/nginx/misc/GNUmakefile
app/nginx/misc/README
app/nginx/src/core/nginx.c
app/nginx/src/core/nginx.h
app/nginx/src/core/ngx_array.c
app/nginx/src/core/ngx_array.h
app/nginx/src/core/ngx_buf.c
app/nginx/src/core/ngx_buf.h
app/nginx/src/core/ngx_conf_file.c
app/nginx/src/core/ngx_conf_file.h
app/nginx/src/core/ngx_config.h
app/nginx/src/core/ngx_connection.c
app/nginx/src/core/ngx_connection.h
app/nginx/src/core/ngx_core.h
app/nginx/src/core/ngx_cpuinfo.c
app/nginx/src/core/ngx_crc.h
app/nginx/src/core/ngx_crc32.c
app/nginx/src/core/ngx_crc32.h
app/nginx/src/core/ngx_crypt.c
app/nginx/src/core/ngx_crypt.h
app/nginx/src/core/ngx_cycle.c
app/nginx/src/core/ngx_cycle.h
app/nginx/src/core/ngx_file.c
app/nginx/src/core/ngx_file.h
app/nginx/src/core/ngx_hash.c
app/nginx/src/core/ngx_hash.h
app/nginx/src/core/ngx_inet.c
app/nginx/src/core/ngx_inet.h
app/nginx/src/core/ngx_list.c
app/nginx/src/core/ngx_list.h
app/nginx/src/core/ngx_log.c
app/nginx/src/core/ngx_log.h
app/nginx/src/core/ngx_md5.c
app/nginx/src/core/ngx_md5.h
app/nginx/src/core/ngx_module.c
app/nginx/src/core/ngx_module.h
app/nginx/src/core/ngx_murmurhash.c
app/nginx/src/core/ngx_murmurhash.h
app/nginx/src/core/ngx_open_file_cache.c
app/nginx/src/core/ngx_open_file_cache.h
app/nginx/src/core/ngx_output_chain.c
app/nginx/src/core/ngx_palloc.c
app/nginx/src/core/ngx_palloc.h
app/nginx/src/core/ngx_parse.c
app/nginx/src/core/ngx_parse.h
app/nginx/src/core/ngx_parse_time.c
app/nginx/src/core/ngx_parse_time.h
app/nginx/src/core/ngx_proxy_protocol.c
app/nginx/src/core/ngx_proxy_protocol.h
app/nginx/src/core/ngx_queue.c
app/nginx/src/core/ngx_queue.h
app/nginx/src/core/ngx_radix_tree.c
app/nginx/src/core/ngx_radix_tree.h
app/nginx/src/core/ngx_rbtree.c
app/nginx/src/core/ngx_rbtree.h
app/nginx/src/core/ngx_regex.c
app/nginx/src/core/ngx_regex.h
app/nginx/src/core/ngx_resolver.c
app/nginx/src/core/ngx_resolver.h
app/nginx/src/core/ngx_rwlock.c
app/nginx/src/core/ngx_rwlock.h
app/nginx/src/core/ngx_sha1.c
app/nginx/src/core/ngx_sha1.h
app/nginx/src/core/ngx_shmtx.c
app/nginx/src/core/ngx_shmtx.h
app/nginx/src/core/ngx_slab.c
app/nginx/src/core/ngx_slab.h
app/nginx/src/core/ngx_spinlock.c
app/nginx/src/core/ngx_string.c
app/nginx/src/core/ngx_string.h
app/nginx/src/core/ngx_syslog.c
app/nginx/src/core/ngx_syslog.h
app/nginx/src/core/ngx_thread_pool.c
app/nginx/src/core/ngx_thread_pool.h
app/nginx/src/core/ngx_times.c
app/nginx/src/core/ngx_times.h
app/nginx/src/event/modules/ngx_devpoll_module.c
app/nginx/src/event/modules/ngx_epoll_module.c
app/nginx/src/event/modules/ngx_eventport_module.c
app/nginx/src/event/modules/ngx_iocp_module.c
app/nginx/src/event/modules/ngx_iocp_module.h
app/nginx/src/event/modules/ngx_kqueue_module.c
app/nginx/src/event/modules/ngx_poll_module.c
app/nginx/src/event/modules/ngx_select_module.c
app/nginx/src/event/modules/ngx_win32_select_module.c
app/nginx/src/event/ngx_event.c
app/nginx/src/event/ngx_event.h
app/nginx/src/event/ngx_event_accept.c
app/nginx/src/event/ngx_event_acceptex.c
app/nginx/src/event/ngx_event_connect.c
app/nginx/src/event/ngx_event_connect.h
app/nginx/src/event/ngx_event_connectex.c
app/nginx/src/event/ngx_event_openssl.c
app/nginx/src/event/ngx_event_openssl.h
app/nginx/src/event/ngx_event_openssl_stapling.c
app/nginx/src/event/ngx_event_pipe.c
app/nginx/src/event/ngx_event_pipe.h
app/nginx/src/event/ngx_event_posted.c
app/nginx/src/event/ngx_event_posted.h
app/nginx/src/event/ngx_event_timer.c
app/nginx/src/event/ngx_event_timer.h
app/nginx/src/http/modules/ngx_http_access_module.c
app/nginx/src/http/modules/ngx_http_addition_filter_module.c
app/nginx/src/http/modules/ngx_http_auth_basic_module.c
app/nginx/src/http/modules/ngx_http_auth_request_module.c
app/nginx/src/http/modules/ngx_http_autoindex_module.c
app/nginx/src/http/modules/ngx_http_browser_module.c
app/nginx/src/http/modules/ngx_http_charset_filter_module.c
app/nginx/src/http/modules/ngx_http_chunked_filter_module.c
app/nginx/src/http/modules/ngx_http_dav_module.c
app/nginx/src/http/modules/ngx_http_degradation_module.c
app/nginx/src/http/modules/ngx_http_empty_gif_module.c
app/nginx/src/http/modules/ngx_http_fastcgi_module.c
app/nginx/src/http/modules/ngx_http_flv_module.c
app/nginx/src/http/modules/ngx_http_geo_module.c
app/nginx/src/http/modules/ngx_http_geoip_module.c
app/nginx/src/http/modules/ngx_http_gunzip_filter_module.c
app/nginx/src/http/modules/ngx_http_gzip_filter_module.c
app/nginx/src/http/modules/ngx_http_gzip_static_module.c
app/nginx/src/http/modules/ngx_http_headers_filter_module.c
app/nginx/src/http/modules/ngx_http_image_filter_module.c
app/nginx/src/http/modules/ngx_http_index_module.c
app/nginx/src/http/modules/ngx_http_limit_conn_module.c
app/nginx/src/http/modules/ngx_http_limit_req_module.c
app/nginx/src/http/modules/ngx_http_log_module.c
app/nginx/src/http/modules/ngx_http_map_module.c
app/nginx/src/http/modules/ngx_http_memcached_module.c
app/nginx/src/http/modules/ngx_http_mp4_module.c
app/nginx/src/http/modules/ngx_http_not_modified_filter_module.c
app/nginx/src/http/modules/ngx_http_proxy_module.c
app/nginx/src/http/modules/ngx_http_random_index_module.c
app/nginx/src/http/modules/ngx_http_range_filter_module.c
app/nginx/src/http/modules/ngx_http_realip_module.c
app/nginx/src/http/modules/ngx_http_referer_module.c
app/nginx/src/http/modules/ngx_http_rewrite_module.c
app/nginx/src/http/modules/ngx_http_scgi_module.c
app/nginx/src/http/modules/ngx_http_secure_link_module.c
app/nginx/src/http/modules/ngx_http_slice_filter_module.c
app/nginx/src/http/modules/ngx_http_split_clients_module.c
app/nginx/src/http/modules/ngx_http_ssi_filter_module.c
app/nginx/src/http/modules/ngx_http_ssi_filter_module.h
app/nginx/src/http/modules/ngx_http_ssl_module.c
app/nginx/src/http/modules/ngx_http_ssl_module.h
app/nginx/src/http/modules/ngx_http_static_module.c
app/nginx/src/http/modules/ngx_http_stub_status_module.c
app/nginx/src/http/modules/ngx_http_sub_filter_module.c
app/nginx/src/http/modules/ngx_http_upstream_hash_module.c
app/nginx/src/http/modules/ngx_http_upstream_ip_hash_module.c
app/nginx/src/http/modules/ngx_http_upstream_keepalive_module.c
app/nginx/src/http/modules/ngx_http_upstream_least_conn_module.c
app/nginx/src/http/modules/ngx_http_upstream_zone_module.c
app/nginx/src/http/modules/ngx_http_userid_filter_module.c
app/nginx/src/http/modules/ngx_http_uwsgi_module.c
app/nginx/src/http/modules/ngx_http_xslt_filter_module.c
app/nginx/src/http/modules/perl/Makefile.PL
app/nginx/src/http/modules/perl/nginx.pm
app/nginx/src/http/modules/perl/nginx.xs
app/nginx/src/http/modules/perl/ngx_http_perl_module.c
app/nginx/src/http/modules/perl/ngx_http_perl_module.h
app/nginx/src/http/modules/perl/typemap
app/nginx/src/http/ngx_http.c
app/nginx/src/http/ngx_http.h
app/nginx/src/http/ngx_http_cache.h
app/nginx/src/http/ngx_http_config.h
app/nginx/src/http/ngx_http_copy_filter_module.c
app/nginx/src/http/ngx_http_core_module.c
app/nginx/src/http/ngx_http_core_module.h
app/nginx/src/http/ngx_http_file_cache.c
app/nginx/src/http/ngx_http_header_filter_module.c
app/nginx/src/http/ngx_http_parse.c
app/nginx/src/http/ngx_http_postpone_filter_module.c
app/nginx/src/http/ngx_http_request.c
app/nginx/src/http/ngx_http_request.h
app/nginx/src/http/ngx_http_request_body.c
app/nginx/src/http/ngx_http_script.c
app/nginx/src/http/ngx_http_script.h
app/nginx/src/http/ngx_http_special_response.c
app/nginx/src/http/ngx_http_upstream.c
app/nginx/src/http/ngx_http_upstream.h
app/nginx/src/http/ngx_http_upstream_round_robin.c
app/nginx/src/http/ngx_http_upstream_round_robin.h
app/nginx/src/http/ngx_http_variables.c
app/nginx/src/http/ngx_http_variables.h
app/nginx/src/http/ngx_http_write_filter_module.c
app/nginx/src/http/v2/ngx_http_v2.c
app/nginx/src/http/v2/ngx_http_v2.h
app/nginx/src/http/v2/ngx_http_v2_filter_module.c
app/nginx/src/http/v2/ngx_http_v2_huff_decode.c
app/nginx/src/http/v2/ngx_http_v2_huff_encode.c
app/nginx/src/http/v2/ngx_http_v2_module.c
app/nginx/src/http/v2/ngx_http_v2_module.h
app/nginx/src/http/v2/ngx_http_v2_table.c
app/nginx/src/mail/ngx_mail.c
app/nginx/src/mail/ngx_mail.h
app/nginx/src/mail/ngx_mail_auth_http_module.c
app/nginx/src/mail/ngx_mail_core_module.c
app/nginx/src/mail/ngx_mail_handler.c
app/nginx/src/mail/ngx_mail_imap_handler.c
app/nginx/src/mail/ngx_mail_imap_module.c
app/nginx/src/mail/ngx_mail_imap_module.h
app/nginx/src/mail/ngx_mail_parse.c
app/nginx/src/mail/ngx_mail_pop3_handler.c
app/nginx/src/mail/ngx_mail_pop3_module.c
app/nginx/src/mail/ngx_mail_pop3_module.h
app/nginx/src/mail/ngx_mail_proxy_module.c
app/nginx/src/mail/ngx_mail_smtp_handler.c
app/nginx/src/mail/ngx_mail_smtp_module.c
app/nginx/src/mail/ngx_mail_smtp_module.h
app/nginx/src/mail/ngx_mail_ssl_module.c
app/nginx/src/mail/ngx_mail_ssl_module.h
app/nginx/src/misc/ngx_cpp_test_module.cpp
app/nginx/src/misc/ngx_google_perftools_module.c
app/nginx/src/os/unix/ngx_alloc.c
app/nginx/src/os/unix/ngx_alloc.h
app/nginx/src/os/unix/ngx_atomic.h
app/nginx/src/os/unix/ngx_channel.c
app/nginx/src/os/unix/ngx_channel.h
app/nginx/src/os/unix/ngx_daemon.c
app/nginx/src/os/unix/ngx_darwin.h
app/nginx/src/os/unix/ngx_darwin_config.h
app/nginx/src/os/unix/ngx_darwin_init.c
app/nginx/src/os/unix/ngx_darwin_sendfile_chain.c
app/nginx/src/os/unix/ngx_dlopen.c
app/nginx/src/os/unix/ngx_dlopen.h
app/nginx/src/os/unix/ngx_errno.c
app/nginx/src/os/unix/ngx_errno.h
app/nginx/src/os/unix/ngx_file_aio_read.c
app/nginx/src/os/unix/ngx_files.c
app/nginx/src/os/unix/ngx_files.h
app/nginx/src/os/unix/ngx_freebsd.h
app/nginx/src/os/unix/ngx_freebsd_config.h
app/nginx/src/os/unix/ngx_freebsd_init.c
app/nginx/src/os/unix/ngx_freebsd_sendfile_chain.c
app/nginx/src/os/unix/ngx_gcc_atomic_amd64.h
app/nginx/src/os/unix/ngx_gcc_atomic_ppc.h
app/nginx/src/os/unix/ngx_gcc_atomic_sparc64.h
app/nginx/src/os/unix/ngx_gcc_atomic_x86.h
app/nginx/src/os/unix/ngx_linux.h
app/nginx/src/os/unix/ngx_linux_aio_read.c
app/nginx/src/os/unix/ngx_linux_config.h
app/nginx/src/os/unix/ngx_linux_init.c
app/nginx/src/os/unix/ngx_linux_sendfile_chain.c
app/nginx/src/os/unix/ngx_os.h
app/nginx/src/os/unix/ngx_posix_config.h
app/nginx/src/os/unix/ngx_posix_init.c
app/nginx/src/os/unix/ngx_process.c
app/nginx/src/os/unix/ngx_process.h
app/nginx/src/os/unix/ngx_process_cycle.c
app/nginx/src/os/unix/ngx_process_cycle.h
app/nginx/src/os/unix/ngx_readv_chain.c
app/nginx/src/os/unix/ngx_recv.c
app/nginx/src/os/unix/ngx_send.c
app/nginx/src/os/unix/ngx_setaffinity.c
app/nginx/src/os/unix/ngx_setaffinity.h
app/nginx/src/os/unix/ngx_setproctitle.c
app/nginx/src/os/unix/ngx_setproctitle.h
app/nginx/src/os/unix/ngx_shmem.c
app/nginx/src/os/unix/ngx_shmem.h
app/nginx/src/os/unix/ngx_socket.c
app/nginx/src/os/unix/ngx_socket.h
app/nginx/src/os/unix/ngx_solaris.h
app/nginx/src/os/unix/ngx_solaris_config.h
app/nginx/src/os/unix/ngx_solaris_init.c
app/nginx/src/os/unix/ngx_solaris_sendfilev_chain.c
app/nginx/src/os/unix/ngx_sunpro_amd64.il
app/nginx/src/os/unix/ngx_sunpro_atomic_sparc64.h
app/nginx/src/os/unix/ngx_sunpro_sparc64.il
app/nginx/src/os/unix/ngx_sunpro_x86.il
app/nginx/src/os/unix/ngx_thread.h
app/nginx/src/os/unix/ngx_thread_cond.c
app/nginx/src/os/unix/ngx_thread_id.c
app/nginx/src/os/unix/ngx_thread_mutex.c
app/nginx/src/os/unix/ngx_time.c
app/nginx/src/os/unix/ngx_time.h
app/nginx/src/os/unix/ngx_udp_recv.c
app/nginx/src/os/unix/ngx_udp_send.c
app/nginx/src/os/unix/ngx_udp_sendmsg_chain.c
app/nginx/src/os/unix/ngx_user.c
app/nginx/src/os/unix/ngx_user.h
app/nginx/src/os/unix/ngx_writev_chain.c
app/nginx/src/os/win32/nginx.ico
app/nginx/src/os/win32/nginx.rc
app/nginx/src/os/win32/nginx_icon16.xpm
app/nginx/src/os/win32/nginx_icon32.xpm
app/nginx/src/os/win32/nginx_icon48.xpm
app/nginx/src/os/win32/ngx_alloc.c
app/nginx/src/os/win32/ngx_alloc.h
app/nginx/src/os/win32/ngx_atomic.h
app/nginx/src/os/win32/ngx_dlopen.c
app/nginx/src/os/win32/ngx_dlopen.h
app/nginx/src/os/win32/ngx_errno.c
app/nginx/src/os/win32/ngx_errno.h
app/nginx/src/os/win32/ngx_event_log.c
app/nginx/src/os/win32/ngx_files.c
app/nginx/src/os/win32/ngx_files.h
app/nginx/src/os/win32/ngx_os.h
app/nginx/src/os/win32/ngx_process.c
app/nginx/src/os/win32/ngx_process.h
app/nginx/src/os/win32/ngx_process_cycle.c
app/nginx/src/os/win32/ngx_process_cycle.h
app/nginx/src/os/win32/ngx_service.c
app/nginx/src/os/win32/ngx_shmem.c
app/nginx/src/os/win32/ngx_shmem.h
app/nginx/src/os/win32/ngx_socket.c
app/nginx/src/os/win32/ngx_socket.h
app/nginx/src/os/win32/ngx_stat.c
app/nginx/src/os/win32/ngx_thread.c
app/nginx/src/os/win32/ngx_thread.h
app/nginx/src/os/win32/ngx_time.c
app/nginx/src/os/win32/ngx_time.h
app/nginx/src/os/win32/ngx_udp_wsarecv.c
app/nginx/src/os/win32/ngx_user.c
app/nginx/src/os/win32/ngx_user.h
app/nginx/src/os/win32/ngx_win32_config.h
app/nginx/src/os/win32/ngx_win32_init.c
app/nginx/src/os/win32/ngx_wsarecv.c
app/nginx/src/os/win32/ngx_wsarecv_chain.c
app/nginx/src/os/win32/ngx_wsasend.c
app/nginx/src/os/win32/ngx_wsasend_chain.c
app/nginx/src/stream/ngx_stream.c
app/nginx/src/stream/ngx_stream.h
app/nginx/src/stream/ngx_stream_access_module.c
app/nginx/src/stream/ngx_stream_core_module.c
app/nginx/src/stream/ngx_stream_geo_module.c
app/nginx/src/stream/ngx_stream_geoip_module.c
app/nginx/src/stream/ngx_stream_handler.c
app/nginx/src/stream/ngx_stream_limit_conn_module.c
app/nginx/src/stream/ngx_stream_log_module.c
app/nginx/src/stream/ngx_stream_map_module.c
app/nginx/src/stream/ngx_stream_proxy_module.c
app/nginx/src/stream/ngx_stream_realip_module.c
app/nginx/src/stream/ngx_stream_return_module.c
app/nginx/src/stream/ngx_stream_script.c
app/nginx/src/stream/ngx_stream_script.h
app/nginx/src/stream/ngx_stream_split_clients_module.c
app/nginx/src/stream/ngx_stream_ssl_module.c
app/nginx/src/stream/ngx_stream_ssl_module.h
app/nginx/src/stream/ngx_stream_ssl_preread_module.c
app/nginx/src/stream/ngx_stream_upstream.c
app/nginx/src/stream/ngx_stream_upstream.h
app/nginx/src/stream/ngx_stream_upstream_hash_module.c
app/nginx/src/stream/ngx_stream_upstream_least_conn_module.c
app/nginx/src/stream/ngx_stream_upstream_round_robin.c
app/nginx/src/stream/ngx_stream_upstream_round_robin.h
app/nginx/src/stream/ngx_stream_upstream_zone_module.c
app/nginx/src/stream/ngx_stream_variables.c
app/nginx/src/stream/ngx_stream_variables.h
app/nginx/src/stream/ngx_stream_write_filter_module.c
app/nginx/src/tldk/be.c
app/nginx/src/tldk/be.h
app/nginx/src/tldk/debug.h
app/nginx/src/tldk/module.c
app/nginx/src/tldk/ngx_tldk.h
app/nginx/src/tldk/parse.c
app/nginx/src/tldk/tldk_event.c
app/nginx/src/tldk/tldk_sock.c
app/nginx/src/tldk/tldk_sock.h
7e18fa1b 26-Jul-2017 Konstantin Ananyev <konstantin.ananyev@intel.com>

- Introduce tle_tcp_stream_readv() and tle_tcp_stream_writev().
- Introduce flags for tle_ctx_param.
- Introduce TLE_CTX_FLAG_ST - indicates that given ctx will be used
by single thread only.
- Introduce new parameters for tcp context:
timewait - allows user to configure max timeout in TCP_TIMEWAIT state.
icw - allows user to specify desired initial congestion window
for new connections.
-Few optimisations:
cache tx.ol_flags inside tle destination.
calcualte and cache inside ctx cycles_to_ms shift value.
reorder restoring SYN opts and filling TCB a bit.

Change-Id: Ie05087783b3b7f1e4ce99d3555bc5bd098f83fe0
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

e151ee29 30-May-2017 Remy Horton <remy.horton@intel.com>

Add l4fwd RXTX mode

This mode allows for transactions where the request and response
are of different payload sizes

Change-Id: I0744159f0618c9241e576a4af1c02765bbf1dd9f
Signed-off-by: Remy Horton <remy.horton@intel.com>

6e95f5ec 20-Jun-2017 Konstantin Ananyev <konstantin.ananyev@intel.com>

libtle_l4p: fix both wl1 and wl2 should coexist inside union wui.

Change-Id: Ied0e976aa26f71dc4ccbf62deae9cd756ee4b82d
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

2c33ba7b 11-Jun-2017 Konstantin Ananyev <konstantin.ananyev@intel.com>

libtle_l4p: fix at termination tcp stream not always cleanup it's send queue.

Change-Id: I8ab713c98712fafe2550a6954224ebc741cf9029
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

e49446d6 05-Jun-2017 Konstantin Ananyev <konstantin.ananyev@intel.com>

tle_tcp_proces: fix the issue when strem can sit in the txs queue forever.

Change-Id: I313f048fc0888d661f8b0e34af6256afc516670a
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

fbba0a3b 11-May-2017 Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

Added rte_ring wrapper functions to support dpdk-17.05 and older version

Change-Id: I5cfcff8be275ab2a2fb4ad6a62777a8cb88f425b
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

8d020909 09-May-2017 Konstantin Ananyev <konstantin.ananyev@intel.com>

Merge "tldk_test: added copy command to makefile to make test_scapy_gen.py visible"


68f21c31 06-Mar-2017 Kopec, TomaszX <tomaszx.kopec@intel.com>

tldk_test: added copy command to makefile to make test_scapy_gen.py visible

Change-Id: Iedad6db1808a20d0bd00b9d23f489dffd3ef0a4b
Signed-off-by: Kopec, TomaszX <tomaszx.kopec@intel.com>
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

36d90e3a 03-May-2017 Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

two fixes. - allow conditional jumbo frame based on rx_max_pkt_len - fix mss size for rx_synack

Change-Id: I47b7775445bc4ba647f9da9edafc4b255082e926
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

9fa82a63 07-Apr-2017 Reshma Pattan <reshma.pattan@intel.com>

* Add siphash file for calculating the sequence number.
* l4fwd app changed to include new command line parameters
hash and secret key for hash calculation.
* Changed l4fwd library to integrate siphash support for
calculating the sequence number.

Change-Id: I29c60836c8b17a118d76b619fd79398fac200f67
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>

4e3cb261 10-Apr-2017 Tomasz Kopec <tomaszx.kopec@intel.com>

tcp_stream_close issue fixed, added tcp_stream tests (FPP-350)

Change-Id: I0332d1cc4ce3acc993da0037614f59102d059690
Signed-off-by: Tomasz Kopec <tomaszx.kopec@intel.com>

9af556f2 27-Mar-2017 Konstantin Ananyev <konstantin.ananyev@intel.com>

tcp: fix RCV.WND set incorreclty when peer doesn't support WSCALE option

Change-Id: I911fdeeb25bc1112cd38eaa96c34f47a7bf49060
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

c4c44906 03-Mar-2017 Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

implement sw segmentation for tcp

Change-Id: Ibe3ac4b401ea9c7680ab5d3e8c73557d95402ff2
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

21e7392f 03-Mar-2017 Konstantin Ananyev <konstantin.ananyev@intel.com>

Rewrite accept() code-path and make l4fwd not to close() on FIN immediatelly.

Changes in public API:
- removes tle_tcp_stream_synreqs() and tle_tcp_reject()
- adds tle_tcp_stream_update_cfg
Allocates and fills new stream when final ACK for 3-way handshake
is received.

Changes in l4fwd sample application:
prevents l4fwd to call close() on error event immediately:
first try to recv/send remaining data.

Change-Id: I8c5b9d365353084083731a4ce582197a8268688f
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

9cbfd751 28-Feb-2017 Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

test/gtest: enable unit test with scapy

Change-Id: I658b68c4a4cd5a28e3dd6c37bba6e8d96475a948
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

aa97dd1c 21-Feb-2017 Konstantin Ananyev <konstantin.ananyev@intel.com>

Introduce first version of TCP code.

Supported functionality:
- open/close
- listen/accept/connect
- send/recv
In order to achieve that libtle_udp library was
reworked into libtle_l4p library that supports
both TCP and UDP protocols.
New libtle_timer library was introduced
(thanks to Cisco guys and Dave Barach <dbarach@cisco.com>
for sharing their timer code with us).
Sample application was also reworked significantly
to support both TCP and UDP traffic handling.
New UT were introduced.

Change-Id: I806b05011f521e89b58db403cfdd484a37beb775
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
Signed-off-by: Karol Latecki <karolx.latecki@intel.com>
Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>


.gitignore
README
examples/Makefile
examples/l4fwd/Makefile
examples/l4fwd/README
examples/l4fwd/be.cfg
examples/l4fwd/common.h
examples/l4fwd/dpdk_legacy.h
examples/l4fwd/dpdk_version.h
examples/l4fwd/fe.cfg
examples/l4fwd/fwdtbl.h
examples/l4fwd/gen_fe_cfg.py
examples/l4fwd/lcore.h
examples/l4fwd/main.c
examples/l4fwd/netbe.h
examples/l4fwd/parse.c
examples/l4fwd/parse.h
examples/l4fwd/pkt.c
examples/l4fwd/pkt_dpdk_legacy.h
examples/l4fwd/port.h
examples/l4fwd/tcp.h
examples/l4fwd/udp.h
examples/udpfwd/README
examples/udpfwd/main.c
examples/udpfwd/pkt.c
lib/Makefile
lib/libtle_dring/tle_dring.h
lib/libtle_l4p/Makefile
lib/libtle_l4p/ctx.c
lib/libtle_l4p/ctx.h
lib/libtle_l4p/debug.h
lib/libtle_l4p/event.c
lib/libtle_l4p/misc.h
lib/libtle_l4p/net_misc.h
lib/libtle_l4p/osdep.h
lib/libtle_l4p/port_bitmap.h
lib/libtle_l4p/stream.h
lib/libtle_l4p/stream_table.c
lib/libtle_l4p/stream_table.h
lib/libtle_l4p/syncookie.h
lib/libtle_l4p/tcp_ctl.h
lib/libtle_l4p/tcp_misc.h
lib/libtle_l4p/tcp_ofo.c
lib/libtle_l4p/tcp_ofo.h
lib/libtle_l4p/tcp_rxq.h
lib/libtle_l4p/tcp_rxtx.c
lib/libtle_l4p/tcp_stream.c
lib/libtle_l4p/tcp_stream.h
lib/libtle_l4p/tcp_timer.h
lib/libtle_l4p/tcp_txq.h
lib/libtle_l4p/tle_ctx.h
lib/libtle_l4p/tle_event.h
lib/libtle_l4p/tle_tcp.h
lib/libtle_l4p/tle_udp.h
lib/libtle_l4p/udp_rxtx.c
lib/libtle_l4p/udp_stream.c
lib/libtle_l4p/udp_stream.h
lib/libtle_timer/Makefile
lib/libtle_timer/timer.c
lib/libtle_timer/tle_timer.h
lib/libtle_udp/tle_udp_impl.h
lib/libtle_udp/udp_ctl.c
lib/libtle_udp/udp_impl.h
test/Makefile
test/gtest/Makefile
test/gtest/README
test/gtest/main.cpp
test/gtest/test_common.cpp
test/gtest/test_common.h
test/gtest/test_scapy_gen.py
test/gtest/test_tle_ctx.cpp
test/gtest/test_tle_ctx.h
test/gtest/test_tle_tcp_stream.cpp
test/gtest/test_tle_tcp_stream.h
test/gtest/test_tle_udp_ctx.cpp
test/gtest/test_tle_udp_destroy.cpp
test/gtest/test_tle_udp_destroy.h
test/gtest/test_tle_udp_dev.cpp
test/gtest/test_tle_udp_dev.h
test/gtest/test_tle_udp_event.h
test/gtest/test_tle_udp_stream.cpp
test/gtest/test_tle_udp_stream.h
test/gtest/test_tle_udp_stream_gen.cpp
test/gtest/test_tle_udp_stream_gen.h
test/timer/Makefile
test/timer/test_timer.c
f5f10013 21-Feb-2017 Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

dpdk/makefile: add librte_pmd_pcap support for unit tests

Change-Id: I4bd6276e473112cbb84c48f01a5690d6eda2baf5
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

8fb6bb3b 22-Feb-2017 Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

gtest: disable test_tle_udp_dev

Change-Id: I2433b70e380583bd112248a62b25894efc36dfa6
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

b430bba2 15-Feb-2017 Konstantin Ananyev <konstantin.ananyev@intel.com>

Bump default dpdk version to 16.11
16.04 is pretty old these days, plus on fd.io
validation jobs we constantly hit a bug in virtio PMD
that was fixed in latest versions.

Change-Id: Id5066eee8f48220e66e512bf55386c4d1325a238
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

7d4d2657 24-Jan-2017 Konstantin Ananyev <konstantin.ananyev@intel.com>

Merge "tldk test: Update tle_dev unit tests"


a18f8552 06-Dec-2016 Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>

tldk_test: fix add define for older gcc

In CentOS 7 __STDC_FORMAT_MACROS define was missing.

Change-Id: I4d2a6d4984edb8be3c15b6ae9d6db7a5b578d1a4
Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>

759bedce 27-Oct-2016 Karol Latecki <karolx.latecki@intel.com>

tldk test: Update tle_dev unit tests

Added new unit tests for add_dev and del_dev.
Also updated previous tests which were missing cleaning up of devices
in cases where they were actually created.

Change-Id: I6d91cac54b34d4419147c125b7a13b780e1cc001
Signed-off-by: Karol Latecki <karolx.latecki@intel.com>

116a2485 19-Jan-2017 Konstantin Ananyev <konstantin.ananyev@intel.com>

Merge "tldk: fix possibility of tle_event_active() from DOWN to UP"


c603d3ed 21-Oct-2016 Karol Latecki <karolx.latecki@intel.com>

tldk: fix possibility of tle_event_active() from DOWN to UP

Docstring in tle_event.h for tle_event_active() only describes
possibility of activating event from IDLE state.
Also re-added previously failing test case.

Change-Id: Ib9e19b6b3e64cc2836337b6a86884f312df73858
Signed-off-by: Karol Latecki <karolx.latecki@intel.com>
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

dd8d338e 16-Jan-2017 Karol Latecki <karolx.latecki@intel.com>

tldk/gtest: Modify makefile to allow compiling with DPDK 16.04

Change-Id: I1cfcbd3a62fae0964ef7f239cfdcdf5abe2f024d
Signed-off-by: Karol Latecki <karolx.latecki@intel.com>

af7f9031 15-Nov-2016 Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

fix dpdk version checking

Change-Id: Ic6fda3f3416a5a4ed6df29a3778ddea3ae87b40d
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

911f9da3 21-Oct-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

Merge "example/udpfw: assign queue id after mac info in ports initialized"


663163e5 19-Oct-2016 Karol Latecki <karolx.latecki@intel.com>

tldk: fix for positive errno return values in udp_ctl.c

'Public' functions should return negative values.

Change-Id: I88eaf76f882eee08a4198543d0c8531656530360
Signed-off-by: Karol Latecki <karolx.latecki@intel.com>

7a7ef4de 19-Oct-2016 Karol Latecki <karolx.latecki@intel.com>

tldk: fix for wrong rte_errno value in event.c

Change-Id: Ia4890e174fa5e19ccfaeb23c1ba3e3d69f841af7
Signed-off-by: Karol Latecki <karolx.latecki@intel.com>

65c15dd8 19-Oct-2016 Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

example/udpfw: assign queue id after mac info in ports initialized

fixes 8ae38dfb285a ("Initial working version of RSS").

Change-Id: I4c4e79c6f23a39b44f3a3f609d1bee540df6aa54
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

128f0192 17-Oct-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

test/gtest: fix stream open test-cases fail

Update gtest code to spify lookup callback routinies
at context creation.

fixes 2fea8d3d522d31cb ("don't allow to open stream for unsupported family").

Change-Id: Idf89be22d60ee7e2707efab5f4c6abb0220f47a9
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

44222fc2 07-Oct-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

makefiles: don't assume that output and target is always the same

Change-Id: I7d313c74e2daf4d75c5c11460bdb87737cd46851
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

2fea8d3d 07-Oct-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

libtle_udp: don't allow to open stream for unsupported family

Change-Id: Ice9cc37ff538af185c8fcb18bedd007c175299e7
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

1c436f7f 07-Oct-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

libtle_udp: fix possible dereference of NULL ptr in tle_udp_del_dev()

Change-Id: I09661a97206e8714c05f4c4f31d23d250cd0933a
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

300fdaf8 07-Oct-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

libtle_udp: fix incorrect comparision in ymm_mask_cmp()

Change-Id: I804ab3bbbfe8c64adebfbf8ed2135d0aded509e3
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

a152c68e 06-Aug-2016 Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>

tldk_test: Add TLDK unit tests

Unit tests for TLDK libtle_udp & libtle_dring libraries

Change-Id: I6818c72ca0260f1af784e758bfe21118c395afcf
Signed-off-by: Karol Latecki <karolx.latecki@intel.com>
Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>

5d0ab6ce 06-Aug-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

Enable C++ files compilation

Change-Id: I28b180a6c91165049cd7cc58a64f1e5e1698da61
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

95540c9e 16-Sep-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

RFC: L4 (TCP, UDP) library public API.

Change-Id: Iead30e37ce8696bbba6d4ba03e1c335b65c76b37
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

c216b95d 15-Sep-2016 Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

allocated all port and all cpu momory together instead of realloc

Change-Id: I3240e6afefb5d784e08e3a5a1b70ada7d5b4b223
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

258f299a 10-Sep-2016 Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

udpfw: dynamic allocation of netbe_* structures

This patch allows dynamic allocation of memory for the appliation.
The solves the problem of allocating large amount of static memory
which caused accessing the momory locations outside of 32-bit
address-space duing compile-time.

Change-Id: If8031ba846e4ed339d8ce8ebe4fd69325f098d17
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

e57f675d 09-Sep-2016 Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

add list of blocked ports for IPv6

Change-Id: Iefc866e71e887fe23ff9473b23577b6e576f18b1
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

32c9eda3 12-Sep-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

Merge "added Python script to generate streams for fe.cfg file"


55aba2fc 06-Sep-2016 Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

makefile: allow using DPDK from git and OS distributions

User can use DPDK_VERSION to download a specific DPDK version
from git. If no DPDK_VERSION is given, the master branch will be
downloaded. User can also provide RTE_SDK path for DPDK from OS
disctibution or any other location.

Change-Id: I7bbc30984cfc48c70d13b51d8fb6c1928d94a821
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

a1fc5816 06-Sep-2016 Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

added Python script to generate streams for fe.cfg file

This script allows to generate streams for frontend config file
with different parameters, including, number of streams, ipv4/ipv6
port in decimal or hex, FE/BE on same lcore or separate lcore etc.

Change-Id: I8a7e0137ef62363b272756ed4b8811804d4f9ec4
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

8ae38dfb 15-Jun-2016 Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

Initial working version of RSS

The patch enables RSS support for TLDK udpfwd application.
The number of rx queues and tx queues are equal to the number of lcore
enabled for backend operation. NICs calculate the RSS hash based on the
UDP dest port only. The RSS hash key is calculated at runtime based on
the number of queues enebaled.

Change-Id: I06006a4606f8faad8f16241348b2ce19b70335e5
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

58a36746 29-Jul-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

Merge "udpfwd: allow BE and FE run over same core"


50926229 29-Jul-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

udpfwd: allow BE and FE run over same core

Change-Id: Id0d3aa20bf10735dca00a1e16b0dcc0ba9642140
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

2e45b7a3 29-Jul-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

udpfwd: avoid loads blocked by stores while updating mbuf tx_offload

Change-Id: Id0b6e2cf176493188f6628f92700a3095ab6af85
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

9c7aa95e 18-Jul-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

fix segfault on input packets with invalid checksum

libtle_udp: prevent receive code-path to reference packets
that were already freed.

udpfwd: if input device doesn't support IPV4 checksum offload,
we need to recalculate IPV4 header checksum of the
reassembled packet.

fixes 3395610ea65d ("Initial commit of tldk code").
fixes 8efc4c11464f ("Change libtle_udp to use dring").

Change-Id: I77523b1ba63b0f8d25d5f0b3bc777a338ad8acf5
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

3688f046 07-Jul-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

Update README to sync with latest changes

Change-Id: Ib9238612706f963b9581f98c4b2592e3c0d55cd0
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

8efc4c11 07-Jul-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

Change libtle_udp to use dring.

Right now didn't see any noticeable performance boost with these changes.
Though it allowed to get rid of using locks at UDP TX code-path
and simplify the code quite a lot.

Change-Id: If865abd3db9127f510df670d9a8edb168b915770
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

a633eec7 07-Jul-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

initial tle_dring implementation

The Dynamic Ring (dring) is a implementation of unbounded FIFO queue,
that supports lockless bulk enqueue/dequeue for multiple producers/consumers.
Internally it contains producer/consumer head/tail indexes
(same as DPDK rte_ring), plus linked list of Dynamic Ring Blocks (drb)s.
Each drb contains some metadata plus array of pointers to queued objects.
It is a caller responsibility to provide sufficient number of drbs for
enqueue operation, and manage unused drbs returned by dequeue operation.
dring features:
- FIFO (First In First Out)
- Lockless implementation.
- Multi- or single-consumer dequeue.
- Multi- or single-producer enqueue.
- Bulk dequeue.
- Bulk enqueue.

Change-Id: I3621c99c6b114a387036a397e79baa8d1588bdb5
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

c034e691 07-Jul-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

Introduce extra layer of hierarchy to the makefiles.

Now each subdir in the TLDK_ROOT has it's own Makefile.
In preparation for further project expansion.

Change-Id: I80560680a8538734986941e8df343c5393c621cc
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

06ac4c87 28-Jun-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

libtle_udp: add missing license header for udp_rxtx.c

Change-Id: If31a72e07ffe4947297c722ce5624ea8ed5f101f
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

a0e91680 27-Jun-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

Merge "Adding a .gitignore"


d09ce4f4 21-Jun-2016 Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

Fixed reallocated memory initialisation bug

Change-Id: I8db6fe42303022c5ee3326892a4670f8445c27ed
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>

2c6da353 03-Jun-2016 Ed Warnicke <eaw@cisco.com>

Adding a .gitignore

Change-Id: Iee1d670f0132d1cce7369377c7b2e2f808c8a9df
Signed-off-by: Ed Warnicke <eaw@cisco.com>

d22d494e 07-Jun-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

Merge "Add vagrant/ support"


e5fc4640 03-Jun-2016 Ed Warnicke <eaw@cisco.com>

Adding .gitreview file

Change-Id: I5f2cc522d781bbc1ae9a74d16eaf194d05721247
Signed-off-by: Ed Warnicke <eaw@cisco.com>

555bf309 03-Jun-2016 Ed Warnicke <eaw@cisco.com>

Add vagrant/ support

Change-Id: I1ca9900d487b96e86a64a817abea7bec1154feff
Signed-off-by: Ed Warnicke <eaw@cisco.com>

3395610e 03-Jun-2016 Konstantin Ananyev <konstantin.ananyev@intel.com>

Initial commit of tldk code.

Change-Id: Ib96fdd2c57bae0a51ed420137c35eb8e2ee58473
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Signed-off-by: Ed Warnicke <eaw@cisco.com>

b0a4a8b5 19-May-2016 C.J. Collier <cjcollier@linuxfoundation.org>

Initial empty repository