AgeCommit message (Collapse)AuthorFilesLines
2020-03-05TLDKv2dev-next-socketJianfeng Tan289-1313/+45114
Signed-off-by: Jianfeng Tan <henry.tjf@antfin.com> Signed-off-by: Jielong Zhou <jielong.zjl@antfin.com> Signed-off-by: Jian Zhang <wuzai.zj@antfin.com> Signed-off-by: Chen Zhao <winters.zc@antfin.com> Change-Id: I55c39de4c6cd30f991f35631eb507f770230f08e
2019-08-13l4p/tcp: fix removing overlapped dataJielong Zhou3-6/+106
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>
2019-08-13l4p/tcp_ofo: fix handling out-of-order packetsJielong Zhou3-69/+128
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>
2019-07-02l4p/udp: enqueue fragmented packets as a wholeJielong Zhou1-4/+7
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>
2019-07-01l4p: refactor rx checksum checkJianfeng Tan6-44/+28
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>
2019-06-27l4p/tcp: few fixes for sending RST packet logicJianfeng Tan1-7/+10
- 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>
2019-06-27dpdk: automate make configJianfeng Tan3-5/+12
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
2019-06-14dpdk: move to v18.11 as default DPDK versionJianfeng Tan7-35/+21
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>
2019-06-13l4p: fix compile errorJianfeng Tan1-0/+1
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>
2019-05-23l4p/udp: fix errno not setJianfeng Tan1-2/+7
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>
2019-05-23l4p/tcp: fix seq calculation in partial ackJielong Zhou1-6/+7
Change-Id: I46fc0eb7f32dfafd22527c7711520cd3a1a0f48a Signed-off-by: Jielong Zhou <jielong.zjl@antfin.com>
2019-05-23l4p/tcp: fix dropping sequential packetJielong Zhou1-7/+3
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>
2019-05-23fix implicit-fallthrough errorJianfeng Tan1-0/+2
On gcc 7.0+, we could encounter this error. Change-Id: I7399197b91ce0c8b3106c08b573469c15c2075b9 Signed-off-by: Jianfeng Tan <henry.tjf@antfin.com>
2019-05-22test/gtest: fix issue with CIKonstantin Ananyev1-3/+3
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>
2018-08-15Add INFO.yaml fileVanessa Rene Valderrama1-0/+66
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>
2018-02-09tldk: introduce versioning, follow DPDK notationv18.02Konstantin Ananyev3-0/+91
Change-Id: I9d83b254fa66ff72dd2faddf366f35ecda13a6ea Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2018-02-09Merge "at DPDK queue setup take into account device descriptor limits."Konstantin Ananyev2-7/+15
2018-02-08at DPDK queue setup take into account device descriptor limits.Konstantin Ananyev2-7/+15
Change-Id: Idf7c65a8499f41d2cd53342f91f2b87e902faf58 Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2018-02-08Move to 17.11 as default DPDK version.Konstantin Ananyev2-6/+5
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>
2018-02-07tldk: make sure it builds/works with latest dpdk (17.11/18.02)Konstantin Ananyev13-156/+178
Change-Id: I460b88661656b64558b442c7800b4edc20ad4b56 Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2017-11-24l4fwd: allow to specify TX payload contents for rxtx modeKonstantin Ananyev5-16/+104
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>
2017-11-01tle_tcp: return ENODATA for unprocessed/unused packets that belong to ↵Konstantin Ananyev1-2/+1
existing stream. Change-Id: I3109b843178cc8576ebaa6eae6c3f75081067feb Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2017-10-31Integrate TLDK with NGINXKonstantin Ananyev457-0/+228981
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>
2017-07-27- Introduce tle_tcp_stream_readv() and tle_tcp_stream_writev().Konstantin Ananyev22-281/+902
- 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>
2017-06-30Add l4fwd RXTX modeRemy Horton8-11/+162
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>
2017-06-20libtle_l4p: fix both wl1 and wl2 should coexist inside union wui.Konstantin Ananyev1-1/+1
Change-Id: Ied0e976aa26f71dc4ccbf62deae9cd756ee4b82d Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2017-06-11libtle_l4p: fix at termination tcp stream not always cleanup it's send queue.Konstantin Ananyev2-7/+24
Change-Id: I8ab713c98712fafe2550a6954224ebc741cf9029 Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2017-06-09tle_tcp_proces: fix the issue when strem can sit in the txs queue forever.Konstantin Ananyev1-4/+5
Change-Id: I313f048fc0888d661f8b0e34af6256afc516670a Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2017-05-15Added rte_ring wrapper functions to support dpdk-17.05 and older versionMohammad Abdul Awal21-404/+514
Change-Id: I5cfcff8be275ab2a2fb4ad6a62777a8cb88f425b Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
2017-05-09Merge "tldk_test: added copy command to makefile to make test_scapy_gen.py ↵Konstantin Ananyev4-2/+14
2017-05-09tldk_test: added copy command to makefile to make test_scapy_gen.py visibleKopec, TomaszX4-2/+14
Change-Id: Iedad6db1808a20d0bd00b9d23f489dffd3ef0a4b Signed-off-by: Kopec, TomaszX <tomaszx.kopec@intel.com> Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
2017-05-09two fixes. - allow conditional jumbo frame based on rx_max_pkt_len - fix mss ↵Mohammad Abdul Awal4-4/+5
size for rx_synack Change-Id: I47b7775445bc4ba647f9da9edafc4b255082e926 Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
2017-04-14* Add siphash file for calculating the sequence number.Reshma Pattan9-33/+250
* 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>
2017-04-10tcp_stream_close issue fixed, added tcp_stream tests (FPP-350)Tomasz Kopec2-3/+3
Change-Id: I0332d1cc4ce3acc993da0037614f59102d059690 Signed-off-by: Tomasz Kopec <tomaszx.kopec@intel.com>
2017-03-27tcp: fix RCV.WND set incorreclty when peer doesn't support WSCALE optionKonstantin Ananyev2-1/+13
Change-Id: I911fdeeb25bc1112cd38eaa96c34f47a7bf49060 Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2017-03-23implement sw segmentation for tcpMohammad Abdul Awal3-38/+216
Change-Id: Ibe3ac4b401ea9c7680ab5d3e8c73557d95402ff2 Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
2017-03-06Rewrite accept() code-path and make l4fwd not to close() on FIN immediatelly.Konstantin Ananyev10-439/+469
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>
2017-02-28test/gtest: enable unit test with scapyMohammad Abdul Awal1-1/+1
Change-Id: I658b68c4a4cd5a28e3dd6c37bba6e8d96475a948 Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
2017-02-24Introduce first version of TCP code.Konstantin Ananyev86-4706/+15344
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>
2017-02-22dpdk/makefile: add librte_pmd_pcap support for unit testsMohammad Abdul Awal1-0/+1
Change-Id: I4bd6276e473112cbb84c48f01a5690d6eda2baf5 Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
2017-02-22gtest: disable test_tle_udp_devMohammad Abdul Awal1-1/+1
Change-Id: I2433b70e380583bd112248a62b25894efc36dfa6 Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
2017-02-21Bump default dpdk version to 16.11Konstantin Ananyev1-1/+1
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>
2017-01-24Merge "tldk test: Update tle_dev unit tests"Konstantin Ananyev2-2/+31
2017-01-24tldk_test: fix add define for older gccDaniel Mrzyglod1-0/+10
In CentOS 7 __STDC_FORMAT_MACROS define was missing. Change-Id: I4d2a6d4984edb8be3c15b6ae9d6db7a5b578d1a4 Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>
2017-01-19tldk test: Update tle_dev unit testsKarol Latecki2-2/+31
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>
2017-01-19Merge "tldk: fix possibility of tle_event_active() from DOWN to UP"Konstantin Ananyev2-1/+2
2017-01-19tldk: fix possibility of tle_event_active() from DOWN to UPKarol Latecki2-1/+2
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>
2017-01-16tldk/gtest: Modify makefile to allow compiling with DPDK 16.04Karol Latecki1-2/+2
Change-Id: I1cfcbd3a62fae0964ef7f239cfdcdf5abe2f024d Signed-off-by: Karol Latecki <karolx.latecki@intel.com>
2016-11-15fix dpdk version checkingMohammad Abdul Awal1-1/+1
Change-Id: Ic6fda3f3416a5a4ed6df29a3778ddea3ae87b40d Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
2016-10-21Merge "example/udpfw: assign queue id after mac info in ports initialized"Konstantin Ananyev1-44/+19