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