130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _NFNETLINK_LOG_H 230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _NFNETLINK_LOG_H 330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* This file describes the netlink messages (i.e. 'protocol packets'), 530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * and not any kind of function definitions. It is shared between kernel and 630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * userspace. Don't put kernel specific stuff in here */ 730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/types.h> 930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/netfilter/nfnetlink.h> 1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1130692c65c4174412c90e79489e98ab85c1a7412fBen Chengenum nfulnl_msg_types { 1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULNL_MSG_PACKET, /* packet from kernel to userspace */ 1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULNL_MSG_CONFIG, /* connect to a particular queue */ 1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULNL_MSG_MAX 1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1830692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct nfulnl_msg_packet_hdr { 1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __be16 hw_protocol; /* hw protocol (network order) */ 2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 hook; /* netfilter hook */ 2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 _pad; 2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2430692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct nfulnl_msg_packet_hw { 2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __be16 hw_addrlen; 2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u16 _pad; 2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 hw_addr[8]; 2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3030692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct nfulnl_msg_packet_timestamp { 3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __aligned_be64 sec; 3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __aligned_be64 usec; 3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3530692c65c4174412c90e79489e98ab85c1a7412fBen Chengenum nfulnl_attr_type { 3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_UNSPEC, 3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_PACKET_HDR, 3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_MARK, /* __u32 nfmark */ 3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_TIMESTAMP, /* nfulnl_msg_packet_timestamp */ 4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_IFINDEX_INDEV, /* __u32 ifindex */ 4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_IFINDEX_OUTDEV, /* __u32 ifindex */ 4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_IFINDEX_PHYSINDEV, /* __u32 ifindex */ 4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_IFINDEX_PHYSOUTDEV, /* __u32 ifindex */ 4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_HWADDR, /* nfulnl_msg_packet_hw */ 4530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_PAYLOAD, /* opaque data payload */ 4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_PREFIX, /* string prefix */ 4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_UID, /* user id of socket */ 4830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_SEQ, /* instance-local sequence number */ 4930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_SEQ_GLOBAL, /* global sequence number */ 5030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_GID, /* group id of socket */ 5130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_HWTYPE, /* hardware type */ 5230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_HWHEADER, /* hardware header */ 5330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_HWLEN, /* hardware header length */ 5430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 5530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __NFULA_MAX 5630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 5730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFULA_MAX (__NFULA_MAX - 1) 5830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 5930692c65c4174412c90e79489e98ab85c1a7412fBen Chengenum nfulnl_msg_config_cmds { 6030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULNL_CFG_CMD_NONE, 6130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULNL_CFG_CMD_BIND, 6230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULNL_CFG_CMD_UNBIND, 6330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULNL_CFG_CMD_PF_BIND, 6430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULNL_CFG_CMD_PF_UNBIND, 6530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 6630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 6730692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct nfulnl_msg_config_cmd { 6830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 command; /* nfulnl_msg_config_cmds */ 6930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng} __attribute__ ((packed)); 7030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 7130692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct nfulnl_msg_config_mode { 7230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __be32 copy_range; 7330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 copy_mode; 7430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 _pad; 7530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng} __attribute__ ((packed)); 7630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 7730692c65c4174412c90e79489e98ab85c1a7412fBen Chengenum nfulnl_attr_config { 7830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_CFG_UNSPEC, 7930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_CFG_CMD, /* nfulnl_msg_config_cmd */ 8030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_CFG_MODE, /* nfulnl_msg_config_mode */ 8130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_CFG_NLBUFSIZ, /* __u32 buffer size */ 8230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_CFG_TIMEOUT, /* __u32 in 1/100 s */ 8330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_CFG_QTHRESH, /* __u32 */ 8430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng NFULA_CFG_FLAGS, /* __u16 */ 8530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __NFULA_CFG_MAX 8630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 8730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFULA_CFG_MAX (__NFULA_CFG_MAX -1) 8830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 8930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFULNL_COPY_NONE 0x00 9030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFULNL_COPY_META 0x01 9130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFULNL_COPY_PACKET 0x02 9230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 0xff is reserved, don't use it for new copy modes. */ 9330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 9430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFULNL_CFG_F_SEQ 0x0001 9530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NFULNL_CFG_F_SEQ_GLOBAL 0x0002 9630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 9730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* _NFNETLINK_LOG_H */ 98