]> git.ipfire.org Git - fireperf.git/log
fireperf.git
2 years agoEnable ZEROCOPY master
Michael Tremer [Wed, 20 Oct 2021 18:15:33 +0000 (18:15 +0000)] 
Enable ZEROCOPY

https://www.kernel.org/doc/html/latest/networking/msg_zerocopy.html

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agorlimit: Automatically set to maximum
Michael Tremer [Tue, 17 Aug 2021 15:16:54 +0000 (15:16 +0000)] 
rlimit: Automatically set to maximum

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agodebian: Update changelog 0.2.0
Michael Tremer [Tue, 23 Feb 2021 15:03:25 +0000 (15:03 +0000)] 
debian: Update changelog

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoBump version to 0.2.0
Michael Tremer [Tue, 23 Feb 2021 14:46:51 +0000 (14:46 +0000)] 
Bump version to 0.2.0

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoconfigure: Fix indentation
Michael Tremer [Tue, 23 Feb 2021 14:47:25 +0000 (14:47 +0000)] 
configure: Fix indentation

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoRemove double declaration of ZERO
Michael Tremer [Tue, 23 Feb 2021 15:03:33 +0000 (15:03 +0000)] 
Remove double declaration of ZERO

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agomain: Ensure that epollfd is always initialized
Michael Tremer [Tue, 23 Feb 2021 14:46:09 +0000 (14:46 +0000)] 
main: Ensure that epollfd is always initialized

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoserver: Do not send any data when in keepalive only mode
Michael Tremer [Tue, 23 Feb 2021 14:44:30 +0000 (14:44 +0000)] 
server: Do not send any data when in keepalive only mode

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoserver: Move sending keepalives to the server when enabled
Michael Tremer [Tue, 23 Feb 2021 14:32:17 +0000 (14:32 +0000)] 
server: Move sending keepalives to the server when enabled

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agotimespec_delta: Return seconds as double
Michael Tremer [Tue, 23 Feb 2021 14:30:00 +0000 (14:30 +0000)] 
timespec_delta: Return seconds as double

The stats printing function expected this in seconds

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoSet socket buffer size to 64k
Michael Tremer [Mon, 22 Feb 2021 19:34:48 +0000 (19:34 +0000)] 
Set socket buffer size to 64k

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoSet socket buffer sizes on both sides for duplex traffic
Michael Tremer [Mon, 22 Feb 2021 19:34:14 +0000 (19:34 +0000)] 
Set socket buffer sizes on both sides for duplex traffic

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: Remove default timeout
Michael Tremer [Mon, 22 Feb 2021 19:22:18 +0000 (19:22 +0000)] 
client: Remove default timeout

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoserver: Support "--close"
Michael Tremer [Thu, 18 Feb 2021 16:51:13 +0000 (16:51 +0000)] 
server: Support "--close"

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agostats: Show sent/received stats everywhere
Michael Tremer [Thu, 18 Feb 2021 16:44:37 +0000 (16:44 +0000)] 
stats: Show sent/received stats everywhere

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: Implement duplex mode
Michael Tremer [Thu, 18 Feb 2021 16:21:18 +0000 (16:21 +0000)] 
client: Implement duplex mode

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoman: The --zero option is now effective for the server, too
Michael Tremer [Thu, 18 Feb 2021 16:11:00 +0000 (16:11 +0000)] 
man: The --zero option is now effective for the server, too

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoChange that the server is now sending data and the client is receiving it
Michael Tremer [Thu, 18 Feb 2021 16:10:16 +0000 (16:10 +0000)] 
Change that the server is now sending data and the client is receiving it

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoMove functions to send/receive data to main
Michael Tremer [Thu, 18 Feb 2021 16:01:12 +0000 (16:01 +0000)] 
Move functions to send/receive data to main

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoInitialize the random pool for both, client and server
Michael Tremer [Thu, 18 Feb 2021 15:56:26 +0000 (15:56 +0000)] 
Initialize the random pool for both, client and server

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agorandom: Move pool into extra file
Michael Tremer [Thu, 18 Feb 2021 15:39:14 +0000 (15:39 +0000)] 
random: Move pool into extra file

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoInclude number of listening sockets in open file limit
Michael Tremer [Mon, 8 Feb 2021 11:53:48 +0000 (11:53 +0000)] 
Include number of listening sockets in open file limit

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoAvoid closing timerfd when it has never been opened
Michael Tremer [Thu, 4 Feb 2021 15:59:45 +0000 (15:59 +0000)] 
Avoid closing timerfd when it has never been opened

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoBump version to 0.1.0 0.1.0
Michael Tremer [Thu, 4 Feb 2021 15:03:24 +0000 (15:03 +0000)] 
Bump version to 0.1.0

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: Implement closing connections straight away
Michael Tremer [Thu, 4 Feb 2021 15:01:34 +0000 (15:01 +0000)] 
client: Implement closing connections straight away

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agostats: Reset bytes sent, too
Michael Tremer [Thu, 4 Feb 2021 14:51:30 +0000 (14:51 +0000)] 
stats: Reset bytes sent, too

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoserver: Make listening sockets reusable
Michael Tremer [Thu, 4 Feb 2021 14:50:36 +0000 (14:50 +0000)] 
server: Make listening sockets reusable

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoMove dumping stats into main.c
Michael Tremer [Thu, 4 Feb 2021 14:46:04 +0000 (14:46 +0000)] 
Move dumping stats into main.c

