<!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: Network Emulator</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 <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 Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> </div> <div class="header"> <div class="headertitle"> <h1>Network Emulator</h1> </div> <div class="ingroups"><a class="el" href="group__qdisc__api.html">Queueing Discipline Modules</a></div></div> <div class="contents"> <p>For further documentation see <a href="http://linux-net.osdl.org/index.php/Netem.">http://linux-net.osdl.org/index.php/Netem.</a> </p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="member-group"></a> Queue Limit</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga661a9707b888023513f07db6a0fd5bf7">rtnl_netem_set_limit</a> (struct rtnl_qdisc *qdisc, int limit)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set limit of netem qdisc. <a href="#ga661a9707b888023513f07db6a0fd5bf7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#gaefded0a1f384695bc8b8ce70b08a505f">rtnl_netem_get_limit</a> (struct rtnl_qdisc *qdisc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get limit of netem qdisc. <a href="#gaefded0a1f384695bc8b8ce70b08a505f"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="member-group"></a> Packet Re-ordering</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga9e3ab40a6fca431e0d9915f82472bb66">rtnl_netem_set_gap</a> (struct rtnl_qdisc *qdisc, int gap)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set re-ordering gap of netem qdisc. <a href="#ga9e3ab40a6fca431e0d9915f82472bb66"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga4d3c60b52ec13050cf0698d92a3d5ca4">rtnl_netem_get_gap</a> (struct rtnl_qdisc *qdisc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get re-ordering gap of netem qdisc. <a href="#ga4d3c60b52ec13050cf0698d92a3d5ca4"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga5933843717b0486f59021fb82fffb27a">rtnl_netem_set_reorder_probability</a> (struct rtnl_qdisc *qdisc, int prob)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set re-ordering probability of netem qdisc. <a href="#ga5933843717b0486f59021fb82fffb27a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga54b9940f1f887cb4cf517e1f0c7e3601">rtnl_netem_get_reorder_probability</a> (struct rtnl_qdisc *qdisc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get re-ordering probability of netem qdisc. <a href="#ga54b9940f1f887cb4cf517e1f0c7e3601"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#gad0a51881b905fbb11f3f90003e04035e">rtnl_netem_set_reorder_correlation</a> (struct rtnl_qdisc *qdisc, int prob)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set re-order correlation probability of netem qdisc. <a href="#gad0a51881b905fbb11f3f90003e04035e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga26a960a5d53a88690706d352dcb68057">rtnl_netem_get_reorder_correlation</a> (struct rtnl_qdisc *qdisc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get re-ordering correlation probability of netem qdisc. <a href="#ga26a960a5d53a88690706d352dcb68057"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="member-group"></a> Packet Loss</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#gae397012613cf0d61703f0349c0f23ca9">rtnl_netem_set_loss</a> (struct rtnl_qdisc *qdisc, int prob)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set packet loss probability of netem qdisc. <a href="#gae397012613cf0d61703f0349c0f23ca9"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga31f2e9081c0f91ea5464db3ab389bd2e">rtnl_netem_get_loss</a> (struct rtnl_qdisc *qdisc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get packet loss probability of netem qdisc. <a href="#ga31f2e9081c0f91ea5464db3ab389bd2e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga9ebe5aab8daa744c18899078e614ff87">rtnl_netem_set_loss_correlation</a> (struct rtnl_qdisc *qdisc, int prob)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set packet loss correlation probability of netem qdisc. <a href="#ga9ebe5aab8daa744c18899078e614ff87"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#gad726d79cd1e5b06c7c0bd7b0c5bd9a44">rtnl_netem_get_loss_correlation</a> (struct rtnl_qdisc *qdisc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get packet loss correlation probability of netem qdisc. <a href="#gad726d79cd1e5b06c7c0bd7b0c5bd9a44"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="member-group"></a> Packet Duplication</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga469d0a474df3163ae97fad39e1b5f52c">rtnl_netem_set_duplicate</a> (struct rtnl_qdisc *qdisc, int prob)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set packet duplication probability of netem qdisc. <a href="#ga469d0a474df3163ae97fad39e1b5f52c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga0f3970c78197aa3984342aaf4b4fbf9b">rtnl_netem_get_duplicate</a> (struct rtnl_qdisc *qdisc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get packet duplication probability of netem qdisc. <a href="#ga0f3970c78197aa3984342aaf4b4fbf9b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga3a4a49f2b67e53dd0e73ac883e48ec55">rtnl_netem_set_duplicate_correlation</a> (struct rtnl_qdisc *qdisc, int prob)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set packet duplication correlation probability of netem qdisc. <a href="#ga3a4a49f2b67e53dd0e73ac883e48ec55"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga554f2e5f78287c98e301becaf32d9ddc">rtnl_netem_get_duplicate_correlation</a> (struct rtnl_qdisc *qdisc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get packet duplication correlation probability of netem qdisc. <a href="#ga554f2e5f78287c98e301becaf32d9ddc"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="member-group"></a> Packet Delay</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga45001d74ea8f2904abeb927c8910dc34">rtnl_netem_set_delay</a> (struct rtnl_qdisc *qdisc, int delay)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set packet delay of netem qdisc. <a href="#ga45001d74ea8f2904abeb927c8910dc34"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga88539d1c7297f6fcc8de7819c4eb9741">rtnl_netem_get_delay</a> (struct rtnl_qdisc *qdisc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get packet delay of netem qdisc. <a href="#ga88539d1c7297f6fcc8de7819c4eb9741"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga3505b795cf9d9f0ac9a2aaccab6d25f9">rtnl_netem_set_jitter</a> (struct rtnl_qdisc *qdisc, int jitter)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set packet delay jitter of netem qdisc. <a href="#ga3505b795cf9d9f0ac9a2aaccab6d25f9"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga7fed1f919d6e6a0169197a0ba085d56a">rtnl_netem_get_jitter</a> (struct rtnl_qdisc *qdisc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get packet delay jitter of netem qdisc. <a href="#ga7fed1f919d6e6a0169197a0ba085d56a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga63860affc4dfdfad81c579df17da38bb">rtnl_netem_set_delay_correlation</a> (struct rtnl_qdisc *qdisc, int prob)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set packet delay correlation probability of netem qdisc. <a href="#ga63860affc4dfdfad81c579df17da38bb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netem.html#ga315136c03e8a4d1bc64d80a885057734">rtnl_netem_get_delay_correlation</a> (struct rtnl_qdisc *qdisc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get packet delay correlation probability of netem qdisc. <a href="#ga315136c03e8a4d1bc64d80a885057734"></a><br/></td></tr> </table> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ga661a9707b888023513f07db6a0fd5bf7"></a><!-- doxytag: member="netem.c::rtnl_netem_set_limit" ref="ga661a9707b888023513f07db6a0fd5bf7" args="(struct rtnl_qdisc *qdisc, int limit)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_set_limit </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </td> <td class="paramname"><em>qdisc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>limit</em> </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>Netem qdisc to be modified. </td></tr> <tr><td class="paramname">limit</td><td>New limit in bytes. </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="netem_8c_source.html#l00165">165</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_alloc(qdisc); <span class="keywordflow">if</span> (!netem) <span class="keywordflow">return</span> nl_errno(ENOMEM); netem->qnm_limit = limit; netem->qnm_mask |= SCH_NETEM_ATTR_LIMIT; <span class="keywordflow">return</span> 0; } </pre></div> </div> </div> <a class="anchor" id="gaefded0a1f384695bc8b8ce70b08a505f"></a><!-- doxytag: member="netem.c::rtnl_netem_get_limit" ref="gaefded0a1f384695bc8b8ce70b08a505f" args="(struct rtnl_qdisc *qdisc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_get_limit </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </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>Netem qdisc. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Limit in bytes or a negative error code. </dd></dl> <p>Definition at line <a class="el" href="netem_8c_source.html#l00184">184</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_qdisc(qdisc); <span class="keywordflow">if</span> (netem && (netem->qnm_mask & SCH_NETEM_ATTR_LIMIT)) <span class="keywordflow">return</span> netem->qnm_limit; <span class="keywordflow">else</span> <span class="keywordflow">return</span> nl_errno(ENOENT); } </pre></div> </div> </div> <a class="anchor" id="ga9e3ab40a6fca431e0d9915f82472bb66"></a><!-- doxytag: member="netem.c::rtnl_netem_set_gap" ref="ga9e3ab40a6fca431e0d9915f82472bb66" args="(struct rtnl_qdisc *qdisc, int gap)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_set_gap </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </td> <td class="paramname"><em>qdisc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>gap</em> </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>Netem qdisc to be modified. </td></tr> <tr><td class="paramname">gap</td><td>New gap in number of packets. </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="netem_8c_source.html#l00208">208</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_alloc(qdisc); <span class="keywordflow">if</span> (!netem) <span class="keywordflow">return</span> nl_errno(ENOMEM); netem->qnm_gap = gap; netem->qnm_mask |= SCH_NETEM_ATTR_GAP; <span class="keywordflow">return</span> 0; } </pre></div> </div> </div> <a class="anchor" id="ga4d3c60b52ec13050cf0698d92a3d5ca4"></a><!-- doxytag: member="netem.c::rtnl_netem_get_gap" ref="ga4d3c60b52ec13050cf0698d92a3d5ca4" args="(struct rtnl_qdisc *qdisc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_get_gap </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </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>Netem qdisc. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Re-ordering gap in packets or a negative error code. </dd></dl> <p>Definition at line <a class="el" href="netem_8c_source.html#l00227">227</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_qdisc(qdisc); <span class="keywordflow">if</span> (netem && (netem->qnm_mask & SCH_NETEM_ATTR_GAP)) <span class="keywordflow">return</span> netem->qnm_gap; <span class="keywordflow">else</span> <span class="keywordflow">return</span> nl_errno(ENOENT); } </pre></div> </div> </div> <a class="anchor" id="ga5933843717b0486f59021fb82fffb27a"></a><!-- doxytag: member="netem.c::rtnl_netem_set_reorder_probability" ref="ga5933843717b0486f59021fb82fffb27a" args="(struct rtnl_qdisc *qdisc, int prob)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_set_reorder_probability </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </td> <td class="paramname"><em>qdisc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>prob</em> </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>Netem qdisc to be modified. </td></tr> <tr><td class="paramname">prob</td><td>New re-ordering probability. </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="netem_8c_source.html#l00244">244</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_alloc(qdisc); <span class="keywordflow">if</span> (!netem) <span class="keywordflow">return</span> nl_errno(ENOMEM); netem->qnm_ro.nmro_probability = prob; netem->qnm_mask |= SCH_NETEM_ATTR_RO_PROB; <span class="keywordflow">return</span> 0; } </pre></div> </div> </div> <a class="anchor" id="ga54b9940f1f887cb4cf517e1f0c7e3601"></a><!-- doxytag: member="netem.c::rtnl_netem_get_reorder_probability" ref="ga54b9940f1f887cb4cf517e1f0c7e3601" args="(struct rtnl_qdisc *qdisc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_get_reorder_probability </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </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>Netem qdisc. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Re-ordering probability or a negative error code. </dd></dl> <p>Definition at line <a class="el" href="netem_8c_source.html#l00263">263</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_qdisc(qdisc); <span class="keywordflow">if</span> (netem && (netem->qnm_mask & SCH_NETEM_ATTR_RO_PROB)) <span class="keywordflow">return</span> netem->qnm_ro.nmro_probability; <span class="keywordflow">else</span> <span class="keywordflow">return</span> nl_errno(ENOENT); } </pre></div> </div> </div> <a class="anchor" id="gad0a51881b905fbb11f3f90003e04035e"></a><!-- doxytag: member="netem.c::rtnl_netem_set_reorder_correlation" ref="gad0a51881b905fbb11f3f90003e04035e" args="(struct rtnl_qdisc *qdisc, int prob)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_set_reorder_correlation </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </td> <td class="paramname"><em>qdisc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>prob</em> </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>Netem qdisc to be modified. </td></tr> <tr><td class="paramname">prob</td><td>New re-ordering correlation probability. </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="netem_8c_source.html#l00280">280</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_alloc(qdisc); <span class="keywordflow">if</span> (!netem) <span class="keywordflow">return</span> nl_errno(ENOMEM); netem->qnm_ro.nmro_correlation = prob; netem->qnm_mask |= SCH_NETEM_ATTR_RO_CORR; <span class="keywordflow">return</span> 0; } </pre></div> </div> </div> <a class="anchor" id="ga26a960a5d53a88690706d352dcb68057"></a><!-- doxytag: member="netem.c::rtnl_netem_get_reorder_correlation" ref="ga26a960a5d53a88690706d352dcb68057" args="(struct rtnl_qdisc *qdisc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_get_reorder_correlation </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </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>Netem qdisc. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Re-ordering correlation probability or a negative error code. </dd></dl> <p>Definition at line <a class="el" href="netem_8c_source.html#l00299">299</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_qdisc(qdisc); <span class="keywordflow">if</span> (netem && (netem->qnm_mask & SCH_NETEM_ATTR_RO_CORR)) <span class="keywordflow">return</span> netem->qnm_ro.nmro_correlation; <span class="keywordflow">else</span> <span class="keywordflow">return</span> nl_errno(ENOENT); } </pre></div> </div> </div> <a class="anchor" id="gae397012613cf0d61703f0349c0f23ca9"></a><!-- doxytag: member="netem.c::rtnl_netem_set_loss" ref="gae397012613cf0d61703f0349c0f23ca9" args="(struct rtnl_qdisc *qdisc, int prob)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_set_loss </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </td> <td class="paramname"><em>qdisc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>prob</em> </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>Netem qdisc to be modified. </td></tr> <tr><td class="paramname">prob</td><td>New packet loss probability. </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="netem_8c_source.html#l00323">323</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_alloc(qdisc); <span class="keywordflow">if</span> (!netem) <span class="keywordflow">return</span> nl_errno(ENOMEM); netem->qnm_loss = prob; netem->qnm_mask |= SCH_NETEM_ATTR_LOSS; <span class="keywordflow">return</span> 0; } </pre></div> </div> </div> <a class="anchor" id="ga31f2e9081c0f91ea5464db3ab389bd2e"></a><!-- doxytag: member="netem.c::rtnl_netem_get_loss" ref="ga31f2e9081c0f91ea5464db3ab389bd2e" args="(struct rtnl_qdisc *qdisc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_get_loss </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </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>Netem qdisc. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Packet loss probability or a negative error code. </dd></dl> <p>Definition at line <a class="el" href="netem_8c_source.html#l00342">342</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_qdisc(qdisc); <span class="keywordflow">if</span> (netem && (netem->qnm_mask & SCH_NETEM_ATTR_LOSS)) <span class="keywordflow">return</span> netem->qnm_loss; <span class="keywordflow">else</span> <span class="keywordflow">return</span> nl_errno(ENOENT); } </pre></div> </div> </div> <a class="anchor" id="ga9ebe5aab8daa744c18899078e614ff87"></a><!-- doxytag: member="netem.c::rtnl_netem_set_loss_correlation" ref="ga9ebe5aab8daa744c18899078e614ff87" args="(struct rtnl_qdisc *qdisc, int prob)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_set_loss_correlation </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </td> <td class="paramname"><em>qdisc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>prob</em> </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>Netem qdisc to be modified. </td></tr> <tr><td class="paramname">prob</td><td>New packet loss correlation. </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="netem_8c_source.html#l00359">359</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_alloc(qdisc); <span class="keywordflow">if</span> (!netem) <span class="keywordflow">return</span> nl_errno(ENOMEM); netem->qnm_corr.nmc_loss = prob; netem->qnm_mask |= SCH_NETEM_ATTR_LOSS_CORR; <span class="keywordflow">return</span> 0; } </pre></div> </div> </div> <a class="anchor" id="gad726d79cd1e5b06c7c0bd7b0c5bd9a44"></a><!-- doxytag: member="netem.c::rtnl_netem_get_loss_correlation" ref="gad726d79cd1e5b06c7c0bd7b0c5bd9a44" args="(struct rtnl_qdisc *qdisc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_get_loss_correlation </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </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>Netem qdisc. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Packet loss correlation probability or a negative error code. </dd></dl> <p>Definition at line <a class="el" href="netem_8c_source.html#l00378">378</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_qdisc(qdisc); <span class="keywordflow">if</span> (netem && (netem->qnm_mask & SCH_NETEM_ATTR_LOSS_CORR)) <span class="keywordflow">return</span> netem->qnm_corr.nmc_loss; <span class="keywordflow">else</span> <span class="keywordflow">return</span> nl_errno(ENOENT); } </pre></div> </div> </div> <a class="anchor" id="ga469d0a474df3163ae97fad39e1b5f52c"></a><!-- doxytag: member="netem.c::rtnl_netem_set_duplicate" ref="ga469d0a474df3163ae97fad39e1b5f52c" args="(struct rtnl_qdisc *qdisc, int prob)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_set_duplicate </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </td> <td class="paramname"><em>qdisc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>prob</em> </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>Netem qdisc to be modified. </td></tr> <tr><td class="paramname">prob</td><td>New packet duplication probability. </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="netem_8c_source.html#l00402">402</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_alloc(qdisc); <span class="keywordflow">if</span> (!netem) <span class="keywordflow">return</span> nl_errno(ENOMEM); netem->qnm_duplicate = prob; netem->qnm_mask |= SCH_NETEM_ATTR_DUPLICATE; <span class="keywordflow">return</span> 0; } </pre></div> </div> </div> <a class="anchor" id="ga0f3970c78197aa3984342aaf4b4fbf9b"></a><!-- doxytag: member="netem.c::rtnl_netem_get_duplicate" ref="ga0f3970c78197aa3984342aaf4b4fbf9b" args="(struct rtnl_qdisc *qdisc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_get_duplicate </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </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>Netem qdisc. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Packet duplication probability or a negative error code. </dd></dl> <p>Definition at line <a class="el" href="netem_8c_source.html#l00421">421</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_qdisc(qdisc); <span class="keywordflow">if</span> (netem && (netem->qnm_mask & SCH_NETEM_ATTR_DUPLICATE)) <span class="keywordflow">return</span> netem->qnm_duplicate; <span class="keywordflow">else</span> <span class="keywordflow">return</span> nl_errno(ENOENT); } </pre></div> </div> </div> <a class="anchor" id="ga3a4a49f2b67e53dd0e73ac883e48ec55"></a><!-- doxytag: member="netem.c::rtnl_netem_set_duplicate_correlation" ref="ga3a4a49f2b67e53dd0e73ac883e48ec55" args="(struct rtnl_qdisc *qdisc, int prob)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_set_duplicate_correlation </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </td> <td class="paramname"><em>qdisc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>prob</em> </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>Netem qdisc to be modified. </td></tr> <tr><td class="paramname">prob</td><td>New packet duplication correlation probability. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on sucess or a negative error code. </dd></dl> <p>Definition at line <a class="el" href="netem_8c_source.html#l00438">438</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_alloc(qdisc); <span class="keywordflow">if</span> (!netem) <span class="keywordflow">return</span> nl_errno(ENOMEM); netem->qnm_corr.nmc_duplicate = prob; netem->qnm_mask |= SCH_NETEM_ATTR_DUP_CORR; <span class="keywordflow">return</span> 0; } </pre></div> </div> </div> <a class="anchor" id="ga554f2e5f78287c98e301becaf32d9ddc"></a><!-- doxytag: member="netem.c::rtnl_netem_get_duplicate_correlation" ref="ga554f2e5f78287c98e301becaf32d9ddc" args="(struct rtnl_qdisc *qdisc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_get_duplicate_correlation </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </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>Netem qdisc. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Packet duplication correlation probability or a negative error code. </dd></dl> <p>Definition at line <a class="el" href="netem_8c_source.html#l00457">457</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_qdisc(qdisc); <span class="keywordflow">if</span> (netem && (netem->qnm_mask & SCH_NETEM_ATTR_DUP_CORR)) <span class="keywordflow">return</span> netem->qnm_corr.nmc_duplicate; <span class="keywordflow">else</span> <span class="keywordflow">return</span> nl_errno(ENOENT); } </pre></div> </div> </div> <a class="anchor" id="ga45001d74ea8f2904abeb927c8910dc34"></a><!-- doxytag: member="netem.c::rtnl_netem_set_delay" ref="ga45001d74ea8f2904abeb927c8910dc34" args="(struct rtnl_qdisc *qdisc, int delay)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_set_delay </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </td> <td class="paramname"><em>qdisc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>delay</em> </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>Netem qdisc to be modified. </td></tr> <tr><td class="paramname">delay</td><td>New packet delay in micro seconds. </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="netem_8c_source.html#l00481">481</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <p>References <a class="el" href="utils_8c_source.html#l00429">nl_us2ticks()</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_alloc(qdisc); <span class="keywordflow">if</span> (!netem) <span class="keywordflow">return</span> nl_errno(ENOMEM); netem->qnm_latency = <a class="code" href="group__utils.html#gaf630014f3b23909759921b8ef9f85d3e" title="Convert micro seconds to ticks.">nl_us2ticks</a>(delay); netem->qnm_mask |= SCH_NETEM_ATTR_LATENCY; <span class="keywordflow">return</span> 0; } </pre></div> </div> </div> <a class="anchor" id="ga88539d1c7297f6fcc8de7819c4eb9741"></a><!-- doxytag: member="netem.c::rtnl_netem_get_delay" ref="ga88539d1c7297f6fcc8de7819c4eb9741" args="(struct rtnl_qdisc *qdisc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_get_delay </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </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>Netem qdisc. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Packet delay in micro seconds or a negative error code. </dd></dl> <p>Definition at line <a class="el" href="netem_8c_source.html#l00500">500</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <p>References <a class="el" href="utils_8c_source.html#l00440">nl_ticks2us()</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_qdisc(qdisc); <span class="keywordflow">if</span> (netem && (netem->qnm_mask & SCH_NETEM_ATTR_LATENCY)) <span class="keywordflow">return</span> <a class="code" href="group__utils.html#gade35baf670a48177d9469905159089e7" title="Convert ticks to micro seconds.">nl_ticks2us</a>(netem->qnm_latency); <span class="keywordflow">else</span> <span class="keywordflow">return</span> nl_errno(ENOENT); } </pre></div> </div> </div> <a class="anchor" id="ga3505b795cf9d9f0ac9a2aaccab6d25f9"></a><!-- doxytag: member="netem.c::rtnl_netem_set_jitter" ref="ga3505b795cf9d9f0ac9a2aaccab6d25f9" args="(struct rtnl_qdisc *qdisc, int jitter)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_set_jitter </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </td> <td class="paramname"><em>qdisc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>jitter</em> </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>Netem qdisc to be modified. </td></tr> <tr><td class="paramname">jitter</td><td>New packet delay jitter in micro seconds. </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="netem_8c_source.html#l00517">517</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <p>References <a class="el" href="utils_8c_source.html#l00429">nl_us2ticks()</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_alloc(qdisc); <span class="keywordflow">if</span> (!netem) <span class="keywordflow">return</span> nl_errno(ENOMEM); netem->qnm_jitter = <a class="code" href="group__utils.html#gaf630014f3b23909759921b8ef9f85d3e" title="Convert micro seconds to ticks.">nl_us2ticks</a>(jitter); netem->qnm_mask |= SCH_NETEM_ATTR_JITTER; <span class="keywordflow">return</span> 0; } </pre></div> </div> </div> <a class="anchor" id="ga7fed1f919d6e6a0169197a0ba085d56a"></a><!-- doxytag: member="netem.c::rtnl_netem_get_jitter" ref="ga7fed1f919d6e6a0169197a0ba085d56a" args="(struct rtnl_qdisc *qdisc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_get_jitter </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </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>Netem qdisc. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Packet delay jitter in micro seconds or a negative error code. </dd></dl> <p>Definition at line <a class="el" href="netem_8c_source.html#l00536">536</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <p>References <a class="el" href="utils_8c_source.html#l00440">nl_ticks2us()</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_qdisc(qdisc); <span class="keywordflow">if</span> (netem && (netem->qnm_mask & SCH_NETEM_ATTR_JITTER)) <span class="keywordflow">return</span> <a class="code" href="group__utils.html#gade35baf670a48177d9469905159089e7" title="Convert ticks to micro seconds.">nl_ticks2us</a>(netem->qnm_jitter); <span class="keywordflow">else</span> <span class="keywordflow">return</span> nl_errno(ENOENT); } </pre></div> </div> </div> <a class="anchor" id="ga63860affc4dfdfad81c579df17da38bb"></a><!-- doxytag: member="netem.c::rtnl_netem_set_delay_correlation" ref="ga63860affc4dfdfad81c579df17da38bb" args="(struct rtnl_qdisc *qdisc, int prob)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_set_delay_correlation </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </td> <td class="paramname"><em>qdisc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>prob</em> </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>Netem qdisc to be modified. </td></tr> <tr><td class="paramname">prob</td><td>New packet delay correlation probability. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="netem_8c_source.html#l00552">552</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_alloc(qdisc); <span class="keywordflow">if</span> (!netem) <span class="keywordflow">return</span> nl_errno(ENOMEM); netem->qnm_corr.nmc_delay = prob; netem->qnm_mask |= SCH_NETEM_ATTR_DELAY_CORR; <span class="keywordflow">return</span> 0; } </pre></div> </div> </div> <a class="anchor" id="ga315136c03e8a4d1bc64d80a885057734"></a><!-- doxytag: member="netem.c::rtnl_netem_get_delay_correlation" ref="ga315136c03e8a4d1bc64d80a885057734" args="(struct rtnl_qdisc *qdisc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_netem_get_delay_correlation </td> <td>(</td> <td class="paramtype">struct rtnl_qdisc * </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>Netem qdisc. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Packet delay correlation probability or a negative error code. </dd></dl> <p>Definition at line <a class="el" href="netem_8c_source.html#l00571">571</a> of file <a class="el" href="netem_8c_source.html">netem.c</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtnl_netem *netem; netem = netem_qdisc(qdisc); <span class="keywordflow">if</span> (netem && (netem->qnm_mask & SCH_NETEM_ATTR_DELAY_CORR)) <span class="keywordflow">return</span> netem->qnm_corr.nmc_delay; <span class="keywordflow">else</span> <span class="keywordflow">return</span> nl_errno(ENOENT); } </pre></div> </div> </div> </div> <hr class="footer"/><address class="footer"><small>Generated on Mon Mar 21 2011 for libnl by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address> </body> </html>