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_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 */ 27struct ipt_ulog_info { 28 unsigned int nl_group; 29#ifdef KERNEL_64_USERSPACE_32 30 unsigned long long copy_range; 31 unsigned long long qthreshold; 32#else 33 size_t copy_range; 34 size_t qthreshold; 35#endif 36 char prefix[ULOG_PREFIX_LEN]; 37}; 38 39/* Format of the ULOG packets passed through netlink */ 40typedef struct ulog_packet_msg { 41 unsigned long mark; 42 long timestamp_sec; 43 long timestamp_usec; 44 unsigned int hook; 45 char indev_name[IFNAMSIZ]; 46 char outdev_name[IFNAMSIZ]; 47 size_t data_len; 48 char prefix[ULOG_PREFIX_LEN]; 49 unsigned char mac_len; 50 unsigned char mac[ULOG_MAC_LEN]; 51 unsigned char payload[0]; 52} ulog_packet_msg_t; 53 54#endif /*_IPT_ULOG_H*/ 55