The code is very common between client and server and therefore we can
share it better.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agostats: Merge client and server stats
Michael Tremer [Thu, 4 Feb 2021 14:35:05 +0000 (14:35 +0000)] 
stats: Merge client and server stats

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agostats: Show new connections per second
Michael Tremer [Thu, 4 Feb 2021 14:28:32 +0000 (14:28 +0000)] 
stats: Show new connections per second

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agostats: Rename connections to open_connections
Michael Tremer [Thu, 4 Feb 2021 14:20:45 +0000 (14:20 +0000)] 
stats: Rename connections to open_connections

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: Print current bandwidth and total bytes sent
Michael Tremer [Thu, 4 Feb 2021 14:12:18 +0000 (14:12 +0000)] 
client: Print current bandwidth and total bytes sent

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: Show timestamp when dumping stats
Michael Tremer [Thu, 4 Feb 2021 12:05:19 +0000 (12:05 +0000)] 
client: Show timestamp when dumping stats

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoutil: Move some helper functions into an extra module
Michael Tremer [Thu, 4 Feb 2021 12:03:12 +0000 (12:03 +0000)] 
util: Move some helper functions into an extra module

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: Avoid double-closing the epoll file descriptor
Michael Tremer [Thu, 4 Feb 2021 11:57:28 +0000 (11:57 +0000)] 
client: Avoid double-closing the epoll file descriptor

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: Add scaffolding to dump stats
Michael Tremer [Wed, 3 Feb 2021 23:19:38 +0000 (23:19 +0000)] 
client: Add scaffolding to dump stats

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoMove creation of epoll() and timerfd() to main
Michael Tremer [Wed, 3 Feb 2021 23:14:52 +0000 (23:14 +0000)] 
Move creation of epoll() and timerfd() to main

This is shared code between the client and the server and it is easier
to just maintain it once.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agodebian: Add build dependencies
Michael Tremer [Wed, 3 Feb 2021 22:52:13 +0000 (22:52 +0000)] 
debian: Add build dependencies

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agodebian: Add tooling to build packages for various releases and architectures
Michael Tremer [Wed, 3 Feb 2021 22:45:59 +0000 (22:45 +0000)] 
debian: Add tooling to build packages for various releases and architectures

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoAdd required files to allow building debian packages.
Stefan Schantl [Wed, 3 Feb 2021 19:14:14 +0000 (20:14 +0100)] 
Add required files to allow building debian packages.

