Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 87b89b73c41f4440bb86afd421c7548f > files > 142

libnl-devel-1.1-14.fc14.x86_64.rpm

<!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"/>
<title>libnl: Hierachical Token Bucket (HTB)</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">libnl&#160;<span id="projectnumber">1.1</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="headertitle">
<h1>Hierachical Token Bucket (HTB)</h1>  </div>
<div class="ingroups"><a class="el" href="group__qdisc__api.html">Queueing Discipline Modules</a> &#124; <a class="el" href="group__class__api.html">Class Modules</a></div></div>
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="member-group"></a>
Attribute Modifications</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52fa44471d9c874073983874962602c2"></a><!-- doxytag: member="htb::rtnl_htb_set_rate2quantum" ref="ga52fa44471d9c874073983874962602c2" args="(struct rtnl_qdisc *qdisc, uint32_t rate2quantum)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>rtnl_htb_set_rate2quantum</b> (struct rtnl_qdisc *qdisc, uint32_t rate2quantum)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__htb.html#gaf0cdca21169f1991bad47c9769befe03">rtnl_htb_set_defcls</a> (struct rtnl_qdisc *qdisc, uint32_t defcls)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set default class of the htb qdisc to the specified value.  <a href="#gaf0cdca21169f1991bad47c9769befe03"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad98061fde49ff1bcb26a1a871006156c"></a><!-- doxytag: member="htb::rtnl_htb_set_prio" ref="gad98061fde49ff1bcb26a1a871006156c" args="(struct rtnl_class *class, uint32_t prio)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>rtnl_htb_set_prio</b> (struct rtnl_class *class, uint32_t prio)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__htb.html#ga7d14226b20de776d11f3dcce18baed9e">rtnl_htb_set_mtu</a> (struct rtnl_class *class, uint32_t mtu)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set MTU of the data link.  <a href="#ga7d14226b20de776d11f3dcce18baed9e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__htb.html#ga1e874d42de668acd322b3f2f911b0e43">rtnl_htb_set_rate</a> (struct rtnl_class *class, uint32_t rate)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set rate of HTB class.  <a href="#ga1e874d42de668acd322b3f2f911b0e43"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__htb.html#gabdaa4646affdfa86f64f5367ebca65a6">rtnl_htb_set_ceil</a> (struct rtnl_class *class, uint32_t ceil)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set ceil of HTB class.  <a href="#gabdaa4646affdfa86f64f5367ebca65a6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__htb.html#ga6b65939906ed029b8db53c11dd63d40c">rtnl_htb_set_rbuffer</a> (struct rtnl_class *class, uint32_t rbuffer)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set size of the rate bucket of HTB class.  <a href="#ga6b65939906ed029b8db53c11dd63d40c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__htb.html#ga5d09a846dc0795860355d9e0c7ae41f7">rtnl_htb_set_cbuffer</a> (struct rtnl_class *class, uint32_t cbuffer)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set size of the ceil bucket of HTB class.  <a href="#ga5d09a846dc0795860355d9e0c7ae41f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__htb.html#ga12c4a8134893071e1a2dcfb895865d63">rtnl_htb_set_quantum</a> (struct rtnl_class *class, uint32_t quantum)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set how much bytes to serve from leaf at once of HTB class {use r2q}.  <a href="#ga12c4a8134893071e1a2dcfb895865d63"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__htb.html#ga5d60a7d65134e214a8ec7146073f2107">rtnl_htb_set_overhead</a> (struct rtnl_class *class, uint8_t overhead)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set per-packet size overhead used in rate computations of HTB class.  <a href="#ga5d60a7d65134e214a8ec7146073f2107"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__htb.html#ga211078d37498b663d99a463400fb3b88">rtnl_htb_set_mpu</a> (struct rtnl_class *class, uint8_t mpu)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the minimum packet size used in rate computations of HTB class.  <a href="#ga211078d37498b663d99a463400fb3b88"></a><br/></td></tr>
</table>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gaf0cdca21169f1991bad47c9769befe03"></a><!-- doxytag: member="htb.c::rtnl_htb_set_defcls" ref="gaf0cdca21169f1991bad47c9769befe03" args="(struct rtnl_qdisc *qdisc, uint32_t defcls)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void rtnl_htb_set_defcls </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_qdisc *&#160;</td>
          <td class="paramname"><em>qdisc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>defcls</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">qdisc</td><td>qdisc to change </td></tr>
    <tr><td class="paramname">defcls</td><td>new default class </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="htb_8c_source.html#l00377">377</a> of file <a class="el" href="htb_8c_source.html">htb.c</a>.</p>
