#include <linux/types.h>
#include <net/net_namespace.h>
#include <net/icmp.h>
#include <net/protocol.h>
#include <net/tcp.h>
#include <net/mptcp.h>
#include <net/proto_memory.h>
#include <net/udp.h>
#include <net/udplite.h>
#include <linux/bottom_half.h>
#include <linux/inetdevice.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/export.h>
#include <net/sock.h>
#include <net/raw.h>
#define TCPUDP_MIB_MAX …
static int sockstat_seq_show(struct seq_file *seq, void *v)
{ … }
static const struct snmp_mib snmp4_ipstats_list[] = …;
static const struct snmp_mib snmp4_ipextstats_list[] = …;
static const struct { … } icmpmibmap[] = …;
static const struct snmp_mib snmp4_tcp_list[] = …;
static const struct snmp_mib snmp4_udp_list[] = …;
static const struct snmp_mib snmp4_net_list[] = …;
static void icmpmsg_put_line(struct seq_file *seq, unsigned long *vals,
unsigned short *type, int count)
{ … }
static void icmpmsg_put(struct seq_file *seq)
{ … }
static void icmp_put(struct seq_file *seq)
{ … }
static int snmp_seq_show_ipstats(struct seq_file *seq, void *v)
{ … }
static int snmp_seq_show_tcp_udp(struct seq_file *seq, void *v)
{ … }
static int snmp_seq_show(struct seq_file *seq, void *v)
{ … }
static int netstat_seq_show(struct seq_file *seq, void *v)
{ … }
static __net_init int ip_proc_init_net(struct net *net)
{ … }
static __net_exit void ip_proc_exit_net(struct net *net)
{ … }
static __net_initdata struct pernet_operations ip_proc_ops = …;
int __init ip_misc_proc_init(void)
{ … }