1 /* Header file for IP tables userspace logging, Version 1.8 2 * 3 * (C) 2000-2002 by Harald Welte <laforge@gnumonks.org> 4 * 5 * Distributed under the terms of GNU GPL */ 6 7 #ifndef _IPT_ULOG_H 8 #define _IPT_ULOG_H 9 10 #ifndef NETLINK_NFLOG 11 #define NETLINK_NFLOG 5 12 #endif 13 14 #define ULOG_MAC_LEN 80 15 #define ULOG_PREFIX_LEN 32 16 17 #define ULOG_MAX_QLEN 50 18 /* Why 50? Well... there is a limit imposed by the slab cache 131000 19 * bytes. So the multipart netlink-message has to be < 131000 bytes. 20 * Assuming a standard ethernet-mtu of 1500, we could define this up 21 * to 80... but even 50 seems to be big enough. */ 22 23 /* private data structure for each rule with a ULOG target */ 24 struct ipt_ulog_info { 25 unsigned int nl_group; 26 size_t copy_range; 27 size_t qthreshold; 28 char prefix[ULOG_PREFIX_LEN]; 29 }; 30 31 /* Format of the ULOG packets passed through netlink */ 32 typedef struct ulog_packet_msg { 33 unsigned long mark; 34 long timestamp_sec; 35 long timestamp_usec; 36 unsigned int hook; 37 char indev_name[IFNAMSIZ]; 38 char outdev_name[IFNAMSIZ]; 39 size_t data_len; 40 char prefix[ULOG_PREFIX_LEN]; 41 unsigned char mac_len; 42 unsigned char mac[ULOG_MAC_LEN]; 43 unsigned char payload[0]; 44 } ulog_packet_msg_t; 45 46 #endif /*_IPT_ULOG_H*/ 47