Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > 53919da1eb7b299aeaf7fae0057a75b7 > files > 997

libnl3-doc-3.2.21-1.fc18.i686.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>libnl: Link Modules API</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="libnl.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<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">3.2.21</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</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>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__link__API.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#groups">Modules</a>  </div>
  <div class="headertitle">
<div class="title">Link Modules API</div>  </div>
<div class="ingroups"><a class="el" href="group__link.html">Links (Interfaces)</a></div></div><!--header-->
<div class="contents">

<p>API for modules implementing specific link types/semantics.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:group__link__inet"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link__inet.html">IPv4 Link Module</a></td></tr>
<tr class="memdesc:group__link__inet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of IPv4 specific link attributes. <br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
Link Info Modules</h2></td></tr>
<tr class="memitem:ga5cb889fa456358cbc5d787fd524b2464"><td class="memItemLeft" align="right" valign="top">struct rtnl_link_info_ops *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link__API.html#ga5cb889fa456358cbc5d787fd524b2464">rtnl_link_info_ops_lookup</a> (const char *name)</td></tr>
<tr class="memdesc:ga5cb889fa456358cbc5d787fd524b2464"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return operations of a specific link info type.  <a href="#ga5cb889fa456358cbc5d787fd524b2464"></a><br/></td></tr>
<tr class="memitem:gaf8da9be967f9b882e9d9cf353f87922d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link__API.html#gaf8da9be967f9b882e9d9cf353f87922d">rtnl_link_info_ops_put</a> (struct rtnl_link_info_ops *ops)</td></tr>
<tr class="memdesc:gaf8da9be967f9b882e9d9cf353f87922d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Give back reference to a set of operations.  <a href="#gaf8da9be967f9b882e9d9cf353f87922d"></a><br/></td></tr>
<tr class="memitem:ga0de293a3904c8db13c282b941c55aa16"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link__API.html#ga0de293a3904c8db13c282b941c55aa16">rtnl_link_register_info</a> (struct rtnl_link_info_ops *ops)</td></tr>
<tr class="memdesc:ga0de293a3904c8db13c282b941c55aa16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register operations for a link info type.  <a href="#ga0de293a3904c8db13c282b941c55aa16"></a><br/></td></tr>
<tr class="memitem:ga310702b9b9c3b68ee1fbe34a25faf2c1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link__API.html#ga310702b9b9c3b68ee1fbe34a25faf2c1">rtnl_link_unregister_info</a> (struct rtnl_link_info_ops *ops)</td></tr>
<tr class="memdesc:ga310702b9b9c3b68ee1fbe34a25faf2c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unregister operations for a link info type.  <a href="#ga310702b9b9c3b68ee1fbe34a25faf2c1"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
Link Address Family Modules</h2></td></tr>
<tr class="memitem:ga01d8b4b3e5358b28568833a77e502521"><td class="memItemLeft" align="right" valign="top">struct rtnl_link_af_ops *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link__API.html#ga01d8b4b3e5358b28568833a77e502521">rtnl_link_af_ops_lookup</a> (const unsigned int family)</td></tr>
<tr class="memdesc:ga01d8b4b3e5358b28568833a77e502521"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return operations of a specific link address family.  <a href="#ga01d8b4b3e5358b28568833a77e502521"></a><br/></td></tr>
<tr class="memitem:ga00f22aa2bb8b24e04b3c3ae4b0e31a55"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link__API.html#ga00f22aa2bb8b24e04b3c3ae4b0e31a55">rtnl_link_af_ops_put</a> (struct rtnl_link_af_ops *ops)</td></tr>
<tr class="memdesc:ga00f22aa2bb8b24e04b3c3ae4b0e31a55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Give back reference to a set of operations.  <a href="#ga00f22aa2bb8b24e04b3c3ae4b0e31a55"></a><br/></td></tr>
<tr class="memitem:gaa6d48ad433e6c2f676460adcb6bcdfb1"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link__API.html#gaa6d48ad433e6c2f676460adcb6bcdfb1">rtnl_link_af_alloc</a> (struct <a class="el" href="structrtnl__link.html">rtnl_link</a> *link, const struct rtnl_link_af_ops *ops)</td></tr>
<tr class="memdesc:gaa6d48ad433e6c2f676460adcb6bcdfb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate and return data buffer for link address family modules.  <a href="#gaa6d48ad433e6c2f676460adcb6bcdfb1"></a><br/></td></tr>
<tr class="memitem:ga9ed86cb2cab48180e2cecb71eeb11cd6"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link__API.html#ga9ed86cb2cab48180e2cecb71eeb11cd6">rtnl_link_af_data</a> (const struct <a class="el" href="structrtnl__link.html">rtnl_link</a> *link, const struct rtnl_link_af_ops *ops)</td></tr>
<tr class="memdesc:ga9ed86cb2cab48180e2cecb71eeb11cd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return data buffer for link address family modules.  <a href="#ga9ed86cb2cab48180e2cecb71eeb11cd6"></a><br/></td></tr>
<tr class="memitem:ga77972036d59b7cd5e29108192cdd9b87"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link__API.html#ga77972036d59b7cd5e29108192cdd9b87">rtnl_link_af_register</a> (struct rtnl_link_af_ops *ops)</td></tr>
<tr class="memdesc:ga77972036d59b7cd5e29108192cdd9b87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register operations for a link address family.  <a href="#ga77972036d59b7cd5e29108192cdd9b87"></a><br/></td></tr>
<tr class="memitem:ga6d90b01c5b66b218409413e39cbbb7fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link__API.html#ga6d90b01c5b66b218409413e39cbbb7fe">rtnl_link_af_unregister</a> (struct rtnl_link_af_ops *ops)</td></tr>
<tr class="memdesc:ga6d90b01c5b66b218409413e39cbbb7fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unregister operations for a link address family.  <a href="#ga6d90b01c5b66b218409413e39cbbb7fe"></a><br/></td></tr>
<tr class="memitem:gad911948c19841c382e94c5ae406aa0c4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link__API.html#gad911948c19841c382e94c5ae406aa0c4">rtnl_link_af_data_compare</a> (struct <a class="el" href="structrtnl__link.html">rtnl_link</a> *a, struct <a class="el" href="structrtnl__link.html">rtnl_link</a> *b, int family)</td></tr>
<tr class="memdesc:gad911948c19841c382e94c5ae406aa0c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare af data for a link address family.  <a href="#gad911948c19841c382e94c5ae406aa0c4"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>API for modules implementing specific link types/semantics. </p>
<dl class="section user"><dt>1) Registering/Unregistering a new link info type</dt><dd><div class="fragment"><div class="line">   <span class="keyword">static</span> <span class="keyword">struct </span>rtnl_link_info_ops vlan_info_ops = {</div>
<div class="line">        .io_name                = <span class="stringliteral">&quot;vlan&quot;</span>,</div>
<div class="line">        .io_alloc               = vlan_alloc,</div>
<div class="line">        .io_parse               = vlan_parse,</div>
<div class="line">        .io_dump[NL_DUMP_BRIEF] = vlan_dump_brief,</div>
<div class="line">        .io_dump[NL_DUMP_FULL]  = vlan_dump_full,</div>
<div class="line">        .io_free                = vlan_free,</div>
<div class="line">   };</div>
<div class="line">  </div>
<div class="line">   <span class="keyword">static</span> <span class="keywordtype">void</span> __init vlan_init(<span class="keywordtype">void</span>)</div>
<div class="line">   {</div>
<div class="line">        <a class="code" href="group__link__API.html#ga0de293a3904c8db13c282b941c55aa16" title="Register operations for a link info type.">rtnl_link_register_info</a>(&amp;vlan_info_ops);</div>
<div class="line">   }</div>
<div class="line">  </div>
<div class="line">   <span class="keyword">static</span> <span class="keywordtype">void</span> __exit vlan_exit(<span class="keywordtype">void</span>)</div>
<div class="line">   {</div>
<div class="line">        <a class="code" href="group__link__API.html#ga310702b9b9c3b68ee1fbe34a25faf2c1" title="Unregister operations for a link info type.">rtnl_link_unregister_info</a>(&amp;vlan_info_ops);</div>
<div class="line">   }</div>
</div><!-- fragment --> </dd></dl>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga5cb889fa456358cbc5d787fd524b2464"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">struct rtnl_link_info_ops* rtnl_link_info_ops_lookup </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return operations of a specific link info type. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>Name of link info type.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note:</dt><dd>The returned pointer must be given back using <a class="el" href="group__link__API.html#gaf8da9be967f9b882e9d9cf353f87922d" title="Give back reference to a set of operations.">rtnl_link_info_ops_put()</a></dd></dl>
<dl class="section return"><dt>Returns:</dt><dd>Pointer to operations or NULL if unavailable. </dd></dl>

