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 <[email protected]>
udpfwd: allow BE and FE run over same core
Change-Id: Id0d3aa20bf10735dca00a1e16b0dcc0ba9642140
Signed-off-by: Konstantin Ananyev <[email protected]>
udpfwd: avoid loads blocked by stores while updating mbuf tx_offload
Change-Id: Id0b6e2cf176493188f6628f92700a3095ab6af85
Signed-off-by: Konstantin Ananyev <[email protected]>
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 <[email protected]>
Update README to sync with latest changes
Change-Id: Ib9238612706f963b9581f98c4b2592e3c0d55cd0
Signed-off-by: Konstantin Ananyev <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
libtle_udp: add missing license header for udp_rxtx.c
Change-Id: If31a72e07ffe4947297c722ce5624ea8ed5f101f
Signed-off-by: Konstantin Ananyev <[email protected]>
Fixed reallocated memory initialisation bug
Change-Id: I8db6fe42303022c5ee3326892a4670f8445c27ed
Signed-off-by: Mohammad Abdul Awal <[email protected]>
Adding a .gitignore
Change-Id: Iee1d670f0132d1cce7369377c7b2e2f808c8a9df
Signed-off-by: Ed Warnicke <[email protected]>
Adding .gitreview file
Change-Id: I5f2cc522d781bbc1ae9a74d16eaf194d05721247
Signed-off-by: Ed Warnicke <[email protected]>
Add vagrant/ support
Change-Id: I1ca9900d487b96e86a64a817abea7bec1154feff
Signed-off-by: Ed Warnicke <[email protected]>
Initial commit of tldk code.
Change-Id: Ib96fdd2c57bae0a51ed420137c35eb8e2ee58473
Signed-off-by: Konstantin Ananyev <[email protected]>
Signed-off-by: Ed Warnicke <[email protected]>