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 11enum 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 18struct nfulnl_msg_packet_hdr { 19 __be16 hw_protocol; /* hw protocol (network order) */ 20 __u8 hook; /* netfilter hook */ 21 __u8 _pad; 22}; 23 24struct nfulnl_msg_packet_hw { 25 __be16 hw_addrlen; 26 __u16 _pad; 27 __u8 hw_addr[8]; 28}; 29 30struct nfulnl_msg_packet_timestamp { 31 __aligned_be64 sec; 32 __aligned_be64 usec; 33}; 34 35enum 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 59enum 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 67struct nfulnl_msg_config_cmd { 68 __u8 command; /* nfulnl_msg_config_cmds */ 69} __attribute__ ((packed)); 70 71struct nfulnl_msg_config_mode { 72 __be32 copy_range; 73 __u8 copy_mode; 74 __u8 _pad; 75} __attribute__ ((packed)); 76 77enum 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/* 0xff is reserved, don't use it for new copy modes. */ 93 94#define NFULNL_CFG_F_SEQ 0x0001 95#define NFULNL_CFG_F_SEQ_GLOBAL 0x0002 96 97#endif /* _NFNETLINK_LOG_H */ 98