Home | History | Annotate | Download | only in netfilter
      1 #ifndef _NFNETLINK_LOG_H
      2 #define _NFNETLINK_LOG_H
      3 
      4 /* This file describes the netlink messages (i.e. 'protocol packets'),
      5  * and not any kind of function definitions.  It is shared between kernel and
      6  * userspace.  Don't put kernel specific stuff in here */
      7 
      8 #include <linux/types.h>
      9 #include <linux/netfilter/nfnetlink.h>
     10 
     11 enum nfulnl_msg_types {
     12 	NFULNL_MSG_PACKET,		/* packet from kernel to userspace */
     13 	NFULNL_MSG_CONFIG,		/* connect to a particular queue */
     14 
     15 	NFULNL_MSG_MAX
     16 };
     17 
     18 struct nfulnl_msg_packet_hdr {
     19 	__be16		hw_protocol;	/* hw protocol (network order) */
     20 	__u8	hook;		/* netfilter hook */
     21 	__u8	_pad;
     22 };
     23 
     24 struct nfulnl_msg_packet_hw {
     25 	__be16		hw_addrlen;
     26 	__u16	_pad;
     27 	__u8	hw_addr[8];
     28 };
     29 
     30 struct nfulnl_msg_packet_timestamp {
     31 	aligned_be64	sec;
     32 	aligned_be64	usec;
     33 };
     34 
     35 enum nfulnl_attr_type {
     36 	NFULA_UNSPEC,
     37 	NFULA_PACKET_HDR,
     38 	NFULA_MARK,			/* __u32 nfmark */
     39 	NFULA_TIMESTAMP,		/* nfulnl_msg_packet_timestamp */
     40 	NFULA_IFINDEX_INDEV,		/* __u32 ifindex */
     41 	NFULA_IFINDEX_OUTDEV,		/* __u32 ifindex */
     42 	NFULA_IFINDEX_PHYSINDEV,	/* __u32 ifindex */
     43 	NFULA_IFINDEX_PHYSOUTDEV,	/* __u32 ifindex */
     44 	NFULA_HWADDR,			/* nfulnl_msg_packet_hw */
     45 	NFULA_PAYLOAD,			/* opaque data payload */
     46 	NFULA_PREFIX,			/* string prefix */
     47 	NFULA_UID,			/* user id of socket */
     48 	NFULA_SEQ,			/* instance-local sequence number */
     49 	NFULA_SEQ_GLOBAL,		/* global sequence number */
     50 	NFULA_GID,			/* group id of socket */
     51 	NFULA_HWTYPE,			/* hardware type */
     52 	NFULA_HWHEADER,			/* hardware header */
     53 	NFULA_HWLEN,			/* hardware header length */
     54 
     55 	__NFULA_MAX
     56 };
     57 #define NFULA_MAX (__NFULA_MAX - 1)
     58 
     59 enum nfulnl_msg_config_cmds {
     60 	NFULNL_CFG_CMD_NONE,
     61 	NFULNL_CFG_CMD_BIND,
     62 	NFULNL_CFG_CMD_UNBIND,
     63 	NFULNL_CFG_CMD_PF_BIND,
     64 	NFULNL_CFG_CMD_PF_UNBIND,
     65 };
     66 
     67 struct nfulnl_msg_config_cmd {
     68 	__u8	command;	/* nfulnl_msg_config_cmds */
     69 } __attribute__ ((packed));
     70 
     71 struct nfulnl_msg_config_mode {
     72 	__be32		copy_range;
     73 	__u8	copy_mode;
     74 	__u8	_pad;
     75 } __attribute__ ((packed));
     76 
     77 enum nfulnl_attr_config {
     78 	NFULA_CFG_UNSPEC,
     79 	NFULA_CFG_CMD,			/* nfulnl_msg_config_cmd */
     80 	NFULA_CFG_MODE,			/* nfulnl_msg_config_mode */
     81 	NFULA_CFG_NLBUFSIZ,		/* __u32 buffer size */
     82 	NFULA_CFG_TIMEOUT,		/* __u32 in 1/100 s */
     83 	NFULA_CFG_QTHRESH,		/* __u32 */
     84 	NFULA_CFG_FLAGS,		/* __u16 */
     85 	__NFULA_CFG_MAX
     86 };
     87 #define NFULA_CFG_MAX (__NFULA_CFG_MAX -1)
     88 
     89 #define NFULNL_COPY_NONE	0x00
     90 #define NFULNL_COPY_META	0x01
     91 #define NFULNL_COPY_PACKET	0x02
     92 
     93 #define NFULNL_CFG_F_SEQ	0x0001
     94 #define NFULNL_CFG_F_SEQ_GLOBAL	0x0002
     95 
     96 #endif /* _NFNETLINK_LOG_H */
     97