linux/net/netfilter/nfnetlink_osf.c

// SPDX-License-Identifier: GPL-2.0-only
#define pr_fmt(fmt)
#include <linux/module.h>
#include <linux/kernel.h>

#include <linux/capability.h>
#include <linux/if.h>
#include <linux/inetdevice.h>
#include <linux/ip.h>
#include <linux/list.h>
#include <linux/rculist.h>
#include <linux/skbuff.h>
#include <linux/slab.h>
#include <linux/tcp.h>

#include <net/ip.h>
#include <net/tcp.h>

#include <linux/netfilter/nfnetlink.h>
#include <linux/netfilter/x_tables.h>
#include <net/netfilter/nf_log.h>
#include <linux/netfilter/nfnetlink_osf.h>

/*
 * Indexed by dont-fragment bit.
 * It is the only constant value in the fingerprint.
 */
struct list_head nf_osf_fingers[2];
EXPORT_SYMBOL_GPL();

static inline int nf_osf_ttl(const struct sk_buff *skb,
			     int ttl_check, unsigned char f_ttl)
{}

struct nf_osf_hdr_ctx {};

static bool nf_osf_match_one(const struct sk_buff *skb,
			     const struct nf_osf_user_finger *f,
			     int ttl_check,
			     struct nf_osf_hdr_ctx *ctx)
{}

static const struct tcphdr *nf_osf_hdr_ctx_init(struct nf_osf_hdr_ctx *ctx,
						const struct sk_buff *skb,
						const struct iphdr *ip,
						unsigned char *opts,
						struct tcphdr *_tcph)
{}

bool
nf_osf_match(const struct sk_buff *skb, u_int8_t family,
	     int hooknum, struct net_device *in, struct net_device *out,
	     const struct nf_osf_info *info, struct net *net,
	     const struct list_head *nf_osf_fingers)
{}
EXPORT_SYMBOL_GPL();

bool nf_osf_find(const struct sk_buff *skb,
		 const struct list_head *nf_osf_fingers,
		 const int ttl_check, struct nf_osf_data *data)
{}
EXPORT_SYMBOL_GPL();

static const struct nla_policy nfnl_osf_policy[OSF_ATTR_MAX + 1] =;

static int nfnl_osf_add_callback(struct sk_buff *skb,
				 const struct nfnl_info *info,
				 const struct nlattr * const osf_attrs[])
{}

static int nfnl_osf_remove_callback(struct sk_buff *skb,
				    const struct nfnl_info *info,
				    const struct nlattr * const osf_attrs[])
{}

static const struct nfnl_callback nfnl_osf_callbacks[OSF_MSG_MAX] =;

static const struct nfnetlink_subsystem nfnl_osf_subsys =;

static int __init nfnl_osf_init(void)
{}

static void __exit nfnl_osf_fini(void)
{}

module_init();
module_exit(nfnl_osf_fini);

MODULE_LICENSE();
MODULE_DESCRIPTION();
MODULE_ALIAS_NFNL_SUBSYS();