ipq_get_packet man page on YellowDog

Man page or keyword search:  
man Server   18644 pages
apropos Keyword Search (all sections)
Output format
YellowDog logo
[printable version]

IPQ_MESSAGE_TYPE(3)	   Linux Programmer's Manual	   IPQ_MESSAGE_TYPE(3)

NAME
       ipq_message_type, ipq_get_packet, ipq_getmsgerr - query queue messages

SYNOPSIS
       #include <linux/netfilter.h>
       #include <libipq.h>

       int ipq_message_type(const unsigned char *buf);
       ipq_packet_msg_t *ipq_get_packet(const unsigned char *buf);
       int ipq_get_msgerr(const unsigned char *buf);

DESCRIPTION
       The  ipq_message_type  function	returns	 the  type  of	queue  message
       returned to userspace via ipq_read.

       ipq_message_type should always be called following a successful call to
       ipq_read	 to  determine	whether	 the message is a packet message or an
       error message. The buf parameter should be the same data obtained  from
       the previous call to ipq_read.

       ipq_message_type will return one of the following values:

       NLMSG_ERROR
	      An error message generated by the Netlink transport.

       IPQM_PACKET
	      A	 packet message containing packet metadata and optional packet
	      payload data.

       The  ipq_get_packet  function  should  be  called  if  ipq_message_type
       returns	IPQM_PACKET.   The buf parameter should point to the same data
       used for	 the  call  to	ipq_message_type.   The	 pointer  returned  by
       ipq_get_packet  points  to  a packet message, which is declared as fol‐
       lows:

	      typedef struct ipq_packet_msg {
		   unsigned long packet_id;	   /* ID of queued packet */
		   unsigned long mark;		   /* Netfilter mark value */
		   long timestamp_sec;		   /* Packet arrival time (seconds) */
		   long timestamp_usec;		   /* Packet arrvial time (+useconds) */
		   unsigned int hook;		   /* Netfilter hook we rode in on */
		   char indev_name[IFNAMSIZ];	   /* Name of incoming interface */
		   char outdev_name[IFNAMSIZ];	   /* Name of outgoing interface */
		   unsigned short hw_protocol;	   /* Hardware protocol (network order) */
		   unsigned short hw_type;	   /* Hardware type */
		   unsigned char hw_addrlen;	   /* Hardware address length */
		   unsigned char hw_addr[8];	   /* Hardware address */
		   size_t data_len;		   /* Length of packet data */
		   unsigned char payload[0];	   /* Optional packet data */
	      } ipq_packet_msg_t;

       Each of these fields may be read by the application.  If the queue mode
       is  IPQ_COPY_PACKET  and	 the  data_len value is greater than zero, the
       packet payload contents may be accessed in  the	memory	following  the
       ipq_packet_msg_t structure to a range of data_len.

       The  packet_id field contains a packet identifier to be used when call‐
       ing ipq_set_verdict.

       The  ipq_get_msgerr  function  should  be  called  if  ipq_message_type
       returns	NLMSG_ERROR.   The buf parameter should point to the same data
       used  for  the  call  to	 ipq_message_type.   The  value	 returned   by
       ipq_get_msgerr  is  set	by higher level kernel code and corresponds to
       standard errno values.

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.

SEE ALSO
       iptables(8), libipq(3).

Linux iptables 1.2		16 October 2001		   IPQ_MESSAGE_TYPE(3)
[top]

List of man pages available for YellowDog

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net