Hi, I have written a program to log the nat behavior. the program works well when traffic is low. But when the traffic reaches 1Gb, program always error. According to the previous discussions about this problem, I even set the recv buffer size to 50MB and the error still exists. For every callback, format the data and then put it into the queue directly. The formating of data causes less then 1 second for 0.65 million records. Errors always occurs when there are less than 10 log records. Is anyone who can help? Thanks. Setting: Redhat Enterprise Linux 5 libnetfilter_conntrack-0.0.100 libnfnetlink-1.0.0 recv buffer size: 50MB nfct_open(CONNTRACK, NF_NETLINK_CONNTRACK_NEW|NF_NETLINK_CONNTRACK_DESTROY) 1Gb nat traffic, 0.65 million records per minute circular queue size: 1 million Error: nfct_catch error: No buffer space available Program Structure: Callback: lock; if log number > MAX_LOG_NUM: discard else: put log in circular queue log number += 1 unlock Thread 2: lock; if log number >0 : get lock number unlock process log data in circular queue lock log number = log number - log number processed unlock -- To unsubscribe from this list: send the line "unsubscribe netfilter" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html