<!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: Routing Netlink</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="summary"> <a href="#groups">Modules</a> </div> <div class="headertitle"> <h1>Routing Netlink</h1> </div> <div class="ingroups"><a class="el" href="group__nlfam.html">Netlink Families</a></div></div> <div class="contents"> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="groups"></a> Modules</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtaddr.html">Addresses</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html">Links (Interfaces)</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__neigh.html">Neighbours</a></td></tr> <p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>The neighbour table establishes bindings between protocol addresses and link layer addresses for hosts sharing the same physical link. </p> <br/></td></tr> </p> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__neightbl.html">Neighbour Tables</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__route.html">Routing</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rule.html">Routing Rules</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__tc.html">Traffic Control</a></td></tr> <tr><td colspan="2"><h2><a name="member-group"></a> Sending</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtnl.html#ga1fcd1a88d7f810c50849f13d97b5fe10">nl_rtgen_request</a> (struct nl_handle *handle, int type, int family, int flags)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Send routing netlink request message. <a href="#ga1fcd1a88d7f810c50849f13d97b5fe10"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="member-group"></a> Routing Type Translations</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab854751c3b89312d883c563bbe7b4e00"></a><!-- doxytag: member="rtnl::nl_rtntype2str" ref="gab854751c3b89312d883c563bbe7b4e00" args="(int type, char *buf, size_t size)" --> char * </td><td class="memItemRight" valign="bottom"><b>nl_rtntype2str</b> (int type, char *buf, size_t size)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf2ee04cb0d6c6b11a898ba21f92027bf"></a><!-- doxytag: member="rtnl::nl_str2rtntype" ref="gaf2ee04cb0d6c6b11a898ba21f92027bf" args="(const char *name)" --> int </td><td class="memItemRight" valign="bottom"><b>nl_str2rtntype</b> (const char *name)</td></tr> <tr><td colspan="2"><h2><a name="member-group"></a> Scope Translations</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5caff892ea8c6aa222399567cf5147bf"></a><!-- doxytag: member="rtnl::rtnl_scope2str" ref="ga5caff892ea8c6aa222399567cf5147bf" args="(int scope, char *buf, size_t size)" --> char * </td><td class="memItemRight" valign="bottom"><b>rtnl_scope2str</b> (int scope, char *buf, size_t size)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaa2913cc82aa728bca41aaad8b3fdd14"></a><!-- doxytag: member="rtnl::rtnl_str2scope" ref="gaaa2913cc82aa728bca41aaad8b3fdd14" args="(const char *name)" --> int </td><td class="memItemRight" valign="bottom"><b>rtnl_str2scope</b> (const char *name)</td></tr> <tr><td colspan="2"><h2><a name="member-group"></a> Realms Translations</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1c1fb4042bf0d9802005cd455ad00b68"></a><!-- doxytag: member="rtnl::rtnl_realms2str" ref="ga1c1fb4042bf0d9802005cd455ad00b68" args="(uint32_t realms, char *buf, size_t len)" --> char * </td><td class="memItemRight" valign="bottom"><b>rtnl_realms2str</b> (uint32_t realms, char *buf, size_t len)</td></tr> <tr><td colspan="2"><h2><a name="member-group"></a> Realms</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1047b07c5f16b4dabfebdfe45ee30ecc"></a><!-- doxytag: member="rtnl::RTNL_REALM_MASK" ref="ga1047b07c5f16b4dabfebdfe45ee30ecc" args="" --> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtnl.html#ga1047b07c5f16b4dabfebdfe45ee30ecc">RTNL_REALM_MASK</a>   (0xFFFF)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Mask specying the size of each realm part. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaddef770de253f34324768d500efc7dce"></a><!-- doxytag: member="rtnl::RTNL_REALM_FROM" ref="gaddef770de253f34324768d500efc7dce" args="(realm)" --> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtnl.html#gaddef770de253f34324768d500efc7dce">RTNL_REALM_FROM</a>(realm)   ((realm) >> 16)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Extract FROM realm from a realms field. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1e942239f430a30cc570989ed612a927"></a><!-- doxytag: member="rtnl::RTNL_REALM_TO" ref="ga1e942239f430a30cc570989ed612a927" args="(realm)" --> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtnl.html#ga1e942239f430a30cc570989ed612a927">RTNL_REALM_TO</a>(realm)   ((realm) & RTNL_REALM_MASK)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Extract TO realm from a realms field. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf87f1ebcb073c839ab3076d5952ebc5c"></a><!-- doxytag: member="rtnl::RTNL_MAKE_REALM" ref="gaf87f1ebcb073c839ab3076d5952ebc5c" args="(from, to)" --> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtnl.html#gaf87f1ebcb073c839ab3076d5952ebc5c">RTNL_MAKE_REALM</a>(from, to)   ((RTNL_REALM_TO(from) << 16) & RTNL_REALM_TO(to))</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Build a realms field. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga68fcbe9a21ae16bafee99bdfb7347360"></a><!-- doxytag: member="rtnl::realm_t" ref="ga68fcbe9a21ae16bafee99bdfb7347360" args="" --> typedef uint32_t </td><td class="memItemRight" valign="bottom"><b>realm_t</b></td></tr> </table> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ga1fcd1a88d7f810c50849f13d97b5fe10"></a><!-- doxytag: member="rtnl.c::nl_rtgen_request" ref="ga1fcd1a88d7f810c50849f13d97b5fe10" args="(struct nl_handle *handle, int type, int family, int flags)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int nl_rtgen_request </td> <td>(</td> <td class="paramtype">struct nl_handle * </td> <td class="paramname"><em>handle</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>type</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>family</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>flags</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">handle</td><td>Netlink handle. </td></tr> <tr><td class="paramname">type</td><td>Netlink message type. </td></tr> <tr><td class="paramname">family</td><td>Address family. </td></tr> <tr><td class="paramname">flags</td><td>Additional netlink message flags.</td></tr> </table> </dd> </dl> <p>Fills out a routing netlink request message and sends it out using <a class="el" href="group__nl.html#ga73ed88a505f2d67bcf328183fe1e692a" title="Send simple netlink message using nl_send_auto_complete()">nl_send_simple()</a>.</p> <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="rtnl_8c_source.html#l00040">40</a> of file <a class="el" href="rtnl_8c_source.html">rtnl.c</a>.</p> <p>References <a class="el" href="nl_8c_source.html#l00410">nl_send_simple()</a>.</p> <div class="fragment"><pre class="fragment">{ <span class="keyword">struct </span>rtgenmsg gmsg = { .rtgen_family = family, }; <span class="keywordflow">return</span> <a class="code" href="group__nl.html#ga73ed88a505f2d67bcf328183fe1e692a" title="Send simple netlink message using nl_send_auto_complete()">nl_send_simple</a>(handle, type, flags, &gmsg, <span class="keyword">sizeof</span>(gmsg)); } </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>