Commit Graph

25 Commits

Author SHA1 Message Date
Pau Espin a55253f438 client: Add 'wqueue max-length <0-4294967295>' VTY command
This allows setting a suitable write-queue max length per client. The
desired value can be different based on a lot of variables, like memory
availabilty, network and CPU load, input/output link state, etc.

Related: SYS#5921
Change-Id: I4e9d5d836ddda215f9e7a075aa8e10d2d3854dd2
2022-04-14 18:32:23 +02:00
Pau Espin 6bbda89308 client: Increase wqueue transmit length
Having a length of 10 packets is too low, it can be filled easily under
high load or really bursty traffic, where the input path could be polled
multiple times while the output path (write socket poll) is not called.

Related: SYS#5921
Change-Id: I72babfcc31e12624f30c16450dafd988192148be
2022-04-14 17:57:14 +02:00
Pau Espin ef92a539e8 Use new stat item/ctr getter APIs
Generated with spatch:
"""
@@
expression E1, E2;
@@
- &E2->ctr[E1]
+ rate_ctr_group_get_ctr(E2, E1)
"""

Change-Id: Ic860db04489e9ee7312edb008497186116f30bfc
2021-06-04 18:01:06 +02:00
Harald Welte a9600141b8 Use osmo_fd_setup() whenever applicable
Change-Id: I02097760e7c6a5694290f4b877013aee9d92fd0e
2020-10-19 13:06:44 +02:00
Harald Welte 20c6ba5a9e Use OSMO_FD_* instead of deprecated BSC_FD_*
Change-Id: I7d57919877520710b5dc1f54de1de89cae78093e
2020-10-18 22:39:39 +02:00
Harald Welte 407f7f9307 Fix compiler warning about deprecated _BSD_SOURCE
On (at least) Debian unstable I'm seeing the following compiler
warninig:

/usr/include/features.h:184:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
 # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"

Apparently this was deprecated in glibc 2.20 released in 2014 (!)

Change-Id: I826189dec4107e7c3e8cf4c013316ef3014b7857
2019-01-26 17:39:19 +01:00
Pau Espin f946fa21ee client: Add pcap snaplen VTY cmd
Change-Id: I84fda9f27b725e031c218187ab679392dfa7ec3d
2018-10-08 20:20:43 +02:00
Pau Espin 3dfdbc21dc cosmetic: client: rename forward_packet function
Function only checks if packet should be forwarded, it doesn't forward
any packet.

Change-Id: I87cd64290245db134b17bc0d6665c58f1cde17b6
2018-10-08 13:08:52 +02:00
Holger Hans Peter Freyther 0a94e57b72 client: Allow to stop and remove a connection
Change-Id: I2118723345caf6a68f03de74a4182506e7bf105c
2016-11-09 01:04:04 +01:00
Holger Hans Peter Freyther 1448f50db4 client: Allow to configure and connect multiple servers
Allow to configure multiple servers and connect. Introduce a new VTY
node to allow multiple servers. Add an explicit connect. Do not put
the main connection into the same list but assume it exists.

Change-Id: I9448ad4a005dd7c7eb1c615d03e57d6cb058ae4d
2016-11-09 01:04:04 +01:00
Holger Hans Peter Freyther e3d7c3e154 client: Prepare to work with a list of servers
There is no VTY code yet and no servers in the list but it looks
good client this.

Change-Id: Ic35748f1a95a880a9fa49dd18361592d8ac941ba
2016-11-09 00:20:29 +01:00
Holger Hans Peter Freyther 13f397c68c client: Prepare to have multiple server connections
Take out various fields into a new connection class. We will have the
option to connect to multiple servers.

Change-Id: I820176d133fbdb0240a16eb4e1a6d505e5c080c6
2016-11-09 00:20:29 +01:00
Holger Hans Peter Freyther fa5572e2af client: Use pcap_stats and export them as statistics
Attempt to write code that detects the wrap and is doing the
right thing when it happens.

Change-Id: I501ebc49d3e86b0605ec1fbe2f62aee3f362aa36
2016-08-19 20:28:21 +02:00
Holger Hans Peter Freyther c3455dcb79 client: Additional counters for the statistics
Add more counters and start counting them when reading from the
PCAP library and when trying to write to the socket.

Change-Id: I52d3064a265b402ac849d8578a14f718156c0805
2016-08-19 17:31:01 +02:00
Holger Hans Peter Freyther 072b183cd8 freebsd: Include netinet/in.h and hopefully fix the build
Fixes:
/usr/include/netinet/ip.h:69:17: error: field has incomplete type 'struct in_addr'
        struct  in_addr ip_src,ip_dst;  /* source and dest address */

Change-Id: I446f67b85122363de66c86ddb25c8392ffa61a4f
2016-05-03 14:37:28 +02:00
Holger Hans Peter Freyther 42421c4f7e client: Allow receiving jumbo frames on the client as well
Check the caplen and see if it is bigger than our assumed
maximum. Make sure we have enough space for data+hdr+hdr.
2015-12-03 20:28:04 +01:00
Holger Hans Peter Freyther 74f89c6119 gprs: Do not collect BVC FLOW CONTROL / ACK messages
These generate a high amount of traffic. They are good to debug
ip.access nanoBTS GPRS crashes/service outage but in general cause
too much traffic.
2015-11-19 10:14:56 +00:00
Holger Hans Peter Freyther ae5ec91a40 gprs: Remove left over for counting llc frames
These variables were used to verify how many LLC frames were
seen.
2015-09-10 17:02:18 +02:00
Holger Hans Peter Freyther b7a834b4cb gprs: Add a custom GPRS filter
Allow to inspect UDP messages and check for GPRS, NS, BSSGP
and then filter LLC frames. Parsing the vL datastructure with
the libpcap syntax is a pain. It could be done using BPF but
we do not want to use bpf asm to specify the entire ruleset.

I looked into using libepan/libwireshark but this has memory
issues and is painful too. So let's parse UDP, NS, BSSGP using
the info we already have. I tried a bit of editcap to generate
a bit of broken data. The length check might still be bad.

I used my crash_20100602.pcap file to count the LLC frames we
detect and compare that to wireshark it ended with the right
number.

  pcap add-filter gprs

can be used to enable the new filtering option after the OS
has received the packet.

Fixes: ONW#1314
2015-09-10 16:55:33 +02:00
Holger Hans Peter Freyther b4fc89bfcf smatch: Check the client->device variable
This is fixing:
src/osmo_client_core.c +105 osmo_client_capture(8) warn: variable dereferenced before check 'client'
2011-07-19 17:59:00 +02:00
Holger Hans Peter Freyther b1f5d5ebed osmo-client-core: Use the >= 0 handling. 2011-06-01 16:57:25 +02:00
Holger Hans Peter Freyther 0391b0a9c3 osmo-client-core: Work with older pcap libraries 2011-06-01 15:31:11 +02:00
Holger Hans Peter Freyther 77288207fa osmo-pcap-client: Connect to a server, send the data to it 2011-05-31 21:19:52 +02:00
Holger Hans Peter Freyther cd2d3db3b7 osmo-pcap-client: Set the filter string on the pcap device.. 2011-05-31 21:19:51 +02:00
Holger Hans Peter Freyther 3b9b38ca68 osmo-pcap-client: Work on the client code, be able to open the device
Add vty code to allow changing the device, this will just attempt
to open and close the device. Nothing else is done.
2011-05-31 17:42:53 +02:00