pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/39157?usp=email )
Change subject: pcap-server: Move stats to its own file ......................................................................
pcap-server: Move stats to its own file
This will allow easily including the .o file in a unit tests which will be added soon testing code from osmo_server_network.c, which requires the pcap_server_group_desc symbol.
Change-Id: I71734a4c78e4d3109947ff5e69c3a382a7908218 --- M include/osmo-pcap/osmo_pcap_server.h M src/Makefile.am M src/osmo_server_main.c A src/osmo_server_stats.c 4 files changed, 70 insertions(+), 32 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/57/39157/1
diff --git a/include/osmo-pcap/osmo_pcap_server.h b/include/osmo-pcap/osmo_pcap_server.h index 5fe6d11..622daa7 100644 --- a/include/osmo-pcap/osmo_pcap_server.h +++ b/include/osmo-pcap/osmo_pcap_server.h @@ -140,6 +140,7 @@
extern struct osmo_pcap_server *pcap_server; extern const struct rate_ctr_group_desc pcap_peer_group_desc; +extern const struct rate_ctr_group_desc pcap_server_group_desc;
void osmo_pcap_server_reopen(struct osmo_pcap_server *server); int osmo_pcap_server_listen(struct osmo_pcap_server *server); diff --git a/src/Makefile.am b/src/Makefile.am index a86b578..8c2c968 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -35,6 +35,7 @@ osmo_common.c \ osmo_server_vty.c \ osmo_server_network.c \ + osmo_server_stats.c \ osmo_tls.c \ $(NULL)
diff --git a/src/osmo_server_main.c b/src/osmo_server_main.c index 85f4290..8924b86 100644 --- a/src/osmo_server_main.c +++ b/src/osmo_server_main.c @@ -1,6 +1,7 @@ /* * osmo-pcap-server code * + * (C) 2024 by sysmocom - s.f.m.c. GmbH info@sysmocom.de * (C) 2011-2016 by Holger Hans Peter Freyther holger@moiji-mobile.com * (C) 2011 by On-Waves * All Rights Reserved @@ -53,38 +54,6 @@ void *tall_srv_ctx; struct osmo_pcap_server *pcap_server;
- -static const struct rate_ctr_desc pcap_peer_ctr_desc[] = { - [PEER_CTR_CONNECT] = { "peer:connect", "Connect of a peer " }, - [PEER_CTR_BYTES] = { "peer:bytes", "Received bytes " }, - [PEER_CTR_PKTS] = { "peer:pkts", "Received packets " }, - [PEER_CTR_PROTATE] = { "peer:file_rotated","Capture file rotated" }, -}; - -static const struct rate_ctr_desc pcap_server_ctr_desc[] = { - [SERVER_CTR_CONNECT] = { "server:connect", "Connect of a peer " }, - [SERVER_CTR_BYTES] = { "server:bytes", "Received bytes " }, - [SERVER_CTR_PKTS] = { "server:pkts", "Received packets " }, - [SERVER_CTR_PROTATE] = { "server:file_rotated", "Capture file rotated" }, - [SERVER_CTR_NOCLIENT] = { "server:no_client", "Unknown connected " }, -}; - -const struct rate_ctr_group_desc pcap_peer_group_desc = { - .group_name_prefix = NULL, /* will be dynamically patched */ - .group_description = "PCAP peer statistics", - .num_ctr = ARRAY_SIZE(pcap_peer_ctr_desc), - .ctr_desc = pcap_peer_ctr_desc, - .class_id = OSMO_STATS_CLASS_PEER, -}; - -static const struct rate_ctr_group_desc pcap_server_group_desc = { - .group_name_prefix = "pcap:server", - .group_description = "PCAP Server global statistics", - .num_ctr = ARRAY_SIZE(pcap_server_ctr_desc), - .ctr_desc = pcap_server_ctr_desc, - .class_id = OSMO_STATS_CLASS_GLOBAL, -}; - static struct vty_app_info vty_info = { .name = "OsmoPCAPServer", .version = PACKAGE_VERSION, diff --git a/src/osmo_server_stats.c b/src/osmo_server_stats.c new file mode 100644 index 0000000..b2a4527 --- /dev/null +++ b/src/osmo_server_stats.c @@ -0,0 +1,67 @@ +/* + * osmo-pcap-server code + * + * (C) 2024 by sysmocom - s.f.m.c. GmbH info@sysmocom.de + * (C) 2011-2016 by Holger Hans Peter Freyther holger@moiji-mobile.com + * (C) 2011 by On-Waves + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see http://www.gnu.org/licenses/. + * + */ + +#include <osmocom/core/rate_ctr.h> +#include <osmocom/core/stats.h> +#include <osmocom/core/talloc.h> +#include <osmocom/core/utils.h> + +#include <osmocom/vty/logging.h> +#include <osmocom/vty/telnet_interface.h> +#include <osmocom/vty/stats.h> +#include <osmocom/vty/misc.h> + +#include <osmo-pcap/common.h> +#include <osmo-pcap/osmo_pcap_server.h> +#include <osmo-pcap/osmo_tls.h> + +static const struct rate_ctr_desc pcap_peer_ctr_desc[] = { + [PEER_CTR_CONNECT] = { "peer:connect", "Connect of a peer " }, + [PEER_CTR_BYTES] = { "peer:bytes", "Received bytes " }, + [PEER_CTR_PKTS] = { "peer:pkts", "Received packets " }, + [PEER_CTR_PROTATE] = { "peer:file_rotated", "Capture file rotated" }, +}; + +static const struct rate_ctr_desc pcap_server_ctr_desc[] = { + [SERVER_CTR_CONNECT] = { "server:connect", "Connect of a peer " }, + [SERVER_CTR_BYTES] = { "server:bytes", "Received bytes " }, + [SERVER_CTR_PKTS] = { "server:pkts", "Received packets " }, + [SERVER_CTR_PROTATE] = { "server:file_rotated", "Capture file rotated" }, + [SERVER_CTR_NOCLIENT] = { "server:no_client", "Unknown connected " }, +}; + +const struct rate_ctr_group_desc pcap_peer_group_desc = { + .group_name_prefix = NULL, /* will be dynamically patched */ + .group_description = "PCAP peer statistics", + .num_ctr = ARRAY_SIZE(pcap_peer_ctr_desc), + .ctr_desc = pcap_peer_ctr_desc, + .class_id = OSMO_STATS_CLASS_PEER, +}; + +const struct rate_ctr_group_desc pcap_server_group_desc = { + .group_name_prefix = "pcap:server", + .group_description = "PCAP Server global statistics", + .num_ctr = ARRAY_SIZE(pcap_server_ctr_desc), + .ctr_desc = pcap_server_ctr_desc, + .class_id = OSMO_STATS_CLASS_GLOBAL, +};