Age | Commit message (Collapse) | Author | Files | Lines |
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
- 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>
|
|
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
|
|
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>
|
|
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>
|
|
Change-Id: I46fc0eb7f32dfafd22527c7711520cd3a1a0f48a
Signed-off-by: Jielong Zhou <jielong.zjl@antfin.com>
|
|
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>
|
|
On gcc 7.0+, we could encounter this error.
Change-Id: I7399197b91ce0c8b3106c08b573469c15c2075b9
Signed-off-by: Jianfeng Tan <henry.tjf@antfin.com>
|
|
Change-Id: I9d83b254fa66ff72dd2faddf366f35ecda13a6ea
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
|
Change-Id: I460b88661656b64558b442c7800b4edc20ad4b56
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
|
existing stream.
Change-Id: I3109b843178cc8576ebaa6eae6c3f75081067feb
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
|
- 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>
|
|
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>
|
|
Change-Id: Ied0e976aa26f71dc4ccbf62deae9cd756ee4b82d
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
|
Change-Id: I8ab713c98712fafe2550a6954224ebc741cf9029
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
|
Change-Id: I313f048fc0888d661f8b0e34af6256afc516670a
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
|
Change-Id: I5cfcff8be275ab2a2fb4ad6a62777a8cb88f425b
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
|
|
size for rx_synack
Change-Id: I47b7775445bc4ba647f9da9edafc4b255082e926
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
|
|
* 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>
|
|
Change-Id: I0332d1cc4ce3acc993da0037614f59102d059690
Signed-off-by: Tomasz Kopec <tomaszx.kopec@intel.com>
|
|
Change-Id: I911fdeeb25bc1112cd38eaa96c34f47a7bf49060
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
|
Change-Id: Ibe3ac4b401ea9c7680ab5d3e8c73557d95402ff2
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
|
|
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>
|
|
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>
|
|
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>
|
|
'Public' functions should return negative values.
Change-Id: I88eaf76f882eee08a4198543d0c8531656530360
Signed-off-by: Karol Latecki <karolx.latecki@intel.com>
|
|
Change-Id: Ia4890e174fa5e19ccfaeb23c1ba3e3d69f841af7
Signed-off-by: Karol Latecki <karolx.latecki@intel.com>
|
|
Change-Id: Ice9cc37ff538af185c8fcb18bedd007c175299e7
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
|
Change-Id: I09661a97206e8714c05f4c4f31d23d250cd0933a
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
|
Change-Id: I804ab3bbbfe8c64adebfbf8ed2135d0aded509e3
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
|
Change-Id: I28b180a6c91165049cd7cc58a64f1e5e1698da61
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
|
Change-Id: Iefc866e71e887fe23ff9473b23577b6e576f18b1
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Change-Id: If31a72e07ffe4947297c722ce5624ea8ed5f101f
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
|
Change-Id: Ib96fdd2c57bae0a51ed420137c35eb8e2ee58473
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Signed-off-by: Ed Warnicke <eaw@cisco.com>
|