tldk.git
7 years agolibtle_udp: fix possible dereference of NULL ptr in tle_udp_del_dev() 13/3313/1
Konstantin Ananyev [Fri, 7 Oct 2016 10:58:00 +0000 (11:58 +0100)]
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>
7 years agolibtle_udp: fix incorrect comparision in ymm_mask_cmp() 12/3312/1
Konstantin Ananyev [Fri, 7 Oct 2016 10:54:01 +0000 (11:54 +0100)]
libtle_udp: fix incorrect comparision in ymm_mask_cmp()

Change-Id: I804ab3bbbfe8c64adebfbf8ed2135d0aded509e3
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
7 years agotldk_test: Add TLDK unit tests 98/3298/3
Daniel Mrzyglod [Sat, 6 Aug 2016 19:38:27 +0000 (20:38 +0100)]
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>
7 years agoEnable C++ files compilation 97/3297/1
Konstantin Ananyev [Sat, 6 Aug 2016 19:43:20 +0000 (20:43 +0100)]
Enable C++ files compilation

Change-Id: I28b180a6c91165049cd7cc58a64f1e5e1698da61
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
7 years agoRFC: L4 (TCP, UDP) library public API. 20/2920/1
Konstantin Ananyev [Fri, 16 Sep 2016 14:39:12 +0000 (15:39 +0100)]
RFC: L4 (TCP, UDP) library public API.

Change-Id: Iead30e37ce8696bbba6d4ba03e1c335b65c76b37
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
7 years agoallocated all port and all cpu momory together instead of realloc 19/2919/1
Mohammad Abdul Awal [Thu, 15 Sep 2016 08:03:08 +0000 (09:03 +0100)]
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>
7 years agoudpfw: dynamic allocation of netbe_* structures 99/2899/1
Mohammad Abdul Awal [Sat, 10 Sep 2016 10:24:16 +0000 (11:24 +0100)]
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>
7 years agoadd list of blocked ports for IPv6 57/2857/1
Mohammad Abdul Awal [Fri, 9 Sep 2016 13:35:00 +0000 (14:35 +0100)]
add list of blocked ports for IPv6

Change-Id: Iefc866e71e887fe23ff9473b23577b6e576f18b1
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
7 years agoMerge "added Python script to generate streams for fe.cfg file"
Konstantin Ananyev [Mon, 12 Sep 2016 22:50:01 +0000 (22:50 +0000)]
Merge "added Python script to generate streams for fe.cfg file"

7 years agomakefile: allow using DPDK from git and OS distributions 66/2766/1
Mohammad Abdul Awal [Tue, 6 Sep 2016 15:58:57 +0000 (16:58 +0100)]
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>
7 years agoadded Python script to generate streams for fe.cfg file 65/2765/1
Mohammad Abdul Awal [Tue, 6 Sep 2016 13:42:17 +0000 (14:42 +0100)]
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>
7 years agoInitial working version of RSS 20/2620/3
Mohammad Abdul Awal [Wed, 15 Jun 2016 08:21:55 +0000 (09:21 +0100)]
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>
7 years agoMerge "udpfwd: allow BE and FE run over same core"
Konstantin Ananyev [Fri, 29 Jul 2016 15:50:50 +0000 (15:50 +0000)]
Merge "udpfwd: allow BE and FE run over same core"

7 years agoudpfwd: allow BE and FE run over same core 35/2135/1
Konstantin Ananyev [Fri, 29 Jul 2016 13:19:59 +0000 (14:19 +0100)]
udpfwd: allow BE and FE run over same core

Change-Id: Id0d3aa20bf10735dca00a1e16b0dcc0ba9642140
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
7 years agoudpfwd: avoid loads blocked by stores while updating mbuf tx_offload 34/2134/1
Konstantin Ananyev [Fri, 29 Jul 2016 12:52:58 +0000 (13:52 +0100)]
udpfwd: avoid loads blocked by stores while updating mbuf tx_offload

Change-Id: Id0b6e2cf176493188f6628f92700a3095ab6af85
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
7 years agofix segfault on input packets with invalid checksum 92/1992/1
Konstantin Ananyev [Mon, 18 Jul 2016 23:02:30 +0000 (00:02 +0100)]
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>
7 years agoUpdate README to sync with latest changes 11/1911/2
Konstantin Ananyev [Thu, 7 Jul 2016 19:33:48 +0000 (20:33 +0100)]
Update README to sync with latest changes

Change-Id: Ib9238612706f963b9581f98c4b2592e3c0d55cd0
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
7 years agoChange libtle_udp to use dring. 10/1910/2
Konstantin Ananyev [Thu, 7 Jul 2016 19:24:24 +0000 (20:24 +0100)]
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>
7 years agoinitial tle_dring implementation 09/1909/2
Konstantin Ananyev [Thu, 7 Jul 2016 18:22:38 +0000 (19:22 +0100)]
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>
7 years agoIntroduce extra layer of hierarchy to the makefiles. 08/1908/1
Konstantin Ananyev [Thu, 7 Jul 2016 18:13:25 +0000 (19:13 +0100)]
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>
7 years agolibtle_udp: add missing license header for udp_rxtx.c 92/1792/1
Konstantin Ananyev [Tue, 28 Jun 2016 16:53:53 +0000 (17:53 +0100)]
libtle_udp: add missing license header for udp_rxtx.c

Change-Id: If31a72e07ffe4947297c722ce5624ea8ed5f101f
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
7 years agoMerge "Adding a .gitignore"
Konstantin Ananyev [Mon, 27 Jun 2016 13:52:34 +0000 (13:52 +0000)]
Merge "Adding a .gitignore"

7 years agoFixed reallocated memory initialisation bug 84/1684/2
Mohammad Abdul Awal [Tue, 21 Jun 2016 09:56:55 +0000 (10:56 +0100)]
Fixed reallocated memory initialisation bug

Change-Id: I8db6fe42303022c5ee3326892a4670f8445c27ed
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
8 years agoAdding a .gitignore 96/1396/5
Ed Warnicke [Fri, 3 Jun 2016 21:38:26 +0000 (14:38 -0700)]
Adding a .gitignore

Change-Id: Iee1d670f0132d1cce7369377c7b2e2f808c8a9df
Signed-off-by: Ed Warnicke <eaw@cisco.com>
8 years agoMerge "Add vagrant/ support"
Konstantin Ananyev [Tue, 7 Jun 2016 15:26:40 +0000 (15:26 +0000)]
Merge "Add vagrant/ support"

8 years agoAdding .gitreview file 90/1390/2
Ed Warnicke [Fri, 3 Jun 2016 16:49:43 +0000 (11:49 -0500)]
Adding .gitreview file

Change-Id: I5f2cc522d781bbc1ae9a74d16eaf194d05721247
Signed-off-by: Ed Warnicke <eaw@cisco.com>
8 years agoAdd vagrant/ support 97/1397/3
Ed Warnicke [Fri, 3 Jun 2016 21:40:05 +0000 (14:40 -0700)]
Add vagrant/ support

Change-Id: I1ca9900d487b96e86a64a817abea7bec1154feff
Signed-off-by: Ed Warnicke <eaw@cisco.com>
8 years agoInitial commit of tldk code. 89/1389/3
Konstantin Ananyev [Fri, 3 Jun 2016 15:43:13 +0000 (16:43 +0100)]
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>
8 years agoInitial empty repository
C.J. Collier [Thu, 19 May 2016 07:49:37 +0000 (07:49 +0000)]
Initial empty repository