Sophie

Sophie

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

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: (Fast) Prio</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>(Fast) Prio</h1>  </div>
<div class="ingroups"><a class="el" href="group__qdisc__api.html">Queueing Discipline Modules</a></div></div>
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="member-group"></a>
Attribute Modification</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__prio.html#ga80b4956633355616b5e18058b255cf13">rtnl_qdisc_prio_set_bands</a> (struct rtnl_qdisc *qdisc, int bands)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set number of bands of PRIO qdisc.  <a href="#ga80b4956633355616b5e18058b255cf13"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__prio.html#ga1cef727802e1e61e8816393325010b38">rtnl_qdisc_prio_get_bands</a> (struct rtnl_qdisc *qdisc)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get number of bands of PRIO qdisc.  <a href="#ga1cef727802e1e61e8816393325010b38"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__prio.html#ga7680f23d8a51ffe25269583a103043df">rtnl_qdisc_prio_set_priomap</a> (struct rtnl_qdisc *qdisc, uint8_t priomap[], int len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set priomap of the PRIO qdisc.  <a href="#ga7680f23d8a51ffe25269583a103043df"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__prio.html#gadb3e2051a88661afe1079d82e667a31c">rtnl_qdisc_prio_get_priomap</a> (struct rtnl_qdisc *qdisc)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get priomap of a PRIO qdisc.  <a href="#gadb3e2051a88661afe1079d82e667a31c"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Priority Band Translations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__prio.html#ga0b10d3d945bdd99326641497d17cb120">rtnl_prio2str</a> (int prio, char *buf, size_t size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert priority to character string.  <a href="#ga0b10d3d945bdd99326641497d17cb120"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__prio.html#ga39c08fecc9f718ddc8c3de101d76c01b">rtnl_str2prio</a> (const char *name)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert character string to priority.  <a href="#ga39c08fecc9f718ddc8c3de101d76c01b"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Default Values</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga610ef2f0df8961c7ad043e9b6e70b1ee"></a><!-- doxytag: member="prio::QDISC_PRIO_DEFAULT_BANDS" ref="ga610ef2f0df8961c7ad043e9b6e70b1ee" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__prio.html#ga610ef2f0df8961c7ad043e9b6e70b1ee">QDISC_PRIO_DEFAULT_BANDS</a>&#160;&#160;&#160;3</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default number of bands. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6de0e721f15c4671f8cee9a35d74e400"></a><!-- doxytag: member="prio::QDISC_PRIO_DEFAULT_PRIOMAP" ref="ga6de0e721f15c4671f8cee9a35d74e400" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__prio.html#ga6de0e721f15c4671f8cee9a35d74e400">QDISC_PRIO_DEFAULT_PRIOMAP</a>&#160;&#160;&#160;{ 1, 2, 2, 2, 1, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default priority mapping. <br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<dl class="user"><dt><b>1) Typical PRIO configuration</b></dt><dd><div class="fragment"><pre class="fragment"> <span class="comment">// Specify the maximal number of bands to be used for this PRIO qdisc.</span>
 <a class="code" href="group__prio.html#ga80b4956633355616b5e18058b255cf13" title="Set number of bands of PRIO qdisc.">rtnl_qdisc_prio_set_bands</a>(qdisc, <a class="code" href="group__prio.html#ga610ef2f0df8961c7ad043e9b6e70b1ee" title="Default number of bands.">QDISC_PRIO_DEFAULT_BANDS</a>);

 <span class="comment">// Provide a map assigning each priority to a band number.</span>
 uint8_t map[] = <a class="code" href="group__prio.html#ga6de0e721f15c4671f8cee9a35d74e400" title="Default priority mapping.">QDISC_PRIO_DEFAULT_PRIOMAP</a>;
 <a class="code" href="group__prio.html#ga7680f23d8a51ffe25269583a103043df" title="Set priomap of the PRIO qdisc.">rtnl_qdisc_prio_set_priomap</a>(qdisc, map, <span class="keyword">sizeof</span>(map));
