You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
3.0 KiB
105 lines
3.0 KiB
.TH IPQ_SET_MODE 3 "16 October 2001" "Linux iptables 1.2" "Linux Programmer's Manual" |
|
.\" |
|
.\" Copyright (c) 2000-2001 Netfilter Core Team |
|
.\" |
|
.\" This program is free software; you can redistribute it and/or modify |
|
.\" it under the terms of the GNU General Public License as published by |
|
.\" the Free Software Foundation; either version 2 of the License, or |
|
.\" (at your option) any later version. |
|
.\" |
|
.\" This program is distributed in the hope that it will be useful, |
|
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
.\" GNU General Public License for more details. |
|
.\" |
|
.\" You should have received a copy of the GNU General Public License |
|
.\" along with this program; if not, write to the Free Software |
|
.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
|
.\" |
|
.\" |
|
.SH NAME |
|
ipq_set_mode \(em set the ip_queue queuing mode |
|
.SH SYNOPSIS |
|
.B #include <linux/netfilter.h> |
|
.br |
|
.B #include <libipq.h> |
|
.sp |
|
.BI "int ipq_set_mode(const struct ipq_handle *" h ", u_int8_t " mode ", size_t " range ); |
|
.SH DESCRIPTION |
|
The |
|
.B 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. |
|
.PP |
|
The |
|
.I h |
|
parameter is a context handle which must previously have been returned |
|
successfully from a call to |
|
.BR ipq_create_handle . |
|
.PP |
|
The |
|
.I mode |
|
parameter must be one of: |
|
.TP |
|
.B IPQ_COPY_META |
|
Copy only packet metadata to userspace. |
|
.TP |
|
.B IPQ_COPY_PACKET |
|
Copy packet metadata and packet payloads to userspace. |
|
.PP |
|
The |
|
.I range |
|
parameter is used to specify how many bytes of the payload to copy |
|
to userspace. It is only valid for |
|
.B IPQ_COPY_PACKET |
|
mode and is otherwise ignored. The maximum useful value for |
|
.I range |
|
is 65535 (greater values will be clamped to this by ip_queue). |
|
.PP |
|
.B ipq_set_mode |
|
is usually used immediately following |
|
.B ipq_create_handle |
|
to enable the flow of packets to userspace. |
|
.PP |
|
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. |
|
.SH RETURN VALUE |
|
On failure, \-1 is returned. |
|
.br |
|
On success, a non-zero positive value is returned. |
|
.SH ERRORS |
|
On failure, a descriptive error message will be available |
|
via the |
|
.B ipq_errstr |
|
function. |
|
.SH DIAGNOSTICS |
|
A relatively common failure may occur if the ip_queue module is not loaded. |
|
In this case, the following code excerpt: |
|
.PP |
|
.RS |
|
.nf |
|
status = ipq_set_mode(h, IPQ_COPY_META, 0); |
|
if (status < 0) { |
|
ipq_perror("myapp"); |
|
ipq_destroy_handle(h); |
|
exit(1); |
|
} |
|
.RE |
|
.fi |
|
.PP |
|
would generate the following output: |
|
.PP |
|
.I myapp: Failed to send netlink message: Connection refused |
|
.SH BUGS |
|
None known. |
|
.SH AUTHOR |
|
James Morris <jmorris@intercode.com.au> |
|
.SH COPYRIGHT |
|
Copyright (c) 2000-2001 Netfilter Core Team. |
|
.PP |
|
Distributed under the GNU General Public License. |
|
.SH SEE ALSO |
|
.BR libipq (3), |
|
.BR iptables (8).
|
|
|