130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _EBT_ULOG_H
230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _EBT_ULOG_H
330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/types.h>
530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define EBT_ULOG_DEFAULT_NLGROUP 0
730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define EBT_ULOG_DEFAULT_QTHRESHOLD 1
830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define EBT_ULOG_MAXNLGROUPS 32 /* hardcoded netlink max */
930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define EBT_ULOG_PREFIX_LEN 32
1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define EBT_ULOG_MAX_QLEN 50
1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define EBT_ULOG_WATCHER "ulog"
1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define EBT_ULOG_VERSION 1
1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
1430692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct ebt_ulog_info {
1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32 nlgroup;
1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	unsigned int cprange;
1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	unsigned int qthreshold;
1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	char prefix[EBT_ULOG_PREFIX_LEN];
1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
2130692c65c4174412c90e79489e98ab85c1a7412fBen Chengtypedef struct ebt_ulog_packet_msg {
2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	int version;
2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	char indev[IFNAMSIZ];
2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	char outdev[IFNAMSIZ];
2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	char physindev[IFNAMSIZ];
2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	char physoutdev[IFNAMSIZ];
2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	char prefix[EBT_ULOG_PREFIX_LEN];
2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	struct timeval stamp;
2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	unsigned long mark;
3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	unsigned int hook;
3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	size_t data_len;
3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	/* The complete packet, including Ethernet header and perhaps
3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	 * the VLAN header is appended */
3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	unsigned char data[0] __attribute__
3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	                      ((aligned (__alignof__(struct ebt_ulog_info))));
3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng} ebt_ulog_packet_msg_t;
3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* _EBT_ULOG_H */
39