<p>Definition at line <a class="el" href="api_8c_source.html#l00077">77</a> of file <a class="el" href="api_8c_source.html">api.c</a>.</p>

<p>Referenced by <a class="el" href="lib_2route_2link_8c_source.html#l02115">rtnl_link_set_type()</a>.</p>

<p><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__link__API_ga5cb889fa456358cbc5d787fd524b2464_icgraph.png" border="0" usemap="#group__link__API_ga5cb889fa456358cbc5d787fd524b2464_icgraph" alt=""/></div>
<map name="group__link__API_ga5cb889fa456358cbc5d787fd524b2464_icgraph" id="group__link__API_ga5cb889fa456358cbc5d787fd524b2464_icgraph">
<area shape="rect" id="node3" href="group__link.html#gad9f953f44e65c3deb519edad1344fb71" title="Set type of link object." alt="" coords="184,56,317,83"/><area shape="rect" id="node5" href="group__link.html#gadddd34902ec52fa8674f66a2cd99fa9f" title="rtnl_link_set_info_type" alt="" coords="368,5,531,32"/><area shape="rect" id="node7" href="group__bonding.html#ga4f0bcc72d492b8b507b875f83b2bb115" title="Create a new kernel bonding device." alt="" coords="379,56,520,83"/><area shape="rect" id="node9" href="group__bonding.html#ga307a6dacb6ab70d96d7e362f9c96e683" title="Add a link to a bond (enslave)" alt="" coords="366,107,533,149"/><area shape="rect" id="node11" href="group__bonding.html#ga50a2072b4f743c742267156f5459dfee" title="Add a link to a bond (enslave)" alt="" coords="582,85,749,112"/><area shape="rect" id="node13" href="group__bonding.html#ga92d56ba00c9537ce24f2b73829ae96dd" title="Release a link from a bond." alt="" coords="583,137,747,178"/><area shape="rect" id="node15" href="group__bonding.html#ga71079dbe80f28e2dd483424549af49a0" title="Release a link from a bond." alt="" coords="798,144,962,171"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="gaf8da9be967f9b882e9d9cf353f87922d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void rtnl_link_info_ops_put </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_link_info_ops *&#160;</td>
          <td class="paramname"><em>ops</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Give back reference to a set of operations. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">ops</td><td>Link info operations. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="api_8c_source.html#l00093">93</a> of file <a class="el" href="api_8c_source.html">api.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga0de293a3904c8db13c282b941c55aa16"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int rtnl_link_register_info </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_link_info_ops *&#160;</td>
          <td class="paramname"><em>ops</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register operations for a link info type. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">ops</td><td>Link info operations</td></tr>
  </table>
  </dd>
