2014-02-19 23:45:00 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=9" / >
< meta name = "generator" content = "Doxygen 1.8.6" / >
< title > The Netsukuku Project: src/pkts.h Source File< / title >
< link href = "../../tabs.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "../../jquery.js" > < / script >
< script type = "text/javascript" src = "../../dynsections.js" > < / script >
< link href = "../../navtree.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "../../resize.js" > < / script >
< script type = "text/javascript" src = "../../navtree.js" > < / script >
< script type = "text/javascript" >
$(document).ready(initResizable);
$(window).load(resizeHeight);
< / script >
< link href = "../../search/search.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "../../search/search.js" > < / script >
< script type = "text/javascript" >
$(document).ready(function() { searchBox.OnSelectItem(0); });
< / script >
< link href = "../../doxygen.css" rel = "stylesheet" type = "text/css" / >
< / head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr style = "height: 56px;" >
2014-02-20 00:30:40 +00:00
< td id = "projectlogo" > < img alt = "Logo" src = "../../Logo_netsukuku.jpg" / > < / td >
2014-02-19 23:45:00 +00:00
< td style = "padding-left: 0.5em;" >
< div id = "projectname" > The Netsukuku Project
  < span id = "projectnumber" > 0.0.9< / span >
< / div >
< div id = "projectbrief" > An Alternative routing method< / div >
< / td >
< / tr >
< / tbody >
< / table >
< / div >
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
< script type = "text/javascript" >
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
< / script >
< div id = "navrow1" class = "tabs" >
< ul class = "tablist" >
< li > < a href = "../../index.html" > < span > Main  Page< / span > < / a > < / li >
< li > < a href = "../../annotated.html" > < span > Data  Structures< / span > < / a > < / li >
< li class = "current" > < a href = "../../files.html" > < span > Files< / span > < / a > < / li >
< li >
< div id = "MSearchBox" class = "MSearchBoxInactive" >
< span class = "left" >
< img id = "MSearchSelect" src = "../../search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
< input type = "text" id = "MSearchField" value = "Search" accesskey = "S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
< / span > < span class = "right" >
< a id = "MSearchClose" href = "javascript:searchBox.CloseResultsWindow()" > < img id = "MSearchCloseImg" border = "0" src = "../../search/close.png" alt = "" / > < / a >
< / span >
< / div >
< / li >
< / ul >
< / div >
< div id = "navrow2" class = "tabs2" >
< ul class = "tablist" >
< li > < a href = "../../files.html" > < span > File  List< / span > < / a > < / li >
< li > < a href = "../../globals.html" > < span > Globals< / span > < / a > < / li >
< / ul >
< / div >
< / div > <!-- top -->
< div id = "side-nav" class = "ui-resizable side-nav-resizable" >
< div id = "nav-tree" >
< div id = "nav-tree-contents" >
< div id = "nav-sync" class = "sync" > < / div >
< / div >
< / div >
< div id = "splitbar" style = "-moz-user-select:none;"
class="ui-resizable-handle">
< / div >
< / div >
< script type = "text/javascript" >
$(document).ready(function(){initNavTree('d5/d89/pkts_8h_source.html','../../');});
< / script >
< div id = "doc-content" >
<!-- window showing the filter options -->
< div id = "MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
< a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(0)" > < span class = "SelectionMark" >   < / span > All< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(1)" > < span class = "SelectionMark" >   < / span > Data Structures< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(2)" > < span class = "SelectionMark" >   < / span > Files< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(3)" > < span class = "SelectionMark" >   < / span > Functions< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(4)" > < span class = "SelectionMark" >   < / span > Variables< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(5)" > < span class = "SelectionMark" >   < / span > Typedefs< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(6)" > < span class = "SelectionMark" >   < / span > Enumerations< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(7)" > < span class = "SelectionMark" >   < / span > Enumerator< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(8)" > < span class = "SelectionMark" >   < / span > Macros< / a > < / div >
<!-- iframe showing the search results (closed by default) -->
< div id = "MSearchResultsWindow" >
< iframe src = "javascript:void(0)" frameborder = "0"
name="MSearchResults" id="MSearchResults">
< / iframe >
< / div >
< div class = "header" >
< div class = "headertitle" >
< div class = "title" > pkts.h< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
< a href = "../../d5/d89/pkts_8h.html" > Go to the documentation of this file.< / a > < div class = "fragment" > < div class = "line" > < a name = "l00001" > < / a > < span class = "lineno" > 1< / span >   < span class = "comment" > /* This file is part of Netsukuku system< / span > < / div >
< div class = "line" > < a name = "l00002" > < / a > < span class = "lineno" > 2< / span >   < span class = "comment" > * (c) Copyright 2005 Andrea Lo Pumo aka AlpT < alpt@freaknet.org> < / span > < / div >
< div class = "line" > < a name = "l00003" > < / a > < span class = "lineno" > 3< / span >   < span class = "comment" > *< / span > < / div >
< div class = "line" > < a name = "l00004" > < / a > < span class = "lineno" > 4< / span >   < span class = "comment" > * This source code is free software; you can redistribute it and/or< / span > < / div >
< div class = "line" > < a name = "l00005" > < / a > < span class = "lineno" > 5< / span >   < span class = "comment" > * modify it under the terms of the GNU General Public License as published < / span > < / div >
< div class = "line" > < a name = "l00006" > < / a > < span class = "lineno" > 6< / span >   < span class = "comment" > * by the Free Software Foundation; either version 2 of the License,< / span > < / div >
< div class = "line" > < a name = "l00007" > < / a > < span class = "lineno" > 7< / span >   < span class = "comment" > * or (at your option) any later version.< / span > < / div >
< div class = "line" > < a name = "l00008" > < / a > < span class = "lineno" > 8< / span >   < span class = "comment" > *< / span > < / div >
< div class = "line" > < a name = "l00009" > < / a > < span class = "lineno" > 9< / span >   < span class = "comment" > * This source code is distributed in the hope that it will be useful,< / span > < / div >
< div class = "line" > < a name = "l00010" > < / a > < span class = "lineno" > 10< / span >   < span class = "comment" > * but WITHOUT ANY WARRANTY; without even the implied warranty of< / span > < / div >
< div class = "line" > < a name = "l00011" > < / a > < span class = "lineno" > 11< / span >   < span class = "comment" > * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.< / span > < / div >
< div class = "line" > < a name = "l00012" > < / a > < span class = "lineno" > 12< / span >   < span class = "comment" > * Please refer to the GNU Public License for more details.< / span > < / div >
< div class = "line" > < a name = "l00013" > < / a > < span class = "lineno" > 13< / span >   < span class = "comment" > *< / span > < / div >
< div class = "line" > < a name = "l00014" > < / a > < span class = "lineno" > 14< / span >   < span class = "comment" > * You should have received a copy of the GNU Public License along with< / span > < / div >
< div class = "line" > < a name = "l00015" > < / a > < span class = "lineno" > 15< / span >   < span class = "comment" > * this source code; if not, write to:< / span > < / div >
< div class = "line" > < a name = "l00016" > < / a > < span class = "lineno" > 16< / span >   < span class = "comment" > * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.< / span > < / div >
< div class = "line" > < a name = "l00017" > < / a > < span class = "lineno" > 17< / span >   < span class = "comment" > */< / span > < / div >
< div class = "line" > < a name = "l00018" > < / a > < span class = "lineno" > 18< / span >   < / div >
< div class = "line" > < a name = "l00019" > < / a > < span class = "lineno" > 19< / span >   < span class = "preprocessor" > #ifndef PKTS_H< / span > < / div >
< div class = "line" > < a name = "l00020" > < / a > < span class = "lineno" > 20< / span >   < span class = "preprocessor" > #define PKTS_H< / span > < / div >
< div class = "line" > < a name = "l00021" > < / a > < span class = "lineno" > 21< / span >   < / div >
< div class = "line" > < a name = "l00022" > < / a > < span class = "lineno" > 22< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "../../dc/d8d/if_8h.html" > if.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00023" > < / a > < span class = "lineno" > 23< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "../../d4/d43/request_8h.html" > request.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00024" > < / a > < span class = "lineno" > 24< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "../../d4/de1/llist_8c.html" > llist.c< / a > " < / span > < / div >
< div class = "line" > < a name = "l00025" > < / a > < span class = "lineno" > 25< / span >   < / div >
< div class = "line" > < a name = "l00026" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#ad48fa2177876b436aa09377afc975bda" > 26< / a > < / span >   < span class = "preprocessor" > #define NETSUKUKU_ID " ntk" < / span > < / div >
< div class = "line" > < a name = "l00027" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a7c8509d2b14c4a106700d07ac8fcbf28" > 27< / a > < / span >   < span class = "preprocessor" > #define MAXMSGSZ 65536< / span > < / div >
< div class = "line" > < a name = "l00028" > < / a > < span class = "lineno" > 28< / span >   < / div >
< div class = "line" > < a name = "l00029" > < / a > < span class = "lineno" > 29< / span >   < span class = "comment" > /*\< / span > < / div >
< div class = "line" > < a name = "l00030" > < / a > < span class = "lineno" > 30< / span >   < span class = "comment" > *< / span > < / div >
< div class = "line" > < a name = "l00031" > < / a > < span class = "lineno" > 31< / span >   < span class = "comment" > * Pkt' s op definitions< / span > < / div >
< div class = "line" > < a name = "l00032" > < / a > < span class = "lineno" > 32< / span >   < span class = "comment" > * (The requests and replies are in request.h)< / span > < / div >
< div class = "line" > < a name = "l00033" > < / a > < span class = "lineno" > 33< / span >   < span class = "comment" > *< / span > < / div >
< div class = "line" > < a name = "l00034" > < / a > < span class = "lineno" > 34< / span >   < span class = "comment" > \*/< / span > < / div >
< div class = "line" > < a name = "l00035" > < / a > < span class = "lineno" > 35< / span >   < / div >
< div class = "line" > < a name = "l00036" > < / a > < span class = "lineno" > 36< / span >   < span class = "comment" > /* Pkt.sk_type */< / span > < / div >
< div class = "line" > < a name = "l00037" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#ad5325d537ed1d93050c6d04f9f5d12e0" > 37< / a > < / span >   < span class = "preprocessor" > #define SKT_TCP 1< / span > < / div >
< div class = "line" > < a name = "l00038" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#ae9fa0a84f523660737558e8ca4057eda" > 38< / a > < / span >   < span class = "preprocessor" > #define SKT_UDP 2< / span > < / div >
< div class = "line" > < a name = "l00039" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a35f93a614f3fcf1a7d35d7cdabb5e8cf" > 39< / a > < / span >   < span class = "preprocessor" > #define SKT_BCAST 3< / span > < / div >
< div class = "line" > < a name = "l00040" > < / a > < span class = "lineno" > 40< / span >   < / div >
< div class = "line" > < a name = "l00041" > < / a > < span class = "lineno" > 41< / span >   < span class = "comment" > /* < / span > < / div >
< div class = "line" > < a name = "l00042" > < / a > < span class = "lineno" > 42< / span >   < span class = "comment" > * Pkt.pkt_flags flags < / span > < / div >
< div class = "line" > < a name = "l00043" > < / a > < span class = "lineno" > 43< / span >   < span class = "comment" > */< / span > < / div >
< div class = "line" > < a name = "l00044" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a25b5eac1caaceeaba5c80c644d6a107a" > 44< / a > < / span >   < span class = "preprocessor" > #define PKT_BIND_DEV 1 < / span > < span class = "comment" > /* Bind the pkt.sk socket to pkt.dev */< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00045" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a0dec610214d2bf7c407f238980c642eb" > 45< / a > < / span >   < span class = "preprocessor" > #define PKT_RECV_TIMEOUT (1< < 1)< / span > < / div >
< div class = "line" > < a name = "l00046" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a2ad27b31e72a80ea07909cf704e31360" > 46< / a > < / span >   < span class = "preprocessor" > #define PKT_SEND_TIMEOUT (1< < 2)< / span > < / div >
< div class = "line" > < a name = "l00047" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#ae8fe92b855ab2cf0e15a6c9f204448ca" > 47< / a > < / span >   < span class = "preprocessor" > #define PKT_SET_LOWDELAY (1< < 3)< / span > < / div >
< div class = "line" > < a name = "l00048" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a0d59625544111e1fe04638d9a33db6ba" > 48< / a > < / span >   < span class = "preprocessor" > #define PKT_COMPRESSED (1< < 4) < / span > < span class = "comment" > /* If set the packet will be Z < / span > < / div >
< div class = "line" > < a name = "l00049" > < / a > < span class = "lineno" > 49< / span >   < span class = "comment" > compressed before being sent */< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00050" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#aa1551b70f2350d696e6b607b245dad22" > 50< / a > < / span >   < span class = "preprocessor" > #define PKT_KEEPALIVE (1< < 5) < / span > < span class = "comment" > /* Let the pkt.sk socket be alive */< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00051" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a10cf50e3e171e6734d611cd825c1a57b" > 51< / a > < / span >   < span class = "preprocessor" > #define PKT_NONBLOCK (1< < 6) < / span > < span class = "comment" > /* Socket must not block */< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00052" > < / a > < span class = "lineno" > 52< / span >   < / div >
< div class = "line" > < a name = "l00053" > < / a > < span class = "lineno" > 53< / span >   < span class = "comment" > /* < / span > < / div >
< div class = "line" > < a name = "l00054" > < / a > < span class = "lineno" > 54< / span >   < span class = "comment" > * Pkt.hdr flags < / span > < / div >
< div class = "line" > < a name = "l00055" > < / a > < span class = "lineno" > 55< / span >   < span class = "comment" > */< / span > < / div >
< div class = "line" > < a name = "l00056" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a2164f6ad1577cf495d8bc8c27cddb430" > 56< / a > < / span >   < span class = "preprocessor" > #define SEND_ACK 1< / span > < / div >
< div class = "line" > < a name = "l00057" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a668ac2f12e9a43a4fcfeb2871a5b5ce1" > 57< / a > < / span >   < span class = "preprocessor" > #define BCAST_PKT (1< < 1) < / span > < span class = "comment" > /* In this pkt there is encapsulated a < / span > < / div >
< div class = "line" > < a name = "l00058" > < / a > < span class = "lineno" > 58< / span >   < span class = "comment" > * broadcast/flood pkt. Woa */< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00059" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a69c1118db5e011cb450290af4d67225e" > 59< / a > < / span >   < span class = "preprocessor" > #define HOOK_PKT (1< < 2) < / span > < span class = "comment" > /* All the pkts sent while hooking have< / span > < / div >
< div class = "line" > < a name = "l00060" > < / a > < span class = "lineno" > 60< / span >   < span class = "comment" > * this flag set */< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00061" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a9ab80b8faf583c04bd8ff09cff3aab2d" > 61< / a > < / span >   < span class = "preprocessor" > #define ASYNC_REPLY (1< < 3) < / span > < span class = "comment" > /* Tells the receiver to reply with a new < / span > < / div >
< div class = "line" > < a name = "l00062" > < / a > < span class = "lineno" > 62< / span >   < span class = "comment" > connection. The reply pkt will be< / span > < / div >
< div class = "line" > < a name = "l00063" > < / a > < span class = "lineno" > 63< / span >   < span class = "comment" > handled by the pkt_queue. */< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00064" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a19cfd4c822f73d88db53840672cc7dba" > 64< / a > < / span >   < span class = "preprocessor" > #define ASYNC_REPLIED (1< < 4)< / span > < / div >
< div class = "line" > < a name = "l00065" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a3bbaaccab455b79f5528c27363b38bd8" > 65< / a > < / span >   < span class = "preprocessor" > #define LOOPBACK_PKT (1< < 5) < / span > < span class = "comment" > /* This is a packet destinated to me */< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00066" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a8612f6bdeea6a6067a981970a592cc33" > 66< / a > < / span >   < span class = "preprocessor" > #define RESTRICTED_PKT (1< < 6) < / span > < span class = "comment" > /* Packet sent from a node in restricted < / span > < / div >
< div class = "line" > < a name = "l00067" > < / a > < span class = "lineno" > 67< / span >   < span class = "comment" > mode */< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00068" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a7a1e32a712fc200cf71e7254cc8fd8f0" > 68< / a > < / span >   < span class = "preprocessor" > #define COMPRESSED_PKT (1< < 7) < / span > < span class = "comment" > /* The whole packet is Z compressed */< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00069" > < / a > < span class = "lineno" > 69< / span >   < / div >
< div class = "line" > < a name = "l00070" > < / a > < span class = "lineno" > 70< / span >   < / div >
< div class = "line" > < a name = "l00071" > < / a > < span class = "lineno" > 71< / span >   < span class = "comment" > /*< / span > < / div >
< div class = "line" > < a name = "l00072" > < / a > < span class = "lineno" > 72< / span >   < span class = "comment" > * Broacast ptk' s flags< / span > < / div >
< div class = "line" > < a name = "l00073" > < / a > < span class = "lineno" > 73< / span >   < span class = "comment" > */< / span > < / div >
< div class = "line" > < a name = "l00074" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#ae0fca5da80b53d88cf58ebbfed281fd0" > 74< / a > < / span >   < span class = "preprocessor" > #define BCAST_TRACER_PKT 1 < / span > < span class = "comment" > /*When a bcast is marked with this, it < / span > < / div >
< div class = "line" > < a name = "l00075" > < / a > < span class = "lineno" > 75< / span >   < span class = "comment" > acts as a tracer_pkt ;)*/< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00076" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#aad1c360c5023ab2dbffa16be66d20a7f" > 76< / a > < / span >   < span class = "preprocessor" > #define BCAST_TRACER_BBLOCK (1< < 1) < / span > < span class = "comment" > /*When set, the tracer pkt carries also< / span > < / div >
< div class = "line" > < a name = "l00077" > < / a > < span class = "lineno" > 77< / span >   < span class = "comment" > bnodes blocks.*/< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00078" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a37759a336cfdcf15ae66edf1dfef0cf8" > 78< / a > < / span >   < span class = "preprocessor" > #define BCAST_TRACER_STARTERS (1< < 2) < / span > < span class = "comment" > /*Tracer pkt bound to the qspn starter < / span > < / div >
< div class = "line" > < a name = "l00079" > < / a > < span class = "lineno" > 79< / span >   < span class = "comment" > continual group*/< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00080" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a893aadc1e8099f0c45264d13f2238466" > 80< / a > < / span >   < span class = "preprocessor" > #define QSPN_BNODE_CLOSED (1< < 3) < / span > < span class = "comment" > /*The last bnode, who forwarded this < / span > < / div >
< div class = "line" > < a name = "l00081" > < / a > < span class = "lineno" > 81< / span >   < span class = "comment" > qspn pkt has all its links closed.*/< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00082" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a5a53cfd547b2012aee7b2e7c8dc7ede6" > 82< / a > < / span >   < span class = "preprocessor" > #define QSPN_BNODE_OPENED (1< < 4)< / span > < / div >
< div class = "line" > < a name = "l00083" > < / a > < span class = "lineno" > 83< / span >   < / div >
< div class = "line" > < a name = "l00084" > < / a > < span class = "lineno" > 84< / span >   < span class = "comment" > /* General defines */< / span > < / div >
< div class = "line" > < a name = "l00085" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#aaac9cd9a93bd9b6c303610433bb14318" > 85< / a > < / span >   < span class = "preprocessor" > #define PKT_MAX_MSG_SZ 1048576 < / span > < span class = "comment" > /* bytes */< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00086" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#ab588a0f5b6fc02ddf4ad95385e241ace" > 86< / a > < / span >   < span class = "preprocessor" > #define PKT_COMPRESS_LEVEL Z_DEFAULT_COMPRESSION< / span > < / div >
< div class = "line" > < a name = "l00087" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a7b0b46056407c3a5d7fdb9ed21e6e7fa" > 87< / a > < / span >   < span class = "preprocessor" > #define PKT_COMPRESS_THRESHOLD 1024 < / span > < span class = "comment" > /* If the flag PKT_COMPRESSED is set < / span > < / div >
< div class = "line" > < a name = "l00088" > < / a > < span class = "lineno" > 88< / span >   < span class = "comment" > and hdr.sz > PKT_COMPRESS_THRESHOLD,< / span > < / div >
< div class = "line" > < a name = "l00089" > < / a > < span class = "lineno" > 89< / span >   < span class = "comment" > then compress the packet */< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00090" > < / a > < span class = "lineno" > 90< / span >   < / div >
< div class = "line" > < a name = "l00091" > < / a > < span class = "lineno" > 91< / span >   < span class = "comment" > /*< / span > < / div >
< div class = "line" > < a name = "l00092" > < / a > < span class = "lineno" > 92< / span >   < span class = "comment" > * pkt_hdr: the pkt_hdr is always put at the very beginning of any netsukuku< / span > < / div >
< div class = "line" > < a name = "l00093" > < / a > < span class = "lineno" > 93< / span >   < span class = "comment" > * packets< / span > < / div >
< div class = "line" > < a name = "l00094" > < / a > < span class = "lineno" > 94< / span >   < span class = "comment" > */< / span > < / div >
< div class = "line" > < a name = "l00095" > < / a > < span class = "lineno" > 95< / span >   < span class = "keyword" > typedef< / span > < span class = "keyword" > struct< / span > < / div >
< div class = "line" > < a name = "l00096" > < / a > < span class = "lineno" > 96< / span >   {< / div >
< div class = "line" > < a name = "l00097" > < / a > < span class = "lineno" > < a class = "line" href = "../../d3/d5a/struct__PACKED__.html#a5a48c517e4128b28a48ac340c7351bae" > 97< / a > < / span >   < span class = "keywordtype" > char< / span > ntk_id[3];< / div >
< div class = "line" > < a name = "l00098" > < / a > < span class = "lineno" > < a class = "line" href = "../../d3/d5a/struct__PACKED__.html#a8da3de0e87324508a0a1b78fe47804ad" > 98< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "../../d3/d5a/struct__PACKED__.html#a8da3de0e87324508a0a1b78fe47804ad" > id< / a > ;< / div >
< div class = "line" > < a name = "l00099" > < / a > < span class = "lineno" > < a class = "line" href = "../../d3/d5a/struct__PACKED__.html#a85904e9d09b5bea18e0a94082e2e67f5" > 99< / a > < / span >   u_char < a class = "code" href = "../../d3/d5a/struct__PACKED__.html#a85904e9d09b5bea18e0a94082e2e67f5" > flags< / a > ; < / div >
< div class = "line" > < a name = "l00100" > < / a > < span class = "lineno" > < a class = "line" href = "../../d3/d5a/struct__PACKED__.html#ae00894a2de1d89e65fb5ed6a92009a43" > 100< / a > < / span >   u_char < a class = "code" href = "../../d3/d5a/struct__PACKED__.html#ae00894a2de1d89e65fb5ed6a92009a43" > op< / a > ;< / div >
< div class = "line" > < a name = "l00101" > < / a > < span class = "lineno" > < a class = "line" href = "../../d3/d5a/struct__PACKED__.html#af3cd0fdd5756902df339ccc3855686ff" > 101< / a > < / span >   < span class = "keywordtype" > size_t< / span > < a class = "code" href = "../../d3/d5a/struct__PACKED__.html#af3cd0fdd5756902df339ccc3855686ff" > sz< / a > ; < span class = "comment" > /* The size of the message */< / span > < / div >
< div class = "line" > < a name = "l00102" > < / a > < span class = "lineno" > < a class = "line" href = "../../d3/d5a/struct__PACKED__.html#af2f3f5bb1366fbd7a2ece8c3cb0cd1c5" > 102< / a > < / span >   < span class = "keywordtype" > size_t< / span > < a class = "code" href = "../../d3/d5a/struct__PACKED__.html#af2f3f5bb1366fbd7a2ece8c3cb0cd1c5" > uncompress_sz< / a > ; < span class = "comment" > /* The size of the decompressed packet. */< / span > < / div >
< div class = "line" > < a name = "l00103" > < / a > < span class = "lineno" > 103< / span >   }< a class = "code" href = "../../d3/d5a/struct__PACKED__.html" > _PACKED_< / a > pkt_hdr;< / div >
< div class = "line" > < a name = "l00104" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#ad3b23356f48288023e3ba8f333efef82" > 104< / a > < / span >   < a class = "code" href = "../../dc/d3e/endianness_8h.html#a3e44b8503d7a90af675c81800fe6d275" > INT_INFO< / a > < a class = "code" href = "../../d5/d89/pkts_8h.html#ad3b23356f48288023e3ba8f333efef82" > pkt_hdr_iinfo< / a > = { 3, < / div >
< div class = "line" > < a name = "l00105" > < / a > < span class = "lineno" > 105< / span >   { < a class = "code" href = "../../dc/d3e/endianness_8h.html#acc663d0291dd4a32c1dfbed3167bd58b" > INT_TYPE_32BIT< / a > , < a class = "code" href = "../../dc/d3e/endianness_8h.html#acc663d0291dd4a32c1dfbed3167bd58b" > INT_TYPE_32BIT< / a > , INT_TYPE_32BIT },< / div >
< div class = "line" > < a name = "l00106" > < / a > < span class = "lineno" > 106< / span >   { < span class = "keyword" > sizeof< / span > (char)*3, < span class = "keyword" > sizeof< / span > (< span class = "keywordtype" > char< / span > )*5+< span class = "keyword" > sizeof< / span > (int), < / div >
< div class = "line" > < a name = "l00107" > < / a > < span class = "lineno" > 107< / span >   < span class = "keyword" > sizeof< / span > (< span class = "keywordtype" > char< / span > )*5+< span class = "keyword" > sizeof< / span > (int)+< span class = "keyword" > sizeof< / span > (< span class = "keywordtype" > size_t< / span > ) },< / div >
< div class = "line" > < a name = "l00108" > < / a > < span class = "lineno" > 108< / span >   { 1, 1, 1 }< / div >
< div class = "line" > < a name = "l00109" > < / a > < span class = "lineno" > 109< / span >   };< / div >
< div class = "line" > < a name = "l00110" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a7601416d92e47d0f96368ed7f3a46adb" > 110< / a > < / span >   < span class = "preprocessor" > #define PACKET_SZ(sz) (sizeof(pkt_hdr)+(sz))< / span > < / div >
< div class = "line" > < a name = "l00111" > < / a > < span class = "lineno" > 111< / span >   < / div >
< div class = "line" > < a name = "l00112" > < / a > < span class = "lineno" > 112< / span >   < span class = "comment" > /*< / span > < / div >
< div class = "line" > < a name = "l00113" > < / a > < span class = "lineno" > 113< / span >   < span class = "comment" > * PACKET< / span > < / div >
< div class = "line" > < a name = "l00114" > < / a > < span class = "lineno" > 114< / span >   < span class = "comment" > *< / span > < / div >
< div class = "line" > < a name = "l00115" > < / a > < span class = "lineno" > 115< / span >   < span class = "comment" > * this struct is used only to represent internally a packet, which< / span > < / div >
< div class = "line" > < a name = "l00116" > < / a > < span class = "lineno" > 116< / span >   < span class = "comment" > * will be sent or received.< / span > < / div >
< div class = "line" > < a name = "l00117" > < / a > < span class = "lineno" > 117< / span >   < span class = "comment" > */< / span > < / div >
< div class = "line" > < a name = "l00118" > < / a > < span class = "lineno" > < a class = "line" href = "../../d6/dbc/structPACKET.html" > 118< / a > < / span >   < span class = "keyword" > typedef< / span > < span class = "keyword" > struct< / span > < / div >
< div class = "line" > < a name = "l00119" > < / a > < span class = "lineno" > 119< / span >   {< / div >
< div class = "line" > < a name = "l00120" > < / a > < span class = "lineno" > 120< / span >   < span class = "comment" > /* General informations of the packet */< / span > < / div >
< div class = "line" > < a name = "l00121" > < / a > < span class = "lineno" > 121< / span >   < / div >
< div class = "line" > < a name = "l00122" > < / a > < span class = "lineno" > < a class = "line" href = "../../d6/dbc/structPACKET.html#aa917f2a4f9185f043b1bc61b32a614f1" > 122< / a > < / span >   < a class = "code" href = "../../da/d1d/structinet__prefix.html" > inet_prefix< / a > < a class = "code" href = "../../d6/dbc/structPACKET.html#aa917f2a4f9185f043b1bc61b32a614f1" > from< / a > ; < span class = "comment" > /* The sender ip of this packet */< / span > < / div >
< div class = "line" > < a name = "l00123" > < / a > < span class = "lineno" > < a class = "line" href = "../../d6/dbc/structPACKET.html#afaa210c68577fe0d5753c41689e1c1fa" > 123< / a > < / span >   < a class = "code" href = "../../da/d1d/structinet__prefix.html" > inet_prefix< / a > < a class = "code" href = "../../d6/dbc/structPACKET.html#afaa210c68577fe0d5753c41689e1c1fa" > to< / a > ; < span class = "comment" > /* Where to send this packet */< / span > < / div >
< div class = "line" > < a name = "l00124" > < / a > < span class = "lineno" > 124< / span >   < / div >
< div class = "line" > < a name = "l00125" > < / a > < span class = "lineno" > < a class = "line" href = "../../d6/dbc/structPACKET.html#ac38507058e8d545ea9885148fb152f44" > 125< / a > < / span >   < span class = "keyword" > interface < / span > *< a class = "code" href = "../../d6/dbc/structPACKET.html#ac38507058e8d545ea9885148fb152f44" > dev< / a > ; < span class = "comment" > /* Device used to send/receive the < / span > < / div >
< div class = "line" > < a name = "l00126" > < / a > < span class = "lineno" > 126< / span >   < span class = "comment" > packet. `sk' will be bound to it< / span > < / div >
< div class = "line" > < a name = "l00127" > < / a > < span class = "lineno" > 127< / span >   < span class = "comment" > if `dev' is not null and if the < / span > < / div >
< div class = "line" > < a name = "l00128" > < / a > < span class = "lineno" > 128< / span >   < span class = "comment" > PKT_BIND_DEV flag is set in< / span > < / div >
< div class = "line" > < a name = "l00129" > < / a > < span class = "lineno" > 129< / span >   < span class = "comment" > `pkt_flags' . `dev' is a pointer< / span > < / div >
< div class = "line" > < a name = "l00130" > < / a > < span class = "lineno" > 130< / span >   < span class = "comment" > to a struct contained in the < / span > < / div >
< div class = "line" > < a name = "l00131" > < / a > < span class = "lineno" > 131< / span >   < span class = "comment" > me.cur_ifs array. */< / span > < / div >
< div class = "line" > < a name = "l00132" > < / a > < span class = "lineno" > 132< / span >   < / div >
< div class = "line" > < a name = "l00133" > < / a > < span class = "lineno" > < a class = "line" href = "../../d6/dbc/structPACKET.html#a7e0bcc42622da58fe0430ade67608334" > 133< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "../../d6/dbc/structPACKET.html#a7e0bcc42622da58fe0430ade67608334" > family< / a > ;< / div >
< div class = "line" > < a name = "l00134" > < / a > < span class = "lineno" > < a class = "line" href = "../../d6/dbc/structPACKET.html#ab31fd943dc2f849b90aaefb1215e9d8d" > 134< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "../../d6/dbc/structPACKET.html#ab31fd943dc2f849b90aaefb1215e9d8d" > sk< / a > ;< / div >
< div class = "line" > < a name = "l00135" > < / a > < span class = "lineno" > < a class = "line" href = "../../d6/dbc/structPACKET.html#ae9ec9fb519848d3c0a195b90e7d7f152" > 135< / a > < / span >   < span class = "keywordtype" > char< / span > < a class = "code" href = "../../d6/dbc/structPACKET.html#ae9ec9fb519848d3c0a195b90e7d7f152" > sk_type< / a > ;< / div >
< div class = "line" > < a name = "l00136" > < / a > < span class = "lineno" > < a class = "line" href = "../../d6/dbc/structPACKET.html#a149ce9dd04e68b8492a6f4b5f31be887" > 136< / a > < / span >   u_short < a class = "code" href = "../../d6/dbc/structPACKET.html#a149ce9dd04e68b8492a6f4b5f31be887" > port< / a > ;< / div >
< div class = "line" > < a name = "l00137" > < / a > < span class = "lineno" > 137< / span >   < / div >
< div class = "line" > < a name = "l00138" > < / a > < span class = "lineno" > < a class = "line" href = "../../d6/dbc/structPACKET.html#ad90e6ba075d693017ae0ef856e652b34" > 138< / a > < / span >   u_char < a class = "code" href = "../../d6/dbc/structPACKET.html#ad90e6ba075d693017ae0ef856e652b34" > pkt_flags< / a > ; < span class = "comment" > /*Flags for this PACKET*/< / span > < / div >
< div class = "line" > < a name = "l00139" > < / a > < span class = "lineno" > < a class = "line" href = "../../d6/dbc/structPACKET.html#a67063adb87cb1d9c3a542e26b96cf95d" > 139< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "../../d6/dbc/structPACKET.html#a67063adb87cb1d9c3a542e26b96cf95d" > flags< / a > ; < span class = "comment" > /*Flags used by send/recv*/< / span > < / div >
< div class = "line" > < a name = "l00140" > < / a > < span class = "lineno" > 140< / span >   < / div >
< div class = "line" > < a name = "l00141" > < / a > < span class = "lineno" > < a class = "line" href = "../../d6/dbc/structPACKET.html#a2b136d1e398a410df1cfc9f105afd6f6" > 141< / a > < / span >   u_int < a class = "code" href = "../../d6/dbc/structPACKET.html#a2b136d1e398a410df1cfc9f105afd6f6" > timeout< / a > ; < span class = "comment" > /*After `timeout' seconds give up the< / span > < / div >
< div class = "line" > < a name = "l00142" > < / a > < span class = "lineno" > 142< / span >   < span class = "comment" > send/recv of the packet. < / span > < / div >
< div class = "line" > < a name = "l00143" > < / a > < span class = "lineno" > 143< / span >   < span class = "comment" > The PKT_[RECV/SEND]_TIMEOUT flags are< / span > < / div >
< div class = "line" > < a name = "l00144" > < / a > < span class = "lineno" > 144< / span >   < span class = "comment" > used to determine its scope (send, < / span > < / div >
< div class = "line" > < a name = "l00145" > < / a > < span class = "lineno" > 145< / span >   < span class = "comment" > recv or both).*/< / span > < / div >
< div class = "line" > < a name = "l00146" > < / a > < span class = "lineno" > 146< / span >   < / div >
< div class = "line" > < a name = "l00147" > < / a > < span class = "lineno" > 147< / span >   < span class = "comment" > /* Body of the packet */< / span > < / div >
< div class = "line" > < a name = "l00148" > < / a > < span class = "lineno" > < a class = "line" href = "../../d6/dbc/structPACKET.html#a4c6c9b02f521be9c56809d9db993c690" > 148< / a > < / span >   pkt_hdr < a class = "code" href = "../../d6/dbc/structPACKET.html#a4c6c9b02f521be9c56809d9db993c690" > hdr< / a > ;< / div >
< div class = "line" > < a name = "l00149" > < / a > < span class = "lineno" > < a class = "line" href = "../../d6/dbc/structPACKET.html#ab02eb819e29b5b4c9d5759f6547ba6e7" > 149< / a > < / span >   < span class = "keywordtype" > char< / span > *< a class = "code" href = "../../d6/dbc/structPACKET.html#ab02eb819e29b5b4c9d5759f6547ba6e7" > msg< / a > ;< / div >
< div class = "line" > < a name = "l00150" > < / a > < span class = "lineno" > 150< / span >   } < a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > ;< / div >
< div class = "line" > < a name = "l00151" > < / a > < span class = "lineno" > 151< / span >   < / div >
< div class = "line" > < a name = "l00152" > < / a > < span class = "lineno" > 152< / span >   < span class = "comment" > /*Broadcast packet*/< / span > < / div >
< div class = "line" > < a name = "l00153" > < / a > < span class = "lineno" > 153< / span >   < span class = "keyword" > typedef< / span > < span class = "keyword" > struct< / span > < / div >
< div class = "line" > < a name = "l00154" > < / a > < span class = "lineno" > 154< / span >   {< / div >
< div class = "line" > < a name = "l00155" > < / a > < span class = "lineno" > < a class = "line" href = "../../d3/d5a/struct__PACKED__.html#a45474e36c0c7716aa39ef1e97bf76e79" > 155< / a > < / span >   u_char < a class = "code" href = "../../d3/d5a/struct__PACKED__.html#a45474e36c0c7716aa39ef1e97bf76e79" > g_node< / a > ; < span class = "comment" > /*The gnode the brdcast_pkt is restricted to*/< / span > < / div >
< div class = "line" > < a name = "l00156" > < / a > < span class = "lineno" > 156< / span >   u_char level; < span class = "comment" > /*The level of the g_node*/< / span > < / div >
< div class = "line" > < a name = "l00157" > < / a > < span class = "lineno" > < a class = "line" href = "../../d3/d5a/struct__PACKED__.html#a8717612282eae63131455f5a45eb9abe" > 157< / a > < / span >   u_char < a class = "code" href = "../../d3/d5a/struct__PACKED__.html#a8717612282eae63131455f5a45eb9abe" > gttl< / a > ; < span class = "comment" > /*Gnode ttl: How many gnodes the packet< / span > < / div >
< div class = "line" > < a name = "l00158" > < / a > < span class = "lineno" > 158< / span >   < span class = "comment" > can traverse*/< / span > < / div >
< div class = "line" > < a name = "l00159" > < / a > < span class = "lineno" > < a class = "line" href = "../../d3/d5a/struct__PACKED__.html#a60abdda7ab2a59086c3fdba4151e913c" > 159< / a > < / span >   u_char < a class = "code" href = "../../d3/d5a/struct__PACKED__.html#a60abdda7ab2a59086c3fdba4151e913c" > sub_id< / a > ; < span class = "comment" > /*The sub_id is the node who sent the pkt,< / span > < / div >
< div class = "line" > < a name = "l00160" > < / a > < span class = "lineno" > 160< / span >   < span class = "comment" > but is only used by the qspn_open*/< / span > < / div >
< div class = "line" > < a name = "l00161" > < / a > < span class = "lineno" > 161< / span >   < span class = "keywordtype" > size_t< / span > sz; < span class = "comment" > /*Sizeof(the pkt)*/< / span > < / div >
< div class = "line" > < a name = "l00162" > < / a > < span class = "lineno" > < a class = "line" href = "../../d3/d5a/struct__PACKED__.html#a7a0f473b2cd05bb9ad8c2eac2249f261" > 162< / a > < / span >   < span class = "keywordtype" > char< / span > < a class = "code" href = "../../d3/d5a/struct__PACKED__.html#a7a0f473b2cd05bb9ad8c2eac2249f261" > flags< / a > ; < span class = "comment" > /*Various flags*/< / span > < / div >
< div class = "line" > < a name = "l00163" > < / a > < span class = "lineno" > 163< / span >   }< a class = "code" href = "../../d3/d5a/struct__PACKED__.html" > _PACKED_< / a > brdcast_hdr;< / div >
< div class = "line" > < a name = "l00164" > < / a > < span class = "lineno" > 164< / span >   < / div >
< div class = "line" > < a name = "l00165" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a9fd2ae7f2ad83c3d156b5ee16bb37793" > 165< / a > < / span >   < a class = "code" href = "../../dc/d3e/endianness_8h.html#a3e44b8503d7a90af675c81800fe6d275" > INT_INFO< / a > < a class = "code" href = "../../d5/d89/pkts_8h.html#a9fd2ae7f2ad83c3d156b5ee16bb37793" > brdcast_hdr_iinfo< / a > = { 1, { < a class = "code" href = "../../dc/d3e/endianness_8h.html#acc663d0291dd4a32c1dfbed3167bd58b" > INT_TYPE_32BIT< / a > }, { < span class = "keyword" > sizeof< / span > (char)*4 }, { 1 } };< / div >
< div class = "line" > < a name = "l00166" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a23002ef60d76c0a688a559d1db8f30f9" > 166< / a > < / span >   < span class = "preprocessor" > #define BRDCAST_SZ(pkt_sz) (sizeof(brdcast_hdr)+(pkt_sz))< / span > < / div >
< div class = "line" > < a name = "l00167" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#adaae90f61ccc825e683a383003a0ccd0" > 167< / a > < / span >   < span class = "preprocessor" > #define BRDCAST_HDR_PTR(msg) ((brdcast_hdr *)(msg))< / span > < / div >
< div class = "line" > < a name = "l00168" > < / a > < span class = "lineno" > 168< / span >   < / div >
< div class = "line" > < a name = "l00169" > < / a > < span class = "lineno" > 169< / span >   < / div >
< div class = "line" > < a name = "l00170" > < / a > < span class = "lineno" > 170< / span >   < span class = "comment" > /* < / span > < / div >
< div class = "line" > < a name = "l00171" > < / a > < span class = "lineno" > 171< / span >   < span class = "comment" > * In this stable, each op (request or reply) is associated with a< / span > < / div >
< div class = "line" > < a name = "l00172" > < / a > < span class = "lineno" > 172< / span >   < span class = "comment" > * `pkt_exec_func' , which pkt_exec() will use to handle the incoming packets of< / span > < / div >
< div class = "line" > < a name = "l00173" > < / a > < span class = "lineno" > 173< / span >   < span class = "comment" > * the same op.< / span > < / div >
< div class = "line" > < a name = "l00174" > < / a > < span class = "lineno" > 174< / span >   < span class = "comment" > * Each op is also associated with its specific socket type (udp, tcp, bcast)< / span > < / div >
< div class = "line" > < a name = "l00175" > < / a > < span class = "lineno" > 175< / span >   < span class = "comment" > * with `sk_type' , and the `port' where the pkt will be sent or received.< / span > < / div >
< div class = "line" > < a name = "l00176" > < / a > < span class = "lineno" > 176< / span >   < span class = "comment" > * Each element in the table is equivalent to a request or reply, ie the< / span > < / div >
< div class = "line" > < a name = "l00177" > < / a > < span class = "lineno" > 177< / span >   < span class = "comment" > * function to handle the x request is at pkt_op_table[x].exec_func;< / span > < / div >
< div class = "line" > < a name = "l00178" > < / a > < span class = "lineno" > 178< / span >   < span class = "comment" > */< / span > < / div >
< div class = "line" > < a name = "l00179" > < / a > < span class = "lineno" > < a class = "line" href = "../../dd/db4/structpkt__op__table.html" > 179< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "../../dd/db4/structpkt__op__table.html" > pkt_op_table< / a > {< / div >
< div class = "line" > < a name = "l00180" > < / a > < span class = "lineno" > < a class = "line" href = "../../dd/db4/structpkt__op__table.html#aced1fc4866cd3139cf0e2661582eaf1c" > 180< / a > < / span >   < span class = "keywordtype" > char< / span > < a class = "code" href = "../../dd/db4/structpkt__op__table.html#aced1fc4866cd3139cf0e2661582eaf1c" > sk_type< / a > ;< / div >
< div class = "line" > < a name = "l00181" > < / a > < span class = "lineno" > < a class = "line" href = "../../dd/db4/structpkt__op__table.html#afd5ce78279b65d9bb6de2b630f487f6f" > 181< / a > < / span >   u_short < a class = "code" href = "../../dd/db4/structpkt__op__table.html#afd5ce78279b65d9bb6de2b630f487f6f" > port< / a > ;< / div >
< div class = "line" > < a name = "l00182" > < / a > < span class = "lineno" > < a class = "line" href = "../../dd/db4/structpkt__op__table.html#a7f2b020d16bf065a39f750dd07f35165" > 182< / a > < / span >   < span class = "keywordtype" > void< / span > *< a class = "code" href = "../../dd/db4/structpkt__op__table.html#a7f2b020d16bf065a39f750dd07f35165" > exec_func< / a > ;< / div >
< div class = "line" > < a name = "l00183" > < / a > < span class = "lineno" > 183< / span >   } < a class = "code" href = "../../d5/d89/pkts_8h.html#a6b051f2b2e5723577d39175dd2f02383" > pkt_op_tbl< / a > [< a class = "code" href = "../../d4/d43/request_8h.html#abfe63755e353f7ff7520db9ad7a613f3" > TOTAL_OPS< / a > ];< / div >
< div class = "line" > < a name = "l00184" > < / a > < span class = "lineno" > 184< / span >   < / div >
< div class = "line" > < a name = "l00185" > < / a > < span class = "lineno" > 185< / span >   < span class = "comment" > /* pkt_queue' s flags */< / span > < / div >
< div class = "line" > < a name = "l00186" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#ac8ee444ec3dd8037b7e2430c6087155e" > 186< / a > < / span >   < span class = "preprocessor" > #define PKT_Q_MTX_LOCKED 1 < / span > < span class = "comment" > /* We are waiting the reply */< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00187" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#aa9c2e0b9537a22fb871711371a5f3243" > 187< / a > < / span >   < span class = "preprocessor" > #define PKT_Q_PKT_RECEIVED (1< < 1) < / span > < span class = "comment" > /* The reply was received */< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00188" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a73958181a89e55331a8d131787e57b6c" > 188< / a > < / span >   < span class = "preprocessor" > #define PKT_Q_TIMEOUT (1< < 2) < / span > < span class = "comment" > /* None replied ._, */< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00189" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a0f7dd3b216ccea2595b463b933579f1f" > 189< / a > < / span >   < span class = "preprocessor" > #define PKT_Q_CHECK_FROM (1< < 3) < / span > < span class = "comment" > /* Check the from ip while< / span > < / div >
< div class = "line" > < a name = "l00190" > < / a > < span class = "lineno" > 190< / span >   < span class = "comment" > receiving the async pkt */< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00191" > < / a > < span class = "lineno" > 191< / span >   < / div >
< div class = "line" > < a name = "l00192" > < / a > < span class = "lineno" > 192< / span >   < span class = "comment" > /*< / span > < / div >
< div class = "line" > < a name = "l00193" > < / a > < span class = "lineno" > 193< / span >   < span class = "comment" > * The pkt_queue is used when a reply will be received with a completely new < / span > < / div >
< div class = "line" > < a name = "l00194" > < / a > < span class = "lineno" > 194< / span >   < span class = "comment" > * connection. This is how it works:< / span > < / div >
< div class = "line" > < a name = "l00195" > < / a > < span class = "lineno" > 195< / span >   < span class = "comment" > * The pkt.hdr.flags is ORed with ASYNC_REPLY, a new struct is added in the< / span > < / div >
< div class = "line" > < a name = "l00196" > < / a > < span class = "lineno" > 196< / span >   < span class = "comment" > * pkt_q linked list, pkt_q-> pkt.hdr.id is set to the id of the outgoing pkt< / span > < / div >
< div class = "line" > < a name = "l00197" > < / a > < span class = "lineno" > 197< / span >   < span class = "comment" > * and pkt_q-> pkt.hdr.op is set to the waited reply op.< / span > < / div >
< div class = "line" > < a name = "l00198" > < / a > < span class = "lineno" > 198< / span >   < span class = "comment" > * The function x() it' s started as a new thread and the request is sent; to < / span > < / div >
< div class = "line" > < a name = "l00199" > < / a > < span class = "lineno" > 199< / span >   < span class = "comment" > * receive the reply, x() locks twice `mtx' . The thread is now freezed.< / span > < / div >
< div class = "line" > < a name = "l00200" > < / a > < span class = "lineno" > 200< / span >   < span class = "comment" > * The reply is received by pkt_exec() which passes the pkt to the function< / span > < / div >
< div class = "line" > < a name = "l00201" > < / a > < span class = "lineno" > 201< / span >   < span class = "comment" > * y(). y() searches in the pkt_q a struct which has the same pkt.hdr.id of< / span > < / div >
< div class = "line" > < a name = "l00202" > < / a > < span class = "lineno" > 202< / span >   < span class = "comment" > * the received pkt. The reply pkt is copied in the found struct and `mtx' is< / span > < / div >
< div class = "line" > < a name = "l00203" > < / a > < span class = "lineno" > 203< / span >   < span class = "comment" > * unlocked. x() can now continue to read the reply and unlocks `mtx' .< / span > < / div >
< div class = "line" > < a name = "l00204" > < / a > < span class = "lineno" > 204< / span >   < span class = "comment" > * Note that the reply pkt must have the ASYNC_REPLIED flag set in pkt.hdr.flags.< / span > < / div >
< div class = "line" > < a name = "l00205" > < / a > < span class = "lineno" > 205< / span >   < span class = "comment" > */< / span > < / div >
< div class = "line" > < a name = "l00206" > < / a > < span class = "lineno" > < a class = "line" href = "../../dd/d5c/structpkt__queue.html" > 206< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "../../dd/d5c/structpkt__queue.html" > pkt_queue< / a > {< / div >
< div class = "line" > < a name = "l00207" > < / a > < span class = "lineno" > < a class = "line" href = "../../dd/d5c/structpkt__queue.html#a3351cf0fe6d855568127aa6a7cf7ba4b" > 207< / a > < / span >   < a class = "code" href = "../../d4/de1/llist_8c.html#ac92348e99cfae025c3893c07fee7b263" > LLIST_HDR< / a > (< span class = "keyword" > struct< / span > < a class = "code" href = "../../dd/d5c/structpkt__queue.html" > pkt_queue< / a > );< / div >
< div class = "line" > < a name = "l00208" > < / a > < span class = "lineno" > 208< / span >   < / div >
< div class = "line" > < a name = "l00209" > < / a > < span class = "lineno" > < a class = "line" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > 209< / a > < / span >   < a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > < a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > ;< / div >
< div class = "line" > < a name = "l00210" > < / a > < span class = "lineno" > < a class = "line" href = "../../dd/d5c/structpkt__queue.html#a1de48022c678659654a5f7e5b00feaa9" > 210< / a > < / span >   pthread_mutex_t < a class = "code" href = "../../dd/d5c/structpkt__queue.html#a1de48022c678659654a5f7e5b00feaa9" > mtx< / a > ;< / div >
< div class = "line" > < a name = "l00211" > < / a > < span class = "lineno" > 211< / span >   < / div >
< div class = "line" > < a name = "l00212" > < / a > < span class = "lineno" > < a class = "line" href = "../../dd/d5c/structpkt__queue.html#ad796ff1ec0ecfeed014c07eb9c5154d5" > 212< / a > < / span >   < span class = "keywordtype" > char< / span > < a class = "code" href = "../../dd/d5c/structpkt__queue.html#ad796ff1ec0ecfeed014c07eb9c5154d5" > flags< / a > ;< / div >
< div class = "line" > < a name = "l00213" > < / a > < span class = "lineno" > 213< / span >   };< / div >
< div class = "line" > < a name = "l00214" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a55935510f3cb11ef2c86102cdcf67bd0" > 214< / a > < / span >   < span class = "keyword" > typedef< / span > < span class = "keyword" > struct < / span > < a class = "code" href = "../../dd/d5c/structpkt__queue.html" > pkt_queue< / a > < a class = "code" href = "../../dd/d5c/structpkt__queue.html" > pkt_queue< / a > ;< / div >
< div class = "line" > < a name = "l00215" > < / a > < span class = "lineno" > 215< / span >   < / div >
< div class = "line" > < a name = "l00216" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a3d1cd9afbe8889411d3066b39a95a8ff" > 216< / a > < / span >   < a class = "code" href = "../../dd/d5c/structpkt__queue.html" > pkt_queue< / a > *< a class = "code" href = "../../d5/d89/pkts_8h.html#a3d1cd9afbe8889411d3066b39a95a8ff" > pkt_q< / a > ;< / div >
< div class = "line" > < a name = "l00217" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#adbdf7d2b9a24e5ace1bf3169797f6fcf" > 217< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#adbdf7d2b9a24e5ace1bf3169797f6fcf" > pkt_q_counter< / a > ;< / div >
< div class = "line" > < a name = "l00218" > < / a > < span class = "lineno" > 218< / span >   < / div >
< div class = "line" > < a name = "l00219" > < / a > < span class = "lineno" > 219< / span >   < span class = "comment" > /*Functions' declarations*/< / span > < / div >
< div class = "line" > < a name = "l00220" > < / a > < span class = "lineno" > 220< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a9101abce2bfc19c4036f2ae7b618beec" > pkts_init< / a > (< a class = "code" href = "../../d9/dbe/structinterface.html" > interface< / a > *ifs, < span class = "keywordtype" > int< / span > ifs_n, < span class = "keywordtype" > int< / span > queue_init);< / div >
< div class = "line" > < a name = "l00221" > < / a > < span class = "lineno" > 221< / span >   < / div >
< div class = "line" > < a name = "l00222" > < / a > < span class = "lineno" > 222< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#add9d3fdd60f0e0e8a0b0c15e2470b3d7" > pkt_addfrom< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > , < a class = "code" href = "../../da/d1d/structinet__prefix.html" > inet_prefix< / a > *from);< / div >
< div class = "line" > < a name = "l00223" > < / a > < span class = "lineno" > 223< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a9994ee280b9db73a6eaca0462b361d58" > pkt_addto< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > , < a class = "code" href = "../../da/d1d/structinet__prefix.html" > inet_prefix< / a > *to);< / div >
< div class = "line" > < a name = "l00224" > < / a > < span class = "lineno" > 224< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#ae5bd461fc16a3e66ff48dbb83f6a91a0" > pkt_add_dev< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > , < a class = "code" href = "../../d9/dbe/structinterface.html" > interface< / a > *dev, < span class = "keywordtype" > int< / span > bind_the_socket);< / div >
< div class = "line" > < a name = "l00225" > < / a > < span class = "lineno" > 225< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a8fb27f7c76bb4c5e4f22315d4a51a0c4" > pkt_addsk< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > , < span class = "keywordtype" > int< / span > < a class = "code" href = "../../d7/de2/if_8c.html#a4417150d9f858949bd9ea8794995ebcc" > family< / a > , < span class = "keywordtype" > int< / span > sk, < span class = "keywordtype" > int< / span > sk_type);< / div >
< div class = "line" > < a name = "l00226" > < / a > < span class = "lineno" > 226< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a10af98abd797f411f0c06bc4bff939ee" > pkt_addport< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > , u_short port);< / div >
< div class = "line" > < a name = "l00227" > < / a > < span class = "lineno" > 227< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a41340ddd69b01d92d390a512f2363a56" > pkt_addflags< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > , < span class = "keywordtype" > int< / span > < a class = "code" href = "../../d7/de2/if_8c.html#ac8bf36fe0577cba66bccda3a6f7e80a4" > flags< / a > );< / div >
< div class = "line" > < a name = "l00228" > < / a > < span class = "lineno" > 228< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#aa27a33c6310aee1bd27afa42578bc7f4" > pkt_addtimeout< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > , u_int timeout, < span class = "keywordtype" > int< / span > recv, < span class = "keywordtype" > int< / span > send);< / div >
< div class = "line" > < a name = "l00229" > < / a > < span class = "lineno" > 229< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a7ef10aa6a3c9ec3730420c5f692fb195" > pkt_addcompress< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > );< / div >
< div class = "line" > < a name = "l00230" > < / a > < span class = "lineno" > 230< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a2d9d7b7b56f6e28d0b4836353c593a7a" > pkt_addlowdelay< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > );< / div >
< div class = "line" > < a name = "l00231" > < / a > < span class = "lineno" > 231< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#af14e2a3a65d01caa39230da9114c4c24" > pkt_addnonblock< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > );< / div >
< div class = "line" > < a name = "l00232" > < / a > < span class = "lineno" > 232< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#ad3a3fbf0cd903aa35f60e274b9d5d65e" > pkt_addhdr< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > , pkt_hdr *hdr);< / div >
< div class = "line" > < a name = "l00233" > < / a > < span class = "lineno" > 233< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a68b302fcf3c663d33c7bcbc24b65de1b" > pkt_addmsg< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > , < span class = "keywordtype" > char< / span > *msg);< / div >
< div class = "line" > < a name = "l00234" > < / a > < span class = "lineno" > 234< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#ac4d4cb4e990a267fcc7e8008461ba760" > pkt_copy< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *dst, < a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *src);< / div >
< div class = "line" > < a name = "l00235" > < / a > < span class = "lineno" > 235< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a9323e08c6a2d6764207f80cd8dc992aa" > pkt_clear< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > );< / div >
< div class = "line" > < a name = "l00236" > < / a > < span class = "lineno" > 236< / span >   < / div >
< div class = "line" > < a name = "l00237" > < / a > < span class = "lineno" > 237< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a3169b3f057f310203a70d49f038f81b7" > pkt_free< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > , < span class = "keywordtype" > int< / span > close_socket);< / div >
< div class = "line" > < a name = "l00238" > < / a > < span class = "lineno" > 238< / span >   < span class = "keywordtype" > char< / span > *< a class = "code" href = "../../d5/d89/pkts_8h.html#ae6409550716070c3ff80141d94dab212" > pkt_pack< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > );< / div >
< div class = "line" > < a name = "l00239" > < / a > < span class = "lineno" > 239< / span >   < / div >
< div class = "line" > < a name = "l00240" > < / a > < span class = "lineno" > 240< / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a56916d86b390965421fda804d7ee0a3d" > pkt_verify_hdr< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > < a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > );< / div >
< div class = "line" > < a name = "l00241" > < / a > < span class = "lineno" > 241< / span >   ssize_t < a class = "code" href = "../../d5/d89/pkts_8h.html#aa27d4dfa0f7d6c8ee64399780800ae1f" > pkt_send< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > );< / div >
< div class = "line" > < a name = "l00242" > < / a > < span class = "lineno" > 242< / span >   ssize_t < a class = "code" href = "../../d5/d89/pkts_8h.html#ac8bb8c9b1659c15702e273b4a795f3d7" > pkt_recv< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > );< / div >
< div class = "line" > < a name = "l00243" > < / a > < span class = "lineno" > 243< / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#ac024e276423e4ad5476ae1730d71cf76" > pkt_tcp_connect< / a > (< a class = "code" href = "../../da/d1d/structinet__prefix.html" > inet_prefix< / a > *host, < span class = "keywordtype" > short< / span > port, < a class = "code" href = "../../d9/dbe/structinterface.html" > interface< / a > *dev);< / div >
< div class = "line" > < a name = "l00244" > < / a > < span class = "lineno" > 244< / span >   < / div >
< div class = "line" > < a name = "l00245" > < / a > < span class = "lineno" > 245< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a3245bdb71a5a4e0d04cdaa214adaac51" > pkt_fill_hdr< / a > (pkt_hdr *hdr, u_char < a class = "code" href = "../../d7/de2/if_8c.html#ac8bf36fe0577cba66bccda3a6f7e80a4" > flags< / a > , < span class = "keywordtype" > int< / span > < span class = "keywordtype" > id< / span > , u_char op, < span class = "keywordtype" > size_t< / span > sz);< / div >
< div class = "line" > < a name = "l00246" > < / a > < span class = "lineno" > 246< / span >   < / div >
< div class = "line" > < a name = "l00247" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a587354926ec47a76614798f00616a36e" > 247< / a > < / span >   < span class = "preprocessor" > #define SEND_RQ_ERR -1< / span > < / div >
< div class = "line" > < a name = "l00248" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a9a7306d67322ac40f87a122b24d75923" > 248< / a > < / span >   < span class = "preprocessor" > #define SEND_RQ_ERR_RQ -2< / span > < / div >
< div class = "line" > < a name = "l00249" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#ac6ec3c7bf95f08019bb2555293f4baa7" > 249< / a > < / span >   < span class = "preprocessor" > #define SEND_RQ_ERR_RE -3< / span > < / div >
< div class = "line" > < a name = "l00250" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#aba5d9e39ec0422b2ce234337e18a5f6e" > 250< / a > < / span >   < span class = "preprocessor" > #define SEND_RQ_ERR_PORT -4< / span > < / div >
< div class = "line" > < a name = "l00251" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a89fc52605fa52b9528c68667bb2748b4" > 251< / a > < / span >   < span class = "preprocessor" > #define SEND_RQ_ERR_TO -5< / span > < / div >
< div class = "line" > < a name = "l00252" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a611c5725295a0f49ef6e1d8a78ec7581" > 252< / a > < / span >   < span class = "preprocessor" > #define SEND_RQ_ERR_CONNECT -6< / span > < / div >
< div class = "line" > < a name = "l00253" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a44f70462b839cbe88b75052fce4b68b7" > 253< / a > < / span >   < span class = "preprocessor" > #define SEND_RQ_ERR_SEND -7< / span > < / div >
< div class = "line" > < a name = "l00254" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a3758daa0a01bc6eb484ece9db0a413d0" > 254< / a > < / span >   < span class = "preprocessor" > #define SEND_RQ_ERR_RECV -8< / span > < / div >
< div class = "line" > < a name = "l00255" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a806a02ac13c63f497bfa5cf82393a654" > 255< / a > < / span >   < span class = "preprocessor" > #define SEND_RQ_ERR_RECVOP -9< / span > < / div >
< div class = "line" > < a name = "l00256" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a1491327b4e69d41bfdeefe68871d5209" > 256< / a > < / span >   < span class = "preprocessor" > #define SEND_RQ_ERR_RECVID -10< / span > < / div >
< div class = "line" > < a name = "l00257" > < / a > < span class = "lineno" > < a class = "line" href = "../../d5/d89/pkts_8h.html#a2a9145136bf4066072c52032d7717060" > 257< / a > < / span >   < span class = "preprocessor" > #define SEND_RQ_ERR_REPLY -11< / span > < / div >
< div class = "line" > < a name = "l00258" > < / a > < span class = "lineno" > 258< / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#add26b86f4b7d350021c4a96e6db6ce6c" > send_rq< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *< a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > , < span class = "keywordtype" > int< / span > pkt_flags, u_char rq, < span class = "keywordtype" > int< / span > rq_id, u_char re, < / div >
< div class = "line" > < a name = "l00259" > < / a > < span class = "lineno" > 259< / span >   < span class = "keywordtype" > int< / span > check_ack, < a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *rpkt);< / div >
< div class = "line" > < a name = "l00260" > < / a > < span class = "lineno" > 260< / span >   < / div >
< div class = "line" > < a name = "l00261" > < / a > < span class = "lineno" > 261< / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a9705190f4cb9031da8070644993515d5" > forward_pkt< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > rpkt, < a class = "code" href = "../../da/d1d/structinet__prefix.html" > inet_prefix< / a > to);< / div >
< div class = "line" > < a name = "l00262" > < / a > < span class = "lineno" > 262< / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#ad386f9f8ac111df2a8d5a5e9912013ca" > pkt_err< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > < a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > , u_char err, < span class = "keywordtype" > int< / span > free_pkt);< / div >
< div class = "line" > < a name = "l00263" > < / a > < span class = "lineno" > 263< / span >   < / div >
< div class = "line" > < a name = "l00264" > < / a > < span class = "lineno" > 264< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#abec2e55dc4f3d4e5c639f048bf35316c" > add_pkt_op< / a > (u_char op, < span class = "keywordtype" > char< / span > sk_type, u_short port, < span class = "keywordtype" > int< / span > (*exec_f)(< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > < a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > ));< / div >
< div class = "line" > < a name = "l00265" > < / a > < span class = "lineno" > 265< / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#ad72bbdba1c2025145f30bba79981c11d" > pkt_exec< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > < a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > , < span class = "keywordtype" > int< / span > acpt_idx);< / div >
< div class = "line" > < a name = "l00266" > < / a > < span class = "lineno" > 266< / span >   < / div >
< div class = "line" > < a name = "l00267" > < / a > < span class = "lineno" > 267< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a01001fd998fb3abf74fea80de24882c3" > pkt_queue_init< / a > (< span class = "keywordtype" > void< / span > );< / div >
< div class = "line" > < a name = "l00268" > < / a > < span class = "lineno" > 268< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a61d1b4bc2230ca26679230b75fa7c1c9" > pkt_queue_close< / a > (< span class = "keywordtype" > void< / span > );< / div >
< div class = "line" > < a name = "l00269" > < / a > < span class = "lineno" > 269< / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a9bcb8ed5a94ff428d1f9f5f8b0e83d63" > pkt_q_wait_recv< / a > (< span class = "keywordtype" > int< / span > < span class = "keywordtype" > id< / span > , < a class = "code" href = "../../da/d1d/structinet__prefix.html" > inet_prefix< / a > *from, < a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > *rpkt, < a class = "code" href = "../../dd/d5c/structpkt__queue.html" > pkt_queue< / a > **ret_pq);< / div >
< div class = "line" > < a name = "l00270" > < / a > < span class = "lineno" > 270< / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a30bc04fb2e922d6ca7d89176b36c441d" > pkt_q_add_pkt< / a > (< a class = "code" href = "../../d6/dbc/structPACKET.html" > PACKET< / a > < a class = "code" href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt< / a > );< / div >
< div class = "line" > < a name = "l00271" > < / a > < span class = "lineno" > 271< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "../../d5/d89/pkts_8h.html#a8ccb46810f5a6b74d733c837dd5f4fbe" > pkt_q_del< / a > (< a class = "code" href = "../../dd/d5c/structpkt__queue.html" > pkt_queue< / a > *pq, < span class = "keywordtype" > int< / span > close_socket);< / div >
< div class = "line" > < a name = "l00272" > < / a > < span class = "lineno" > 272< / span >   < / div >
< div class = "line" > < a name = "l00273" > < / a > < span class = "lineno" > 273< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > /*PKTS_H*/< / span > < span class = "preprocessor" > < / span > < / div >
< div class = "ttc" id = "structpkt__queue_html_a1de48022c678659654a5f7e5b00feaa9" > < div class = "ttname" > < a href = "../../dd/d5c/structpkt__queue.html#a1de48022c678659654a5f7e5b00feaa9" > pkt_queue::mtx< / a > < / div > < div class = "ttdeci" > pthread_mutex_t mtx< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:210< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_aa27a33c6310aee1bd27afa42578bc7f4" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#aa27a33c6310aee1bd27afa42578bc7f4" > pkt_addtimeout< / a > < / div > < div class = "ttdeci" > void pkt_addtimeout(PACKET *pkt, u_int timeout, int recv, int send)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:94< / div > < / div >
< div class = "ttc" id = "struct__PACKED___html_a8717612282eae63131455f5a45eb9abe" > < div class = "ttname" > < a href = "../../d3/d5a/struct__PACKED__.html#a8717612282eae63131455f5a45eb9abe" > _PACKED_::gttl< / a > < / div > < div class = "ttdeci" > u_char gttl< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:157< / div > < / div >
< div class = "ttc" id = "struct__PACKED___html_ae00894a2de1d89e65fb5ed6a92009a43" > < div class = "ttname" > < a href = "../../d3/d5a/struct__PACKED__.html#ae00894a2de1d89e65fb5ed6a92009a43" > _PACKED_::op< / a > < / div > < div class = "ttdeci" > u_char op< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:100< / div > < / div >
< div class = "ttc" id = "structPACKET_html_aa917f2a4f9185f043b1bc61b32a614f1" > < div class = "ttname" > < a href = "../../d6/dbc/structPACKET.html#aa917f2a4f9185f043b1bc61b32a614f1" > PACKET::from< / a > < / div > < div class = "ttdeci" > inet_prefix from< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:122< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a9994ee280b9db73a6eaca0462b361d58" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a9994ee280b9db73a6eaca0462b361d58" > pkt_addto< / a > < / div > < div class = "ttdeci" > void pkt_addto(PACKET *pkt, inet_prefix *to)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:67< / div > < / div >
< div class = "ttc" id = "struct__PACKED___html_a8da3de0e87324508a0a1b78fe47804ad" > < div class = "ttname" > < a href = "../../d3/d5a/struct__PACKED__.html#a8da3de0e87324508a0a1b78fe47804ad" > _PACKED_::id< / a > < / div > < div class = "ttdeci" > int id< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:98< / div > < / div >
< div class = "ttc" id = "structpkt__op__table_html_aced1fc4866cd3139cf0e2661582eaf1c" > < div class = "ttname" > < a href = "../../dd/db4/structpkt__op__table.html#aced1fc4866cd3139cf0e2661582eaf1c" > pkt_op_table::sk_type< / a > < / div > < div class = "ttdeci" > char sk_type< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:180< / div > < / div >
< div class = "ttc" id = "structpkt__queue_html_aa45d788fc0fe8d8e71e0df90536d8a9c" > < div class = "ttname" > < a href = "../../dd/d5c/structpkt__queue.html#aa45d788fc0fe8d8e71e0df90536d8a9c" > pkt_queue::pkt< / a > < / div > < div class = "ttdeci" > PACKET pkt< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:209< / div > < / div >
< div class = "ttc" id = "structPACKET_html_a2b136d1e398a410df1cfc9f105afd6f6" > < div class = "ttname" > < a href = "../../d6/dbc/structPACKET.html#a2b136d1e398a410df1cfc9f105afd6f6" > PACKET::timeout< / a > < / div > < div class = "ttdeci" > u_int timeout< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:141< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a8fb27f7c76bb4c5e4f22315d4a51a0c4" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a8fb27f7c76bb4c5e4f22315d4a51a0c4" > pkt_addsk< / a > < / div > < div class = "ttdeci" > void pkt_addsk(PACKET *pkt, int family, int sk, int sk_type)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:82< / div > < / div >
< div class = "ttc" id = "structPACKET_html_ae9ec9fb519848d3c0a195b90e7d7f152" > < div class = "ttname" > < a href = "../../d6/dbc/structPACKET.html#ae9ec9fb519848d3c0a195b90e7d7f152" > PACKET::sk_type< / a > < / div > < div class = "ttdeci" > char sk_type< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:135< / div > < / div >
< div class = "ttc" id = "structPACKET_html_a4c6c9b02f521be9c56809d9db993c690" > < div class = "ttname" > < a href = "../../d6/dbc/structPACKET.html#a4c6c9b02f521be9c56809d9db993c690" > PACKET::hdr< / a > < / div > < div class = "ttdeci" > pkt_hdr hdr< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:148< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_abec2e55dc4f3d4e5c639f048bf35316c" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#abec2e55dc4f3d4e5c639f048bf35316c" > add_pkt_op< / a > < / div > < div class = "ttdeci" > void add_pkt_op(u_char op, char sk_type, u_short port, int(*exec_f)(PACKET pkt))< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:563< / div > < / div >
< div class = "ttc" id = "structPACKET_html_ab02eb819e29b5b4c9d5759f6547ba6e7" > < div class = "ttname" > < a href = "../../d6/dbc/structPACKET.html#ab02eb819e29b5b4c9d5759f6547ba6e7" > PACKET::msg< / a > < / div > < div class = "ttdeci" > char * msg< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:149< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a30bc04fb2e922d6ca7d89176b36c441d" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a30bc04fb2e922d6ca7d89176b36c441d" > pkt_q_add_pkt< / a > < / div > < div class = "ttdeci" > int pkt_q_add_pkt(PACKET pkt)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:1003< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_adbdf7d2b9a24e5ace1bf3169797f6fcf" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#adbdf7d2b9a24e5ace1bf3169797f6fcf" > pkt_q_counter< / a > < / div > < div class = "ttdeci" > int pkt_q_counter< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:217< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_ac8bb8c9b1659c15702e273b4a795f3d7" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#ac8bb8c9b1659c15702e273b4a795f3d7" > pkt_recv< / a > < / div > < div class = "ttdeci" > ssize_t pkt_recv(PACKET *pkt)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:477< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_add26b86f4b7d350021c4a96e6db6ce6c" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#add26b86f4b7d350021c4a96e6db6ce6c" > send_rq< / a > < / div > < div class = "ttdeci" > int send_rq(PACKET *pkt, int pkt_flags, u_char rq, int rq_id, u_char re, int check_ack, PACKET *rpkt)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:604< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a41340ddd69b01d92d390a512f2363a56" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a41340ddd69b01d92d390a512f2363a56" > pkt_addflags< / a > < / div > < div class = "ttdeci" > void pkt_addflags(PACKET *pkt, int flags)< / div > < / div >
< div class = "ttc" id = "struct__PACKED___html_a60abdda7ab2a59086c3fdba4151e913c" > < div class = "ttname" > < a href = "../../d3/d5a/struct__PACKED__.html#a60abdda7ab2a59086c3fdba4151e913c" > _PACKED_::sub_id< / a > < / div > < div class = "ttdeci" > u_char sub_id< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:159< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a6b051f2b2e5723577d39175dd2f02383" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a6b051f2b2e5723577d39175dd2f02383" > pkt_op_tbl< / a > < / div > < div class = "ttdeci" > struct pkt_op_table pkt_op_tbl[(ACK_NEGATIVE+1)]< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_aa27d4dfa0f7d6c8ee64399780800ae1f" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#aa27d4dfa0f7d6c8ee64399780800ae1f" > pkt_send< / a > < / div > < div class = "ttdeci" > ssize_t pkt_send(PACKET *pkt)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:335< / div > < / div >
< div class = "ttc" id = "structinet__prefix_html" > < div class = "ttname" > < a href = "../../da/d1d/structinet__prefix.html" > inet_prefix< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > inet.h:73< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a9fd2ae7f2ad83c3d156b5ee16bb37793" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a9fd2ae7f2ad83c3d156b5ee16bb37793" > brdcast_hdr_iinfo< / a > < / div > < div class = "ttdeci" > static const int_info brdcast_hdr_iinfo< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:165< / div > < / div >
< div class = "ttc" id = "structpkt__queue_html" > < div class = "ttname" > < a href = "../../dd/d5c/structpkt__queue.html" > pkt_queue< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:206< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a10af98abd797f411f0c06bc4bff939ee" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a10af98abd797f411f0c06bc4bff939ee" > pkt_addport< / a > < / div > < div class = "ttdeci" > void pkt_addport(PACKET *pkt, u_short port)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:89< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a3169b3f057f310203a70d49f038f81b7" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a3169b3f057f310203a70d49f038f81b7" > pkt_free< / a > < / div > < div class = "ttdeci" > void pkt_free(PACKET *pkt, int close_socket)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:162< / div > < / div >
< div class = "ttc" id = "struct__PACKED___html_a7a0f473b2cd05bb9ad8c2eac2249f261" > < div class = "ttname" > < a href = "../../d3/d5a/struct__PACKED__.html#a7a0f473b2cd05bb9ad8c2eac2249f261" > _PACKED_::flags< / a > < / div > < div class = "ttdeci" > char flags< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:162< / div > < / div >
< div class = "ttc" id = "llist_8c_html" > < div class = "ttname" > < a href = "../../d4/de1/llist_8c.html" > llist.c< / a > < / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a9101abce2bfc19c4036f2ae7b618beec" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a9101abce2bfc19c4036f2ae7b618beec" > pkts_init< / a > < / div > < div class = "ttdeci" > void pkts_init(interface *ifs, int ifs_n, int queue_init)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:44< / div > < / div >
< div class = "ttc" id = "structPACKET_html_ab31fd943dc2f849b90aaefb1215e9d8d" > < div class = "ttname" > < a href = "../../d6/dbc/structPACKET.html#ab31fd943dc2f849b90aaefb1215e9d8d" > PACKET::sk< / a > < / div > < div class = "ttdeci" > int sk< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:134< / div > < / div >
< div class = "ttc" id = "structinterface_html" > < div class = "ttname" > < a href = "../../d9/dbe/structinterface.html" > interface< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > if.h:29< / div > < / div >
< div class = "ttc" id = "structPACKET_html_a149ce9dd04e68b8492a6f4b5f31be887" > < div class = "ttname" > < a href = "../../d6/dbc/structPACKET.html#a149ce9dd04e68b8492a6f4b5f31be887" > PACKET::port< / a > < / div > < div class = "ttdeci" > u_short port< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:136< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_ad3a3fbf0cd903aa35f60e274b9d5d65e" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#ad3a3fbf0cd903aa35f60e274b9d5d65e" > pkt_addhdr< / a > < / div > < div class = "ttdeci" > void pkt_addhdr(PACKET *pkt, pkt_hdr *hdr)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:119< / div > < / div >
< div class = "ttc" id = "structPACKET_html_ac38507058e8d545ea9885148fb152f44" > < div class = "ttname" > < a href = "../../d6/dbc/structPACKET.html#ac38507058e8d545ea9885148fb152f44" > PACKET::dev< / a > < / div > < div class = "ttdeci" > interface * dev< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:125< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a01001fd998fb3abf74fea80de24882c3" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a01001fd998fb3abf74fea80de24882c3" > pkt_queue_init< / a > < / div > < div class = "ttdeci" > void pkt_queue_init(void)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:878< / div > < / div >
< div class = "ttc" id = "if_8h_html" > < div class = "ttname" > < a href = "../../dc/d8d/if_8h.html" > if.h< / a > < / div > < / div >
< div class = "ttc" id = "structpkt__op__table_html" > < div class = "ttname" > < a href = "../../dd/db4/structpkt__op__table.html" > pkt_op_table< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:179< / div > < / div >
< div class = "ttc" id = "request_8h_html_abfe63755e353f7ff7520db9ad7a613f3" > < div class = "ttname" > < a href = "../../d4/d43/request_8h.html#abfe63755e353f7ff7520db9ad7a613f3" > TOTAL_OPS< / a > < / div > < div class = "ttdeci" > #define TOTAL_OPS< / div > < div class = "ttdef" > < b > Definition:< / b > request.h:102< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a68b302fcf3c663d33c7bcbc24b65de1b" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a68b302fcf3c663d33c7bcbc24b65de1b" > pkt_addmsg< / a > < / div > < div class = "ttdeci" > void pkt_addmsg(PACKET *pkt, char *msg)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:127< / div > < / div >
< div class = "ttc" id = "structPACKET_html_a7e0bcc42622da58fe0430ade67608334" > < div class = "ttname" > < a href = "../../d6/dbc/structPACKET.html#a7e0bcc42622da58fe0430ade67608334" > PACKET::family< / a > < / div > < div class = "ttdeci" > int family< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:133< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_ad3b23356f48288023e3ba8f333efef82" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#ad3b23356f48288023e3ba8f333efef82" > pkt_hdr_iinfo< / a > < / div > < div class = "ttdeci" > static const int_info pkt_hdr_iinfo< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:104< / div > < / div >
< div class = "ttc" id = "struct__PACKED___html_a45474e36c0c7716aa39ef1e97bf76e79" > < div class = "ttname" > < a href = "../../d3/d5a/struct__PACKED__.html#a45474e36c0c7716aa39ef1e97bf76e79" > _PACKED_::g_node< / a > < / div > < div class = "ttdeci" > u_char g_node< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:155< / div > < / div >
< div class = "ttc" id = "structpkt__op__table_html_afd5ce78279b65d9bb6de2b630f487f6f" > < div class = "ttname" > < a href = "../../dd/db4/structpkt__op__table.html#afd5ce78279b65d9bb6de2b630f487f6f" > pkt_op_table::port< / a > < / div > < div class = "ttdeci" > u_short port< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:181< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_ae5bd461fc16a3e66ff48dbb83f6a91a0" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#ae5bd461fc16a3e66ff48dbb83f6a91a0" > pkt_add_dev< / a > < / div > < div class = "ttdeci" > void pkt_add_dev(PACKET *pkt, interface *dev, int bind_the_socket)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:75< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_ac4d4cb4e990a267fcc7e8008461ba760" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#ac4d4cb4e990a267fcc7e8008461ba760" > pkt_copy< / a > < / div > < div class = "ttdeci" > void pkt_copy(PACKET *dst, PACKET *src)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:151< / div > < / div >
< div class = "ttc" id = "structPACKET_html_afaa210c68577fe0d5753c41689e1c1fa" > < div class = "ttname" > < a href = "../../d6/dbc/structPACKET.html#afaa210c68577fe0d5753c41689e1c1fa" > PACKET::to< / a > < / div > < div class = "ttdeci" > inet_prefix to< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:123< / div > < / div >
< div class = "ttc" id = "structPACKET_html_ad90e6ba075d693017ae0ef856e652b34" > < div class = "ttname" > < a href = "../../d6/dbc/structPACKET.html#ad90e6ba075d693017ae0ef856e652b34" > PACKET::pkt_flags< / a > < / div > < div class = "ttdeci" > u_char pkt_flags< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:138< / div > < / div >
< div class = "ttc" id = "struct__PACKED___html_a85904e9d09b5bea18e0a94082e2e67f5" > < div class = "ttname" > < a href = "../../d3/d5a/struct__PACKED__.html#a85904e9d09b5bea18e0a94082e2e67f5" > _PACKED_::flags< / a > < / div > < div class = "ttdeci" > u_char flags< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:99< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_ac024e276423e4ad5476ae1730d71cf76" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#ac024e276423e4ad5476ae1730d71cf76" > pkt_tcp_connect< / a > < / div > < div class = "ttdeci" > int pkt_tcp_connect(inet_prefix *host, short port, interface *dev)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:502< / div > < / div >
< div class = "ttc" id = "endianness_8h_html_a3e44b8503d7a90af675c81800fe6d275" > < div class = "ttname" > < a href = "../../dc/d3e/endianness_8h.html#a3e44b8503d7a90af675c81800fe6d275" > INT_INFO< / a > < / div > < div class = "ttdeci" > #define INT_INFO< / div > < div class = "ttdef" > < b > Definition:< / b > endianness.h:90< / div > < / div >
< div class = "ttc" id = "structpkt__op__table_html_a7f2b020d16bf065a39f750dd07f35165" > < div class = "ttname" > < a href = "../../dd/db4/structpkt__op__table.html#a7f2b020d16bf065a39f750dd07f35165" > pkt_op_table::exec_func< / a > < / div > < div class = "ttdeci" > void * exec_func< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:182< / div > < / div >
< div class = "ttc" id = "struct__PACKED___html_af2f3f5bb1366fbd7a2ece8c3cb0cd1c5" > < div class = "ttname" > < a href = "../../d3/d5a/struct__PACKED__.html#af2f3f5bb1366fbd7a2ece8c3cb0cd1c5" > _PACKED_::uncompress_sz< / a > < / div > < div class = "ttdeci" > size_t uncompress_sz< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:102< / div > < / div >
< div class = "ttc" id = "request_8h_html" > < div class = "ttname" > < a href = "../../d4/d43/request_8h.html" > request.h< / a > < / div > < / div >
< div class = "ttc" id = "pkts_8h_html_ad386f9f8ac111df2a8d5a5e9912013ca" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#ad386f9f8ac111df2a8d5a5e9912013ca" > pkt_err< / a > < / div > < div class = "ttdeci" > int pkt_err(PACKET pkt, u_char err, int free_pkt)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:775< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a9bcb8ed5a94ff428d1f9f5f8b0e83d63" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a9bcb8ed5a94ff428d1f9f5f8b0e83d63" > pkt_q_wait_recv< / a > < / div > < div class = "ttdeci" > int pkt_q_wait_recv(int id, inet_prefix *from, PACKET *rpkt, pkt_queue **ret_pq)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:946< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_add9d3fdd60f0e0e8a0b0c15e2470b3d7" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#add9d3fdd60f0e0e8a0b0c15e2470b3d7" > pkt_addfrom< / a > < / div > < div class = "ttdeci" > void pkt_addfrom(PACKET *pkt, inet_prefix *from)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:59< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a3d1cd9afbe8889411d3066b39a95a8ff" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a3d1cd9afbe8889411d3066b39a95a8ff" > pkt_q< / a > < / div > < div class = "ttdeci" > pkt_queue * pkt_q< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:216< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a7ef10aa6a3c9ec3730420c5f692fb195" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a7ef10aa6a3c9ec3730420c5f692fb195" > pkt_addcompress< / a > < / div > < div class = "ttdeci" > void pkt_addcompress(PACKET *pkt)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:104< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a9323e08c6a2d6764207f80cd8dc992aa" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a9323e08c6a2d6764207f80cd8dc992aa" > pkt_clear< / a > < / div > < div class = "ttdeci" > void pkt_clear(PACKET *pkt)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:138< / div > < / div >
< div class = "ttc" id = "structPACKET_html" > < div class = "ttname" > < a href = "../../d6/dbc/structPACKET.html" > PACKET< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:118< / div > < / div >
< div class = "ttc" id = "struct__PACKED___html_af3cd0fdd5756902df339ccc3855686ff" > < div class = "ttname" > < a href = "../../d3/d5a/struct__PACKED__.html#af3cd0fdd5756902df339ccc3855686ff" > _PACKED_::sz< / a > < / div > < div class = "ttdeci" > size_t sz< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:101< / div > < / div >
< div class = "ttc" id = "llist_8c_html_ac92348e99cfae025c3893c07fee7b263" > < div class = "ttname" > < a href = "../../d4/de1/llist_8c.html#ac92348e99cfae025c3893c07fee7b263" > LLIST_HDR< / a > < / div > < div class = "ttdeci" > #define LLIST_HDR(_struct)< / div > < div class = "ttdef" > < b > Definition:< / b > llist.c:44< / div > < / div >
< div class = "ttc" id = "if_8c_html_a4417150d9f858949bd9ea8794995ebcc" > < div class = "ttname" > < a href = "../../d7/de2/if_8c.html#a4417150d9f858949bd9ea8794995ebcc" > family< / a > < / div > < div class = "ttdeci" > int family< / div > < div class = "ttdef" > < b > Definition:< / b > if.c:34< / div > < / div >
< div class = "ttc" id = "if_8c_html_ac8bf36fe0577cba66bccda3a6f7e80a4" > < div class = "ttname" > < a href = "../../d7/de2/if_8c.html#ac8bf36fe0577cba66bccda3a6f7e80a4" > flags< / a > < / div > < div class = "ttdeci" > int flags< / div > < div class = "ttdef" > < b > Definition:< / b > if.c:39< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a3245bdb71a5a4e0d04cdaa214adaac51" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a3245bdb71a5a4e0d04cdaa214adaac51" > pkt_fill_hdr< / a > < / div > < div class = "ttdeci" > void pkt_fill_hdr(pkt_hdr *hdr, u_char flags, int id, u_char op, size_t sz)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:545< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_af14e2a3a65d01caa39230da9114c4c24" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#af14e2a3a65d01caa39230da9114c4c24" > pkt_addnonblock< / a > < / div > < div class = "ttdeci" > void pkt_addnonblock(PACKET *pkt)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:114< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a8ccb46810f5a6b74d733c837dd5f4fbe" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a8ccb46810f5a6b74d733c837dd5f4fbe" > pkt_q_del< / a > < / div > < div class = "ttdeci" > void pkt_q_del(pkt_queue *pq, int close_socket)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:1043< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a61d1b4bc2230ca26679230b75fa7c1c9" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a61d1b4bc2230ca26679230b75fa7c1c9" > pkt_queue_close< / a > < / div > < div class = "ttdeci" > void pkt_queue_close(void)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:886< / div > < / div >
< div class = "ttc" id = "endianness_8h_html_acc663d0291dd4a32c1dfbed3167bd58b" > < div class = "ttname" > < a href = "../../dc/d3e/endianness_8h.html#acc663d0291dd4a32c1dfbed3167bd58b" > INT_TYPE_32BIT< / a > < / div > < div class = "ttdeci" > #define INT_TYPE_32BIT< / div > < div class = "ttdef" > < b > Definition:< / b > endianness.h:35< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a2d9d7b7b56f6e28d0b4836353c593a7a" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a2d9d7b7b56f6e28d0b4836353c593a7a" > pkt_addlowdelay< / a > < / div > < div class = "ttdeci" > void pkt_addlowdelay(PACKET *pkt)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:109< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_ad72bbdba1c2025145f30bba79981c11d" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#ad72bbdba1c2025145f30bba79981c11d" > pkt_exec< / a > < / div > < div class = "ttdeci" > int pkt_exec(PACKET pkt, int acpt_idx)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:813< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a9705190f4cb9031da8070644993515d5" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a9705190f4cb9031da8070644993515d5" > forward_pkt< / a > < / div > < div class = "ttdeci" > int forward_pkt(PACKET rpkt, inet_prefix to)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:756< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_ae6409550716070c3ff80141d94dab212" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#ae6409550716070c3ff80141d94dab212" > pkt_pack< / a > < / div > < div class = "ttdeci" > char * pkt_pack(PACKET *pkt)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:227< / div > < / div >
< div class = "ttc" id = "pkts_8h_html_a56916d86b390965421fda804d7ee0a3d" > < div class = "ttname" > < a href = "../../d5/d89/pkts_8h.html#a56916d86b390965421fda804d7ee0a3d" > pkt_verify_hdr< / a > < / div > < div class = "ttdeci" > int pkt_verify_hdr(PACKET pkt)< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.c:320< / div > < / div >
< div class = "ttc" id = "structPACKET_html_a67063adb87cb1d9c3a542e26b96cf95d" > < div class = "ttname" > < a href = "../../d6/dbc/structPACKET.html#a67063adb87cb1d9c3a542e26b96cf95d" > PACKET::flags< / a > < / div > < div class = "ttdeci" > int flags< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:139< / div > < / div >
< div class = "ttc" id = "struct__PACKED___html" > < div class = "ttname" > < a href = "../../d3/d5a/struct__PACKED__.html" > _PACKED_< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > bmap.h:89< / div > < / div >
< div class = "ttc" id = "structpkt__queue_html_ad796ff1ec0ecfeed014c07eb9c5154d5" > < div class = "ttname" > < a href = "../../dd/d5c/structpkt__queue.html#ad796ff1ec0ecfeed014c07eb9c5154d5" > pkt_queue::flags< / a > < / div > < div class = "ttdeci" > char flags< / div > < div class = "ttdef" > < b > Definition:< / b > pkts.h:212< / div > < / div >
< / div > <!-- fragment --> < / div > <!-- contents -->
< / div > <!-- doc - content -->
<!-- start footer part -->
< div id = "nav-path" class = "navpath" > <!-- id is needed for treeview function! -->
< ul >
< li class = "navelem" > < a class = "el" href = "../../dir_68267d1309a1af8e8297ef4c3efbcdba.html" > src< / a > < / li > < li class = "navelem" > < a class = "el" href = "../../d5/d89/pkts_8h.html" > pkts.h< / a > < / li >
2014-02-20 00:30:40 +00:00
< li class = "footer" > Generated on Wed Feb 19 2014 16:28:40 for The Netsukuku Project by
2014-02-19 23:45:00 +00:00
< a href = "http://www.doxygen.org/index.html" >
< img class = "footer" src = "../../doxygen.png" alt = "doxygen" / > < / a > 1.8.6 < / li >
< / ul >
< / div >
< / body >
< / html >