Fixes #12570.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoman: Add fireperf.8
Michael Tremer [Tue, 2 Feb 2021 18:49:59 +0000 (18:49 +0000)] 
man: Add fireperf.8

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoAdd version information
Michael Tremer [Tue, 2 Feb 2021 18:41:03 +0000 (18:41 +0000)] 
Add version information

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient+server: Try parsing port ranges
Michael Tremer [Mon, 1 Feb 2021 18:57:58 +0000 (18:57 +0000)] 
client+server: Try parsing port ranges

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoRename sockets -> listening_sockets
Michael Tremer [Mon, 1 Feb 2021 18:57:43 +0000 (18:57 +0000)] 
Rename sockets -> listening_sockets

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: Use a random port to connect to the server
Michael Tremer [Mon, 1 Feb 2021 18:27:40 +0000 (18:27 +0000)] 
client: Use a random port to connect to the server

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoserver: Automatically open 10 sockets
Michael Tremer [Mon, 1 Feb 2021 18:25:59 +0000 (18:25 +0000)] 
server: Automatically open 10 sockets

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient+server: Increase socket send/recevie buffer size to 128k
Michael Tremer [Mon, 1 Feb 2021 18:11:06 +0000 (18:11 +0000)] 
client+server: Increase socket send/recevie buffer size to 128k

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoRevert "client: Use getaddrinfo to resolve any hostnames given"
Michael Tremer [Mon, 1 Feb 2021 17:55:37 +0000 (17:55 +0000)] 
Revert "client: Use getaddrinfo to resolve any hostnames given"

This reverts commit e5c9467df37a2d6914164ec9c2cd9b35cfb0c3cb.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: Try to keep "conf->parallel" connections open
Michael Tremer [Mon, 1 Feb 2021 17:43:12 +0000 (17:43 +0000)] 
client: Try to keep "conf->parallel" connections open

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: Create random pool to send data faster
Michael Tremer [Mon, 1 Feb 2021 17:19:38 +0000 (17:19 +0000)] 
client: Create random pool to send data faster

This creates a pool of one thousand times the send buffer size which
will be used to send random data. This data might repeat itself, but
that is not a problem here because we only need to have more data than
the window of any compression algorithm.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoserver: Read the correct events when handling peer connections
Michael Tremer [Mon, 1 Feb 2021 16:35:29 +0000 (16:35 +0000)] 
server: Read the correct events when handling peer connections

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoAllocate send/receive buffers the same as socket buffers
Michael Tremer [Mon, 1 Feb 2021 16:12:50 +0000 (16:12 +0000)] 
Allocate send/receive buffers the same as socket buffers

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient+server: Configure socket send/receive buffer size
Michael Tremer [Mon, 1 Feb 2021 16:10:01 +0000 (16:10 +0000)] 
client+server: Configure socket send/receive buffer size

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoserver: Prevent useless stats printed when called too soon
Michael Tremer [Fri, 29 Jan 2021 17:21:25 +0000 (17:21 +0000)] 
server: Prevent useless stats printed when called too soon

Sometimes the timer event gets stuck in the queue and we would be called
multiple times in a row. To prevent printing any useless output, we just
ignore any calls that were too soon.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoserver: Show bandwidth in bit/s instead of bytes/s
Michael Tremer [Fri, 29 Jan 2021 17:20:57 +0000 (17:20 +0000)] 
server: Show bandwidth in bit/s instead of bytes/s

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoserver: Show current bandwidth
Michael Tremer [Fri, 29 Jan 2021 16:56:59 +0000 (16:56 +0000)] 
server: Show current bandwidth

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoserver: Show how many bytes were received in total
Michael Tremer [Fri, 29 Jan 2021 15:50:56 +0000 (15:50 +0000)] 
server: Show how many bytes were received in total

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoserver: Compute delta in seconds between dump_stats() calls
Michael Tremer [Fri, 29 Jan 2021 15:33:03 +0000 (15:33 +0000)] 
server: Compute delta in seconds between dump_stats() calls

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoserver: Print some useful statistics about open connections
Michael Tremer [Fri, 29 Jan 2021 15:06:53 +0000 (15:06 +0000)] 
server: Print some useful statistics about open connections

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoserver: Add a timer that triggers printing the statistics one a second
Michael Tremer [Thu, 28 Jan 2021 18:56:49 +0000 (18:56 +0000)] 
server: Add a timer that triggers printing the statistics one a second

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: Use getaddrinfo to resolve any hostnames given
Michael Tremer [Thu, 28 Jan 2021 18:27:03 +0000 (18:27 +0000)] 
client: Use getaddrinfo to resolve any hostnames given

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient+server: Remove useless configuration dump
Michael Tremer [Thu, 28 Jan 2021 18:11:24 +0000 (18:11 +0000)] 
client+server: Remove useless configuration dump

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient+server: Configure ulimits before opening any connections
Michael Tremer [Thu, 28 Jan 2021 18:10:35 +0000 (18:10 +0000)] 
client+server: Configure ulimits before opening any connections

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoserver: Gracefully close connections when the client went away
Michael Tremer [Thu, 28 Jan 2021 14:46:01 +0000 (14:46 +0000)] 
server: Gracefully close connections when the client went away

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient+server: Process fewer epoll events in one go
Michael Tremer [Thu, 28 Jan 2021 14:31:58 +0000 (14:31 +0000)] 
client+server: Process fewer epoll events in one go

