Sophie

Sophie

distrib > Mageia > 1 > i586 > media > core-release > by-pkgid > f13f6adf1b3d6f8603d9852eed9f77b6 > files > 27

libnet-devel-1.1.5-2.mga1.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>libnet: libnet-functions.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
  </ul>
</div>
<h1>libnet-functions.h</h1><a href="libnet-functions_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> *  $Id: libnet-functions.h,v 1.43 2004/11/09 07:05:07 mike Exp $</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> *  libnet-functions.h - function prototypes</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> *  Copyright (c) 1998 - 2004 Mike D. Schiffman &lt;mike@infonexus.com&gt;</span>
<a name="l00007"></a>00007 <span class="comment"> *  All rights reserved.</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
<a name="l00010"></a>00010 <span class="comment"> * modification, are permitted provided that the following conditions</span>
<a name="l00011"></a>00011 <span class="comment"> * are met:</span>
<a name="l00012"></a>00012 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
<a name="l00013"></a>00013 <span class="comment"> *    notice, this list of conditions and the following disclaimer.</span>
<a name="l00014"></a>00014 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
<a name="l00015"></a>00015 <span class="comment"> *    notice, this list of conditions and the following disclaimer in the</span>
<a name="l00016"></a>00016 <span class="comment"> *    documentation and/or other materials provided with the distribution.</span>
<a name="l00017"></a>00017 <span class="comment"> *</span>
<a name="l00018"></a>00018 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</span>
<a name="l00019"></a>00019 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
<a name="l00020"></a>00020 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
<a name="l00021"></a>00021 <span class="comment"> * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</span>
<a name="l00022"></a>00022 <span class="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span>
<a name="l00023"></a>00023 <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</span>
<a name="l00024"></a>00024 <span class="comment"> * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</span>
<a name="l00025"></a>00025 <span class="comment"> * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span>
<a name="l00026"></a>00026 <span class="comment"> * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</span>
<a name="l00027"></a>00027 <span class="comment"> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</span>
<a name="l00028"></a>00028 <span class="comment"> * SUCH DAMAGE.</span>
<a name="l00029"></a>00029 <span class="comment"> *</span>
<a name="l00030"></a>00030 <span class="comment"> */</span>
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 <span class="preprocessor">#ifndef __LIBNET_FUNCTIONS_H</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define __LIBNET_FUNCTIONS_H</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span>
<a name="l00063"></a>00063 libnet_t *
<a name="l00064"></a>00064 <a class="code" href="libnet-functions_8h.html#0422723053baf0b254d1ba2215d88118">libnet_init</a>(<span class="keywordtype">int</span> injection_type, <span class="keyword">const</span> <span class="keywordtype">char</span> *device, <span class="keywordtype">char</span> *err_buf);
<a name="l00065"></a>00065 
<a name="l00071"></a>00071 <span class="keywordtype">void</span>
<a name="l00072"></a>00072 <a class="code" href="libnet-functions_8h.html#591804711cffa92582703a5aedbd9b25">libnet_destroy</a>(libnet_t *l);
<a name="l00073"></a>00073 
<a name="l00080"></a>00080 <span class="keywordtype">void</span>
<a name="l00081"></a>00081 <a class="code" href="libnet-functions_8h.html#b84889f7fe57a1801cf03eceac47463e">libnet_clear_packet</a>(libnet_t *l);
<a name="l00082"></a>00082 
<a name="l00089"></a>00089 <span class="keywordtype">void</span>
<a name="l00090"></a>00090 <a class="code" href="libnet-functions_8h.html#886dc359d6add4b0608e8611af7e1b35">libnet_stats</a>(libnet_t *l, <span class="keyword">struct</span> <a class="code" href="libnet-functions_8h.html#886dc359d6add4b0608e8611af7e1b35">libnet_stats</a> *ls);
<a name="l00091"></a>00091 
<a name="l00097"></a>00097 <span class="keywordtype">int</span> 
<a name="l00098"></a>00098 <a class="code" href="libnet-functions_8h.html#b9b137f454b3da05d4ac5fe388c1f2b8">libnet_getfd</a>(libnet_t *l);
<a name="l00099"></a>00099 
<a name="l00106"></a>00106 <span class="keyword">const</span> <span class="keywordtype">char</span> *
<a name="l00107"></a>00107 <a class="code" href="libnet-functions_8h.html#1e68365ece2c976a75bc50e91df40ea0">libnet_getdevice</a>(libnet_t *l);
<a name="l00108"></a>00108 
<a name="l00117"></a>00117 uint8_t *
<a name="l00118"></a>00118 <a class="code" href="libnet-functions_8h.html#37ac07877d74f4dad59b86a15f5318d8">libnet_getpbuf</a>(libnet_t *l, libnet_ptag_t ptag);
<a name="l00119"></a>00119 
<a name="l00128"></a>00128 uint32_t
<a name="l00129"></a>00129 <a class="code" href="libnet-functions_8h.html#23ada8f4ab826966aeaf4ab070f3298e">libnet_getpbuf_size</a>(libnet_t *l, libnet_ptag_t ptag);
<a name="l00130"></a>00130 
<a name="l00138"></a>00138 <span class="keywordtype">char</span> *
<a name="l00139"></a>00139 <a class="code" href="libnet-functions_8h.html#36c0b24a4926a8f5d9d392836e915f2e">libnet_geterror</a>(libnet_t *l);
<a name="l00140"></a>00140 
<a name="l00147"></a>00147 uint32_t
<a name="l00148"></a>00148 <a class="code" href="libnet-functions_8h.html#2a500c6b60a329d873a970ecda4ff6e9">libnet_getpacket_size</a>(libnet_t *l);
<a name="l00149"></a>00149 
<a name="l00155"></a>00155 <span class="keywordtype">int</span>
<a name="l00156"></a>00156 <a class="code" href="libnet-functions_8h.html#69470998be995ec8c5e11ecbb19137f5">libnet_seed_prand</a>(libnet_t *l);
<a name="l00157"></a>00157 
<a name="l00171"></a>00171 uint32_t
<a name="l00172"></a>00172 <a class="code" href="libnet-functions_8h.html#b74bd339ef6343077dc79bab2063aee3">libnet_get_prand</a>(<span class="keywordtype">int</span> mod);
<a name="l00173"></a>00173 
<a name="l00195"></a>00195 <span class="keywordtype">int</span>
<a name="l00196"></a>00196 <a class="code" href="libnet-functions_8h.html#d36144707ce7994c12ef9d87dc9a2edf">libnet_toggle_checksum</a>(libnet_t *l, libnet_ptag_t ptag, <span class="keywordtype">int</span> mode);
<a name="l00197"></a>00197 
<a name="l00210"></a>00210 <span class="keywordtype">char</span> *
<a name="l00211"></a>00211 <a class="code" href="libnet-functions_8h.html#f6b11f82cfc7982bd0b21a6d4a857d1a">libnet_addr2name4</a>(uint32_t in, uint8_t use_name);
<a name="l00212"></a>00212 
<a name="l00226"></a>00226 uint32_t
<a name="l00227"></a>00227 <a class="code" href="libnet-functions_8h.html#05a7f3f901c57be5aebfbd8b79416de9">libnet_name2addr4</a>(libnet_t *l, <span class="keywordtype">char</span> *host_name, uint8_t use_name);
<a name="l00228"></a>00228 
<a name="l00229"></a>00229 <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keyword">struct </span>libnet_in6_addr in6addr_error;
<a name="l00230"></a>00230 
<a name="l00244"></a>00244 <span class="keyword">struct </span>libnet_in6_addr
<a name="l00245"></a>00245 <a class="code" href="libnet-functions_8h.html#7c4bba0e4619d48d0c18ec88de39cf8a">libnet_name2addr6</a>(libnet_t *l, <span class="keywordtype">char</span> *host_name, uint8_t use_name);
<a name="l00246"></a>00246 
<a name="l00250"></a>00250 <span class="keywordtype">void</span>
<a name="l00251"></a>00251 <a class="code" href="libnet-functions_8h.html#5b7581c7b75c7ecd3e4220c72752efd4">libnet_addr2name6_r</a>(<span class="keyword">struct</span> libnet_in6_addr addr, uint8_t use_name,
<a name="l00252"></a>00252 <span class="keywordtype">char</span> *host_name, <span class="keywordtype">int</span> host_name_len);
<a name="l00253"></a>00253 
<a name="l00269"></a>00269 <span class="keywordtype">int</span>
<a name="l00270"></a>00270 <a class="code" href="libnet-functions_8h.html#aee8e5f54482bf3c9b7c5b101fa8f41f">libnet_plist_chain_new</a>(libnet_t *l, libnet_plist_t **plist, <span class="keywordtype">char</span> *token_list);
<a name="l00271"></a>00271 
<a name="l00283"></a>00283 <span class="keywordtype">int</span>
<a name="l00284"></a>00284 <a class="code" href="libnet-functions_8h.html#a4f1d2acd6b7411d3bf2be73cb617cb2">libnet_plist_chain_next_pair</a>(libnet_plist_t *plist, uint16_t *bport, 
<a name="l00285"></a>00285 uint16_t *eport); 
<a name="l00286"></a>00286 
<a name="l00293"></a>00293 <span class="keywordtype">int</span>
<a name="l00294"></a>00294 <a class="code" href="libnet-functions_8h.html#39e332daa771627372a01867818b4301">libnet_plist_chain_dump</a>(libnet_plist_t *plist);
<a name="l00295"></a>00295 
<a name="l00304"></a>00304 <span class="keywordtype">char</span> *
<a name="l00305"></a>00305 <a class="code" href="libnet-functions_8h.html#b854695d1306f9af440145fc6767d953">libnet_plist_chain_dump_string</a>(libnet_plist_t *plist);
<a name="l00306"></a>00306 
<a name="l00312"></a>00312 <span class="keywordtype">int</span>
<a name="l00313"></a>00313 <a class="code" href="libnet-functions_8h.html#b5cb1d70164207a7c279a909576058be">libnet_plist_chain_free</a>(libnet_plist_t *plist);
<a name="l00314"></a>00314 
<a name="l00402"></a>00402 libnet_ptag_t
<a name="l00403"></a>00403 <a class="code" href="libnet-functions_8h.html#0fdc98930697ff63e2938efd4082cc16">libnet_build_802_1q</a>(<span class="keyword">const</span> uint8_t *dst, <span class="keyword">const</span> uint8_t *src, uint16_t tpi,
<a name="l00404"></a>00404 uint8_t priority, uint8_t cfi, uint16_t vlan_id, uint16_t len_proto,
<a name="l00405"></a>00405 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00406"></a>00406 
<a name="l00418"></a>00418 libnet_ptag_t
<a name="l00419"></a>00419 <a class="code" href="libnet-functions_8h.html#9c6bae7032a3e32b70f9480f9a30a1ad">libnet_build_802_1x</a>(uint8_t eap_ver, uint8_t eap_type, uint16_t length, 
<a name="l00420"></a>00420 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00421"></a>00421 
<a name="l00433"></a>00433 libnet_ptag_t
<a name="l00434"></a>00434 <a class="code" href="libnet-functions_8h.html#83c65a0bc641803572115f9f290f39fa">libnet_build_802_2</a>(uint8_t dsap, uint8_t ssap, uint8_t control,
<a name="l00435"></a>00435 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00436"></a>00436 
<a name="l00450"></a>00450 libnet_ptag_t
<a name="l00451"></a>00451 <a class="code" href="libnet-functions_8h.html#0780d8317f3bd7a5e4a2ed10abdbe39b">libnet_build_802_2snap</a>(uint8_t dsap, uint8_t ssap, uint8_t control, 
<a name="l00452"></a>00452 uint8_t *oui, uint16_t type, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s,
<a name="l00453"></a>00453 libnet_t *l, libnet_ptag_t ptag); 
<a name="l00454"></a>00454 
<a name="l00470"></a>00470 libnet_ptag_t
<a name="l00471"></a>00471 <a class="code" href="libnet-functions_8h.html#5a200d8b8b3b2a64921db960e8b0da60">libnet_build_802_3</a>(<span class="keyword">const</span> uint8_t *dst, <span class="keyword">const</span> uint8_t *src, uint16_t len, 
<a name="l00472"></a>00472 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00473"></a>00473 
<a name="l00489"></a>00489 libnet_ptag_t
<a name="l00490"></a>00490 <a class="code" href="libnet-functions_8h.html#c0e53234dfc5205142b0f53c69ab46ae">libnet_build_ethernet</a>(<span class="keyword">const</span> uint8_t *dst, <span class="keyword">const</span> uint8_t *src, uint16_t type, 
<a name="l00491"></a>00491 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00492"></a>00492 
<a name="l00504"></a>00504 libnet_ptag_t
<a name="l00505"></a>00505 <a class="code" href="libnet-functions_8h.html#cd0747f212c04efd2a4dcb947a3db40b">libnet_autobuild_ethernet</a>(<span class="keyword">const</span> uint8_t *dst, uint16_t type, libnet_t *l);
<a name="l00506"></a>00506 
<a name="l00523"></a>00523 libnet_ptag_t
<a name="l00524"></a>00524 <a class="code" href="libnet-functions_8h.html#f313dd4a88c8bb42f023637aec5d7abf">libnet_build_fddi</a>(uint8_t fc, <span class="keyword">const</span> uint8_t *dst, <span class="keyword">const</span> uint8_t *src, uint8_t dsap,
<a name="l00525"></a>00525 uint8_t ssap, uint8_t cf, <span class="keyword">const</span> uint8_t *oui, uint16_t type, <span class="keyword">const</span> uint8_t* payload,
<a name="l00526"></a>00526 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00527"></a>00527 
<a name="l00540"></a>00540 libnet_ptag_t
<a name="l00541"></a>00541 <a class="code" href="libnet-functions_8h.html#071f9dc69d6992e2c164ed3827f79cc1">libnet_autobuild_fddi</a>(uint8_t fc, <span class="keyword">const</span> uint8_t *dst, uint8_t dsap, uint8_t ssap,
<a name="l00542"></a>00542 uint8_t cf, <span class="keyword">const</span> uint8_t *oui, uint16_t type, libnet_t *l);
<a name="l00543"></a>00543 
<a name="l00563"></a>00563 libnet_ptag_t
<a name="l00564"></a>00564 <a class="code" href="libnet-functions_8h.html#c81464e42636bc0b9e4800bcf135da57">libnet_build_arp</a>(uint16_t hrd, uint16_t pro, uint8_t hln, uint8_t pln,
<a name="l00565"></a>00565 uint16_t op, <span class="keyword">const</span> uint8_t *sha, <span class="keyword">const</span> uint8_t *spa, <span class="keyword">const</span> uint8_t *tha, <span class="keyword">const</span> uint8_t *tpa,
<a name="l00566"></a>00566 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00567"></a>00567 
<a name="l00580"></a>00580 libnet_ptag_t
<a name="l00581"></a>00581 <a class="code" href="libnet-functions_8h.html#11bb29bc300b46b1a59009b9e66b6dee">libnet_autobuild_arp</a>(uint16_t op, <span class="keyword">const</span> uint8_t *sha, <span class="keyword">const</span> uint8_t *spa, <span class="keyword">const</span> uint8_t *tha,
<a name="l00582"></a>00582 uint8_t *tpa, libnet_t *l);
<a name="l00583"></a>00583 
<a name="l00601"></a>00601 libnet_ptag_t
<a name="l00602"></a>00602 <a class="code" href="libnet-functions_8h.html#729cfdedc3e59a3152c99c914d66ec6f">libnet_build_tcp</a>(uint16_t sp, uint16_t dp, uint32_t seq, uint32_t ack,
<a name="l00603"></a>00603 uint8_t control, uint16_t win, uint16_t sum, uint16_t urg, uint16_t len, 
<a name="l00604"></a>00604 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00605"></a>00605 
<a name="l00621"></a>00621 libnet_ptag_t
<a name="l00622"></a>00622 <a class="code" href="libnet-functions_8h.html#11d0bd23cb198f3e940336b62a94839a">libnet_build_tcp_options</a>(<span class="keyword">const</span> uint8_t *options, uint32_t options_s, libnet_t *l,
<a name="l00623"></a>00623 libnet_ptag_t ptag);
<a name="l00624"></a>00624 
<a name="l00637"></a>00637 libnet_ptag_t
<a name="l00638"></a>00638 <a class="code" href="libnet-functions_8h.html#1dee17aa5276df3587ee276b1b90d8fa">libnet_build_udp</a>(uint16_t sp, uint16_t dp, uint16_t len, uint16_t sum,
<a name="l00639"></a>00639 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00640"></a>00640 
<a name="l00660"></a>00660 libnet_ptag_t
<a name="l00661"></a>00661 <a class="code" href="libnet-functions_8h.html#0549535c9d15498e169bc5b96bc9c946">libnet_build_cdp</a>(uint8_t version, uint8_t ttl, uint16_t sum, uint16_t type,
<a name="l00662"></a>00662 uint16_t value_s, <span class="keyword">const</span> uint8_t *value, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s,
<a name="l00663"></a>00663 libnet_t *l, libnet_ptag_t ptag);
<a name="l00664"></a>00664 
<a name="l00679"></a>00679 libnet_ptag_t
<a name="l00680"></a>00680 <a class="code" href="libnet-functions_8h.html#f2a31d44e931c774bfc50a8a8d0a71af">libnet_build_icmpv4_echo</a>(uint8_t type, uint8_t code, uint16_t sum,
<a name="l00681"></a>00681 uint16_t <span class="keywordtype">id</span>, uint16_t seq, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s,
<a name="l00682"></a>00682 libnet_t *l, libnet_ptag_t ptag);
<a name="l00683"></a>00683 
<a name="l00699"></a>00699 libnet_ptag_t
<a name="l00700"></a>00700 <a class="code" href="libnet-functions_8h.html#6cff4ee3328d18a02de3ffa467b4a783">libnet_build_icmpv4_mask</a>(uint8_t type, uint8_t code, uint16_t sum,
<a name="l00701"></a>00701 uint16_t <span class="keywordtype">id</span>, uint16_t seq, uint32_t mask, <span class="keyword">const</span> uint8_t* payload,
<a name="l00702"></a>00702 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00703"></a>00703 
<a name="l00717"></a>00717 libnet_ptag_t
<a name="l00718"></a>00718 <a class="code" href="libnet-functions_8h.html#eb4d9c27fe201737ba139dde6c5c0f2e">libnet_build_icmpv4_unreach</a>(uint8_t type, uint8_t code, uint16_t sum,
<a name="l00719"></a>00719 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00720"></a>00720 
<a name="l00735"></a>00735 libnet_ptag_t
<a name="l00736"></a>00736 <a class="code" href="libnet-functions_8h.html#80e6e045aa6e2b249294112171129b28">libnet_build_icmpv4_redirect</a>(uint8_t type, uint8_t code, uint16_t sum,
<a name="l00737"></a>00737 uint32_t gateway, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l,
<a name="l00738"></a>00738 libnet_ptag_t ptag);
<a name="l00739"></a>00739 
<a name="l00754"></a>00754 libnet_ptag_t
<a name="l00755"></a>00755 <a class="code" href="libnet-functions_8h.html#9f4204ece5d336ef11e777c2d5e50186">libnet_build_icmpv4_timeexceed</a>(uint8_t type, uint8_t code, uint16_t sum,
<a name="l00756"></a>00756 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00757"></a>00757 
<a name="l00775"></a>00775 libnet_ptag_t
<a name="l00776"></a>00776 <a class="code" href="libnet-functions_8h.html#68d0c6a2b394b15e9064e404842a1989">libnet_build_icmpv4_timestamp</a>(uint8_t type, uint8_t code, uint16_t sum,
<a name="l00777"></a>00777 uint16_t <span class="keywordtype">id</span>, uint16_t seq, uint32_t otime, uint32_t rtime, uint32_t ttime,
<a name="l00778"></a>00778 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00779"></a>00779 
<a name="l00793"></a>00793 libnet_ptag_t
<a name="l00794"></a>00794 <a class="code" href="libnet-functions_8h.html#a8495928ad8cbc5f8044281d3555c1e7">libnet_build_icmpv6_unreach</a>(u_int8_t type, u_int8_t code, u_int16_t sum,
<a name="l00795"></a>00795 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00796"></a>00796 
<a name="l00809"></a>00809 libnet_ptag_t
<a name="l00810"></a>00810 <a class="code" href="libnet-functions_8h.html#1deff6e8a14ef5998fcb1697b12f9362">libnet_build_igmp</a>(uint8_t type, uint8_t code, uint16_t sum, uint32_t ip,
<a name="l00811"></a>00811 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00812"></a>00812 
<a name="l00832"></a>00832 libnet_ptag_t 
<a name="l00833"></a>00833 <a class="code" href="libnet-functions_8h.html#326cf29f24a37dc9232b8b6a56a3f12f">libnet_build_ipv4</a>(uint16_t ip_len, uint8_t tos, uint16_t <span class="keywordtype">id</span>, uint16_t frag,
<a name="l00834"></a>00834 uint8_t ttl, uint8_t prot, uint16_t sum, uint32_t src, uint32_t dst,
<a name="l00835"></a>00835 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00836"></a>00836 
<a name="l00855"></a>00855 libnet_ptag_t 
<a name="l00856"></a>00856 <a class="code" href="libnet-functions_8h.html#f1e1c66ed14370114d61ca919d558092">libnet_build_ipv4_options</a>(<span class="keyword">const</span> uint8_t *options, uint32_t options_s, libnet_t *l,
<a name="l00857"></a>00857 libnet_ptag_t ptag);
<a name="l00858"></a>00858 
<a name="l00872"></a>00872 libnet_ptag_t
<a name="l00873"></a>00873 <a class="code" href="libnet-functions_8h.html#17d44748537af9d97cbafe9c1040c7d3">libnet_autobuild_ipv4</a>(uint16_t len, uint8_t prot, uint32_t dst, libnet_t *l);
<a name="l00874"></a>00874 
<a name="l00890"></a>00890 libnet_ptag_t
<a name="l00891"></a>00891 <a class="code" href="libnet-functions_8h.html#e568214e9b386ca23e6628431eda1f7e">libnet_build_ipv6</a>(uint8_t tc, uint32_t fl, uint16_t len, uint8_t nh,
<a name="l00892"></a>00892 uint8_t hl, <span class="keyword">struct</span> libnet_in6_addr src, <span class="keyword">struct</span> libnet_in6_addr dst, 
<a name="l00893"></a>00893 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00894"></a>00894 
<a name="l00907"></a>00907 libnet_ptag_t
<a name="l00908"></a>00908 <a class="code" href="libnet-functions_8h.html#16867e9f92b162ff4c00a5587fd3377d">libnet_build_ipv6_frag</a>(uint8_t nh, uint8_t reserved, uint16_t frag,
<a name="l00909"></a>00909 uint32_t <span class="keywordtype">id</span>, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l,
<a name="l00910"></a>00910 libnet_ptag_t ptag);
<a name="l00911"></a>00911 
<a name="l00929"></a>00929 libnet_ptag_t
<a name="l00930"></a>00930 <a class="code" href="libnet-functions_8h.html#0aeda945e0b6d1ce4bee591107d8887b">libnet_build_ipv6_routing</a>(uint8_t nh, uint8_t len, uint8_t rtype,
<a name="l00931"></a>00931 uint8_t segments, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l,
<a name="l00932"></a>00932 libnet_ptag_t ptag);
<a name="l00933"></a>00933 
<a name="l00947"></a>00947 libnet_ptag_t
<a name="l00948"></a>00948 <a class="code" href="libnet-functions_8h.html#463971e2d708f4e14f2ed9bea7f197be">libnet_build_ipv6_destopts</a>(uint8_t nh, uint8_t len, <span class="keyword">const</span> uint8_t* payload,
<a name="l00949"></a>00949 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00950"></a>00950 
<a name="l00965"></a>00965 libnet_ptag_t
<a name="l00966"></a>00966 <a class="code" href="libnet-functions_8h.html#ccbcb7a6342997afd1a5410c7006f748">libnet_build_ipv6_hbhopts</a>(uint8_t nh, uint8_t len, <span class="keyword">const</span> uint8_t* payload,
<a name="l00967"></a>00967 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l00968"></a>00968 
<a name="l00978"></a>00978 libnet_ptag_t
<a name="l00979"></a>00979 <a class="code" href="libnet-functions_8h.html#9af33cad0a1f688907c675fb577514dd">libnet_autobuild_ipv6</a>(uint16_t len, uint8_t nh, <span class="keyword">struct</span> libnet_in6_addr dst,
<a name="l00980"></a>00980 libnet_t *l, libnet_ptag_t ptag);
<a name="l00981"></a>00981 
<a name="l00999"></a>00999 libnet_ptag_t
<a name="l01000"></a>01000 <a class="code" href="libnet-functions_8h.html#8c3b2833b869c4628240bb5be8b7c864">libnet_build_isl</a>(uint8_t *dhost, uint8_t type, uint8_t user,
<a name="l01001"></a>01001 uint8_t *shost, uint16_t len, <span class="keyword">const</span> uint8_t *snap, uint16_t vid,
<a name="l01002"></a>01002 uint16_t portindex, uint16_t reserved, <span class="keyword">const</span> uint8_t* payload,
<a name="l01003"></a>01003 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01004"></a>01004 
<a name="l01016"></a>01016 libnet_ptag_t
<a name="l01017"></a>01017 <a class="code" href="libnet-functions_8h.html#d75f92207cb45587e18e898b344c7600">libnet_build_ipsec_esp_hdr</a>(uint32_t spi, uint32_t seq, uint32_t iv,
<a name="l01018"></a>01018 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01019"></a>01019 
<a name="l01031"></a>01031 libnet_ptag_t
<a name="l01032"></a>01032 <a class="code" href="libnet-functions_8h.html#277c0db9a61ea2d24b58b452df0edda0">libnet_build_ipsec_esp_ftr</a>(uint8_t len, uint8_t nh, int8_t *auth,
<a name="l01033"></a>01033 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01034"></a>01034 
<a name="l01049"></a>01049 libnet_ptag_t
<a name="l01050"></a>01050 <a class="code" href="libnet-functions_8h.html#9506a46bfe340f8284ae58656a02c574">libnet_build_ipsec_ah</a>(uint8_t nh, uint8_t len, uint16_t res,
<a name="l01051"></a>01051 uint32_t spi, uint32_t seq, uint32_t auth, <span class="keyword">const</span> uint8_t* payload,
<a name="l01052"></a>01052 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01053"></a>01053 
<a name="l01070"></a>01070 libnet_ptag_t
<a name="l01071"></a>01071 <a class="code" href="libnet-functions_8h.html#5b4d53861194f34da21ca87bcc158517">libnet_build_dnsv4</a>(uint16_t h_len, uint16_t <span class="keywordtype">id</span>, uint16_t flags,
<a name="l01072"></a>01072 uint16_t num_q, uint16_t num_anws_rr, uint16_t num_auth_rr,
<a name="l01073"></a>01073 uint16_t num_addi_rr, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l,
<a name="l01074"></a>01074 libnet_ptag_t ptag);
<a name="l01075"></a>01075 
<a name="l01093"></a>01093 libnet_ptag_t
<a name="l01094"></a>01094 <a class="code" href="libnet-functions_8h.html#d8e0469edf11477ccc3fc0b9cb031d00">libnet_build_rip</a>(uint8_t cmd, uint8_t version, uint16_t rd, uint16_t af,
<a name="l01095"></a>01095 uint16_t rt, uint32_t addr, uint32_t mask, uint32_t next_hop,
<a name="l01096"></a>01096 uint32_t metric, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l,
<a name="l01097"></a>01097 libnet_ptag_t ptag);
<a name="l01098"></a>01098 
<a name="l01121"></a>01121 libnet_ptag_t
<a name="l01122"></a>01122 <a class="code" href="libnet-functions_8h.html#7bc36e79f132c1b7ff449e9df2a459b7">libnet_build_rpc_call</a>(uint32_t rm, uint32_t xid, uint32_t prog_num,
<a name="l01123"></a>01123 uint32_t prog_vers, uint32_t procedure, uint32_t cflavor, uint32_t clength,
<a name="l01124"></a>01124 uint8_t *cdata, uint32_t vflavor, uint32_t vlength, <span class="keyword">const</span> uint8_t *vdata,
<a name="l01125"></a>01125 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01126"></a>01126 
<a name="l01149"></a>01149 libnet_ptag_t
<a name="l01150"></a>01150 <a class="code" href="libnet-functions_8h.html#5051a29044af5ac103f6604ef8d480e5">libnet_build_stp_conf</a>(uint16_t <span class="keywordtype">id</span>, uint8_t version, uint8_t bpdu_type,
<a name="l01151"></a>01151 uint8_t flags, <span class="keyword">const</span> uint8_t *root_id, uint32_t root_pc, <span class="keyword">const</span> uint8_t *bridge_id,
<a name="l01152"></a>01152 uint16_t port_id, uint16_t message_age, uint16_t max_age, 
<a name="l01153"></a>01153 uint16_t hello_time, uint16_t f_delay, <span class="keyword">const</span> uint8_t* payload,
<a name="l01154"></a>01154 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01155"></a>01155 
<a name="l01169"></a>01169 libnet_ptag_t
<a name="l01170"></a>01170 <a class="code" href="libnet-functions_8h.html#20cda717c9254f73230b95f9eb808bc1">libnet_build_stp_tcn</a>(uint16_t <span class="keywordtype">id</span>, uint8_t version, uint8_t bpdu_type,
<a name="l01171"></a>01171 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01172"></a>01172 
<a name="l01190"></a>01190 libnet_ptag_t
<a name="l01191"></a>01191 <a class="code" href="libnet-functions_8h.html#ed08f26e3bc9afd750a3b515a8d83526">libnet_build_token_ring</a>(uint8_t ac, uint8_t fc, <span class="keyword">const</span> uint8_t *dst, <span class="keyword">const</span> uint8_t *src,
<a name="l01192"></a>01192 uint8_t dsap, uint8_t ssap, uint8_t cf, <span class="keyword">const</span> uint8_t *oui, uint16_t type,
<a name="l01193"></a>01193 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01194"></a>01194 
<a name="l01208"></a>01208 libnet_ptag_t
<a name="l01209"></a>01209 <a class="code" href="libnet-functions_8h.html#4280cf3a4ffdff6d11c11dcd5f69f0d7">libnet_autobuild_token_ring</a>(uint8_t ac, uint8_t fc, <span class="keyword">const</span> uint8_t *dst, 
<a name="l01210"></a>01210 uint8_t dsap, uint8_t ssap, uint8_t cf, <span class="keyword">const</span> uint8_t *oui, uint16_t type,
<a name="l01211"></a>01211 libnet_t *l);
<a name="l01212"></a>01212 
<a name="l01232"></a>01232 libnet_ptag_t
<a name="l01233"></a>01233 <a class="code" href="libnet-functions_8h.html#687daca40884d1125c4115ce215060f6">libnet_build_vrrp</a>(uint8_t version, uint8_t type, uint8_t vrouter_id,
<a name="l01234"></a>01234 uint8_t priority, uint8_t ip_count, uint8_t auth_type, uint8_t advert_int,
<a name="l01235"></a>01235 uint16_t sum, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l,
<a name="l01236"></a>01236 libnet_ptag_t ptag);
<a name="l01237"></a>01237 
<a name="l01250"></a>01250 libnet_ptag_t
<a name="l01251"></a>01251 <a class="code" href="libnet-functions_8h.html#da1854f38dd301252fc97c93084ac4eb">libnet_build_mpls</a>(uint32_t label, uint8_t experimental, uint8_t bos,
<a name="l01252"></a>01252 uint8_t ttl, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l,
<a name="l01253"></a>01253 libnet_ptag_t ptag);
<a name="l01254"></a>01254 
<a name="l01282"></a>01282 libnet_ptag_t
<a name="l01283"></a>01283 <a class="code" href="libnet-functions_8h.html#8a13581c5722c0ee77c2486465c10275">libnet_build_ntp</a>(uint8_t leap_indicator, uint8_t version, uint8_t mode,
<a name="l01284"></a>01284 uint8_t stratum, uint8_t poll, uint8_t precision, uint16_t delay_int,
<a name="l01285"></a>01285 uint16_t delay_frac, uint16_t dispersion_int, uint16_t dispersion_frac,
<a name="l01286"></a>01286 uint32_t reference_id, uint32_t ref_ts_int, uint32_t ref_ts_frac,
<a name="l01287"></a>01287 uint32_t orig_ts_int, uint32_t orig_ts_frac, uint32_t rec_ts_int,
<a name="l01288"></a>01288 uint32_t rec_ts_frac, uint32_t xmt_ts_int, uint32_t xmt_ts_frac,
<a name="l01289"></a>01289 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01290"></a>01290 
<a name="l01304"></a>01304 libnet_ptag_t
<a name="l01305"></a>01305 <a class="code" href="libnet-functions_8h.html#215924e3d5c0cbcc4479579e45e60b58">libnet_build_ospfv2</a>(uint16_t len, uint8_t type, uint32_t rtr_id,
<a name="l01306"></a>01306 uint32_t area_id, uint16_t sum, uint16_t autype, <span class="keyword">const</span> uint8_t* payload,
<a name="l01307"></a>01307 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01308"></a>01308 
<a name="l01323"></a>01323 libnet_ptag_t
<a name="l01324"></a>01324 <a class="code" href="libnet-functions_8h.html#ff42a70a3b00a91d14200798d10889f2">libnet_build_ospfv2_hello</a>(uint32_t netmask, uint16_t interval, uint8_t opts,
<a name="l01325"></a>01325 uint8_t priority, uint dead_int, uint32_t des_rtr, uint32_t bkup_rtr,
<a name="l01326"></a>01326 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01327"></a>01327  
<a name="l01339"></a>01339 libnet_ptag_t
<a name="l01340"></a>01340 <a class="code" href="libnet-functions_8h.html#08a78bd747a22581c5ab036b73ca8867">libnet_build_ospfv2_dbd</a>(uint16_t dgram_len, uint8_t opts, uint8_t type,
<a name="l01341"></a>01341 uint seqnum, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l,
<a name="l01342"></a>01342 libnet_ptag_t ptag);
<a name="l01343"></a>01343  
<a name="l01354"></a>01354 libnet_ptag_t
<a name="l01355"></a>01355 <a class="code" href="libnet-functions_8h.html#1cfa7596a2f85b2b7226d81fa47e7d39">libnet_build_ospfv2_lsr</a>(uint type, uint lsid, uint32_t advrtr,
<a name="l01356"></a>01356 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01357"></a>01357  
<a name="l01366"></a>01366 libnet_ptag_t
<a name="l01367"></a>01367 <a class="code" href="libnet-functions_8h.html#65617e2355459bc9ec2db6b979bee9d4">libnet_build_ospfv2_lsu</a>(uint num, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s,
<a name="l01368"></a>01368 libnet_t *l, libnet_ptag_t ptag);
<a name="l01369"></a>01369 
<a name="l01385"></a>01385 libnet_ptag_t
<a name="l01386"></a>01386 <a class="code" href="libnet-functions_8h.html#611d140c425ab18996909be01e02f1c6">libnet_build_ospfv2_lsa</a>(uint16_t age, uint8_t opts, uint8_t type,
<a name="l01387"></a>01387 uint lsid, uint32_t advrtr, uint seqnum, uint16_t sum, uint16_t len,
<a name="l01388"></a>01388 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01389"></a>01389  
<a name="l01404"></a>01404 libnet_ptag_t
<a name="l01405"></a>01405 <a class="code" href="libnet-functions_8h.html#d85342b88f62015f11c85e5b387af465">libnet_build_ospfv2_lsa_rtr</a>(uint16_t flags, uint16_t num, uint <span class="keywordtype">id</span>,
<a name="l01406"></a>01406 uint data, uint8_t type, uint8_t tos, uint16_t metric, <span class="keyword">const</span> uint8_t* payload,
<a name="l01407"></a>01407 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01408"></a>01408  
<a name="l01418"></a>01418 libnet_ptag_t
<a name="l01419"></a>01419 <a class="code" href="libnet-functions_8h.html#0e067929f1e1dfe92062603c6ba12e71">libnet_build_ospfv2_lsa_net</a>(uint32_t nmask, uint rtrid, <span class="keyword">const</span> uint8_t* payload,
<a name="l01420"></a>01420 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01421"></a>01421  
<a name="l01432"></a>01432 libnet_ptag_t
<a name="l01433"></a>01433 <a class="code" href="libnet-functions_8h.html#f3a2ccf97bfd42d3e4760ebf10d71fa5">libnet_build_ospfv2_lsa_sum</a>(uint32_t nmask, uint metric, uint tos,
<a name="l01434"></a>01434 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01435"></a>01435  
<a name="l01447"></a>01447 libnet_ptag_t
<a name="l01448"></a>01448 <a class="code" href="libnet-functions_8h.html#b1a6927f757475cd9734772cc93779a7">libnet_build_ospfv2_lsa_as</a>(uint32_t nmask, uint metric, uint32_t fwdaddr,
<a name="l01449"></a>01449 uint tag, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l,
<a name="l01450"></a>01450 libnet_ptag_t ptag);
<a name="l01451"></a>01451 
<a name="l01463"></a>01463 libnet_ptag_t
<a name="l01464"></a>01464 <a class="code" href="libnet-functions_8h.html#6b46a684b738fde7b4012e55eff31b73">libnet_build_data</a>(<span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l,
<a name="l01465"></a>01465 libnet_ptag_t ptag);
<a name="l01466"></a>01466 
<a name="l01488"></a>01488 libnet_ptag_t
<a name="l01489"></a>01489 <a class="code" href="libnet-functions_8h.html#91804043ed81baa5a3d0243ee0e5e1bf">libnet_build_dhcpv4</a>(uint8_t opcode, uint8_t htype, uint8_t hlen,
<a name="l01490"></a>01490 uint8_t hopcount, uint32_t xid, uint16_t secs, uint16_t flags,
<a name="l01491"></a>01491 uint32_t cip, uint32_t yip,  uint32_t sip, uint32_t gip, <span class="keyword">const</span> uint8_t *chaddr,
<a name="l01492"></a>01492 uint8_t *sname, <span class="keyword">const</span> uint8_t *file, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, 
<a name="l01493"></a>01493 libnet_t *l, libnet_ptag_t ptag);
<a name="l01494"></a>01494 
<a name="l01516"></a>01516 libnet_ptag_t
<a name="l01517"></a>01517 <a class="code" href="libnet-functions_8h.html#a53c6f6d15d56b0ef34456d331524bc9">libnet_build_bootpv4</a>(uint8_t opcode, uint8_t htype, uint8_t hlen,
<a name="l01518"></a>01518 uint8_t hopcount, uint32_t xid, uint16_t secs, uint16_t flags,
<a name="l01519"></a>01519 uint32_t cip, uint32_t yip,  uint32_t sip, uint32_t gip, <span class="keyword">const</span> uint8_t *chaddr,
<a name="l01520"></a>01520 uint8_t *sname, <span class="keyword">const</span> uint8_t *file, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, 
<a name="l01521"></a>01521 libnet_t *l, libnet_ptag_t ptag);
<a name="l01522"></a>01522 
<a name="l01527"></a>01527 uint32_t
<a name="l01528"></a>01528 <a class="code" href="libnet-functions_8h.html#223c01dcaba5f098964342ef2737fd85">libnet_getgre_length</a>(uint16_t fv);
<a name="l01529"></a>01529 
<a name="l01552"></a>01552 libnet_ptag_t
<a name="l01553"></a>01553 <a class="code" href="libnet-functions_8h.html#8406f0a8d836df764bedd849ce24a14c">libnet_build_gre</a>(uint16_t fv, uint16_t type, uint16_t sum,
<a name="l01554"></a>01554 uint16_t offset, uint32_t key, uint32_t seq, uint16_t len,
<a name="l01555"></a>01555 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01556"></a>01556 
<a name="l01578"></a>01578 libnet_ptag_t
<a name="l01579"></a>01579 <a class="code" href="libnet-functions_8h.html#a62e7006bab99d1528571bba42118350">libnet_build_egre</a>(uint16_t fv, uint16_t type, uint16_t sum,
<a name="l01580"></a>01580 uint16_t offset, uint32_t key, uint32_t seq, uint16_t len,
<a name="l01581"></a>01581 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01582"></a>01582 
<a name="l01594"></a>01594 libnet_ptag_t
<a name="l01595"></a>01595 <a class="code" href="libnet-functions_8h.html#bf78669b728f6ec879a38bc9fcf7e4d4">libnet_build_gre_sre</a>(uint16_t af, uint8_t offset, uint8_t length,
<a name="l01596"></a>01596 uint8_t *routing, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l,
<a name="l01597"></a>01597 libnet_ptag_t ptag);
<a name="l01598"></a>01598 
<a name="l01604"></a>01604 libnet_ptag_t
<a name="l01605"></a>01605 <a class="code" href="libnet-functions_8h.html#578594ad820ae9d82fe3f9ea470f0b27">libnet_build_gre_last_sre</a>(libnet_t *l, libnet_ptag_t ptag);
<a name="l01606"></a>01606 
<a name="l01628"></a>01628 libnet_ptag_t
<a name="l01629"></a>01629 <a class="code" href="libnet-functions_8h.html#9ba6e1d6e95256e67f4a8765bacb901d">libnet_build_bgp4_header</a>(uint8_t marker[LIBNET_BGP4_MARKER_SIZE],
<a name="l01630"></a>01630 uint16_t len, uint8_t type, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s,
<a name="l01631"></a>01631 libnet_t *l, libnet_ptag_t ptag);
<a name="l01632"></a>01632 
<a name="l01649"></a>01649 libnet_ptag_t
<a name="l01650"></a>01650 <a class="code" href="libnet-functions_8h.html#99eadbed880ccc2cd3334fa4e32ca193">libnet_build_bgp4_open</a>(uint8_t version, uint16_t src_as, uint16_t hold_time,
<a name="l01651"></a>01651 uint32_t bgp_id, uint8_t opt_len, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s,
<a name="l01652"></a>01652 libnet_t *l, libnet_ptag_t ptag);
<a name="l01653"></a>01653 
<a name="l01669"></a>01669 libnet_ptag_t
<a name="l01670"></a>01670 <a class="code" href="libnet-functions_8h.html#d2111145ddb5222d70025f568ab22b75">libnet_build_bgp4_update</a>(uint16_t unfeasible_rt_len, <span class="keyword">const</span> uint8_t *withdrawn_rt,
<a name="l01671"></a>01671 uint16_t total_path_attr_len, <span class="keyword">const</span> uint8_t *path_attributes, uint16_t info_len,
<a name="l01672"></a>01672 uint8_t *reachability_info, <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s,
<a name="l01673"></a>01673 libnet_t *l, libnet_ptag_t ptag);
<a name="l01674"></a>01674 
<a name="l01687"></a>01687 libnet_ptag_t
<a name="l01688"></a>01688 <a class="code" href="libnet-functions_8h.html#8bbc446c78e7201faf61e8e732919527">libnet_build_bgp4_notification</a>(uint8_t err_code, uint8_t err_subcode,
<a name="l01689"></a>01689 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01690"></a>01690 
<a name="l01712"></a>01712 libnet_ptag_t
<a name="l01713"></a>01713 <a class="code" href="libnet-functions_8h.html#9a182529f97b05e9a2a5bd120f2f8456">libnet_build_sebek</a>(uint32_t magic, uint16_t version, uint16_t type, 
<a name="l01714"></a>01714 uint32_t counter, uint32_t time_sec, uint32_t time_usec, uint32_t pid,
<a name="l01715"></a>01715 uint32_t uid, uint32_t fd, uint8_t cmd[SEBEK_CMD_LENGTH], uint32_t length, 
<a name="l01716"></a>01716 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01717"></a>01717 
<a name="l01737"></a>01737 libnet_ptag_t
<a name="l01738"></a>01738 <a class="code" href="libnet-functions_8h.html#673f627bdc332ec131135d58a1e44a9d">libnet_build_hsrp</a>(uint8_t version, uint8_t opcode, uint8_t state, 
<a name="l01739"></a>01739 uint8_t hello_time, uint8_t hold_time, uint8_t priority, uint8_t group,
<a name="l01740"></a>01740 uint8_t reserved, uint8_t authdata[HSRP_AUTHDATA_LENGTH], uint32_t virtual_ip,
<a name="l01741"></a>01741 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01742"></a>01742 
<a name="l01757"></a>01757 libnet_ptag_t
<a name="l01758"></a>01758 <a class="code" href="libnet-functions_8h.html#76a5b279a29e54057b1fb3e3786ce32f">libnet_build_link</a>(<span class="keyword">const</span> uint8_t *dst, <span class="keyword">const</span> uint8_t *src, <span class="keyword">const</span> uint8_t *oui, uint16_t type, 
<a name="l01759"></a>01759 <span class="keyword">const</span> uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
<a name="l01760"></a>01760 
<a name="l01771"></a>01771 libnet_ptag_t
<a name="l01772"></a>01772 <a class="code" href="libnet-functions_8h.html#84b5f1f2c40e2411e5792dcfc152c988">libnet_autobuild_link</a>(<span class="keyword">const</span> uint8_t *dst, <span class="keyword">const</span> uint8_t *oui, uint16_t type,
<a name="l01773"></a>01773 libnet_t *l);
<a name="l01774"></a>01774 
<a name="l01787"></a>01787 <span class="keywordtype">int</span>
<a name="l01788"></a>01788 <a class="code" href="libnet-functions_8h.html#53375552efe95906e152152fc170cc0d">libnet_write</a>(libnet_t *l);
<a name="l01789"></a>01789 
<a name="l01799"></a>01799 uint32_t
<a name="l01800"></a>01800 <a class="code" href="libnet-functions_8h.html#e1981c8f0923176ecf484e9cd07fea15">libnet_get_ipaddr4</a>(libnet_t *l);
<a name="l01801"></a>01801 
<a name="l01807"></a>01807 <span class="keyword">struct </span>libnet_in6_addr
<a name="l01808"></a>01808 <a class="code" href="libnet-functions_8h.html#3d7de8968c2087df7a22140d7993e267">libnet_get_ipaddr6</a>(libnet_t *l);
<a name="l01809"></a>01809 
<a name="l01818"></a>01818 <span class="keyword">struct </span>libnet_ether_addr *
<a name="l01819"></a>01819 <a class="code" href="libnet-functions_8h.html#6531e479687de8d195bd1605422735ca">libnet_get_hwaddr</a>(libnet_t *l);
<a name="l01820"></a>01820 
<a name="l01830"></a>01830 uint8_t *
<a name="l01831"></a>01831 <a class="code" href="libnet-functions_8h.html#0b668af5fd10b0a2879a9a0ea343dce4">libnet_hex_aton</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *s, <span class="keywordtype">int</span> *len);
<a name="l01832"></a>01832 
<a name="l01837"></a>01837 <span class="keyword">const</span> <span class="keywordtype">char</span> *
<a name="l01838"></a>01838 <a class="code" href="libnet-functions_8h.html#5264b060183d307688780bf862fae37c">libnet_version</a>(<span class="keywordtype">void</span>);
<a name="l01839"></a>01839 
<a name="l01855"></a>01855 <span class="keywordtype">int</span>
<a name="l01856"></a>01856 <a class="code" href="libnet-functions_8h.html#42d0af11102be3209e3f207072946906">libnet_adv_cull_packet</a>(libnet_t *l, uint8_t **packet, uint32_t *packet_s);
<a name="l01857"></a>01857 
<a name="l01870"></a>01870 <span class="keywordtype">int</span>
<a name="l01871"></a>01871 <a class="code" href="libnet-functions_8h.html#5297581f7aec5f42abede6bd45cd46e9">libnet_adv_cull_header</a>(libnet_t *l, libnet_ptag_t ptag, uint8_t **header,
<a name="l01872"></a>01872 uint32_t *header_s);
<a name="l01873"></a>01873 
<a name="l01887"></a>01887 <span class="keywordtype">int</span>
<a name="l01888"></a>01888 <a class="code" href="libnet-functions_8h.html#760ea88b395ac3baad0111d569132ae7">libnet_adv_write_link</a>(libnet_t *l, <span class="keyword">const</span> uint8_t *packet, uint32_t packet_s);
<a name="l01889"></a>01889 
<a name="l01903"></a>01903 <span class="keywordtype">int</span>
<a name="l01904"></a>01904 <a class="code" href="libnet-functions_8h.html#e339adcfdccf212acf3f27538d22c1c5">libnet_adv_write_raw_ipv4</a>(libnet_t *l, <span class="keyword">const</span> uint8_t *packet, uint32_t packet_s);
<a name="l01905"></a>01905 
<a name="l01912"></a>01912 <span class="keywordtype">void</span>
<a name="l01913"></a>01913 <a class="code" href="libnet-functions_8h.html#1309b57e3571306d9bad13ae93600644">libnet_adv_free_packet</a>(libnet_t *l, uint8_t *packet);
<a name="l01914"></a>01914 
<a name="l01928"></a>01928 <span class="keywordtype">int</span> 
<a name="l01929"></a>01929 <a class="code" href="libnet-functions_8h.html#20887ffe940f1d2c5bcae79a188176c6">libnet_cq_add</a>(libnet_t *l, <span class="keywordtype">char</span> *label);
<a name="l01930"></a>01930 
<a name="l01945"></a>01945 libnet_t *
<a name="l01946"></a>01946 <a class="code" href="libnet-functions_8h.html#29f60504a0fe9b7bf6f5a962063118bb">libnet_cq_remove</a>(libnet_t *l);
<a name="l01947"></a>01947 
<a name="l01959"></a>01959 libnet_t *
<a name="l01960"></a>01960 <a class="code" href="libnet-functions_8h.html#4e972664a0d839eab039f8fb2379987a">libnet_cq_remove_by_label</a>(<span class="keywordtype">char</span> *label);
<a name="l01961"></a>01961  
<a name="l01968"></a>01968 <span class="keyword">const</span> <span class="keywordtype">char</span> *
<a name="l01969"></a>01969 <a class="code" href="libnet-functions_8h.html#bb1341d217de4d9c39ec484951e518b0">libnet_cq_getlabel</a>(libnet_t *l);
<a name="l01970"></a>01970  
<a name="l01977"></a>01977 libnet_t *
<a name="l01978"></a>01978 <a class="code" href="libnet-functions_8h.html#0cd216f0e5563ee06043a8ebfa16fe57">libnet_cq_find_by_label</a>(<span class="keywordtype">char</span> *label);
<a name="l01979"></a>01979   
<a name="l01985"></a>01985 <span class="keywordtype">void</span>
<a name="l01986"></a>01986 <a class="code" href="libnet-functions_8h.html#565d99e292980d5033bef2d186596217">libnet_cq_destroy</a>(<span class="keywordtype">void</span>);
<a name="l01987"></a>01987 
<a name="l02007"></a>02007 libnet_t *
<a name="l02008"></a>02008 <a class="code" href="libnet-functions_8h.html#7e98a045ac6e29ca421507d9a200b5aa">libnet_cq_head</a>(<span class="keywordtype">void</span>);
<a name="l02009"></a>02009 
<a name="l02015"></a>02015 <span class="keywordtype">int</span>
<a name="l02016"></a>02016 <a class="code" href="libnet-functions_8h.html#ab1eb1e3ae64cde579a5a6035d5406c8">libnet_cq_last</a>(<span class="keywordtype">void</span>);
<a name="l02017"></a>02017 
<a name="l02023"></a>02023 libnet_t *
<a name="l02024"></a>02024 <a class="code" href="libnet-functions_8h.html#d312f3182e3e5367db87fc6bab32604d">libnet_cq_next</a>(<span class="keywordtype">void</span>);
<a name="l02025"></a>02025 
<a name="l02031"></a>02031 uint32_t
<a name="l02032"></a>02032 <a class="code" href="libnet-functions_8h.html#d26ce874f56c59091f4811a7816400a8">libnet_cq_size</a>(<span class="keywordtype">void</span>);
<a name="l02033"></a>02033 
<a name="l02037"></a>02037 uint32_t
<a name="l02038"></a>02038 <a class="code" href="libnet-functions_8h.html#127764f17e4457f96fb4b976a1666efa">libnet_cq_end_loop</a>(<span class="keywordtype">void</span>);
<a name="l02039"></a>02039 
<a name="l02045"></a>02045 <span class="keywordtype">void</span>
<a name="l02046"></a>02046 <a class="code" href="libnet-functions_8h.html#3aa6623246e13310dc6f9f9834e7313b">libnet_diag_dump_context</a>(libnet_t *l);
<a name="l02047"></a>02047 
<a name="l02053"></a>02053 <span class="keywordtype">void</span>
<a name="l02054"></a>02054 <a class="code" href="libnet-functions_8h.html#9825c6c69efd6ef24545d59177a333e6">libnet_diag_dump_pblock</a>(libnet_t *l);
<a name="l02055"></a>02055 
<a name="l02062"></a>02062 <span class="keywordtype">char</span> *
<a name="l02063"></a>02063 <a class="code" href="libnet-functions_8h.html#57fed7106abf515c5883611eded7ad88">libnet_diag_dump_pblock_type</a>(uint8_t type);
<a name="l02064"></a>02064 
<a name="l02078"></a>02078 <span class="keywordtype">void</span>
<a name="l02079"></a>02079 <a class="code" href="libnet-functions_8h.html#db2f7d417f05a058c0c2c7f76b6f66e6">libnet_diag_dump_hex</a>(<span class="keyword">const</span> uint8_t *packet, uint32_t len, <span class="keywordtype">int</span> swap, FILE *stream);
<a name="l02080"></a>02080 
<a name="l02081"></a>02081 <span class="comment">/*</span>
<a name="l02082"></a>02082 <span class="comment"> * [Internal] </span>
<a name="l02083"></a>02083 <span class="comment"> */</span>
<a name="l02084"></a>02084 <span class="keywordtype">int</span>
<a name="l02085"></a>02085 libnet_write_raw_ipv4(libnet_t *l, <span class="keyword">const</span> uint8_t *packet, uint32_t size);
<a name="l02086"></a>02086 
<a name="l02087"></a>02087 <span class="comment">/*</span>
<a name="l02088"></a>02088 <span class="comment"> * [Internal] </span>
<a name="l02089"></a>02089 <span class="comment"> */</span>
<a name="l02090"></a>02090 <span class="keywordtype">int</span>
<a name="l02091"></a>02091 libnet_write_raw_ipv6(libnet_t *l, <span class="keyword">const</span> uint8_t *packet, uint32_t size);
<a name="l02092"></a>02092 
<a name="l02093"></a>02093 <span class="comment">/*</span>
<a name="l02094"></a>02094 <span class="comment"> * [Internal] </span>
<a name="l02095"></a>02095 <span class="comment"> */</span>
<a name="l02096"></a>02096 <span class="keywordtype">int</span>
<a name="l02097"></a>02097 libnet_write_link(libnet_t *l, <span class="keyword">const</span> uint8_t *packet, uint32_t size);
<a name="l02098"></a>02098 
<a name="l02099"></a>02099 <span class="preprocessor">#if ((__WIN32__) &amp;&amp; !(__CYGWIN__))</span>
<a name="l02100"></a>02100 <span class="preprocessor"></span><span class="comment">/*</span>
<a name="l02101"></a>02101 <span class="comment"> * [Internal] </span>
<a name="l02102"></a>02102 <span class="comment"> */</span>
<a name="l02103"></a>02103 SOCKET
<a name="l02104"></a>02104 libnet_open_raw4(libnet_t *l);
<a name="l02105"></a>02105 <span class="preprocessor">#else</span>
<a name="l02106"></a>02106 <span class="preprocessor"></span><span class="comment">/*</span>
<a name="l02107"></a>02107 <span class="comment"> * [Internal] </span>
<a name="l02108"></a>02108 <span class="comment"> */</span>
<a name="l02109"></a>02109 <span class="keywordtype">int</span>
<a name="l02110"></a>02110 libnet_open_raw4(libnet_t *l);
<a name="l02111"></a>02111 <span class="preprocessor">#endif</span>
<a name="l02112"></a>02112 <span class="preprocessor"></span>
<a name="l02113"></a>02113 <span class="comment">/*</span>
<a name="l02114"></a>02114 <span class="comment"> * [Internal] </span>
<a name="l02115"></a>02115 <span class="comment"> */</span>
<a name="l02116"></a>02116 <span class="keywordtype">int</span>
<a name="l02117"></a>02117 libnet_close_raw4(libnet_t *l);
<a name="l02118"></a>02118 
<a name="l02119"></a>02119 <span class="comment">/*</span>
<a name="l02120"></a>02120 <span class="comment"> * [Internal] </span>
<a name="l02121"></a>02121 <span class="comment"> */</span>
<a name="l02122"></a>02122 <span class="keywordtype">int</span>
<a name="l02123"></a>02123 libnet_open_raw6(libnet_t *l);
<a name="l02124"></a>02124        
<a name="l02125"></a>02125 <span class="comment">/*</span>
<a name="l02126"></a>02126 <span class="comment"> * [Internal] </span>
<a name="l02127"></a>02127 <span class="comment"> */</span>
<a name="l02128"></a>02128 <span class="keywordtype">int</span>
<a name="l02129"></a>02129 libnet_close_raw6(libnet_t *l);
<a name="l02130"></a>02130 
<a name="l02131"></a>02131 <span class="comment">/*</span>
<a name="l02132"></a>02132 <span class="comment"> * [Internal] </span>
<a name="l02133"></a>02133 <span class="comment"> */</span>
<a name="l02134"></a>02134 <span class="keywordtype">int</span>
<a name="l02135"></a>02135 libnet_select_device(libnet_t *l);
<a name="l02136"></a>02136 
<a name="l02137"></a>02137 <span class="comment">/*</span>
<a name="l02138"></a>02138 <span class="comment"> * [Internal] </span>
<a name="l02139"></a>02139 <span class="comment"> */</span>
<a name="l02140"></a>02140 <span class="keywordtype">int</span>
<a name="l02141"></a>02141 libnet_open_link(libnet_t *l);
<a name="l02142"></a>02142 
<a name="l02143"></a>02143 <span class="comment">/*</span>
<a name="l02144"></a>02144 <span class="comment"> * [Internal] </span>
<a name="l02145"></a>02145 <span class="comment"> */</span>
<a name="l02146"></a>02146 <span class="keywordtype">int</span>
<a name="l02147"></a>02147 libnet_close_link(libnet_t *l);
<a name="l02148"></a>02148 
<a name="l02149"></a>02149 <span class="comment">/*</span>
<a name="l02150"></a>02150 <span class="comment"> * [Internal]</span>
<a name="l02151"></a>02151 <span class="comment"> *   THIS FUNCTION IS BROKEN. IT WILL SEGFAULT OR CORRUPT MEMORY, OR JUST SILENTLY DO THE</span>
<a name="l02152"></a>02152 <span class="comment"> *   WRONG THING IF NOT CALLED CORRECTLY, AND CALLING IT CORRECTLY IS UNDOCUMENTED, AND</span>
<a name="l02153"></a>02153 <span class="comment"> *   ALMOST IMPOSSIBLE. YOU HAVE BEEN WARNED.</span>
<a name="l02154"></a>02154 <span class="comment"> */</span>
<a name="l02155"></a>02155 <span class="keywordtype">int</span>
<a name="l02156"></a>02156 libnet_do_checksum(libnet_t *l, uint8_t *iphdr, <span class="keywordtype">int</span> protocol, <span class="keywordtype">int</span> h_len);
<a name="l02157"></a>02157 
<a name="l02158"></a>02158 <span class="comment">/* Calculate internet checksums.</span>
<a name="l02159"></a>02159 <span class="comment"> *</span>
<a name="l02160"></a>02160 <span class="comment"> * IP (TCP, UDP, IGMP, ICMP, etc...) checksums usually need information from</span>
<a name="l02161"></a>02161 <span class="comment"> * the IP header to construct the "pseudo header", this function takes a</span>
<a name="l02162"></a>02162 <span class="comment"> * pointer to that header, the buffer boundaries, the "h_len" (see pblock_t for</span>
<a name="l02163"></a>02163 <span class="comment"> * a description, it is increasinly unused, though, and I'm trying to remove it</span>
<a name="l02164"></a>02164 <span class="comment"> * altogether), and the protocol number for the protocol that is to be</span>
<a name="l02165"></a>02165 <span class="comment"> * checksummed.</span>
<a name="l02166"></a>02166 <span class="comment"> *</span>
<a name="l02167"></a>02167 <span class="comment"> * Finding that protocol requires that the IP header be well-formed... so this</span>
<a name="l02168"></a>02168 <span class="comment"> * won't work well for invalid packets. But then, what is the valid checksum</span>
<a name="l02169"></a>02169 <span class="comment"> * for a valid packet, anyhow?</span>
<a name="l02170"></a>02170 <span class="comment"> *</span>
<a name="l02171"></a>02171 <span class="comment"> * This doesn't work well for non-inet checksums, sorry, that's an original design</span>
<a name="l02172"></a>02172 <span class="comment"> * flaw. pblock_t needs a pointer in it, to a packet assembly function that can be</span>
<a name="l02173"></a>02173 <span class="comment"> * called at runtime to do assembly and checksumming.</span>
<a name="l02174"></a>02174 <span class="comment"> */</span>
<a name="l02175"></a>02175 <span class="keywordtype">int</span>
<a name="l02176"></a>02176 libnet_inet_checksum(libnet_t *l, uint8_t *iphdr, <span class="keywordtype">int</span> protocol, <span class="keywordtype">int</span> h_len, <span class="keyword">const</span> uint8_t *beg, <span class="keyword">const</span> uint8_t * end);
<a name="l02177"></a>02177 
<a name="l02178"></a>02178 <span class="comment">/*</span>
<a name="l02179"></a>02179 <span class="comment"> * [Internal] </span>
<a name="l02180"></a>02180 <span class="comment"> */</span>
<a name="l02181"></a>02181 uint32_t
<a name="l02182"></a>02182 libnet_compute_crc(uint8_t *buf, uint32_t len);
<a name="l02183"></a>02183 
<a name="l02184"></a>02184 <span class="comment">/*</span>
<a name="l02185"></a>02185 <span class="comment"> * [Internal] </span>
<a name="l02186"></a>02186 <span class="comment"> */</span>
<a name="l02187"></a>02187 uint16_t
<a name="l02188"></a>02188 libnet_ip_check(uint16_t *addr, <span class="keywordtype">int</span> len);
<a name="l02189"></a>02189 
<a name="l02190"></a>02190 <span class="comment">/*</span>
<a name="l02191"></a>02191 <span class="comment"> * [Internal] </span>
<a name="l02192"></a>02192 <span class="comment"> */</span>
<a name="l02193"></a>02193 <span class="keywordtype">int</span>
<a name="l02194"></a>02194 libnet_in_cksum(uint16_t *addr, <span class="keywordtype">int</span> len);
<a name="l02195"></a>02195 
<a name="l02196"></a>02196 <span class="comment">/*</span>
<a name="l02197"></a>02197 <span class="comment"> * [Internal] </span>
<a name="l02198"></a>02198 <span class="comment"> * If ptag is 0, function will create a pblock for the protocol unit type,</span>
<a name="l02199"></a>02199 <span class="comment"> * append it to the list and return a pointer to it.  If ptag is not 0,</span>
<a name="l02200"></a>02200 <span class="comment"> * function will search the pblock list for the specified protocol block </span>
<a name="l02201"></a>02201 <span class="comment"> * and return a pointer to it.</span>
<a name="l02202"></a>02202 <span class="comment"> */</span>
<a name="l02203"></a>02203 libnet_pblock_t *
<a name="l02204"></a>02204 libnet_pblock_probe(libnet_t *l, libnet_ptag_t ptag, uint32_t b_len, 
<a name="l02205"></a>02205 uint8_t type);
<a name="l02206"></a>02206 
<a name="l02207"></a>02207 <span class="comment">/*</span>
<a name="l02208"></a>02208 <span class="comment"> * [Internal] </span>
<a name="l02209"></a>02209 <span class="comment"> * Function creates the pblock list if l-&gt;protocol_blocks == NULL or appends</span>
<a name="l02210"></a>02210 <span class="comment"> * an entry to the doubly linked list.</span>
<a name="l02211"></a>02211 <span class="comment"> */</span>
<a name="l02212"></a>02212 libnet_pblock_t *
<a name="l02213"></a>02213 libnet_pblock_new(libnet_t *l, uint32_t b_len);
<a name="l02214"></a>02214 
<a name="l02215"></a>02215 <span class="comment">/*</span>
<a name="l02216"></a>02216 <span class="comment"> * [Internal] </span>
<a name="l02217"></a>02217 <span class="comment"> * Function swaps two pblocks in memory.</span>
<a name="l02218"></a>02218 <span class="comment"> */</span>
<a name="l02219"></a>02219 <span class="keywordtype">int</span>
<a name="l02220"></a>02220 libnet_pblock_swap(libnet_t *l, libnet_ptag_t ptag1, libnet_ptag_t ptag2);
<a name="l02221"></a>02221 
<a name="l02222"></a>02222 <span class="comment">/*</span>
<a name="l02223"></a>02223 <span class="comment"> * [Internal] </span>
<a name="l02224"></a>02224 <span class="comment"> * Function inserts ptag2 before ptag1 in the doubly linked list.</span>
<a name="l02225"></a>02225 <span class="comment"> */</span>
<a name="l02226"></a>02226 <span class="keywordtype">int</span>
<a name="l02227"></a>02227 libnet_pblock_insert_before(libnet_t *l, libnet_ptag_t ptag1,
<a name="l02228"></a>02228 libnet_ptag_t ptag2);
<a name="l02229"></a>02229 
<a name="l02230"></a>02230 <span class="comment">/*</span>
<a name="l02231"></a>02231 <span class="comment"> * [Internal] </span>
<a name="l02232"></a>02232 <span class="comment"> * Function removes a pblock from context </span>
<a name="l02233"></a>02233 <span class="comment"> */</span>
<a name="l02234"></a>02234 <span class="keywordtype">void</span>
<a name="l02235"></a>02235 libnet_pblock_delete(libnet_t *l, libnet_pblock_t *p);
<a name="l02236"></a>02236 
<a name="l02237"></a>02237 <span class="comment">/*</span>
<a name="l02238"></a>02238 <span class="comment"> * [Internal] </span>
<a name="l02239"></a>02239 <span class="comment"> * Function updates the pblock meta-inforation.  Internally it updates the</span>
<a name="l02240"></a>02240 <span class="comment"> * ptag with a monotonically increasing variable kept in l.  This way each</span>
<a name="l02241"></a>02241 <span class="comment"> * pblock has a succesively increasing ptag identifier.</span>
<a name="l02242"></a>02242 <span class="comment"> */</span>
<a name="l02243"></a>02243 libnet_ptag_t
<a name="l02244"></a>02244 libnet_pblock_update(libnet_t *l, libnet_pblock_t *p, uint32_t h, uint8_t type);
<a name="l02245"></a>02245 
<a name="l02246"></a>02246 
<a name="l02247"></a>02247 <span class="comment">/*</span>
<a name="l02248"></a>02248 <span class="comment"> * [Internal] </span>
<a name="l02249"></a>02249 <span class="comment"> * Function locates a given block by it's ptag. </span>
<a name="l02250"></a>02250 <span class="comment"> */</span>
<a name="l02251"></a>02251 libnet_pblock_t *
<a name="l02252"></a>02252 libnet_pblock_find(libnet_t *l, libnet_ptag_t ptag);
<a name="l02253"></a>02253 
<a name="l02254"></a>02254 <span class="comment">/*</span>
<a name="l02255"></a>02255 <span class="comment"> * [Internal] </span>
<a name="l02256"></a>02256 <span class="comment"> * Function copies protocol block data over.</span>
<a name="l02257"></a>02257 <span class="comment"> */</span>
<a name="l02258"></a>02258 <span class="keywordtype">int</span>
<a name="l02259"></a>02259 libnet_pblock_append(libnet_t *l, libnet_pblock_t *p, <span class="keyword">const</span> uint8_t *buf,
<a name="l02260"></a>02260 uint32_t len);
<a name="l02261"></a>02261 
<a name="l02262"></a>02262 <span class="comment">/*</span>
<a name="l02263"></a>02263 <span class="comment"> * [Internal] </span>
<a name="l02264"></a>02264 <span class="comment"> * Function sets pblock flags.</span>
<a name="l02265"></a>02265 <span class="comment"> */</span>
<a name="l02266"></a>02266 <span class="keywordtype">void</span>
<a name="l02267"></a>02267 libnet_pblock_setflags(libnet_pblock_t *p, uint8_t flags);
<a name="l02268"></a>02268 
<a name="l02269"></a>02269 <span class="comment">/*</span>
<a name="l02270"></a>02270 <span class="comment"> * [Internal] </span>
<a name="l02271"></a>02271 <span class="comment"> * Function returns the protocol number for the protocol block type.  If</span>
<a name="l02272"></a>02272 <span class="comment"> * the type is unknown, the function defaults to returning IPPROTO_IP.</span>
<a name="l02273"></a>02273 <span class="comment"> */</span>
<a name="l02274"></a>02274 <span class="keywordtype">int</span>
<a name="l02275"></a>02275 libnet_pblock_p2p(uint8_t type);
<a name="l02276"></a>02276 
<a name="l02277"></a>02277 <span class="comment">/*</span>
<a name="l02278"></a>02278 <span class="comment"> * [Internal] </span>
<a name="l02279"></a>02279 <span class="comment"> * Function assembles the protocol blocks into a packet, checksums are</span>
<a name="l02280"></a>02280 <span class="comment"> * calculated if that was requested.</span>
<a name="l02281"></a>02281 <span class="comment"> */</span>
<a name="l02282"></a>02282 <span class="keywordtype">int</span>
<a name="l02283"></a>02283 libnet_pblock_coalesce(libnet_t *l, uint8_t **packet, uint32_t *size);
<a name="l02284"></a>02284 
<a name="l02285"></a>02285 <span class="preprocessor">#if !(__WIN32__)</span>
<a name="l02286"></a>02286 <span class="preprocessor"></span><span class="comment">/*</span>
<a name="l02287"></a>02287 <span class="comment"> * [Internal] </span>
<a name="l02288"></a>02288 <span class="comment"> * By testing if we can retrieve the FLAGS of an iface</span>
<a name="l02289"></a>02289 <span class="comment"> * we can know if it exists or not and if it is up.</span>
<a name="l02290"></a>02290 <span class="comment"> */</span>
<a name="l02291"></a>02291 <span class="keywordtype">int</span>
<a name="l02292"></a>02292 libnet_check_iface(libnet_t *l);
<a name="l02293"></a>02293 <span class="preprocessor">#endif</span>
<a name="l02294"></a>02294 <span class="preprocessor"></span>
<a name="l02295"></a>02295 <span class="preprocessor">#if defined(__WIN32__)</span>
<a name="l02296"></a>02296 <span class="preprocessor"></span><span class="comment">/*</span>
<a name="l02297"></a>02297 <span class="comment"> * [Internal] </span>
<a name="l02298"></a>02298 <span class="comment"> */</span>
<a name="l02299"></a>02299 BYTE *
<a name="l02300"></a>02300 libnet_win32_get_remote_mac(libnet_t *l, DWORD IP);
<a name="l02301"></a>02301 
<a name="l02302"></a>02302 <span class="comment">/*</span>
<a name="l02303"></a>02303 <span class="comment"> * [Internal] </span>
<a name="l02304"></a>02304 <span class="comment"> */</span>
<a name="l02305"></a>02305 <span class="keywordtype">int</span>
<a name="l02306"></a>02306 libnet_close_link_interface(libnet_t *l);
<a name="l02307"></a>02307 
<a name="l02308"></a>02308 <span class="comment">/*</span>
<a name="l02309"></a>02309 <span class="comment"> * [Internal] </span>
<a name="l02310"></a>02310 <span class="comment"> */</span>
<a name="l02311"></a>02311 BYTE * 
<a name="l02312"></a>02312 libnet_win32_read_arp_table(DWORD IP);
<a name="l02313"></a>02313 <span class="preprocessor">#endif</span>
<a name="l02314"></a>02314 <span class="preprocessor"></span><span class="preprocessor">#endif  </span><span class="comment">/* __LIBNET_FUNCTIONS_H */</span>
<a name="l02315"></a>02315 
<a name="l02316"></a>02316 <span class="comment">/* EOF */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Mon Nov 8 16:48:16 2010 for libnet by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>