</dl>
<p>This function must be called by modules implementing a specific link info type. It will make the operations implemented by the module available for everyone else.</p>
<dl class="section return"><dt>Returns:</dt><dd>0 on success or a negative error code. </dd>
<dd>
-NLE_INVAL Link info name not specified. </dd>
<dd>
-NLE_EXIST Operations for address family already registered. </dd></dl>

<p>Definition at line <a class="el" href="api_8c_source.html#l00111">111</a> of file <a class="el" href="api_8c_source.html">api.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga310702b9b9c3b68ee1fbe34a25faf2c1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int rtnl_link_unregister_info </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_link_info_ops *&#160;</td>
          <td class="paramname"><em>ops</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unregister operations for a link info type. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">ops</td><td>Link info operations</td></tr>
  </table>
  </dd>
</dl>
<p>This function must be called if a module implementing a specific link info type is unloaded or becomes unavailable. It must provide a set of operations which have previously been registered using <a class="el" href="group__link__API.html#ga0de293a3904c8db13c282b941c55aa16" title="Register operations for a link info type.">rtnl_link_register_info()</a>.</p>
<dl class="section return"><dt>Returns:</dt><dd>0 on success or a negative error code </dd>
<dd>
_NLE_OPNOTSUPP Link info operations not registered. </dd>
<dd>
-NLE_BUSY Link info operations still in use. </dd></dl>

