diff options
author | Jakub Kicinski <jakub.kicinski@netronome.com> | 2019-10-04 16:19:24 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-10-05 16:29:00 -0700 |
commit | d26b698dd3cd52f5a3277446a87e5e0198c99cd0 (patch) | |
tree | 5b89974daf6db33cbfc10bdbbae357bb60e79524 /net/tls/tls_proc.c | |
parent | 9ec1c6ac27640f6a65378f11e433baa4ece12a28 (diff) | |
download | linux-d26b698dd3cd52f5a3277446a87e5e0198c99cd0.tar.bz2 |
net/tls: add skeleton of MIB statistics
Add a skeleton structure for adding TLS statistics.
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tls/tls_proc.c')
-rw-r--r-- | net/tls/tls_proc.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/net/tls/tls_proc.c b/net/tls/tls_proc.c new file mode 100644 index 000000000000..4ecc7c35d2f7 --- /dev/null +++ b/net/tls/tls_proc.c @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +/* Copyright (C) 2019 Netronome Systems, Inc. */ + +#include <linux/proc_fs.h> +#include <linux/seq_file.h> +#include <net/snmp.h> +#include <net/tls.h> + +static const struct snmp_mib tls_mib_list[] = { + SNMP_MIB_SENTINEL +}; + +static int tls_statistics_seq_show(struct seq_file *seq, void *v) +{ + unsigned long buf[LINUX_MIB_TLSMAX] = {}; + struct net *net = seq->private; + int i; + + snmp_get_cpu_field_batch(buf, tls_mib_list, net->mib.tls_statistics); + for (i = 0; tls_mib_list[i].name; i++) + seq_printf(seq, "%-32s\t%lu\n", tls_mib_list[i].name, buf[i]); + + return 0; +} + +int __net_init tls_proc_init(struct net *net) +{ + if (!proc_create_net_single("tls_stat", 0444, net->proc_net, + tls_statistics_seq_show, NULL)) + return -ENOMEM; + return 0; +} + +void __net_exit tls_proc_fini(struct net *net) +{ + remove_proc_entry("tls_stat", net->proc_net); +} |