diff -ru libnet/doc/html/acconfig_8h-source.html libnet/doc/html/acconfig_8h-source.html --- libnet/doc/html/acconfig_8h-source.html Wed Mar 10 22:23:37 2004 +++ libnet/doc/html/acconfig_8h-source.html Sat Aug 19 10:56:42 2006 @@ -2,48 +2,58 @@ libnet: acconfig.h Source File + - -
Main Page | Data Structures | File List | Data Fields | Globals
-

acconfig.h

00001 /*
-00002 dnl $Id: acconfig.h,v 1.2 2004/01/03 20:31:00 mike Exp $
-00003 dnl
-00004 dnl Libnet autoconfiguration acconfig.h file
-00005 dnl Copyright (c) 1998 - 2004 Mike D. Schiffman <mike@infonexus.com>
-00006 dnl All rights reserved.
-00007 dnl
-00008 dnl Process this file with autoheader to produce a config.h file.
-00009 dnl
-00010 */
-00011 
-00012 #undef LIBNET_BSDISH_OS
-00013 #undef LIBNET_BSD_BYTE_SWAP
-00014 #undef DLPI_DEV_PREFIX
-00015 #undef HAVE_DEV_DLPI
-00016 #undef HAVE_SOLARIS
-00017 #undef HAVE_SOLARIS_IPV6
-00018 #undef HAVE_HPUX11
-00019 #undef HAVE_SOCKADDR_SA_LEN
-00020 #undef HAVE_DLPI
-00021 #undef HAVE_PACKET_SOCKET
-00022 #undef HAVE_STRUCT_IP_CSUM
-00023 #undef HAVE_LIB_PCAP
-00024 #undef LBL_ALIGN
-00025 #undef STUPID_SOLARIS_CHECKSUM_BUG
-00026 #undef _BSD_SOURCE
-00027 #undef __BSD_SOURCE
-00028 #undef __FAVOR_BSD
-00029 #undef LIBNET_BIG_ENDIAN
-00030 #undef LIBNET_LIL_ENDIAN
-00031 #undef NO_SNPRINTF
-00032 
-00033 
-00034 /*
-00035 dnl EOF
-00036 */
-

Generated on Wed Mar 10 13:23:37 2004 for libnet by + + + +

acconfig.h

00001 /*
+00002 dnl $Id: acconfig.h,v 1.2 2004/01/03 20:31:00 mike Exp $
+00003 dnl
+00004 dnl Libnet autoconfiguration acconfig.h file
+00005 dnl Copyright (c) 1998 - 2004 Mike D. Schiffman <mike@infonexus.com>
+00006 dnl All rights reserved.
+00007 dnl
+00008 dnl Process this file with autoheader to produce a config.h file.
+00009 dnl
+00010 */
+00011 
+00012 #undef LIBNET_BSDISH_OS
+00013 #undef LIBNET_BSD_BYTE_SWAP
+00014 #undef DLPI_DEV_PREFIX
+00015 #undef HAVE_DEV_DLPI
+00016 #undef HAVE_SOLARIS
+00017 #undef HAVE_SOLARIS_IPV6
+00018 #undef HAVE_HPUX11
+00019 #undef HAVE_SOCKADDR_SA_LEN
+00020 #undef HAVE_DLPI
+00021 #undef HAVE_PACKET_SOCKET
+00022 #undef HAVE_STRUCT_IP_CSUM
+00023 #undef HAVE_LIB_PCAP
+00024 #undef LBL_ALIGN
+00025 #undef STUPID_SOLARIS_CHECKSUM_BUG
+00026 #undef _BSD_SOURCE
+00027 #undef __BSD_SOURCE
+00028 #undef __FAVOR_BSD
+00029 #undef LIBNET_BIG_ENDIAN
+00030 #undef LIBNET_LIL_ENDIAN
+00031 #undef NO_SNPRINTF
+00032 
+00033 
+00034 /*
+00035 dnl EOF
+00036 */
+

Generated on Sat Aug 19 10:56:42 2006 for libnet by  -doxygen -1.3.4
+doxygen 1.4.7
diff -ru libnet/doc/html/annotated.html libnet/doc/html/annotated.html --- libnet/doc/html/annotated.html Wed Mar 10 22:23:38 2004 +++ libnet/doc/html/annotated.html Sat Aug 19 10:56:46 2006 @@ -1,17 +1,27 @@ -libnet: Annotated Index +libnet: Data Structures + - -
Main Page | Data Structures | File List | Data Fields | Globals
+ +
+
+
+

libnet Data Structures

Here are the data structures with brief descriptions:
libnet_802_1q_hdr
libnet_802_1x_hdr
-
Generated on Wed Mar 10 13:23:38 2004 for libnet by +
Generated on Sat Aug 19 10:56:46 2006 for libnet by  -doxygen -1.3.4
+doxygen 1.4.7
diff -ru libnet/doc/html/bpf_8h-source.html libnet/doc/html/bpf_8h-source.html --- libnet/doc/html/bpf_8h-source.html Wed Mar 10 22:23:37 2004 +++ libnet/doc/html/bpf_8h-source.html Sat Aug 19 10:56:42 2006 @@ -2,276 +2,286 @@ libnet: bpf.h Source File + - -
Main Page | Data Structures | File List | Data Fields | Globals
-

bpf.h

00001 /*-
-00002  * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
-00003  *  The Regents of the University of California.  All rights reserved.
-00004  *
-00005  * This code is derived from the Stanford/CMU enet packet filter,
-00006  * (net/enet.c) distributed as part of 4.3BSD, and code contributed
-00007  * to Berkeley by Steven McCanne and Van Jacobson both of Lawrence 
-00008  * Berkeley Laboratory.
-00009  *
-00010  * Redistribution and use in source and binary forms, with or without
-00011  * modification, are permitted provided that the following conditions
-00012  * are met:
-00013  * 1. Redistributions of source code must retain the above copyright
-00014  *    notice, this list of conditions and the following disclaimer.
-00015  * 2. Redistributions in binary form must reproduce the above copyright
-00016  *    notice, this list of conditions and the following disclaimer in the
-00017  *    documentation and/or other materials provided with the distribution.
-00018  * 3. All advertising materials mentioning features or use of this software
-00019  *    must display the following acknowledgement:
-00020  *      This product includes software developed by the University of
-00021  *      California, Berkeley and its contributors.
-00022  * 4. Neither the name of the University nor the names of its contributors
-00023  *    may be used to endorse or promote products derived from this software
-00024  *    without specific prior written permission.
-00025  *
-00026  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-00027  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-00028  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-00029  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-00030  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-00031  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-00032  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-00033  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-00034  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-00035  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-00036  * SUCH DAMAGE.
-00037  *
-00038  *      @(#)bpf.h       7.1 (Berkeley) 5/7/91
-00039  *
-00040  * @(#) $Header: /usr/local/CVS/libnet/include/bpf.h,v 1.1.1.1 2003/06/26 21:55:10 route Exp $ (LBL)
-00041  */
-00042 
-00043 #ifndef BPF_MAJOR_VERSION
-00044 
-00045 /* BSD style release date */
-00046 #define BPF_RELEASE 199606
-00047 
-00048 typedef int bpf_int32;
-00049 typedef u_int bpf_u_int32;
-00050 
-00051 /*
-00052  * Alignment macros.  BPF_WORDALIGN rounds up to the next 
-00053  * even multiple of BPF_ALIGNMENT. 
-00054  */
-00055 #define BPF_ALIGNMENT sizeof(bpf_int32)
-00056 #define BPF_WORDALIGN(x) (((x)+(BPF_ALIGNMENT-1))&~(BPF_ALIGNMENT-1))
-00057 
-00058 #define BPF_MAXINSNS 512
-00059 #define BPF_MAXBUFSIZE 0x8000
-00060 #define BPF_MINBUFSIZE 32
-00061 
-00062 /*
-00063  *  Structure for BIOCSETF.
-00064  */
-00065 struct bpf_program {
-00066     u_int bf_len;
-00067     struct bpf_insn *bf_insns;
-00068 };
-00069  
-00070 /*
-00071  * Struct returned by BIOCGSTATS.
-00072  */
-00073 struct bpf_stat {
-00074     u_int bs_recv;      /* number of packets received */
-00075     u_int bs_drop;      /* number of packets dropped */
-00076 };
-00077 
-00078 /*
-00079  * Struct return by BIOCVERSION.  This represents the version number of 
-00080  * the filter language described by the instruction encodings below.
-00081  * bpf understands a program iff kernel_major == filter_major &&
-00082  * kernel_minor >= filter_minor, that is, if the value returned by the
-00083  * running kernel has the same major number and a minor number equal
-00084  * equal to or less than the filter being downloaded.  Otherwise, the
-00085  * results are undefined, meaning an error may be returned or packets
-00086  * may be accepted haphazardly.
-00087  * It has nothing to do with the source code version.
-00088  */
-00089 struct bpf_version {
-00090     u_short bv_major;
-00091     u_short bv_minor;
-00092 };
-00093 /* Current version number of filter architecture. */
-00094 #define BPF_MAJOR_VERSION 1
-00095 #define BPF_MINOR_VERSION 1
-00096 
-00097 /*
-00098  * BPF ioctls
-00099  *
-00100  * The first set is for compatibility with Sun's pcc style
-00101  * header files.  If your using gcc, we assume that you
-00102  * have run fixincludes so the latter set should work.
-00103  */
-00104 #if (defined(sun) || defined(ibm032)) && !defined(__GNUC__)
-00105 #define BIOCGBLEN   _IOR(B,102, u_int)
-00106 #define BIOCSBLEN   _IOWR(B,102, u_int)
-00107 #define BIOCSETF    _IOW(B,103, struct bpf_program)
-00108 #define BIOCFLUSH   _IO(B,104)
-00109 #define BIOCPROMISC _IO(B,105)
-00110 #define BIOCGDLT    _IOR(B,106, u_int)
-00111 #define BIOCGETIF   _IOR(B,107, struct ifreq)
-00112 #define BIOCSETIF   _IOW(B,108, struct ifreq)
-00113 #define BIOCSRTIMEOUT   _IOW(B,109, struct timeval)
-00114 #define BIOCGRTIMEOUT   _IOR(B,110, struct timeval)
-00115 #define BIOCGSTATS  _IOR(B,111, struct bpf_stat)
-00116 #define BIOCIMMEDIATE   _IOW(B,112, u_int)
-00117 #define BIOCVERSION _IOR(B,113, struct bpf_version)
-00118 #define BIOCSTCPF   _IOW(B,114, struct bpf_program)
-00119 #define BIOCSUDPF   _IOW(B,115, struct bpf_program)
-00120 #else
-00121 #define BIOCGBLEN   _IOR('B',102, u_int)
-00122 #define BIOCSBLEN   _IOWR('B',102, u_int)
-00123 #define BIOCSETF    _IOW('B',103, struct bpf_program)
-00124 #define BIOCFLUSH   _IO('B',104)
-00125 #define BIOCPROMISC _IO('B',105)
-00126 #define BIOCGDLT    _IOR('B',106, u_int)
-00127 #define BIOCGETIF   _IOR('B',107, struct ifreq)
-00128 #define BIOCSETIF   _IOW('B',108, struct ifreq)
-00129 #define BIOCSRTIMEOUT   _IOW('B',109, struct timeval)
-00130 #define BIOCGRTIMEOUT   _IOR('B',110, struct timeval)
-00131 #define BIOCGSTATS  _IOR('B',111, struct bpf_stat)
-00132 #define BIOCIMMEDIATE   _IOW('B',112, u_int)
-00133 #define BIOCVERSION _IOR('B',113, struct bpf_version)
-00134 #define BIOCSTCPF   _IOW('B',114, struct bpf_program)
-00135 #define BIOCSUDPF   _IOW('B',115, struct bpf_program)
-00136 #endif
-00137 
-00138 /*
-00139  * Structure prepended to each packet.
-00140  */
-00141 struct bpf_hdr {
-00142     struct timeval  bh_tstamp;  /* time stamp */
-00143     bpf_u_int32 bh_caplen;  /* length of captured portion */
-00144     bpf_u_int32 bh_datalen; /* original length of packet */
-00145     u_short     bh_hdrlen;  /* length of bpf header (this struct
-00146                        plus alignment padding) */
-00147 };
-00148 /*
-00149  * Because the structure above is not a multiple of 4 bytes, some compilers
-00150  * will insist on inserting padding; hence, sizeof(struct bpf_hdr) won't work.
-00151  * Only the kernel needs to know about it; applications use bh_hdrlen.
-00152  */
-00153 #ifdef KERNEL
-00154 #define SIZEOF_BPF_HDR 18
-00155 #endif
-00156 
-00157 /*
-00158  * Data-link level type codes.
-00159  */
-00160 #define DLT_NULL    0   /* no link-layer encapsulation */
-00161 #define DLT_EN10MB  1   /* Ethernet (10Mb) */
-00162 #define DLT_EN3MB   2   /* Experimental Ethernet (3Mb) */
-00163 #define DLT_AX25    3   /* Amateur Radio AX.25 */
-00164 #define DLT_PRONET  4   /* Proteon ProNET Token Ring */
-00165 #define DLT_CHAOS   5   /* Chaos */
-00166 #define DLT_IEEE802 6   /* IEEE 802 Networks */
-00167 #define DLT_ARCNET  7   /* ARCNET */
-00168 #define DLT_SLIP    8   /* Serial Line IP */
-00169 #define DLT_PPP     9   /* Point-to-point Protocol */
-00170 #define DLT_FDDI    10  /* FDDI */
-00171 #define DLT_ATM_RFC1483 11  /* LLC/SNAP encapsulated atm */
-00172 #define DLT_RAW     12  /* raw IP */
-00173 #define DLT_SLIP_BSDOS  13  /* BSD/OS Serial Line IP */
-00174 #define DLT_PPP_BSDOS   14  /* BSD/OS Point-to-point Protocol */
-00175 
-00176 /*
-00177  * The instruction encondings.
-00178  */
-00179 /* instruction classes */
-00180 #define BPF_CLASS(code) ((code) & 0x07)
-00181 #define     BPF_LD      0x00
-00182 #define     BPF_LDX     0x01
-00183 #define     BPF_ST      0x02
-00184 #define     BPF_STX     0x03
-00185 #define     BPF_ALU     0x04
-00186 #define     BPF_JMP     0x05
-00187 #define     BPF_RET     0x06
-00188 #define     BPF_MISC    0x07
-00189 
-00190 /* ld/ldx fields */
-00191 #define BPF_SIZE(code)  ((code) & 0x18)
-00192 #define     BPF_W       0x00
-00193 #define     BPF_H       0x08
-00194 #define     BPF_B       0x10
-00195 #define BPF_MODE(code)  ((code) & 0xe0)
-00196 #define     BPF_IMM     0x00
-00197 #define     BPF_ABS     0x20
-00198 #define     BPF_IND     0x40
-00199 #define     BPF_MEM     0x60
-00200 #define     BPF_LEN     0x80
-00201 #define     BPF_MSH     0xa0
-00202 
-00203 /* alu/jmp fields */
-00204 #define BPF_OP(code)    ((code) & 0xf0)
-00205 #define     BPF_ADD     0x00
-00206 #define     BPF_SUB     0x10
-00207 #define     BPF_MUL     0x20
-00208 #define     BPF_DIV     0x30
-00209 #define     BPF_OR      0x40
-00210 #define     BPF_AND     0x50
-00211 #define     BPF_LSH     0x60
-00212 #define     BPF_RSH     0x70
-00213 #define     BPF_NEG     0x80
-00214 #define     BPF_JA      0x00
-00215 #define     BPF_JEQ     0x10
-00216 #define     BPF_JGT     0x20
-00217 #define     BPF_JGE     0x30
-00218 #define     BPF_JSET    0x40
-00219 #define BPF_SRC(code)   ((code) & 0x08)
-00220 #define     BPF_K       0x00
-00221 #define     BPF_X       0x08
-00222 
-00223 /* ret - BPF_K and BPF_X also apply */
-00224 #define BPF_RVAL(code)  ((code) & 0x18)
-00225 #define     BPF_A       0x10
-00226 
-00227 /* misc */
-00228 #define BPF_MISCOP(code) ((code) & 0xf8)
-00229 #define     BPF_TAX     0x00
-00230 #define     BPF_TXA     0x80
-00231 
-00232 /*
-00233  * The instruction data structure.
-00234  */
-00235 struct bpf_insn {
-00236     u_short code;
-00237     u_char  jt;
-00238     u_char  jf;
-00239     bpf_int32 k;
-00240 };
-00241 
-00242 /*
-00243  * Macros for insn array initializers.
-00244  */
-00245 #define BPF_STMT(code, k) { (u_short)(code), 0, 0, k }
-00246 #define BPF_JUMP(code, k, jt, jf) { (u_short)(code), jt, jf, k }
-00247 
-00248 #ifdef KERNEL
-00249 extern u_int bpf_filter();
-00250 extern void bpfattach();
-00251 extern void bpf_tap();
-00252 extern void bpf_mtap();
-00253 #else
-00254 #if __STDC__
-00255 extern u_int bpf_filter(struct bpf_insn *, u_char *, u_int, u_int);
-00256 #endif
-00257 #endif
-00258 
-00259 /*
-00260  * Number of scratch memory words (for BPF_LD|BPF_MEM and BPF_ST).
-00261  */
-00262 #define BPF_MEMWORDS 16
-00263 
-00264 #endif
-

Generated on Wed Mar 10 13:23:37 2004 for libnet by + + + +

bpf.h

00001 /*-
+00002  * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
+00003  *  The Regents of the University of California.  All rights reserved.
+00004  *
+00005  * This code is derived from the Stanford/CMU enet packet filter,
+00006  * (net/enet.c) distributed as part of 4.3BSD, and code contributed
+00007  * to Berkeley by Steven McCanne and Van Jacobson both of Lawrence 
+00008  * Berkeley Laboratory.
+00009  *
+00010  * Redistribution and use in source and binary forms, with or without
+00011  * modification, are permitted provided that the following conditions
+00012  * are met:
+00013  * 1. Redistributions of source code must retain the above copyright
+00014  *    notice, this list of conditions and the following disclaimer.
+00015  * 2. Redistributions in binary form must reproduce the above copyright
+00016  *    notice, this list of conditions and the following disclaimer in the
+00017  *    documentation and/or other materials provided with the distribution.
+00018  * 3. All advertising materials mentioning features or use of this software
+00019  *    must display the following acknowledgement:
+00020  *      This product includes software developed by the University of
+00021  *      California, Berkeley and its contributors.
+00022  * 4. Neither the name of the University nor the names of its contributors
+00023  *    may be used to endorse or promote products derived from this software
+00024  *    without specific prior written permission.
+00025  *
+00026  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+00027  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+00028  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+00029  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+00030  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+00031  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+00032  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+00033  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+00034  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+00035  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+00036  * SUCH DAMAGE.
+00037  *
+00038  *      @(#)bpf.h       7.1 (Berkeley) 5/7/91
+00039  *
+00040  * @(#) $Header: /usr/local/CVS/libnet/include/bpf.h,v 1.1.1.1 2003/06/26 21:55:10 route Exp $ (LBL)
+00041  */
+00042 
+00043 #ifndef BPF_MAJOR_VERSION
+00044 
+00045 /* BSD style release date */
+00046 #define BPF_RELEASE 199606
+00047 
+00048 typedef int bpf_int32;
+00049 typedef u_int bpf_u_int32;
+00050 
+00051 /*
+00052  * Alignment macros.  BPF_WORDALIGN rounds up to the next 
+00053  * even multiple of BPF_ALIGNMENT. 
+00054  */
+00055 #define BPF_ALIGNMENT sizeof(bpf_int32)
+00056 #define BPF_WORDALIGN(x) (((x)+(BPF_ALIGNMENT-1))&~(BPF_ALIGNMENT-1))
+00057 
+00058 #define BPF_MAXINSNS 512
+00059 #define BPF_MAXBUFSIZE 0x8000
+00060 #define BPF_MINBUFSIZE 32
+00061 
+00062 /*
+00063  *  Structure for BIOCSETF.
+00064  */
+00065 struct bpf_program {
+00066     u_int bf_len;
+00067     struct bpf_insn *bf_insns;
+00068 };
+00069  
+00070 /*
+00071  * Struct returned by BIOCGSTATS.
+00072  */
+00073 struct bpf_stat {
+00074     u_int bs_recv;      /* number of packets received */
+00075     u_int bs_drop;      /* number of packets dropped */
+00076 };
+00077 
+00078 /*
+00079  * Struct return by BIOCVERSION.  This represents the version number of 
+00080  * the filter language described by the instruction encodings below.
+00081  * bpf understands a program iff kernel_major == filter_major &&
+00082  * kernel_minor >= filter_minor, that is, if the value returned by the
+00083  * running kernel has the same major number and a minor number equal
+00084  * equal to or less than the filter being downloaded.  Otherwise, the
+00085  * results are undefined, meaning an error may be returned or packets
+00086  * may be accepted haphazardly.
+00087  * It has nothing to do with the source code version.
+00088  */
+00089 struct bpf_version {
+00090     u_short bv_major;
+00091     u_short bv_minor;
+00092 };
+00093 /* Current version number of filter architecture. */
+00094 #define BPF_MAJOR_VERSION 1
+00095 #define BPF_MINOR_VERSION 1
+00096 
+00097 /*
+00098  * BPF ioctls
+00099  *
+00100  * The first set is for compatibility with Sun's pcc style
+00101  * header files.  If your using gcc, we assume that you
+00102  * have run fixincludes so the latter set should work.
+00103  */
+00104 #if (defined(sun) || defined(ibm032)) && !defined(__GNUC__)
+00105 #define BIOCGBLEN   _IOR(B,102, u_int)
+00106 #define BIOCSBLEN   _IOWR(B,102, u_int)
+00107 #define BIOCSETF    _IOW(B,103, struct bpf_program)
+00108 #define BIOCFLUSH   _IO(B,104)
+00109 #define BIOCPROMISC _IO(B,105)
+00110 #define BIOCGDLT    _IOR(B,106, u_int)
+00111 #define BIOCGETIF   _IOR(B,107, struct ifreq)
+00112 #define BIOCSETIF   _IOW(B,108, struct ifreq)
+00113 #define BIOCSRTIMEOUT   _IOW(B,109, struct timeval)
+00114 #define BIOCGRTIMEOUT   _IOR(B,110, struct timeval)
+00115 #define BIOCGSTATS  _IOR(B,111, struct bpf_stat)
+00116 #define BIOCIMMEDIATE   _IOW(B,112, u_int)
+00117 #define BIOCVERSION _IOR(B,113, struct bpf_version)
+00118 #define BIOCSTCPF   _IOW(B,114, struct bpf_program)
+00119 #define BIOCSUDPF   _IOW(B,115, struct bpf_program)
+00120 #else
+00121 #define BIOCGBLEN   _IOR('B',102, u_int)
+00122 #define BIOCSBLEN   _IOWR('B',102, u_int)
+00123 #define BIOCSETF    _IOW('B',103, struct bpf_program)
+00124 #define BIOCFLUSH   _IO('B',104)
+00125 #define BIOCPROMISC _IO('B',105)
+00126 #define BIOCGDLT    _IOR('B',106, u_int)
+00127 #define BIOCGETIF   _IOR('B',107, struct ifreq)
+00128 #define BIOCSETIF   _IOW('B',108, struct ifreq)
+00129 #define BIOCSRTIMEOUT   _IOW('B',109, struct timeval)
+00130 #define BIOCGRTIMEOUT   _IOR('B',110, struct timeval)
+00131 #define BIOCGSTATS  _IOR('B',111, struct bpf_stat)
+00132 #define BIOCIMMEDIATE   _IOW('B',112, u_int)
+00133 #define BIOCVERSION _IOR('B',113, struct bpf_version)
+00134 #define BIOCSTCPF   _IOW('B',114, struct bpf_program)
+00135 #define BIOCSUDPF   _IOW('B',115, struct bpf_program)
+00136 #endif
+00137 
+00138 /*
+00139  * Structure prepended to each packet.
+00140  */
+00141 struct bpf_hdr {
+00142     struct timeval  bh_tstamp;  /* time stamp */
+00143     bpf_u_int32 bh_caplen;  /* length of captured portion */
+00144     bpf_u_int32 bh_datalen; /* original length of packet */
+00145     u_short     bh_hdrlen;  /* length of bpf header (this struct
+00146                        plus alignment padding) */
+00147 };
+00148 /*
+00149  * Because the structure above is not a multiple of 4 bytes, some compilers
+00150  * will insist on inserting padding; hence, sizeof(struct bpf_hdr) won't work.
+00151  * Only the kernel needs to know about it; applications use bh_hdrlen.
+00152  */
+00153 #ifdef KERNEL
+00154 #define SIZEOF_BPF_HDR 18
+00155 #endif
+00156 
+00157 /*
+00158  * Data-link level type codes.
+00159  */
+00160 #define DLT_NULL    0   /* no link-layer encapsulation */
+00161 #define DLT_EN10MB  1   /* Ethernet (10Mb) */
+00162 #define DLT_EN3MB   2   /* Experimental Ethernet (3Mb) */
+00163 #define DLT_AX25    3   /* Amateur Radio AX.25 */
+00164 #define DLT_PRONET  4   /* Proteon ProNET Token Ring */
+00165 #define DLT_CHAOS   5   /* Chaos */
+00166 #define DLT_IEEE802 6   /* IEEE 802 Networks */
+00167 #define DLT_ARCNET  7   /* ARCNET */
+00168 #define DLT_SLIP    8   /* Serial Line IP */
+00169 #define DLT_PPP     9   /* Point-to-point Protocol */
+00170 #define DLT_FDDI    10  /* FDDI */
+00171 #define DLT_ATM_RFC1483 11  /* LLC/SNAP encapsulated atm */
+00172 #define DLT_RAW     12  /* raw IP */
+00173 #define DLT_SLIP_BSDOS  13  /* BSD/OS Serial Line IP */
+00174 #define DLT_PPP_BSDOS   14  /* BSD/OS Point-to-point Protocol */
+00175 
+00176 /*
+00177  * The instruction encondings.
+00178  */
+00179 /* instruction classes */
+00180 #define BPF_CLASS(code) ((code) & 0x07)
+00181 #define     BPF_LD      0x00
+00182 #define     BPF_LDX     0x01
+00183 #define     BPF_ST      0x02
+00184 #define     BPF_STX     0x03
+00185 #define     BPF_ALU     0x04
+00186 #define     BPF_JMP     0x05
+00187 #define     BPF_RET     0x06
+00188 #define     BPF_MISC    0x07
+00189 
+00190 /* ld/ldx fields */
+00191 #define BPF_SIZE(code)  ((code) & 0x18)
+00192 #define     BPF_W       0x00
+00193 #define     BPF_H       0x08
+00194 #define     BPF_B       0x10
+00195 #define BPF_MODE(code)  ((code) & 0xe0)
+00196 #define     BPF_IMM     0x00
+00197 #define     BPF_ABS     0x20
+00198 #define     BPF_IND     0x40
+00199 #define     BPF_MEM     0x60
+00200 #define     BPF_LEN     0x80
+00201 #define     BPF_MSH     0xa0
+00202 
+00203 /* alu/jmp fields */
+00204 #define BPF_OP(code)    ((code) & 0xf0)
+00205 #define     BPF_ADD     0x00
+00206 #define     BPF_SUB     0x10
+00207 #define     BPF_MUL     0x20
+00208 #define     BPF_DIV     0x30
+00209 #define     BPF_OR      0x40
+00210 #define     BPF_AND     0x50
+00211 #define     BPF_LSH     0x60
+00212 #define     BPF_RSH     0x70
+00213 #define     BPF_NEG     0x80
+00214 #define     BPF_JA      0x00
+00215 #define     BPF_JEQ     0x10
+00216 #define     BPF_JGT     0x20
+00217 #define     BPF_JGE     0x30
+00218 #define     BPF_JSET    0x40
+00219 #define BPF_SRC(code)   ((code) & 0x08)
+00220 #define     BPF_K       0x00
+00221 #define     BPF_X       0x08
+00222 
+00223 /* ret - BPF_K and BPF_X also apply */
+00224 #define BPF_RVAL(code)  ((code) & 0x18)
+00225 #define     BPF_A       0x10
+00226 
+00227 /* misc */
+00228 #define BPF_MISCOP(code) ((code) & 0xf8)
+00229 #define     BPF_TAX     0x00
+00230 #define     BPF_TXA     0x80
+00231 
+00232 /*
+00233  * The instruction data structure.
+00234  */
+00235 struct bpf_insn {
+00236     u_short code;
+00237     u_char  jt;
+00238     u_char  jf;
+00239     bpf_int32 k;
+00240 };
+00241 
+00242 /*
+00243  * Macros for insn array initializers.
+00244  */
+00245 #define BPF_STMT(code, k) { (u_short)(code), 0, 0, k }
+00246 #define BPF_JUMP(code, k, jt, jf) { (u_short)(code), jt, jf, k }
+00247 
+00248 #ifdef KERNEL
+00249 extern u_int bpf_filter();
+00250 extern void bpfattach();
+00251 extern void bpf_tap();
+00252 extern void bpf_mtap();
+00253 #else
+00254 #if __STDC__
+00255 extern u_int bpf_filter(struct bpf_insn *, u_char *, u_int, u_int);
+00256 #endif
+00257 #endif
+00258 
+00259 /*
+00260  * Number of scratch memory words (for BPF_LD|BPF_MEM and BPF_ST).
+00261  */
+00262 #define BPF_MEMWORDS 16
+00263 
+00264 #endif
+

Generated on Sat Aug 19 10:56:42 2006 for libnet by  -doxygen -1.3.4
+doxygen 1.4.7
diff -ru libnet/doc/html/config_8h-source.html libnet/doc/html/config_8h-source.html --- libnet/doc/html/config_8h-source.html Wed Mar 10 22:23:37 2004 +++ libnet/doc/html/config_8h-source.html Sat Aug 19 10:56:42 2006 @@ -2,124 +2,134 @@ libnet: config.h Source File + - -
Main Page | Data Structures | File List | Data Fields | Globals
-

config.h

00001 /* include/config.h.in.  Generated from configure.in by autoheader.  */
-00002 /*
-00003 dnl $Id: config.h,v 1.4 2004/01/03 20:31:00 mike Exp $
-00004 dnl
-00005 dnl Libnet autoconfiguration acconfig.h file
-00006 dnl Copyright (c) 1998 - 2004 Mike D. Schiffman <mike@infonexus.com>
-00007 dnl All rights reserved.
-00008 dnl
-00009 dnl Process this file with autoheader to produce a config.h file.
-00010 dnl
-00011 */
-00012 
-00013 #undef LIBNET_BSDISH_OS
-00014 #undef LIBNET_BSD_BYTE_SWAP
-00015 #undef DLPI_DEV_PREFIX
-00016 #undef HAVE_DEV_DLPI
-00017 #undef HAVE_SOLARIS
-00018 #undef HAVE_SOLARIS_IPV6
-00019 #undef HAVE_HPUX11
-00020 #undef HAVE_SOCKADDR_SA_LEN
-00021 #undef HAVE_DLPI
-00022 #undef HAVE_PACKET_SOCKET
-00023 #undef HAVE_STRUCT_IP_CSUM
-00024 #undef HAVE_LIB_PCAP
-00025 #undef LBL_ALIGN
-00026 #undef STUPID_SOLARIS_CHECKSUM_BUG
-00027 #undef _BSD_SOURCE
-00028 #undef __BSD_SOURCE
-00029 #undef __FAVOR_BSD
-00030 #undef LIBNET_BIG_ENDIAN
-00031 #define LIBNET_LIL_ENDIAN 1
-00032 #undef NO_SNPRINTF
-00033 
-00034 
-00035 /*
-00036 dnl EOF
-00037 */
-00038 
-00039 /* Define to 1 if you have the <inttypes.h> header file. */
-00040 #undef HAVE_INTTYPES_H
-00041 
-00042 /* Define to 1 if you have the `nsl' library (-lnsl). */
-00043 #undef HAVE_LIBNSL
-00044 
-00045 /* Define to 1 if you have the `packet' library (-lpacket). */
-00046 #undef HAVE_LIBPACKET
-00047 
-00048 /* Define to 1 if you have the `socket' library (-lsocket). */
-00049 #undef HAVE_LIBSOCKET
-00050 
-00051 /* Define to 1 if you have the `wpcap' library (-lwpcap). */
-00052 #undef HAVE_LIBWPCAP
-00053 
-00054 /* Define to 1 if you have the <memory.h> header file. */
-00055 #undef HAVE_MEMORY_H
-00056 
-00057 /* Define to 1 if you have the <net/ethernet.h> header file. */
-00058 #define HAVE_NET_ETHERNET_H 1
-00059 
-00060 /* Define to 1 if you have the <stdint.h> header file. */
-00061 #undef HAVE_STDINT_H
-00062 
-00063 /* Define to 1 if you have the <stdlib.h> header file. */
-00064 #undef HAVE_STDLIB_H
-00065 
-00066 /* Define to 1 if you have the `strerror' function. */
-00067 #define HAVE_STRERROR 1
-00068 
-00069 /* Define to 1 if you have the <strings.h> header file. */
-00070 #undef HAVE_STRINGS_H
-00071 
-00072 /* Define to 1 if you have the <string.h> header file. */
-00073 #undef HAVE_STRING_H
-00074 
-00075 /* Define to 1 if you have the <sys/bufmod.h> header file. */
-00076 #undef HAVE_SYS_BUFMOD_H
-00077 
-00078 /* Define to 1 if you have the <sys/dlpi_ext.h> header file. */
-00079 #undef HAVE_SYS_DLPI_EXT_H
-00080 
-00081 /* Define to 1 if you have the <sys/sockio.h> header file. */
-00082 #undef HAVE_SYS_SOCKIO_H
-00083 
-00084 /* Define to 1 if you have the <sys/stat.h> header file. */
-00085 #undef HAVE_SYS_STAT_H
-00086 
-00087 /* Define to 1 if you have the <sys/types.h> header file. */
-00088 #undef HAVE_SYS_TYPES_H
-00089 
-00090 /* Define to 1 if you have the <unistd.h> header file. */
-00091 #undef HAVE_UNISTD_H
-00092 
-00093 /* Name of package */
-00094 #undef PACKAGE
-00095 
-00096 /* Define to the address where bug reports for this package should be sent. */
-00097 #undef PACKAGE_BUGREPORT
-00098 
-00099 /* Define to the full name of this package. */
-00100 #undef PACKAGE_NAME
-00101 
-00102 /* Define to the full name and version of this package. */
-00103 #undef PACKAGE_STRING
-00104 
-00105 /* Define to the one symbol short name of this package. */
-00106 #undef PACKAGE_TARNAME
-00107 
-00108 /* Define to the version of this package. */
-00109 #undef PACKAGE_VERSION
-00110 
-00111 /* Define to 1 if you have the ANSI C header files. */
-00112 #undef STDC_HEADERS
-

Generated on Wed Mar 10 13:23:37 2004 for libnet by + + + +

config.h

00001 /* include/config.h.in.  Generated from configure.in by autoheader.  */
+00002 /*
+00003 dnl $Id: config.h,v 1.4 2004/01/03 20:31:00 mike Exp $
+00004 dnl
+00005 dnl Libnet autoconfiguration acconfig.h file
+00006 dnl Copyright (c) 1998 - 2004 Mike D. Schiffman <mike@infonexus.com>
+00007 dnl All rights reserved.
+00008 dnl
+00009 dnl Process this file with autoheader to produce a config.h file.
+00010 dnl
+00011 */
+00012 
+00013 #undef LIBNET_BSDISH_OS
+00014 #undef LIBNET_BSD_BYTE_SWAP
+00015 #undef DLPI_DEV_PREFIX
+00016 #undef HAVE_DEV_DLPI
+00017 #undef HAVE_SOLARIS
+00018 #undef HAVE_SOLARIS_IPV6
+00019 #undef HAVE_HPUX11
+00020 #undef HAVE_SOCKADDR_SA_LEN
+00021 #undef HAVE_DLPI
+00022 #undef HAVE_PACKET_SOCKET
+00023 #undef HAVE_STRUCT_IP_CSUM
+00024 #undef HAVE_LIB_PCAP
+00025 #undef LBL_ALIGN
+00026 #undef STUPID_SOLARIS_CHECKSUM_BUG
+00027 #undef _BSD_SOURCE
+00028 #undef __BSD_SOURCE
+00029 #undef __FAVOR_BSD
+00030 #undef LIBNET_BIG_ENDIAN
+00031 #define LIBNET_LIL_ENDIAN 1
+00032 #undef NO_SNPRINTF
+00033 
+00034 
+00035 /*
+00036 dnl EOF
+00037 */
+00038 
+00039 /* Define to 1 if you have the <inttypes.h> header file. */
+00040 #undef HAVE_INTTYPES_H
+00041 
+00042 /* Define to 1 if you have the `nsl' library (-lnsl). */
+00043 #undef HAVE_LIBNSL
+00044 
+00045 /* Define to 1 if you have the `packet' library (-lpacket). */
+00046 #undef HAVE_LIBPACKET
+00047 
+00048 /* Define to 1 if you have the `socket' library (-lsocket). */
+00049 #undef HAVE_LIBSOCKET
+00050 
+00051 /* Define to 1 if you have the `wpcap' library (-lwpcap). */
+00052 #undef HAVE_LIBWPCAP
+00053 
+00054 /* Define to 1 if you have the <memory.h> header file. */
+00055 #undef HAVE_MEMORY_H
+00056 
+00057 /* Define to 1 if you have the <net/ethernet.h> header file. */
+00058 #define HAVE_NET_ETHERNET_H 1
+00059 
+00060 /* Define to 1 if you have the <stdint.h> header file. */
+00061 #undef HAVE_STDINT_H
+00062 
+00063 /* Define to 1 if you have the <stdlib.h> header file. */
+00064 #undef HAVE_STDLIB_H
+00065 
+00066 /* Define to 1 if you have the `strerror' function. */
+00067 #define HAVE_STRERROR 1
+00068 
+00069 /* Define to 1 if you have the <strings.h> header file. */
+00070 #undef HAVE_STRINGS_H
+00071 
+00072 /* Define to 1 if you have the <string.h> header file. */
+00073 #undef HAVE_STRING_H
+00074 
+00075 /* Define to 1 if you have the <sys/bufmod.h> header file. */
+00076 #undef HAVE_SYS_BUFMOD_H
+00077 
+00078 /* Define to 1 if you have the <sys/dlpi_ext.h> header file. */
+00079 #undef HAVE_SYS_DLPI_EXT_H
+00080 
+00081 /* Define to 1 if you have the <sys/sockio.h> header file. */
+00082 #undef HAVE_SYS_SOCKIO_H
+00083 
+00084 /* Define to 1 if you have the <sys/stat.h> header file. */
+00085 #undef HAVE_SYS_STAT_H
+00086 
+00087 /* Define to 1 if you have the <sys/types.h> header file. */
+00088 #undef HAVE_SYS_TYPES_H
+00089 
+00090 /* Define to 1 if you have the <unistd.h> header file. */
+00091 #undef HAVE_UNISTD_H
+00092 
+00093 /* Name of package */
+00094 #undef PACKAGE
+00095 
+00096 /* Define to the address where bug reports for this package should be sent. */
+00097 #undef PACKAGE_BUGREPORT
+00098 
+00099 /* Define to the full name of this package. */
+00100 #undef PACKAGE_NAME
+00101 
+00102 /* Define to the full name and version of this package. */
+00103 #undef PACKAGE_STRING
+00104 
+00105 /* Define to the one symbol short name of this package. */
+00106 #undef PACKAGE_TARNAME
+00107 
+00108 /* Define to the version of this package. */
+00109 #undef PACKAGE_VERSION
+00110 
+00111 /* Define to 1 if you have the ANSI C header files. */
+00112 #undef STDC_HEADERS
+

