130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Header file for IP tables userspace logging, Version 1.8 230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * (C) 2000-2002 by Harald Welte <laforge@gnumonks.org> 430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Distributed under the terms of GNU GPL */ 630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _IPT_ULOG_H 830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _IPT_ULOG_H 930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef NETLINK_NFLOG 1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NETLINK_NFLOG 5 1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif 1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ULOG_DEFAULT_NLGROUP 1 1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ULOG_DEFAULT_QTHRESHOLD 1 1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ULOG_MAC_LEN 80 1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ULOG_PREFIX_LEN 32 1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ULOG_MAX_QLEN 50 2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Why 50? Well... there is a limit imposed by the slab cache 131000 2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * bytes. So the multipart netlink-message has to be < 131000 bytes. 2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Assuming a standard ethernet-mtu of 1500, we could define this up 2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * to 80... but even 50 seems to be big enough. */ 2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* private data structure for each rule with a ULOG target */ 2730692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct ipt_ulog_info { 2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned int nl_group; 2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng size_t copy_range; 3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng size_t qthreshold; 3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char prefix[ULOG_PREFIX_LEN]; 3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Format of the ULOG packets passed through netlink */ 3530692c65c4174412c90e79489e98ab85c1a7412fBen Chengtypedef struct ulog_packet_msg { 3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned long mark; 3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng long timestamp_sec; 3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng long timestamp_usec; 3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned int hook; 4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char indev_name[IFNAMSIZ]; 4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char outdev_name[IFNAMSIZ]; 4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng size_t data_len; 4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char prefix[ULOG_PREFIX_LEN]; 4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned char mac_len; 4530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned char mac[ULOG_MAC_LEN]; 4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned char payload[0]; 4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng} ulog_packet_msg_t; 4830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 4930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /*_IPT_ULOG_H*/ 50