Commit Graph

25 Commits (master)

Author SHA1 Message Date
EunYoung Jeong 835563dbba Update configure scripts for ccp integration 2019-05-27 23:12:18 +09:00
EunYoung Jeong dff2c4636f Merge pull request #224 from ccp-project:upstream-thread 2019-05-27 23:07:27 +09:00
Asim Jamshed 8bc045ac19 Shifted CCP enabling support to autoconf settings
- Use `./configure --enable-ccp` to enable ccp (disabled by default)
Fixed Mellanox compatbility issue
	- Fixes: #225
2019-03-22 20:52:22 -07:00
Frank Cangialosi a5c826426f ccp: run ccp as a thread within mtcp 2019-03-12 16:34:36 -04:00
Frank Cangialosi 8139ffa625 apps: add new "perf" application for measuring throughput over mtcp 2019-02-08 18:17:44 -05:00
Asim Jamshed dfe755cb68 - Updated ./configure --help menu 2018-07-19 11:15:29 -04:00
Asim Jamshed c79234dd83 - Exporting rx_idle_thresh macro as a user-configurable parameter that can be set in the command-line. This option may be useful in applications such as node.js. 2018-07-10 12:01:01 -04:00
Asim Jamshed 688d4e1988 - Applied fix suggested by YoungGyoun Moon (ygmoon@ndsl.kaist.edu) that correctly calculates sport-sip-dip-dport pool for establishing client connections.
- Added check for `bc` binary in the autotools script.
2018-07-06 10:08:32 -04:00
Asim Jamshed 52d77dd32c - Updated code to work with the latest version of netmap
--> Updated README.netmap file.
2018-06-23 09:24:06 +09:00
Asim Jamshed 2560098986 - Added warning if hyperthreading is enabled. 2018-06-05 09:56:28 -04:00
Asim Jamshed 88463f9799 - Fixed autoconf script to check "No driver test". 2018-06-04 13:46:39 -04:00
Asim Jamshed 973b576a4a - Lift restriction on the number of RSS queues that you can request (from the S/W side). 2018-05-25 06:01:54 -04:00
koolzz b070250288 Fix the configure script onvm reset 2018-04-01 09:35:21 -05:00
Asim Jamshed 9d008ab755 - Typo. 2018-03-20 09:03:06 +09:00
Asim Jamshed 41fd2c2046 - Tweaking Makefile/autoconf scripts 2018-03-20 08:54:09 +09:00
Mykola Yurchenko 3643bda209 OpenNetVM mTCP Module Code Cleanup (#4)
This change updates mTCP from their master branch and cleans up the OpenNetVM module.  The ONVM module is reorganized to match the DPDK module.  This includes:

  - Removed the command line arguments for running epserver
    + This removes the extra arg passing between methods
    + Moved the ONVM arguments to `epserver.conf`
  - Added configure options to build mtcp with the ONVM library
  - Added preprocessor macros to build ONVM specific code on-demand

Commit log:

* - IP defrag module for dpdk integrated (partly derived from ip_reassembly/ example code).
	-> Currently disabled... because I need some testing suite that can fragment IP datagrams
- Cleaned up the Makefile.in scripts.

* - Fixed an ICMP-related bug that was accidentally introduced when hw-chksumming was implemented.
- Cleaned up the Makefile.in script
- Cleaned up dpdk_module.c file.

* - Applied fixes for suspect snippets identified by Coverity.
- Added IP_DEFRAG warning.

* - More fixes.

* Adding coverity badge.
- Needs more code fixing :S

* - Minor fixes.

* - Minor error checks.

* - More & more fixes.

* - Forgot to check in these files.

* - More error checking.

* - Added more DPDK-capable Ethernet controllers which makes mOS/mTCP compatible
  with certain 1/10 Gbps NICs (e.g. X540T1, I211 and many, many others). Ack
  to Juhyung.
- Small coverity related fix.

* tcp: handle ack with payload correctly in SYN_RECV state

Signed-off-by: Jianbo Liu <jianbo.liu@linaro.org>

* uses -m64 for x86_64 only to avoid compile error on other ARCHs

Signed-off-by: Jianbo Liu <jianbo.liu@linaro.org>

* add a generic ip_fast_csum for non-x86 platform

Signed-off-by: Jianbo Liu <jianbo.liu@linaro.org>

* - Stats bug that does not appear in kernel version <= 4.1.. but appears in linux-4.4.
	--> Always, always do copy_from_user() for user-space buffers before accessing
		them in kernel module. This one was hard to catch!
	--> Ack to Jaehyong for initially reporting the problem.

* - Adding partial support for i40e.
	--> Still working on mtcp_init_rss() function for i40e.
	--> Server-side applications should work fine with mTCP.

* - Removed redundant printk lines (in igbuio.c).
- mtcp_init_rss() for i40e fixed.
	--> According to xl710 controller data sheet, the secret key should be 52 bytes long
		--> Intel 10 Gbps nic controllers previously relied on 40 bytes RSK
		--> See http://www.intel.co.kr/content/dam/www/public/us/en/documents/datasheets/xl710-10-40-controller-datasheet.pdf
		    section 7.1.10.1 for details.
- Made the code backward compatible with linux-3.x
	--> Previous code changes were made in linux-4.4.x
- Added logic to unmap the pci address when driver (igb_uio) is deregistered.
	--> Now igb_uio-registered devices can be re-attached to i40e devices back and forth.

* - Resovles issue# 67.

* fix the bug in cofiguring mTCP when running ab (issue 124)

ref:#124

* reset errno to 0 before calling strtol (resolves issue 128)

ref:#128

* - Make sure that even non-TCP packets are uniformly distributed across cores.

* Fix unused return value for copy_from_user(). (issue# 132)

* add support for configuring discrete ports (resolves issue 125)

ref:#125

* make backlog a command option (resolves the issue 136)

ref:#136

* - Small update.

* - Patch suggested by 	gchen-viosoft.

* - Small patch to make it work for linux-4.2

* - Removed the MAX_CPUS restriction.
- Make sure that hyperthreading is disabled before setting up mTCP
- igb_uio driver will maintain netdev stats for up to 128 queues.

* - Removed a statistics-related bug in epwget.c
- Removed a race condition in cleaning up context resources during termination of application.

* - Revised MAX_CPUs macro setup.

* - Forgot to update README.md file.

* - Small optimization related to CPU RSS calculation (rss-side)
	-> Thanks Ilwoo

* - Small fixes (thanks to YoungGyoun Moon)

* - Made it compatible with linux kernel versions >= 4.11.0

* - Updating travis configuration file slightly.

* - Updating travis configuration file slightly.
- Updating Id.

* - Small typo in travis file.

* - Small update to the tcp sent window logic

* - Slight updates to the README/README.md files.

* - Resolved issue #51

* Update from eunyoung14/mtcp (#3)

* - IP defrag module for dpdk integrated (partly derived from ip_reassembly/ example code).
	-> Currently disabled... because I need some testing suite that can fragment IP datagrams
- Cleaned up the Makefile.in scripts.

* - Fixed an ICMP-related bug that was accidentally introduced when hw-chksumming was implemented.
- Cleaned up the Makefile.in script
- Cleaned up dpdk_module.c file.

* - Applied fixes for suspect snippets identified by Coverity.
- Added IP_DEFRAG warning.

* - More fixes.

* Adding coverity badge.
- Needs more code fixing :S

* - Minor fixes.

* - Minor error checks.

* - More & more fixes.

* - Forgot to check in these files.

* - More error checking.

* - Added more DPDK-capable Ethernet controllers which makes mOS/mTCP compatible
  with certain 1/10 Gbps NICs (e.g. X540T1, I211 and many, many others). Ack
  to Juhyung.
- Small coverity related fix.

* tcp: handle ack with payload correctly in SYN_RECV state

Signed-off-by: Jianbo Liu <jianbo.liu@linaro.org>

* uses -m64 for x86_64 only to avoid compile error on other ARCHs

Signed-off-by: Jianbo Liu <jianbo.liu@linaro.org>

* add a generic ip_fast_csum for non-x86 platform

Signed-off-by: Jianbo Liu <jianbo.liu@linaro.org>

* - Stats bug that does not appear in kernel version <= 4.1.. but appears in linux-4.4.
	--> Always, always do copy_from_user() for user-space buffers before accessing
		them in kernel module. This one was hard to catch!
	--> Ack to Jaehyong for initially reporting the problem.

* - Adding partial support for i40e.
	--> Still working on mtcp_init_rss() function for i40e.
	--> Server-side applications should work fine with mTCP.

* - Removed redundant printk lines (in igbuio.c).
- mtcp_init_rss() for i40e fixed.
	--> According to xl710 controller data sheet, the secret key should be 52 bytes long
		--> Intel 10 Gbps nic controllers previously relied on 40 bytes RSK
		--> See http://www.intel.co.kr/content/dam/www/public/us/en/documents/datasheets/xl710-10-40-controller-datasheet.pdf
		    section 7.1.10.1 for details.
- Made the code backward compatible with linux-3.x
	--> Previous code changes were made in linux-4.4.x
- Added logic to unmap the pci address when driver (igb_uio) is deregistered.
	--> Now igb_uio-registered devices can be re-attached to i40e devices back and forth.

* - Resovles issue# 67.

* fix the bug in cofiguring mTCP when running ab (issue 124)

ref:#124

* reset errno to 0 before calling strtol (resolves issue 128)

ref:#128

* - Make sure that even non-TCP packets are uniformly distributed across cores.

* Fix unused return value for copy_from_user(). (issue# 132)

* add support for configuring discrete ports (resolves issue 125)

ref:#125

* make backlog a command option (resolves the issue 136)

ref:#136

* - Small update.

* - Patch suggested by 	gchen-viosoft.

* - Small patch to make it work for linux-4.2

* - Removed the MAX_CPUS restriction.
- Make sure that hyperthreading is disabled before setting up mTCP
- igb_uio driver will maintain netdev stats for up to 128 queues.

* - Removed a statistics-related bug in epwget.c
- Removed a race condition in cleaning up context resources during termination of application.

* - Revised MAX_CPUs macro setup.

* - Forgot to update README.md file.

* - Small optimization related to CPU RSS calculation (rss-side)
	-> Thanks Ilwoo

* - Small fixes (thanks to YoungGyoun Moon)

* - Made it compatible with linux kernel versions >= 4.11.0

* - Updating travis configuration file slightly.

* - Updating travis configuration file slightly.
- Updating Id.

* - Small typo in travis file.

* - Small update to the tcp sent window logic

* - Slight updates to the README/README.md files.

* - Resolved issue #51

* onvm-mtcp cleaning

* Added a build with onvm config option

* Ifdefs for ONVM setup, ENABLE_ONVM flag

* Update README.md for ONVM module

* Aborting the old changes for a clean merge

* README.md updates

* README.md updates

* Update epserver.conf onvm args explanation

* Update epserver.conf

* Added routing table rule for onvm-module

* Update README

* Update README.md
2017-10-24 03:24:55 -07:00
Asim Jamshed ba7b0726a8 - Updated dpdk driver to 16.11. 2017-01-22 17:34:03 +09:00
Asim Jamshed 105b04c163 - Bunch of updates...
--> Added root check (geteuid()) for dpdk/netmap/psio drivers
	--> Removed redundant (deprecated) eth fdir code from dpdk_module.c
	--> Added mtcp_recv() for MSG_PEEK option (some apps may use them.. nginx??)
	--> Added hw-based checksum offloading for dpdk drivers (enabled by default.. see README for more details)
		--> This option can be disabled via autoconf script
2016-10-19 22:39:05 +09:00
Asim Jamshed 9ea3248722 - Just updated the mTCP mailing list address. 2016-08-07 22:46:53 +09:00
Asim Jamshed 73a85af412 - Code for dpdk lro mode added.
--> See README for more details.
- Small bug fixes in network I/O layer and epwget application
2016-07-17 19:57:21 +09:00
Asim Jamshed 0dca1de681 - made mTCP source compilant with gcc-5.x
-- (https://gcc.gnu.org/gcc-5/porting_to.html)
- Updated compilation directions in README file
- fixed patch for issue #58
- made dpdk default I/O plugin
2016-05-10 20:40:45 +09:00
Asim Jamshed c41b5d911f - Bunch of updates (mostly cosmetic)
---> Added documentation for multi-process support via epserver example.
                - See apps/example/README for details..
        ---> Fixed (partial) issue #24 (gettimeofday() --> clock_gettime())
        ---> Made the compilation process more automated
                - See README file for new instructions
2016-04-05 15:34:43 +09:00
Asim Jamshed c7128c5031 - Experimental version of netmap plugin added.
---> Report any problems to ajamshed@ndsl.kaist.edu or the mTCP mailing list
- Performance optimization is pending (it currently uses nm_inject() which induces as extra memcpy operation per packet).
2015-11-29 15:34:11 -08:00
Asim Jamshed c101fbc46f - Activated the number of cores configuration parameter for mTCP applications
---> When applications such as epserver, epwget and lighttpd are run with a
a value '-N' that is less than the number of cores currently online in the system,
then mTCP application will dynamically adjust the number of NIC queues to '-N'
and spawn respective mTCP threads.

---> The 'num_cores' can also be adjusted via mtcp.conf file (see sample_mtcp.conf)
for details. Please note that in case num_cores is `activated', the value of '-N'
passed through command-line arguments is given lower precedence.

---> '-N' logic for apache-benchmark has not been adjusted yet. This will be
updated soon.
2015-11-08 22:08:55 -08:00
Asim Jamshed 6e3920c84d - mTCP version 3 is released. Please see README* and CHANGELOG files for details. 2015-04-03 14:54:09 +09:00