<div class="fragment"><pre class="fragment">{
        <span class="keyword">struct </span>rtnl_htb_qdisc *d = htb_qdisc(qdisc);
        <span class="keywordflow">if</span> (d == NULL)
                <span class="keywordflow">return</span>;

        d-&gt;qh_defcls = defcls;
        d-&gt;qh_mask |= SCH_HTB_HAS_DEFCLS;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ga7d14226b20de776d11f3dcce18baed9e"></a><!-- doxytag: member="htb.c::rtnl_htb_set_mtu" ref="ga7d14226b20de776d11f3dcce18baed9e" args="(struct rtnl_class *class, uint32_t mtu)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void rtnl_htb_set_mtu </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_class *&#160;</td>
          <td class="paramname"><em>class</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>mtu</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">class</td><td>HTB class to be modified. </td></tr>
    <tr><td class="paramname">mtu</td><td>New MTU in bytes.</td></tr>
  </table>
  </dd>
</dl>
<p>Sets MTU of the data link controlled by the HTB class. If not set, the Ethernet MTU (1600) is used. </p>

<p>Definition at line <a class="el" href="htb_8c_source.html#l00405">405</a> of file <a class="el" href="htb_8c_source.html">htb.c</a>.</p>
<div class="fragment"><pre class="fragment">{
        <span class="keyword">struct </span>rtnl_htb_class *d = htb_class(<span class="keyword">class</span>);
        <span class="keywordflow">if</span> (d == NULL)
                <span class="keywordflow">return</span>;

        d-&gt;ch_mtu = mtu;
        d-&gt;ch_mask |= SCH_HTB_HAS_MTU;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ga1e874d42de668acd322b3f2f911b0e43"></a><!-- doxytag: member="htb.c::rtnl_htb_set_rate" ref="ga1e874d42de668acd322b3f2f911b0e43" args="(struct rtnl_class *class, uint32_t rate)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void rtnl_htb_set_rate </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_class *&#160;</td>
          <td class="paramname"><em>class</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>rate</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">class</td><td>HTB class to be modified. </td></tr>
    <tr><td class="paramname">rate</td><td>New rate in bytes per second. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="htb_8c_source.html#l00420">420</a> of file <a class="el" href="htb_8c_source.html">htb.c</a>.</p>
<div class="fragment"><pre class="fragment">{
        <span class="keyword">struct </span>rtnl_htb_class *d = htb_class(<span class="keyword">class</span>);
        <span class="keywordflow">if</span> (d == NULL)
                <span class="keywordflow">return</span>;

        d-&gt;ch_rate.rs_cell_log = UINT8_MAX; <span class="comment">/* use default value */</span>
        d-&gt;ch_rate.rs_rate = rate;
        d-&gt;ch_mask |= SCH_HTB_HAS_RATE;
}
</pre></div>
</div>
</div>
<a class="anchor" id="gabdaa4646affdfa86f64f5367ebca65a6"></a><!-- doxytag: member="htb.c::rtnl_htb_set_ceil" ref="gabdaa4646affdfa86f64f5367ebca65a6" args="(struct rtnl_class *class, uint32_t ceil)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void rtnl_htb_set_ceil </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_class *&#160;</td>
          <td class="paramname"><em>class</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>ceil</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">class</td><td>HTB class to be modified. </td></tr>
    <tr><td class="paramname">ceil</td><td>New ceil in bytes per second. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="htb_8c_source.html#l00436">436</a> of file <a class="el" href="htb_8c_source.html">htb.c</a>.</p>
<div class="fragment"><pre class="fragment">{
        <span class="keyword">struct </span>rtnl_htb_class *d = htb_class(<span class="keyword">class</span>);
        <span class="keywordflow">if</span> (d == NULL)
                <span class="keywordflow">return</span>;

        d-&gt;ch_ceil.rs_cell_log = UINT8_MAX; <span class="comment">/* use default value */</span>
        d-&gt;ch_ceil.rs_rate = ceil;
        d-&gt;ch_mask |= SCH_HTB_HAS_CEIL;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ga6b65939906ed029b8db53c11dd63d40c"></a><!-- doxytag: member="htb.c::rtnl_htb_set_rbuffer" ref="ga6b65939906ed029b8db53c11dd63d40c" args="(struct rtnl_class *class, uint32_t rbuffer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void rtnl_htb_set_rbuffer </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_class *&#160;</td>
          <td class="paramname"><em>class</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>rbuffer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">class</td><td>HTB class to be modified. </td></tr>
    <tr><td class="paramname">rbuffer</td><td>New size in bytes. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="htb_8c_source.html#l00452">452</a> of file <a class="el" href="htb_8c_source.html">htb.c</a>.</p>
<div class="fragment"><pre class="fragment">{
        <span class="keyword">struct </span>rtnl_htb_class *d = htb_class(<span class="keyword">class</span>);
        <span class="keywordflow">if</span> (d == NULL)
                <span class="keywordflow">return</span>;

        d-&gt;ch_rbuffer = rbuffer;
        d-&gt;ch_mask |= SCH_HTB_HAS_RBUFFER;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ga5d09a846dc0795860355d9e0c7ae41f7"></a><!-- doxytag: member="htb.c::rtnl_htb_set_cbuffer" ref="ga5d09a846dc0795860355d9e0c7ae41f7" args="(struct rtnl_class *class, uint32_t cbuffer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void rtnl_htb_set_cbuffer </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_class *&#160;</td>
          <td class="paramname"><em>class</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>cbuffer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">class</td><td>HTB class to be modified. </td></tr>
    <tr><td class="paramname">cbuffer</td><td>New size in bytes. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="htb_8c_source.html#l00467">467</a> of file <a class="el" href="htb_8c_source.html">htb.c</a>.</p>
<div class="fragment"><pre class="fragment">{
        <span class="keyword">struct </span>rtnl_htb_class *d = htb_class(<span class="keyword">class</span>);
        <span class="keywordflow">if</span> (d == NULL)
                <span class="keywordflow">return</span>;

        d-&gt;ch_cbuffer = cbuffer;
        d-&gt;ch_mask |= SCH_HTB_HAS_CBUFFER;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ga12c4a8134893071e1a2dcfb895865d63"></a><!-- doxytag: member="htb.c::rtnl_htb_set_quantum" ref="ga12c4a8134893071e1a2dcfb895865d63" args="(struct rtnl_class *class, uint32_t quantum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void rtnl_htb_set_quantum </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_class *&#160;</td>
          <td class="paramname"><em>class</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>quantum</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">class</td><td>HTB class to be modified. </td></tr>
    <tr><td class="paramname">quantum</td><td>New size in bytes. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="htb_8c_source.html#l00482">482</a> of file <a class="el" href="htb_8c_source.html">htb.c</a>.</p>
<div class="fragment"><pre class="fragment">{
        <span class="keyword">struct </span>rtnl_htb_class *d = htb_class(<span class="keyword">class</span>);
        <span class="keywordflow">if</span> (d == NULL)
                <span class="keywordflow">return</span>;

        d-&gt;ch_quantum = quantum;
        d-&gt;ch_mask |= SCH_HTB_HAS_QUANTUM;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ga5d60a7d65134e214a8ec7146073f2107"></a><!-- doxytag: member="htb.c::rtnl_htb_set_overhead" ref="ga5d60a7d65134e214a8ec7146073f2107" args="(struct rtnl_class *class, uint8_t overhead)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void rtnl_htb_set_overhead </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_class *&#160;</td>
          <td class="paramname"><em>class</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>overhead</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">class</td><td>HTB class to be modified. </td></tr>
    <tr><td class="paramname">overhead</td><td>Size in bytes. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="htb_8c_source.html#l00497">497</a> of file <a class="el" href="htb_8c_source.html">htb.c</a>.</p>
<div class="fragment"><pre class="fragment">{
        <span class="keyword">struct </span>rtnl_htb_class *d = htb_class(<span class="keyword">class</span>);
        <span class="keywordflow">if</span> (d == NULL)
                <span class="keywordflow">return</span>;

        d-&gt;ch_overhead = overhead;
        d-&gt;ch_mask |= SCH_HTB_HAS_OVERHEAD;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ga211078d37498b663d99a463400fb3b88"></a><!-- doxytag: member="htb.c::rtnl_htb_set_mpu" ref="ga211078d37498b663d99a463400fb3b88" args="(struct rtnl_class *class, uint8_t mpu)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void rtnl_htb_set_mpu </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_class *&#160;</td>
          <td class="paramname"><em>class</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>mpu</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">class</td><td>HTB class to be modified. </td></tr>
    <tr><td class="paramname">mpu</td><td>Size in bytes. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="htb_8c_source.html#l00512">512</a> of file <a class="el" href="htb_8c_source.html">htb.c</a>.</p>
<div class="fragment"><pre class="fragment">{
        <span class="keyword">struct </span>rtnl_htb_class *d = htb_class(<span class="keyword">class</span>);
        <span class="keywordflow">if</span> (d == NULL)
                <span class="keywordflow">return</span>;

        d-&gt;ch_mpu = mpu;
        d-&gt;ch_mask |= SCH_HTB_HAS_MPU;
}
</pre></div>
</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Mon Mar 21 2011 for libnl by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
</body>
</html>