Thomas Jacob wrote: > Hello List, > > I am trying to get ulogd2 to log NFLOG-collected data > correctly, and am getting lots of "nfnetlink_log: error creating log > nlmsg" and only very few actual log entries. > > As far as I can tell this happens when there is not enough skb_tailroom > for the log-message in __build_packet_message, but in > nfulnl_log_packet there also a check of skb_tailroom against a different > size value which is supposed to result in flushing messages if there > is no space. > > Bug? Feature? If it's the latter, how can I prevent this from > happening? Does this patch helps? It seems that we're missing to add the size of the hardware address since 2.6.27. -- "Los honestos son inadaptados sociales" -- Les Luthiers
diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c index fd326ac..66a6dd5 100644 --- a/net/netfilter/nfnetlink_log.c +++ b/net/netfilter/nfnetlink_log.c @@ -581,6 +581,12 @@ nfulnl_log_packet(u_int8_t pf, + nla_total_size(sizeof(struct nfulnl_msg_packet_hw)) + nla_total_size(sizeof(struct nfulnl_msg_packet_timestamp)); + if (in && skb_mac_header_was_set(skb)) { + size += nla_total_size(skb->dev->hard_header_len) + + nla_total_size(sizeof(u_int16_t)) /* hwtype */ + + nla_total_size(sizeof(u_int16_t)); /* hwlen */ + } + spin_lock_bh(&inst->lock); if (inst->flags & NFULNL_CFG_F_SEQ)