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 /* 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