libnetfilter_queue  1.0.5
Modules | Functions
IPv4 helper functions
Collaboration diagram for IPv4 helper functions:

Modules

 Internal IP functions
 

Functions

struct iphdr * nfq_ip_get_hdr (struct pkt_buff *pktb)
 
int nfq_ip_set_transport_header (struct pkt_buff *pktb, struct iphdr *iph)
 
int nfq_ip_mangle (struct pkt_buff *pktb, unsigned int dataoff, unsigned int match_offset, unsigned int match_len, const char *rep_buffer, unsigned int rep_len)
 
int nfq_ip_snprintf (char *buf, size_t size, const struct iphdr *iph)
 

Detailed Description

Function Documentation

◆ nfq_ip_get_hdr()

struct iphdr* nfq_ip_get_hdr ( struct pkt_buff *  pktb)

nfq_ip_get_hdr - get the IPv4 header

Parameters
pktbPointer to user-space network packet buffer
Returns
validated pointer to the IPv4 header or NULL if IP is malformed or not version 4

Many programs will not need to call this function. A possible use is to determine the layer 4 protocol. The validation is that the buffer is big enough for the declared lengths in the header, i.e. an extra check for packet truncation.

Definition at line 40 of file ipv4.c.

◆ nfq_ip_mangle()

int nfq_ip_mangle ( struct pkt_buff *  pktb,
unsigned int  dataoff,
unsigned int  match_offset,
unsigned int  match_len,
const char *  rep_buffer,
unsigned int  rep_len 
)

nfq_ip_mangle - mangle IPv4 packet buffer

Parameters
pktbPointer to user-space network packet buffer
dataoffOffset to layer 4 header, or zero to mangle IP header
match_offsetOffset to content that you want to mangle
match_lenLength of the existing content you want to mangle
rep_bufferPointer to data you want to use to replace current content
rep_lenLength of data you want to use to replace current content
Returns
1 for success and 0 for failure. See pktb_mangle() for failure case
Note
This function updates the IPv4 length if necessary and recalculates the IPv4 checksum.

Definition at line 127 of file ipv4.c.

◆ nfq_ip_set_transport_header()

int nfq_ip_set_transport_header ( struct pkt_buff *  pktb,
struct iphdr *  iph 
)

nfq_ip_set_transport_header - set the transport_header field in pktb

Parameters
pktbPointer to user-space network packet buffer
iphPointer to the IPv4 header
Returns
0 on success or -1 if a minimal validation check fails
Note
Most programs should call nfq_ip_set_transport_header as soon as possible, since most layer 4 helper functions assume the transport_header field is valid.

Definition at line 73 of file ipv4.c.

◆ nfq_ip_snprintf()

int nfq_ip_snprintf ( char *  buf,
size_t  size,
const struct iphdr *  iph 
)

nfq_pkt_snprintf_ip - print IPv4 header into buffer in iptables LOG format

Parameters
bufPointer to buffer that will be used to print the header
sizeSize of the buffer (or remaining room in it)
iphPointer to a valid IPv4 header
Returns
same as snprintf
See also
snprintf(3)

Definition at line 153 of file ipv4.c.