Generated on Sat Aug 19 10:56:42 2006 for libnet by  -doxygen -1.3.4
+doxygen 1.4.7
diff -ru libnet/doc/html/doxygen.css libnet/doc/html/doxygen.css --- libnet/doc/html/doxygen.css Wed Mar 10 22:23:38 2004 +++ libnet/doc/html/doxygen.css Sat Aug 19 10:56:42 2006 @@ -1,74 +1,140 @@ +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} H1 { text-align: center; - font-family: Arial, Helvetica, sans-serif; + font-size: 160%; } H2 { - font-family: Geneva, Arial, Helvetica, sans-serif; + font-size: 120%; +} +H3 { + font-size: 100%; } CAPTION { font-weight: bold } -DIV.qindex { width: 100%; - background-color: #eeeeff; - border: 4px solid #eeeeff; - text-align: center; - margin-bottom: 2px -} -A.qindex { text-decoration: none; font-weight: bold; color: #0000ee } -A.qindex:visited { text-decoration: none; font-weight: bold; color: #0000ee } -A.qindex:hover { text-decoration: none; background-color: #ddddff } -A.qindexHL { text-decoration: none; font-weight: bold; - background-color: #6666cc; - color: #ffffff - } -A.qindexHL:hover { text-decoration: none; background-color: #6666cc; color: #ffffff } +DIV.qindex { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } A.el { text-decoration: none; font-weight: bold } A.elRef { font-weight: bold } -A.code { text-decoration: none; font-weight: normal; color: #4444ee } -A.codeRef { font-weight: normal; color: #4444ee } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} A:hover { text-decoration: none; background-color: #f2f2ff } DL.el { margin-left: -1cm } -DIV.fragment { - width: 98%; +.fragment { + font-family: monospace, fixed; + font-size: 95%; +} +PRE.fragment { border: 1px solid #CCCCCC; background-color: #f5f5f5; - padding-left: 4px; - margin: 4px; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; } DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } -TD.md { background-color: #f2f2ff; font-weight: bold; } -TD.mdname1 { background-color: #f2f2ff; font-weight: bold; color: #602020; } -TD.mdname { background-color: #f2f2ff; font-weight: bold; color: #602020; width: 600px; } -DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold } -DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller } + +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } BODY { background: white; color: black; margin-right: 20px; margin-left: 20px; } -TD.indexkey { - background-color: #eeeeff; - font-weight: bold; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px -} -TD.indexvalue { - background-color: #eeeeff; - font-style: italic; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px +TD.indexkey { + background-color: #e8eef2; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #e8eef2; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; } TR.memlist { background-color: #f0f0f0; @@ -83,18 +149,11 @@ SPAN.preprocessor { color: #806020 } SPAN.stringliteral { color: #002080 } SPAN.charliteral { color: #008080 } -.mdTable { - border: 1px solid #868686; - background-color: #f2f2ff; -} -.mdRow { - padding: 8px 20px; -} .mdescLeft { - font-size: smaller; - font-family: Arial, Helvetica, sans-serif; + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; background-color: #FAFAFA; - padding-left: 8px; border-top: 1px none #E0E0E0; border-right: 1px none #E0E0E0; border-bottom: 1px none #E0E0E0; @@ -102,18 +161,15 @@ margin: 0px; } .mdescRight { - font-size: smaller; - font-family: Arial, Helvetica, sans-serif; + padding: 0px 8px 4px 8px; + font-size: 80%; font-style: italic; background-color: #FAFAFA; - padding-left: 4px; border-top: 1px none #E0E0E0; border-right: 1px none #E0E0E0; border-bottom: 1px none #E0E0E0; border-left: 1px none #E0E0E0; margin: 0px; - padding-bottom: 0px; - padding-right: 8px; } .memItemLeft { padding: 1px 0px 0px 8px; @@ -122,38 +178,91 @@ border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; - border-top-style: solid; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; + border-top-style: solid; border-right-style: none; border-bottom-style: none; border-left-style: none; background-color: #FAFAFA; - font-family: Geneva, Arial, Helvetica, sans-serif; - font-size: 12px; + font-size: 80%; } .memItemRight { - padding: 1px 0px 0px 8px; + padding: 1px 8px 0px 8px; margin: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; + border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; background-color: #FAFAFA; - font-family: Geneva, Arial, Helvetica, sans-serif; - font-size: 13px; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; } -.search { color: #0000ee; +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; font-weight: bold; } FORM.search { @@ -163,7 +272,87 @@ INPUT.search { font-size: 75%; color: #000080; font-weight: normal; - background-color: #eeeeff; + background-color: #e8eef2; } TD.tiny { font-size: 75%; } +a { + color: #1A41A8; +} +a:visited { + color: #2A3798; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} +TH.dirtab { background: #e8eef2; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +.directory { font-size: 9pt; font-weight: bold; } +.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } +.directory > h3 { margin-top: 0; } +.directory p { margin: 0px; white-space: nowrap; } +.directory div { display: none; margin: 0px; } +.directory img { vertical-align: -30%; } + Binary files libnet/doc/html/doxygen.png and libnet/doc/html/doxygen.png differ diff -ru libnet/doc/html/files.html libnet/doc/html/files.html --- libnet/doc/html/files.html Wed Mar 10 22:23:37 2004 +++ libnet/doc/html/files.html Sat Aug 19 10:56:47 2006 @@ -2,9 +2,20 @@ libnet: File Index + - -
Main Page | Data Structures | File List | Data Fields | Globals
+ +
+
+
+

libnet File List

Here is a list of all documented files with brief descriptions: @@ -19,11 +30,12 @@ - + + +
acconfig.h [code]
bpf.h [code]
libnet-macros.h [code]Libnet macros and symbloc constants
libnet-structures.h [code]
libnet-types.h [code]
libnet.h [code]Toplevel libnet header file
libnet.h [code]
win32/libnet.h [code]
version.h [code]
-
Generated on Wed Mar 10 13:23:37 2004 for libnet by +
Generated on Sat Aug 19 10:56:47 2006 for libnet by  -doxygen -1.3.4
+doxygen 1.4.7
diff -ru libnet/doc/html/functions.html libnet/doc/html/functions.html --- libnet/doc/html/functions.html Wed Mar 10 22:23:38 2004 +++ libnet/doc/html/functions.html Sat Aug 19 10:56:46 2006 @@ -1,26 +1,41 @@ -libnet: Compound Member Index +libnet: Data Fields + - -
Main Page | Data Structures | File List | Data Fields | Globals
-
All | Variables
- + +
+
+
+
+
+ +
+Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

-Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

+
Generated on Sat Aug 19 10:56:46 2006 for libnet by  -doxygen -1.3.4
+doxygen 1.4.7
diff -ru libnet/doc/html/functions_vars.html libnet/doc/html/functions_vars.html --- libnet/doc/html/functions_vars.html Wed Mar 10 22:23:38 2004 +++ libnet/doc/html/functions_vars.html Sat Aug 19 10:56:46 2006 @@ -1,26 +1,41 @@ -libnet: Compound Member Index +libnet: Data Fields - Variables + - -
Main Page | Data Structures | File List | Data Fields | Globals
-
All | Variables
- + +
+
+
+
+
+ +

-
Generated on Wed Mar 10 13:23:38 2004 for libnet by +: libnet_802_1x_hdr
  • dot1x_type +: libnet_802_1x_hdr
  • dot1x_version +: libnet_802_1x_hdr
  • vlan_dhost +: libnet_802_1q_hdr
  • vlan_len +: libnet_802_1q_hdr
  • vlan_priority_c_vid +: libnet_802_1q_hdr
  • vlan_shost +: libnet_802_1q_hdr
  • vlan_tpi +: libnet_802_1q_hdr +
    Generated on Sat Aug 19 10:56:46 2006 for libnet by  -doxygen -1.3.4
    +doxygen 1.4.7
  • diff -ru libnet/doc/html/getopt_8h-source.html libnet/doc/html/getopt_8h-source.html --- libnet/doc/html/getopt_8h-source.html Wed Mar 10 22:23:37 2004 +++ libnet/doc/html/getopt_8h-source.html Sat Aug 19 10:56:42 2006 @@ -2,96 +2,106 @@ libnet: getopt.h Source File + - -
    Main Page | Data Structures | File List | Data Fields | Globals
    -

    getopt.h

    00001 /*
    -00002  * Copyright (c) 1987, 1993, 1994, 1996
    -00003  *  The Regents of the University of California.  All rights reserved.
    -00004  *
    -00005  * Redistribution and use in source and binary forms, with or without
    -00006  * modification, are permitted provided that the following conditions
    -00007  * are met:
    -00008  * 1. Redistributions of source code must retain the above copyright
    -00009  *    notice, this list of conditions and the following disclaimer.
    -00010  * 2. Redistributions in binary form must reproduce the above copyright
    -00011  *    notice, this list of conditions and the following disclaimer in the
    -00012  *    documentation and/or other materials provided with the distribution.
    -00013  * 3. All advertising materials mentioning features or use of this software
    -00014  *    must display the following acknowledgement:
    -00015  *  This product includes software developed by the University of
    -00016  *  California, Berkeley and its contributors.
    -00017  * 4. Neither the name of the University nor the names of its contributors
    -00018  *    may be used to endorse or promote products derived from this software
    -00019  *    without specific prior written permission.
    -00020  *
    -00021  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
    -00022  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    -00023  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -00024  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
    -00025  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    -00026  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    -00027  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    -00028  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    -00029  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    -00030  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    -00031  * SUCH DAMAGE.
    -00032  */
    -00033 
    -00034 #ifndef __GETOPT_H__
    -00035 #define __GETOPT_H__
    -00036 
    -00037 #ifdef __cplusplus
    -00038 extern "C" {
    -00039 #endif
    -00040 
    -00041 extern int   opterr;      /* if error message should be printed */
    -00042 extern int   optind;      /* index into parent argv vector */
    -00043 extern int   optopt;      /* character checked for validity */
    -00044 extern int   optreset;    /* reset getopt */
    -00045 extern char *optarg;      /* argument associated with option */
    -00046 
    -00047 int getopt (int, char * const *, const char *);
    -00048 
    -00049 #ifdef __cplusplus
    -00050 }
    -00051 #endif
    -00052 
    -00053 #endif /* __GETOPT_H__ */
    -00054 
    -00055 #ifndef __UNISTD_GETOPT__
    -00056 #ifndef __GETOPT_LONG_H__
    -00057 #define __GETOPT_LONG_H__
    -00058 
    -00059 #ifdef __cplusplus
    -00060 extern "C" {
    -00061 #endif
    -00062 
    -00063 struct option {
    -00064     const char *name;
    -00065     int  has_arg;
    -00066     int *flag;
    -00067     int val;
    -00068 };
    -00069 
    -00070 int getopt_long (int, char *const *, const char *, const struct option *, int *);
    -00071 #ifndef HAVE_DECL_GETOPT
    -00072 #define HAVE_DECL_GETOPT 1
    -00073 #endif
    -00074 
    -00075 #define no_argument             0
    -00076 #define required_argument       1
    -00077 #define optional_argument       2
    -00078 
    -00079 #ifdef __cplusplus
    -00080 }
    -00081 #endif
    -00082 
    -00083 #endif /* __GETOPT_LONG_H__ */
    -00084 #endif /* __UNISTD_GETOPT__ */
    -

    Generated on Wed Mar 10 13:23:37 2004 for libnet by + + + +

    getopt.h

    00001 /*
    +00002  * Copyright (c) 1987, 1993, 1994, 1996
    +00003  *  The Regents of the University of California.  All rights reserved.
    +00004  *
    +00005  * Redistribution and use in source and binary forms, with or without
    +00006  * modification, are permitted provided that the following conditions
    +00007  * are met:
    +00008  * 1. Redistributions of source code must retain the above copyright
    +00009  *    notice, this list of conditions and the following disclaimer.
    +00010  * 2. Redistributions in binary form must reproduce the above copyright
    +00011  *    notice, this list of conditions and the following disclaimer in the
    +00012  *    documentation and/or other materials provided with the distribution.
    +00013  * 3. All advertising materials mentioning features or use of this software
    +00014  *    must display the following acknowledgement:
    +00015  *  This product includes software developed by the University of
    +00016  *  California, Berkeley and its contributors.
    +00017  * 4. Neither the name of the University nor the names of its contributors
    +00018  *    may be used to endorse or promote products derived from this software
    +00019  *    without specific prior written permission.
    +00020  *
    +00021  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
    +00022  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +00023  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +00024  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
    +00025  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    +00026  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    +00027  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    +00028  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    +00029  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    +00030  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    +00031  * SUCH DAMAGE.
    +00032  */
    +00033 
    +00034 #ifndef __GETOPT_H__
    +00035 #define __GETOPT_H__
    +00036 
    +00037 #ifdef __cplusplus
    +00038 extern "C" {
    +00039 #endif
    +00040 
    +00041 extern int   opterr;      /* if error message should be printed */
    +00042 extern int   optind;      /* index into parent argv vector */
    +00043 extern int   optopt;      /* character checked for validity */
    +00044 extern int   optreset;    /* reset getopt */
    +00045 extern char *optarg;      /* argument associated with option */
    +00046 
    +00047 int getopt (int, char * const *, const char *);
    +00048 
    +00049 #ifdef __cplusplus
    +00050 }
    +00051 #endif
    +00052 
    +00053 #endif /* __GETOPT_H__ */
    +00054 
    +00055 #ifndef __UNISTD_GETOPT__
    +00056 #ifndef __GETOPT_LONG_H__
    +00057 #define __GETOPT_LONG_H__
    +00058 
    +00059 #ifdef __cplusplus
    +00060 extern "C" {
    +00061 #endif
    +00062 
    +00063 struct option {
    +00064     const char *name;
    +00065     int  has_arg;
    +00066     int *flag;
    +00067     int val;
    +00068 };
    +00069 
    +00070 int getopt_long (int, char *const *, const char *, const struct option *, int *);
    +00071 #ifndef HAVE_DECL_GETOPT
    +00072 #define HAVE_DECL_GETOPT 1
    +00073 #endif
    +00074 
    +00075 #define no_argument             0
    +00076 #define required_argument       1
    +00077 #define optional_argument       2
    +00078 
    +00079 #ifdef __cplusplus
    +00080 }
    +00081 #endif
    +00082 
    +00083 #endif /* __GETOPT_LONG_H__ */
    +00084 #endif /* __UNISTD_GETOPT__ */
    +

    Generated on Sat Aug 19 10:56:42 2006 for libnet by  -doxygen -1.3.4
    +doxygen 1.4.7
    diff -ru libnet/doc/html/globals.html libnet/doc/html/globals.html --- libnet/doc/html/globals.html Wed Mar 10 22:23:38 2004 +++ libnet/doc/html/globals.html Sat Aug 19 10:56:47 2006 @@ -1,219 +1,44 @@ -libnet: File Member Index +libnet: Data Fields + - -
    Main Page | Data Structures | File List | Data Fields | Globals
    -
    All | Functions | Defines
    -
    f | i | l
    + +
    +
    +
    +
    +
    + +
    +
    + +

    - +Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

    -Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

    - f -

    +
    Generated on Sat Aug 19 10:56:47 2006 for libnet by  -doxygen -1.3.4
    +doxygen 1.4.7
    Only in libnet/doc/html: globals_0x69.html Only in libnet/doc/html: globals_0x6c.html diff -ru libnet/doc/html/globals_defs.html libnet/doc/html/globals_defs.html --- libnet/doc/html/globals_defs.html Wed Mar 10 22:23:38 2004 +++ libnet/doc/html/globals_defs.html Sat Aug 19 10:56:47 2006 @@ -1,104 +1,143 @@ -libnet: File Member Index +libnet: Data Fields + - -
    Main Page | Data Structures | File List | Data Fields | Globals
    -
    All | Functions | Defines
    -
    f | i | l
    + +
    +
    +
    +
    +
    + +
    +
    + +

    - + 

    - f -

    +: libnet-macros.h

    - i -

    +: libnet-macros.h

    - l -

    -
    Generated on Wed Mar 10 13:23:38 2004 for libnet by +: libnet-headers.h
  • LIBNET_802_1Q_H +: libnet-headers.h
  • LIBNET_802_1Q_PRIMASK +: libnet-headers.h
  • LIBNET_802_1Q_VIDMASK +: libnet-headers.h
  • LIBNET_802_1X_ENCASFAL +: libnet-headers.h
  • LIBNET_802_1X_H +: libnet-headers.h
  • LIBNET_802_1X_KEY +: libnet-headers.h
  • LIBNET_802_1X_LOGOFF +: libnet-headers.h
  • LIBNET_802_1X_PACKET +: libnet-headers.h
  • LIBNET_802_1X_START +: libnet-headers.h
  • LIBNET_802_2_H +: libnet-headers.h
  • LIBNET_802_2SNAP_H +: libnet-headers.h
  • LIBNET_802_3_H +: libnet-headers.h
  • LIBNET_ARP_ETH_IP_H +: libnet-headers.h
  • LIBNET_ARP_H +: libnet-headers.h
  • LIBNET_BGP4_HEADER_H +: libnet-headers.h
  • LIBNET_BGP4_NOTIFICATION_H +: libnet-headers.h
  • LIBNET_BGP4_OPEN_H +: libnet-headers.h
  • LIBNET_BGP4_UPDATE_H +: libnet-headers.h
  • LIBNET_CDP_H +: libnet-headers.h
  • LIBNET_DHCPV4_H +: libnet-headers.h
  • LIBNET_DONT_RESOLVE +: libnet-macros.h
  • LIBNET_ERRBUF_SIZE +: libnet-macros.h
  • LIBNET_ETH_H +: libnet-headers.h
  • LIBNET_FDDI_H +: libnet-headers.h
  • LIBNET_GRE_H +: libnet-headers.h
  • LIBNET_GRE_SRE_H +: libnet-headers.h
  • LIBNET_ICMPV4_ECHO_H +: libnet-headers.h
  • LIBNET_ICMPV4_H +: libnet-headers.h
  • LIBNET_ICMPV4_MASK_H +: libnet-headers.h
  • LIBNET_ICMPV4_REDIRECT_H +: libnet-headers.h
  • LIBNET_ICMPV4_TIMXCEED_H +: libnet-headers.h
  • LIBNET_ICMPV4_TS_H +: libnet-headers.h
  • LIBNET_ICMPV4_UNREACH_H +: libnet-headers.h
  • LIBNET_ICMPV6_ECHO_H +: libnet-headers.h
  • LIBNET_ICMPV6_H +: libnet-headers.h
  • LIBNET_ICMPV6_NA_H +: libnet-headers.h
  • LIBNET_ICMPV6_NI_H +: libnet-headers.h
  • LIBNET_ICMPV6_NS_H +: libnet-headers.h
  • LIBNET_ICMPV6_OPT_MTU_H +: libnet-headers.h
  • LIBNET_ICMPV6_OPT_PI_H +: libnet-headers.h
  • LIBNET_ICMPV6_OPT_RH_H +: libnet-headers.h
  • LIBNET_ICMPV6_OPT_SLLA_H +: libnet-headers.h
  • LIBNET_ICMPV6_OPT_TLLA_H +: libnet-headers.h
  • LIBNET_ICMPV6_PARAMPB_H +: libnet-headers.h
  • LIBNET_ICMPV6_RA_H +: libnet-headers.h
  • LIBNET_ICMPV6_REDIRECT_H +: libnet-headers.h
  • LIBNET_ICMPV6_RS_H +: libnet-headers.h
  • LIBNET_ICMPV6_TIMXCEED_H +: libnet-headers.h
  • LIBNET_ICMPV6_TOOBIG_H +: libnet-headers.h
  • LIBNET_ICMPV6_UNREACH_H +: libnet-headers.h
  • LIBNET_IGMP_H +: libnet-headers.h
  • LIBNET_IPCOMP_H +: libnet-headers.h
  • LIBNET_IPSEC_AH_H +: libnet-headers.h
  • LIBNET_IPSEC_ESP_FTR_H +: libnet-headers.h
  • LIBNET_IPSEC_ESP_HDR_H +: libnet-headers.h
  • LIBNET_IPV4_H +: libnet-headers.h
  • LIBNET_IPV6_DESTOPTS_H +: libnet-headers.h
  • LIBNET_IPV6_FRAG_H +: libnet-headers.h
  • LIBNET_IPV6_H +: libnet-headers.h
  • LIBNET_IPV6_HBHOPTS_H +: libnet-headers.h
  • LIBNET_IPV6_ROUTING_H +: libnet-headers.h
  • LIBNET_ISL_H +: libnet-headers.h
  • LIBNET_MAX_PACKET +: libnet-macros.h
  • LIBNET_MAXOPTION_SIZE +: libnet-macros.h
  • LIBNET_MPLS_H +: libnet-headers.h
  • LIBNET_NTP_H +: libnet-headers.h
  • LIBNET_OFF +: libnet-macros.h
  • LIBNET_ON +: libnet-macros.h
  • LIBNET_OSPF_AUTH_H +: libnet-headers.h
  • LIBNET_OSPF_CKSUM +: libnet-headers.h
  • LIBNET_OSPF_DBD_H +: libnet-headers.h
  • LIBNET_OSPF_H +: libnet-headers.h
  • LIBNET_OSPF_HELLO_H +: libnet-headers.h
  • LIBNET_OSPF_LS_AS_EXT_H +: libnet-headers.h
  • LIBNET_OSPF_LS_NET_H +: libnet-headers.h
  • LIBNET_OSPF_LS_RTR_H +: libnet-headers.h
  • LIBNET_OSPF_LS_SUM_H +: libnet-headers.h
  • LIBNET_OSPF_LSA_H +: libnet-headers.h
  • LIBNET_OSPF_LSR_H +: libnet-headers.h
  • LIBNET_OSPF_LSU_H +: libnet-headers.h
  • LIBNET_PR2 +: libnet-macros.h
  • LIBNET_RESOLVE +: libnet-macros.h
  • LIBNET_RIP_H +: libnet-headers.h
  • LIBNET_RPC_CALL_H +: libnet-headers.h
  • LIBNET_RPC_CALL_TCP_H +: libnet-headers.h
  • LIBNET_STP_CONF_H +: libnet-headers.h
  • LIBNET_STP_TCN_H +: libnet-headers.h
  • LIBNET_TCP_DNSV4_H +: libnet-headers.h
  • LIBNET_TCP_H +: libnet-headers.h
  • LIBNET_TOKEN_RING_H +: libnet-headers.h
  • LIBNET_UDP_DNSV4_H +: libnet-headers.h
  • LIBNET_UDP_H +: libnet-headers.h
  • LIBNET_VRRP_H +: libnet-headers.h +
    Generated on Sat Aug 19 10:56:47 2006 for libnet by  -doxygen -1.3.4
    +doxygen 1.4.7
  • diff -ru libnet/doc/html/globals_func.html libnet/doc/html/globals_func.html --- libnet/doc/html/globals_func.html Wed Mar 10 22:23:38 2004 +++ libnet/doc/html/globals_func.html Sat Aug 19 10:56:47 2006 @@ -1,136 +1,175 @@ -libnet: File Member Index +libnet: Data Fields + - -
    Main Page | Data Structures | File List | Data Fields | Globals
    -
    All | Functions | Defines
    -
    l
    + +
    +
    +
    +
    +
    + +
    +
    + +

    - + 

    - l -

    -
    Generated on Wed Mar 10 13:23:38 2004 for libnet by +: libnet-functions.h
  • libnet_addr2name6_r() +: libnet-functions.h
  • libnet_adv_cull_header() +: libnet-functions.h
  • libnet_adv_cull_packet() +: libnet-functions.h
  • libnet_adv_free_packet() +: libnet-functions.h
  • libnet_adv_write_link() +: libnet-functions.h
  • libnet_autobuild_arp() +: libnet-functions.h
  • libnet_autobuild_ethernet() +: libnet-functions.h
  • libnet_autobuild_fddi() +: libnet-functions.h
  • libnet_autobuild_ipv4() +: libnet-functions.h
  • libnet_autobuild_ipv6() +: libnet-functions.h
  • libnet_autobuild_link() +: libnet-functions.h
  • libnet_autobuild_token_ring() +: libnet-functions.h
  • libnet_build_802_1q() +: libnet-functions.h
  • libnet_build_802_1x() +: libnet-functions.h
  • libnet_build_802_2() +: libnet-functions.h
  • libnet_build_802_2snap() +: libnet-functions.h
  • libnet_build_802_3() +: libnet-functions.h
  • libnet_build_arp() +: libnet-functions.h
  • libnet_build_bgp4_header() +: libnet-functions.h
  • libnet_build_bgp4_notification() +: libnet-functions.h
  • libnet_build_bgp4_open() +: libnet-functions.h
  • libnet_build_bgp4_update() +: libnet-functions.h
  • libnet_build_bootpv4() +: libnet-functions.h
  • libnet_build_cdp() +: libnet-functions.h
  • libnet_build_data() +: libnet-functions.h
  • libnet_build_dhcpv4() +: libnet-functions.h
  • libnet_build_dnsv4() +: libnet-functions.h
  • libnet_build_egre() +: libnet-functions.h
  • libnet_build_ethernet() +: libnet-functions.h
  • libnet_build_fddi() +: libnet-functions.h
  • libnet_build_gre() +: libnet-functions.h
  • libnet_build_gre_last_sre() +: libnet-functions.h
  • libnet_build_gre_sre() +: libnet-functions.h
  • libnet_build_icmpv4_echo() +: libnet-functions.h
  • libnet_build_icmpv4_mask() +: libnet-functions.h
  • libnet_build_icmpv4_redirect() +: libnet-functions.h
  • libnet_build_icmpv4_timeexceed() +: libnet-functions.h
  • libnet_build_icmpv4_timestamp() +: libnet-functions.h
  • libnet_build_icmpv4_unreach() +: libnet-functions.h
  • libnet_build_icmpv6_echo() +: libnet-functions.h
  • libnet_build_icmpv6_na() +: libnet-functions.h
  • libnet_build_icmpv6_ni() +: libnet-functions.h
  • libnet_build_icmpv6_ns() +: libnet-functions.h
  • libnet_build_icmpv6_opt_mtu() +: libnet-functions.h
  • libnet_build_icmpv6_opt_pi() +: libnet-functions.h
  • libnet_build_icmpv6_opt_rh() +: libnet-functions.h
  • libnet_build_icmpv6_opt_slla() +: libnet-functions.h
  • libnet_build_icmpv6_opt_tlla() +: libnet-functions.h
  • libnet_build_icmpv6_parampb() +: libnet-functions.h
  • libnet_build_icmpv6_ra() +: libnet-functions.h
  • libnet_build_icmpv6_redirect() +: libnet-functions.h
  • libnet_build_icmpv6_rs() +: libnet-functions.h
  • libnet_build_icmpv6_timxceed() +: libnet-functions.h
  • libnet_build_icmpv6_toobig() +: libnet-functions.h
  • libnet_build_icmpv6_unreach() +: libnet-functions.h
  • libnet_build_igmp() +: libnet-functions.h
  • libnet_build_ipcomp() +: libnet-functions.h
  • libnet_build_ipsec_ah() +: libnet-functions.h
  • libnet_build_ipsec_esp_ftr() +: libnet-functions.h
  • libnet_build_ipsec_esp_hdr() +: libnet-functions.h
  • libnet_build_ipv4() +: libnet-functions.h
  • libnet_build_ipv4_options() +: libnet-functions.h
  • libnet_build_ipv6() +: libnet-functions.h
  • libnet_build_ipv6_destopts() +: libnet-functions.h
  • libnet_build_ipv6_frag() +: libnet-functions.h
  • libnet_build_ipv6_hbhopts() +: libnet-functions.h
  • libnet_build_ipv6_routing() +: libnet-functions.h
  • libnet_build_isl() +: libnet-functions.h
  • libnet_build_link() +: libnet-functions.h
  • libnet_build_mpls() +: libnet-functions.h
  • libnet_build_ntp() +: libnet-functions.h
  • libnet_build_ospfv2() +: libnet-functions.h
  • libnet_build_ospfv2_dbd() +: libnet-functions.h
  • libnet_build_ospfv2_hello() +: libnet-functions.h
  • libnet_build_ospfv2_lsa() +: libnet-functions.h
  • libnet_build_ospfv2_lsa_as() +: libnet-functions.h
  • libnet_build_ospfv2_lsa_net() +: libnet-functions.h
  • libnet_build_ospfv2_lsa_rtr() +: libnet-functions.h
  • libnet_build_ospfv2_lsa_sum() +: libnet-functions.h
  • libnet_build_ospfv2_lsr() +: libnet-functions.h
  • libnet_build_ospfv2_lsu() +: libnet-functions.h
  • libnet_build_rip() +: libnet-functions.h
  • libnet_build_rpc_call() +: libnet-functions.h
  • libnet_build_sebek() +: libnet-functions.h
  • libnet_build_stp_conf() +: libnet-functions.h
  • libnet_build_stp_tcn() +: libnet-functions.h
  • libnet_build_tcp() +: libnet-functions.h
  • libnet_build_tcp_options() +: libnet-functions.h
  • libnet_build_token_ring() +: libnet-functions.h
  • libnet_build_udp() +: libnet-functions.h
  • libnet_build_vrrp() +: libnet-functions.h
  • libnet_clear_packet() +: libnet-functions.h
  • libnet_cq_add() +: libnet-functions.h
  • libnet_cq_destroy() +: libnet-functions.h
  • libnet_cq_find_by_label() +: libnet-functions.h
  • libnet_cq_getlabel() +: libnet-functions.h
  • libnet_cq_head() +: libnet-functions.h
  • libnet_cq_last() +: libnet-functions.h
  • libnet_cq_next() +: libnet-functions.h
  • libnet_cq_remove() +: libnet-functions.h
  • libnet_cq_remove_by_label() +: libnet-functions.h
  • libnet_cq_size() +: libnet-functions.h
  • libnet_destroy() +: libnet-functions.h
  • libnet_diag_dump_context() +: libnet-functions.h
  • libnet_diag_dump_hex() +: libnet-functions.h
  • libnet_diag_dump_pblock() +: libnet-functions.h
  • libnet_diag_dump_pblock_type() +: libnet-functions.h
  • libnet_dump_packet() +: libnet-functions.h
  • libnet_get_hwaddr() +: libnet-functions.h
  • libnet_get_ipaddr4() +: libnet-functions.h
  • libnet_get_ipaddr6() +: libnet-functions.h
  • libnet_get_prand() +: libnet-functions.h
  • libnet_getdevice() +: libnet-functions.h
  • libnet_geterror() +: libnet-functions.h
  • libnet_getfd() +: libnet-functions.h
  • libnet_getgre_length() +: libnet-functions.h
  • libnet_getpacket_size() +: libnet-functions.h
  • libnet_getpbuf() +: libnet-functions.h
  • libnet_getpbuf_size() +: libnet-functions.h
  • libnet_hex_aton() +: libnet-functions.h
  • libnet_init() +: libnet-functions.h
  • libnet_mac2eth() +: libnet-functions.h
  • libnet_name2addr4() +: libnet-functions.h
  • libnet_name2addr6() +: libnet-functions.h
  • libnet_plist_chain_dump() +: libnet-functions.h
  • libnet_plist_chain_dump_string() +: libnet-functions.h
  • libnet_plist_chain_free() +: libnet-functions.h
  • libnet_plist_chain_new() +: libnet-functions.h
  • libnet_plist_chain_next_pair() +: libnet-functions.h
  • libnet_seed_prand() +: libnet-functions.h
  • libnet_stats() +: libnet-functions.h
  • libnet_toggle_checksum() +: libnet-functions.h
  • libnet_write() +: libnet-functions.h +
    Generated on Sat Aug 19 10:56:47 2006 for libnet by  -doxygen -1.3.4
    +doxygen 1.4.7
  • diff -ru libnet/doc/html/gnuc_8h-source.html libnet/doc/html/gnuc_8h-source.html --- libnet/doc/html/gnuc_8h-source.html Wed Mar 10 22:23:37 2004 +++ libnet/doc/html/gnuc_8h-source.html Sat Aug 19 10:56:42 2006 @@ -2,55 +2,65 @@ libnet: gnuc.h Source File + - -
    Main Page | Data Structures | File List | Data Fields | Globals
    -

    gnuc.h

    00001 /* @(#) $Header: /usr/local/CVS/libnet/include/gnuc.h,v 1.1.1.1 2003/06/26 21:55:10 route Exp $ (LBL) */
    -00002 
    -00003 /* Define __P() macro, if necessary */
    -00004 #ifndef __P
    -00005 #if __STDC__
    -00006 #define __P(protos) protos
    -00007 #else
    -00008 #define __P(protos) ()
    -00009 #endif
    -00010 #endif
    -00011 
    -00012 /* inline foo */
    -00013 #ifdef __GNUC__
    -00014 #define inline __inline
    -00015 #else
    -00016 #define inline
    -00017 #endif
    -00018 
    -00019 /*
    -00020  * Handle new and old "dead" routine prototypes
    -00021  *
    -00022  * For example:
    -00023  *
    -00024  *  __dead void foo(void) __attribute__((volatile));
    -00025  *
    -00026  */
    -00027 #ifdef __GNUC__
    -00028 #ifndef __dead
    -00029 #define __dead volatile
    -00030 #endif
    -00031 #if __GNUC__ < 2  || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
    -00032 #ifndef __attribute__
    -00033 #define __attribute__(args)
    -00034 #endif
    -00035 #endif
    -00036 #else
    -00037 #ifndef __dead
    -00038 #define __dead
    -00039 #endif
    -00040 #ifndef __attribute__
    -00041 #define __attribute__(args)
    -00042 #endif
    -00043 #endif
    -

    Generated on Wed Mar 10 13:23:37 2004 for libnet by + + + +

    gnuc.h

    00001 /* @(#) $Header: /usr/local/CVS/libnet/include/gnuc.h,v 1.1.1.1 2003/06/26 21:55:10 route Exp $ (LBL) */
    +00002 
    +00003 /* Define __P() macro, if necessary */
    +00004 #ifndef __P
    +00005 #if __STDC__
    +00006 #define __P(protos) protos
    +00007 #else
    +00008 #define __P(protos) ()
    +00009 #endif
    +00010 #endif
    +00011 
    +00012 /* inline foo */
    +00013 #ifdef __GNUC__
    +00014 #define inline __inline
    +00015 #else
    +00016 #define inline
    +00017 #endif
    +00018 
    +00019 /*
    +00020  * Handle new and old "dead" routine prototypes
    +00021  *
    +00022  * For example:
    +00023  *
    +00024  *  __dead void foo(void) __attribute__((volatile));
    +00025  *
    +00026  */
    +00027 #ifdef __GNUC__
    +00028 #ifndef __dead
    +00029 #define __dead volatile
    +00030 #endif
    +00031 #if __GNUC__ < 2  || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
    +00032 #ifndef __attribute__
    +00033 #define __attribute__(args)
    +00034 #endif
    +00035 #endif
    +00036 #else
    +00037 #ifndef __dead
    +00038 #define __dead
    +00039 #endif
    +00040 #ifndef __attribute__
    +00041 #define __attribute__(args)
    +00042 #endif
    +00043 #endif
    +

    Generated on Sat Aug 19 10:56:42 2006 for libnet by  -doxygen -1.3.4
    +doxygen 1.4.7
    diff -ru libnet/doc/html/graph_legend.dot libnet/doc/html/graph_legend.dot --- libnet/doc/html/graph_legend.dot Wed Mar 10 22:23:38 2004 +++ libnet/doc/html/graph_legend.dot Sat Aug 19 10:56:46 2006 @@ -1,22 +1,22 @@ digraph G { - edge [fontname="Helvetica",fontsize=10,labelfontname="Helvetica",labelfontsize=10]; - node [fontname="Helvetica",fontsize=10,shape=record]; - Node9 [shape="box",label="Inherited",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",style="filled" fontcolor="white"]; - Node10 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"]; - Node10 [shape="box",label="PublicBase",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classPublicBase.html"]; - Node11 -> Node10 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"]; - Node11 [shape="box",label="Truncated",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="red",URL="$classTruncated.html"]; - Node13 -> Node9 [dir=back,color="darkgreen",fontsize=10,style="solid",fontname="Helvetica"]; - Node13 [shape="box",label="ProtectedBase",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classProtectedBase.html"]; - Node14 -> Node9 [dir=back,color="firebrick4",fontsize=10,style="solid",fontname="Helvetica"]; - Node14 [shape="box",label="PrivateBase",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classPrivateBase.html"]; - Node15 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"]; - Node15 [shape="box",label="Undocumented",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="grey75"]; - Node16 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"]; - Node16 [shape="box",label="Templ< int >",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classTempl.html"]; - Node17 -> Node16 [dir=back,color="orange",fontsize=10,style="dashed",label="< int >",fontname="Helvetica"]; - Node17 [shape="box",label="Templ< T >",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classTempl.html"]; - Node18 -> Node9 [dir=back,color="darkorchid3",fontsize=10,style="dashed",label="m_usedClass",fontname="Helvetica"]; - Node18 [shape="box",label="Used",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classUsed.html"]; + edge [fontname="FreeSans.ttf",fontsize=10,labelfontname="FreeSans.ttf",labelfontsize=10]; + node [fontname="FreeSans.ttf",fontsize=10,shape=record]; + Node9 [shape="box",label="Inherited",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",fillcolor="grey75",style="filled" fontcolor="black"]; + Node10 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"]; + Node10 [shape="box",label="PublicBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classPublicBase.html"]; + Node11 -> Node10 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"]; + Node11 [shape="box",label="Truncated",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="red",URL="$classTruncated.html"]; + Node13 -> Node9 [dir=back,color="darkgreen",fontsize=10,style="solid",fontname="FreeSans.ttf"]; + Node13 [shape="box",label="ProtectedBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classProtectedBase.html"]; + Node14 -> Node9 [dir=back,color="firebrick4",fontsize=10,style="solid",fontname="FreeSans.ttf"]; + Node14 [shape="box",label="PrivateBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classPrivateBase.html"]; + Node15 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"]; + Node15 [shape="box",label="Undocumented",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="grey75"]; + Node16 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"]; + Node16 [shape="box",label="Templ< int >",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classTempl.html"]; + Node17 -> Node16 [dir=back,color="orange",fontsize=10,style="dashed",label="< int >",fontname="FreeSans.ttf"]; + Node17 [shape="box",label="Templ< T >",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classTempl.html"]; + Node18 -> Node9 [dir=back,color="darkorchid3",fontsize=10,style="dashed",label="m_usedClass",fontname="FreeSans.ttf"]; + Node18 [shape="box",label="Used",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classUsed.html"]; } diff -ru libnet/doc/html/graph_legend.html libnet/doc/html/graph_legend.html --- libnet/doc/html/graph_legend.html Wed Mar 10 22:23:38 2004 +++ libnet/doc/html/graph_legend.html Sat Aug 19 10:56:47 2006 @@ -2,11 +2,17 @@ libnet: Graph Legend + - -
    Main Page | Data Structures | File List | Data Fields | Globals
    + +
    +

    Graph Legend

    This page explains how to interpret the graphs that are generated by doxygen.

    -Consider the following example:

    /*! Invisible class because of truncation */
    +Consider the following example: 
    /*! Invisible class because of truncation */
     class Invisible { };
     
     /*! Truncated class, inheritance relation is hidden */
    @@ -40,7 +46,7 @@
       private:
         Used *m_usedClass;
     };
    -
    If the MAX_DOT_GRAPH_HEIGHT tag in the configuration file is set to 240 this will result in the following graph:

    +

    If the MAX_DOT_GRAPH_HEIGHT tag in the configuration file is set to 240 this will result in the following graph:

    graph_legend.png
    @@ -67,9 +73,8 @@
  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
  • -
    Generated on Wed Mar 10 13:23:38 2004 for libnet by +
    Generated on Sat Aug 19 10:56:47 2006 for libnet by  -doxygen -1.3.4
    +doxygen 1.4.7
    Only in libnet/doc/html: graph_legend.png diff -ru libnet/doc/html/ifaddrlist_8h-source.html libnet/doc/html/ifaddrlist_8h-source.html --- libnet/doc/html/ifaddrlist_8h-source.html Wed Mar 10 22:23:37 2004 +++ libnet/doc/html/ifaddrlist_8h-source.html Sat Aug 19 10:56:42 2006 @@ -2,64 +2,74 @@ libnet: ifaddrlist.h Source File + - -
    Main Page | Data Structures | File List | Data Fields | Globals
    -

    ifaddrlist.h

    00001 /*
    -00002  * Copyright (c) 1997
    -00003  *      The Regents of the University of California.  All rights reserved.
    -00004  *
    -00005  * Redistribution and use in source and binary forms, with or without
    -00006  * modification, are permitted provided that: (1) source code distributions
    -00007  * retain the above copyright notice and this paragraph in its entirety, (2)
    -00008  * distributions including binary code include the above copyright notice and
    -00009  * this paragraph in its entirety in the documentation or other materials
    -00010  * provided with the distribution, and (3) all advertising materials mentioning
    -00011  * features or use of this software display the following acknowledgement:
    -00012  * ``This product includes software developed by the University of California,
    -00013  * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
    -00014  * the University nor the names of its contributors may be used to endorse
    -00015  * or promote products derived from this software without specific prior
    -00016  * written permission.
    -00017  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
    -00018  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
    -00019  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
    -00020  *
    -00021  */
    -00022 
    -00023 struct ifaddrlist
    -00024 {
    -00025 #if (HAVE_SOLARIS || HAVE_HPUX11)
    -00026     u_int addr;
    -00027 #else
    -00028     u_int32_t addr;              
    -00029 #endif
    -00030     int8_t *device;
    -00031 };
    -00032 
    -00033 struct libnet_ifaddr_list
    -00034 {
    -00035     u_int32_t addr;
    -00036     int8_t *device;
    -00037 };
    -00038 
    -00039 int
    -00040 ifaddrlist(
    -00041     struct ifaddrlist **,
    -00042     int8_t *
    -00043     );
    -00044 
    -00045 
    -00046 int
    -00047 set_up_interface(
    -00048     struct sockaddr_in **,
    -00049     u_int8_t **
    -00050     );
    -00051 
    -00052 /* EOF */
    -

    Generated on Wed Mar 10 13:23:37 2004 for libnet by + + + +

    ifaddrlist.h

    00001 /*
    +00002  * Copyright (c) 1997
    +00003  *      The Regents of the University of California.  All rights reserved.
    +00004  *
    +00005  * Redistribution and use in source and binary forms, with or without
    +00006  * modification, are permitted provided that: (1) source code distributions
    +00007  * retain the above copyright notice and this paragraph in its entirety, (2)
    +00008  * distributions including binary code include the above copyright notice and
    +00009  * this paragraph in its entirety in the documentation or other materials
    +00010  * provided with the distribution, and (3) all advertising materials mentioning
    +00011  * features or use of this software display the following acknowledgement:
    +00012  * ``This product includes software developed by the University of California,
    +00013  * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
    +00014  * the University nor the names of its contributors may be used to endorse
    +00015  * or promote products derived from this software without specific prior
    +00016  * written permission.
    +00017  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
    +00018  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
    +00019  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
    +00020  *
    +00021  */
    +00022 
    +00023 struct ifaddrlist
    +00024 {
    +00025 #if (HAVE_SOLARIS || HAVE_HPUX11)
    +00026     u_int addr;
    +00027 #else
    +00028     u_int32_t addr;              
    +00029 #endif
    +00030     int8_t *device;
    +00031 };
    +00032 
    +00033 struct libnet_ifaddr_list
    +00034 {
    +00035     u_int32_t addr;
    +00036     int8_t *device;
    +00037 };
    +00038 
    +00039 int
    +00040 ifaddrlist(
    +00041     struct ifaddrlist **,
    +00042     int8_t *
    +00043     );
    +00044 
    +00045 
    +00046 int
    +00047 set_up_interface(
    +00048     struct sockaddr_in **,
    +00049     u_int8_t **
    +00050     );
    +00051 
    +00052 /* EOF */
    +

    Generated on Sat Aug 19 10:56:42 2006 for libnet by  -doxygen -1.3.4
    +doxygen 1.4.7
    diff -ru libnet/doc/html/in__systm_8h-source.html libnet/doc/html/in__systm_8h-source.html --- libnet/doc/html/in__systm_8h-source.html Wed Mar 10 22:23:37 2004 +++ libnet/doc/html/in__systm_8h-source.html Sat Aug 19 10:56:42 2006 @@ -2,89 +2,99 @@ libnet: in_systm.h Source File + - -
    Main Page | Data Structures | File List | Data Fields | Globals
    -

    in_systm.h

    00001 /*
    -00002  * Copyright (c) 1982, 1986, 1993
    -00003  *  The Regents of the University of California.  All rights reserved.
    -00004  *
    -00005  * Redistribution and use in source and binary forms, with or without
    -00006  * modification, are permitted provided that the following conditions
    -00007  * are met:
    -00008  * 1. Redistributions of source code must retain the above copyright
    -00009  *    notice, this list of conditions and the following disclaimer.
    -00010  * 2. Redistributions in binary form must reproduce the above copyright
    -00011  *    notice, this list of conditions and the following disclaimer in the
    -00012  *    documentation and/or other materials provided with the distribution.
    -00013  * 3. All advertising materials mentioning features or use of this software
    -00014  *    must display the following acknowledgement:
    -00015  *  This product includes software developed by the University of
    -00016  *  California, Berkeley and its contributors.
    -00017  * 4. Neither the name of the University nor the names of its contributors
    -00018  *    may be used to endorse or promote products derived from this software
    -00019  *    without specific prior written permission.
    -00020  *
    -00021  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
    -00022  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    -00023  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -00024  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
    -00025  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    -00026  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    -00027  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    -00028  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    -00029  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    -00030  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    -00031  * SUCH DAMAGE.
    -00032  *
    -00033  *  @(#)in_systm.h  8.1 (Berkeley) 6/10/93
    -00034  * $FreeBSD: src/sys/netinet/in_systm.h,v 1.9 1999/12/29 04:41:00 peter Exp $
    -00035  */
    -00036 
    -00037 #ifdef _WIN32
    -00038 #ifndef _NETINET_IN_SYSTM_H_
    -00039 #define _NETINET_IN_SYSTM_H_
    -00040 
    -00041 typedef unsigned char  u_int8_t;
    -00042 typedef unsigned short u_int16_t;
    -00043 typedef unsigned int   u_int32_t;
    -00044 typedef unsigned __int64 u_int64_t;
    -00045 
    -00046 typedef __int64 int64_t;
    -00047 typedef int64_t rlim_t;
    -00048 
    -00049 
    -00050 typedef u_int32_t in_addr_t;
    -00051 typedef u_int32_t in_port_t;
    -00052 
    -00053 /*
    -00054  * Miscellaneous internetwork
    -00055  * definitions for kernel.
    -00056  */
    -00057 
    -00058 /*
    -00059  * Network types.
    -00060  *
    -00061  * Internally the system keeps counters in the headers with the bytes
    -00062  * swapped so that VAX instructions will work on them.  It reverses
    -00063  * the bytes before transmission at each protocol level.  The n_ types
    -00064  * represent the types with the bytes in ``high-ender'' order.
    -00065  */
    -00066 typedef u_int16_t n_short;      /* short as received from the net */
    -00067 typedef u_int32_t n_long;       /* long as received from the net */
    -00068 
    -00069 typedef u_int32_t n_time;       /* ms since 00:00 GMT, byte rev */
    -00070 
    -00071 #ifdef _KERNEL
    -00072 n_time   iptime __P((void));
    -00073 #endif
    -00074 
    -00075 #endif
    -00076 
    -00077 #endif
    -

    Generated on Wed Mar 10 13:23:37 2004 for libnet by + + + +

    in_systm.h

    00001 /*
    +00002  * Copyright (c) 1982, 1986, 1993
    +00003  *  The Regents of the University of California.  All rights reserved.
    +00004  *
    +00005  * Redistribution and use in source and binary forms, with or without
    +00006  * modification, are permitted provided that the following conditions
    +00007  * are met:
    +00008  * 1. Redistributions of source code must retain the above copyright
    +00009  *    notice, this list of conditions and the following disclaimer.
    +00010  * 2. Redistributions in binary form must reproduce the above copyright
    +00011  *    notice, this list of conditions and the following disclaimer in the
    +00012  *    documentation and/or other materials provided with the distribution.
    +00013  * 3. All advertising materials mentioning features or use of this software
    +00014  *    must display the following acknowledgement:
    +00015  *  This product includes software developed by the University of
    +00016  *  California, Berkeley and its contributors.
    +00017  * 4. Neither the name of the University nor the names of its contributors
    +00018  *    may be used to endorse or promote products derived from this software
    +00019  *    without specific prior written permission.
    +00020  *
    +00021  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
    +00022  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +00023  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +00024  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
    +00025  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    +00026  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    +00027  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    +00028  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    +00029  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    +00030  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    +00031  * SUCH DAMAGE.
    +00032  *
    +00033  *  @(#)in_systm.h  8.1 (Berkeley) 6/10/93
    +00034  * $FreeBSD: src/sys/netinet/in_systm.h,v 1.9 1999/12/29 04:41:00 peter Exp $
    +00035  */
    +00036 
    +00037 #ifdef _WIN32
    +00038 #ifndef _NETINET_IN_SYSTM_H_
    +00039 #define _NETINET_IN_SYSTM_H_
    +00040 
    +00041 typedef unsigned char  u_int8_t;
    +00042 typedef unsigned short u_int16_t;
    +00043 typedef unsigned int   u_int32_t;
    +00044 typedef unsigned __int64 u_int64_t;
    +00045 
    +00046 typedef __int64 int64_t;
    +00047 typedef int64_t rlim_t;
    +00048 
    +00049 
    +00050 typedef u_int32_t in_addr_t;
    +00051 typedef u_int32_t in_port_t;
    +00052 
    +00053 /*
    +00054  * Miscellaneous internetwork
    +00055  * definitions for kernel.
    +00056  */
    +00057 
    +00058 /*
    +00059  * Network types.
    +00060  *
    +00061  * Internally the system keeps counters in the headers with the bytes
    +00062  * swapped so that VAX instructions will work on them.  It reverses
    +00063  * the bytes before transmission at each protocol level.  The n_ types
    +00064  * represent the types with the bytes in ``high-ender'' order.
    +00065  */
    +00066 typedef u_int16_t n_short;      /* short as received from the net */
    +00067 typedef u_int32_t n_long;       /* long as received from the net */
    +00068 
    +00069 typedef u_int32_t n_time;       /* ms since 00:00 GMT, byte rev */
    +00070 
    +00071 #ifdef _KERNEL
    +00072 n_time   iptime __P((void));
    +00073 #endif
    +00074 
    +00075 #endif
    +00076 
    +00077 #endif
    +

    Generated on Sat Aug 19 10:56:42 2006 for libnet by  -doxygen -1.3.4
    +doxygen 1.4.7
    diff -ru libnet/doc/html/index.html libnet/doc/html/index.html --- libnet/doc/html/index.html Wed Mar 10 22:23:37 2004 +++ libnet/doc/html/index.html Sat Aug 19 10:56:42 2006 @@ -2,16 +2,21 @@ libnet: Libnet Packet Assembly Library + - -
    Main Page | Data Structures | File List | Data Fields | Globals
    -

    Libnet Packet Assembly Library

    + +
    +
    +

    Libnet Packet Assembly Library

    1.1.1

    Overview

    -Libnet is a high-level API (toolkit) allowing the application programmer to construct and inject network packets. It provides a portable and simplified interface for low-level network packet shaping, handling and injection. 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 IP layer 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 (Traceroute and ping were easily rewritten using libnet and libpcap).
    Generated on Wed Mar 10 13:23:37 2004 for libnet by +Libnet is a high-level API (toolkit) allowing the application programmer to construct and inject network packets. It provides a portable and simplified interface for low-level network packet shaping, handling and injection. 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 IP layer 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 (Traceroute and ping were easily rewritten using libnet and libpcap).
    Generated on Sat Aug 19 10:56:42 2006 for libnet by  -doxygen -1.3.4
    +doxygen 1.4.7
    diff -ru libnet/doc/html/libnet-asn1_8h-source.html libnet/doc/html/libnet-asn1_8h-source.html --- libnet/doc/html/libnet-asn1_8h-source.html Wed Mar 10 22:23:37 2004 +++ libnet/doc/html/libnet-asn1_8h-source.html Sat Aug 19 10:56:42 2006 @@ -2,267 +2,277 @@ libnet: libnet-asn1.h Source File + - -
    Main Page | Data Structures | File List | Data Fields | Globals
    -

    libnet-asn1.h

    00001 /*
    -00002  *  $Id: libnet-asn1.h,v 1.3 2004/01/17 07:51:19 mike Exp $
    -00003  *
    -00004  *  libnet-asn1.h - Network routine library ASN.1 header file
    -00005  *
    -00006  *  Copyright (c) 1998 - 2004 Mike D. Schiffman <mike@infonexus.com>
    -00007  *  All rights reserved.
    -00008  *
    -00009  *  Definitions for Abstract Syntax Notation One, ASN.1
    -00010  *  As defined in ISO/IS 8824 and ISO/IS 8825
    -00011  *
    -00012  *  Copyright 1988, 1989 by Carnegie Mellon University
    -00013  *  All rights reserved.
    -00014  *
    -00015  *  Permission to use, copy, modify, and distribute this software and its
    -00016  *  documentation for any purpose and without fee is hereby granted,
    -00017  *  provided that the above copyright notice appear in all copies and that
    -00018  *  both that copyright notice and this permission notice appear in
    -00019  *  supporting documentation, and that the name of CMU not be
    -00020  *  used in advertising or publicity pertaining to distribution of the
    -00021  *  software without specific, written prior permission.
    -00022  *
    -00023  *  CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
    -00024  *  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
    -00025  *  CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
    -00026  *  ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
    -00027  *  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
    -00028  *  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
    -00029  *  SOFTWARE.
    -00030  *
    -00031  *  Copyright (c) 1998 - 2001 Mike D. Schiffman <mike@infonexus.com>
    -00032  *  All rights reserved.
    -00033  *
    -00034  * Redistribution and use in source and binary forms, with or without
    -00035  * modification, are permitted provided that the following conditions
    -00036  * are met:
    -00037  * 1. Redistributions of source code must retain the above copyright
    -00038  *    notice, this list of conditions and the following disclaimer.
    -00039  * 2. Redistributions in binary form must reproduce the above copyright
    -00040  *    notice, this list of conditions and the following disclaimer in the
    -00041  *    documentation and/or other materials provided with the distribution.
    -00042  *
    -00043  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
    -00044  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    -00045  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -00046  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
    -00047  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    -00048  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    -00049  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    -00050  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    -00051  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    -00052  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    -00053  * SUCH DAMAGE.
    -00054  */
    -00055 
    -00056 #ifndef __LIBNET_ASN1_H
    -00057 #define __LIBNET_ASN1_H
    -00058 
    -00059 #ifndef EIGHTBIT_SUBIDS
    -00060 typedef u_int32_t  oid;
    -00061 #define MAX_SUBID   0xFFFFFFFF
    -00062 #else
    -00063 typedef u_int8_t  oid;
    -00064 #define MAX_SUBID   0xFF
    -00065 #endif
    -00066 
    -00067 #define MAX_OID_LEN         64  /* max subid's in an oid */
    -00068 
    -00069 #define ASN_BOOLEAN         (0x01)
    -00070 #define ASN_INTEGER         (0x02)
    -00071 #define ASN_BIT_STR         (0x03)
    -00072 #define ASN_OCTET_STR       (0x04)
    -00073 #define ASN_NULL            (0x05)
    -00074 #define ASN_OBJECT_ID       (0x06)
    -00075 #define ASN_SEQUENCE        (0x10)
    -00076 #define ASN_SET             (0x11)
    -00077 
    -00078 #define ASN_UNIVERSAL       (0x00)
    -00079 #define ASN_APPLICATION     (0x40)
    -00080 #define ASN_CONTEXT         (0x80)
    -00081 #define ASN_PRIVATE         (0xC0)
    -00082 
    -00083 #define ASN_PRIMITIVE       (0x00)
    -00084 #define ASN_CONSTRUCTOR     (0x20)
    -00085 
    -00086 #define ASN_LONG_LEN        (0x80)
    -00087 #define ASN_EXTENSION_ID    (0x1F)
    -00088 #define ASN_BIT8            (0x80)
    -00089 
    -00090 #define IS_CONSTRUCTOR(byte)  ((byte) & ASN_CONSTRUCTOR)
    -00091 #define IS_EXTENSION_ID(byte) (((byte) & ASN_EXTENSION_ID) = ASN_EXTENSION_ID)
    -00092 
    -00093 /*
    -00094  *  All of the build_asn1_* (build_asn1_length being an exception) functions
    -00095  *  take the same first 3 arguments:
    -00096  *
    -00097  *  u_int8_t *data:   This is a pointer to the start of the data object to be
    -00098  *                  manipulated.
    -00099  *  int *datalen:   This is a pointer to the number of valid bytes following
    -00100  *                  "data".  This should be not be exceeded in any function.
    -00101  *                  Upon exiting a function, this value will reflect the
    -00102  *                  changed "data" and then refer to the new number of valid
    -00103  *                  bytes until the end of "data".
    -00104  *  u_int8_t type:    The ASN.1 object type.
    -00105  */
    -00106 
    -00107 
    -00108 /*
    -00109  *  Builds an ASN object containing an integer.
    -00110  *
    -00111  *  Returns NULL upon error or a pointer to the first byte past the end of
    -00112  *  this object (the start of the next object).
    -00113  */
    -00114 
    -00115 u_int8_t *
    -00116 libnet_build_asn1_int(
    -00117     u_int8_t *,           /* Pointer to the output buffer */
    -00118     int *,              /* Number of valid bytes left in the buffer */
    -00119     u_int8_t,             /* ASN object type */
    -00120     int32_t *,             /* Pointer to a int32_t integer */
    -00121     int                 /* Size of a int32_t integer */
    -00122     );
    -00123 
    -00124 
    -00125 /*
    -00126  *  Builds an ASN object containing an unsigned integer.
    -00127  *
    -00128  *  Returns NULL upon error or a pointer to the first byte past the end of
    -00129  *  this object (the start of the next object).
    -00130  */
    -00131 
    -00132 u_int8_t *
    -00133 libnet_build_asn1_uint(
    -00134     u_int8_t *,           /* Pointer to the output buffer */
    -00135     int *,              /* Number of valid bytes left in the buffer */
    -00136     u_int8_t,             /* ASN object type */
    -00137     u_int32_t *,           /* Pointer to an unsigned int32_t integer */
    -00138     int                 /* Size of a int32_t integer */
    -00139     );
    -00140 
    -00141 
    -00142 /*
    -00143  *  Builds an ASN object containing an octect string.
    -00144  *
    -00145  *  Returns NULL upon error or a pointer to the first byte past the end of
    -00146  *  this object (the start of the next object).
    -00147  */
    -00148 
    -00149 u_int8_t *
    -00150 libnet_build_asn1_string(
    -00151     u_int8_t *,           /* Pointer to the output buffer */
    -00152     int *,              /* Number of valid bytes left in the buffer */
    -00153     u_int8_t,             /* ASN object type */
    -00154     u_int8_t *,           /* Pointer to a string to be built into an object */
    -00155     int                 /* Size of the string */
    -00156     );
    -00157 
    -00158 
    -00159 /*
    -00160  *  Builds an ASN header for an object with the ID and length specified.  This
    -00161  *  only works on data types < 30, i.e. no extension octets.  The maximum
    -00162  *  length is 0xFFFF;
    -00163  *
    -00164  *  Returns a pointer to the first byte of the contents of this object or
    -00165  *  NULL upon error
    -00166  */
    -00167 
    -00168 u_int8_t *
    -00169 libnet_build_asn1_header(
    -00170     u_int8_t *,       /* Pointer to the start of the object */
    -00171     int *,          /* Number of valid bytes left in buffer */
    -00172     u_int8_t,         /* ASN object type */
    -00173     int             /* ASN object length */
    -00174     );
    -00175 
    -00176 
    -00177 u_int8_t *
    -00178 libnet_build_asn1_length(
    -00179     u_int8_t *,       /* Pointer to start of object */
    -00180     int *,          /* Number of valid bytes in buffer */
    -00181     int             /* Length of object */
    -00182     );
    -00183 
    -00184 
    -00185 /*
    -00186  *  Builds an ASN header for a sequence with the ID and length specified.
    -00187  *
    -00188  *  This only works on data types < 30, i.e. no extension octets.
    -00189  *  The maximum length is 0xFFFF;
    -00190  *
    -00191  *  Returns a pointer to the first byte of the contents of this object.
    -00192  *  Returns NULL on any error.
    -00193  */
    -00194 
    -00195 u_int8_t *
    -00196 libnet_build_asn1_sequence(
    -00197     u_int8_t *,
    -00198     int *,
    -00199     u_int8_t,
    -00200     int
    -00201     );
    -00202 
    -00203 
    -00204 /*
    -00205  *  Builds an ASN object identifier object containing the input string.
    -00206  *
    -00207  *  Returns NULL upon error or a pointer to the first byte past the end of
    -00208  *  this object (the start of the next object).
    -00209  */
    -00210 
    -00211 u_int8_t *
    -00212 libnet_build_asn1_objid(
    -00213     u_int8_t *,
    -00214     int *,
    -00215     u_int8_t,
    -00216     oid *,
    -00217     int
    -00218     );
    -00219 
    -00220 
    -00221 /*
    -00222  *  Builds an ASN null object.
    -00223  *
    -00224  *  Returns NULL upon error or a pointer to the first byte past the end of
    -00225  *  this object (the start of the next object).
    -00226  */
    -00227 
    -00228 u_int8_t *
    -00229 libnet_build_asn1_null(
    -00230     u_int8_t *,
    -00231     int *,
    -00232     u_int8_t
    -00233     );
    -00234 
    -00235 
    -00236 /*
    -00237  *  Builds an ASN bitstring.
    -00238  *
    -00239  *  Returns NULL upon error or a pointer to the first byte past the end of
    -00240  *  this object (the start of the next object).
    -00241  */
    -00242 
    -00243 u_int8_t *
    -00244 libnet_build_asn1_bitstring(
    -00245     u_int8_t *,
    -00246     int *,
    -00247     u_int8_t,
    -00248     u_int8_t *,       /* Pointer to the input buffer */
    -00249     int             /* Length of the input buffer */
    -00250     );
    -00251 
    -00252 
    -00253 #endif  /* __LIBNET_ASN1_H */
    -00254 
    -00255 /* EOF */
    -

    Generated on Wed Mar 10 13:23:37 2004 for libnet by + + + +

    libnet-asn1.h

    00001 /*
    +00002  *  $Id: libnet-asn1.h,v 1.3 2004/01/17 07:51:19 mike Exp $
    +00003  *
    +00004  *  libnet-asn1.h - Network routine library ASN.1 header file
    +00005  *
    +00006  *  Copyright (c) 1998 - 2004 Mike D. Schiffman <mike@infonexus.com>
    +00007  *  All rights reserved.
    +00008  *
    +00009  *  Definitions for Abstract Syntax Notation One, ASN.1
    +00010  *  As defined in ISO/IS 8824 and ISO/IS 8825
    +00011  *
    +00012  *  Copyright 1988, 1989 by Carnegie Mellon University
    +00013  *  All rights reserved.
    +00014  *
    +00015  *  Permission to use, copy, modify, and distribute this software and its
    +00016  *  documentation for any purpose and without fee is hereby granted,
    +00017  *  provided that the above copyright notice appear in all copies and that
    +00018  *  both that copyright notice and this permission notice appear in
    +00019  *  supporting documentation, and that the name of CMU not be
    +00020  *  used in advertising or publicity pertaining to distribution of the
    +00021  *  software without specific, written prior permission.
    +00022  *
    +00023  *  CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
    +00024  *  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
    +00025  *  CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
    +00026  *  ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
    +00027  *  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
    +00028  *  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
    +00029  *  SOFTWARE.
    +00030  *
    +00031  *  Copyright (c) 1998 - 2001 Mike D. Schiffman <mike@infonexus.com>
    +00032  *  All rights reserved.
    +00033  *
    +00034  * Redistribution and use in source and binary forms, with or without
    +00035  * modification, are permitted provided that the following conditions
    +00036  * are met:
    +00037  * 1. Redistributions of source code must retain the above copyright
    +00038  *    notice, this list of conditions and the following disclaimer.
    +00039  * 2. Redistributions in binary form must reproduce the above copyright
    +00040  *    notice, this list of conditions and the following disclaimer in the
    +00041  *    documentation and/or other materials provided with the distribution.
    +00042  *
    +00043  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
    +00044  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +00045  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +00046  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
    +00047  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    +00048  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    +00049  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    +00050  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    +00051  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    +00052  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    +00053  * SUCH DAMAGE.
    +00054  */
    +00055 
    +00056 #ifndef __LIBNET_ASN1_H
    +00057 #define __LIBNET_ASN1_H
    +00058 
    +00059 #ifndef EIGHTBIT_SUBIDS
    +00060 typedef u_int32_t  oid;
    +00061 #define MAX_SUBID   0xFFFFFFFF
    +00062 #else
    +00063 typedef u_int8_t  oid;
    +00064 #define MAX_SUBID   0xFF
    +00065 #endif
    +00066 
    +00067 #define MAX_OID_LEN         64  /* max subid's in an oid */
    +00068 
    +00069 #define ASN_BOOLEAN         (0x01)
    +00070 #define ASN_INTEGER         (0x02)
    +00071 #define ASN_BIT_STR         (0x03)
    +00072 #define ASN_OCTET_STR       (0x04)
    +00073 #define ASN_NULL            (0x05)
    +00074 #define ASN_OBJECT_ID       (0x06)
    +00075 #define ASN_SEQUENCE        (0x10)
    +00076 #define ASN_SET             (0x11)
    +00077 
    +00078 #define ASN_UNIVERSAL       (0x00)
    +00079 #define ASN_APPLICATION     (0x40)
    +00080 #define ASN_CONTEXT         (0x80)
    +00081 #define ASN_PRIVATE         (0xC0)
    +00082 
    +00083 #define ASN_PRIMITIVE       (0x00)
    +00084 #define ASN_CONSTRUCTOR     (0x20)
    +00085 
    +00086 #define ASN_LONG_LEN        (0x80)
    +00087 #define ASN_EXTENSION_ID    (0x1F)
    +00088 #define ASN_BIT8            (0x80)
    +00089 
    +00090 #define IS_CONSTRUCTOR(byte)  ((byte) & ASN_CONSTRUCTOR)
    +00091 #define IS_EXTENSION_ID(byte) (((byte) & ASN_EXTENSION_ID) = ASN_EXTENSION_ID)
    +00092 
    +00093 /*
    +00094  *  All of the build_asn1_* (build_asn1_length being an exception) functions
    +00095  *  take the same first 3 arguments:
    +00096  *
    +00097  *  u_int8_t *data:   This is a pointer to the start of the data object to be
    +00098  *                  manipulated.
    +00099  *  int *datalen:   This is a pointer to the number of valid bytes following
    +00100  *                  "data".  This should be not be exceeded in any function.
    +00101  *                  Upon exiting a function, this value will reflect the
    +00102  *                  changed "data" and then refer to the new number of valid
    +00103  *                  bytes until the end of "data".
    +00104  *  u_int8_t type:    The ASN.1 object type.
    +00105  */
    +00106 
    +00107 
    +00108 /*
    +00109  *  Builds an ASN object containing an integer.
    +00110  *
    +00111  *  Returns NULL upon error or a pointer to the first byte past the end of
    +00112  *  this object (the start of the next object).
    +00113  */
    +00114 
    +00115 u_int8_t *
    +00116 libnet_build_asn1_int(
    +00117     u_int8_t *,           /* Pointer to the output buffer */
    +00118     int *,              /* Number of valid bytes left in the buffer */
    +00119     u_int8_t,             /* ASN object type */
    +00120     int32_t *,             /* Pointer to a int32_t integer */
    +00121     int                 /* Size of a int32_t integer */
    +00122     );
    +00123 
    +00124 
    +00125 /*
    +00126  *  Builds an ASN object containing an unsigned integer.
    +00127  *
    +00128  *  Returns NULL upon error or a pointer to the first byte past the end of
    +00129  *  this object (the start of the next object).
    +00130  */
    +00131 
    +00132 u_int8_t *
    +00133 libnet_build_asn1_uint(
    +00134     u_int8_t *,           /* Pointer to the output buffer */
    +00135     int *,              /* Number of valid bytes left in the buffer */
    +00136     u_int8_t,             /* ASN object type */
    +00137     u_int32_t *,           /* Pointer to an unsigned int32_t integer */
    +00138     int                 /* Size of a int32_t integer */
    +00139     );
    +00140 
    +00141 
    +00142 /*
    +00143  *  Builds an ASN object containing an octect string.
    +00144  *
    +00145  *  Returns NULL upon error or a pointer to the first byte past the end of
    +00146  *  this object (the start of the next object).
    +00147  */
    +00148 
    +00149 u_int8_t *
    +00150 libnet_build_asn1_string(
    +00151     u_int8_t *,           /* Pointer to the output buffer */
    +00152     int *,              /* Number of valid bytes left in the buffer */
    +00153     u_int8_t,             /* ASN object type */
    +00154     u_int8_t *,           /* Pointer to a string to be built into an object */
    +00155     int                 /* Size of the string */
    +00156     );
    +00157 
    +00158 
    +00159 /*
    +00160  *  Builds an ASN header for an object with the ID and length specified.  This
    +00161  *  only works on data types < 30, i.e. no extension octets.  The maximum
    +00162  *  length is 0xFFFF;
    +00163  *
    +00164  *  Returns a pointer to the first byte of the contents of this object or
    +00165  *  NULL upon error
    +00166  */
    +00167 
    +00168 u_int8_t *
    +00169 libnet_build_asn1_header(
    +00170     u_int8_t *,       /* Pointer to the start of the object */
    +00171     int *,          /* Number of valid bytes left in buffer */
    +00172     u_int8_t,         /* ASN object type */
    +00173     int             /* ASN object length */
    +00174     );
    +00175 
    +00176 
    +00177 u_int8_t *
    +00178 libnet_build_asn1_length(
    +00179     u_int8_t *,       /* Pointer to start of object */
    +00180     int *,          /* Number of valid bytes in buffer */
    +00181     int             /* Length of object */
    +00182     );
    +00183 
    +00184 
    +00185 /*
    +00186  *  Builds an ASN header for a sequence with the ID and length specified.
    +00187  *
    +00188  *  This only works on data types < 30, i.e. no extension octets.
    +00189  *  The maximum length is 0xFFFF;
    +00190  *
    +00191  *  Returns a pointer to the first byte of the contents of this object.
    +00192  *  Returns NULL on any error.
    +00193  */
    +00194 
    +00195 u_int8_t *
    +00196 libnet_build_asn1_sequence(
    +00197     u_int8_t *,
    +00198     int *,
    +00199     u_int8_t,
    +00200     int
    +00201     );
    +00202 
    +00203 
    +00204 /*
    +00205  *  Builds an ASN object identifier object containing the input string.
    +00206  *
    +00207  *  Returns NULL upon error or a pointer to the first byte past the end of
    +00208  *  this object (the start of the next object).
    +00209  */
    +00210 
    +00211 u_int8_t *
    +00212 libnet_build_asn1_objid(
    +00213     u_int8_t *,
    +00214     int *,
    +00215     u_int8_t,
    +00216     oid *,
    +00217     int
    +00218     );
    +00219 
    +00220 
    +00221 /*
    +00222  *  Builds an ASN null object.
    +00223  *
    +00224  *  Returns NULL upon error or a pointer to the first byte past the end of
    +00225  *  this object (the start of the next object).
    +00226  */
    +00227 
    +00228 u_int8_t *
    +00229 libnet_build_asn1_null(
    +00230     u_int8_t *,
    +00231     int *,
    +00232     u_int8_t
    +00233     );
    +00234 
    +00235 
    +00236 /*
    +00237  *  Builds an ASN bitstring.
    +00238  *
    +00239  *  Returns NULL upon error or a pointer to the first byte past the end of
    +00240  *  this object (the start of the next object).
    +00241  */
    +00242 
    +00243 u_int8_t *
    +00244 libnet_build_asn1_bitstring(
    +00245     u_int8_t *,
    +00246     int *,
    +00247     u_int8_t,
    +00248     u_int8_t *,       /* Pointer to the input buffer */
    +00249     int             /* Length of the input buffer */
    +00250     );
    +00251 
    +00252 
    +00253 #endif  /* __LIBNET_ASN1_H */
    +00254 
    +00255 /* EOF */
    +

    Generated on Sat Aug 19 10:56:42 2006 for libnet by  -doxygen -1.3.4
    +doxygen 1.4.7
    diff -ru libnet/doc/html/libnet-functions_8h-source.html libnet/doc/html/libnet-functions_8h-source.html --- libnet/doc/html/libnet-functions_8h-source.html Wed Mar 10 22:23:37 2004 +++ libnet/doc/html/libnet-functions_8h-source.html Sat Aug 19 10:56:42 2006 @@ -2,741 +2,856 @@ libnet: libnet-functions.h Source File + - -
    Main Page | Data Structures | File List | Data Fields | Globals
    -

    libnet-functions.h

    Go to the documentation of this file.
    00001 /*
    -00002  *  $Id: libnet-functions.h,v 1.39 2004/03/01 20:26:11 mike Exp $
    -00003  *
    -00004  *  libnet-functions.h - function prototypes
    -00005  *
    -00006  *  Copyright (c) 1998 - 2004 Mike D. Schiffman <mike@infonexus.com>
    -00007  *  All rights reserved.
    -00008  *
    -00009  * Redistribution and use in source and binary forms, with or without
    -00010  * modification, are permitted provided that the following conditions
    -00011  * are met:
    -00012  * 1. Redistributions of source code must retain the above copyright
    -00013  *    notice, this list of conditions and the following disclaimer.
    -00014  * 2. Redistributions in binary form must reproduce the above copyright
    -00015  *    notice, this list of conditions and the following disclaimer in the
    -00016  *    documentation and/or other materials provided with the distribution.
    -00017  *
    -00018  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
    -00019  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    -00020  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -00021  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
    -00022  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    -00023  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    -00024  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    -00025  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    -00026  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    -00027  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    -00028  * SUCH DAMAGE.
    -00029  *
    -00030  */
    -00031 
    -00032 #ifndef __LIBNET_FUNCTIONS_H
    -00033 #define __LIBNET_FUNCTIONS_H
    -00034 
    -00063 libnet_t *
    -00064 libnet_init(int injection_type, char *device, char *err_buf);
    -00065 
    -00071 void
    -00072 libnet_destroy(libnet_t *l);
    -00073 
    -00080 void
    -00081 libnet_clear_packet(libnet_t *l);
    -00082 
    -00089 void
    -00090 libnet_stats(libnet_t *l, struct libnet_stats *ls);
    -00091 
    -00097 int 
    -00098 libnet_getfd(libnet_t *l);
    -00099 
    -00106 int8_t *
    -00107 libnet_getdevice(libnet_t *l);
    -00108 
    -00117 u_int8_t *
    -00118 libnet_getpbuf(libnet_t *l, libnet_ptag_t ptag);
    -00119 
    -00128 u_int32_t
    -00129 libnet_getpbuf_size(libnet_t *l, libnet_ptag_t ptag);
    -00130 
    -00138 char *
    -00139 libnet_geterror(libnet_t *l);
    -00140 
    -00147 u_int32_t
    -00148 libnet_getpacket_size(libnet_t *l);
    -00149 
    -00155 int
    -00156 libnet_seed_prand(libnet_t *l);
    -00157 
    -00171 u_int32_t
    -00172 libnet_get_prand(int mod);
    -00173 
    -00195 int
    -00196 libnet_toggle_checksum(libnet_t *l, libnet_ptag_t ptag, int mode);
    -00197 
    -00210 char *
    -00211 libnet_addr2name4(u_int32_t in, u_int8_t use_name);
    -00212 
    -00226 u_int32_t
    -00227 libnet_name2addr4(libnet_t *l, char *host_name, u_int8_t use_name);
    -00228 
    -00229 extern const struct libnet_in6_addr in6addr_error;
    -00230 
    -00244 struct libnet_in6_addr
    -00245 libnet_name2addr6(libnet_t *l, char *host_name, u_int8_t use_name);
    -00246 
    -00250 void
    -00251 libnet_addr2name6_r(struct libnet_in6_addr addr, u_int8_t use_name,
    -00252 char *host_name, int host_name_len);
    -00253 
    -00269 int
    -00270 libnet_plist_chain_new(libnet_t *l, libnet_plist_t **plist, char *token_list);
    -00271 
    -00283 int
    -00284 libnet_plist_chain_next_pair(libnet_plist_t *plist, u_int16_t *bport, 
    -00285 u_int16_t *eport); 
    -00286 
    -00293 int
    -00294 libnet_plist_chain_dump(libnet_plist_t *plist);
    -00295 
    -00304 char *
    -00305 libnet_plist_chain_dump_string(libnet_plist_t *plist);
    -00306 
    -00312 int
    -00313 libnet_plist_chain_free(libnet_plist_t *plist);
    -00314 
    -00402 libnet_ptag_t
    -00403 libnet_build_802_1q(u_int8_t *dst, u_int8_t *src, u_int16_t tpi,
    -00404 u_int8_t priority, u_int8_t cfi, u_int16_t vlan_id, u_int16_t len_proto,
    -00405 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00406 
    -00418 libnet_ptag_t
    -00419 libnet_build_802_1x(u_int8_t eap_ver, u_int8_t eap_type, u_int16_t length, 
    -00420 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00421 
    -00433 libnet_ptag_t
    -00434 libnet_build_802_2(u_int8_t dsap, u_int8_t ssap, u_int8_t control,
    -00435 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00436 
    -00450 libnet_ptag_t
    -00451 libnet_build_802_2snap(u_int8_t dsap, u_int8_t ssap, u_int8_t control, 
    -00452 u_int8_t *oui, u_int16_t type, u_int8_t *payload, u_int32_t payload_s,
    -00453 libnet_t *l, libnet_ptag_t ptag); 
    -00454 
    -00470 libnet_ptag_t
    -00471 libnet_build_802_3(u_int8_t *dst, u_int8_t *src, u_int16_t len, 
    -00472 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00473 
    -00489 libnet_ptag_t
    -00490 libnet_build_ethernet(u_int8_t *dst, u_int8_t *src, u_int16_t type, 
    -00491 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00492 
    -00504 libnet_ptag_t
    -00505 libnet_autobuild_ethernet(u_int8_t *dst, u_int16_t type, libnet_t *l);
    -00506 
    -00523 libnet_ptag_t
    -00524 libnet_build_fddi(u_int8_t fc, u_int8_t *dst, u_int8_t *src, u_int8_t dsap,
    -00525 u_int8_t ssap, u_int8_t cf, u_int8_t *org, u_int16_t type, u_int8_t *payload,
    -00526 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00527 
    -00540 libnet_ptag_t
    -00541 libnet_autobuild_fddi(u_int8_t fc, u_int8_t *dst, u_int8_t dsap, u_int8_t ssap,
    -00542 u_int8_t cf, u_int8_t *org, u_int16_t type, libnet_t *l);
    -00543 
    -00563 libnet_ptag_t
    -00564 libnet_build_arp(u_int16_t hrd, u_int16_t pro, u_int8_t hln, u_int8_t pln,
    -00565 u_int16_t op, u_int8_t *sha, u_int8_t *spa, u_int8_t *tha, u_int8_t *tpa,
    -00566 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00567 
    -00580 libnet_ptag_t
    -00581 libnet_autobuild_arp(u_int16_t op, u_int8_t *sha, u_int8_t *spa, u_int8_t *tha,
    -00582 u_int8_t *tpa, libnet_t *l);
    -00583 
    -00600 libnet_ptag_t
    -00601 libnet_build_tcp(u_int16_t sp, u_int16_t dp, u_int32_t seq, u_int32_t ack,
    -00602 u_int8_t control, u_int16_t win, u_int16_t sum, u_int16_t urg, u_int16_t len, 
    -00603 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00604 
    -00620 libnet_ptag_t
    -00621 libnet_build_tcp_options(u_int8_t *options, u_int32_t options_s, libnet_t *l,
    -00622 libnet_ptag_t ptag);
    -00623 
    -00636 libnet_ptag_t
    -00637 libnet_build_udp(u_int16_t sp, u_int16_t dp, u_int16_t len, u_int16_t sum,
    -00638 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00639 
    -00659 libnet_ptag_t
    -00660 libnet_build_cdp(u_int8_t version, u_int8_t ttl, u_int16_t sum, u_int16_t type,
    -00661 u_int16_t len, u_int8_t *value, u_int8_t *payload, u_int32_t payload_s,
    -00662 libnet_t *l, libnet_ptag_t ptag);
    -00663 
    -00678 libnet_ptag_t
    -00679 libnet_build_icmpv4_echo(u_int8_t type, u_int8_t code, u_int16_t sum,
    -00680 u_int16_t id, u_int16_t seq, u_int8_t *payload, u_int32_t payload_s,
    -00681 libnet_t *l, libnet_ptag_t ptag);
    -00682 
    -00698 libnet_ptag_t
    -00699 libnet_build_icmpv4_mask(u_int8_t type, u_int8_t code, u_int16_t sum,
    -00700 u_int16_t id, u_int16_t seq, u_int32_t mask, u_int8_t *payload,
    -00701 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00702 
    -00725 libnet_ptag_t
    -00726 libnet_build_icmpv4_unreach(u_int8_t type, u_int8_t code, u_int16_t sum,
    -00727 u_int16_t orig_len, u_int8_t orig_tos, u_int16_t orig_id, u_int16_t orig_frag,
    -00728 u_int8_t orig_ttl, u_int8_t orig_prot,  u_int16_t orig_check, 
    -00729 u_int32_t orig_src, u_int32_t orig_dst, u_int8_t *payload, u_int32_t payload_s,
    -00730 libnet_t *l, libnet_ptag_t ptag);
    -00731 
    -00753 libnet_ptag_t
    -00754 libnet_build_icmpv4_redirect(u_int8_t type, u_int8_t code, u_int16_t sum,
    -00755 u_int32_t gateway, u_int16_t orig_len, u_int8_t orig_tos, u_int16_t orig_id,
    -00756 u_int16_t orig_frag, u_int8_t orig_ttl, u_int8_t orig_prot,
    -00757 u_int16_t orig_check, u_int32_t orig_src, u_int32_t orig_dst,
    -00758 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00759 
    -00783 libnet_ptag_t
    -00784 libnet_build_icmpv4_timeexceed(u_int8_t type, u_int8_t code, u_int16_t sum,
    -00785 u_int16_t orig_len, u_int8_t orig_tos, u_int16_t orig_id, u_int16_t orig_frag,
    -00786 u_int8_t orig_ttl, u_int8_t orig_prot, u_int16_t orig_check,
    -00787 u_int32_t orig_src, u_int32_t orig_dst, u_int8_t *payload, u_int32_t payload_s,
    -00788 libnet_t *l, libnet_ptag_t ptag);
    -00789 
    -00807 libnet_ptag_t
    -00808 libnet_build_icmpv4_timestamp(u_int8_t type, u_int8_t code, u_int16_t sum,
    -00809 u_int16_t id, u_int16_t seq, n_time otime, n_time rtime, n_time ttime,
    -00810 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00811 
    -00824 libnet_ptag_t
    -00825 libnet_build_igmp(u_int8_t type, u_int8_t code, u_int16_t sum, u_int32_t ip,
    -00826 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00827 
    -00845 libnet_ptag_t 
    -00846 libnet_build_ipv4(u_int16_t len, u_int8_t tos, u_int16_t id, u_int16_t frag,
    -00847 u_int8_t ttl, u_int8_t prot, u_int16_t sum, u_int32_t src, u_int32_t dst,
    -00848 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00849 
    -00864 libnet_ptag_t 
    -00865 libnet_build_ipv4_options(u_int8_t *options, u_int32_t options_s, libnet_t *l,
    -00866 libnet_ptag_t ptag);
    -00867 
    -00880 libnet_ptag_t
    -00881 libnet_autobuild_ipv4(u_int16_t len, u_int8_t prot, u_int32_t dst, libnet_t *l);
    -00882 
    -00898 libnet_ptag_t
    -00899 libnet_build_ipv6(u_int8_t tc, u_int32_t fl, u_int16_t len, u_int8_t nh,
    -00900 u_int8_t hl, struct libnet_in6_addr src, struct libnet_in6_addr dst, 
    -00901 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00902 
    -00915 libnet_ptag_t
    -00916 libnet_build_ipv6_frag(u_int8_t nh, u_int8_t reserved, u_int16_t frag,
    -00917 u_int32_t id, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    -00918 libnet_ptag_t ptag);
    -00919 
    -00937 libnet_ptag_t
    -00938 libnet_build_ipv6_routing(u_int8_t nh, u_int8_t len, u_int8_t rtype,
    -00939 u_int8_t segments, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    -00940 libnet_ptag_t ptag);
    -00941 
    -00955 libnet_ptag_t
    -00956 libnet_build_ipv6_destopts(u_int8_t nh, u_int8_t len, u_int8_t *payload,
    -00957 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00958 
    -00973 libnet_ptag_t
    -00974 libnet_build_ipv6_hbhopts(u_int8_t nh, u_int8_t len, u_int8_t *payload,
    -00975 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -00976 
    -00988 libnet_ptag_t
    -00989 libnet_autobuild_ipv6(u_int16_t len, u_int8_t nh, struct libnet_in6_addr dst,
    -00990 libnet_t *l);
    -00991 
    -01009 libnet_ptag_t
    -01010 libnet_build_isl(u_int8_t *dhost, u_int8_t type, u_int8_t user, u_int8_t *shost,
    -01011 u_int16_t len, u_int8_t *snap, u_int16_t vid, u_int16_t index,
    -01012 u_int16_t reserved, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    -01013 libnet_ptag_t ptag);
    -01014 
    -01026 libnet_ptag_t
    -01027 libnet_build_ipsec_esp_hdr(u_int32_t spi, u_int32_t seq, u_int32_t iv,
    -01028 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01029 
    -01041 libnet_ptag_t
    -01042 libnet_build_ipsec_esp_ftr(u_int8_t len, u_int8_t nh, int8_t *auth,
    -01043 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01044 
    -01059 libnet_ptag_t
    -01060 libnet_build_ipsec_ah(u_int8_t nh, u_int8_t len, u_int16_t res,
    -01061 u_int32_t spi, u_int32_t seq, u_int32_t auth, u_int8_t *payload,
    -01062 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01063 
    -01079 libnet_ptag_t
    -01080 libnet_build_dnsv4(u_int16_t h_len, u_int16_t id, u_int16_t flags,
    -01081 u_int16_t num_q, u_int16_t num_anws_rr, u_int16_t num_auth_rr,
    -01082 u_int16_t num_addi_rr, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    -01083 libnet_ptag_t ptag);
    -01084 
    -01102 libnet_ptag_t
    -01103 libnet_build_rip(u_int8_t cmd, u_int8_t version, u_int16_t rd, u_int16_t af,
    -01104 u_int16_t rt, u_int32_t addr, u_int32_t mask, u_int32_t next_hop,
    -01105 u_int32_t metric, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    -01106 libnet_ptag_t ptag);
    -01107 
    -01130 libnet_ptag_t
    -01131 libnet_build_rpc_call(u_int32_t rm, u_int32_t xid, u_int32_t prog_num,
    -01132 u_int32_t prog_vers, u_int32_t procedure, u_int32_t cflavor, u_int32_t clength,
    -01133 u_int8_t *cdata, u_int32_t vflavor, u_int32_t vlength, u_int8_t *vdata,
    -01134 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01135 
    -01158 libnet_ptag_t
    -01159 libnet_build_stp_conf(u_int16_t id, u_int8_t version, u_int8_t bpdu_type,
    -01160 u_int8_t flags, u_int8_t *root_id, u_int32_t root_pc, u_int8_t *bridge_id,
    -01161 u_int16_t port_id, u_int16_t message_age, u_int16_t max_age, 
    -01162 u_int16_t hello_time, u_int16_t f_delay, u_int8_t *payload,
    -01163 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01164 
    -01178 libnet_ptag_t
    -01179 libnet_build_stp_tcn(u_int16_t id, u_int8_t version, u_int8_t bpdu_type,
    -01180 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01181 
    -01199 libnet_ptag_t
    -01200 libnet_build_token_ring(u_int8_t ac, u_int8_t fc, u_int8_t *dst, u_int8_t *src,
    -01201 u_int8_t dsap, u_int8_t ssap, u_int8_t cf, u_int8_t *org, u_int16_t type,
    -01202 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01203 
    -01217 libnet_ptag_t
    -01218 libnet_autobuild_token_ring(u_int8_t ac, u_int8_t fc, u_int8_t *dst, 
    -01219 u_int8_t dsap, u_int8_t ssap, u_int8_t cf, u_int8_t *org, u_int16_t type,
    -01220 libnet_t *l);
    -01221 
    -01241 libnet_ptag_t
    -01242 libnet_build_vrrp(u_int8_t version, u_int8_t type, u_int8_t vrouter_id,
    -01243 u_int8_t priority, u_int8_t ip_count, u_int8_t auth_type, u_int8_t advert_int,
    -01244 u_int16_t sum, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    -01245 libnet_ptag_t ptag);
    -01246 
    -01259 libnet_ptag_t
    -01260 libnet_build_mpls(u_int32_t label, u_int8_t experimental, u_int8_t bos,
    -01261 u_int8_t ttl, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    -01262 libnet_ptag_t ptag);
    -01263 
    -01291 libnet_ptag_t
    -01292 libnet_build_ntp(u_int8_t leap_indicator, u_int8_t version, u_int8_t mode,
    -01293 u_int8_t stratum, u_int8_t poll, u_int8_t precision, u_int16_t delay_int,
    -01294 u_int16_t delay_frac, u_int16_t dispersion_int, u_int16_t dispersion_frac,
    -01295 u_int32_t reference_id, u_int32_t ref_ts_int, u_int32_t ref_ts_frac,
    -01296 u_int32_t orig_ts_int, u_int32_t orig_ts_frac, u_int32_t rec_ts_int,
    -01297 u_int32_t rec_ts_frac, u_int32_t xmt_ts_int, u_int32_t xmt_ts_frac,
    -01298 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01299 
    -01307 libnet_ptag_t
    -01308 libnet_build_ospfv2(u_int16_t len, u_int8_t type, u_int32_t rtr_id,
    -01309 u_int32_t area_id, u_int16_t sum, u_int16_t autype, u_int8_t *payload,
    -01310 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01311 
    -01319 libnet_ptag_t
    -01320 libnet_build_ospfv2_hello(u_int32_t netmask, u_int16_t interval, u_int8_t opts,
    -01321 u_int8_t priority, u_int dead_int, u_int32_t des_rtr, u_int32_t bkup_rtr,
    -01322 u_int32_t neighbor, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    -01323 libnet_ptag_t ptag);
    -01324  
    -01332 libnet_ptag_t
    -01333 libnet_build_ospfv2_dbd(u_int16_t dgram_len, u_int8_t opts, u_int8_t type,
    -01334 u_int seqnum, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    -01335 libnet_ptag_t ptag);
    -01336  
    -01344 libnet_ptag_t
    -01345 libnet_build_ospfv2_lsr(u_int type, u_int lsid, u_int32_t advrtr,
    -01346 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01347  
    -01355 libnet_ptag_t
    -01356 libnet_build_ospfv2_lsu(u_int num, u_int8_t *payload, u_int32_t payload_s,
    -01357 libnet_t *l, libnet_ptag_t ptag);
    -01358 
    -01366 libnet_ptag_t
    -01367 libnet_build_ospfv2_lsa(u_int16_t age, u_int8_t opts, u_int8_t type,
    -01368 u_int lsid, u_int32_t advrtr, u_int seqnum, u_int16_t sum, u_int16_t len,
    -01369 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01370  
    -01378 libnet_ptag_t
    -01379 libnet_build_ospfv2_lsa_rtr(u_int16_t flags, u_int16_t num, u_int id,
    -01380 u_int data, u_int8_t type, u_int8_t tos, u_int16_t metric, u_int8_t *payload,
    -01381 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01382  
    -01390 libnet_ptag_t
    -01391 libnet_build_ospfv2_lsa_net(u_int32_t nmask, u_int rtrid, u_int8_t *payload,
    -01392 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01393  
    -01401 libnet_ptag_t
    -01402 libnet_build_ospfv2_lsa_sum(u_int32_t nmask, u_int metric, u_int tos,
    -01403 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01404  
    -01412 libnet_ptag_t
    -01413 libnet_build_ospfv2_lsa_as(u_int32_t nmask, u_int metric, u_int32_t fwdaddr,
    -01414 u_int tag, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    -01415 libnet_ptag_t ptag);
    -01416 
    -01427 libnet_ptag_t
    -01428 libnet_build_data(u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    -01429 libnet_ptag_t ptag);
    -01430 
    -01438 libnet_ptag_t
    -01439 libnet_build_dhcpv4(u_int8_t opcode, u_int8_t htype, u_int8_t hlen,
    -01440 u_int8_t hopcount, u_int32_t xid, u_int16_t secs, u_int16_t flags,
    -01441 u_int32_t cip, u_int32_t yip,  u_int32_t sip, u_int32_t gip, u_int8_t *chaddr,
    -01442 u_int8_t *sname, u_int8_t *file, u_int8_t *payload, u_int32_t payload_s, 
    -01443 libnet_t *l, libnet_ptag_t ptag);
    -01444 
    -01452 libnet_ptag_t
    -01453 libnet_build_bootpv4(u_int8_t opcode, u_int8_t htype, u_int8_t hlen,
    -01454 u_int8_t hopcount, u_int32_t xid, u_int16_t secs, u_int16_t flags,
    -01455 u_int32_t cip, u_int32_t yip,  u_int32_t sip, u_int32_t gip, u_int8_t *chaddr,
    -01456 u_int8_t *sname, u_int8_t *file, u_int8_t *payload, u_int32_t payload_s, 
    -01457 libnet_t *l, libnet_ptag_t ptag);
    -01458 
    -01466 inline u_int32_t
    -01467 libnet_getgre_length(u_int16_t fv);
    -01468 
    -01490 libnet_ptag_t
    -01491 libnet_build_gre(u_int16_t fv, u_int16_t type, u_int16_t sum,
    -01492 u_int16_t offset, u_int32_t key, u_int32_t seq, u_int16_t len,
    -01493 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01494 
    -01516 libnet_ptag_t
    -01517 libnet_build_egre(u_int16_t fv, u_int16_t type, u_int16_t sum,
    -01518 u_int16_t offset, u_int32_t key, u_int32_t seq, u_int16_t len,
    -01519 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01520 
    -01528 libnet_ptag_t
    -01529 libnet_build_gre_sre(u_int16_t af, u_int8_t offset, u_int8_t length,
    -01530 u_int8_t *routing, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    -01531 libnet_ptag_t ptag);
    -01532 
    -01540 libnet_ptag_t
    -01541 libnet_build_gre_last_sre(libnet_t *l, libnet_ptag_t ptag);
    -01542 
    -01564 libnet_ptag_t
    -01565 libnet_build_bgp4_header(u_int8_t marker[LIBNET_BGP4_MARKER_SIZE],
    -01566 u_int16_t len, u_int8_t type, u_int8_t *payload, u_int32_t payload_s,
    -01567 libnet_t *l, libnet_ptag_t ptag);
    -01568 
    -01585 libnet_ptag_t
    -01586 libnet_build_bgp4_open(u_int8_t version, u_int16_t src_as, u_int16_t hold_time,
    -01587 u_int32_t bgp_id, u_int8_t opt_len, u_int8_t *payload, u_int32_t payload_s,
    -01588 libnet_t *l, libnet_ptag_t ptag);
    -01589 
    -01605 libnet_ptag_t
    -01606 libnet_build_bgp4_update(u_int16_t unfeasible_rt_len, u_int8_t *withdrawn_rt,
    -01607 u_int16_t total_path_attr_len, u_int8_t *path_attributes, u_int16_t info_len,
    -01608 u_int8_t *reachability_info, u_int8_t *payload, u_int32_t payload_s,
    -01609 libnet_t *l, libnet_ptag_t ptag);
    -01610 
    -01623 libnet_ptag_t
    -01624 libnet_build_bgp4_notification(u_int8_t err_code, u_int8_t err_subcode,
    -01625 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01626 
    -01649 libnet_ptag_t
    -01650 libnet_build_sebek(u_int32_t magic, u_int16_t version, u_int16_t type, 
    -01651 u_int32_t counter, u_int32_t time_sec, u_int32_t time_usec, u_int32_t pid,
    -01652 u_int32_t uid, u_int32_t fd, u_int8_t cmd[SEBEK_CMD_LENGTH], u_int32_t length, 
    -01653 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01654 
    -01669 libnet_ptag_t
    -01670 libnet_build_link(u_int8_t *dst, u_int8_t *src, u_int8_t *oui, u_int16_t type, 
    -01671 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    -01672 
    -01683 libnet_ptag_t
    -01684 libnet_autobuild_link(u_int8_t *dst, u_int8_t *oui, u_int16_t type,
    -01685 libnet_t *l);
    -01686 
    -01699 int
    -01700 libnet_write(libnet_t *l);
    -01701 
    -01711 u_int32_t
    -01712 libnet_get_ipaddr4(libnet_t *l);
    -01713 
    -01719 struct libnet_in6_addr
    -01720 libnet_get_ipaddr6(libnet_t *l);
    -01721 
    -01730 struct libnet_ether_addr *
    -01731 libnet_get_hwaddr(libnet_t *l);
    -01732 
    -01742 u_int8_t *
    -01743 libnet_hex_aton(int8_t *s, int *len);
    -01744 
    -01760 int
    -01761 libnet_adv_cull_packet(libnet_t *l, u_int8_t **packet, u_int32_t *packet_s);
    -01762 
    -01775 int
    -01776 libnet_adv_cull_header(libnet_t *l, libnet_ptag_t ptag, u_int8_t **header,
    -01777 u_int32_t *header_s);
    -01778 
    -01792 int
    -01793 libnet_adv_write_link(libnet_t *l, u_int8_t *packet, u_int32_t packet_s);
    -01794 
    -01801 void
    -01802 libnet_adv_free_packet(libnet_t *l, u_int8_t *packet);
    -01803 
    -01817 int 
    -01818 libnet_cq_add(libnet_t *l, char *label);
    -01819 
    -01834 libnet_t *
    -01835 libnet_cq_remove(libnet_t *l);
    -01836 
    -01848 libnet_t *
    -01849 libnet_cq_remove_by_label(char *label);
    -01850  
    -01857 int8_t *
    -01858 libnet_cq_getlabel(libnet_t *l);
    -01859  
    -01866 libnet_t *
    -01867 libnet_cq_find_by_label(char *label);
    -01868   
    -01874 void
    -01875 libnet_cq_destroy();
    -01876 
    -01896 libnet_t *
    -01897 libnet_cq_head();
    -01898 
    -01904 int
    -01905 libnet_cq_last();
    -01906 
    -01912 libnet_t *
    -01913 libnet_cq_next();
    -01914 
    -01920 u_int32_t
    -01921 libnet_cq_size();
    -01922 
    -01928 void
    -01929 libnet_diag_dump_context(libnet_t *l);
    -01930 
    -01936 void
    -01937 libnet_diag_dump_pblock(libnet_t *l);
    -01938 
    -01945 char *
    -01946 libnet_diag_dump_pblock_type(u_int8_t type);
    -01947 
    -01959 void
    -01960 libnet_diag_dump_hex(u_int8_t *packet, u_int32_t len, int swap, FILE *stream);
    -01961 
    -01962 /*
    -01963  * [Internal] 
    -01964  */
    -01965 int
    -01966 libnet_write_raw_ipv4(libnet_t *l, u_int8_t *packet, u_int32_t size);
    -01967 
    -01968 /*
    -01969  * [Internal] 
    -01970  */
    -01971 int
    -01972 libnet_write_raw_ipv6(libnet_t *l, u_int8_t *packet, u_int32_t size);
    -01973 
    -01974 /*
    -01975  * [Internal] 
    -01976  */
    -01977 int
    -01978 libnet_write_link(libnet_t *l, u_int8_t *packet, u_int32_t size);
    -01979 
    -01980 #if ((__WIN32__) && !(__CYGWIN__))
    -01981 /*
    -01982  * [Internal] 
    -01983  */
    -01984 SOCKET
    -01985 libnet_open_raw4(libnet_t *l);
    -01986 #else
    -01987 /*
    -01988  * [Internal] 
    -01989  */
    -01990 int
    -01991 libnet_open_raw4(libnet_t *l);
    -01992 #endif
    -01993 
    -01994 /*
    -01995  * [Internal] 
    -01996  */
    -01997 int
    -01998 libnet_close_raw4(libnet_t *l);
    -01999 
    -02000 /*
    -02001  * [Internal] 
    -02002  */
    -02003 int
    -02004 libnet_open_raw6(libnet_t *l);
    -02005        
    -02006 /*
    -02007  * [Internal] 
    -02008  */
    -02009 int
    -02010 libnet_close_raw6(libnet_t *l);
    -02011 
    -02012 /*
    -02013  * [Internal] 
    -02014  */
    -02015 int
    -02016 libnet_select_device(libnet_t *l);
    -02017 
    -02018 /*
    -02019  * [Internal] 
    -02020  */
    -02021 int
    -02022 libnet_open_link(libnet_t *l);
    -02023 
    -02024 /*
    -02025  * [Internal] 
    -02026  */
    -02027 int
    -02028 libnet_close_link(libnet_t *l);
    -02029 
    -02030 /*
    -02031  * [Internal] 
    -02032  */
    -02033 int
    -02034 libnet_do_checksum(libnet_t *l, u_int8_t *packet, int protocol, int len);
    -02035 
    -02036 /*
    -02037  * [Internal] 
    -02038  */
    -02039 u_int32_t
    -02040 libnet_compute_crc(u_int8_t *buf, u_int32_t len);
    -02041 
    -02042 /*
    -02043  * [Internal] 
    -02044  */
    -02045 u_int16_t
    -02046 libnet_ip_check(u_int16_t *addr, int len);
    -02047 
    -02048 /*
    -02049  * [Internal] 
    -02050  */
    -02051 int
    -02052 libnet_in_cksum(u_int16_t *addr, int len);
    -02053 
    -02054 /*
    -02055  * [Internal] 
    -02056  * If ptag is 0, function will create a pblock for the protocol unit type,
    -02057  * append it to the list and return a pointer to it.  If ptag is not 0,
    -02058  * function will search the pblock list for the specified protocol block 
    -02059  * and return a pointer to it.
    -02060  */
    -02061 libnet_pblock_t *
    -02062 libnet_pblock_probe(libnet_t *l, libnet_ptag_t ptag, u_int32_t n, 
    -02063 u_int8_t type);
    -02064 
    -02065 /*
    -02066  * [Internal] 
    -02067  * Function creates the pblock list if l->protocol_blocks == NULL or appends
    -02068  * an entry to the doubly linked list.
    -02069  */
    -02070 libnet_pblock_t *
    -02071 libnet_pblock_new(libnet_t *l, u_int32_t size);
    -02072 
    -02073 /*
    -02074  * [Internal] 
    -02075  * Function swaps two pblocks in memory.
    -02076  */
    -02077 int
    -02078 libnet_pblock_swap(libnet_t *l, libnet_ptag_t ptag1, libnet_ptag_t ptag2);
    -02079 
    -02080 /*
    -02081  * [Internal] 
    -02082  * Function inserts a pblock into the doubly linked list.
    -02083  */
    -02084 int
    -02085 libnet_pblock_insert_before(libnet_t *l, libnet_ptag_t ptag1,
    -02086 libnet_ptag_t ptag2);
    -02087 
    -02088 /*
    -02089  * [Internal] 
    -02090  * Function removes a pblock from context 
    -02091  */
    -02092 void
    -02093 libnet_pblock_delete(libnet_t *l, libnet_pblock_t *p);
    -02094 
    -02095 /*
    -02096  * [Internal] 
    -02097  * Function updates the pblock meta-inforation.  Internally it updates the
    -02098  * ptag with a monotonically increasing variable kept in l.  This way each
    -02099  * pblock has a succesively increasing ptag identifier.
    -02100  */
    -02101 libnet_ptag_t
    -02102 libnet_pblock_update(libnet_t *l, libnet_pblock_t *p, u_int32_t h, 
    -02103 u_int8_t type);
    -02104 
    -02105 /*
    -02106  * [Internal] 
    -02107  * Function locates a given block by it's ptag. 
    -02108  */
    -02109 libnet_pblock_t *
    -02110 libnet_pblock_find(libnet_t *l, libnet_ptag_t ptag);
    -02111 
    -02112 /*
    -02113  * [Internal] 
    -02114  * Function copies protocol block data over.
    -02115  */
    -02116 int
    -02117 libnet_pblock_append(libnet_t *l, libnet_pblock_t *p, u_int8_t *buf,
    -02118 u_int32_t len);
    -02119 
    -02120 /*
    -02121  * [Internal] 
    -02122  * Function sets pblock flags.
    -02123  */
    -02124 void
    -02125 libnet_pblock_setflags(libnet_pblock_t *p, u_int8_t flags);
    -02126 
    -02127 /*
    -02128  * [Internal] 
    -02129  * Function returns the protocol number for the protocol block type.  If
    -02130  * the type is unknown, the function defaults to returning IPPROTO_IP.
    -02131  */
    -02132 int
    -02133 libnet_pblock_p2p(u_int8_t type);
    -02134 
    -02135 /*
    -02136  * [Internal] 
    -02137  * Function assembles the packet for subsequent writing.  Function makes two
    -02138  * passes through the pblock list:
    -02139  */
    -02140 int
    -02141 libnet_pblock_coalesce(libnet_t *l, u_int8_t **packet, u_int32_t *size);
    -02142 
    -02143 #if !(__WIN32__)
    -02144 /*
    -02145  * [Internal] 
    -02146  * By testing if we can retrieve the FLAGS of an iface
    -02147  * we can know if it exists or not and if it is up.
    -02148  */
    -02149 int
    -02150 libnet_check_iface(libnet_t *l);
    -02151 #endif
    -02152 
    -02153 #if defined(__WIN32__)
    -02154 /*
    -02155  * [Internal] 
    -02156  */
    -02157 BYTE *
    -02158 libnet_win32_get_remote_mac(libnet_t *l, DWORD IP);
    -02159 
    -02160 /*
    -02161  * [Internal] 
    -02162  */
    -02163 int
    -02164 libnet_close_link_interface(libnet_t *l);
    -02165 
    -02166 /*
    -02167  * [Internal] 
    -02168  */
    -02169 BYTE * 
    -02170 libnet_win32_read_arp_table(DWORD IP);
    -02171 #endif
    -02172 #endif  /* __LIBNET_FUNCTIONS_H */
    -02173 
    -02174 /* EOF */
    -

    Generated on Wed Mar 10 13:23:37 2004 for libnet by + + + +

    libnet-functions.h

    Go to the documentation of this file.
    00001 /*
    +00002  *  $Id: libnet-functions.h,v 1.42 2004/03/25 18:50:48 mike Exp $
    +00003  *
    +00004  *  libnet-functions.h - function prototypes
    +00005  *
    +00006  *  Copyright (c) 1998 - 2004 Mike D. Schiffman <mike@infonexus.com>
    +00007  *  All rights reserved.
    +00008  *
    +00009  * Redistribution and use in source and binary forms, with or without
    +00010  * modification, are permitted provided that the following conditions
    +00011  * are met:
    +00012  * 1. Redistributions of source code must retain the above copyright
    +00013  *    notice, this list of conditions and the following disclaimer.
    +00014  * 2. Redistributions in binary form must reproduce the above copyright
    +00015  *    notice, this list of conditions and the following disclaimer in the
    +00016  *    documentation and/or other materials provided with the distribution.
    +00017  *
    +00018  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
    +00019  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +00020  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +00021  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
    +00022  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    +00023  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    +00024  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    +00025  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    +00026  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    +00027  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    +00028  * SUCH DAMAGE.
    +00029  *
    +00030  */
    +00031 
    +00032 #ifndef __LIBNET_FUNCTIONS_H
    +00033 #define __LIBNET_FUNCTIONS_H
    +00034 
    +00063 libnet_t *
    +00064 libnet_init(int injection_type, char *device, char *err_buf);
    +00065 
    +00071 void
    +00072 libnet_destroy(libnet_t *l);
    +00073 
    +00080 void
    +00081 libnet_clear_packet(libnet_t *l);
    +00082 
    +00089 void
    +00090 libnet_stats(libnet_t *l, struct libnet_stats *ls);
    +00091 
    +00097 int 
    +00098 libnet_getfd(libnet_t *l);
    +00099 
    +00106 int8_t *
    +00107 libnet_getdevice(libnet_t *l);
    +00108 
    +00117 u_int8_t *
    +00118 libnet_getpbuf(libnet_t *l, libnet_ptag_t ptag);
    +00119 
    +00128 u_int32_t
    +00129 libnet_getpbuf_size(libnet_t *l, libnet_ptag_t ptag);
    +00130 
    +00138 char *
    +00139 libnet_geterror(libnet_t *l);
    +00140 
    +00147 u_int32_t
    +00148 libnet_getpacket_size(libnet_t *l);
    +00149 
    +00155 int
    +00156 libnet_seed_prand(libnet_t *l);
    +00157 
    +00171 u_int32_t
    +00172 libnet_get_prand(int mod);
    +00173 
    +00195 int
    +00196 libnet_toggle_checksum(libnet_t *l, libnet_ptag_t ptag, int mode);
    +00197 
    +00210 char *
    +00211 libnet_addr2name4(u_int32_t in, u_int8_t use_name);
    +00212 
    +00226 u_int32_t
    +00227 libnet_name2addr4(libnet_t *l, char *host_name, u_int8_t use_name);
    +00228 
    +00229 extern const struct libnet_in6_addr in6addr_error;
    +00230 
    +00244 struct libnet_in6_addr
    +00245 libnet_name2addr6(libnet_t *l, char *host_name, u_int8_t use_name);
    +00246 
    +00250 void
    +00251 libnet_addr2name6_r(struct libnet_in6_addr addr, u_int8_t use_name,
    +00252 char *host_name, int host_name_len);
    +00253 
    +00260 u_int8_t *
    +00261 libnet_mac2eth(int8_t *);
    +00262 
    +00278 int
    +00279 libnet_plist_chain_new(libnet_t *l, libnet_plist_t **plist, char *token_list);
    +00280 
    +00292 int
    +00293 libnet_plist_chain_next_pair(libnet_plist_t *plist, u_int16_t *bport, 
    +00294 u_int16_t *eport); 
    +00295 
    +00302 int
    +00303 libnet_plist_chain_dump(libnet_plist_t *plist);
    +00304 
    +00313 char *
    +00314 libnet_plist_chain_dump_string(libnet_plist_t *plist);
    +00315 
    +00321 int
    +00322 libnet_plist_chain_free(libnet_plist_t *plist);
    +00323 
    +00411 libnet_ptag_t
    +00412 libnet_build_802_1q(u_int8_t *dst, u_int8_t *src, u_int16_t tpi,
    +00413 u_int8_t priority, u_int8_t cfi, u_int16_t vlan_id, u_int16_t len_proto,
    +00414 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +00415 
    +00427 libnet_ptag_t
    +00428 libnet_build_802_1x(u_int8_t eap_ver, u_int8_t eap_type, u_int16_t length, 
    +00429 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +00430 
    +00442 libnet_ptag_t
    +00443 libnet_build_802_2(u_int8_t dsap, u_int8_t ssap, u_int8_t control,
    +00444 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +00445 
    +00459 libnet_ptag_t
    +00460 libnet_build_802_2snap(u_int8_t dsap, u_int8_t ssap, u_int8_t control, 
    +00461 u_int8_t *oui, u_int16_t type, u_int8_t *payload, u_int32_t payload_s,
    +00462 libnet_t *l, libnet_ptag_t ptag); 
    +00463 
    +00479 libnet_ptag_t
    +00480 libnet_build_802_3(u_int8_t *dst, u_int8_t *src, u_int16_t len, 
    +00481 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +00482 
    +00498 libnet_ptag_t
    +00499 libnet_build_ethernet(u_int8_t *dst, u_int8_t *src, u_int16_t type, 
    +00500 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +00501 
    +00513 libnet_ptag_t
    +00514 libnet_autobuild_ethernet(u_int8_t *dst, u_int16_t type, libnet_t *l);
    +00515 
    +00532 libnet_ptag_t
    +00533 libnet_build_fddi(u_int8_t fc, u_int8_t *dst, u_int8_t *src, u_int8_t dsap,
    +00534 u_int8_t ssap, u_int8_t cf, u_int8_t *oui, u_int16_t type, u_int8_t *payload,
    +00535 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +00536 
    +00549 libnet_ptag_t
    +00550 libnet_autobuild_fddi(u_int8_t fc, u_int8_t *dst, u_int8_t dsap, u_int8_t ssap,
    +00551 u_int8_t cf, u_int8_t *oui, u_int16_t type, libnet_t *l);
    +00552 
    +00572 libnet_ptag_t
    +00573 libnet_build_arp(u_int16_t hrd, u_int16_t pro, u_int8_t hln, u_int8_t pln,
    +00574 u_int16_t op, u_int8_t *sha, u_int8_t *spa, u_int8_t *tha, u_int8_t *tpa,
    +00575 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +00576 
    +00589 libnet_ptag_t
    +00590 libnet_autobuild_arp(u_int16_t op, u_int8_t *sha, u_int8_t *spa, u_int8_t *tha,
    +00591 u_int8_t *tpa, libnet_t *l);
    +00592 
    +00609 libnet_ptag_t
    +00610 libnet_build_tcp(u_int16_t sp, u_int16_t dp, u_int32_t seq, u_int32_t ack,
    +00611 u_int8_t control, u_int16_t win, u_int16_t sum, u_int16_t urg, u_int16_t len, 
    +00612 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +00613 
    +00629 libnet_ptag_t
    +00630 libnet_build_tcp_options(u_int8_t *options, u_int32_t options_s, libnet_t *l,
    +00631 libnet_ptag_t ptag);
    +00632 
    +00645 libnet_ptag_t
    +00646 libnet_build_udp(u_int16_t sp, u_int16_t dp, u_int16_t len, u_int16_t sum,
    +00647 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +00648 
    +00668 libnet_ptag_t
    +00669 libnet_build_cdp(u_int8_t version, u_int8_t ttl, u_int16_t sum, u_int16_t type,
    +00670 u_int16_t len, u_int8_t *value, u_int8_t *payload, u_int32_t payload_s,
    +00671 libnet_t *l, libnet_ptag_t ptag);
    +00672 
    +00687 libnet_ptag_t
    +00688 libnet_build_icmpv4_echo(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00689 u_int16_t id, u_int16_t seq, u_int8_t *payload, u_int32_t payload_s,
    +00690 libnet_t *l, libnet_ptag_t ptag);
    +00691 
    +00707 libnet_ptag_t
    +00708 libnet_build_icmpv4_mask(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00709 u_int16_t id, u_int16_t seq, u_int32_t mask, u_int8_t *payload,
    +00710 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +00711 
    +00725 libnet_ptag_t
    +00726 libnet_build_icmpv4_unreach(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00727 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +00728 
    +00742 libnet_ptag_t
    +00743 libnet_build_icmpv4_redirect(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00744 u_int32_t gateway, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    +00745 libnet_ptag_t ptag);
    +00746 
    +00761 libnet_ptag_t
    +00762 libnet_build_icmpv4_timeexceed(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00763 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +00764 
    +00782 libnet_ptag_t
    +00783 libnet_build_icmpv4_timestamp(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00784 u_int16_t id, u_int16_t seq, n_time otime, n_time rtime, n_time ttime,
    +00785 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +00786 
    +00801 libnet_ptag_t
    +00802 libnet_build_icmpv6_echo(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00803 u_int16_t id, u_int16_t seq, u_int8_t *payload, u_int32_t payload_s,
    +00804 libnet_t *l, libnet_ptag_t ptag);
    +00805 
    +00819 libnet_ptag_t
    +00820 libnet_build_icmpv6_parampb(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00821 u_int32_t pointer, u_int8_t *payload, u_int32_t payload_s,
    +00822 libnet_t *l, libnet_ptag_t ptag);
    +00823 
    +00837 libnet_ptag_t
    +00838 libnet_build_icmpv6_timxceed(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00839 u_int32_t unused, u_int8_t *payload, u_int32_t payload_s,
    +00840 libnet_t *l, libnet_ptag_t ptag);
    +00841 
    +00855 libnet_ptag_t
    +00856 libnet_build_icmpv6_unreach(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00857 u_int32_t unused, u_int8_t *payload, u_int32_t payload_s,
    +00858 libnet_t *l, libnet_ptag_t ptag);
    +00859 
    +00873 libnet_ptag_t
    +00874 libnet_build_icmpv6_toobig(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00875 u_int32_t mtu, u_int8_t *payload, u_int32_t payload_s,
    +00876 libnet_t *l, libnet_ptag_t ptag);
    +00877 
    +00893 libnet_ptag_t
    +00894 libnet_build_icmpv6_ni(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00895 u_int16_t qtype, u_int16_t flags, u_int8_t * nonce, u_int8_t *payload, 
    +00896 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +00897 
    +00916 libnet_ptag_t
    +00917 libnet_build_icmpv6_ra(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00918 u_int8_t chl, u_int8_t m, u_int8_t o, u_int16_t rlf, u_int32_t rct,
    +00919 u_int16_t rtt, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, 
    +00920 libnet_ptag_t ptag);
    +00921 
    +00935 libnet_ptag_t
    +00936 libnet_build_icmpv6_rs(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00937 u_int32_t unused, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, 
    +00938 libnet_ptag_t ptag);
    +00939 
    +00954 libnet_ptag_t
    +00955 libnet_build_icmpv6_ns(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00956 u_int32_t reserved, struct libnet_in6_addr target, u_int8_t *payload, 
    +00957 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +00958 
    +00975 libnet_ptag_t
    +00976 libnet_build_icmpv6_na(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00977 u_int8_t router, u_int8_t solicited, u_int8_t override, 
    +00978 struct libnet_in6_addr target, u_int8_t *payload, 
    +00979 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +00980 
    +00981 
    +00997 libnet_ptag_t
    +00998 libnet_build_icmpv6_redirect(u_int8_t type, u_int8_t code, u_int16_t sum,
    +00999 u_int32_t unused, struct libnet_in6_addr, struct libnet_in6_addr, 
    +01000 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01001 
    +01014 libnet_ptag_t
    +01015 libnet_build_icmpv6_opt_tlla(u_int8_t type, u_int8_t length,
    +01016         u_int8_t *target, u_int8_t *payload, u_int32_t payload_s, 
    +01017         libnet_t *l, libnet_ptag_t ptag);
    +01018 
    +01031 libnet_ptag_t
    +01032 libnet_build_icmpv6_opt_slla(u_int8_t type, u_int8_t length,
    +01033         u_int8_t *source, u_int8_t *payload, u_int32_t payload_s, 
    +01034         libnet_t *l, libnet_ptag_t ptag);
    +01035 
    +01054 libnet_ptag_t
    +01055 libnet_build_icmpv6_opt_pi(u_int8_t type, u_int8_t length, u_int8_t prefixlen,
    +01056         u_int8_t ol, u_int8_t a, u_int32_t validlt, u_int32_t preferredlt,
    +01057         u_int32_t reserved, struct libnet_in6_addr prefix,
    +01058         u_int32_t payload_s, u_int8_t *payload, libnet_t *l, 
    +01059         libnet_ptag_t ptag);
    +01060 
    +01074 libnet_ptag_t
    +01075 libnet_build_icmpv6_opt_rh(u_int8_t type, u_int8_t length, u_int16_t r1,
    +01076         u_int32_t r2, u_int32_t payload_s, u_int8_t *payload, libnet_t *l, 
    +01077         libnet_ptag_t ptag);
    +01078 
    +01092 libnet_ptag_t
    +01093 libnet_build_icmpv6_opt_mtu(u_int8_t type, u_int8_t length, u_int16_t r,
    +01094         u_int32_t mtu, u_int32_t payload_s, u_int8_t *payload, libnet_t *l, 
    +01095         libnet_ptag_t ptag);
    +01096 
    +01109 libnet_ptag_t
    +01110 libnet_build_igmp(u_int8_t type, u_int8_t code, u_int16_t sum, u_int32_t ip,
    +01111 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01112 
    +01130 libnet_ptag_t 
    +01131 libnet_build_ipv4(u_int16_t len, u_int8_t tos, u_int16_t id, u_int16_t frag,
    +01132 u_int8_t ttl, u_int8_t prot, u_int16_t sum, u_int32_t src, u_int32_t dst,
    +01133 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01134 
    +01149 libnet_ptag_t 
    +01150 libnet_build_ipv4_options(u_int8_t *options, u_int32_t options_s, libnet_t *l,
    +01151 libnet_ptag_t ptag);
    +01152 
    +01165 libnet_ptag_t
    +01166 libnet_autobuild_ipv4(u_int16_t len, u_int8_t prot, u_int32_t dst, libnet_t *l);
    +01167 
    +01183 libnet_ptag_t
    +01184 libnet_build_ipv6(u_int8_t tc, u_int32_t fl, u_int16_t len, u_int8_t nh,
    +01185 u_int8_t hl, struct libnet_in6_addr src, struct libnet_in6_addr dst, 
    +01186 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01187 
    +01201 libnet_ptag_t
    +01202 libnet_build_ipv6_frag(u_int8_t nh, u_int8_t reserved, u_int16_t offset,
    +01203 u_int8_t m, u_int32_t id, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    +01204 libnet_ptag_t ptag);
    +01205 
    +01223 libnet_ptag_t
    +01224 libnet_build_ipv6_routing(u_int8_t nh, u_int8_t len, u_int8_t rtype,
    +01225 u_int8_t segments, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    +01226 libnet_ptag_t ptag);
    +01227 
    +01241 libnet_ptag_t
    +01242 libnet_build_ipv6_destopts(u_int8_t nh, u_int8_t len, u_int8_t *payload,
    +01243 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01244 
    +01259 libnet_ptag_t
    +01260 libnet_build_ipv6_hbhopts(u_int8_t nh, u_int8_t len, u_int8_t *payload,
    +01261 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01262 
    +01274 libnet_ptag_t
    +01275 libnet_autobuild_ipv6(u_int16_t len, u_int8_t nh, struct libnet_in6_addr dst,
    +01276 libnet_t *l);
    +01277 
    +01295 libnet_ptag_t
    +01296 libnet_build_isl(u_int8_t *dhost, u_int8_t type, u_int8_t user, u_int8_t *shost,
    +01297 u_int16_t len, u_int8_t *snap, u_int16_t vid, u_int16_t index,
    +01298 u_int16_t reserved, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    +01299 libnet_ptag_t ptag);
    +01300 
    +01312 libnet_ptag_t
    +01313 libnet_build_ipsec_esp_hdr(u_int32_t spi, u_int32_t seq, u_int32_t iv,
    +01314 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01315 
    +01327 libnet_ptag_t
    +01328 libnet_build_ipsec_esp_ftr(u_int8_t len, u_int8_t nh, int8_t *auth,
    +01329 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01330 
    +01345 libnet_ptag_t
    +01346 libnet_build_ipsec_ah(u_int8_t nh, u_int8_t len, u_int16_t res,
    +01347 u_int32_t spi, u_int32_t seq, u_int32_t auth, u_int8_t *payload,
    +01348 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01349 
    +01361 libnet_ptag_t
    +01362 libnet_build_ipcomp(u_int8_t nx, u_int8_t flags, u_int16_t cpi,
    +01363 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01364 
    +01380 libnet_ptag_t
    +01381 libnet_build_dnsv4(u_int16_t h_len, u_int16_t id, u_int16_t flags,
    +01382 u_int16_t num_q, u_int16_t num_anws_rr, u_int16_t num_auth_rr,
    +01383 u_int16_t num_addi_rr, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    +01384 libnet_ptag_t ptag);
    +01385 
    +01403 libnet_ptag_t
    +01404 libnet_build_rip(u_int8_t cmd, u_int8_t version, u_int16_t rd, u_int16_t af,
    +01405 u_int16_t rt, u_int32_t addr, u_int32_t mask, u_int32_t next_hop,
    +01406 u_int32_t metric, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    +01407 libnet_ptag_t ptag);
    +01408 
    +01431 libnet_ptag_t
    +01432 libnet_build_rpc_call(u_int32_t rm, u_int32_t xid, u_int32_t prog_num,
    +01433 u_int32_t prog_vers, u_int32_t procedure, u_int32_t cflavor, u_int32_t clength,
    +01434 u_int8_t *cdata, u_int32_t vflavor, u_int32_t vlength, u_int8_t *vdata,
    +01435 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01436 
    +01459 libnet_ptag_t
    +01460 libnet_build_stp_conf(u_int16_t id, u_int8_t version, u_int8_t bpdu_type,
    +01461 u_int8_t flags, u_int8_t *root_id, u_int32_t root_pc, u_int8_t *bridge_id,
    +01462 u_int16_t port_id, u_int16_t message_age, u_int16_t max_age, 
    +01463 u_int16_t hello_time, u_int16_t f_delay, u_int8_t *payload,
    +01464 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01465 
    +01479 libnet_ptag_t
    +01480 libnet_build_stp_tcn(u_int16_t id, u_int8_t version, u_int8_t bpdu_type,
    +01481 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01482 
    +01500 libnet_ptag_t
    +01501 libnet_build_token_ring(u_int8_t ac, u_int8_t fc, u_int8_t *dst, u_int8_t *src,
    +01502 u_int8_t dsap, u_int8_t ssap, u_int8_t cf, u_int8_t *oui, u_int16_t type,
    +01503 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01504 
    +01518 libnet_ptag_t
    +01519 libnet_autobuild_token_ring(u_int8_t ac, u_int8_t fc, u_int8_t *dst, 
    +01520 u_int8_t dsap, u_int8_t ssap, u_int8_t cf, u_int8_t *oui, u_int16_t type,
    +01521 libnet_t *l);
    +01522 
    +01542 libnet_ptag_t
    +01543 libnet_build_vrrp(u_int8_t version, u_int8_t type, u_int8_t vrouter_id,
    +01544 u_int8_t priority, u_int8_t ip_count, u_int8_t auth_type, u_int8_t advert_int,
    +01545 u_int16_t sum, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    +01546 libnet_ptag_t ptag);
    +01547 
    +01560 libnet_ptag_t
    +01561 libnet_build_mpls(u_int32_t label, u_int8_t experimental, u_int8_t bos,
    +01562 u_int8_t ttl, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    +01563 libnet_ptag_t ptag);
    +01564 
    +01592 libnet_ptag_t
    +01593 libnet_build_ntp(u_int8_t leap_indicator, u_int8_t version, u_int8_t mode,
    +01594 u_int8_t stratum, u_int8_t poll, u_int8_t precision, u_int16_t delay_int,
    +01595 u_int16_t delay_frac, u_int16_t dispersion_int, u_int16_t dispersion_frac,
    +01596 u_int32_t reference_id, u_int32_t ref_ts_int, u_int32_t ref_ts_frac,
    +01597 u_int32_t orig_ts_int, u_int32_t orig_ts_frac, u_int32_t rec_ts_int,
    +01598 u_int32_t rec_ts_frac, u_int32_t xmt_ts_int, u_int32_t xmt_ts_frac,
    +01599 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01600 
    +01608 libnet_ptag_t
    +01609 libnet_build_ospfv2(u_int16_t len, u_int8_t type, u_int32_t rtr_id,
    +01610 u_int32_t area_id, u_int16_t sum, u_int16_t autype, u_int8_t *payload,
    +01611 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01612 
    +01620 libnet_ptag_t
    +01621 libnet_build_ospfv2_hello(u_int32_t netmask, u_int16_t interval, u_int8_t opts,
    +01622 u_int8_t priority, u_int dead_int, u_int32_t des_rtr, u_int32_t bkup_rtr,
    +01623 u_int32_t neighbor, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    +01624 libnet_ptag_t ptag);
    +01625  
    +01633 libnet_ptag_t
    +01634 libnet_build_ospfv2_dbd(u_int16_t dgram_len, u_int8_t opts, u_int8_t type,
    +01635 u_int seqnum, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    +01636 libnet_ptag_t ptag);
    +01637  
    +01645 libnet_ptag_t
    +01646 libnet_build_ospfv2_lsr(u_int type, u_int lsid, u_int32_t advrtr,
    +01647 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01648  
    +01656 libnet_ptag_t
    +01657 libnet_build_ospfv2_lsu(u_int num, u_int8_t *payload, u_int32_t payload_s,
    +01658 libnet_t *l, libnet_ptag_t ptag);
    +01659 
    +01667 libnet_ptag_t
    +01668 libnet_build_ospfv2_lsa(u_int16_t age, u_int8_t opts, u_int8_t type,
    +01669 u_int lsid, u_int32_t advrtr, u_int seqnum, u_int16_t sum, u_int16_t len,
    +01670 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01671  
    +01679 libnet_ptag_t
    +01680 libnet_build_ospfv2_lsa_rtr(u_int16_t flags, u_int16_t num, u_int id,
    +01681 u_int data, u_int8_t type, u_int8_t tos, u_int16_t metric, u_int8_t *payload,
    +01682 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01683  
    +01691 libnet_ptag_t
    +01692 libnet_build_ospfv2_lsa_net(u_int32_t nmask, u_int rtrid, u_int8_t *payload,
    +01693 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01694  
    +01702 libnet_ptag_t
    +01703 libnet_build_ospfv2_lsa_sum(u_int32_t nmask, u_int metric, u_int tos,
    +01704 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01705  
    +01713 libnet_ptag_t
    +01714 libnet_build_ospfv2_lsa_as(u_int32_t nmask, u_int metric, u_int32_t fwdaddr,
    +01715 u_int tag, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    +01716 libnet_ptag_t ptag);
    +01717 
    +01728 libnet_ptag_t
    +01729 libnet_build_data(u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    +01730 libnet_ptag_t ptag);
    +01731 
    +01739 libnet_ptag_t
    +01740 libnet_build_dhcpv4(u_int8_t opcode, u_int8_t htype, u_int8_t hlen,
    +01741 u_int8_t hopcount, u_int32_t xid, u_int16_t secs, u_int16_t flags,
    +01742 u_int32_t cip, u_int32_t yip,  u_int32_t sip, u_int32_t gip, u_int8_t *chaddr,
    +01743 u_int8_t *sname, u_int8_t *file, u_int8_t *payload, u_int32_t payload_s, 
    +01744 libnet_t *l, libnet_ptag_t ptag);
    +01745 
    +01753 libnet_ptag_t
    +01754 libnet_build_bootpv4(u_int8_t opcode, u_int8_t htype, u_int8_t hlen,
    +01755 u_int8_t hopcount, u_int32_t xid, u_int16_t secs, u_int16_t flags,
    +01756 u_int32_t cip, u_int32_t yip,  u_int32_t sip, u_int32_t gip, u_int8_t *chaddr,
    +01757 u_int8_t *sname, u_int8_t *file, u_int8_t *payload, u_int32_t payload_s, 
    +01758 libnet_t *l, libnet_ptag_t ptag);
    +01759 
    +01767 inline u_int32_t
    +01768 libnet_getgre_length(u_int16_t fv);
    +01769 
    +01791 libnet_ptag_t
    +01792 libnet_build_gre(u_int16_t fv, u_int16_t type, u_int16_t sum,
    +01793 u_int16_t offset, u_int32_t key, u_int32_t seq, u_int16_t len,
    +01794 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01795 
    +01817 libnet_ptag_t
    +01818 libnet_build_egre(u_int16_t fv, u_int16_t type, u_int16_t sum,
    +01819 u_int16_t offset, u_int32_t key, u_int32_t seq, u_int16_t len,
    +01820 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01821 
    +01829 libnet_ptag_t
    +01830 libnet_build_gre_sre(u_int16_t af, u_int8_t offset, u_int8_t length,
    +01831 u_int8_t *routing, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
    +01832 libnet_ptag_t ptag);
    +01833 
    +01841 libnet_ptag_t
    +01842 libnet_build_gre_last_sre(libnet_t *l, libnet_ptag_t ptag);
    +01843 
    +01865 libnet_ptag_t
    +01866 libnet_build_bgp4_header(u_int8_t marker[LIBNET_BGP4_MARKER_SIZE],
    +01867 u_int16_t len, u_int8_t type, u_int8_t *payload, u_int32_t payload_s,
    +01868 libnet_t *l, libnet_ptag_t ptag);
    +01869 
    +01886 libnet_ptag_t
    +01887 libnet_build_bgp4_open(u_int8_t version, u_int16_t src_as, u_int16_t hold_time,
    +01888 u_int32_t bgp_id, u_int8_t opt_len, u_int8_t *payload, u_int32_t payload_s,
    +01889 libnet_t *l, libnet_ptag_t ptag);
    +01890 
    +01906 libnet_ptag_t
    +01907 libnet_build_bgp4_update(u_int16_t unfeasible_rt_len, u_int8_t *withdrawn_rt,
    +01908 u_int16_t total_path_attr_len, u_int8_t *path_attributes, u_int16_t info_len,
    +01909 u_int8_t *reachability_info, u_int8_t *payload, u_int32_t payload_s,
    +01910 libnet_t *l, libnet_ptag_t ptag);
    +01911 
    +01924 libnet_ptag_t
    +01925 libnet_build_bgp4_notification(u_int8_t err_code, u_int8_t err_subcode,
    +01926 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01927 
    +01949 libnet_ptag_t
    +01950 libnet_build_sebek(u_int32_t magic, u_int16_t version, u_int16_t type, 
    +01951 u_int32_t counter, u_int32_t time_sec, u_int32_t time_usec, u_int32_t pid,
    +01952 u_int32_t uid, u_int32_t fd, u_int8_t cmd[SEBEK_CMD_LENGTH], u_int32_t length, 
    +01953 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01954 
    +01969 libnet_ptag_t
    +01970 libnet_build_link(u_int8_t *dst, u_int8_t *src, u_int8_t *oui, u_int16_t type, 
    +01971 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
    +01972 
    +01983 libnet_ptag_t
    +01984 libnet_autobuild_link(u_int8_t *dst, u_int8_t *oui, u_int16_t type,
    +01985 libnet_t *l);
    +01986 
    +01999 int
    +02000 libnet_write(libnet_t *l);
    +02001 
    +02011 u_int32_t
    +02012 libnet_get_ipaddr4(libnet_t *l);
    +02013 
    +02022 struct libnet_in6_addr
    +02023 libnet_get_ipaddr6(libnet_t *l);
    +02024 
    +02033 struct libnet_ether_addr *
    +02034 libnet_get_hwaddr(libnet_t *l);
    +02035 
    +02045 u_int8_t *
    +02046 libnet_hex_aton(int8_t *s, int *len);
    +02047 
    +02063 int
    +02064 libnet_adv_cull_packet(libnet_t *l, u_int8_t **packet, u_int32_t *packet_s);
    +02065 
    +02078 int
    +02079 libnet_adv_cull_header(libnet_t *l, libnet_ptag_t ptag, u_int8_t **header,
    +02080 u_int32_t *header_s);
    +02081 
    +02095 int
    +02096 libnet_adv_write_link(libnet_t *l, u_int8_t *packet, u_int32_t packet_s);
    +02097 
    +02104 void
    +02105 libnet_adv_free_packet(libnet_t *l, u_int8_t *packet);
    +02106 
    +02120 int 
    +02121 libnet_cq_add(libnet_t *l, char *label);
    +02122 
    +02137 libnet_t *
    +02138 libnet_cq_remove(libnet_t *l);
    +02139 
    +02151 libnet_t *
    +02152 libnet_cq_remove_by_label(char *label);
    +02153  
    +02160 int8_t *
    +02161 libnet_cq_getlabel(libnet_t *l);
    +02162  
    +02169 libnet_t *
    +02170 libnet_cq_find_by_label(char *label);
    +02171   
    +02177 void
    +02178 libnet_cq_destroy();
    +02179 
    +02199 libnet_t *
    +02200 libnet_cq_head();
    +02201 
    +02207 int
    +02208 libnet_cq_last();
    +02209 
    +02215 libnet_t *
    +02216 libnet_cq_next();
    +02217 
    +02223 u_int32_t
    +02224 libnet_cq_size();
    +02225 
    +02231 void
    +02232 libnet_diag_dump_context(libnet_t *l);
    +02233 
    +02239 void
    +02240 libnet_diag_dump_pblock(libnet_t *l);
    +02241 
    +02248 char *
    +02249 libnet_diag_dump_pblock_type(u_int8_t type);
    +02250 
    +02262 void
    +02263 libnet_diag_dump_hex(u_int8_t *packet, u_int32_t len, int swap, FILE *stream);
    +02264 
    +02272 char *
    +02273 libnet_dump_packet(libnet_t *);
    +02274 
    +02275 /*
    +02276  * [Internal] 
    +02277  */
    +02278 int
    +02279 libnet_write_raw_ipv4(libnet_t *l, u_int8_t *packet, u_int32_t size);
    +02280 
    +02281 /*
    +02282  * [Internal] 
    +02283  */
    +02284 int
    +02285 libnet_write_raw_ipv6(libnet_t *l, u_int8_t *packet, u_int32_t size);
    +02286 
    +02287 /*
    +02288  * [Internal] 
    +02289  */
    +02290 int
    +02291 libnet_write_link(libnet_t *l, u_int8_t *packet, u_int32_t size);
    +02292 
    +02293 #if ((__WIN32__) && !(__CYGWIN__))
    +02294 /*
    +02295  * [Internal] 
    +02296  */
    +02297 SOCKET
    +02298 libnet_open_raw4(libnet_t *l);
    +02299 #else
    +02300 /*
    +02301  * [Internal] 
    +02302  */
    +02303 int
    +02304 libnet_open_raw4(libnet_t *l);
    +02305 #endif
    +02306 
    +02307 /*
    +02308  * [Internal] 
    +02309  */
    +02310 int
    +02311 libnet_close_raw4(libnet_t *l);
    +02312 
    +02313 /*
    +02314  * [Internal] 
    +02315  */
    +02316 int
    +02317 libnet_open_raw6(libnet_t *l);
    +02318        
    +02319 /*
    +02320  * [Internal] 
    +02321  */
    +02322 int
    +02323 libnet_close_raw6(libnet_t *l);
    +02324 
    +02325 /*
    +02326  * [Internal] 
    +02327  */
    +02328 int
    +02329 libnet_select_device(libnet_t *l);
    +02330 
    +02331 /*
    +02332  * [Internal] 
    +02333  */
    +02334 int
    +02335 libnet_open_link(libnet_t *l);
    +02336 
    +02337 /*
    +02338  * [Internal] 
    +02339  */
    +02340 int
    +02341 libnet_close_link(libnet_t *l);
    +02342 
    +02343 /*
    +02344  * [Internal] 
    +02345  */
    +02346 int
    +02347 libnet_do_checksum(libnet_t *l, u_int8_t *packet, int protocol, int len);
    +02348 
    +02349 /*
    +02350  * [Internal]
    +02351  */
    +02352 int
    +02353 libnet_payload_off(u_int8_t *buf, int len);
    +02354 
    +02355 /*
    +02356  * [Internal] 
    +02357  */
    +02358 u_int32_t
    +02359 libnet_compute_crc(u_int8_t *buf, u_int32_t len);
    +02360 
    +02361 /*
    +02362  * [Internal] 
    +02363  */
    +02364 u_int16_t
    +02365 libnet_ip_check(u_int16_t *addr, int len);
    +02366 
    +02367 /*
    +02368  * [Internal] 
    +02369  */
    +02370 int
    +02371 libnet_in_cksum(u_int16_t *addr, int len);
    +02372 
    +02373 /*
    +02374  * [Internal] 
    +02375  * If ptag is 0, function will create a pblock for the protocol unit type,
    +02376  * append it to the list and return a pointer to it.  If ptag is not 0,
    +02377  * function will search the pblock list for the specified protocol block 
    +02378  * and return a pointer to it.
    +02379  */
    +02380 libnet_pblock_t *
    +02381 libnet_pblock_probe(libnet_t *l, libnet_ptag_t ptag, u_int32_t n, 
    +02382 u_int8_t type);
    +02383 
    +02384 /*
    +02385  * [Internal] 
    +02386  * Function creates the pblock list if l->protocol_blocks == NULL or appends
    +02387  * an entry to the doubly linked list.
    +02388  */
    +02389 libnet_pblock_t *
    +02390 libnet_pblock_new(libnet_t *l, u_int32_t size);
    +02391 
    +02392 /*
    +02393  * [Internal] 
    +02394  * Function swaps two pblocks in memory.
    +02395  */
    +02396 int
    +02397 libnet_pblock_swap(libnet_t *l, libnet_ptag_t ptag1, libnet_ptag_t ptag2);
    +02398 
    +02399 /*
    +02400  * [Internal] 
    +02401  * Function inserts a pblock into the doubly linked list.
    +02402  */
    +02403 int
    +02404 libnet_pblock_insert_before(libnet_t *l, libnet_ptag_t ptag1,
    +02405 libnet_ptag_t ptag2);
    +02406 
    +02407 /*
    +02408  * [Internal] 
    +02409  * Function removes a pblock from context 
    +02410  */
    +02411 void
    +02412 libnet_pblock_delete(libnet_t *l, libnet_pblock_t *p);
    +02413 
    +02414 /*
    +02415  * [Internal] 
    +02416  * Function updates the pblock meta-inforation.  Internally it updates the
    +02417  * ptag with a monotonically increasing variable kept in l.  This way each
    +02418  * pblock has a succesively increasing ptag identifier.
    +02419  */
    +02420 libnet_ptag_t
    +02421 libnet_pblock_update(libnet_t *l, libnet_pblock_t *p, u_int32_t h, 
    +02422 u_int8_t type);
    +02423 
    +02424 
    +02425  /*
    +02426   * [Internal]
    +02427   * Checksums are a real pain in the <beep>!!!
    +02428   * Function updates referer used to compute the checksum. All
    +02429   * pblock need to know where is their referer (ie IP header).
    +02430   * So, this function is called each time a new IP header is inserted.
    +02431   * It updates the ip_pos field (referer) of each subsequent pblock.
    +02432   */
    +02433 void
    +02434 libnet_pblock_record_ip_offset(libnet_t *l, u_int32_t offset);
    +02435 
    +02436 /*
    +02437  * [Internal] 
    +02438  * Function locates a given block by it's ptag. 
    +02439  */
    +02440 libnet_pblock_t *
    +02441 libnet_pblock_find(libnet_t *l, libnet_ptag_t ptag);
    +02442 
    +02443 /*
    +02444  * [Internal] 
    +02445  * Function copies protocol block data over.
    +02446  */
    +02447 int
    +02448 libnet_pblock_append(libnet_t *l, libnet_pblock_t *p, u_int8_t *buf,
    +02449 u_int32_t len);
    +02450 
    +02451 /*
    +02452  * [Internal] 
    +02453  * Function sets pblock flags.
    +02454  */
    +02455 void
    +02456 libnet_pblock_setflags(libnet_pblock_t *p, u_int8_t flags);
    +02457 
    +02458 /*
    +02459  * [Internal] 
    +02460  * Function returns the protocol number for the protocol block type.  If
    +02461  * the type is unknown, the function defaults to returning IPPROTO_IP.
    +02462  */
    +02463 int
    +02464 libnet_pblock_p2p(u_int8_t type);
    +02465 
    +02466 /*
    +02467  * [Internal] 
    +02468  * Function assembles the packet for subsequent writing.  Function makes two
    +02469  * passes through the pblock list:
    +02470  */
    +02471 int
    +02472 libnet_pblock_coalesce(libnet_t *l, u_int8_t **packet, u_int32_t *size);
    +02473 
    +02474 #if !(__WIN32__)
    +02475 /*
    +02476  * [Internal] 
    +02477  * By testing if we can retrieve the FLAGS of an iface
    +02478  * we can know if it exists or not and if it is up.
    +02479  */
    +02480 int
    +02481 libnet_check_iface(libnet_t *l);
    +02482 #endif
    +02483 
    +02484 #if defined(__WIN32__)
    +02485 /*
    +02486  * [Internal] 
    +02487  */
    +02488 BYTE *
    +02489 libnet_win32_get_remote_mac(libnet_t *l, DWORD IP);
    +02490 
    +02491 /*
    +02492  * [Internal] 
    +02493  */
    +02494 int
    +02495 libnet_close_link_interface(libnet_t *l);
    +02496 
    +02497 /*
    +02498  * [Internal] 
    +02499  */
    +02500 BYTE * 
    +02501 libnet_win32_read_arp_table(DWORD IP);
    +02502 #endif
    +02503 #endif  /* __LIBNET_FUNCTIONS_H */
    +02504 
    +02505 /* EOF */
    +

    Generated on Sat Aug 19 10:56:42 2006 for libnet by  -doxygen -1.3.4
    +doxygen 1.4.7
    diff -ru libnet/doc/html/libnet-functions_8h.html libnet/doc/html/libnet-functions_8h.html --- libnet/doc/html/libnet-functions_8h.html Wed Mar 10 22:23:38 2004 +++ libnet/doc/html/libnet-functions_8h.html Sat Aug 19 10:56:44 2006 @@ -2,8843 +2,9180 @@ libnet: libnet-functions.h File Reference + - -
    Main Page | Data Structures | File List | Data Fields | Globals
    -

    libnet-functions.h File Reference

    libnet exported function prototypes -More... + +
    +
    +
    +
    +

    libnet-functions.h File Reference

    libnet exported function prototypes More...

    -Go to the source code of this file. +This graph shows which files directly or indirectly include this file:

    + + + + +

    +Go to the source code of this file.

    - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + + + + + + + + + + + + + + +

    Functions

    libnet_t * libnet_init (int injection_type, char *device, char *err_buf)

    Functions

    libnet_t * libnet_init (int injection_type, char *device, char *err_buf)
    void libnet_destroy (libnet_t *l)
    void libnet_clear_packet (libnet_t *l)
    void libnet_stats (libnet_t *l, struct libnet_stats *ls)
    int libnet_getfd (libnet_t *l)
    int8_t * libnet_getdevice (libnet_t *l)
    u_int8_t * libnet_getpbuf (libnet_t *l, libnet_ptag_t ptag)
    u_int32_t libnet_getpbuf_size (libnet_t *l, libnet_ptag_t ptag)
    char * libnet_geterror (libnet_t *l)
    u_int32_t libnet_getpacket_size (libnet_t *l)
    int libnet_seed_prand (libnet_t *l)
    u_int32_t libnet_get_prand (int mod)
    int libnet_toggle_checksum (libnet_t *l, libnet_ptag_t ptag, int mode)
    char * libnet_addr2name4 (u_int32_t in, u_int8_t use_name)
    u_int32_t libnet_name2addr4 (libnet_t *l, char *host_name, u_int8_t use_name)
    void libnet_destroy (libnet_t *l)
    libnet_in6_addr libnet_name2addr6 (libnet_t *l, char *host_name, u_int8_t use_name)
    void libnet_clear_packet (libnet_t *l)
    void libnet_addr2name6_r (struct libnet_in6_addr addr, u_int8_t use_name, char *host_name, int host_name_len)
    void libnet_stats (libnet_t *l, struct libnet_stats *ls)
    u_int8_t * libnet_mac2eth (int8_t *)
    int libnet_getfd (libnet_t *l)
    int libnet_plist_chain_new (libnet_t *l, libnet_plist_t **plist, char *token_list)
    int8_t * libnet_getdevice (libnet_t *l)
    int libnet_plist_chain_next_pair (libnet_plist_t *plist, u_int16_t *bport, u_int16_t *eport)
    u_int8_t * libnet_getpbuf (libnet_t *l, libnet_ptag_t ptag)
    int libnet_plist_chain_dump (libnet_plist_t *plist)
    u_int32_t libnet_getpbuf_size (libnet_t *l, libnet_ptag_t ptag)
    char * libnet_plist_chain_dump_string (libnet_plist_t *plist)
    char * libnet_geterror (libnet_t *l)
    int libnet_plist_chain_free (libnet_plist_t *plist)
    u_int32_t libnet_getpacket_size (libnet_t *l)
    libnet_ptag_t libnet_build_802_1q (u_int8_t *dst, u_int8_t *src, u_int16_t tpi, u_int8_t priority, u_int8_t cfi, u_int16_t vlan_id, u_int16_t len_proto, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    int libnet_seed_prand (libnet_t *l)
    libnet_ptag_t libnet_build_802_1x (u_int8_t eap_ver, u_int8_t eap_type, u_int16_t length, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    u_int32_t libnet_get_prand (int mod)
    libnet_ptag_t libnet_build_802_2 (u_int8_t dsap, u_int8_t ssap, u_int8_t control, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    int libnet_toggle_checksum (libnet_t *l, libnet_ptag_t ptag, int mode)
    libnet_ptag_t libnet_build_802_2snap (u_int8_t dsap, u_int8_t ssap, u_int8_t control, u_int8_t *oui, u_int16_t type, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    char * libnet_addr2name4 (u_int32_t in, u_int8_t use_name)
    libnet_ptag_t libnet_build_802_3 (u_int8_t *dst, u_int8_t *src, u_int16_t len, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    u_int32_t libnet_name2addr4 (libnet_t *l, char *host_name, u_int8_t use_name)
    libnet_ptag_t libnet_build_ethernet (u_int8_t *dst, u_int8_t *src, u_int16_t type, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_in6_addr libnet_name2addr6 (libnet_t *l, char *host_name, u_int8_t use_name)
    libnet_ptag_t libnet_autobuild_ethernet (u_int8_t *dst, u_int16_t type, libnet_t *l)
    void libnet_addr2name6_r (struct libnet_in6_addr addr, u_int8_t use_name, char *host_name, int host_name_len)
    libnet_ptag_t libnet_build_fddi (u_int8_t fc, u_int8_t *dst, u_int8_t *src, u_int8_t dsap, u_int8_t ssap, u_int8_t cf, u_int8_t *oui, u_int16_t type, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    int libnet_plist_chain_new (libnet_t *l, libnet_plist_t **plist, char *token_list)
    libnet_ptag_t libnet_autobuild_fddi (u_int8_t fc, u_int8_t *dst, u_int8_t dsap, u_int8_t ssap, u_int8_t cf, u_int8_t *oui, u_int16_t type, libnet_t *l)
    int libnet_plist_chain_next_pair (libnet_plist_t *plist, u_int16_t *bport, u_int16_t *eport)
    libnet_ptag_t libnet_build_arp (u_int16_t hrd, u_int16_t pro, u_int8_t hln, u_int8_t pln, u_int16_t op, u_int8_t *sha, u_int8_t *spa, u_int8_t *tha, u_int8_t *tpa, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    int libnet_plist_chain_dump (libnet_plist_t *plist)
    libnet_ptag_t libnet_autobuild_arp (u_int16_t op, u_int8_t *sha, u_int8_t *spa, u_int8_t *tha, u_int8_t *tpa, libnet_t *l)
    char * libnet_plist_chain_dump_string (libnet_plist_t *plist)
    libnet_ptag_t libnet_build_tcp (u_int16_t sp, u_int16_t dp, u_int32_t seq, u_int32_t ack, u_int8_t control, u_int16_t win, u_int16_t sum, u_int16_t urg, u_int16_t len, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    int libnet_plist_chain_free (libnet_plist_t *plist)
    libnet_ptag_t libnet_build_tcp_options (u_int8_t *options, u_int32_t options_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_802_1q (u_int8_t *dst, u_int8_t *src, u_int16_t tpi, u_int8_t priority, u_int8_t cfi, u_int16_t vlan_id, u_int16_t len_proto, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_udp (u_int16_t sp, u_int16_t dp, u_int16_t len, u_int16_t sum, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_802_1x (u_int8_t eap_ver, u_int8_t eap_type, u_int16_t length, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_cdp (u_int8_t version, u_int8_t ttl, u_int16_t sum, u_int16_t type, u_int16_t len, u_int8_t *value, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_802_2 (u_int8_t dsap, u_int8_t ssap, u_int8_t control, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv4_echo (u_int8_t type, u_int8_t code, u_int16_t sum, u_int16_t id, u_int16_t seq, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_802_2snap (u_int8_t dsap, u_int8_t ssap, u_int8_t control, u_int8_t *oui, u_int16_t type, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv4_mask (u_int8_t type, u_int8_t code, u_int16_t sum, u_int16_t id, u_int16_t seq, u_int32_t mask, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_802_3 (u_int8_t *dst, u_int8_t *src, u_int16_t len, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv4_unreach (u_int8_t type, u_int8_t code, u_int16_t sum, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ethernet (u_int8_t *dst, u_int8_t *src, u_int16_t type, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv4_redirect (u_int8_t type, u_int8_t code, u_int16_t sum, u_int32_t gateway, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_autobuild_ethernet (u_int8_t *dst, u_int16_t type, libnet_t *l)
    libnet_ptag_t libnet_build_icmpv4_timeexceed (u_int8_t type, u_int8_t code, u_int16_t sum, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_fddi (u_int8_t fc, u_int8_t *dst, u_int8_t *src, u_int8_t dsap, u_int8_t ssap, u_int8_t cf, u_int8_t *org, u_int16_t type, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv4_timestamp (u_int8_t type, u_int8_t code, u_int16_t sum, u_int16_t id, u_int16_t seq, n_time otime, n_time rtime, n_time ttime, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_autobuild_fddi (u_int8_t fc, u_int8_t *dst, u_int8_t dsap, u_int8_t ssap, u_int8_t cf, u_int8_t *org, u_int16_t type, libnet_t *l)
    libnet_ptag_t libnet_build_icmpv6_echo (u_int8_t type, u_int8_t code, u_int16_t sum, u_int16_t id, u_int16_t seq, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_arp (u_int16_t hrd, u_int16_t pro, u_int8_t hln, u_int8_t pln, u_int16_t op, u_int8_t *sha, u_int8_t *spa, u_int8_t *tha, u_int8_t *tpa, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv6_parampb (u_int8_t type, u_int8_t code, u_int16_t sum, u_int32_t pointer, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_autobuild_arp (u_int16_t op, u_int8_t *sha, u_int8_t *spa, u_int8_t *tha, u_int8_t *tpa, libnet_t *l)
    libnet_ptag_t libnet_build_icmpv6_timxceed (u_int8_t type, u_int8_t code, u_int16_t sum, u_int32_t unused, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_tcp (u_int16_t sp, u_int16_t dp, u_int32_t seq, u_int32_t ack, u_int8_t control, u_int16_t win, u_int16_t sum, u_int16_t urg, u_int16_t len, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv6_unreach (u_int8_t type, u_int8_t code, u_int16_t sum, u_int32_t unused, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_tcp_options (u_int8_t *options, u_int32_t options_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv6_toobig (u_int8_t type, u_int8_t code, u_int16_t sum, u_int32_t mtu, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_udp (u_int16_t sp, u_int16_t dp, u_int16_t len, u_int16_t sum, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv6_ni (u_int8_t type, u_int8_t code, u_int16_t sum, u_int16_t qtype, u_int16_t flags, u_int8_t *nonce, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_cdp (u_int8_t version, u_int8_t ttl, u_int16_t sum, u_int16_t type, u_int16_t len, u_int8_t *value, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv6_ra (u_int8_t type, u_int8_t code, u_int16_t sum, u_int8_t chl, u_int8_t m, u_int8_t o, u_int16_t rlf, u_int32_t rct, u_int16_t rtt, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv4_echo (u_int8_t type, u_int8_t code, u_int16_t sum, u_int16_t id, u_int16_t seq, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv6_rs (u_int8_t type, u_int8_t code, u_int16_t sum, u_int32_t unused, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv4_mask (u_int8_t type, u_int8_t code, u_int16_t sum, u_int16_t id, u_int16_t seq, u_int32_t mask, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv6_ns (u_int8_t type, u_int8_t code, u_int16_t sum, u_int32_t reserved, struct libnet_in6_addr target, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv4_unreach (u_int8_t type, u_int8_t code, u_int16_t sum, u_int16_t orig_len, u_int8_t orig_tos, u_int16_t orig_id, u_int16_t orig_frag, u_int8_t orig_ttl, u_int8_t orig_prot, u_int16_t orig_check, u_int32_t orig_src, u_int32_t orig_dst, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv6_na (u_int8_t type, u_int8_t code, u_int16_t sum, u_int8_t router, u_int8_t solicited, u_int8_t override, struct libnet_in6_addr target, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv4_redirect (u_int8_t type, u_int8_t code, u_int16_t sum, u_int32_t gateway, u_int16_t orig_len, u_int8_t orig_tos, u_int16_t orig_id, u_int16_t orig_frag, u_int8_t orig_ttl, u_int8_t orig_prot, u_int16_t orig_check, u_int32_t orig_src, u_int32_t orig_dst, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv6_redirect (u_int8_t type, u_int8_t code, u_int16_t sum, u_int32_t unused, struct libnet_in6_addr, struct libnet_in6_addr, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv4_timeexceed (u_int8_t type, u_int8_t code, u_int16_t sum, u_int16_t orig_len, u_int8_t orig_tos, u_int16_t orig_id, u_int16_t orig_frag, u_int8_t orig_ttl, u_int8_t orig_prot, u_int16_t orig_check, u_int32_t orig_src, u_int32_t orig_dst, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv6_opt_tlla (u_int8_t type, u_int8_t length, u_int8_t *target, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv4_timestamp (u_int8_t type, u_int8_t code, u_int16_t sum, u_int16_t id, u_int16_t seq, n_time otime, n_time rtime, n_time ttime, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv6_opt_slla (u_int8_t type, u_int8_t length, u_int8_t *source, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_igmp (u_int8_t type, u_int8_t code, u_int16_t sum, u_int32_t ip, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv6_opt_pi (u_int8_t type, u_int8_t length, u_int8_t prefixlen, u_int8_t ol, u_int8_t a, u_int32_t validlt, u_int32_t preferredlt, u_int32_t reserved, struct libnet_in6_addr prefix, u_int32_t payload_s, u_int8_t *payload, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipv4 (u_int16_t len, u_int8_t tos, u_int16_t id, u_int16_t frag, u_int8_t ttl, u_int8_t prot, u_int16_t sum, u_int32_t src, u_int32_t dst, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv6_opt_rh (u_int8_t type, u_int8_t length, u_int16_t r1, u_int32_t r2, u_int32_t payload_s, u_int8_t *payload, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipv4_options (u_int8_t *options, u_int32_t options_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_icmpv6_opt_mtu (u_int8_t type, u_int8_t length, u_int16_t r, u_int32_t mtu, u_int32_t payload_s, u_int8_t *payload, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_autobuild_ipv4 (u_int16_t len, u_int8_t prot, u_int32_t dst, libnet_t *l)
    libnet_ptag_t libnet_build_igmp (u_int8_t type, u_int8_t code, u_int16_t sum, u_int32_t ip, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipv6 (u_int8_t tc, u_int32_t fl, u_int16_t len, u_int8_t nh, u_int8_t hl, struct libnet_in6_addr src, struct libnet_in6_addr dst, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipv4 (u_int16_t len, u_int8_t tos, u_int16_t id, u_int16_t frag, u_int8_t ttl, u_int8_t prot, u_int16_t sum, u_int32_t src, u_int32_t dst, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipv6_frag (u_int8_t nh, u_int8_t reserved, u_int16_t frag, u_int32_t id, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipv4_options (u_int8_t *options, u_int32_t options_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipv6_routing (u_int8_t nh, u_int8_t len, u_int8_t rtype, u_int8_t segments, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_autobuild_ipv4 (u_int16_t len, u_int8_t prot, u_int32_t dst, libnet_t *l)
    libnet_ptag_t libnet_build_ipv6_destopts (u_int8_t nh, u_int8_t len, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipv6 (u_int8_t tc, u_int32_t fl, u_int16_t len, u_int8_t nh, u_int8_t hl, struct libnet_in6_addr src, struct libnet_in6_addr dst, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipv6_hbhopts (u_int8_t nh, u_int8_t len, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipv6_frag (u_int8_t nh, u_int8_t reserved, u_int16_t offset, u_int8_t m, u_int32_t id, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_autobuild_ipv6 (u_int16_t len, u_int8_t nh, struct libnet_in6_addr dst, libnet_t *l)
    libnet_ptag_t libnet_build_ipv6_routing (u_int8_t nh, u_int8_t len, u_int8_t rtype, u_int8_t segments, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_isl (u_int8_t *dhost, u_int8_t type, u_int8_t user, u_int8_t *shost, u_int16_t len, u_int8_t *snap, u_int16_t vid, u_int16_t index, u_int16_t reserved, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipv6_destopts (u_int8_t nh, u_int8_t len, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipsec_esp_hdr (u_int32_t spi, u_int32_t seq, u_int32_t iv, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipv6_hbhopts (u_int8_t nh, u_int8_t len, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipsec_esp_ftr (u_int8_t len, u_int8_t nh, int8_t *auth, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_autobuild_ipv6 (u_int16_t len, u_int8_t nh, struct libnet_in6_addr dst, libnet_t *l)
    libnet_ptag_t libnet_build_ipsec_ah (u_int8_t nh, u_int8_t len, u_int16_t res, u_int32_t spi, u_int32_t seq, u_int32_t auth, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_isl (u_int8_t *dhost, u_int8_t type, u_int8_t user, u_int8_t *shost, u_int16_t len, u_int8_t *snap, u_int16_t vid, u_int16_t index, u_int16_t reserved, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_dnsv4 (u_int16_t h_len, u_int16_t id, u_int16_t flags, u_int16_t num_q, u_int16_t num_anws_rr, u_int16_t num_auth_rr, u_int16_t num_addi_rr, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipsec_esp_hdr (u_int32_t spi, u_int32_t seq, u_int32_t iv, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_rip (u_int8_t cmd, u_int8_t version, u_int16_t rd, u_int16_t af, u_int16_t rt, u_int32_t addr, u_int32_t mask, u_int32_t next_hop, u_int32_t metric, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipsec_esp_ftr (u_int8_t len, u_int8_t nh, int8_t *auth, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_rpc_call (u_int32_t rm, u_int32_t xid, u_int32_t prog_num, u_int32_t prog_vers, u_int32_t procedure, u_int32_t cflavor, u_int32_t clength, u_int8_t *cdata, u_int32_t vflavor, u_int32_t vlength, u_int8_t *vdata, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipsec_ah (u_int8_t nh, u_int8_t len, u_int16_t res, u_int32_t spi, u_int32_t seq, u_int32_t auth, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_stp_conf (u_int16_t id, u_int8_t version, u_int8_t bpdu_type, u_int8_t flags, u_int8_t *root_id, u_int32_t root_pc, u_int8_t *bridge_id, u_int16_t port_id, u_int16_t message_age, u_int16_t max_age, u_int16_t hello_time, u_int16_t f_delay, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ipcomp (u_int8_t nx, u_int8_t flags, u_int16_t cpi, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_stp_tcn (u_int16_t id, u_int8_t version, u_int8_t bpdu_type, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_dnsv4 (u_int16_t h_len, u_int16_t id, u_int16_t flags, u_int16_t num_q, u_int16_t num_anws_rr, u_int16_t num_auth_rr, u_int16_t num_addi_rr, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_token_ring (u_int8_t ac, u_int8_t fc, u_int8_t *dst, u_int8_t *src, u_int8_t dsap, u_int8_t ssap, u_int8_t cf, u_int8_t *org, u_int16_t type, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_rip (u_int8_t cmd, u_int8_t version, u_int16_t rd, u_int16_t af, u_int16_t rt, u_int32_t addr, u_int32_t mask, u_int32_t next_hop, u_int32_t metric, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_autobuild_token_ring (u_int8_t ac, u_int8_t fc, u_int8_t *dst, u_int8_t dsap, u_int8_t ssap, u_int8_t cf, u_int8_t *org, u_int16_t type, libnet_t *l)
    libnet_ptag_t libnet_build_rpc_call (u_int32_t rm, u_int32_t xid, u_int32_t prog_num, u_int32_t prog_vers, u_int32_t procedure, u_int32_t cflavor, u_int32_t clength, u_int8_t *cdata, u_int32_t vflavor, u_int32_t vlength, u_int8_t *vdata, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_vrrp (u_int8_t version, u_int8_t type, u_int8_t vrouter_id, u_int8_t priority, u_int8_t ip_count, u_int8_t auth_type, u_int8_t advert_int, u_int16_t sum, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_stp_conf (u_int16_t id, u_int8_t version, u_int8_t bpdu_type, u_int8_t flags, u_int8_t *root_id, u_int32_t root_pc, u_int8_t *bridge_id, u_int16_t port_id, u_int16_t message_age, u_int16_t max_age, u_int16_t hello_time, u_int16_t f_delay, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_mpls (u_int32_t label, u_int8_t experimental, u_int8_t bos, u_int8_t ttl, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_stp_tcn (u_int16_t id, u_int8_t version, u_int8_t bpdu_type, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ntp (u_int8_t leap_indicator, u_int8_t version, u_int8_t mode, u_int8_t stratum, u_int8_t poll, u_int8_t precision, u_int16_t delay_int, u_int16_t delay_frac, u_int16_t dispersion_int, u_int16_t dispersion_frac, u_int32_t reference_id, u_int32_t ref_ts_int, u_int32_t ref_ts_frac, u_int32_t orig_ts_int, u_int32_t orig_ts_frac, u_int32_t rec_ts_int, u_int32_t rec_ts_frac, u_int32_t xmt_ts_int, u_int32_t xmt_ts_frac, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_token_ring (u_int8_t ac, u_int8_t fc, u_int8_t *dst, u_int8_t *src, u_int8_t dsap, u_int8_t ssap, u_int8_t cf, u_int8_t *oui, u_int16_t type, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2 (u_int16_t len, u_int8_t type, u_int32_t rtr_id, u_int32_t area_id, u_int16_t sum, u_int16_t autype, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_autobuild_token_ring (u_int8_t ac, u_int8_t fc, u_int8_t *dst, u_int8_t dsap, u_int8_t ssap, u_int8_t cf, u_int8_t *oui, u_int16_t type, libnet_t *l)
    libnet_ptag_t libnet_build_ospfv2_hello (u_int32_t netmask, u_int16_t interval, u_int8_t opts, u_int8_t priority, u_int dead_int, u_int32_t des_rtr, u_int32_t bkup_rtr, u_int32_t neighbor, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_vrrp (u_int8_t version, u_int8_t type, u_int8_t vrouter_id, u_int8_t priority, u_int8_t ip_count, u_int8_t auth_type, u_int8_t advert_int, u_int16_t sum, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2_dbd (u_int16_t dgram_len, u_int8_t opts, u_int8_t type, u_int seqnum, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_mpls (u_int32_t label, u_int8_t experimental, u_int8_t bos, u_int8_t ttl, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2_lsr (u_int type, u_int lsid, u_int32_t advrtr, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ntp (u_int8_t leap_indicator, u_int8_t version, u_int8_t mode, u_int8_t stratum, u_int8_t poll, u_int8_t precision, u_int16_t delay_int, u_int16_t delay_frac, u_int16_t dispersion_int, u_int16_t dispersion_frac, u_int32_t reference_id, u_int32_t ref_ts_int, u_int32_t ref_ts_frac, u_int32_t orig_ts_int, u_int32_t orig_ts_frac, u_int32_t rec_ts_int, u_int32_t rec_ts_frac, u_int32_t xmt_ts_int, u_int32_t xmt_ts_frac, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2_lsu (u_int num, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2 (u_int16_t len, u_int8_t type, u_int32_t rtr_id, u_int32_t area_id, u_int16_t sum, u_int16_t autype, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2_lsa (u_int16_t age, u_int8_t opts, u_int8_t type, u_int lsid, u_int32_t advrtr, u_int seqnum, u_int16_t sum, u_int16_t len, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2_hello (u_int32_t netmask, u_int16_t interval, u_int8_t opts, u_int8_t priority, u_int dead_int, u_int32_t des_rtr, u_int32_t bkup_rtr, u_int32_t neighbor, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2_lsa_rtr (u_int16_t flags, u_int16_t num, u_int id, u_int data, u_int8_t type, u_int8_t tos, u_int16_t metric, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2_dbd (u_int16_t dgram_len, u_int8_t opts, u_int8_t type, u_int seqnum, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2_lsa_net (u_int32_t nmask, u_int rtrid, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2_lsr (u_int type, u_int lsid, u_int32_t advrtr, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2_lsa_sum (u_int32_t nmask, u_int metric, u_int tos, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2_lsu (u_int num, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2_lsa_as (u_int32_t nmask, u_int metric, u_int32_t fwdaddr, u_int tag, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2_lsa (u_int16_t age, u_int8_t opts, u_int8_t type, u_int lsid, u_int32_t advrtr, u_int seqnum, u_int16_t sum, u_int16_t len, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_data (u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2_lsa_rtr (u_int16_t flags, u_int16_t num, u_int id, u_int data, u_int8_t type, u_int8_t tos, u_int16_t metric, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_dhcpv4 (u_int8_t opcode, u_int8_t htype, u_int8_t hlen, u_int8_t hopcount, u_int32_t xid, u_int16_t secs, u_int16_t flags, u_int32_t cip, u_int32_t yip, u_int32_t sip, u_int32_t gip, u_int8_t *chaddr, u_int8_t *sname, u_int8_t *file, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2_lsa_net (u_int32_t nmask, u_int rtrid, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_bootpv4 (u_int8_t opcode, u_int8_t htype, u_int8_t hlen, u_int8_t hopcount, u_int32_t xid, u_int16_t secs, u_int16_t flags, u_int32_t cip, u_int32_t yip, u_int32_t sip, u_int32_t gip, u_int8_t *chaddr, u_int8_t *sname, u_int8_t *file, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_ospfv2_lsa_sum (u_int32_t nmask, u_int metric, u_int tos, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    u_int32_t libnet_getgre_length (u_int16_t fv)
    libnet_ptag_t libnet_build_ospfv2_lsa_as (u_int32_t nmask, u_int metric, u_int32_t fwdaddr, u_int tag, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_gre (u_int16_t fv, u_int16_t type, u_int16_t sum, u_int16_t offset, u_int32_t key, u_int32_t seq, u_int16_t len, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_data (u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_egre (u_int16_t fv, u_int16_t type, u_int16_t sum, u_int16_t offset, u_int32_t key, u_int32_t seq, u_int16_t len, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_dhcpv4 (u_int8_t opcode, u_int8_t htype, u_int8_t hlen, u_int8_t hopcount, u_int32_t xid, u_int16_t secs, u_int16_t flags, u_int32_t cip, u_int32_t yip, u_int32_t sip, u_int32_t gip, u_int8_t *chaddr, u_int8_t *sname, u_int8_t *file, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_gre_sre (u_int16_t af, u_int8_t offset, u_int8_t length, u_int8_t *routing, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_bootpv4 (u_int8_t opcode, u_int8_t htype, u_int8_t hlen, u_int8_t hopcount, u_int32_t xid, u_int16_t secs, u_int16_t flags, u_int32_t cip, u_int32_t yip, u_int32_t sip, u_int32_t gip, u_int8_t *chaddr, u_int8_t *sname, u_int8_t *file, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_gre_last_sre (libnet_t *l, libnet_ptag_t ptag)
    u_int32_t libnet_getgre_length (u_int16_t fv)
    libnet_ptag_t libnet_build_bgp4_header (u_int8_t marker[LIBNET_BGP4_MARKER_SIZE], u_int16_t len, u_int8_t type, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_gre (u_int16_t fv, u_int16_t type, u_int16_t sum, u_int16_t offset, u_int32_t key, u_int32_t seq, u_int16_t len, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_bgp4_open (u_int8_t version, u_int16_t src_as, u_int16_t hold_time, u_int32_t bgp_id, u_int8_t opt_len, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_egre (u_int16_t fv, u_int16_t type, u_int16_t sum, u_int16_t offset, u_int32_t key, u_int32_t seq, u_int16_t len, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_bgp4_update (u_int16_t unfeasible_rt_len, u_int8_t *withdrawn_rt, u_int16_t total_path_attr_len, u_int8_t *path_attributes, u_int16_t info_len, u_int8_t *reachability_info, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_gre_sre (u_int16_t af, u_int8_t offset, u_int8_t length, u_int8_t *routing, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_bgp4_notification (u_int8_t err_code, u_int8_t err_subcode, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_gre_last_sre (libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_sebek (u_int32_t magic, u_int16_t version, u_int16_t type, u_int32_t counter, u_int32_t time_sec, u_int32_t time_usec, u_int32_t pid, u_int32_t uid, u_int32_t fd, u_int8_t cmd[SEBEK_CMD_LENGTH], u_int32_t length, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_bgp4_header (u_int8_t marker[LIBNET_BGP4_MARKER_SIZE], u_int16_t len, u_int8_t type, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_link (u_int8_t *dst, u_int8_t *src, u_int8_t *oui, u_int16_t type, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_build_bgp4_open (u_int8_t version, u_int16_t src_as, u_int16_t hold_time, u_int32_t bgp_id, u_int8_t opt_len, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ptag_t libnet_autobuild_link (u_int8_t *dst, u_int8_t *oui, u_int16_t type, libnet_t *l)
    libnet_ptag_t libnet_build_bgp4_update (u_int16_t unfeasible_rt_len, u_int8_t *withdrawn_rt, u_int16_t total_path_attr_len, u_int8_t *path_attributes, u_int16_t info_len, u_int8_t *reachability_info, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    int libnet_write (libnet_t *l)
    libnet_ptag_t libnet_build_bgp4_notification (u_int8_t err_code, u_int8_t err_subcode, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    u_int32_t libnet_get_ipaddr4 (libnet_t *l)
    libnet_ptag_t libnet_build_sebek (u_int32_t magic, u_int16_t version, u_int16_t type, u_int32_t counter, u_int32_t time_sec, u_int32_t time_usec, u_int32_t pid, u_int32_t uid, u_int32_t fd, u_int8_t cmd[SEBEK_CMD_LENGTH], u_int32_t length, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_in6_addr libnet_get_ipaddr6 (libnet_t *l)
    libnet_ptag_t libnet_build_link (u_int8_t *dst, u_int8_t *src, u_int8_t *oui, u_int16_t type, u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
    libnet_ether_addr * libnet_get_hwaddr (libnet_t *l)
    libnet_ptag_t libnet_autobuild_link (u_int8_t *dst, u_int8_t *oui, u_int16_t type, libnet_t *l)
    u_int8_t * libnet_hex_aton (int8_t *s, int *len)
    int libnet_write (libnet_t *l)
    int libnet_adv_cull_packet (libnet_t *l, u_int8_t **packet, u_int32_t *packet_s)
    u_int32_t libnet_get_ipaddr4 (libnet_t *l)
    int libnet_adv_cull_header (libnet_t *l, libnet_ptag_t ptag, u_int8_t **header, u_int32_t *header_s)
    libnet_in6_addr libnet_get_ipaddr6 (libnet_t *l)
    int libnet_adv_write_link (libnet_t *l, u_int8_t *packet, u_int32_t packet_s)
    libnet_ether_addr * libnet_get_hwaddr (libnet_t *l)
    void libnet_adv_free_packet (libnet_t *l, u_int8_t *packet)
    u_int8_t * libnet_hex_aton (int8_t *s, int *len)
    int libnet_cq_add (libnet_t *l, char *label)
    int libnet_adv_cull_packet (libnet_t *l, u_int8_t **packet, u_int32_t *packet_s)
    libnet_t * libnet_cq_remove (libnet_t *l)
    int libnet_adv_cull_header (libnet_t *l, libnet_ptag_t ptag, u_int8_t **header, u_int32_t *header_s)
    libnet_t * libnet_cq_remove_by_label (char *label)
    int libnet_adv_write_link (libnet_t *l, u_int8_t *packet, u_int32_t packet_s)
    int8_t * libnet_cq_getlabel (libnet_t *l)
    void libnet_adv_free_packet (libnet_t *l, u_int8_t *packet)
    libnet_t * libnet_cq_find_by_label (char *label)
    int libnet_cq_add (libnet_t *l, char *label)
    void libnet_cq_destroy ()
    libnet_t * libnet_cq_remove (libnet_t *l)
    libnet_t * libnet_cq_head ()
    libnet_t * libnet_cq_remove_by_label (char *label)
    int libnet_cq_last ()
    int8_t * libnet_cq_getlabel (libnet_t *l)
    libnet_t * libnet_cq_next ()
    libnet_t * libnet_cq_find_by_label (char *label)
    u_int32_t libnet_cq_size ()
    void libnet_cq_destroy ()
    void libnet_diag_dump_context (libnet_t *l)
    libnet_t * libnet_cq_head ()
    void libnet_diag_dump_pblock (libnet_t *l)
    int libnet_cq_last ()
    char * libnet_diag_dump_pblock_type (u_int8_t type)
    libnet_t * libnet_cq_next ()
    void libnet_diag_dump_hex (u_int8_t *packet, u_int32_t len, int swap, FILE *stream)
    u_int32_t libnet_cq_size ()
    -int libnet_write_raw_ipv4 (libnet_t *l, u_int8_t *packet, u_int32_t size)
    void libnet_diag_dump_context (libnet_t *l)
    -int libnet_write_raw_ipv6 (libnet_t *l, u_int8_t *packet, u_int32_t size)
    void libnet_diag_dump_pblock (libnet_t *l)
    -int libnet_write_link (libnet_t *l, u_int8_t *packet, u_int32_t size)
    char * libnet_diag_dump_pblock_type (u_int8_t type)
    -int libnet_open_raw4 (libnet_t *l)
    void libnet_diag_dump_hex (u_int8_t *packet, u_int32_t len, int swap, FILE *stream)
    -int libnet_close_raw4 (libnet_t *l)
    char * libnet_dump_packet (libnet_t *)
    -int libnet_open_raw6 (libnet_t *l)
    +int libnet_write_raw_ipv4 (libnet_t *l, u_int8_t *packet, u_int32_t size)
    -int libnet_close_raw6 (libnet_t *l)
    +int libnet_write_raw_ipv6 (libnet_t *l, u_int8_t *packet, u_int32_t size)
    -int libnet_select_device (libnet_t *l)
    +int libnet_write_link (libnet_t *l, u_int8_t *packet, u_int32_t size)
    -int libnet_open_link (libnet_t *l)
    +int libnet_open_raw4 (libnet_t *l)
    -int libnet_close_link (libnet_t *l)
    +int libnet_close_raw4 (libnet_t *l)
    -int libnet_do_checksum (libnet_t *l, u_int8_t *packet, int protocol, int len)
    +int libnet_open_raw6 (libnet_t *l)
    -u_int32_t libnet_compute_crc (u_int8_t *buf, u_int32_t len)
    +int libnet_close_raw6 (libnet_t *l)
    -u_int16_t libnet_ip_check (u_int16_t *addr, int len)
    +int libnet_select_device (libnet_t *l)
    -int libnet_in_cksum (u_int16_t *addr, int len)
    +int libnet_open_link (libnet_t *l)
    -libnet_pblock_t * libnet_pblock_probe (libnet_t *l, libnet_ptag_t ptag, u_int32_t n, u_int8_t type)
    +int libnet_close_link (libnet_t *l)
    -libnet_pblock_t * libnet_pblock_new (libnet_t *l, u_int32_t size)
    +int libnet_do_checksum (libnet_t *l, u_int8_t *packet, int protocol, int len)
    -int libnet_pblock_swap (libnet_t *l, libnet_ptag_t ptag1, libnet_ptag_t ptag2)
    +int libnet_payload_off (u_int8_t *buf, int len)
    -int libnet_pblock_insert_before (libnet_t *l, libnet_ptag_t ptag1, libnet_ptag_t ptag2)
    +u_int32_t libnet_compute_crc (u_int8_t *buf, u_int32_t len)
    -void libnet_pblock_delete (libnet_t *l, libnet_pblock_t *p)
    +u_int16_t libnet_ip_check (u_int16_t *addr, int len)
    -libnet_ptag_t libnet_pblock_update (libnet_t *l, libnet_pblock_t *p, u_int32_t h, u_int8_t type)
    +int libnet_in_cksum (u_int16_t *addr, int len)
    -libnet_pblock_t * libnet_pblock_find (libnet_t *l, libnet_ptag_t ptag)
    +libnet_pblock_t * libnet_pblock_probe (libnet_t *l, libnet_ptag_t ptag, u_int32_t n, u_int8_t type)
    -int libnet_pblock_append (libnet_t *l, libnet_pblock_t *p, u_int8_t *buf, u_int32_t len)
    +libnet_pblock_t * libnet_pblock_new (libnet_t *l, u_int32_t size)
    -void libnet_pblock_setflags (libnet_pblock_t *p, u_int8_t flags)
    +int libnet_pblock_swap (libnet_t *l, libnet_ptag_t ptag1, libnet_ptag_t ptag2)
    -int libnet_pblock_p2p (u_int8_t type)
    +int libnet_pblock_insert_before (libnet_t *l, libnet_ptag_t ptag1, libnet_ptag_t ptag2)
    -int libnet_pblock_coalesce (libnet_t *l, u_int8_t **packet, u_int32_t *size)
    +void libnet_pblock_delete (libnet_t *l, libnet_pblock_t *p)
    -int libnet_check_iface (libnet_t *l)
    +libnet_ptag_t libnet_pblock_update (libnet_t *l, libnet_pblock_t *p, u_int32_t h, u_int8_t type)

    Variables

    -const struct libnet_in6_addr in6addr_error
    +void libnet_pblock_record_ip_offset (libnet_t *l, u_int32_t offset)
    +libnet_pblock_t * libnet_pblock_find (libnet_t *l, libnet_ptag_t ptag)
    +int libnet_pblock_append (libnet_t *l, libnet_pblock_t *p, u_int8_t *buf, u_int32_t len)
    +void libnet_pblock_setflags (libnet_pblock_t *p, u_int8_t flags)
    +int libnet_pblock_p2p (u_int8_t type)
    +int libnet_pblock_coalesce (libnet_t *l, u_int8_t **packet, u_int32_t *size)
    +int libnet_check_iface (libnet_t *l)

    Variables

    +libnet_in6_addr in6addr_error


    Detailed Description

    libnet exported function prototypes


    Function Documentation

    -

    - - - - -
    - + +
    +
    +
    - - - - + + + + + - - - + + - - + + -
    char* libnet_addr2name4 u_int32_t  in, char* libnet_addr2name4 (u_int32_t  in,
    u_int8_t  use_nameu_int8_t  use_name 
    )
    -
    - - - - - -
    -   - + +

    Takes a network byte ordered IPv4 address and returns a pointer to either a canonical DNS name (if it has one) or a string of dotted decimals. This may incur a DNS lookup if the hostname and mode is set to LIBNET_RESOLVE. If mode is set to LIBNET_DONT_RESOLVE, no DNS lookup will be performed and the function will return a pointer to a dotted decimal string. The function cannot fail -- if no canonical name exists, it will fall back on returning a dotted decimal string. This function is non-reentrant.

    Parameters:
    - - + +
    in network byte ordered IPv4 address
    use_name LIBNET_RESOLVE or LIBNET_DONT_RESOLVE
    in network byte ordered IPv4 address
    use_name LIBNET_RESOLVE or LIBNET_DONT_RESOLVE
    Returns:
    a pointer to presentation format string
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + - - + + -
    void libnet_addr2name6_r struct libnet_in6_addr  addr, void libnet_addr2name6_r (struct libnet_in6_addr  addr,
    u_int8_t  use_name, u_int8_t  use_name,
    char *  host_name, char *  host_name,
    int  host_name_lenint  host_name_len 
    )
    -
    - - - - - -
    -   - + +

    -Should document this baby right here.

    -

    - - - - -
    - +Should document this baby right here. + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + - - + + -
    int libnet_adv_cull_header libnet_t *  l, int libnet_adv_cull_header (libnet_t *  l,
    libnet_ptag_t  ptag, libnet_ptag_t  ptag,
    u_int8_t **  header, u_int8_t **  header,
    u_int32_t *  header_su_int32_t *  header_s 
    )
    -
    - - - - - -
    -   - + +

    -[Advanced Interface] Pulls the header from the specified ptag from the given libnet context. This function is part of the advanced interface and is only available when libnet is initialized in advanced mode. If the function fails libnet_geterror() can tell you why.

    Parameters:
    - - - - - +[Advanced Interface] Pulls the header from the specified ptag from the given libnet context. This function is part of the advanced interface and is only available when libnet is initialized in advanced mode. If the function fails libnet_geterror() can tell you why.
    Parameters:
    +
    l pointer to a libnet context
    ptag the ptag referencing the header to pull
    header will contain the header
    header_s will contain the header size
    + + + +
    l pointer to a libnet context
    ptag the ptag referencing the header to pull
    header will contain the header
    header_s will contain the header size
    Returns:
    1 on success, -1 on failure
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + - - + + -
    int libnet_adv_cull_packet libnet_t *  l, int libnet_adv_cull_packet (libnet_t *  l,
    u_int8_t **  packet, u_int8_t **  packet,
    u_int32_t *  packet_su_int32_t *  packet_s 
    )
    -
    - - - - - -
    -   - + +

    -[Advanced Interface] Yanks a prebuilt, wire-ready packet from the given libnet context. If libnet was configured to do so (which it is by default) the packet will have all checksums written in. This function is part of the advanced interface and is only available when libnet is initialized in advanced mode. It is important to note that the function performs an implicit malloc() and a corresponding call to libnet_adv_free_packet() should be made to free the memory packet occupies. If the function fails libnet_geterror() can tell you why.

    Parameters:
    - - - - +[Advanced Interface] Yanks a prebuilt, wire-ready packet from the given libnet context. If libnet was configured to do so (which it is by default) the packet will have all checksums written in. This function is part of the advanced interface and is only available when libnet is initialized in advanced mode. It is important to note that the function performs an implicit malloc() and a corresponding call to libnet_adv_free_packet() should be made to free the memory packet occupies. If the function fails libnet_geterror() can tell you why.
    Parameters:
    +
    l pointer to a libnet context
    packet will contain the wire-ready packet
    packet_s will contain the packet size
    + + +
    l pointer to a libnet context
    packet will contain the wire-ready packet
    packet_s will contain the packet size
    Returns:
    1 on success, -1 on failure
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + - - + + -
    void libnet_adv_free_packet libnet_t *  l, void libnet_adv_free_packet (libnet_t *  l,
    u_int8_t *  packetu_int8_t *  packet 
    )
    -
    - - - - - -
    -   - + +

    -[Advanced Interface] Frees the memory allocated when libnet_adv_cull_packet() is called.

    Parameters:
    +[Advanced Interface] Frees the memory allocated when libnet_adv_cull_packet() is called.
    Parameters:
    - - + +
    l pointer to a libnet context
    packet a pointer to the packet to free
    l pointer to a libnet context
    packet a pointer to the packet to free
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + - - + + -
    int libnet_adv_write_link libnet_t *  l, int libnet_adv_write_link (libnet_t *  l,
    u_int8_t *  packet, u_int8_t *  packet,
    u_int32_t  packet_su_int32_t  packet_s 
    )
    -
    - - - - - -
    -   - + +

    -[Advanced Interface] Writes a packet the network at the link layer. This function is useful to write a packet that has been constructed by hand by the application programmer or, more commonly, to write a packet that has been returned by a call to libnet_adv_cull_packet(). This function is part of the advanced interface and is only available when libnet is initialized in advanced mode. If the function fails libnet_geterror() can tell you why.

    Parameters:
    - - - - +[Advanced Interface] Writes a packet the network at the link layer. This function is useful to write a packet that has been constructed by hand by the application programmer or, more commonly, to write a packet that has been returned by a call to libnet_adv_cull_packet(). This function is part of the advanced interface and is only available when libnet is initialized in advanced mode. If the function fails libnet_geterror() can tell you why.
    Parameters:
    +
    l pointer to a libnet context
    packet a pointer to the packet to inject
    packet_s the size of the packet
    + + +
    l pointer to a libnet context
    packet a pointer to the packet to inject
    packet_s the size of the packet
    Returns:
    the number of bytes written, or -1 on failure
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_autobuild_arp u_int16_t  op, libnet_ptag_t libnet_autobuild_arp (u_int16_t  op,
    u_int8_t *  sha, u_int8_t *  sha,
    u_int8_t *  spa, u_int8_t *  spa,
    u_int8_t *  tha, u_int8_t *  tha,
    u_int8_t *  tpa, u_int8_t *  tpa,
    libnet_t *  llibnet_t *  l 
    )
    -
    - - - - - -
    -   - + +

    Autouilds an Address Resolution Protocol (ARP) header. Depending on the op value, the function builds one of several different types of RFC 826 or RFC 903 RARP packets.

    Parameters:
    - - - - - - + + + + + +
    op ARP operation type
    sha sender's hardware address
    spa sender's protocol address
    tha target hardware address
    tpa targer protocol address
    l pointer to a libnet context
    op ARP operation type
    sha sender's hardware address
    spa sender's protocol address
    tha target hardware address
    tpa targer protocol address
    l pointer to a libnet context
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_autobuild_ethernet u_int8_t *  dst, libnet_ptag_t libnet_autobuild_ethernet (u_int8_t *  dst,
    u_int16_t  type, u_int16_t  type,
    libnet_t *  llibnet_t *  l 
    )
    -
    - - - - - -
    -   - + +

    Autobuilds an Ethernet header. The RFC 894 Ethernet II header is almost identical to the IEEE 802.3 header, with the exception that the field immediately following the source address holds the layer 3 protocol (as opposed to frame's length). You should only use this function when libnet is initialized with the LIBNET_LINK interface.

    Parameters:
    - - - + + +
    dst destination ethernet address
    type upper layer protocol type
    l pointer to a libnet context
    dst destination ethernet address
    type upper layer protocol type
    l pointer to a libnet context
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_autobuild_fddi u_int8_t  fc, libnet_ptag_t libnet_autobuild_fddi (u_int8_t  fc,
    u_int8_t *  dst, u_int8_t *  dst,
    u_int8_t  dsap, u_int8_t  dsap,
    u_int8_t  ssap, u_int8_t  ssap,
    u_int8_t  cf, u_int8_t  cf,
    u_int8_t *  org, u_int8_t *  oui,
    u_int16_t  type, u_int16_t  type,
    libnet_t *  llibnet_t *  l 
    )
    -
    - - - - - -
    -   - + +

    Autobuilds a Fiber Distributed Data Interface (FDDI) header.

    Parameters:
    - - - - - - - + + + + + + +
    fc class format and priority dst destination fddi address
    dsap destination service access point
    ssap source service access point
    cf cf
    org IEEE organizational code
    type upper layer protocol
    l pointer to a libnet context
    fc class format and priority dst destination fddi address
    dsap destination service access point
    ssap source service access point
    cf cf
    oui IEEE organizational code
    type upper layer protocol
    l pointer to a libnet context
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_autobuild_ipv4 u_int16_t  len, libnet_ptag_t libnet_autobuild_ipv4 (u_int16_t  len,
    u_int8_t  prot, u_int8_t  prot,
    u_int32_t  dst, u_int32_t  dst,
    libnet_t *  llibnet_t *  l 
    )
    -
    - - - - - -
    -   - + +

    -Autobuilds a version 4 Internet Protocol (IP) header. The function is useful * to build an IP header quickly when you do not need a granular level of control. The function takes the same len, prot, and dst arguments as libnet_build_ipv4(). The function does not accept a ptag argument, but it does return a ptag. In other words, you can use it to build a new IP header but not to modify an existing one.

    Parameters:
    +Autobuilds a version 4 Internet Protocol (IP) header. The function is useful * to build an IP header quickly when you do not need a granular level of control. The function takes the same len, prot, and dst arguments as libnet_build_ipv4(). The function does not accept a ptag argument, but it does return a ptag. In other words, you can use it to build a new IP header but not to modify an existing one.
    Parameters:
    - - - - + + + +
    len total length of the IP packet including all subsequent data
    prot upper layer protocol
    dst destination IPv4 address (little endian)
    l pointer to a libnet context
    len total length of the IP packet including all subsequent data
    prot upper layer protocol
    dst destination IPv4 address (little endian)
    l pointer to a libnet context
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_autobuild_ipv6 u_int16_t  len, libnet_ptag_t libnet_autobuild_ipv6 (u_int16_t  len,
    u_int8_t  nh, u_int8_t  nh,
    struct libnet_in6_addr  dst, struct libnet_in6_addr  dst,
    libnet_t *  llibnet_t *  l 
    )
    -
    - - - - - -
    -   - + +

    This function is not yet implement and is a NONOP.

    Parameters:
    - - - - - - - + + + + + + +
    len length
    nh next header
    dst destination IPv6 address
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    len length
    nh next header
    dst destination IPv6 address
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_autobuild_link u_int8_t *  dst, libnet_ptag_t libnet_autobuild_link (u_int8_t *  dst,
    u_int8_t *  oui, u_int8_t *  oui,
    u_int16_t  type, u_int16_t  type,
    libnet_t *  llibnet_t *  l 
    )
    -
    - - - - - -
    -   - + +

    Automatically builds a link layer header for an initialized l. The function determines the proper link layer header format from how l was initialized. The function current supports Ethernet and Token Ring link layers.

    Parameters:
    - - - - + + + +
    dst the destination MAC address
    oui Organizationally Unique Identifier (unused for Ethernet)
    type the upper layer protocol type
    l pointer to a libnet context
    dst the destination MAC address
    oui Organizationally Unique Identifier (unused for Ethernet)
    type the upper layer protocol type
    l pointer to a libnet context
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_autobuild_token_ring u_int8_t  ac, libnet_ptag_t libnet_autobuild_token_ring (u_int8_t  ac,
    u_int8_t  fc, u_int8_t  fc,
    u_int8_t *  dst, u_int8_t *  dst,
    u_int8_t  dsap, u_int8_t  dsap,
    u_int8_t  ssap, u_int8_t  ssap,
    u_int8_t  cf, u_int8_t  cf,
    u_int8_t *  org, u_int8_t *  oui,
    u_int16_t  type, u_int16_t  type,
    libnet_t *  llibnet_t *  l 
    )
    -
    - - - - - -
    -   - + +

    Auto-builds a token ring header.

    Parameters:
    - - - - - - - - - + + + + + + + + +
    ac access control
    fc frame control
    dst destination address
    dsap destination service access point
    ssap source service access point
    cf control field
    oui Organizationally Unique Identifier
    type upper layer protocol type
    l pointer to a libnet context
    ac access control
    fc frame control
    dst destination address
    dsap destination service access point
    ssap source service access point
    cf control field
    oui Organizationally Unique Identifier
    type upper layer protocol type
    l pointer to a libnet context
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_802_1q u_int8_t *  dst, libnet_ptag_t libnet_build_802_1q (u_int8_t *  dst,
    u_int8_t *  src, u_int8_t *  src,
    u_int16_t  tpi, u_int16_t  tpi,
    u_int8_t  priority, u_int8_t  priority,
    u_int8_t  cfi, u_int8_t  cfi,
    u_int16_t  vlan_id, u_int16_t  vlan_id,
    u_int16_t  len_proto, u_int16_t  len_proto,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an IEEE 802.1q VLAN tagging header. Depending on the value of len_proto, the function wraps the 802.1q header inside either an IEEE 802.3 header or an RFC 894 Ethernet II (DIX) header (both resulting in an 18-byte frame). If len is 1500 or less, most receiving protocol stacks parse the frame as an IEEE 802.3 encapsulated frame. If len is one of the Ethernet type values, most protocol stacks parse the frame as an RFC 894 Ethernet II encapsulated frame. Note the length value is calculated without the 802.1q header of 18 bytes.

    Parameters:
    - - - - - - - - - - - + + + + + + + + + + +
    dst pointer to a six byte source ethernet address
    src pointer to a six byte destination ethernet address
    tpi tag protocol identifier
    priority priority
    cfi canonical format indicator
    vlan_id vlan identifier
    len_proto length (802.3) protocol (Ethernet II)
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    dst pointer to a six byte source ethernet address
    src pointer to a six byte destination ethernet address
    tpi tag protocol identifier
    priority priority
    cfi canonical format indicator
    vlan_id vlan identifier
    len_proto length (802.3) protocol (Ethernet II)
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_802_1x u_int8_t  eap_ver, libnet_ptag_t libnet_build_802_1x (u_int8_t  eap_ver,
    u_int8_t  eap_type, u_int8_t  eap_type,
    u_int16_t  length, u_int16_t  length,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an IEEE 802.1x extended authentication protocol header.

    Parameters:
    - - - - - - - + + + + + + +
    eap_ver the EAP version
    eap_type the EAP type
    length frame length
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    eap_ver the EAP version
    eap_type the EAP type
    length frame length
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_802_2 u_int8_t  dsap, libnet_ptag_t libnet_build_802_2 (u_int8_t  dsap,
    u_int8_t  ssap, u_int8_t  ssap,
    u_int8_t  control, u_int8_t  control,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an IEEE 802.2 LLC header.

    Parameters:
    - - - - - - - + + + + + + +
    dsap destination service access point
    ssap source service access point
    control control field
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    dsap destination service access point
    ssap source service access point
    control control field
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_802_2snap u_int8_t  dsap, libnet_ptag_t libnet_build_802_2snap (u_int8_t  dsap,
    u_int8_t  ssap, u_int8_t  ssap,
    u_int8_t  control, u_int8_t  control,
    u_int8_t *  oui, u_int8_t *  oui,
    u_int16_t  type, u_int16_t  type,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an IEEE 802.2 LLC SNAP header.

    Parameters:
    - - - - - - - - - + + + + + + + + +
    dsap destination service access point
    ssap source service access point
    control control field
    oui Organizationally Unique Identifier
    type upper layer protocol
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    dsap destination service access point
    ssap source service access point
    control control field
    oui Organizationally Unique Identifier
    type upper layer protocol
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_802_3 u_int8_t *  dst, libnet_ptag_t libnet_build_802_3 (u_int8_t *  dst,
    u_int8_t *  src, u_int8_t *  src,
    u_int16_t  len, u_int16_t  len,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an IEEE 802.3 header. The 802.3 header is almost identical to the RFC 894 Ethernet II header, the exception being that the field immediately following the source address holds the frame's length (as opposed to the layer 3 protocol). You should only use this function when libnet is initialized with the LIBNET_LINK interface.

    Parameters:
    - - - - - - - + + + + + + +
    dst destination ethernet address
    src source ethernet address
    len frame length sans header
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    dst destination ethernet address
    src source ethernet address
    len frame length sans header
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_arp u_int16_t  hrd, libnet_ptag_t libnet_build_arp (u_int16_t  hrd,
    u_int16_t  pro, u_int16_t  pro,
    u_int8_t  hln, u_int8_t  hln,
    u_int8_t  pln, u_int8_t  pln,
    u_int16_t  op, u_int16_t  op,
    u_int8_t *  sha, u_int8_t *  sha,
    u_int8_t *  spa, u_int8_t *  spa,
    u_int8_t *  tha, u_int8_t *  tha,
    u_int8_t *  tpa, u_int8_t *  tpa,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an Address Resolution Protocol (ARP) header. Depending on the op value, the function builds one of several different types of RFC 826 or RFC 903 RARP packets.

    Parameters:
    - - - - - - - - - - - - - + + + + + + + + + + + + +
    hrd hardware address format
    pro protocol address format
    hln hardware address length
    pln protocol address length
    op ARP operation type
    sha sender's hardware address
    spa sender's protocol address
    tha target hardware address
    tpa targer protocol address
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    hrd hardware address format
    pro protocol address format
    hln hardware address length
    pln protocol address length
    op ARP operation type
    sha sender's hardware address
    spa sender's protocol address
    tha target hardware address
    tpa targer protocol address
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_bgp4_header u_int8_t  marker[LIBNET_BGP4_MARKER_SIZE], libnet_ptag_t libnet_build_bgp4_header (u_int8_t  marker[LIBNET_BGP4_MARKER_SIZE],
    u_int16_t  len, u_int16_t  len,
    u_int8_t  type, u_int8_t  type,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an RFC 1771 Border Gateway Protocol 4 (BGP-4) header. The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASs) that reachability information traverses. This information is sufficient to construct a graph of AS connectivity from which routing loops may be pruned and some policy decisions at the AS level may be enforced. This function builds the base BGP header which is used as a preamble before any other BGP header. For example, a BGP KEEPALIVE message may be built with only this function, while an error notification requires a subsequent call to libnet_build_bgp4_notification.

    Parameters:
    - - - - - - - + + + + + + +
    marker a value the receiver can predict (if the message type is not BGP OPEN, or no authentication is used, these 16 bytes are normally set as all ones)
    len total length of the BGP message, including the header
    type type code of the message (OPEN, UPDATE, NOTIFICATION or KEEPALIVE)
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    marker a value the receiver can predict (if the message type is not BGP OPEN, or no authentication is used, these 16 bytes are normally set as all ones)
    len total length of the BGP message, including the header
    type type code of the message (OPEN, UPDATE, NOTIFICATION or KEEPALIVE)
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_bgp4_notification u_int8_t  err_code, libnet_ptag_t libnet_build_bgp4_notification (u_int8_t  err_code,
    u_int8_t  err_subcode, u_int8_t  err_subcode,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an RFC 1771 Border Gateway Protocol 4 (BGP-4) notification header. A NOTIFICATION message is sent when an error condition is detected. Specific error information may be passed through the payload interface.

    Parameters:
    - - - - - - + + + + + +
    err_code type of notification
    err_subcode more specific information about the reported error.
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    err_code type of notification
    err_subcode more specific information about the reported error.
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_bgp4_open u_int8_t  version, libnet_ptag_t libnet_build_bgp4_open (u_int8_t  version,
    u_int16_t  src_as, u_int16_t  src_as,
    u_int16_t  hold_time, u_int16_t  hold_time,
    u_int32_t  bgp_id, u_int32_t  bgp_id,
    u_int8_t  opt_len, u_int8_t  opt_len,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an RFC 1771 Border Gateway Protocol 4 (BGP-4) OPEN header. This is the first message sent by each side of a BGP connection. The optional parameters options should be constructed using the payload interface (see RFC 1771 for the options structures).

    Parameters:
    - - - - - - - - - + + + + + + + + +
    version protocol version (should be set to 4)
    src_as Autonomous System of the sender
    hold_time used to compute the maximum allowed time between the receipt of KEEPALIVE, and/or UPDATE messages by the sender
    bgp_id BGP identifier of the sender
    opt_len total length of the optional parameters field in bytes
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    version protocol version (should be set to 4)
    src_as Autonomous System of the sender
    hold_time used to compute the maximum allowed time between the receipt of KEEPALIVE, and/or UPDATE messages by the sender
    bgp_id BGP identifier of the sender
    opt_len total length of the optional parameters field in bytes
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_bgp4_update u_int16_t  unfeasible_rt_len, libnet_ptag_t libnet_build_bgp4_update (u_int16_t  unfeasible_rt_len,
    u_int8_t *  withdrawn_rt, u_int8_t *  withdrawn_rt,
    u_int16_t  total_path_attr_len, u_int16_t  total_path_attr_len,
    u_int8_t *  path_attributes, u_int8_t *  path_attributes,
    u_int16_t  info_len, u_int16_t  info_len,
    u_int8_t *  reachability_info, u_int8_t *  reachability_info,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an RFC 1771 Border Gateway Protocol 4 (BGP-4) update header. Update messages are used to transfer routing information between BGP peers.

    Parameters:
    - - - - - - - - - - + + + + + + + + + +
    unfeasible_rt_len indicates the length of the (next) "withdrawn routes" field in bytes
    withdrawn_rt list of IP addresses prefixes for the routes that are being withdrawn; each IP address prefix is built as a 2-tuple <length (1 byte), prefix (variable)>
    total_path_attr_len indicates the length of the (next) "path attributes" field in bytes
    path_attributes each attribute is a 3-tuple <type (2 bytes), length, value>
    info_len indicates the length of the (next) "network layer reachability information" field in bytes (needed for internal memory size calculation)
    reachability_info 2-tuples <length (1 byte), prefix (variable)>.
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    unfeasible_rt_len indicates the length of the (next) "withdrawn routes" field in bytes
    withdrawn_rt list of IP addresses prefixes for the routes that are being withdrawn; each IP address prefix is built as a 2-tuple <length (1 byte), prefix (variable)>
    total_path_attr_len indicates the length of the (next) "path attributes" field in bytes
    path_attributes each attribute is a 3-tuple <type (2 bytes), length, value>
    info_len indicates the length of the (next) "network layer reachability information" field in bytes (needed for internal memory size calculation)
    reachability_info 2-tuples <length (1 byte), prefix (variable)>.
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_bootpv4 u_int8_t  opcode, libnet_ptag_t libnet_build_bootpv4 (u_int8_t  opcode,
    u_int8_t  htype, u_int8_t  htype,
    u_int8_t  hlen, u_int8_t  hlen,
    u_int8_t  hopcount, u_int8_t  hopcount,
    u_int32_t  xid, u_int32_t  xid,
    u_int16_t  secs, u_int16_t  secs,
    u_int16_t  flags, u_int16_t  flags,
    u_int32_t  cip, u_int32_t  cip,
    u_int32_t  yip, u_int32_t  yip,
    u_int32_t  sip, u_int32_t  sip,
    u_int32_t  gip, u_int32_t  gip,
    u_int8_t *  chaddr, u_int8_t *  chaddr,
    u_int8_t *  sname, u_int8_t *  sname,
    u_int8_t *  file, u_int8_t *  file,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Parameters:
    - - - - + + + +
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_cdp u_int8_t  version, libnet_ptag_t libnet_build_cdp (u_int8_t  version,
    u_int8_t  ttl, u_int8_t  ttl,
    u_int16_t  sum, u_int16_t  sum,
    u_int16_t  type, u_int16_t  type,
    u_int16_t  len, u_int16_t  len,
    u_int8_t *  value, u_int8_t *  value,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - - -

    -Builds a Cisco Discovery Protocol (CDP) header. Cisco Systems designed CDP to aid in the network management of adjacent Cisco devices. The CDP protocol specifies data by using a type/length/value (TLV) setup. The first TLV can specified by using the functions type, length, and value arguments. To specify additional TLVs, the programmer could either use the payload interface or libnet_build_data() to construct them.

    Parameters:
    - - - - - - - - - - - + +
    + +

    +Builds a Cisco Discovery Protocol (CDP) header. Cisco Systems designed CDP to aid in the network management of adjacent Cisco devices. The CDP protocol specifies data by using a type/length/value (TLV) setup. The first TLV can specified by using the functions type, length, and value arguments. To specify additional TLVs, the programmer could either use the payload interface or libnet_build_data() to construct them.

    Parameters:
    +
    version CDP version
    ttl time to live (time information should be cached by recipient)
    sum checksum (0 for libnet to autofill)
    type type of data contained in value
    len length of value arugment
    value the CDP information string
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    + + + + + + + + + +
    version CDP version
    ttl time to live (time information should be cached by recipient)
    sum checksum (0 for libnet to autofill)
    type type of data contained in value
    len length of value arugment
    value the CDP information string
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_data u_int8_t *  payload, libnet_ptag_t libnet_build_data (u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds a generic libnet protocol header. This is useful for including an optional payload to a packet that might need to change repeatedly inside of a loop.

    Parameters:
    - - - - + + + +
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_dhcpv4 u_int8_t  opcode, libnet_ptag_t libnet_build_dhcpv4 (u_int8_t  opcode,
    u_int8_t  htype, u_int8_t  htype,
    u_int8_t  hlen, u_int8_t  hlen,
    u_int8_t  hopcount, u_int8_t  hopcount,
    u_int32_t  xid, u_int32_t  xid,
    u_int16_t  secs, u_int16_t  secs,
    u_int16_t  flags, u_int16_t  flags,
    u_int32_t  cip, u_int32_t  cip,
    u_int32_t  yip, u_int32_t  yip,
    u_int32_t  sip, u_int32_t  sip,
    u_int32_t  gip, u_int32_t  gip,
    u_int8_t *  chaddr, u_int8_t *  chaddr,
    u_int8_t *  sname, u_int8_t *  sname,
    u_int8_t *  file, u_int8_t *  file,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Parameters:
    - - - - + + + +
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_dnsv4 u_int16_t  h_len, libnet_ptag_t libnet_build_dnsv4 (u_int16_t  h_len,
    u_int16_t  id, u_int16_t  id,
    u_int16_t  flags, u_int16_t  flags,
    u_int16_t  num_q, u_int16_t  num_q,
    u_int16_t  num_anws_rr, u_int16_t  num_anws_rr,
    u_int16_t  num_auth_rr, u_int16_t  num_auth_rr,
    u_int16_t  num_addi_rr, u_int16_t  num_addi_rr,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an RFC 1035 version 4 DNS header. Additional DNS payload information should be specified using the payload interface.

    Parameters:
    - - - - - - - - - - + + + + + + + + + +
    id DNS packet id
    flags control flags
    num_q number of questions
    num_anws_rr number of answer resource records
    num_auth_rr number of authority resource records
    num_addi_rr number of additional resource records
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    id DNS packet id
    flags control flags
    num_q number of questions
    num_anws_rr number of answer resource records
    num_auth_rr number of authority resource records
    num_addi_rr number of additional resource records
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_egre u_int16_t  fv, libnet_ptag_t libnet_build_egre (u_int16_t  fv,
    u_int16_t  type, u_int16_t  type,
    u_int16_t  sum, u_int16_t  sum,
    u_int16_t  offset, u_int16_t  offset,
    u_int32_t  key, u_int32_t  key,
    u_int32_t  seq, u_int32_t  seq,
    u_int16_t  len, u_int16_t  len,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Generic Routing Encapsulation (GRE - RFC 1701) is used to encapsulate any protocol. Hence, the IP part of the packet is usually referred as "delivery header". It is then followed by the GRE header and finally the encapsulated packet (IP or whatever). As GRE is very modular, the first GRE header describes the structure of the header, using bits and flag to specify which fields will be present in the header.

    Parameters:
    - - - - - - - - - - - + + + + + + + + + + +
    fv the 16 0 to 7: which fields are included in the header (checksum, seq. number, key, ...), bits 8 to 12: flag, bits 13 to 15: version.
    payload optional payload or NULL
    type which protocol is encapsulated (PPP, IP, ...)
    sum checksum (0 for libnet to autofill).
    offset byte offset from the start of the routing field to the first byte of the SRE
    key inserted by the encapsulator to authenticate the source
    seq sequence number used by the receiver to sort the packets
    len size of the GRE packet
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    fv the 16 0 to 7: which fields are included in the header (checksum, seq. number, key, ...), bits 8 to 12: flag, bits 13 to 15: version.
    payload optional payload or NULL
    type which protocol is encapsulated (PPP, IP, ...)
    sum checksum (0 for libnet to autofill).
    offset byte offset from the start of the routing field to the first byte of the SRE
    key inserted by the encapsulator to authenticate the source
    seq sequence number used by the receiver to sort the packets
    len size of the GRE packet
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ethernet u_int8_t *  dst, libnet_ptag_t libnet_build_ethernet (u_int8_t *  dst,
    u_int8_t *  src, u_int8_t *  src,
    u_int16_t  type, u_int16_t  type,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an Ethernet header. The RFC 894 Ethernet II header is almost identical to the IEEE 802.3 header, with the exception that the field immediately following the source address holds the layer 3 protocol (as opposed to frame's length). You should only use this function when libnet is initialized with the LIBNET_LINK interface.

    Parameters:
    - - - - - - - + + + + + + +
    dst destination ethernet address
    src source ethernet address
    type upper layer protocol type
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    dst destination ethernet address
    src source ethernet address
    type upper layer protocol type
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_fddi u_int8_t  fc, libnet_ptag_t libnet_build_fddi (u_int8_t  fc,
    u_int8_t *  dst, u_int8_t *  dst,
    u_int8_t *  src, u_int8_t *  src,
    u_int8_t  dsap, u_int8_t  dsap,
    u_int8_t  ssap, u_int8_t  ssap,
    u_int8_t  cf, u_int8_t  cf,
    u_int8_t *  org, u_int8_t *  oui,
    u_int16_t  type, u_int16_t  type,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds a Fiber Distributed Data Interface (FDDI) header.

    Parameters:
    - - - - - - - - - - + + + + + + + + + +
    fc class format and priority dst destination fddi address src source fddi address
    dsap destination service access point
    ssap source service access point
    cf cf
    org 3 byte IEEE organizational code
    type upper layer protocol
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    fc class format and priority dst destination fddi address src source fddi address
    dsap destination service access point
    ssap source service access point
    cf cf
    oui 3 byte IEEE organizational code
    type upper layer protocol
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_gre u_int16_t  fv, libnet_ptag_t libnet_build_gre (u_int16_t  fv,
    u_int16_t  type, u_int16_t  type,
    u_int16_t  sum, u_int16_t  sum,
    u_int16_t  offset, u_int16_t  offset,
    u_int32_t  key, u_int32_t  key,
    u_int32_t  seq, u_int32_t  seq,
    u_int16_t  len, u_int16_t  len,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Generic Routing Encapsulation (GRE - RFC 1701) is used to encapsulate any protocol. Hence, the IP part of the packet is usually referred as "delivery header". It is then followed by the GRE header and finally the encapsulated packet (IP or whatever). As GRE is very modular, the first GRE header describes the structure of the header, using bits and flag to specify which fields will be present in the header.

    Parameters:
    - - - - - - - - - - - + + + + + + + + + + +
    fv the 16 0 to 7: which fields are included in the header (checksum, seq. number, key, ...), bits 8 to 12: flag, bits 13 to 15: version.
    payload optional payload or NULL
    type which protocol is encapsulated (PPP, IP, ...)
    sum checksum (0 for libnet to autofill).
    offset byte offset from the start of the routing field to the first byte of the SRE
    key inserted by the encapsulator to authenticate the source
    seq sequence number used by the receiver to sort the packets
    len size of the GRE packet
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    fv the 16 0 to 7: which fields are included in the header (checksum, seq. number, key, ...), bits 8 to 12: flag, bits 13 to 15: version.
    payload optional payload or NULL
    type which protocol is encapsulated (PPP, IP, ...)
    sum checksum (0 for libnet to autofill).
    offset byte offset from the start of the routing field to the first byte of the SRE
    key inserted by the encapsulator to authenticate the source
    seq sequence number used by the receiver to sort the packets
    len size of the GRE packet
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_gre_last_sre libnet_t *  l, libnet_ptag_t libnet_build_gre_last_sre (libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Parameters:
    - - - - + + + +
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_gre_sre u_int16_t  af, libnet_ptag_t libnet_build_gre_sre (u_int16_t  af,
    u_int8_t  offset, u_int8_t  offset,
    u_int8_t  length, u_int8_t  length,
    u_int8_t *  routing, u_int8_t *  routing,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Parameters:
    - - - - + + + +
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_icmpv4_echo u_int8_t  type, libnet_ptag_t libnet_build_icmpv4_echo (u_int8_t  type,
    u_int8_t  code, u_int8_t  code,
    u_int16_t  sum, u_int16_t  sum,
    u_int16_t  id, u_int16_t  id,
    u_int16_t  seq, u_int16_t  seq,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an IP version 4 RFC 792 Internet Control Message Protocol (ICMP) echo request/reply header

    Parameters:
    - - - - - - - - - + + + + + + + + +
    type type of ICMP packet (should be ICMP_ECHOREPLY or ICMP_ECHO)
    code code of ICMP packet (should be 0)
    sum checksum (0 for libnet to autofill)
    id identification number
    seq packet sequence number
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    type type of ICMP packet (should be ICMP_ECHOREPLY or ICMP_ECHO)
    code code of ICMP packet (should be 0)
    sum checksum (0 for libnet to autofill)
    id identification number
    seq packet sequence number
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_icmpv4_mask u_int8_t  type, libnet_ptag_t libnet_build_icmpv4_mask (u_int8_t  type,
    u_int8_t  code, u_int8_t  code,
    u_int16_t  sum, u_int16_t  sum,
    u_int16_t  id, u_int16_t  id,
    u_int16_t  seq, u_int16_t  seq,
    u_int32_t  mask, u_int32_t  mask,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an IP version 4 RFC 792 Internet Control Message Protocol (ICMP) IP netmask request/reply header.

    Parameters:
    - - - - - - - - - - + + + + + + + + + +
    type type of ICMP packet (should be ICMP_MASKREQ or ICMP_MASKREPLY)
    code code of ICMP packet (should be 0)
    sum checksum (0 for libnet to autofill)
    id identification number
    seq packet sequence number
    mask subnet mask
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    type type of ICMP packet (should be ICMP_MASKREQ or ICMP_MASKREPLY)
    code code of ICMP packet (should be 0)
    sum checksum (0 for libnet to autofill)
    id identification number
    seq packet sequence number
    mask subnet mask
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - - - - - - - + + +

    + +

    +
    +
    libnet_ptag_t libnet_build_icmpv4_redirect u_int8_t  type,
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - - + + +
    u_int8_t  code, libnet_ptag_t libnet_build_icmpv4_redirect (u_int8_t  type,
    u_int16_t  sum, u_int8_t  code,
    u_int32_t  gateway, u_int16_t  sum,
    u_int16_t  orig_len, u_int32_t  gateway,
    u_int8_t  orig_tos, u_int8_t *  payload,
    u_int16_t  orig_id, u_int32_t  payload_s,
    u_int16_t  orig_frag, libnet_t *  l,
    u_int8_t  orig_ttl, libnet_ptag_t  ptag 
    u_int8_t  orig_prot, )
    + +
    + +

    +Builds an IP version 4 RFC 792 Internet Message Control Protocol (ICMP) redirect header. The IP header that caused the error message should be built by a previous call to libnet_build_ipv4().

    Parameters:
    + + + + + + + + +
    type type of ICMP packet (should be ICMP_REDIRECT)
    code code of ICMP packet (should be one of the four redirect codes)
    sum checksum (0 for libnet to autofill)
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    u_int16_t  orig_check, libnet_ptag_t libnet_build_icmpv4_timeexceed (u_int8_t  type,
    u_int32_t  orig_src, u_int8_t  code,
    u_int32_t  orig_dst, u_int16_t  sum,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - - -

    -Builds an IP version 4 RFC 792 Internet Message Control Protocol (ICMP) redirect header. The additional arguments enable the application programmer to easily specify the original IP header values (the IP header of the packet that supposedly caused the ICMP redirect message in the first place).

    Parameters:
    - - - - - - - - - - - - - - - + +
    + +

    +Builds an IP version 4 RFC 792 Internet Control Message Protocol (ICMP) time exceeded header. The IP header that caused the error message should be built by a previous call to libnet_build_ipv4().

    Parameters:
    +
    type type of ICMP packet (should be ICMP_REDIRECT)
    code code of ICMP packet (should be one of the four redirect codes)
    sum checksum (0 for libnet to autofill)
    orig_id original IP header identification
    orig_frag original IP header fragmentation information
    orig_ttl orginal IP header time to live
    orig_prot original IP header protocol
    orig_check original IP header checksum
    orig_src original IP header source address
    orig_dst original IP header destination address
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    + + + + + + + +
    type type of ICMP packet (should be ICMP_TIMXCEED)
    code code of ICMP packet (ICMP_TIMXCEED_INTRANS / ICMP_TIMXCEED_REASS)
    sum checksum (0 for libnet to autofill)
    payload optional payload or NULL
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - - + + +
    libnet_ptag_t libnet_build_icmpv4_timeexceed u_int8_t  type, libnet_ptag_t libnet_build_icmpv4_timestamp (u_int8_t  type,
    u_int8_t  code, u_int8_t  code,
    u_int16_t  sum, u_int16_t  sum,
    u_int16_t  orig_len, u_int16_t  id,
    u_int8_t  orig_tos, u_int16_t  seq,
    u_int16_t  orig_id, n_time  otime,
    u_int16_t  orig_frag, n_time  rtime,
    u_int8_t  orig_ttl, n_time  ttime,
    u_int8_t  orig_prot, u_int8_t *  payload,
    u_int16_t  orig_check, u_int32_t  payload_s,
    u_int32_t  orig_src, libnet_t *  l,
    u_int32_t  orig_dst, libnet_ptag_t  ptag 
    u_int8_t *  payload, )
    + +
    + +

    +Builds an IP version 4 RFC 792 Internet Control Message Protocol (ICMP) timestamp request/reply header.

    Parameters:
    + + + + + + + + + + + + + +
    type type of ICMP packet (should be ICMP_TSTAMP or ICMP_TSTAMPREPLY)
    code code of ICMP packet (should be 0)
    sum checksum (0 for libnet to autofill)
    id identification number
    seq sequence number
    otime originate timestamp
    rtime receive timestamp
    ttime transmit timestamp
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + - - - - + + + + + - - - + + + - - - + + + - - + + - -
    u_int32_t  payload_s, libnet_ptag_t libnet_build_icmpv4_unreach (u_int8_t  type,
    libnet_t *  l, u_int8_t  code,
    libnet_ptag_t  ptagu_int16_t  sum,
    u_int8_t *  payload,
    -
    - - - - - -
    -   - - -

    -Builds an IP version 4 RFC 792 Internet Control Message Protocol (ICMP) time exceeded header. The additional arguments enable the application programmer to easily specify the original IPv4 header values (the IP header of the packet that supposedly caused the ICMP time exceeded message in the first place).

    Parameters:
    - - - - - - - - - - - - - - - - -
    type type of ICMP packet (should be ICMP_TIMXCEED)
    code code of ICMP packet (ICMP_TIMXCEED_INTRANS / ICMP_TIMXCEED_REASS)
    sum checksum (0 for libnet to autofill)
    orig_id original IP header identification
    orig_frag original IP header fragmentation information
    orig_ttl orginal IP header time to live
    orig_prot original IP header protocol
    orig_check original IP header checksum
    orig_src original IP header source address
    orig_dst original IP header destination address
    payload optional payload or NULL
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    -
    -
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - - - - - + + + + + - - - + + + - - - + + - - - + + +
    libnet_ptag_t libnet_build_icmpv4_timestamp u_int8_t  type, u_int32_t  payload_s,
    u_int8_t  code, libnet_t *  l,
    u_int16_t  sum, libnet_ptag_t  ptag 
    u_int16_t  id, )
    + +
    + +

    +Builds an IP version 4 RFC 792 Internet Control Message Protocol (ICMP) unreachable header. The IP header that caused the error message should be built by a previous call to libnet_build_ipv4().

    Parameters:
    + + + + + + + + +
    type type of ICMP packet (should be ICMP_UNREACH)
    code code of ICMP packet (should be one of the 16 unreachable codes)
    sum checksum (0 for libnet to autofill)
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + - - + + - - + + -
    u_int16_t  seq, libnet_ptag_t libnet_build_icmpv6_echo (u_int8_t  type,
    n_time  otime, u_int8_t  code,
    n_time  rtime, u_int16_t  sum,
    n_time  ttime, u_int16_t  id,
    u_int8_t *  payload, u_int16_t  seq,
    u_int32_t  payload_s, u_int8_t *  payload,
    libnet_t *  l, u_int32_t  payload_s,
    libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    -Builds an IP version 4 RFC 792 Internet Control Message Protocol (ICMP) timestamp request/reply header.

    Parameters:
    +Builds an IP version 6 RFC 2463 Internet Control Message Protocol (ICMP) echo request/reply header
    Parameters:
    - - - - - - - - - - - - + + + + + + + + +
    type type of ICMP packet (should be ICMP_TSTAMP or ICMP_TSTAMPREPLY)
    code code of ICMP packet (should be 0)
    sum checksum (0 for libnet to autofill)
    id identification number
    seq sequence number
    otime originate timestamp
    rtime receive timestamp
    ttime transmit timestamp
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    type type of ICMP packet (should be ICMP6_ECHOREPLY or ICMP6_ECHO)
    code code of ICMP packet (should be 0)
    sum checksum (0 for libnet to autofill)
    id identification number
    seq packet sequence number
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + +
    libnet_ptag_t libnet_build_icmpv4_unreach u_int8_t  type, libnet_ptag_t libnet_build_icmpv6_na (u_int8_t  type,
    u_int8_t  code, u_int8_t  code,
    u_int16_t  sum, u_int16_t  sum,
    u_int16_t  orig_len, u_int8_t  router,
    u_int8_t  orig_tos, u_int8_t  solicited,
    u_int16_t  orig_id, u_int8_t  override,
    u_int16_t  orig_frag, struct libnet_in6_addr  target,
    u_int8_t  orig_ttl, u_int8_t *  payload,
    u_int8_t  orig_prot, u_int32_t  payload_s,
    u_int16_t  orig_check, libnet_t *  l,
    libnet_ptag_t  ptag 
    )
    + +
    + +

    +Builds an IP version 6 RFC 2463 Internet Control Message Protocol (ICMP) neighbor advertissement header

    Parameters:
    + + + + + + + + + + + + +
    type type of ICMP packet (should be ICMP6_NEIGHBORADV)
    code code of ICMP packet (should be 0)
    sum checksum (0 for libnet to autofill)
    router flag
    solicited flag
    override flag
    target address
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    libnet_ptag_t libnet_build_icmpv6_ni (u_int8_t  type,
    u_int8_t  code,
    u_int16_t  sum,
    u_int16_t  qtype,
    u_int16_t  flags,
    u_int8_t *  nonce,
    u_int8_t *  payload,
    u_int32_t  payload_s,
    libnet_t *  l,
    libnet_ptag_t  ptag 
    )
    +
    +
    + +

    +Builds an IP version 6 RFC 2463 Internet Control Message Protocol (ICMP) node information header

    Parameters:
    + + + + + + + + + + + +
    type type of ICMP packet (should be ICMP6_NIQUERY or ICMP6_NIREPLY)
    code code of ICMP packet (should be ICMP6_NIQUERY_IPV6, ICMP6_NIQUERY_IPV4, ICMP6_NIQUERY_FQDN, ICMP6_NIREPLY_SUCCESS, ICMP6_NIREPLY_REFUSED or ICMP6_NIREPLY_UNKNOWN)
    sum checksum (0 for libnet to autofill)
    qtype 
    flags 
    nonce 
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    libnet_ptag_t libnet_build_icmpv6_ns (u_int8_t  type,
    u_int8_t  code,
    u_int16_t  sum,
    u_int32_t  reserved,
    struct libnet_in6_addr  target,
    u_int8_t *  payload,
    u_int32_t  payload_s,
    libnet_t *  l,
    libnet_ptag_t  ptag 
    )
    +
    +
    + +

    +Builds an IP version 6 RFC 2463 Internet Control Message Protocol (ICMP) neighbor solicitation header

    Parameters:
    + + + + + + + + + + +
    type type of ICMP packet (should be ICMP6_NEIGHBORSO)
    code code of ICMP packet (should be 0)
    sum checksum (0 for libnet to autofill)
    reserved 
    target 
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    libnet_ptag_t libnet_build_icmpv6_opt_mtu (u_int8_t  type,
    u_int8_t  length,
    u_int16_t  r,
    u_int32_t  mtu,
    u_int32_t  payload_s,
    u_int8_t *  payload,
    libnet_t *  l,
    libnet_ptag_t  ptag 
    )
    +
    +
    + +

    +Builds an IP version 6 RFC 2461 Internet Control Message Protocol (ICMP) MTU option header

    Parameters:
    + + + + + + + + + +
    type of ICMP option packet (should be ICMP6_OPT_RH)
    len of ICMP option packet
    reserved 
    MTU 
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    libnet_ptag_t libnet_build_icmpv6_opt_pi (u_int8_t  type,
    u_int8_t  length,
    u_int8_t  prefixlen,
    u_int8_t  ol,
    u_int8_t  a,
    u_int32_t  validlt,
    u_int32_t  preferredlt,
    u_int32_t  reserved,
    struct libnet_in6_addr  prefix,
    u_int32_t  payload_s,
    u_int8_t *  payload,
    libnet_t *  l,
    libnet_ptag_t  ptag 
    )
    +
    +
    + +

    +Builds an IP version 6 RFC 2461 Internet Control Message Protocol (ICMP) prefix information option header

    Parameters:
    + + + + + + + + + + + + + + +
    type of ICMP option packet (should be ICMP6_OPT_PI)
    len of ICMP option packet
    prefix len
    on link flag
    autonomous addr configuration flag
    valid lifetime
    preferred lifetime
    reserved 
    ip6 prefix
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    libnet_ptag_t libnet_build_icmpv6_opt_rh (u_int8_t  type,
    u_int8_t  length,
    u_int16_t  r1,
    u_int32_t  r2,
    u_int32_t  payload_s,
    u_int8_t *  payload,
    libnet_t *  l,
    libnet_ptag_t  ptag 
    )
    +
    +
    + +

    +Builds an IP version 6 RFC 2461 Internet Control Message Protocol (ICMP) redirected option header

    Parameters:
    + + + + + + + + + +
    type of ICMP option packet (should be ICMP6_OPT_RH)
    len of ICMP option packet
    reserved 
    reserved 
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    libnet_ptag_t libnet_build_icmpv6_opt_slla (u_int8_t  type,
    u_int8_t  length,
    u_int8_t *  source,
    u_int8_t *  payload,
    u_int32_t  payload_s,
    libnet_t *  l,
    libnet_ptag_t  ptag 
    )
    +
    +
    + +

    +Builds an IP version 6 RFC 2461 Internet Control Message Protocol (ICMP) source link layer option header

    Parameters:
    + + + + + + + + +
    type of ICMP option packet (should be ICMP6_OPT_SLLA)
    len of ICMP option packet
    source mac address
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    libnet_ptag_t libnet_build_icmpv6_opt_tlla (u_int8_t  type,
    u_int8_t  length,
    u_int8_t *  target,
    u_int8_t *  payload,
    u_int32_t  payload_s,
    libnet_t *  l,
    libnet_ptag_t  ptag 
    )
    +
    +
    + +

    +Builds an IP version 6 RFC 2461 Internet Control Message Protocol (ICMP) target link layer option header

    Parameters:
    + + + + + + + + +
    type of ICMP option packet (should be ICMP6_OPT_TLLA)
    code of ICMP option packet (should be 0)
    target mac address
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    libnet_ptag_t libnet_build_icmpv6_parampb (u_int8_t  type,
    u_int8_t  code,
    u_int16_t  sum,
    u_int32_t  pointer,
    u_int8_t *  payload,
    u_int32_t  payload_s,
    libnet_t *  l,
    libnet_ptag_t  ptag 
    )
    +
    +
    + +

    +Builds an IP version 6 RFC 2463 Internet Control Message Protocol (ICMP) parameter problem header

    Parameters:
    + + + + + + + + + +
    type type of ICMP packet (should be ICMP6_PARAMPB)
    code code of ICMP packet (should be ICMP6_PARAMPROB_HEADER or ICMP6_PARAMPROB_NEXTHEADER or ICMP6_PARAMPROB_OPTION)
    sum checksum (0 for libnet to autofill)
    pointer number
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    libnet_ptag_t libnet_build_icmpv6_ra (u_int8_t  type,
    u_int8_t  code,
    u_int16_t  sum,
    u_int8_t  chl,
    u_int8_t  m,
    u_int8_t  o,
    u_int16_t  rlf,
    u_int32_t  rct,
    u_int16_t  rtt,
    u_int8_t *  payload,
    u_int32_t  payload_s,
    libnet_t *  l,
    libnet_ptag_t  ptag 
    )
    +
    +
    + +

    +Builds an IP version 6 RFC 2463 Internet Control Message Protocol (ICMP) router advertissement header

    Parameters:
    + + + + + + + + + + + + + + +
    type type of ICMP packet (should be ICMP6_ROUTERADV)
    code code of ICMP packet (should be 0)
    sum checksum (0 for libnet to autofill)
    chl (current hop limit)
    m (manager address)
    o (other stateful config flag)
    rlf (router lifetime)
    rct (recheable time)
    rtt (retrans time)
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + +
    libnet_ptag_t libnet_build_icmpv6_redirect (u_int8_t  type,
    u_int8_t  code,
    u_int16_t  sum,
    u_int32_t  unused,
    struct  libnet_in6_addr,
    struct  libnet_in6_addr,
    u_int8_t *  payload,
    u_int32_t  payload_s,
    libnet_t *  l,
    u_int32_t  orig_src, libnet_ptag_t  ptag 
    u_int32_t  orig_dst, )
    +
    +
    + +

    +Builds an IP version 6 RFC 2463 Internet Control Message Protocol (ICMP) redirect message header

    Parameters:
    + + + + + + + + + + + +
    type type of ICMP packet (should be ICMP6_REDIRECT)
    code code of ICMP packet (should be 0)
    sum checksum (0 for libnet to autofill)
    unused. 
    target ipv6 address
    destination ipv6 address
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + + + + + + + - - - + + + + + + + + - - + + + + + + + + - - + + + + + + + + - - + + - - + + -
    libnet_ptag_t libnet_build_icmpv6_rs (u_int8_t  type,
    u_int8_t *  payload, u_int8_t  code,
    u_int16_t  sum,
    u_int32_t  payload_s, u_int32_t  unused,
    u_int8_t *  payload,
    libnet_t *  l, u_int32_t  payload_s,
    libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - - -

    -Builds an IP version 4 RFC 792 Internet Control Message Protocol (ICMP) unreachable header. The additional arguments enable the application programmer to easily specify the original IPv4 header values (the IP header of the packet that supposedly caused the ICMP unreachable message in the first place).

    Parameters:
    - - - - - - - - - - - - - - - + +
    + +

    +Builds an IP version 6 RFC 2463 Internet Control Message Protocol (ICMP) router solicitation header

    Parameters:
    +
    type type of ICMP packet (should be ICMP_UNREACH)
    code code of ICMP packet (should be one of the 16 unreachable codes)
    sum checksum (0 for libnet to autofill)
    orig_id original IP header identification
    orig_frag original IP header fragmentation information
    orig_ttl orginal IP header time to live
    orig_prot original IP header protocol
    orig_check original IP header checksum
    orig_src original IP header source address
    orig_dst original IP header destination address
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    + + + + + + + +
    type type of ICMP packet (should be ICMP6_ROUTERSO)
    code code of ICMP packet (should be 0)
    sum checksum (0 for libnet to autofill)
    unused 
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    + + + + + + - - - - + + + + + + + + + + - - + + + + + + + + - - + + + + + + + + - - + + + + + +
    libnet_ptag_t libnet_build_icmpv6_timxceed (u_int8_t  type,
    libnet_ptag_t libnet_build_igmp u_int8_t  type, u_int8_t  code,
    u_int16_t  sum,
    u_int8_t  code, u_int32_t  unused,
    u_int8_t *  payload,
    u_int16_t  sum, u_int32_t  payload_s,
    libnet_t *  l,
    u_int32_t  ip, libnet_ptag_t  ptag 
    )
    + +
    + +

    +Builds an IP version 6 RFC 2463 Internet Control Message Protocol (ICMP) time exceeded header

    Parameters:
    + + + + + + + + + +
    type type of ICMP packet (should be ICMP6_TIMXCEED)
    code code of ICMP packet (should be ICMP6_TIMXCEED_TRANSIT or ICMP6_TIMXCEED_REASSEMBLY)
    sum checksum (0 for libnet to autofill)
    unused number
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + + + + + + + + + - - + + + + + + + + - - + + + + + + + + - - + + + + + + + + - - + + - - + + -
    libnet_ptag_t libnet_build_icmpv6_toobig (u_int8_t  type,
    u_int8_t *  payload, u_int8_t  code,
    u_int16_t  sum,
    u_int32_t  payload_s, u_int32_t  mtu,
    u_int8_t *  payload,
    libnet_t *  l, u_int32_t  payload_s,
    libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    -Builds an RFC 1112 Internet Group Memebership Protocol (IGMP) header.

    Parameters:
    +Builds an IP version 6 RFC 2463 Internet Control Message Protocol (ICMP) packet too big header
    Parameters:
    - - - - - - - - + + + + + + + +
    type packet type
    code packet code (should be 0)
    sum checksum (0 for libnet to autofill)
    ip IPv4 address
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    type type of ICMP packet (should be ICMP6_TOOBIG)
    code code of ICMP packet (should be 0)
    sum checksum (0 for libnet to autofill)
    MTU. 
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + + + + + + - - + + + + + + + + - - + + + + + +
    libnet_ptag_t libnet_build_ipsec_ah u_int8_t  nh, libnet_ptag_t libnet_build_icmpv6_unreach (u_int8_t  type,
    u_int8_t  len, u_int8_t  code,
    u_int16_t  res, u_int16_t  sum,
    u_int32_t  spi, u_int32_t  unused,
    u_int8_t *  payload,
    u_int32_t  seq, u_int32_t  payload_s,
    libnet_t *  l,
    u_int32_t  auth, libnet_ptag_t  ptag 
    )
    + +
    + +

    +Builds an IP version 6 RFC 2463 Internet Control Message Protocol (ICMP) destination unreachable header

    Parameters:
    + + + + + + + + + +
    type type of ICMP packet (should be ICMP6_UNREACH)
    code code of ICMP packet (should be ICMP6_UNREACH_NOROUTE or ICMP6_UNREACH_ADMIN or ICMP6_UNREACH_ADDR or ICMP6_UNREACH_NOTNEIGHBOR or ICMP6_UNREACH_PORT)
    sum checksum (0 for libnet to autofill)
    unused number that must be zero.
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + + + + + + + + + - - + + + + + + + + - - + + + + + + + + - - + + + + + + + + - - + + - - + + -
    libnet_ptag_t libnet_build_igmp (u_int8_t  type,
    u_int8_t *  payload, u_int8_t  code,
    u_int16_t  sum,
    u_int32_t  payload_s, u_int32_t  ip,
    u_int8_t *  payload,
    libnet_t *  l, u_int32_t  payload_s,
    libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    -Builds an Internet Protocol Security Authentication header.

    Parameters:
    +Builds an RFC 1112 Internet Group Memebership Protocol (IGMP) header.
    Parameters:
    - - - - - - - - - - + + + + + + + +
    nh next header
    len payload length
    res reserved
    spi security parameter index
    seq sequence number
    auth authentication data
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    type packet type
    code packet code (should be 0)
    sum checksum (0 for libnet to autofill)
    ip IPv4 address
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ipsec_esp_ftr u_int8_t  len, libnet_ptag_t libnet_build_ipcomp (u_int8_t  nx,
    u_int8_t  nh, u_int8_t  flags,
    int8_t *  auth, u_int16_t  cpi,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    -Builds an Internet Protocol Security Encapsulating Security Payload footer.

    Parameters:
    +Builds an RFC 2393 IP Compression header.
    Parameters:
    - - - - - - - + + + + + + +
    len padding length
    nh next header
    auth authentication data
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    nx next header field
    flags reserved for future use
    cpi compression parameter index
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + + + + + + - - + + + + + + + + - - + + + + + + + + - - + + - - + + -
    libnet_ptag_t libnet_build_ipsec_esp_hdr u_int32_t  spi, libnet_ptag_t libnet_build_ipsec_ah (u_int8_t  nh,
    u_int32_t  seq, u_int8_t  len,
    u_int32_t  iv, u_int16_t  res,
    u_int8_t *  payload, u_int32_t  spi,
    u_int32_t  seq,
    u_int32_t  payload_s, u_int32_t  auth,
    u_int8_t *  payload,
    libnet_t *  l, u_int32_t  payload_s,
    libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    -Builds an Internet Protocol Security Encapsulating Security Payload header.

    Parameters:
    +Builds an Internet Protocol Security Authentication header.
    Parameters:
    - - - - - - - + + + + + + + + + +
    spi security parameter index
    seq ESP sequence number
    iv initialization vector
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    nh next header
    len payload length
    res reserved
    spi security parameter index
    seq sequence number
    auth authentication data
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    + + + + + + - - - - + + + + + + + + + + + + + + + + - - + + + + + + + + - - + + + + + +
    libnet_ptag_t libnet_build_ipsec_esp_ftr (u_int8_t  len,
    libnet_ptag_t libnet_build_ipv4 u_int16_t  len, u_int8_t  nh,
    int8_t *  auth,
    u_int8_t *  payload,
    u_int8_t  tos, u_int32_t  payload_s,
    libnet_t *  l,
    u_int16_t  id, libnet_ptag_t  ptag 
    )
    + +
    + +

    +Builds an Internet Protocol Security Encapsulating Security Payload footer.

    Parameters:
    + + + + + + + + +
    len padding length
    nh next header
    auth authentication data
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + + + + + + + + + - - + + + + + + + + - - + + + + + + + + - - + + + + + + + - - + + + +
    libnet_ptag_t libnet_build_ipsec_esp_hdr (u_int32_t  spi,
    u_int16_t  frag, u_int32_t  seq,
    u_int32_t  iv,
    u_int8_t  ttl, u_int8_t *  payload,
    u_int32_t  payload_s,
    u_int8_t  prot, libnet_t *  l,
    libnet_ptag_t  ptag 
    u_int16_t  sum, )
    +
    +
    + +

    +Builds an Internet Protocol Security Encapsulating Security Payload header.

    Parameters:
    + + + + + + + + +
    spi security parameter index
    seq ESP sequence number
    iv initialization vector
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    +
    +
    Returns:
    protocol tag value on success, -1 on error
    + +
    +

    + +

    +
    + + + + + + + + + + + + - - + + + + + + + + - - + + + + + + + + - - + + + + + + + + - - + + + + + + + + - - + + + + + + + + - - + + - - + + -
    libnet_ptag_t libnet_build_ipv4 (u_int16_t  len,
    u_int8_t  tos,
    u_int32_t  src, u_int16_t  id,
    u_int16_t  frag,
    u_int32_t  dst, u_int8_t  ttl,
    u_int8_t  prot,
    u_int8_t *  payload, u_int16_t  sum,
    u_int32_t  src,
    u_int32_t  payload_s, u_int32_t  dst,
    u_int8_t *  payload,
    libnet_t *  l, u_int32_t  payload_s,
    libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds a version 4 RFC 791 Internet Protocol (IP) header.

    Parameters:
    - - - - - - - - - - - - - + + + + + + + + + + + + +
    len total length of the IP packet including all subsequent data
    tos type of service bits
    id IP identification number
    frag fragmentation bits and offset
    ttl time to live in the network
    prot upper layer protocol
    sum checksum (0 for libnet to autofill)
    src source IPv4 address (little endian)
    dst destination IPv4 address (little endian)
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    len total length of the IP packet including all subsequent data
    tos type of service bits
    id IP identification number
    frag fragmentation bits and offset
    ttl time to live in the network
    prot upper layer protocol
    sum checksum (0 for libnet to autofill)
    src source IPv4 address (little endian)
    dst destination IPv4 address (little endian)
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ipv4_options u_int8_t *  options, libnet_ptag_t libnet_build_ipv4_options (u_int8_t *  options,
    u_int32_t  options_s, u_int32_t  options_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an version 4 Internet Protocol (IP) options header. The function expects options to be a valid IP options string of size options_s, no larger than 40 bytes (the maximum size of an options string). The function checks to make sure that the preceding header is an IPv4 header and that the options string would not result in a packet larger than 65,535 bytes (IPMAXPACKET). The function counts up the number of 32-bit words in the options string and adjusts the IP header length value as necessary.

    Parameters:
    - - - - + + + +
    options byte string of IP options
    options_s length of options string
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    options byte string of IP options
    options_s length of options string
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ipv6 u_int8_t  tc, libnet_ptag_t libnet_build_ipv6 (u_int8_t  tc,
    u_int32_t  fl, u_int32_t  fl,
    u_int16_t  len, u_int16_t  len,
    u_int8_t  nh, u_int8_t  nh,
    u_int8_t  hl, u_int8_t  hl,
    struct libnet_in6_addr  src, struct libnet_in6_addr  src,
    struct libnet_in6_addr  dst, struct libnet_in6_addr  dst,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds a version 6 RFC 2460 Internet Protocol (IP) header.

    Parameters:
    - - - - - - - - - - - + + + + + + + + + + +
    tc traffic class
    fl flow label
    len total length of the IP packet
    nh next header
    hl hop limit
    src source IPv6 address
    dst destination IPv6 address
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    tc traffic class
    fl flow label
    len total length of the IP packet
    nh next header
    hl hop limit
    src source IPv6 address
    dst destination IPv6 address
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ipv6_destopts u_int8_t  nh, libnet_ptag_t libnet_build_ipv6_destopts (u_int8_t  nh,
    u_int8_t  len, u_int8_t  len,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds a version 6 RFC 2460 Internet Protocol (IP) destination options header. This function is special in that it uses the payload interface to include the options data. The application programmer will build an IPv6 options byte string and pass it to the function using the payload interface.

    Parameters:
    - - - - - - + + + + + +
    nh next header
    len length of the header in 8-byte octets not including the first 8 octets
    payload options payload
    payload_s payload length
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    nh next header
    len length of the header in 8-byte octets not including the first 8 octets
    payload options payload
    payload_s payload length
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + - - + + - - + + -
    libnet_ptag_t libnet_build_ipv6_frag u_int8_t  nh, libnet_ptag_t libnet_build_ipv6_frag (u_int8_t  nh,
    u_int8_t  reserved, u_int8_t  reserved,
    u_int16_t  frag, u_int16_t  offset,
    u_int32_t  id, u_int8_t  m,
    u_int8_t *  payload, u_int32_t  id,
    u_int32_t  payload_s, u_int8_t *  payload,
    libnet_t *  l, u_int32_t  payload_s,
    libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds a version 6 RFC 2460 Internet Protocol (IP) fragmentation header.

    Parameters:
    - - - - - - - - + + + + + + + + +
    nh next header
    reserved unused value... OR IS IT!
    frag fragmentation bits (ala ipv4)
    id packet identification
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    nh next header
    reserved unused value... OR IS IT!
    offset fragmentation bits (ala ipv4)
    m flag (more fragment or NOT)
    id packet identification
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ipv6_hbhopts u_int8_t  nh, libnet_ptag_t libnet_build_ipv6_hbhopts (u_int8_t  nh,
    u_int8_t  len, u_int8_t  len,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds a version 6 RFC 2460 Internet Protocol (IP) hop by hop options header. This function is special in that it uses the payload interface to include the options data. The application programmer will build an IPv6 hop by hop options byte string and pass it to the function using the payload interface.

    Parameters:
    - - - - - - + + + + + +
    nh next header
    len length of the header in 8-byte octets not including the first 8 octets
    payload options payload
    payload_s payload length
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    nh next header
    len length of the header in 8-byte octets not including the first 8 octets
    payload options payload
    payload_s payload length
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ipv6_routing u_int8_t  nh, libnet_ptag_t libnet_build_ipv6_routing (u_int8_t  nh,
    u_int8_t  len, u_int8_t  len,
    u_int8_t  rtype, u_int8_t  rtype,
    u_int8_t  segments, u_int8_t  segments,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds a version 6 RFC 2460 Internet Protocol (IP) routing header. This function is special in that it uses the payload interface to include the "type-specific data"; that is the routing information. Most often this will be a number of 128-bit IPv6 addresses. The application programmer will build a byte string of IPv6 address and pass them to the function using the payload interface.

    Parameters:
    - - - - - - - + + + + + + +
    nh next header
    len length of the header in 8-byte octets not including the first 8 octets routing header type
    segments number of routing segments that follow
    payload optional payload of routing information
    payload_s payload length
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    nh next header
    len length of the header in 8-byte octets not including the first 8 octets routing header type
    segments number of routing segments that follow
    payload optional payload of routing information
    payload_s payload length
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_isl u_int8_t *  dhost, libnet_ptag_t libnet_build_isl (u_int8_t *  dhost,
    u_int8_t  type, u_int8_t  type,
    u_int8_t  user, u_int8_t  user,
    u_int8_t *  shost, u_int8_t *  shost,
    u_int16_t  len, u_int16_t  len,
    u_int8_t *  snap, u_int8_t *  snap,
    u_int16_t  vid, u_int16_t  vid,
    u_int16_t  index, u_int16_t  index,
    u_int16_t  reserved, u_int16_t  reserved,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds a Cisco Inter-Switch Link (ISL) header.

    Parameters:
    - - - - - - - - - - - - - + + + + + + + + + + + + +
    dhost destination address (should be 01:00:0c:00:00)
    type type of frame
    user user defined data
    shost source mac address
    len total length of the encapuslated packet less 18 bytes
    snap SNAP information (0xaaaa03 + vendor code)
    vid 15 bit VLAN ID, 1 bit BPDU or CDP indicator
    index port index
    reserved used for FDDI and token ring
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    dhost destination address (should be 01:00:0c:00:00)
    type type of frame
    user user defined data
    shost source mac address
    len total length of the encapuslated packet less 18 bytes
    snap SNAP information (0xaaaa03 + vendor code)
    vid 15 bit VLAN ID, 1 bit BPDU or CDP indicator
    index port index
    reserved used for FDDI and token ring
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_link u_int8_t *  dst, libnet_ptag_t libnet_build_link (u_int8_t *  dst,
    u_int8_t *  src, u_int8_t *  src,
    u_int8_t *  oui, u_int8_t *  oui,
    u_int16_t  type, u_int16_t  type,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds a link layer header for an initialized l. The function determines the proper link layer header format from how l was initialized. The function current supports Ethernet and Token Ring link layers.

    Parameters:
    - - - - - - - - + + + + + + + +
    dst the destination MAC address
    src the source MAC address
    oui Organizationally Unique Identifier (unused for Ethernet)
    type the upper layer protocol type
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    dst the destination MAC address
    src the source MAC address
    oui Organizationally Unique Identifier (unused for Ethernet)
    type the upper layer protocol type
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_mpls u_int32_t  label, libnet_ptag_t libnet_build_mpls (u_int32_t  label,
    u_int8_t  experimental, u_int8_t  experimental,
    u_int8_t  bos, u_int8_t  bos,
    u_int8_t  ttl, u_int8_t  ttl,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an RFC 3032 Multi-Protocol Label Switching (MPLS) header.

    Parameters:
    - - - - - - - - + + + + + + + +
    label 20-bit label value
    experimental 3-bit reserved field
    bos 1-bit bottom of stack identifier
    ttl time to live
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    label 20-bit label value
    experimental 3-bit reserved field
    bos 1-bit bottom of stack identifier
    ttl time to live
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ntp u_int8_t  leap_indicator, libnet_ptag_t libnet_build_ntp (u_int8_t  leap_indicator,
    u_int8_t  version, u_int8_t  version,
    u_int8_t  mode, u_int8_t  mode,
    u_int8_t  stratum, u_int8_t  stratum,
    u_int8_t  poll, u_int8_t  poll,
    u_int8_t  precision, u_int8_t  precision,
    u_int16_t  delay_int, u_int16_t  delay_int,
    u_int16_t  delay_frac, u_int16_t  delay_frac,
    u_int16_t  dispersion_int, u_int16_t  dispersion_int,
    u_int16_t  dispersion_frac, u_int16_t  dispersion_frac,
    u_int32_t  reference_id, u_int32_t  reference_id,
    u_int32_t  ref_ts_int, u_int32_t  ref_ts_int,
    u_int32_t  ref_ts_frac, u_int32_t  ref_ts_frac,
    u_int32_t  orig_ts_int, u_int32_t  orig_ts_int,
    u_int32_t  orig_ts_frac, u_int32_t  orig_ts_frac,
    u_int32_t  rec_ts_int, u_int32_t  rec_ts_int,
    u_int32_t  rec_ts_frac, u_int32_t  rec_ts_frac,
    u_int32_t  xmt_ts_int, u_int32_t  xmt_ts_int,
    u_int32_t  xmt_ts_frac, u_int32_t  xmt_ts_frac,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an RFC 958 Network Time Protocol (NTP) header.

    Parameters:
    - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + +
    leap_indicator the leap indicator
    version NTP protocol version
    mode NTP mode
    stratum stratum
    poll polling interval
    precision precision
    delay_interval delay interval
    delay_frac delay fraction
    dispersion_int dispersion interval
    dispersion_frac dispersion fraction
    reference_id reference id
    ref_ts_int reference timestamp integer
    ref_ts_frac reference timestamp fraction
    orig_ts_int original timestamp integer
    orig_ts_frac original timestamp fraction
    rec_ts_int receiver timestamp integer
    rec_ts_frac reciever timestamp fraction
    xmt_ts_int transmit timestamp integer
    xmt_ts_frac transmit timestamp integer
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    leap_indicator the leap indicator
    version NTP protocol version
    mode NTP mode
    stratum stratum
    poll polling interval
    precision precision
    delay_interval delay interval
    delay_frac delay fraction
    dispersion_int dispersion interval
    dispersion_frac dispersion fraction
    reference_id reference id
    ref_ts_int reference timestamp integer
    ref_ts_frac reference timestamp fraction
    orig_ts_int original timestamp integer
    orig_ts_frac original timestamp fraction
    rec_ts_int receiver timestamp integer
    rec_ts_frac reciever timestamp fraction
    xmt_ts_int transmit timestamp integer
    xmt_ts_frac transmit timestamp integer
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ospfv2 u_int16_t  len, libnet_ptag_t libnet_build_ospfv2 (u_int16_t  len,
    u_int8_t  type, u_int8_t  type,
    u_int32_t  rtr_id, u_int32_t  rtr_id,
    u_int32_t  area_id, u_int32_t  area_id,
    u_int16_t  sum, u_int16_t  sum,
    u_int16_t  autype, u_int16_t  autype,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Parameters:
    - - - - + + + +
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ospfv2_dbd u_int16_t  dgram_len, libnet_ptag_t libnet_build_ospfv2_dbd (u_int16_t  dgram_len,
    u_int8_t  opts, u_int8_t  opts,
    u_int8_t  type, u_int8_t  type,
    u_int  seqnum, u_int  seqnum,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Parameters:
    - - - - + + + +
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ospfv2_hello u_int32_t  netmask, libnet_ptag_t libnet_build_ospfv2_hello (u_int32_t  netmask,
    u_int16_t  interval, u_int16_t  interval,
    u_int8_t  opts, u_int8_t  opts,
    u_int8_t  priority, u_int8_t  priority,
    u_int  dead_int, u_int  dead_int,
    u_int32_t  des_rtr, u_int32_t  des_rtr,
    u_int32_t  bkup_rtr, u_int32_t  bkup_rtr,
    u_int32_t  neighbor, u_int32_t  neighbor,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Parameters:
    - - - - + + + +
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ospfv2_lsa u_int16_t  age, libnet_ptag_t libnet_build_ospfv2_lsa (u_int16_t  age,
    u_int8_t  opts, u_int8_t  opts,
    u_int8_t  type, u_int8_t  type,
    u_int  lsid, u_int  lsid,
    u_int32_t  advrtr, u_int32_t  advrtr,
    u_int  seqnum, u_int  seqnum,
    u_int16_t  sum, u_int16_t  sum,
    u_int16_t  len, u_int16_t  len,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Parameters:
    - - - - + + + +
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ospfv2_lsa_as u_int32_t  nmask, libnet_ptag_t libnet_build_ospfv2_lsa_as (u_int32_t  nmask,
    u_int  metric, u_int  metric,
    u_int32_t  fwdaddr, u_int32_t  fwdaddr,
    u_int  tag, u_int  tag,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Parameters:
    - - - - + + + +
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ospfv2_lsa_net u_int32_t  nmask, libnet_ptag_t libnet_build_ospfv2_lsa_net (u_int32_t  nmask,
    u_int  rtrid, u_int  rtrid,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Parameters:
    - - - - + + + +
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ospfv2_lsa_rtr u_int16_t  flags, libnet_ptag_t libnet_build_ospfv2_lsa_rtr (u_int16_t  flags,
    u_int16_t  num, u_int16_t  num,
    u_int  id, u_int  id,
    u_int  data, u_int  data,
    u_int8_t  type, u_int8_t  type,
    u_int8_t  tos, u_int8_t  tos,
    u_int16_t  metric, u_int16_t  metric,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Parameters:
    - - - - + + + +
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ospfv2_lsa_sum u_int32_t  nmask, libnet_ptag_t libnet_build_ospfv2_lsa_sum (u_int32_t  nmask,
    u_int  metric, u_int  metric,
    u_int  tos, u_int  tos,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Parameters:
    - - - - + + + +
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ospfv2_lsr u_int  type, libnet_ptag_t libnet_build_ospfv2_lsr (u_int  type,
    u_int  lsid, u_int  lsid,
    u_int32_t  advrtr, u_int32_t  advrtr,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Parameters:
    - - - - + + + +
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_ospfv2_lsu u_int  num, libnet_ptag_t libnet_build_ospfv2_lsu (u_int  num,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Parameters:
    - - - - + + + +
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_rip u_int8_t  cmd, libnet_ptag_t libnet_build_rip (u_int8_t  cmd,
    u_int8_t  version, u_int8_t  version,
    u_int16_t  rd, u_int16_t  rd,
    u_int16_t  af, u_int16_t  af,
    u_int16_t  rt, u_int16_t  rt,
    u_int32_t  addr, u_int32_t  addr,
    u_int32_t  mask, u_int32_t  mask,
    u_int32_t  next_hop, u_int32_t  next_hop,
    u_int32_t  metric, u_int32_t  metric,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds a Routing Information Protocol header (RFCs 1058 and 2453).

    Parameters:
    - - - - - - - - - - - - - + + + + + + + + + + + + +
    cmd command
    version protocol version
    rd version one: 0, version two: routing domain
    af address family
    rt version one: 0, version two: route tag
    addr IPv4 address
    mask version one: 0, version two: subnet mask
    next_hop version one: 0, version two: next hop address
    metric routing metric
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    cmd command
    version protocol version
    rd version one: 0, version two: routing domain
    af address family
    rt version one: 0, version two: route tag
    addr IPv4 address
    mask version one: 0, version two: subnet mask
    next_hop version one: 0, version two: next hop address
    metric routing metric
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_rpc_call u_int32_t  rm, libnet_ptag_t libnet_build_rpc_call (u_int32_t  rm,
    u_int32_t  xid, u_int32_t  xid,
    u_int32_t  prog_num, u_int32_t  prog_num,
    u_int32_t  prog_vers, u_int32_t  prog_vers,
    u_int32_t  procedure, u_int32_t  procedure,
    u_int32_t  cflavor, u_int32_t  cflavor,
    u_int32_t  clength, u_int32_t  clength,
    u_int8_t *  cdata, u_int8_t *  cdata,
    u_int32_t  vflavor, u_int32_t  vflavor,
    u_int32_t  vlength, u_int32_t  vlength,
    u_int8_t *  vdata, u_int8_t *  vdata,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an Remote Procedure Call (Version 2) Call message header as specified in RFC 1831. This builder provides the option for specifying the record marking which is required when used with streaming protocols (TCP).

    Parameters:
    - - - - - - - - - - - - - - - + + + + + + + + + + + + + + +
    rm record marking indicating the position in a stream, 0 otherwise
    xid transaction identifier used to link calls and replies
    prog_num remote program specification typically between 0 - 1fffffff
    prog_vers remote program version specification
    procedure procedure to be performed by remote program
    cflavor authentication credential type
    clength credential length (should be 0)
    cdata opaque credential data (currently unused)
    vflavor authentication verifier type
    vlength verifier length (should be 0)
    vdata opaque verifier data (currently unused)
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    rm record marking indicating the position in a stream, 0 otherwise
    xid transaction identifier used to link calls and replies
    prog_num remote program specification typically between 0 - 1fffffff
    prog_vers remote program version specification
    procedure procedure to be performed by remote program
    cflavor authentication credential type
    clength credential length (should be 0)
    cdata opaque credential data (currently unused)
    vflavor authentication verifier type
    vlength verifier length (should be 0)
    vdata opaque verifier data (currently unused)
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_sebek u_int32_t  magic, libnet_ptag_t libnet_build_sebek (u_int32_t  magic,
    u_int16_t  version, u_int16_t  version,
    u_int16_t  type, u_int16_t  type,
    u_int32_t  counter, u_int32_t  counter,
    u_int32_t  time_sec, u_int32_t  time_sec,
    u_int32_t  time_usec, u_int32_t  time_usec,
    u_int32_t  pid, u_int32_t  pid,
    u_int32_t  uid, u_int32_t  uid,
    u_int32_t  fd, u_int32_t  fd,
    u_int8_t  cmd[SEBEK_CMD_LENGTH], u_int8_t  cmd[SEBEK_CMD_LENGTH],
    u_int32_t  length, u_int32_t  length,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    -Builds a Sebek header. The Sebek protocol was designed by the Honeynet Project as a transport mechanism for post-intrusion forensic data. More information may be found here: http://www.honeynet.org/papers/sebek.pdf.

    -

    Parameters:
    +Builds a Sebek header. The Sebek protocol was designed by the Honeynet Project as a transport mechanism for post-intrusion forensic data. More information may be found here: http://www.honeynet.org/papers/sebek.pdf.
    Parameters:
    - - - - - - - - - - - - - - - + + + + + + + + + + + + + + +
    magic identify packets that should be hidden
    version protocol version, currently 1
    type type of record (read data is type 0, write data is type 1)
    counter PDU counter used to identify when packet are lost
    time_sec seconds since EPOCH according to the honeypot
    time_usec residual microseconds
    pid PID
    uid UID
    fd FD
    cmd[SEBEK_CMD_LENGTH] 12 first characters of the command
    length length in bytes of the PDU's body
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    magic identify packets that should be hidden
    version protocol version, currently 1
    type type of record (read data is type 0, write data is type 1)
    counter PDU counter used to identify when packet are lost
    time_sec seconds since EPOCH according to the honeypot
    time_usec residual microseconds
    pid PID
    uid UID
    fd FD
    cmd[SEBEK_CMD_LENGTH] 12 first characters of the command
    length length in bytes of the PDU's body
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_stp_conf u_int16_t  id, libnet_ptag_t libnet_build_stp_conf (u_int16_t  id,
    u_int8_t  version, u_int8_t  version,
    u_int8_t  bpdu_type, u_int8_t  bpdu_type,
    u_int8_t  flags, u_int8_t  flags,
    u_int8_t *  root_id, u_int8_t *  root_id,
    u_int32_t  root_pc, u_int32_t  root_pc,
    u_int8_t *  bridge_id, u_int8_t *  bridge_id,
    u_int16_t  port_id, u_int16_t  port_id,
    u_int16_t  message_age, u_int16_t  message_age,
    u_int16_t  max_age, u_int16_t  max_age,
    u_int16_t  hello_time, u_int16_t  hello_time,
    u_int16_t  f_delay, u_int16_t  f_delay,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an IEEE 802.1d Spanning Tree Protocol (STP) configuration header. STP frames are usually encapsulated inside of an 802.2 + 802.3 frame combination.

    Parameters:
    - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
    id protocol id
    version protocol version
    bpdu_type bridge protocol data unit type
    flags flags
    root_id root id
    root_pc root path cost
    bridge_id bridge id
    port_id port id
    message_age message age
    max_age max age
    hello_time hello time
    f_delay forward delay
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    id protocol id
    version protocol version
    bpdu_type bridge protocol data unit type
    flags flags
    root_id root id
    root_pc root path cost
    bridge_id bridge id
    port_id port id
    message_age message age
    max_age max age
    hello_time hello time
    f_delay forward delay
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_stp_tcn u_int16_t  id, libnet_ptag_t libnet_build_stp_tcn (u_int16_t  id,
    u_int8_t  version, u_int8_t  version,
    u_int8_t  bpdu_type, u_int8_t  bpdu_type,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an IEEE 802.1d Spanning Tree Protocol (STP) topology change notification header. STP frames are usually encapsulated inside of an 802.2 + 802.3 frame combination.

    Parameters:
    - - - - - - - + + + + + + +
    id protocol id
    version protocol version
    bpdu_type bridge protocol data unit type
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    id protocol id
    version protocol version
    bpdu_type bridge protocol data unit type
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_tcp u_int16_t  sp, libnet_ptag_t libnet_build_tcp (u_int16_t  sp,
    u_int16_t  dp, u_int16_t  dp,
    u_int32_t  seq, u_int32_t  seq,
    u_int32_t  ack, u_int32_t  ack,
    u_int8_t  control, u_int8_t  control,
    u_int16_t  win, u_int16_t  win,
    u_int16_t  sum, u_int16_t  sum,
    u_int16_t  urg, u_int16_t  urg,
    u_int16_t  len, u_int16_t  len,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an RFC 793 Transmission Control Protocol (TCP) header.

    Parameters:
    - - - - - - - - - - - + + + + + + + + + + +
    sp source port
    dp destination port
    seq sequence number
    ack acknowledgement number
    control control flags
    win window size
    sum checksum (0 for libnet to autofill)
    urg urgent pointer len total length of the TCP packet (for checksum calculation)
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    sp source port
    dp destination port
    seq sequence number
    ack acknowledgement number
    control control flags
    win window size
    sum checksum (0 for libnet to autofill)
    urg urgent pointer len total length of the TCP packet (for checksum calculation)
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_tcp_options u_int8_t *  options, libnet_ptag_t libnet_build_tcp_options (u_int8_t *  options,
    u_int32_t  options_s, u_int32_t  options_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an RFC 793 Transmission Control Protocol (TCP) options header. The function expects options to be a valid TCP options string of size options_s, which is no larger than 40 bytes (the maximum size of an options string). The function checks to ensure that the packet consists of a TCP header preceded by an IPv4 header, and that the addition of the options string would not result in a packet larger than 65,535 bytes (IPMAXPACKET). The function counts up the number of 32-bit words in the options string and adjusts the TCP header length value as necessary.

    Parameters:
    - - - - + + + +
    options byte string of TCP options
    options_s length of options string
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    options byte string of TCP options
    options_s length of options string
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_token_ring u_int8_t  ac, libnet_ptag_t libnet_build_token_ring (u_int8_t  ac,
    u_int8_t  fc, u_int8_t  fc,
    u_int8_t *  dst, u_int8_t *  dst,
    u_int8_t *  src, u_int8_t *  src,
    u_int8_t  dsap, u_int8_t  dsap,
    u_int8_t  ssap, u_int8_t  ssap,
    u_int8_t  cf, u_int8_t  cf,
    u_int8_t *  org, u_int8_t *  oui,
    u_int16_t  type, u_int16_t  type,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds a token ring header.

    Parameters:
    - - - - - - - - - - - - - + + + + + + + + + + + + +
    ac access control
    fc frame control
    dst destination address
    src source address
    dsap destination service access point
    ssap source service access point
    cf control field
    oui Organizationally Unique Identifier
    type upper layer protocol type
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    ac access control
    fc frame control
    dst destination address
    src source address
    dsap destination service access point
    ssap source service access point
    cf control field
    oui Organizationally Unique Identifier
    type upper layer protocol type
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_udp u_int16_t  sp, libnet_ptag_t libnet_build_udp (u_int16_t  sp,
    u_int16_t  dp, u_int16_t  dp,
    u_int16_t  len, u_int16_t  len,
    u_int16_t  sum, u_int16_t  sum,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an RFC 768 User Datagram Protocol (UDP) header.

    Parameters:
    - - - - - - - - + + + + + + + +
    sp source port
    dp destination port
    len total length of the UDP packet
    sum checksum (0 for libnet to autofill)
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    sp source port
    dp destination port
    len total length of the UDP packet
    sum checksum (0 for libnet to autofill)
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + -
    libnet_ptag_t libnet_build_vrrp u_int8_t  version, libnet_ptag_t libnet_build_vrrp (u_int8_t  version,
    u_int8_t  type, u_int8_t  type,
    u_int8_t  vrouter_id, u_int8_t  vrouter_id,
    u_int8_t  priority, u_int8_t  priority,
    u_int8_t  ip_count, u_int8_t  ip_count,
    u_int8_t  auth_type, u_int8_t  auth_type,
    u_int8_t  advert_int, u_int8_t  advert_int,
    u_int16_t  sum, u_int16_t  sum,
    u_int8_t *  payload, u_int8_t *  payload,
    u_int32_t  payload_s, u_int32_t  payload_s,
    libnet_t *  l, libnet_t *  l,
    libnet_ptag_t  ptaglibnet_ptag_t  ptag 
    )
    -
    - - - - - -
    -   - + +

    Builds an RFC 2338 Virtual Router Redundacy Protool (VRRP) header. Use the payload interface to specify address and autthentication information. To build a "legal" packet, the destination IPv4 address should be the multicast * address 224.0.0.18, the IP TTL should be set to 255, and the IP protocol should be set to 112.

    Parameters:
    - - - - - - - - - - - - + + + + + + + + + + + +
    version VRRP version (should be 2)
    type VRRP packet type (should be 1 -- ADVERTISEMENT)
    vrouter_id virtual router identification
    priority priority (higher numbers indicate higher priority)
    ip_count number of IPv4 addresses contained in this advertisement
    auth_type type of authentication (0, 1, 2 -- see RFC)
    advert_int interval between advertisements
    sum checksum (0 for libnet to autofill)
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    version VRRP version (should be 2)
    type VRRP packet type (should be 1 -- ADVERTISEMENT)
    vrouter_id virtual router identification
    priority priority (higher numbers indicate higher priority)
    ip_count number of IPv4 addresses contained in this advertisement
    auth_type type of authentication (0, 1, 2 -- see RFC)
    advert_int interval between advertisements
    sum checksum (0 for libnet to autofill)
    payload optional payload or NULL
    payload_s payload length or 0
    l pointer to a libnet context
    ptag protocol tag to modify an existing header, 0 to build a new one
    Returns:
    protocol tag value on success, -1 on error
    -
    -

    - - - - -
    - - - - - - - - - + +

    + +

    +
    +
    void libnet_clear_packet libnet_t *  l  ) 
    + + + + + + + +
    void libnet_clear_packet (libnet_t *  l  ) 
    -
    - - - - - -
    -   - + +

    Clears the current packet referenced and frees all pblocks. Should be called when the programmer want to send a completely new packet of a different type using the same context.

    Parameters:
    - +
    l pointer to a libnet context
    l pointer to a libnet context
    -
    -

    - - - - -
    - + + +

    + +

    +
    +
    - - - - + + + + + - - - + + - - + + -
    int libnet_cq_add libnet_t *  l, int libnet_cq_add (libnet_t *  l,
    char *  labelchar *  label 
    )
    -
    - - - - - -
    -   - + +

    -[Context Queue] Adds a new context to the libnet context queue. If no queue exists, this function will create the queue and add the specified libnet context as the first entry on the list. The functions checks to ensure niether l nor label are NULL, and that label doesn't refer to an existing context already in the queue. Additionally, l should refer to a libnet context previously initialized with a call to libnet_init(). If the context queue in write locked, this function will fail.

    Parameters:
    +[Context Queue] Adds a new context to the libnet context queue. If no queue exists, this function will create the queue and add the specified libnet context as the first entry on the list. The functions checks to ensure niether l nor label are NULL, and that label doesn't refer to an existing context already in the queue. Additionally, l should refer to a libnet context previously initialized with a call to libnet_init(). If the context queue in write locked, this function will fail.
    Parameters:
    - - + +
    l pointer to a libnet context
    label a canonical name given to recognize the new context, no longer than LIBNET_LABEL_SIZE
    l pointer to a libnet context
    label a canonical name given to recognize the new context, no longer than LIBNET_LABEL_SIZE
    Returns:
    1 on success, -1 on failure
    -
    -

    - - - - -
    - - - - - - - - -
    void libnet_cq_destroy  ) 
    -
    - - - - - -
    -   - - -

    -[Context Queue] Destroys the entire context queue, calling libnet_destroy() on each member context.

    -