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