nfnetlink.h

来自「linux 内核源代码」· C头文件 代码 · 共 86 行

H
86
字号
#ifndef _NFNETLINK_H#define _NFNETLINK_H#include <linux/types.h>#include <linux/netfilter/nfnetlink_compat.h>enum nfnetlink_groups {	NFNLGRP_NONE,#define NFNLGRP_NONE			NFNLGRP_NONE	NFNLGRP_CONNTRACK_NEW,#define NFNLGRP_CONNTRACK_NEW		NFNLGRP_CONNTRACK_NEW	NFNLGRP_CONNTRACK_UPDATE,#define NFNLGRP_CONNTRACK_UPDATE	NFNLGRP_CONNTRACK_UPDATE	NFNLGRP_CONNTRACK_DESTROY,#define NFNLGRP_CONNTRACK_DESTROY	NFNLGRP_CONNTRACK_DESTROY	NFNLGRP_CONNTRACK_EXP_NEW,#define	NFNLGRP_CONNTRACK_EXP_NEW	NFNLGRP_CONNTRACK_EXP_NEW	NFNLGRP_CONNTRACK_EXP_UPDATE,#define NFNLGRP_CONNTRACK_EXP_UPDATE	NFNLGRP_CONNTRACK_EXP_UPDATE	NFNLGRP_CONNTRACK_EXP_DESTROY,#define NFNLGRP_CONNTRACK_EXP_DESTROY	NFNLGRP_CONNTRACK_EXP_DESTROY	__NFNLGRP_MAX,};#define NFNLGRP_MAX	(__NFNLGRP_MAX - 1)/* General form of address family dependent message. */struct nfgenmsg {	u_int8_t  nfgen_family;		/* AF_xxx */	u_int8_t  version;		/* nfnetlink version */	__be16    res_id;		/* resource id */};#define NFNETLINK_V0	0/* netfilter netlink message types are split in two pieces: * 8 bit subsystem, 8bit operation. */#define NFNL_SUBSYS_ID(x)	((x & 0xff00) >> 8)#define NFNL_MSG_TYPE(x)	(x & 0x00ff)/* No enum here, otherwise __stringify() trick of MODULE_ALIAS_NFNL_SUBSYS() * won't work anymore */#define NFNL_SUBSYS_NONE 		0#define NFNL_SUBSYS_CTNETLINK		1#define NFNL_SUBSYS_CTNETLINK_EXP	2#define NFNL_SUBSYS_QUEUE		3#define NFNL_SUBSYS_ULOG		4#define NFNL_SUBSYS_COUNT		5#ifdef __KERNEL__#include <linux/netlink.h>#include <linux/capability.h>#include <net/netlink.h>struct nfnl_callback{	int (*call)(struct sock *nl, struct sk_buff *skb, 		struct nlmsghdr *nlh, struct nlattr *cda[]);	const struct nla_policy *policy;	/* netlink attribute policy */	const u_int16_t attr_count;		/* number of nlattr's */};struct nfnetlink_subsystem{	const char *name;	__u8 subsys_id;			/* nfnetlink subsystem ID */	__u8 cb_count;			/* number of callbacks */	const struct nfnl_callback *cb;	/* callback for individual types */};extern int nfnetlink_subsys_register(const struct nfnetlink_subsystem *n);extern int nfnetlink_subsys_unregister(const struct nfnetlink_subsystem *n);extern int nfnetlink_has_listeners(unsigned int group);extern int nfnetlink_send(struct sk_buff *skb, u32 pid, unsigned group, 			  int echo);extern int nfnetlink_unicast(struct sk_buff *skb, u_int32_t pid, int flags);#define MODULE_ALIAS_NFNL_SUBSYS(subsys) \	MODULE_ALIAS("nfnetlink-subsys-" __stringify(subsys))#endif	/* __KERNEL__ */#endif	/* _NFNETLINK_H */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?