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 + -
显示快捷键?