</pre></div> </dd></dl>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga80b4956633355616b5e18058b255cf13"></a><!-- doxytag: member="prio.c::rtnl_qdisc_prio_set_bands" ref="ga80b4956633355616b5e18058b255cf13" args="(struct rtnl_qdisc *qdisc, int bands)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int rtnl_qdisc_prio_set_bands </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">int&#160;</td>
          <td class="paramname"><em>bands</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>PRIO qdisc to be modified. </td></tr>
    <tr><td class="paramname">bands</td><td>New number of bands. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success or a negative error code. </dd></dl>

<p>Definition at line <a class="el" href="prio_8c_source.html#l00170">170</a> of file <a class="el" href="prio_8c_source.html">prio.c</a>.</p>
<div class="fragment"><pre class="fragment">{
        <span class="keyword">struct </span>rtnl_prio *prio;
        
        prio = prio_alloc(qdisc);
        <span class="keywordflow">if</span> (!prio)
                <span class="keywordflow">return</span> nl_errno(ENOMEM);

        prio-&gt;qp_bands = bands;
        prio-&gt;qp_mask |= SCH_PRIO_ATTR_BANDS;

        <span class="keywordflow">return</span> 0;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ga1cef727802e1e61e8816393325010b38"></a><!-- doxytag: member="prio.c::rtnl_qdisc_prio_get_bands" ref="ga1cef727802e1e61e8816393325010b38" args="(struct rtnl_qdisc *qdisc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int rtnl_qdisc_prio_get_bands </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_qdisc *&#160;</td>
          <td class="paramname"><em>qdisc</em></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>PRIO qdisc. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Number of bands or a negative error code. </dd></dl>

<p>Definition at line <a class="el" href="prio_8c_source.html#l00189">189</a> of file <a class="el" href="prio_8c_source.html">prio.c</a>.</p>
<div class="fragment"><pre class="fragment">{
        <span class="keyword">struct </span>rtnl_prio *prio;

        prio = prio_qdisc(qdisc);
        <span class="keywordflow">if</span> (prio &amp;&amp; prio-&gt;qp_mask &amp; SCH_PRIO_ATTR_BANDS)
                <span class="keywordflow">return</span> prio-&gt;qp_bands;
        <span class="keywordflow">else</span>
                <span class="keywordflow">return</span> nl_errno(ENOMEM);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ga7680f23d8a51ffe25269583a103043df"></a><!-- doxytag: member="prio.c::rtnl_qdisc_prio_set_priomap" ref="ga7680f23d8a51ffe25269583a103043df" args="(struct rtnl_qdisc *qdisc, uint8_t priomap[], int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int rtnl_qdisc_prio_set_priomap </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">uint8_t&#160;</td>
          <td class="paramname"><em>priomap</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</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>PRIO qdisc to be modified. </td></tr>
    <tr><td class="paramname">priomap</td><td>New priority mapping. </td></tr>
    <tr><td class="paramname">len</td><td>Length of priomap (# of elements). </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success or a negative error code. </dd></dl>

<p>Definition at line <a class="el" href="prio_8c_source.html#l00207">207</a> of file <a class="el" href="prio_8c_source.html">prio.c</a>.</p>
<div class="fragment"><pre class="fragment">{
        <span class="keyword">struct </span>rtnl_prio *prio;
        <span class="keywordtype">int</span> i;

        prio = prio_alloc(qdisc);
        <span class="keywordflow">if</span> (!prio)
                <span class="keywordflow">return</span> nl_errno(ENOMEM);

        <span class="keywordflow">if</span> (!(prio-&gt;qp_mask &amp; SCH_PRIO_ATTR_BANDS))
                <span class="keywordflow">return</span> nl_error(EINVAL, <span class="stringliteral">&quot;Set number of bands first&quot;</span>);

        <span class="keywordflow">if</span> ((len / <span class="keyword">sizeof</span>(uint8_t)) &gt; (TC_PRIO_MAX+1))
                <span class="keywordflow">return</span> nl_error(ERANGE, <span class="stringliteral">&quot;priomap length out of bounds&quot;</span>);

        <span class="keywordflow">for</span> (i = 0; i &lt;= TC_PRIO_MAX; i++) {
                <span class="keywordflow">if</span> (priomap[i] &gt; prio-&gt;qp_bands)
                        <span class="keywordflow">return</span> nl_error(ERANGE, <span class="stringliteral">&quot;priomap element %d &quot;</span> \
                            <span class="stringliteral">&quot;out of bounds, increase bands number&quot;</span>);
        }

        memcpy(prio-&gt;qp_priomap, priomap, len);
        prio-&gt;qp_mask |= SCH_PRIO_ATTR_PRIOMAP;

        <span class="keywordflow">return</span> 0;
}
</pre></div>
</div>
</div>
<a class="anchor" id="gadb3e2051a88661afe1079d82e667a31c"></a><!-- doxytag: member="prio.c::rtnl_qdisc_prio_get_priomap" ref="gadb3e2051a88661afe1079d82e667a31c" args="(struct rtnl_qdisc *qdisc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* rtnl_qdisc_prio_get_priomap </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_qdisc *&#160;</td>
          <td class="paramname"><em>qdisc</em></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>PRIO qdisc. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Priority mapping as array of size TC_PRIO_MAX+1 or NULL if an error occured. </dd></dl>

<p>Definition at line <a class="el" href="prio_8c_source.html#l00241">241</a> of file <a class="el" href="prio_8c_source.html">prio.c</a>.</p>
<div class="fragment"><pre class="fragment">{
        <span class="keyword">struct </span>rtnl_prio *prio;

        prio = prio_qdisc(qdisc);
        <span class="keywordflow">if</span> (prio &amp;&amp; prio-&gt;qp_mask &amp; SCH_PRIO_ATTR_PRIOMAP)
                <span class="keywordflow">return</span> prio-&gt;qp_priomap;
        <span class="keywordflow">else</span> {
                nl_errno(ENOENT);
                <span class="keywordflow">return</span> NULL;
        }
}
</pre></div>
</div>
</div>
<a class="anchor" id="ga0b10d3d945bdd99326641497d17cb120"></a><!-- doxytag: member="prio.c::rtnl_prio2str" ref="ga0b10d3d945bdd99326641497d17cb120" args="(int prio, char *buf, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* rtnl_prio2str </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>prio</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</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">prio</td><td>Priority. </td></tr>
    <tr><td class="paramname">buf</td><td>Destination buffer </td></tr>
    <tr><td class="paramname">size</td><td>Size of destination buffer.</td></tr>
  </table>
  </dd>
</dl>
<p>Converts a priority to a character string and stores the result in the specified destination buffer.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Name of priority as character string. </dd></dl>

<p>Definition at line <a class="el" href="prio_8c_source.html#l00281">281</a> of file <a class="el" href="prio_8c_source.html">prio.c</a>.</p>
<div class="fragment"><pre class="fragment">{
        <span class="keywordflow">return</span> __type2str(prio, buf, size, prios, ARRAY_SIZE(prios));
}
</pre></div>
</div>
</div>
<a class="anchor" id="ga39c08fecc9f718ddc8c3de101d76c01b"></a><!-- doxytag: member="prio.c::rtnl_str2prio" ref="ga39c08fecc9f718ddc8c3de101d76c01b" args="(const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int rtnl_str2prio </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em></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">name</td><td>Name of priority.</td></tr>
  </table>
  </dd>
</dl>
<p>Converts the provided character string specifying a priority to the corresponding numeric value.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Numeric priority or a negative value if no match was found. </dd></dl>

<p>Definition at line <a class="el" href="prio_8c_source.html#l00295">295</a> of file <a class="el" href="prio_8c_source.html">prio.c</a>.</p>
<div class="fragment"><pre class="fragment">{
        <span class="keywordflow">return</span> __str2type(name, prios, ARRAY_SIZE(prios));
}
</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>