<p>Definition at line <a class="el" href="api_8c_source.html#l00146">146</a> of file <a class="el" href="api_8c_source.html">api.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga01d8b4b3e5358b28568833a77e502521"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">struct rtnl_link_af_ops* rtnl_link_af_ops_lookup </td>
          <td>(</td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>family</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return operations of a specific link address family. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">family</td><td>Address family</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note:</dt><dd>The returned pointer must be given back using <a class="el" href="group__link__API.html#ga00f22aa2bb8b24e04b3c3ae4b0e31a55" title="Give back reference to a set of operations.">rtnl_link_af_ops_put()</a></dd></dl>
<dl class="section return"><dt>Returns:</dt><dd>Pointer to operations or NULL if unavailable. </dd></dl>

<p>Definition at line <a class="el" href="api_8c_source.html#l00192">192</a> of file <a class="el" href="api_8c_source.html">api.c</a>.</p>

<p>Referenced by <a class="el" href="api_8c_source.html#l00365">rtnl_link_af_data_compare()</a>.</p>

<p><div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-1-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__link__API_ga01d8b4b3e5358b28568833a77e502521_icgraph.png" border="0" usemap="#group__link__API_ga01d8b4b3e5358b28568833a77e502521_icgraph" alt=""/></div>
<map name="group__link__API_ga01d8b4b3e5358b28568833a77e502521_icgraph" id="group__link__API_ga01d8b4b3e5358b28568833a77e502521_icgraph">
<area shape="rect" id="node3" href="group__link__API.html#gad911948c19841c382e94c5ae406aa0c4" title="Compare af data for a link address family." alt="" coords="225,5,415,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ga00f22aa2bb8b24e04b3c3ae4b0e31a55"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void rtnl_link_af_ops_put </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_link_af_ops *&#160;</td>
          <td class="paramname"><em>ops</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Give back reference to a set of operations. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">ops</td><td>Address family operations. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="api_8c_source.html#l00209">209</a> of file <a class="el" href="api_8c_source.html">api.c</a>.</p>

<p>Referenced by <a class="el" href="api_8c_source.html#l00365">rtnl_link_af_data_compare()</a>.</p>

<p><div id="dynsection-2" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-2-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-2-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-2-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__link__API_ga00f22aa2bb8b24e04b3c3ae4b0e31a55_icgraph.png" border="0" usemap="#group__link__API_ga00f22aa2bb8b24e04b3c3ae4b0e31a55_icgraph" alt=""/></div>
<map name="group__link__API_ga00f22aa2bb8b24e04b3c3ae4b0e31a55_icgraph" id="group__link__API_ga00f22aa2bb8b24e04b3c3ae4b0e31a55_icgraph">
<area shape="rect" id="node3" href="group__link__API.html#gad911948c19841c382e94c5ae406aa0c4" title="Compare af data for a link address family." alt="" coords="203,5,394,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="gaa6d48ad433e6c2f676460adcb6bcdfb1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* rtnl_link_af_alloc </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structrtnl__link.html">rtnl_link</a> *&#160;</td>
          <td class="paramname"><em>link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct rtnl_link_af_ops *&#160;</td>
          <td class="paramname"><em>ops</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Allocate and return data buffer for link address family modules. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">link</td><td>Link object </td></tr>
    <tr><td class="paramname">ops</td><td>Address family operations</td></tr>
  </table>
  </dd>
</dl>
<p>This function must be called by link address family modules in all cases where the API does not provide the data buffer as argument already. This typically includes set functions the module provides. Calling this function is strictly required to ensure proper allocation of the buffer upon first use. Link objects will NOT proactively allocate a data buffer for each registered link address family.</p>
<dl class="section return"><dt>Returns:</dt><dd>Pointer to data buffer or NULL on error. </dd></dl>

<p>Definition at line <a class="el" href="api_8c_source.html#l00229">229</a> of file <a class="el" href="api_8c_source.html">api.c</a>.</p>

<p>Referenced by <a class="el" href="inet_8c_source.html#l00224">rtnl_link_inet_get_conf()</a>, and <a class="el" href="inet_8c_source.html#l00252">rtnl_link_inet_set_conf()</a>.</p>

<p><div id="dynsection-3" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-3-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-3-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-3-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__link__API_gaa6d48ad433e6c2f676460adcb6bcdfb1_icgraph.png" border="0" usemap="#group__link__API_gaa6d48ad433e6c2f676460adcb6bcdfb1_icgraph" alt=""/></div>
<map name="group__link__API_gaa6d48ad433e6c2f676460adcb6bcdfb1_icgraph" id="group__link__API_gaa6d48ad433e6c2f676460adcb6bcdfb1_icgraph">
<area shape="rect" id="node3" href="group__link__inet.html#ga0f32ffcbfc5c946638d4241ee6c818b9" title="Get value of a ipv4 link configuration setting." alt="" coords="182,5,346,32"/><area shape="rect" id="node5" href="group__link__inet.html#gaa354d1bea9a9da55891590a2ed1346b9" title="Change value of a ipv4 link configuration setting." alt="" coords="183,56,345,83"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ga9ed86cb2cab48180e2cecb71eeb11cd6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* rtnl_link_af_data </td>
          <td>(</td>
          <td class="paramtype">const struct <a class="el" href="structrtnl__link.html">rtnl_link</a> *&#160;</td>
          <td class="paramname"><em>link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct rtnl_link_af_ops *&#160;</td>
          <td class="paramname"><em>ops</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return data buffer for link address family modules. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">link</td><td>Link object </td></tr>
    <tr><td class="paramname">ops</td><td>Address family operations</td></tr>
  </table>
  </dd>
</dl>
<p>This function returns a pointer to the data buffer for the specified link address family module or NULL if the buffer was not allocated yet. This function is typically used by get functions of modules which are not interested in having the data buffer allocated if no values have been set yet.</p>
<dl class="section return"><dt>Returns:</dt><dd>Pointer to data buffer or NULL on error. </dd></dl>

<p>Definition at line <a class="el" href="api_8c_source.html#l00264">264</a> of file <a class="el" href="api_8c_source.html">api.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga77972036d59b7cd5e29108192cdd9b87"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int rtnl_link_af_register </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_link_af_ops *&#160;</td>
          <td class="paramname"><em>ops</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register operations for a link address family. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">ops</td><td>Address family operations</td></tr>
  </table>
  </dd>
</dl>
<p>This function must be called by modules implementing a specific link address family. It will make the operations implemented by the module available for everyone else.</p>
<dl class="section return"><dt>Returns:</dt><dd>0 on success or a negative error code. </dd>
<dd>
-NLE_INVAL Address family is out of range (0..AF_MAX) </dd>
<dd>
-NLE_EXIST Operations for address family already registered. </dd></dl>

<p>Definition at line <a class="el" href="api_8c_source.html#l00285">285</a> of file <a class="el" href="api_8c_source.html">api.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga6d90b01c5b66b218409413e39cbbb7fe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int rtnl_link_af_unregister </td>
          <td>(</td>
          <td class="paramtype">struct rtnl_link_af_ops *&#160;</td>
          <td class="paramname"><em>ops</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unregister operations for a link address family. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">ops</td><td>Address family operations</td></tr>
  </table>
  </dd>
</dl>
<p>This function must be called if a module implementing a specific link address family is unloaded or becomes unavailable. It must provide a set of operations which have previously been registered using <a class="el" href="group__link__API.html#ga77972036d59b7cd5e29108192cdd9b87" title="Register operations for a link address family.">rtnl_link_af_register()</a>.</p>
<dl class="section return"><dt>Returns:</dt><dd>0 on success or a negative error code </dd>
<dd>
-NLE_INVAL ops is NULL </dd>
<dd>
-NLE_OBJ_NOTFOUND Address family operations not registered. </dd>
<dd>
-NLE_BUSY Address family operations still in use. </dd></dl>

<p>Definition at line <a class="el" href="api_8c_source.html#l00324">324</a> of file <a class="el" href="api_8c_source.html">api.c</a>.</p>

</div>
</div>
<a class="anchor" id="gad911948c19841c382e94c5ae406aa0c4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int rtnl_link_af_data_compare </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structrtnl__link.html">rtnl_link</a> *&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structrtnl__link.html">rtnl_link</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>family</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compare af data for a link address family. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>Link object a </td></tr>
    <tr><td class="paramname">b</td><td>Link object b </td></tr>
    <tr><td class="paramname">family</td><td>af data family</td></tr>
  </table>
  </dd>
</dl>
<p>This function will compare af_data between two links a and b of family given by arg family</p>
<dl class="section return"><dt>Returns:</dt><dd>0 if address family specific data matches or is not present or != 0 if it mismatches. </dd></dl>

<p>Definition at line <a class="el" href="api_8c_source.html#l00365">365</a> of file <a class="el" href="api_8c_source.html">api.c</a>.</p>

<p>References <a class="el" href="api_8c_source.html#l00192">rtnl_link_af_ops_lookup()</a>, and <a class="el" href="api_8c_source.html#l00209">rtnl_link_af_ops_put()</a>.</p>

<p><div id="dynsection-4" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-4-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-4-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-4-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__link__API_gad911948c19841c382e94c5ae406aa0c4_cgraph.png" border="0" usemap="#group__link__API_gad911948c19841c382e94c5ae406aa0c4_cgraph" alt=""/></div>
<map name="group__link__API_gad911948c19841c382e94c5ae406aa0c4_cgraph" id="group__link__API_gad911948c19841c382e94c5ae406aa0c4_cgraph">
<area shape="rect" id="node3" href="group__link__API.html#ga01d8b4b3e5358b28568833a77e502521" title="Return operations of a specific link address family." alt="" coords="246,5,415,32"/><area shape="rect" id="node5" href="group__link__API.html#ga00f22aa2bb8b24e04b3c3ae4b0e31a55" title="Give back reference to a set of operations." alt="" coords="257,56,405,83"/></map>
</div>
</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Thu Jan 24 2013 14:39:30 for libnl by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.1 </li>
  </ul>
</div>
</body>
</html>