Annotation of embedaddon/libnet/doc/html/libnet-functions_8h-source.html, revision 1.1

1.1     ! misho       1: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
        !             2: <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
        !             3: <title>libnet: libnet-functions.h Source File</title>
        !             4: <link href="doxygen.css" rel="stylesheet" type="text/css">
        !             5: </head><body>
        !             6: <!-- Generated by Doxygen 1.3.4 -->
        !             7: <div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
        !             8: <h1>libnet-functions.h</h1><a href="libnet-functions_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
        !             9: 00002 <span class="comment"> *  $Id: libnet-functions.h,v 1.39 2004/03/01 20:26:11 mike Exp $</span>
        !            10: 00003 <span class="comment"> *</span>
        !            11: 00004 <span class="comment"> *  libnet-functions.h - function prototypes</span>
        !            12: 00005 <span class="comment"> *</span>
        !            13: 00006 <span class="comment"> *  Copyright (c) 1998 - 2004 Mike D. Schiffman &lt;mike@infonexus.com&gt;</span>
        !            14: 00007 <span class="comment"> *  All rights reserved.</span>
        !            15: 00008 <span class="comment"> *</span>
        !            16: 00009 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
        !            17: 00010 <span class="comment"> * modification, are permitted provided that the following conditions</span>
        !            18: 00011 <span class="comment"> * are met:</span>
        !            19: 00012 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
        !            20: 00013 <span class="comment"> *    notice, this list of conditions and the following disclaimer.</span>
        !            21: 00014 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
        !            22: 00015 <span class="comment"> *    notice, this list of conditions and the following disclaimer in the</span>
        !            23: 00016 <span class="comment"> *    documentation and/or other materials provided with the distribution.</span>
        !            24: 00017 <span class="comment"> *</span>
        !            25: 00018 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</span>
        !            26: 00019 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
        !            27: 00020 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
        !            28: 00021 <span class="comment"> * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</span>
        !            29: 00022 <span class="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span>
        !            30: 00023 <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</span>
        !            31: 00024 <span class="comment"> * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</span>
        !            32: 00025 <span class="comment"> * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span>
        !            33: 00026 <span class="comment"> * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</span>
        !            34: 00027 <span class="comment"> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</span>
        !            35: 00028 <span class="comment"> * SUCH DAMAGE.</span>
        !            36: 00029 <span class="comment"> *</span>
        !            37: 00030 <span class="comment"> */</span>
        !            38: 00031 
        !            39: 00032 <span class="preprocessor">#ifndef __LIBNET_FUNCTIONS_H</span>
        !            40: 00033 <span class="preprocessor"></span><span class="preprocessor">#define __LIBNET_FUNCTIONS_H</span>
        !            41: 00034 <span class="preprocessor"></span>
        !            42: 00063 libnet_t *
        !            43: 00064 libnet_init(<span class="keywordtype">int</span> injection_type, <span class="keywordtype">char</span> *device, <span class="keywordtype">char</span> *err_buf);
        !            44: 00065 
        !            45: 00071 <span class="keywordtype">void</span>
        !            46: 00072 libnet_destroy(libnet_t *l);
        !            47: 00073 
        !            48: 00080 <span class="keywordtype">void</span>
        !            49: 00081 libnet_clear_packet(libnet_t *l);
        !            50: 00082 
        !            51: 00089 <span class="keywordtype">void</span>
        !            52: 00090 libnet_stats(libnet_t *l, <span class="keyword">struct</span> libnet_stats *ls);
        !            53: 00091 
        !            54: 00097 <span class="keywordtype">int</span> 
        !            55: 00098 libnet_getfd(libnet_t *l);
        !            56: 00099 
        !            57: 00106 int8_t *
        !            58: 00107 libnet_getdevice(libnet_t *l);
        !            59: 00108 
        !            60: 00117 u_int8_t *
        !            61: 00118 libnet_getpbuf(libnet_t *l, libnet_ptag_t ptag);
        !            62: 00119 
        !            63: 00128 u_int32_t
        !            64: 00129 libnet_getpbuf_size(libnet_t *l, libnet_ptag_t ptag);
        !            65: 00130 
        !            66: 00138 <span class="keywordtype">char</span> *
        !            67: 00139 libnet_geterror(libnet_t *l);
        !            68: 00140 
        !            69: 00147 u_int32_t
        !            70: 00148 libnet_getpacket_size(libnet_t *l);
        !            71: 00149 
        !            72: 00155 <span class="keywordtype">int</span>
        !            73: 00156 libnet_seed_prand(libnet_t *l);
        !            74: 00157 
        !            75: 00171 u_int32_t
        !            76: 00172 libnet_get_prand(<span class="keywordtype">int</span> mod);
        !            77: 00173 
        !            78: 00195 <span class="keywordtype">int</span>
        !            79: 00196 libnet_toggle_checksum(libnet_t *l, libnet_ptag_t ptag, <span class="keywordtype">int</span> mode);
        !            80: 00197 
        !            81: 00210 <span class="keywordtype">char</span> *
        !            82: 00211 libnet_addr2name4(u_int32_t in, u_int8_t use_name);
        !            83: 00212 
        !            84: 00226 u_int32_t
        !            85: 00227 libnet_name2addr4(libnet_t *l, <span class="keywordtype">char</span> *host_name, u_int8_t use_name);
        !            86: 00228 
        !            87: 00229 <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keyword">struct </span>libnet_in6_addr in6addr_error;
        !            88: 00230 
        !            89: 00244 <span class="keyword">struct </span>libnet_in6_addr
        !            90: 00245 libnet_name2addr6(libnet_t *l, <span class="keywordtype">char</span> *host_name, u_int8_t use_name);
        !            91: 00246 
        !            92: 00250 <span class="keywordtype">void</span>
        !            93: 00251 libnet_addr2name6_r(<span class="keyword">struct</span> libnet_in6_addr addr, u_int8_t use_name,
        !            94: 00252 <span class="keywordtype">char</span> *host_name, <span class="keywordtype">int</span> host_name_len);
        !            95: 00253 
        !            96: 00269 <span class="keywordtype">int</span>
        !            97: 00270 libnet_plist_chain_new(libnet_t *l, libnet_plist_t **plist, <span class="keywordtype">char</span> *token_list);
        !            98: 00271 
        !            99: 00283 <span class="keywordtype">int</span>
        !           100: 00284 libnet_plist_chain_next_pair(libnet_plist_t *plist, u_int16_t *bport, 
        !           101: 00285 u_int16_t *eport); 
        !           102: 00286 
        !           103: 00293 <span class="keywordtype">int</span>
        !           104: 00294 libnet_plist_chain_dump(libnet_plist_t *plist);
        !           105: 00295 
        !           106: 00304 <span class="keywordtype">char</span> *
        !           107: 00305 libnet_plist_chain_dump_string(libnet_plist_t *plist);
        !           108: 00306 
        !           109: 00312 <span class="keywordtype">int</span>
        !           110: 00313 libnet_plist_chain_free(libnet_plist_t *plist);
        !           111: 00314 
        !           112: 00402 libnet_ptag_t
        !           113: 00403 libnet_build_802_1q(u_int8_t *dst, u_int8_t *src, u_int16_t tpi,
        !           114: 00404 u_int8_t priority, u_int8_t cfi, u_int16_t vlan_id, u_int16_t len_proto,
        !           115: 00405 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           116: 00406 
        !           117: 00418 libnet_ptag_t
        !           118: 00419 libnet_build_802_1x(u_int8_t eap_ver, u_int8_t eap_type, u_int16_t length, 
        !           119: 00420 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           120: 00421 
        !           121: 00433 libnet_ptag_t
        !           122: 00434 libnet_build_802_2(u_int8_t dsap, u_int8_t ssap, u_int8_t control,
        !           123: 00435 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           124: 00436 
        !           125: 00450 libnet_ptag_t
        !           126: 00451 libnet_build_802_2snap(u_int8_t dsap, u_int8_t ssap, u_int8_t control, 
        !           127: 00452 u_int8_t *oui, u_int16_t type, u_int8_t *payload, u_int32_t payload_s,
        !           128: 00453 libnet_t *l, libnet_ptag_t ptag); 
        !           129: 00454 
        !           130: 00470 libnet_ptag_t
        !           131: 00471 libnet_build_802_3(u_int8_t *dst, u_int8_t *src, u_int16_t len, 
        !           132: 00472 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           133: 00473 
        !           134: 00489 libnet_ptag_t
        !           135: 00490 libnet_build_ethernet(u_int8_t *dst, u_int8_t *src, u_int16_t type, 
        !           136: 00491 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           137: 00492 
        !           138: 00504 libnet_ptag_t
        !           139: 00505 libnet_autobuild_ethernet(u_int8_t *dst, u_int16_t type, libnet_t *l);
        !           140: 00506 
        !           141: 00523 libnet_ptag_t
        !           142: 00524 libnet_build_fddi(u_int8_t fc, u_int8_t *dst, u_int8_t *src, u_int8_t dsap,
        !           143: 00525 u_int8_t ssap, u_int8_t cf, u_int8_t *org, u_int16_t type, u_int8_t *payload,
        !           144: 00526 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           145: 00527 
        !           146: 00540 libnet_ptag_t
        !           147: 00541 libnet_autobuild_fddi(u_int8_t fc, u_int8_t *dst, u_int8_t dsap, u_int8_t ssap,
        !           148: 00542 u_int8_t cf, u_int8_t *org, u_int16_t type, libnet_t *l);
        !           149: 00543 
        !           150: 00563 libnet_ptag_t
        !           151: 00564 libnet_build_arp(u_int16_t hrd, u_int16_t pro, u_int8_t hln, u_int8_t pln,
        !           152: 00565 u_int16_t op, u_int8_t *sha, u_int8_t *spa, u_int8_t *tha, u_int8_t *tpa,
        !           153: 00566 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           154: 00567 
        !           155: 00580 libnet_ptag_t
        !           156: 00581 libnet_autobuild_arp(u_int16_t op, u_int8_t *sha, u_int8_t *spa, u_int8_t *tha,
        !           157: 00582 u_int8_t *tpa, libnet_t *l);
        !           158: 00583 
        !           159: 00600 libnet_ptag_t
        !           160: 00601 libnet_build_tcp(u_int16_t sp, u_int16_t dp, u_int32_t seq, u_int32_t ack,
        !           161: 00602 u_int8_t control, u_int16_t win, u_int16_t sum, u_int16_t urg, u_int16_t len, 
        !           162: 00603 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           163: 00604 
        !           164: 00620 libnet_ptag_t
        !           165: 00621 libnet_build_tcp_options(u_int8_t *options, u_int32_t options_s, libnet_t *l,
        !           166: 00622 libnet_ptag_t ptag);
        !           167: 00623 
        !           168: 00636 libnet_ptag_t
        !           169: 00637 libnet_build_udp(u_int16_t sp, u_int16_t dp, u_int16_t len, u_int16_t sum,
        !           170: 00638 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           171: 00639 
        !           172: 00659 libnet_ptag_t
        !           173: 00660 libnet_build_cdp(u_int8_t version, u_int8_t ttl, u_int16_t sum, u_int16_t type,
        !           174: 00661 u_int16_t len, u_int8_t *value, u_int8_t *payload, u_int32_t payload_s,
        !           175: 00662 libnet_t *l, libnet_ptag_t ptag);
        !           176: 00663 
        !           177: 00678 libnet_ptag_t
        !           178: 00679 libnet_build_icmpv4_echo(u_int8_t type, u_int8_t code, u_int16_t sum,
        !           179: 00680 u_int16_t id, u_int16_t seq, u_int8_t *payload, u_int32_t payload_s,
        !           180: 00681 libnet_t *l, libnet_ptag_t ptag);
        !           181: 00682 
        !           182: 00698 libnet_ptag_t
        !           183: 00699 libnet_build_icmpv4_mask(u_int8_t type, u_int8_t code, u_int16_t sum,
        !           184: 00700 u_int16_t id, u_int16_t seq, u_int32_t mask, u_int8_t *payload,
        !           185: 00701 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           186: 00702 
        !           187: 00725 libnet_ptag_t
        !           188: 00726 libnet_build_icmpv4_unreach(u_int8_t type, u_int8_t code, u_int16_t sum,
        !           189: 00727 u_int16_t orig_len, u_int8_t orig_tos, u_int16_t orig_id, u_int16_t orig_frag,
        !           190: 00728 u_int8_t orig_ttl, u_int8_t orig_prot,  u_int16_t orig_check, 
        !           191: 00729 u_int32_t orig_src, u_int32_t orig_dst, u_int8_t *payload, u_int32_t payload_s,
        !           192: 00730 libnet_t *l, libnet_ptag_t ptag);
        !           193: 00731 
        !           194: 00753 libnet_ptag_t
        !           195: 00754 libnet_build_icmpv4_redirect(u_int8_t type, u_int8_t code, u_int16_t sum,
        !           196: 00755 u_int32_t gateway, u_int16_t orig_len, u_int8_t orig_tos, u_int16_t orig_id,
        !           197: 00756 u_int16_t orig_frag, u_int8_t orig_ttl, u_int8_t orig_prot,
        !           198: 00757 u_int16_t orig_check, u_int32_t orig_src, u_int32_t orig_dst,
        !           199: 00758 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           200: 00759 
        !           201: 00783 libnet_ptag_t
        !           202: 00784 libnet_build_icmpv4_timeexceed(u_int8_t type, u_int8_t code, u_int16_t sum,
        !           203: 00785 u_int16_t orig_len, u_int8_t orig_tos, u_int16_t orig_id, u_int16_t orig_frag,
        !           204: 00786 u_int8_t orig_ttl, u_int8_t orig_prot, u_int16_t orig_check,
        !           205: 00787 u_int32_t orig_src, u_int32_t orig_dst, u_int8_t *payload, u_int32_t payload_s,
        !           206: 00788 libnet_t *l, libnet_ptag_t ptag);
        !           207: 00789 
        !           208: 00807 libnet_ptag_t
        !           209: 00808 libnet_build_icmpv4_timestamp(u_int8_t type, u_int8_t code, u_int16_t sum,
        !           210: 00809 u_int16_t id, u_int16_t seq, n_time otime, n_time rtime, n_time ttime,
        !           211: 00810 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           212: 00811 
        !           213: 00824 libnet_ptag_t
        !           214: 00825 libnet_build_igmp(u_int8_t type, u_int8_t code, u_int16_t sum, u_int32_t ip,
        !           215: 00826 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           216: 00827 
        !           217: 00845 libnet_ptag_t 
        !           218: 00846 libnet_build_ipv4(u_int16_t len, u_int8_t tos, u_int16_t id, u_int16_t frag,
        !           219: 00847 u_int8_t ttl, u_int8_t prot, u_int16_t sum, u_int32_t src, u_int32_t dst,
        !           220: 00848 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           221: 00849 
        !           222: 00864 libnet_ptag_t 
        !           223: 00865 libnet_build_ipv4_options(u_int8_t *options, u_int32_t options_s, libnet_t *l,
        !           224: 00866 libnet_ptag_t ptag);
        !           225: 00867 
        !           226: 00880 libnet_ptag_t
        !           227: 00881 libnet_autobuild_ipv4(u_int16_t len, u_int8_t prot, u_int32_t dst, libnet_t *l);
        !           228: 00882 
        !           229: 00898 libnet_ptag_t
        !           230: 00899 libnet_build_ipv6(u_int8_t tc, u_int32_t fl, u_int16_t len, u_int8_t nh,
        !           231: 00900 u_int8_t hl, <span class="keyword">struct</span> libnet_in6_addr src, <span class="keyword">struct</span> libnet_in6_addr dst, 
        !           232: 00901 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           233: 00902 
        !           234: 00915 libnet_ptag_t
        !           235: 00916 libnet_build_ipv6_frag(u_int8_t nh, u_int8_t reserved, u_int16_t frag,
        !           236: 00917 u_int32_t id, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
        !           237: 00918 libnet_ptag_t ptag);
        !           238: 00919 
        !           239: 00937 libnet_ptag_t
        !           240: 00938 libnet_build_ipv6_routing(u_int8_t nh, u_int8_t len, u_int8_t rtype,
        !           241: 00939 u_int8_t segments, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
        !           242: 00940 libnet_ptag_t ptag);
        !           243: 00941 
        !           244: 00955 libnet_ptag_t
        !           245: 00956 libnet_build_ipv6_destopts(u_int8_t nh, u_int8_t len, u_int8_t *payload,
        !           246: 00957 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           247: 00958 
        !           248: 00973 libnet_ptag_t
        !           249: 00974 libnet_build_ipv6_hbhopts(u_int8_t nh, u_int8_t len, u_int8_t *payload,
        !           250: 00975 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           251: 00976 
        !           252: 00988 libnet_ptag_t
        !           253: 00989 libnet_autobuild_ipv6(u_int16_t len, u_int8_t nh, <span class="keyword">struct</span> libnet_in6_addr dst,
        !           254: 00990 libnet_t *l);
        !           255: 00991 
        !           256: 01009 libnet_ptag_t
        !           257: 01010 libnet_build_isl(u_int8_t *dhost, u_int8_t type, u_int8_t user, u_int8_t *shost,
        !           258: 01011 u_int16_t len, u_int8_t *snap, u_int16_t vid, u_int16_t index,
        !           259: 01012 u_int16_t reserved, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
        !           260: 01013 libnet_ptag_t ptag);
        !           261: 01014 
        !           262: 01026 libnet_ptag_t
        !           263: 01027 libnet_build_ipsec_esp_hdr(u_int32_t spi, u_int32_t seq, u_int32_t iv,
        !           264: 01028 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           265: 01029 
        !           266: 01041 libnet_ptag_t
        !           267: 01042 libnet_build_ipsec_esp_ftr(u_int8_t len, u_int8_t nh, int8_t *auth,
        !           268: 01043 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           269: 01044 
        !           270: 01059 libnet_ptag_t
        !           271: 01060 libnet_build_ipsec_ah(u_int8_t nh, u_int8_t len, u_int16_t res,
        !           272: 01061 u_int32_t spi, u_int32_t seq, u_int32_t auth, u_int8_t *payload,
        !           273: 01062 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           274: 01063 
        !           275: 01079 libnet_ptag_t
        !           276: 01080 libnet_build_dnsv4(u_int16_t h_len, u_int16_t id, u_int16_t flags,
        !           277: 01081 u_int16_t num_q, u_int16_t num_anws_rr, u_int16_t num_auth_rr,
        !           278: 01082 u_int16_t num_addi_rr, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
        !           279: 01083 libnet_ptag_t ptag);
        !           280: 01084 
        !           281: 01102 libnet_ptag_t
        !           282: 01103 libnet_build_rip(u_int8_t cmd, u_int8_t version, u_int16_t rd, u_int16_t af,
        !           283: 01104 u_int16_t rt, u_int32_t addr, u_int32_t mask, u_int32_t next_hop,
        !           284: 01105 u_int32_t metric, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
        !           285: 01106 libnet_ptag_t ptag);
        !           286: 01107 
        !           287: 01130 libnet_ptag_t
        !           288: 01131 libnet_build_rpc_call(u_int32_t rm, u_int32_t xid, u_int32_t prog_num,
        !           289: 01132 u_int32_t prog_vers, u_int32_t procedure, u_int32_t cflavor, u_int32_t clength,
        !           290: 01133 u_int8_t *cdata, u_int32_t vflavor, u_int32_t vlength, u_int8_t *vdata,
        !           291: 01134 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           292: 01135 
        !           293: 01158 libnet_ptag_t
        !           294: 01159 libnet_build_stp_conf(u_int16_t id, u_int8_t version, u_int8_t bpdu_type,
        !           295: 01160 u_int8_t flags, u_int8_t *root_id, u_int32_t root_pc, u_int8_t *bridge_id,
        !           296: 01161 u_int16_t port_id, u_int16_t message_age, u_int16_t max_age, 
        !           297: 01162 u_int16_t hello_time, u_int16_t f_delay, u_int8_t *payload,
        !           298: 01163 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           299: 01164 
        !           300: 01178 libnet_ptag_t
        !           301: 01179 libnet_build_stp_tcn(u_int16_t id, u_int8_t version, u_int8_t bpdu_type,
        !           302: 01180 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           303: 01181 
        !           304: 01199 libnet_ptag_t
        !           305: 01200 libnet_build_token_ring(u_int8_t ac, u_int8_t fc, u_int8_t *dst, u_int8_t *src,
        !           306: 01201 u_int8_t dsap, u_int8_t ssap, u_int8_t cf, u_int8_t *org, u_int16_t type,
        !           307: 01202 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           308: 01203 
        !           309: 01217 libnet_ptag_t
        !           310: 01218 libnet_autobuild_token_ring(u_int8_t ac, u_int8_t fc, u_int8_t *dst, 
        !           311: 01219 u_int8_t dsap, u_int8_t ssap, u_int8_t cf, u_int8_t *org, u_int16_t type,
        !           312: 01220 libnet_t *l);
        !           313: 01221 
        !           314: 01241 libnet_ptag_t
        !           315: 01242 libnet_build_vrrp(u_int8_t version, u_int8_t type, u_int8_t vrouter_id,
        !           316: 01243 u_int8_t priority, u_int8_t ip_count, u_int8_t auth_type, u_int8_t advert_int,
        !           317: 01244 u_int16_t sum, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
        !           318: 01245 libnet_ptag_t ptag);
        !           319: 01246 
        !           320: 01259 libnet_ptag_t
        !           321: 01260 libnet_build_mpls(u_int32_t label, u_int8_t experimental, u_int8_t bos,
        !           322: 01261 u_int8_t ttl, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
        !           323: 01262 libnet_ptag_t ptag);
        !           324: 01263 
        !           325: 01291 libnet_ptag_t
        !           326: 01292 libnet_build_ntp(u_int8_t leap_indicator, u_int8_t version, u_int8_t mode,
        !           327: 01293 u_int8_t stratum, u_int8_t poll, u_int8_t precision, u_int16_t delay_int,
        !           328: 01294 u_int16_t delay_frac, u_int16_t dispersion_int, u_int16_t dispersion_frac,
        !           329: 01295 u_int32_t reference_id, u_int32_t ref_ts_int, u_int32_t ref_ts_frac,
        !           330: 01296 u_int32_t orig_ts_int, u_int32_t orig_ts_frac, u_int32_t rec_ts_int,
        !           331: 01297 u_int32_t rec_ts_frac, u_int32_t xmt_ts_int, u_int32_t xmt_ts_frac,
        !           332: 01298 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           333: 01299 
        !           334: 01307 libnet_ptag_t
        !           335: 01308 libnet_build_ospfv2(u_int16_t len, u_int8_t type, u_int32_t rtr_id,
        !           336: 01309 u_int32_t area_id, u_int16_t sum, u_int16_t autype, u_int8_t *payload,
        !           337: 01310 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           338: 01311 
        !           339: 01319 libnet_ptag_t
        !           340: 01320 <a class="code" href="libnet-functions_8h.html#a69">libnet_build_ospfv2_hello</a>(u_int32_t netmask, u_int16_t interval, u_int8_t opts,
        !           341: 01321 u_int8_t priority, u_int dead_int, u_int32_t des_rtr, u_int32_t bkup_rtr,
        !           342: 01322 u_int32_t neighbor, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
        !           343: 01323 libnet_ptag_t ptag);
        !           344: 01324  
        !           345: 01332 libnet_ptag_t
        !           346: 01333 <a class="code" href="libnet-functions_8h.html#a70">libnet_build_ospfv2_dbd</a>(u_int16_t dgram_len, u_int8_t opts, u_int8_t type,
        !           347: 01334 u_int seqnum, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
        !           348: 01335 libnet_ptag_t ptag);
        !           349: 01336  
        !           350: 01344 libnet_ptag_t
        !           351: 01345 <a class="code" href="libnet-functions_8h.html#a71">libnet_build_ospfv2_lsr</a>(u_int type, u_int lsid, u_int32_t advrtr,
        !           352: 01346 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           353: 01347  
        !           354: 01355 libnet_ptag_t
        !           355: 01356 <a class="code" href="libnet-functions_8h.html#a72">libnet_build_ospfv2_lsu</a>(u_int num, u_int8_t *payload, u_int32_t payload_s,
        !           356: 01357 libnet_t *l, libnet_ptag_t ptag);
        !           357: 01358 
        !           358: 01366 libnet_ptag_t
        !           359: 01367 <a class="code" href="libnet-functions_8h.html#a73">libnet_build_ospfv2_lsa</a>(u_int16_t age, u_int8_t opts, u_int8_t type,
        !           360: 01368 u_int lsid, u_int32_t advrtr, u_int seqnum, u_int16_t sum, u_int16_t len,
        !           361: 01369 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           362: 01370  
        !           363: 01378 libnet_ptag_t
        !           364: 01379 <a class="code" href="libnet-functions_8h.html#a74">libnet_build_ospfv2_lsa_rtr</a>(u_int16_t flags, u_int16_t num, u_int id,
        !           365: 01380 u_int data, u_int8_t type, u_int8_t tos, u_int16_t metric, u_int8_t *payload,
        !           366: 01381 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           367: 01382  
        !           368: 01390 libnet_ptag_t
        !           369: 01391 <a class="code" href="libnet-functions_8h.html#a75">libnet_build_ospfv2_lsa_net</a>(u_int32_t nmask, u_int rtrid, u_int8_t *payload,
        !           370: 01392 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           371: 01393  
        !           372: 01401 libnet_ptag_t
        !           373: 01402 <a class="code" href="libnet-functions_8h.html#a76">libnet_build_ospfv2_lsa_sum</a>(u_int32_t nmask, u_int metric, u_int tos,
        !           374: 01403 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           375: 01404  
        !           376: 01412 libnet_ptag_t
        !           377: 01413 <a class="code" href="libnet-functions_8h.html#a77">libnet_build_ospfv2_lsa_as</a>(u_int32_t nmask, u_int metric, u_int32_t fwdaddr,
        !           378: 01414 u_int tag, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
        !           379: 01415 libnet_ptag_t ptag);
        !           380: 01416 
        !           381: 01427 libnet_ptag_t
        !           382: 01428 libnet_build_data(u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
        !           383: 01429 libnet_ptag_t ptag);
        !           384: 01430 
        !           385: 01438 libnet_ptag_t
        !           386: 01439 libnet_build_dhcpv4(u_int8_t opcode, u_int8_t htype, u_int8_t hlen,
        !           387: 01440 u_int8_t hopcount, u_int32_t xid, u_int16_t secs, u_int16_t flags,
        !           388: 01441 u_int32_t cip, u_int32_t yip,  u_int32_t sip, u_int32_t gip, u_int8_t *chaddr,
        !           389: 01442 u_int8_t *sname, u_int8_t *file, u_int8_t *payload, u_int32_t payload_s, 
        !           390: 01443 libnet_t *l, libnet_ptag_t ptag);
        !           391: 01444 
        !           392: 01452 libnet_ptag_t
        !           393: 01453 libnet_build_bootpv4(u_int8_t opcode, u_int8_t htype, u_int8_t hlen,
        !           394: 01454 u_int8_t hopcount, u_int32_t xid, u_int16_t secs, u_int16_t flags,
        !           395: 01455 u_int32_t cip, u_int32_t yip,  u_int32_t sip, u_int32_t gip, u_int8_t *chaddr,
        !           396: 01456 u_int8_t *sname, u_int8_t *file, u_int8_t *payload, u_int32_t payload_s, 
        !           397: 01457 libnet_t *l, libnet_ptag_t ptag);
        !           398: 01458 
        !           399: 01466 <span class="keyword">inline</span> u_int32_t
        !           400: 01467 libnet_getgre_length(u_int16_t fv);
        !           401: 01468 
        !           402: 01490 libnet_ptag_t
        !           403: 01491 libnet_build_gre(u_int16_t fv, u_int16_t type, u_int16_t sum,
        !           404: 01492 u_int16_t offset, u_int32_t key, u_int32_t seq, u_int16_t len,
        !           405: 01493 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           406: 01494 
        !           407: 01516 libnet_ptag_t
        !           408: 01517 libnet_build_egre(u_int16_t fv, u_int16_t type, u_int16_t sum,
        !           409: 01518 u_int16_t offset, u_int32_t key, u_int32_t seq, u_int16_t len,
        !           410: 01519 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           411: 01520 
        !           412: 01528 libnet_ptag_t
        !           413: 01529 libnet_build_gre_sre(u_int16_t af, u_int8_t offset, u_int8_t length,
        !           414: 01530 u_int8_t *routing, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
        !           415: 01531 libnet_ptag_t ptag);
        !           416: 01532 
        !           417: 01540 libnet_ptag_t
        !           418: 01541 libnet_build_gre_last_sre(libnet_t *l, libnet_ptag_t ptag);
        !           419: 01542 
        !           420: 01564 libnet_ptag_t
        !           421: 01565 libnet_build_bgp4_header(u_int8_t marker[LIBNET_BGP4_MARKER_SIZE],
        !           422: 01566 u_int16_t len, u_int8_t type, u_int8_t *payload, u_int32_t payload_s,
        !           423: 01567 libnet_t *l, libnet_ptag_t ptag);
        !           424: 01568 
        !           425: 01585 libnet_ptag_t
        !           426: 01586 libnet_build_bgp4_open(u_int8_t version, u_int16_t src_as, u_int16_t hold_time,
        !           427: 01587 u_int32_t bgp_id, u_int8_t opt_len, u_int8_t *payload, u_int32_t payload_s,
        !           428: 01588 libnet_t *l, libnet_ptag_t ptag);
        !           429: 01589 
        !           430: 01605 libnet_ptag_t
        !           431: 01606 libnet_build_bgp4_update(u_int16_t unfeasible_rt_len, u_int8_t *withdrawn_rt,
        !           432: 01607 u_int16_t total_path_attr_len, u_int8_t *path_attributes, u_int16_t info_len,
        !           433: 01608 u_int8_t *reachability_info, u_int8_t *payload, u_int32_t payload_s,
        !           434: 01609 libnet_t *l, libnet_ptag_t ptag);
        !           435: 01610 
        !           436: 01623 libnet_ptag_t
        !           437: 01624 libnet_build_bgp4_notification(u_int8_t err_code, u_int8_t err_subcode,
        !           438: 01625 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           439: 01626 
        !           440: 01649 libnet_ptag_t
        !           441: 01650 libnet_build_sebek(u_int32_t magic, u_int16_t version, u_int16_t type, 
        !           442: 01651 u_int32_t counter, u_int32_t time_sec, u_int32_t time_usec, u_int32_t pid,
        !           443: 01652 u_int32_t uid, u_int32_t fd, u_int8_t cmd[SEBEK_CMD_LENGTH], u_int32_t length, 
        !           444: 01653 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           445: 01654 
        !           446: 01669 libnet_ptag_t
        !           447: 01670 libnet_build_link(u_int8_t *dst, u_int8_t *src, u_int8_t *oui, u_int16_t type, 
        !           448: 01671 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
        !           449: 01672 
        !           450: 01683 libnet_ptag_t
        !           451: 01684 libnet_autobuild_link(u_int8_t *dst, u_int8_t *oui, u_int16_t type,
        !           452: 01685 libnet_t *l);
        !           453: 01686 
        !           454: 01699 <span class="keywordtype">int</span>
        !           455: 01700 libnet_write(libnet_t *l);
        !           456: 01701 
        !           457: 01711 u_int32_t
        !           458: 01712 libnet_get_ipaddr4(libnet_t *l);
        !           459: 01713 
        !           460: 01719 <span class="keyword">struct </span>libnet_in6_addr
        !           461: 01720 libnet_get_ipaddr6(libnet_t *l);
        !           462: 01721 
        !           463: 01730 <span class="keyword">struct </span>libnet_ether_addr *
        !           464: 01731 libnet_get_hwaddr(libnet_t *l);
        !           465: 01732 
        !           466: 01742 u_int8_t *
        !           467: 01743 libnet_hex_aton(int8_t *s, <span class="keywordtype">int</span> *len);
        !           468: 01744 
        !           469: 01760 <span class="keywordtype">int</span>
        !           470: 01761 libnet_adv_cull_packet(libnet_t *l, u_int8_t **packet, u_int32_t *packet_s);
        !           471: 01762 
        !           472: 01775 <span class="keywordtype">int</span>
        !           473: 01776 libnet_adv_cull_header(libnet_t *l, libnet_ptag_t ptag, u_int8_t **header,
        !           474: 01777 u_int32_t *header_s);
        !           475: 01778 
        !           476: 01792 <span class="keywordtype">int</span>
        !           477: 01793 libnet_adv_write_link(libnet_t *l, u_int8_t *packet, u_int32_t packet_s);
        !           478: 01794 
        !           479: 01801 <span class="keywordtype">void</span>
        !           480: 01802 libnet_adv_free_packet(libnet_t *l, u_int8_t *packet);
        !           481: 01803 
        !           482: 01817 <span class="keywordtype">int</span> 
        !           483: 01818 libnet_cq_add(libnet_t *l, <span class="keywordtype">char</span> *label);
        !           484: 01819 
        !           485: 01834 libnet_t *
        !           486: 01835 libnet_cq_remove(libnet_t *l);
        !           487: 01836 
        !           488: 01848 libnet_t *
        !           489: 01849 libnet_cq_remove_by_label(<span class="keywordtype">char</span> *label);
        !           490: 01850  
        !           491: 01857 int8_t *
        !           492: 01858 libnet_cq_getlabel(libnet_t *l);
        !           493: 01859  
        !           494: 01866 libnet_t *
        !           495: 01867 libnet_cq_find_by_label(<span class="keywordtype">char</span> *label);
        !           496: 01868   
        !           497: 01874 <span class="keywordtype">void</span>
        !           498: 01875 libnet_cq_destroy();
        !           499: 01876 
        !           500: 01896 libnet_t *
        !           501: 01897 libnet_cq_head();
        !           502: 01898 
        !           503: 01904 <span class="keywordtype">int</span>
        !           504: 01905 libnet_cq_last();
        !           505: 01906 
        !           506: 01912 libnet_t *
        !           507: 01913 libnet_cq_next();
        !           508: 01914 
        !           509: 01920 u_int32_t
        !           510: 01921 libnet_cq_size();
        !           511: 01922 
        !           512: 01928 <span class="keywordtype">void</span>
        !           513: 01929 libnet_diag_dump_context(libnet_t *l);
        !           514: 01930 
        !           515: 01936 <span class="keywordtype">void</span>
        !           516: 01937 libnet_diag_dump_pblock(libnet_t *l);
        !           517: 01938 
        !           518: 01945 <span class="keywordtype">char</span> *
        !           519: 01946 libnet_diag_dump_pblock_type(u_int8_t type);
        !           520: 01947 
        !           521: 01959 <span class="keywordtype">void</span>
        !           522: 01960 libnet_diag_dump_hex(u_int8_t *packet, u_int32_t len, <span class="keywordtype">int</span> swap, FILE *stream);
        !           523: 01961 
        !           524: 01962 <span class="comment">/*</span>
        !           525: 01963 <span class="comment"> * [Internal] </span>
        !           526: 01964 <span class="comment"> */</span>
        !           527: 01965 <span class="keywordtype">int</span>
        !           528: 01966 libnet_write_raw_ipv4(libnet_t *l, u_int8_t *packet, u_int32_t size);
        !           529: 01967 
        !           530: 01968 <span class="comment">/*</span>
        !           531: 01969 <span class="comment"> * [Internal] </span>
        !           532: 01970 <span class="comment"> */</span>
        !           533: 01971 <span class="keywordtype">int</span>
        !           534: 01972 libnet_write_raw_ipv6(libnet_t *l, u_int8_t *packet, u_int32_t size);
        !           535: 01973 
        !           536: 01974 <span class="comment">/*</span>
        !           537: 01975 <span class="comment"> * [Internal] </span>
        !           538: 01976 <span class="comment"> */</span>
        !           539: 01977 <span class="keywordtype">int</span>
        !           540: 01978 libnet_write_link(libnet_t *l, u_int8_t *packet, u_int32_t size);
        !           541: 01979 
        !           542: 01980 <span class="preprocessor">#if ((__WIN32__) &amp;&amp; !(__CYGWIN__))</span>
        !           543: 01981 <span class="preprocessor"></span><span class="comment">/*</span>
        !           544: 01982 <span class="comment"> * [Internal] </span>
        !           545: 01983 <span class="comment"> */</span>
        !           546: 01984 SOCKET
        !           547: 01985 libnet_open_raw4(libnet_t *l);
        !           548: 01986 <span class="preprocessor">#else</span>
        !           549: 01987 <span class="preprocessor"></span><span class="comment">/*</span>
        !           550: 01988 <span class="comment"> * [Internal] </span>
        !           551: 01989 <span class="comment"> */</span>
        !           552: 01990 <span class="keywordtype">int</span>
        !           553: 01991 libnet_open_raw4(libnet_t *l);
        !           554: 01992 <span class="preprocessor">#endif</span>
        !           555: 01993 <span class="preprocessor"></span>
        !           556: 01994 <span class="comment">/*</span>
        !           557: 01995 <span class="comment"> * [Internal] </span>
        !           558: 01996 <span class="comment"> */</span>
        !           559: 01997 <span class="keywordtype">int</span>
        !           560: 01998 libnet_close_raw4(libnet_t *l);
        !           561: 01999 
        !           562: 02000 <span class="comment">/*</span>
        !           563: 02001 <span class="comment"> * [Internal] </span>
        !           564: 02002 <span class="comment"> */</span>
        !           565: 02003 <span class="keywordtype">int</span>
        !           566: 02004 libnet_open_raw6(libnet_t *l);
        !           567: 02005        
        !           568: 02006 <span class="comment">/*</span>
        !           569: 02007 <span class="comment"> * [Internal] </span>
        !           570: 02008 <span class="comment"> */</span>
        !           571: 02009 <span class="keywordtype">int</span>
        !           572: 02010 libnet_close_raw6(libnet_t *l);
        !           573: 02011 
        !           574: 02012 <span class="comment">/*</span>
        !           575: 02013 <span class="comment"> * [Internal] </span>
        !           576: 02014 <span class="comment"> */</span>
        !           577: 02015 <span class="keywordtype">int</span>
        !           578: 02016 libnet_select_device(libnet_t *l);
        !           579: 02017 
        !           580: 02018 <span class="comment">/*</span>
        !           581: 02019 <span class="comment"> * [Internal] </span>
        !           582: 02020 <span class="comment"> */</span>
        !           583: 02021 <span class="keywordtype">int</span>
        !           584: 02022 libnet_open_link(libnet_t *l);
        !           585: 02023 
        !           586: 02024 <span class="comment">/*</span>
        !           587: 02025 <span class="comment"> * [Internal] </span>
        !           588: 02026 <span class="comment"> */</span>
        !           589: 02027 <span class="keywordtype">int</span>
        !           590: 02028 libnet_close_link(libnet_t *l);
        !           591: 02029 
        !           592: 02030 <span class="comment">/*</span>
        !           593: 02031 <span class="comment"> * [Internal] </span>
        !           594: 02032 <span class="comment"> */</span>
        !           595: 02033 <span class="keywordtype">int</span>
        !           596: 02034 libnet_do_checksum(libnet_t *l, u_int8_t *packet, <span class="keywordtype">int</span> protocol, <span class="keywordtype">int</span> len);
        !           597: 02035 
        !           598: 02036 <span class="comment">/*</span>
        !           599: 02037 <span class="comment"> * [Internal] </span>
        !           600: 02038 <span class="comment"> */</span>
        !           601: 02039 u_int32_t
        !           602: 02040 libnet_compute_crc(u_int8_t *buf, u_int32_t len);
        !           603: 02041 
        !           604: 02042 <span class="comment">/*</span>
        !           605: 02043 <span class="comment"> * [Internal] </span>
        !           606: 02044 <span class="comment"> */</span>
        !           607: 02045 u_int16_t
        !           608: 02046 libnet_ip_check(u_int16_t *addr, <span class="keywordtype">int</span> len);
        !           609: 02047 
        !           610: 02048 <span class="comment">/*</span>
        !           611: 02049 <span class="comment"> * [Internal] </span>
        !           612: 02050 <span class="comment"> */</span>
        !           613: 02051 <span class="keywordtype">int</span>
        !           614: 02052 libnet_in_cksum(u_int16_t *addr, <span class="keywordtype">int</span> len);
        !           615: 02053 
        !           616: 02054 <span class="comment">/*</span>
        !           617: 02055 <span class="comment"> * [Internal] </span>
        !           618: 02056 <span class="comment"> * If ptag is 0, function will create a pblock for the protocol unit type,</span>
        !           619: 02057 <span class="comment"> * append it to the list and return a pointer to it.  If ptag is not 0,</span>
        !           620: 02058 <span class="comment"> * function will search the pblock list for the specified protocol block </span>
        !           621: 02059 <span class="comment"> * and return a pointer to it.</span>
        !           622: 02060 <span class="comment"> */</span>
        !           623: 02061 libnet_pblock_t *
        !           624: 02062 libnet_pblock_probe(libnet_t *l, libnet_ptag_t ptag, u_int32_t n, 
        !           625: 02063 u_int8_t type);
        !           626: 02064 
        !           627: 02065 <span class="comment">/*</span>
        !           628: 02066 <span class="comment"> * [Internal] </span>
        !           629: 02067 <span class="comment"> * Function creates the pblock list if l-&gt;protocol_blocks == NULL or appends</span>
        !           630: 02068 <span class="comment"> * an entry to the doubly linked list.</span>
        !           631: 02069 <span class="comment"> */</span>
        !           632: 02070 libnet_pblock_t *
        !           633: 02071 libnet_pblock_new(libnet_t *l, u_int32_t size);
        !           634: 02072 
        !           635: 02073 <span class="comment">/*</span>
        !           636: 02074 <span class="comment"> * [Internal] </span>
        !           637: 02075 <span class="comment"> * Function swaps two pblocks in memory.</span>
        !           638: 02076 <span class="comment"> */</span>
        !           639: 02077 <span class="keywordtype">int</span>
        !           640: 02078 libnet_pblock_swap(libnet_t *l, libnet_ptag_t ptag1, libnet_ptag_t ptag2);
        !           641: 02079 
        !           642: 02080 <span class="comment">/*</span>
        !           643: 02081 <span class="comment"> * [Internal] </span>
        !           644: 02082 <span class="comment"> * Function inserts a pblock into the doubly linked list.</span>
        !           645: 02083 <span class="comment"> */</span>
        !           646: 02084 <span class="keywordtype">int</span>
        !           647: 02085 libnet_pblock_insert_before(libnet_t *l, libnet_ptag_t ptag1,
        !           648: 02086 libnet_ptag_t ptag2);
        !           649: 02087 
        !           650: 02088 <span class="comment">/*</span>
        !           651: 02089 <span class="comment"> * [Internal] </span>
        !           652: 02090 <span class="comment"> * Function removes a pblock from context </span>
        !           653: 02091 <span class="comment"> */</span>
        !           654: 02092 <span class="keywordtype">void</span>
        !           655: 02093 libnet_pblock_delete(libnet_t *l, libnet_pblock_t *p);
        !           656: 02094 
        !           657: 02095 <span class="comment">/*</span>
        !           658: 02096 <span class="comment"> * [Internal] </span>
        !           659: 02097 <span class="comment"> * Function updates the pblock meta-inforation.  Internally it updates the</span>
        !           660: 02098 <span class="comment"> * ptag with a monotonically increasing variable kept in l.  This way each</span>
        !           661: 02099 <span class="comment"> * pblock has a succesively increasing ptag identifier.</span>
        !           662: 02100 <span class="comment"> */</span>
        !           663: 02101 libnet_ptag_t
        !           664: 02102 libnet_pblock_update(libnet_t *l, libnet_pblock_t *p, u_int32_t h, 
        !           665: 02103 u_int8_t type);
        !           666: 02104 
        !           667: 02105 <span class="comment">/*</span>
        !           668: 02106 <span class="comment"> * [Internal] </span>
        !           669: 02107 <span class="comment"> * Function locates a given block by it's ptag. </span>
        !           670: 02108 <span class="comment"> */</span>
        !           671: 02109 libnet_pblock_t *
        !           672: 02110 libnet_pblock_find(libnet_t *l, libnet_ptag_t ptag);
        !           673: 02111 
        !           674: 02112 <span class="comment">/*</span>
        !           675: 02113 <span class="comment"> * [Internal] </span>
        !           676: 02114 <span class="comment"> * Function copies protocol block data over.</span>
        !           677: 02115 <span class="comment"> */</span>
        !           678: 02116 <span class="keywordtype">int</span>
        !           679: 02117 libnet_pblock_append(libnet_t *l, libnet_pblock_t *p, u_int8_t *buf,
        !           680: 02118 u_int32_t len);
        !           681: 02119 
        !           682: 02120 <span class="comment">/*</span>
        !           683: 02121 <span class="comment"> * [Internal] </span>
        !           684: 02122 <span class="comment"> * Function sets pblock flags.</span>
        !           685: 02123 <span class="comment"> */</span>
        !           686: 02124 <span class="keywordtype">void</span>
        !           687: 02125 libnet_pblock_setflags(libnet_pblock_t *p, u_int8_t flags);
        !           688: 02126 
        !           689: 02127 <span class="comment">/*</span>
        !           690: 02128 <span class="comment"> * [Internal] </span>
        !           691: 02129 <span class="comment"> * Function returns the protocol number for the protocol block type.  If</span>
        !           692: 02130 <span class="comment"> * the type is unknown, the function defaults to returning IPPROTO_IP.</span>
        !           693: 02131 <span class="comment"> */</span>
        !           694: 02132 <span class="keywordtype">int</span>
        !           695: 02133 libnet_pblock_p2p(u_int8_t type);
        !           696: 02134 
        !           697: 02135 <span class="comment">/*</span>
        !           698: 02136 <span class="comment"> * [Internal] </span>
        !           699: 02137 <span class="comment"> * Function assembles the packet for subsequent writing.  Function makes two</span>
        !           700: 02138 <span class="comment"> * passes through the pblock list:</span>
        !           701: 02139 <span class="comment"> */</span>
        !           702: 02140 <span class="keywordtype">int</span>
        !           703: 02141 libnet_pblock_coalesce(libnet_t *l, u_int8_t **packet, u_int32_t *size);
        !           704: 02142 
        !           705: 02143 <span class="preprocessor">#if !(__WIN32__)</span>
        !           706: 02144 <span class="preprocessor"></span><span class="comment">/*</span>
        !           707: 02145 <span class="comment"> * [Internal] </span>
        !           708: 02146 <span class="comment"> * By testing if we can retrieve the FLAGS of an iface</span>
        !           709: 02147 <span class="comment"> * we can know if it exists or not and if it is up.</span>
        !           710: 02148 <span class="comment"> */</span>
        !           711: 02149 <span class="keywordtype">int</span>
        !           712: 02150 libnet_check_iface(libnet_t *l);
        !           713: 02151 <span class="preprocessor">#endif</span>
        !           714: 02152 <span class="preprocessor"></span>
        !           715: 02153 <span class="preprocessor">#if defined(__WIN32__)</span>
        !           716: 02154 <span class="preprocessor"></span><span class="comment">/*</span>
        !           717: 02155 <span class="comment"> * [Internal] </span>
        !           718: 02156 <span class="comment"> */</span>
        !           719: 02157 BYTE *
        !           720: 02158 libnet_win32_get_remote_mac(libnet_t *l, DWORD IP);
        !           721: 02159 
        !           722: 02160 <span class="comment">/*</span>
        !           723: 02161 <span class="comment"> * [Internal] </span>
        !           724: 02162 <span class="comment"> */</span>
        !           725: 02163 <span class="keywordtype">int</span>
        !           726: 02164 libnet_close_link_interface(libnet_t *l);
        !           727: 02165 
        !           728: 02166 <span class="comment">/*</span>
        !           729: 02167 <span class="comment"> * [Internal] </span>
        !           730: 02168 <span class="comment"> */</span>
        !           731: 02169 BYTE * 
        !           732: 02170 libnet_win32_read_arp_table(DWORD IP);
        !           733: 02171 <span class="preprocessor">#endif</span>
        !           734: 02172 <span class="preprocessor"></span><span class="preprocessor">#endif  </span><span class="comment">/* __LIBNET_FUNCTIONS_H */</span>
        !           735: 02173 
        !           736: 02174 <span class="comment">/* EOF */</span>
        !           737: </pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Mar 10 13:23:37 2004 for libnet by
        !           738: <a href="http://www.doxygen.org/index.html">
        !           739: <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
        !           740: </a>1.3.4 </small></address>
        !           741: </body>
        !           742: </html>

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