IPQ_SET_MODE(3)
NAME
ipq_set_mode -- set the ip_queue queuing mode
SYNOPSIS
#include <linux/netfilter.h> #include <libipq.h> int ipq_set_mode(const struct ipq_handle *h, u_int8_t mode, size_t range);
DESCRIPTION
The ipq_set_mode function sends a message to the kernel ip_queue module, specifying whether packet metadata only, or packet payloads as
well as metadata should be copied to userspace.
The h parameter is a context handle which must previously have been returned successfully from a call to ipq_create_handle.
The mode parameter must be one of:
- IPQ_COPY_META
- Copy only packet metadata to userspace.
- IPQ_COPY_PACKET
- Copy packet metadata and packet payloads to userspace.
- The range parameter is used to specify how many bytes of the payload to copy to userspace. It is only valid for IPQ_COPY_PACKET mode and is otherwise ignored. The maximum useful value for range is 65535 (greater values will be clamped to this by ip_queue).
- ipq_set_mode is usually used immediately following ipq_create_handle to enable the flow of packets to userspace.
- Note that as the underlying Netlink messaging transport is connectionless, the ip_queue module does not know that a userspace application is ready to communicate until it receives a message such as this.
RETURN VALUE
On failure, -1 is returned.
On success, a non-zero positive value is returned.
ERRORS
On failure, a descriptive error message will be available via the
ipq_errstr function.
DIAGNOSTICS
- A relatively common failure may occur if the ip_queue module is not
loaded. In this case, the following code excerpt:
- status = ipq_set_mode(h, IPQ_COPY_META, 0);
if (status < 0) { - }
- would generate the following output:
- myapp: Failed to send netlink message: Connection refused
BUGS
None known.
AUTHOR
James Morris <jmorris@intercode.com.au>
COPYRIGHT
Copyright (c) 2000-2001 Netfilter Core Team.
Distributed under the GNU General Public License.