This will allow us to terminate quicker because we will evaluate the
outer while loop more often which should be a rather cheap operation.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient+server: Remove some excessive debugging output
Michael Tremer [Thu, 28 Jan 2021 14:31:34 +0000 (14:31 +0000)] 
client+server: Remove some excessive debugging output

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient+server: Terminate gracefully when receiving a signal
Michael Tremer [Thu, 28 Jan 2021 14:30:53 +0000 (14:30 +0000)] 
client+server: Terminate gracefully when receiving a signal

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: Enable sending keepalive packets every 10 seconds
Michael Tremer [Thu, 28 Jan 2021 14:11:09 +0000 (14:11 +0000)] 
client: Enable sending keepalive packets every 10 seconds

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: ALlow keepalive only mode
Michael Tremer [Thu, 28 Jan 2021 11:28:55 +0000 (11:28 +0000)] 
client: ALlow keepalive only mode

In this mode, the client won't send any data and only hold the
connections open.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: Add some example for gathering random data
Michael Tremer [Thu, 28 Jan 2021 11:13:18 +0000 (11:13 +0000)] 
client: Add some example for gathering random data

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: Give the user the choice whether to send random data or zero
Michael Tremer [Thu, 28 Jan 2021 11:07:04 +0000 (11:07 +0000)] 
client: Give the user the choice whether to send random data or zero

This is useful when compression is being used on the link since random
data cannot be compressed, but the zeroes can.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: Add timeout
Michael Tremer [Thu, 28 Jan 2021 10:57:23 +0000 (10:57 +0000)] 
client: Add timeout

This is a safety precausion which will terminate the client
automatically after a certain time just in case the network becomes
unresponsive.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoclient: Add a basic implementation
Michael Tremer [Mon, 25 Jan 2021 18:06:12 +0000 (18:06 +0000)] 
client: Add a basic implementation

This will make the client connect to the server with one or more
connections and it will send data.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agologging: Revert to log to console
Michael Tremer [Mon, 25 Jan 2021 17:01:34 +0000 (17:01 +0000)] 
logging: Revert to log to console

This is easier for debugging

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoserver: Add basic implementation that accepts connections
Michael Tremer [Mon, 25 Jan 2021 16:53:46 +0000 (16:53 +0000)] 
server: Add basic implementation that accepts connections

This creates an asynchronous loop which listens for new connections
opening and which will close connections after the client has closed
them.

This will also read any data that is being received on the sockets and
discard it.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoImplement to configure parallelism
Michael Tremer [Mon, 25 Jan 2021 14:26:41 +0000 (14:26 +0000)] 
Implement to configure parallelism

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoAdd scaffolding for client/server code
Michael Tremer [Mon, 25 Jan 2021 14:17:18 +0000 (14:17 +0000)] 
Add scaffolding for client/server code

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoParse IP address which we need in client mode
Michael Tremer [Mon, 25 Jan 2021 14:09:02 +0000 (14:09 +0000)] 
Parse IP address which we need in client mode

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoAdd a basic logging infrastructure
Michael Tremer [Mon, 25 Jan 2021 13:45:25 +0000 (13:45 +0000)] 
Add a basic logging infrastructure

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoSet default port to 5001
Michael Tremer [Mon, 25 Jan 2021 13:07:36 +0000 (13:07 +0000)] 
Set default port to 5001

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoMake port configurable
Michael Tremer [Mon, 25 Jan 2021 13:06:41 +0000 (13:06 +0000)] 
Make port configurable

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoParse mode from command line
Michael Tremer [Mon, 25 Jan 2021 12:59:01 +0000 (12:59 +0000)] 
Parse mode from command line

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
3 years agoInitial checkin
Michael Tremer [Mon, 25 Jan 2021 12:32:30 +0000 (12:32 +0000)] 
Initial checkin

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>