File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libnet / doc / man / man3 / libnet.3
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Sep 27 11:11:38 2023 UTC (10 months ago) by misho
Branches: libnet, MAIN
CVS tags: v1_2p1, HEAD
Version 1.2p1

.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
.    if \nF \{\
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{\
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "LIBNET 3"
.TH LIBNET 3 "ons okt 16 2019" "libnet-1.2" "libnet Programmers Guide"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
libnet \- A C library for packet creation and injection
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
\&\fB#include <libnet.h>\fR
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
libnet is a packet assembly library that provides a portable interface for
packet creation and injection.
.PP
It is a high-level \s-1API\s0 that allows an application programmer to construct and
inject network packets. libnet provides a simplified interface for low-level
network packet shaping, handling and injection.
.PP
libnet hides much of the tedium of packet creation from the application
programmer such as multiplexing, buffer management, arcane packet header
information, byte-ordering, OS-dependent issues, and much more. libnet features
portable packet creation interfaces at the \s-1IP\s0 and link layer, as well as a host
of supplementary and complementary functionality. Using libnet, quick and
simple packet assembly applications can be whipped up with little effort.  With
a bit more time, more complex programs can be written (\fBtraceroute\fR\|(8) and
\&\fBping\fR\|(8) were easily rewritten using libnet and \fBpcap\fR\|(3).
.PP
When building applications with libnet we recommend using \fBpkg\-config\fR\|(1) to
detect the precense and required version of libnet.  The \fBlibnet\-config\fR\|(1)
script is still bundled in the libnet distribution, but is considered to be
deprecated in favor of \fBpkg\-config\fR\|(1).  Both can be used to get compiler and
linker flags of the installed libnet library, as well as provide other useful
information.  For applications using \s-1GNU\s0 autotools, we recommend using the
\&\s-1PKG_PROG_PKG_CONFIG\s0 and \s-1PKG_CHECK_MODULES\s0 m4 macros.
.PP
\&\fB\s-1NOTE\s0\fR: If you are writing your application with libnet, include \fIlibnet.h\fR,
which will include any additional header for you, rather than including
\&\fIlibnet/libnet\-functions.h\fR, \fIlibnet/libnet\-macros.h\fR or any of the others.
.SH "BACKWARDS COMPATIBILITY"
.IX Header "BACKWARDS COMPATIBILITY"
Your old code (circa libnet \fB1.0.x\fR) \s-1WILL NOT WORK\s0 with libnet> \fB>=1.1.x\fR.
See \fBdoc/MIGRATION.md\fR for easy steps on porting your old code.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fBpkg\-config\fR\|(1), \fBlibnet\-config\fR\|(1), \fBlibnet\-functions\fR\|(3), \fBlibnet\-macros\fR\|(3)
.SH "AUTHORS"
.IX Header "AUTHORS"
The original author of libnet is Mike D. Schiffman.
.PP
libnet has been maintained and extensively enhanced since 2009 by Sam Roberts.
It is currently maintained by the Libnet Maintainers at GitHub:
.PP
.Vb 1
\&        <https://github.com/libnet/libnet>
.Ve
.SH "BUGS"
.IX Header "BUGS"
Suggestions, bug reports/fixes, and pull requests, see:
.PP
.Vb 1
\&        <https://github.com/libnet/libnet/issues>
.Ve
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
libnet is licensed under the 3\-Clause \s-1BSD\s0 License.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>