Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > media > main-release > by-pkgid > cc8cc92380afe5f7d24b47e42f17406c > files > 251

lib64hd-devel-13.57-1mdv2008.1.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>libhd: PPPoE devices (DSL)</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<h1>PPPoE devices (DSL)<br>
<small>
[<a class="el" href="group__libhdDEVint.html">Device handling</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPPPoEPacket.html">PPPoEPacket</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPPPoETag.html">PPPoETag</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPPPoEConnection.html">PPPoEConnection</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPacketCriteria.html">PacketCriteria</a></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g3b1bda6418e81b4d6afda7c6cf4ad3a5">ETH_PPPOE_DISCOVERY</a>&nbsp;&nbsp;&nbsp;0x8863</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g4365ed2ccb443d340b2a5f79e3cfbb93">ETH_PPPOE_SESSION</a>&nbsp;&nbsp;&nbsp;0x8864</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#gcbcab9fe13d39341d04efbdf4847bd85">CODE_PADI</a>&nbsp;&nbsp;&nbsp;0x09</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#gce47a52318b7b10b7ecd211ff00c1990">CODE_PADO</a>&nbsp;&nbsp;&nbsp;0x07</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g58ba0c8f130f0efef85f9f798eb060ef">CODE_PADR</a>&nbsp;&nbsp;&nbsp;0x19</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#gac3dafc868fe2300e19d25c7b44d51b5">CODE_PADS</a>&nbsp;&nbsp;&nbsp;0x65</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g5eca47e978ac054f2e6f7fa03f695801">CODE_PADT</a>&nbsp;&nbsp;&nbsp;0xA7</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g1da4e40fa965fa6f08cd9ab775bae0ef">TAG_END_OF_LIST</a>&nbsp;&nbsp;&nbsp;0x0000</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#gfae3f5ba34f283e4522a811a54e819bb">TAG_SERVICE_NAME</a>&nbsp;&nbsp;&nbsp;0x0101</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g2b5ff4e47fa5647997ed2de14cfaa159">TAG_AC_NAME</a>&nbsp;&nbsp;&nbsp;0x0102</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g3643bf429dd99c99fe4f9e709c3e572f">TAG_HOST_UNIQ</a>&nbsp;&nbsp;&nbsp;0x0103</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#gb67115a3976ed40fd68d008adaad8a93">TAG_AC_COOKIE</a>&nbsp;&nbsp;&nbsp;0x0104</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#gbabbbd15b689c847451144807fed15df">TAG_VENDOR_SPECIFIC</a>&nbsp;&nbsp;&nbsp;0x0105</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g133ab6c1704f4d3f3923d436179d600a">TAG_RELAY_SESSION_ID</a>&nbsp;&nbsp;&nbsp;0x0110</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g29f3108974a0b80ed09e7f27f2197fc4">TAG_SERVICE_NAME_ERROR</a>&nbsp;&nbsp;&nbsp;0x0201</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g14bc349ddc6bbc9bce8a3cae07cb2a0d">TAG_AC_SYSTEM_ERROR</a>&nbsp;&nbsp;&nbsp;0x0202</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#gbf1148f8554fd81de86ca20d98f7d384">TAG_GENERIC_ERROR</a>&nbsp;&nbsp;&nbsp;0x0203</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g7e1856ac7c6ed757978fc30bb92ace74">MAX_ATTEMPTS</a>&nbsp;&nbsp;&nbsp;2</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g527693e476ba7efcfbe273753116c099">PADO_TIMEOUT</a>&nbsp;&nbsp;&nbsp;3</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g91993af6af6c909265f320c91410f938">PPPOE_OVERHEAD</a>&nbsp;&nbsp;&nbsp;6</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g033844e31b906a938ba7c9a74d66645b">HDR_SIZE</a>&nbsp;&nbsp;&nbsp;(sizeof (struct ethhdr) + PPPOE_OVERHEAD)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#gc0681008055cf92566a10402491c7600">MAX_PPPOE_PAYLOAD</a>&nbsp;&nbsp;&nbsp;(ETH_DATA_LEN - PPPOE_OVERHEAD)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g8af9b67a51ed676d35714e14e1d32576">TAG_HDR_SIZE</a>&nbsp;&nbsp;&nbsp;4</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g9fa39a27d776ef7ac885d3bb160a65e2">NOT_UNICAST</a>(e)&nbsp;&nbsp;&nbsp;((e[0] &amp; 0x01) != 0)</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g4b47af5e29d0ed8133514278c612d6a4">parse_func</a> (uint16_t type, uint16_t len, unsigned char *data, void *extra)</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g700f0702e53ca9653abee30b8df88708">check_room</a> (<a class="el" href="structPPPoEConnection.html">PPPoEConnection</a> *conn, unsigned char *cursor, unsigned char *start, uint16_t len)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#gd37ecb87696166108f2f239671e24f6a">parse_packet</a> (<a class="el" href="structPPPoEConnection.html">PPPoEConnection</a> *conn, <a class="el" href="structPPPoEPacket.html">PPPoEPacket</a> *packet, <a class="el" href="group__PPPOEint.html#g4b47af5e29d0ed8133514278c612d6a4">parse_func</a> *func, void *extra)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#gd44f122286d46b550fb15f6f0beacfd3">open_interfaces</a> (int n, <a class="el" href="structPPPoEConnection.html">PPPoEConnection</a> *conns)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#gcc7a2dd57973045596aae64071f31791">close_intefaces</a> (int n, <a class="el" href="structPPPoEConnection.html">PPPoEConnection</a> *conns)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g7e3d98da756c2c4377442dfa656a22ca">send_packet</a> (int fd, <a class="el" href="structPPPoEPacket.html">PPPoEPacket</a> *pkt, size_t size)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g94e5d5c2a8b219c001f82fb02991bc60">receive_packet</a> (int fd, <a class="el" href="structPPPoEPacket.html">PPPoEPacket</a> *pkt, size_t *size)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g3e62af8c32417cebd39acfe7e4421208">parse_hostuniq</a> (uint16_t type, uint16_t len, unsigned char *data, void *extra)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g15139a78c786f9eee67705c183509ed8">packet_for_me</a> (<a class="el" href="structPPPoEConnection.html">PPPoEConnection</a> *conn, <a class="el" href="structPPPoEPacket.html">PPPoEPacket</a> *packet)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g20e7f22a9ff6dc2b27a8b579b34a1570">parse_pado_tags</a> (uint16_t type, uint16_t len, unsigned char *data, void *extra)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g4e263025a0fa9644a8ba8cf581fd9415">send_padi</a> (int n, <a class="el" href="structPPPoEConnection.html">PPPoEConnection</a> *conns)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#gc6fc1cf62580afa717f7470ab2359ccd">wait_for_pado</a> (int n, <a class="el" href="structPPPoEConnection.html">PPPoEConnection</a> *conns)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g687d38bff393787adc362a3e94c312b5">discovery</a> (int n, <a class="el" href="structPPPoEConnection.html">PPPoEConnection</a> *conns)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PPPOEint.html#g57d61bbba790855de9e51d6202cf1140">hd_scan_pppoe</a> (<a class="el" href="structhd__data__t.html">hd_data_t</a> *hd_data2)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
PPPoE devices scan functions <hr><h2>Define Documentation</h2>
<a class="anchor" name="gcbcab9fe13d39341d04efbdf4847bd85"></a><!-- doxytag: member="pppoe.c::CODE_PADI" ref="gcbcab9fe13d39341d04efbdf4847bd85" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CODE_PADI&nbsp;&nbsp;&nbsp;0x09          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="gce47a52318b7b10b7ecd211ff00c1990"></a><!-- doxytag: member="pppoe.c::CODE_PADO" ref="gce47a52318b7b10b7ecd211ff00c1990" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CODE_PADO&nbsp;&nbsp;&nbsp;0x07          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g58ba0c8f130f0efef85f9f798eb060ef"></a><!-- doxytag: member="pppoe.c::CODE_PADR" ref="g58ba0c8f130f0efef85f9f798eb060ef" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CODE_PADR&nbsp;&nbsp;&nbsp;0x19          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="gac3dafc868fe2300e19d25c7b44d51b5"></a><!-- doxytag: member="pppoe.c::CODE_PADS" ref="gac3dafc868fe2300e19d25c7b44d51b5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CODE_PADS&nbsp;&nbsp;&nbsp;0x65          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g5eca47e978ac054f2e6f7fa03f695801"></a><!-- doxytag: member="pppoe.c::CODE_PADT" ref="g5eca47e978ac054f2e6f7fa03f695801" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CODE_PADT&nbsp;&nbsp;&nbsp;0xA7          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g3b1bda6418e81b4d6afda7c6cf4ad3a5"></a><!-- doxytag: member="pppoe.c::ETH_PPPOE_DISCOVERY" ref="g3b1bda6418e81b4d6afda7c6cf4ad3a5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ETH_PPPOE_DISCOVERY&nbsp;&nbsp;&nbsp;0x8863          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g4365ed2ccb443d340b2a5f79e3cfbb93"></a><!-- doxytag: member="pppoe.c::ETH_PPPOE_SESSION" ref="g4365ed2ccb443d340b2a5f79e3cfbb93" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ETH_PPPOE_SESSION&nbsp;&nbsp;&nbsp;0x8864          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g033844e31b906a938ba7c9a74d66645b"></a><!-- doxytag: member="pppoe.c::HDR_SIZE" ref="g033844e31b906a938ba7c9a74d66645b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HDR_SIZE&nbsp;&nbsp;&nbsp;(sizeof (struct ethhdr) + PPPOE_OVERHEAD)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g7e1856ac7c6ed757978fc30bb92ace74"></a><!-- doxytag: member="pppoe.c::MAX_ATTEMPTS" ref="g7e1856ac7c6ed757978fc30bb92ace74" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_ATTEMPTS&nbsp;&nbsp;&nbsp;2          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="gc0681008055cf92566a10402491c7600"></a><!-- doxytag: member="pppoe.c::MAX_PPPOE_PAYLOAD" ref="gc0681008055cf92566a10402491c7600" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_PPPOE_PAYLOAD&nbsp;&nbsp;&nbsp;(ETH_DATA_LEN - PPPOE_OVERHEAD)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g9fa39a27d776ef7ac885d3bb160a65e2"></a><!-- doxytag: member="pppoe.c::NOT_UNICAST" ref="g9fa39a27d776ef7ac885d3bb160a65e2" args="(e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NOT_UNICAST          </td>
          <td>(</td>
          <td class="paramtype">e&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((e[0] &amp; 0x01) != 0)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g527693e476ba7efcfbe273753116c099"></a><!-- doxytag: member="pppoe.c::PADO_TIMEOUT" ref="g527693e476ba7efcfbe273753116c099" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PADO_TIMEOUT&nbsp;&nbsp;&nbsp;3          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g91993af6af6c909265f320c91410f938"></a><!-- doxytag: member="pppoe.c::PPPOE_OVERHEAD" ref="g91993af6af6c909265f320c91410f938" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PPPOE_OVERHEAD&nbsp;&nbsp;&nbsp;6          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="gb67115a3976ed40fd68d008adaad8a93"></a><!-- doxytag: member="pppoe.c::TAG_AC_COOKIE" ref="gb67115a3976ed40fd68d008adaad8a93" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TAG_AC_COOKIE&nbsp;&nbsp;&nbsp;0x0104          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g2b5ff4e47fa5647997ed2de14cfaa159"></a><!-- doxytag: member="pppoe.c::TAG_AC_NAME" ref="g2b5ff4e47fa5647997ed2de14cfaa159" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TAG_AC_NAME&nbsp;&nbsp;&nbsp;0x0102          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g14bc349ddc6bbc9bce8a3cae07cb2a0d"></a><!-- doxytag: member="pppoe.c::TAG_AC_SYSTEM_ERROR" ref="g14bc349ddc6bbc9bce8a3cae07cb2a0d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TAG_AC_SYSTEM_ERROR&nbsp;&nbsp;&nbsp;0x0202          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g1da4e40fa965fa6f08cd9ab775bae0ef"></a><!-- doxytag: member="pppoe.c::TAG_END_OF_LIST" ref="g1da4e40fa965fa6f08cd9ab775bae0ef" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TAG_END_OF_LIST&nbsp;&nbsp;&nbsp;0x0000          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="gbf1148f8554fd81de86ca20d98f7d384"></a><!-- doxytag: member="pppoe.c::TAG_GENERIC_ERROR" ref="gbf1148f8554fd81de86ca20d98f7d384" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TAG_GENERIC_ERROR&nbsp;&nbsp;&nbsp;0x0203          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g8af9b67a51ed676d35714e14e1d32576"></a><!-- doxytag: member="pppoe.c::TAG_HDR_SIZE" ref="g8af9b67a51ed676d35714e14e1d32576" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TAG_HDR_SIZE&nbsp;&nbsp;&nbsp;4          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g3643bf429dd99c99fe4f9e709c3e572f"></a><!-- doxytag: member="pppoe.c::TAG_HOST_UNIQ" ref="g3643bf429dd99c99fe4f9e709c3e572f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TAG_HOST_UNIQ&nbsp;&nbsp;&nbsp;0x0103          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g133ab6c1704f4d3f3923d436179d600a"></a><!-- doxytag: member="pppoe.c::TAG_RELAY_SESSION_ID" ref="g133ab6c1704f4d3f3923d436179d600a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TAG_RELAY_SESSION_ID&nbsp;&nbsp;&nbsp;0x0110          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="gfae3f5ba34f283e4522a811a54e819bb"></a><!-- doxytag: member="pppoe.c::TAG_SERVICE_NAME" ref="gfae3f5ba34f283e4522a811a54e819bb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TAG_SERVICE_NAME&nbsp;&nbsp;&nbsp;0x0101          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g29f3108974a0b80ed09e7f27f2197fc4"></a><!-- doxytag: member="pppoe.c::TAG_SERVICE_NAME_ERROR" ref="g29f3108974a0b80ed09e7f27f2197fc4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TAG_SERVICE_NAME_ERROR&nbsp;&nbsp;&nbsp;0x0201          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="gbabbbd15b689c847451144807fed15df"></a><!-- doxytag: member="pppoe.c::TAG_VENDOR_SPECIFIC" ref="gbabbbd15b689c847451144807fed15df" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TAG_VENDOR_SPECIFIC&nbsp;&nbsp;&nbsp;0x0105          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g4b47af5e29d0ed8133514278c612d6a4"></a><!-- doxytag: member="pppoe.c::parse_func" ref="g4b47af5e29d0ed8133514278c612d6a4" args="(uint16_t type, uint16_t len, unsigned char *data, void *extra)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void <a class="el" href="group__PPPOEint.html#g4b47af5e29d0ed8133514278c612d6a4">parse_func</a>(uint16_t type, uint16_t len, unsigned char *data, void *extra)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g700f0702e53ca9653abee30b8df88708"></a><!-- doxytag: member="pppoe.c::check_room" ref="g700f0702e53ca9653abee30b8df88708" args="(PPPoEConnection *conn, unsigned char *cursor, unsigned char *start, uint16_t len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int check_room           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structPPPoEConnection.html">PPPoEConnection</a> *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&nbsp;</td>
          <td class="paramname"> <em>cursor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="gcc7a2dd57973045596aae64071f31791"></a><!-- doxytag: member="pppoe.c::close_intefaces" ref="gcc7a2dd57973045596aae64071f31791" args="(int n, PPPoEConnection *conns)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void close_intefaces           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structPPPoEConnection.html">PPPoEConnection</a> *&nbsp;</td>
          <td class="paramname"> <em>conns</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g687d38bff393787adc362a3e94c312b5"></a><!-- doxytag: member="pppoe.c::discovery" ref="g687d38bff393787adc362a3e94c312b5" args="(int n, PPPoEConnection *conns)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void discovery           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structPPPoEConnection.html">PPPoEConnection</a> *&nbsp;</td>
          <td class="paramname"> <em>conns</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g57d61bbba790855de9e51d6202cf1140"></a><!-- doxytag: member="pppoe.c::hd_scan_pppoe" ref="g57d61bbba790855de9e51d6202cf1140" args="(hd_data_t *hd_data2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void hd_scan_pppoe           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhd__data__t.html">hd_data_t</a> *&nbsp;</td>
          <td class="paramname"> <em>hd_data2</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="gd44f122286d46b550fb15f6f0beacfd3"></a><!-- doxytag: member="pppoe.c::open_interfaces" ref="gd44f122286d46b550fb15f6f0beacfd3" args="(int n, PPPoEConnection *conns)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int open_interfaces           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structPPPoEConnection.html">PPPoEConnection</a> *&nbsp;</td>
          <td class="paramname"> <em>conns</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g15139a78c786f9eee67705c183509ed8"></a><!-- doxytag: member="pppoe.c::packet_for_me" ref="g15139a78c786f9eee67705c183509ed8" args="(PPPoEConnection *conn, PPPoEPacket *packet)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int packet_for_me           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structPPPoEConnection.html">PPPoEConnection</a> *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structPPPoEPacket.html">PPPoEPacket</a> *&nbsp;</td>
          <td class="paramname"> <em>packet</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g3e62af8c32417cebd39acfe7e4421208"></a><!-- doxytag: member="pppoe.c::parse_hostuniq" ref="g3e62af8c32417cebd39acfe7e4421208" args="(uint16_t type, uint16_t len, unsigned char *data, void *extra)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void parse_hostuniq           </td>
          <td>(</td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>extra</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="gd37ecb87696166108f2f239671e24f6a"></a><!-- doxytag: member="pppoe.c::parse_packet" ref="gd37ecb87696166108f2f239671e24f6a" args="(PPPoEConnection *conn, PPPoEPacket *packet, parse_func *func, void *extra)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int parse_packet           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structPPPoEConnection.html">PPPoEConnection</a> *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structPPPoEPacket.html">PPPoEPacket</a> *&nbsp;</td>
          <td class="paramname"> <em>packet</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__PPPOEint.html#g4b47af5e29d0ed8133514278c612d6a4">parse_func</a> *&nbsp;</td>
          <td class="paramname"> <em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>extra</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g20e7f22a9ff6dc2b27a8b579b34a1570"></a><!-- doxytag: member="pppoe.c::parse_pado_tags" ref="g20e7f22a9ff6dc2b27a8b579b34a1570" args="(uint16_t type, uint16_t len, unsigned char *data, void *extra)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void parse_pado_tags           </td>
          <td>(</td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>extra</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g94e5d5c2a8b219c001f82fb02991bc60"></a><!-- doxytag: member="pppoe.c::receive_packet" ref="g94e5d5c2a8b219c001f82fb02991bc60" args="(int fd, PPPoEPacket *pkt, size_t *size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int receive_packet           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structPPPoEPacket.html">PPPoEPacket</a> *&nbsp;</td>
          <td class="paramname"> <em>pkt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g7e3d98da756c2c4377442dfa656a22ca"></a><!-- doxytag: member="pppoe.c::send_packet" ref="g7e3d98da756c2c4377442dfa656a22ca" args="(int fd, PPPoEPacket *pkt, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int send_packet           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structPPPoEPacket.html">PPPoEPacket</a> *&nbsp;</td>
          <td class="paramname"> <em>pkt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g4e263025a0fa9644a8ba8cf581fd9415"></a><!-- doxytag: member="pppoe.c::send_padi" ref="g4e263025a0fa9644a8ba8cf581fd9415" args="(int n, PPPoEConnection *conns)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int send_padi           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structPPPoEConnection.html">PPPoEConnection</a> *&nbsp;</td>
          <td class="paramname"> <em>conns</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="gc6fc1cf62580afa717f7470ab2359ccd"></a><!-- doxytag: member="pppoe.c::wait_for_pado" ref="gc6fc1cf62580afa717f7470ab2359ccd" args="(int n, PPPoEConnection *conns)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int wait_for_pado           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structPPPoEConnection.html">PPPoEConnection</a> *&nbsp;</td>
          <td class="paramname"> <em>conns</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
</body></html>