aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
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
visible"
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
2016-10-21tldk: fix for positive errno return values in udp_ctl.cKarol Latecki3-8/+8
'Public' functions should return negative values. Change-Id: I88eaf76f882eee08a4198543d0c8531656530360 Signed-off-by: Karol Latecki <karolx.latecki@intel.com>
2016-10-21tldk: fix for wrong rte_errno value in event.cKarol Latecki2-2/+2
Change-Id: Ia4890e174fa5e19ccfaeb23c1ba3e3d69f841af7 Signed-off-by: Karol Latecki <karolx.latecki@intel.com>
2016-10-19example/udpfw: assign queue id after mac info in ports initializedMohammad Abdul Awal1-44/+19
fixes 8ae38dfb285a ("Initial working version of RSS"). Change-Id: I4c4e79c6f23a39b44f3a3f609d1bee540df6aa54 Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
2016-10-17test/gtest: fix stream open test-cases failKonstantin Ananyev1-1/+25
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>
2016-10-07makefiles: don't assume that output and target is always the sameKonstantin Ananyev3-6/+6
Change-Id: I7d313c74e2daf4d75c5c11460bdb87737cd46851 Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-10-07libtle_udp: don't allow to open stream for unsupported familyKonstantin Ananyev1-4/+12
Change-Id: Ice9cc37ff538af185c8fcb18bedd007c175299e7 Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-10-07libtle_udp: fix possible dereference of NULL ptr in tle_udp_del_dev()Konstantin Ananyev1-2/+1
Change-Id: I09661a97206e8714c05f4c4f31d23d250cd0933a Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-10-07libtle_udp: fix incorrect comparision in ymm_mask_cmp()Konstantin Ananyev1-5/+5
Change-Id: I804ab3bbbfe8c64adebfbf8ed2135d0aded509e3 Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-10-07tldk_test: Add TLDK unit testsDaniel Mrzyglod17-3/+1561
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>
2016-10-06Enable C++ files compilationKonstantin Ananyev10-6/+311
Change-Id: I28b180a6c91165049cd7cc58a64f1e5e1698da61 Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-09-16RFC: L4 (TCP, UDP) library public API.Konstantin Ananyev1-0/+734
Change-Id: Iead30e37ce8696bbba6d4ba03e1c335b65c76b37 Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-09-16allocated all port and all cpu momory together instead of reallocMohammad Abdul Awal4-7/+18
Change-Id: I3240e6afefb5d784e08e3a5a1b70ada7d5b4b223 Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
2016-09-15udpfw: dynamic allocation of netbe_* structuresMohammad Abdul Awal4-11/+43
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>
2016-09-13add list of blocked ports for IPv6Mohammad Abdul Awal3-25/+41
Change-Id: Iefc866e71e887fe23ff9473b23577b6e576f18b1 Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
2016-09-12Merge "added Python script to generate streams for fe.cfg file"Konstantin Ananyev1-0/+199
2016-09-09makefile: allow using DPDK from git and OS distributionsMohammad Abdul Awal7-286/+386
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>
2016-09-09added Python script to generate streams for fe.cfg fileMohammad Abdul Awal1-0/+199
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>
2016-09-06Initial working version of RSSMohammad Abdul Awal9-316/+768
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>
2016-07-29Merge "udpfwd: allow BE and FE run over same core"Konstantin Ananyev2-78/+157
2016-07-29udpfwd: allow BE and FE run over same coreKonstantin Ananyev2-78/+157
Change-Id: Id0d3aa20bf10735dca00a1e16b0dcc0ba9642140 Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-07-29udpfwd: avoid loads blocked by stores while updating mbuf tx_offloadKonstantin Ananyev1-3/+9
Change-Id: Id0b6e2cf176493188f6628f92700a3095ab6af85 Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-07-19fix segfault on input packets with invalid checksumKonstantin Ananyev2-15/+39
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>