<!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: Extended Match</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  <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 Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data 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__ematch.html','');}); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#groups">Modules</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">Extended Match</div> </div> <div class="ingroups"><a class="el" href="group__cls.html">Classifiers</a></div></div><!--header--> <div class="contents"> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="groups"></a> Modules</h2></td></tr> <tr class="memitem:group__em__meta"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__em__meta.html">Metadata Match</a></td></tr> <tr class="memitem:group__em__nbyte"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__em__nbyte.html">N-Byte Comparison</a></td></tr> <tr class="memitem:group__em__cmp"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__em__cmp.html">Simple packet data comparison</a></td></tr> <tr class="memitem:group__em__text"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__em__text.html">Text Search</a></td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:ga83b804a4e16cdd03fe7b9ccdf11379da"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83b804a4e16cdd03fe7b9ccdf11379da"></a> int </td><td class="memItemRight" valign="bottom"><b>ematch_parse</b> (void *, char **, struct <a class="el" href="structnl__list__head.html">nl_list_head</a> *)</td></tr> <tr class="memitem:ga592d23f4776bfbc64b0d2d07804d32a1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga592d23f4776bfbc64b0d2d07804d32a1"></a> int </td><td class="memItemRight" valign="bottom"><b>rtnl_ematch_parse_expr</b> (const char *expr, char **errp, struct rtnl_ematch_tree **result)</td></tr> <tr class="memitem:gaea267e0e7ed0f09563f95e83210f9a11"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaea267e0e7ed0f09563f95e83210f9a11"></a> char * </td><td class="memItemRight" valign="bottom"><b>rtnl_ematch_offset2txt</b> (uint8_t layer, uint16_t offset, char *buf, size_t len)</td></tr> <tr class="memitem:ga5ce2d5e7da11e600297b2660055b4eb6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5ce2d5e7da11e600297b2660055b4eb6"></a> char * </td><td class="memItemRight" valign="bottom"><b>rtnl_ematch_opnd2txt</b> (uint8_t opnd, char *buf, size_t len)</td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="member-group"></a> Module API</h2></td></tr> <tr class="memitem:ga7d4df8c4fa0400da37c5eccd786e626b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ematch.html#ga7d4df8c4fa0400da37c5eccd786e626b">rtnl_ematch_register</a> (struct <a class="el" href="structrtnl__ematch__ops.html">rtnl_ematch_ops</a> *ops)</td></tr> <tr class="memdesc:ga7d4df8c4fa0400da37c5eccd786e626b"><td class="mdescLeft"> </td><td class="mdescRight">Register ematch module. <a href="#ga7d4df8c4fa0400da37c5eccd786e626b"></a><br/></td></tr> <tr class="memitem:gab8ad5b895ba9e9744cf50bcebdd9ed06"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structrtnl__ematch__ops.html">rtnl_ematch_ops</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ematch.html#gab8ad5b895ba9e9744cf50bcebdd9ed06">rtnl_ematch_lookup_ops</a> (int kind)</td></tr> <tr class="memdesc:gab8ad5b895ba9e9744cf50bcebdd9ed06"><td class="mdescLeft"> </td><td class="mdescRight">Lookup ematch module by identification number. <a href="#gab8ad5b895ba9e9744cf50bcebdd9ed06"></a><br/></td></tr> <tr class="memitem:gad73bbd3c13cd0c92acc8ec81d538c155"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structrtnl__ematch__ops.html">rtnl_ematch_ops</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ematch.html#gad73bbd3c13cd0c92acc8ec81d538c155">rtnl_ematch_lookup_ops_by_name</a> (const char *name)</td></tr> <tr class="memdesc:gad73bbd3c13cd0c92acc8ec81d538c155"><td class="mdescLeft"> </td><td class="mdescRight">Lookup ematch module by name. <a href="#gad73bbd3c13cd0c92acc8ec81d538c155"></a><br/></td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="member-group"></a> Match</h2></td></tr> <tr class="memitem:gaffe71b9af389a39020bb1a3bcc04a58d"><td class="memItemLeft" align="right" valign="top">struct rtnl_ematch * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ematch.html#gaffe71b9af389a39020bb1a3bcc04a58d">rtnl_ematch_alloc</a> (void)</td></tr> <tr class="memdesc:gaffe71b9af389a39020bb1a3bcc04a58d"><td class="mdescLeft"> </td><td class="mdescRight">Allocate ematch object. <a href="#gaffe71b9af389a39020bb1a3bcc04a58d"></a><br/></td></tr> <tr class="memitem:gad6185c5bffa495cd55054192c9282e91"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ematch.html#gad6185c5bffa495cd55054192c9282e91">rtnl_ematch_add_child</a> (struct rtnl_ematch *parent, struct rtnl_ematch *child)</td></tr> <tr class="memdesc:gad6185c5bffa495cd55054192c9282e91"><td class="mdescLeft"> </td><td class="mdescRight">Add ematch to the end of the parent's list of children. <a href="#gad6185c5bffa495cd55054192c9282e91"></a><br/></td></tr> <tr class="memitem:gad04dc50b04f78ab72a1e644973964762"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ematch.html#gad04dc50b04f78ab72a1e644973964762">rtnl_ematch_unlink</a> (struct rtnl_ematch *ematch)</td></tr> <tr class="memdesc:gad04dc50b04f78ab72a1e644973964762"><td class="mdescLeft"> </td><td class="mdescRight">Remove ematch from the list of ematches it is linked to. <a href="#gad04dc50b04f78ab72a1e644973964762"></a><br/></td></tr> <tr class="memitem:ga9e1b269e829112bd6837e8b47f5d917a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9e1b269e829112bd6837e8b47f5d917a"></a> void </td><td class="memItemRight" valign="bottom"><b>rtnl_ematch_free</b> (struct rtnl_ematch *ematch)</td></tr> <tr class="memitem:gad3f89386fa4c14a6ed4d0bd4304da07f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad3f89386fa4c14a6ed4d0bd4304da07f"></a> int </td><td class="memItemRight" valign="bottom"><b>rtnl_ematch_set_ops</b> (struct rtnl_ematch *ematch, struct <a class="el" href="structrtnl__ematch__ops.html">rtnl_ematch_ops</a> *ops)</td></tr> <tr class="memitem:gac454b6a118dc5795b58ac16e18fd1f61"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac454b6a118dc5795b58ac16e18fd1f61"></a> int </td><td class="memItemRight" valign="bottom"><b>rtnl_ematch_set_kind</b> (struct rtnl_ematch *ematch, uint16_t kind)</td></tr> <tr class="memitem:ga29f16eb5f123b83c74a8a0295bb7445f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga29f16eb5f123b83c74a8a0295bb7445f"></a> int </td><td class="memItemRight" valign="bottom"><b>rtnl_ematch_set_name</b> (struct rtnl_ematch *ematch, const char *name)</td></tr> <tr class="memitem:ga42d14626764bbb624085ef25edd480bc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga42d14626764bbb624085ef25edd480bc"></a> void </td><td class="memItemRight" valign="bottom"><b>rtnl_ematch_set_flags</b> (struct rtnl_ematch *ematch, uint16_t flags)</td></tr> <tr class="memitem:ga9d28505b47423b59b7e03efddd9ed02e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9d28505b47423b59b7e03efddd9ed02e"></a> void </td><td class="memItemRight" valign="bottom"><b>rtnl_ematch_unset_flags</b> (struct rtnl_ematch *ematch, uint16_t flags)</td></tr> <tr class="memitem:gaac94f42a43aeb9daffd0ddc33080e24c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaac94f42a43aeb9daffd0ddc33080e24c"></a> uint16_t </td><td class="memItemRight" valign="bottom"><b>rtnl_ematch_get_flags</b> (struct rtnl_ematch *ematch)</td></tr> <tr class="memitem:ga73baa6f34cedbaf225797940af031aea"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73baa6f34cedbaf225797940af031aea"></a> void * </td><td class="memItemRight" valign="bottom"><b>rtnl_ematch_data</b> (struct rtnl_ematch *ematch)</td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="member-group"></a> Tree</h2></td></tr> <tr class="memitem:gadb59baf48dad619186fc039610ae8602"><td class="memItemLeft" align="right" valign="top">struct rtnl_ematch_tree * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ematch.html#gadb59baf48dad619186fc039610ae8602">rtnl_ematch_tree_alloc</a> (uint16_t progid)</td></tr> <tr class="memdesc:gadb59baf48dad619186fc039610ae8602"><td class="mdescLeft"> </td><td class="mdescRight">Allocate ematch tree object. <a href="#gadb59baf48dad619186fc039610ae8602"></a><br/></td></tr> <tr class="memitem:ga3e8ad918e1d3481b469a9edd6291875e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ematch.html#ga3e8ad918e1d3481b469a9edd6291875e">rtnl_ematch_tree_free</a> (struct rtnl_ematch_tree *tree)</td></tr> <tr class="memdesc:ga3e8ad918e1d3481b469a9edd6291875e"><td class="mdescLeft"> </td><td class="mdescRight">Free ematch tree object. <a href="#ga3e8ad918e1d3481b469a9edd6291875e"></a><br/></td></tr> <tr class="memitem:ga2ded11a00d3e46f888ad411394294440"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ematch.html#ga2ded11a00d3e46f888ad411394294440">rtnl_ematch_tree_add</a> (struct rtnl_ematch_tree *tree, struct rtnl_ematch *ematch)</td></tr> <tr class="memdesc:ga2ded11a00d3e46f888ad411394294440"><td class="mdescLeft"> </td><td class="mdescRight">Add ematch object to the end of the ematch tree. <a href="#ga2ded11a00d3e46f888ad411394294440"></a><br/></td></tr> <tr class="memitem:gaaf3c76fa97f70a252154ca2055fed4d3"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ematch.html#gaaf3c76fa97f70a252154ca2055fed4d3">rtnl_ematch_parse_attr</a> (struct nlattr *attr, struct rtnl_ematch_tree **result)</td></tr> <tr class="memdesc:gaaf3c76fa97f70a252154ca2055fed4d3"><td class="mdescLeft"> </td><td class="mdescRight">Parse ematch netlink attributes. <a href="#gaaf3c76fa97f70a252154ca2055fed4d3"></a><br/></td></tr> <tr class="memitem:ga18bf0846ad489a33a55e53183833e342"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga18bf0846ad489a33a55e53183833e342"></a> void </td><td class="memItemRight" valign="bottom"><b>rtnl_ematch_tree_dump</b> (struct rtnl_ematch_tree *tree, struct <a class="el" href="structnl__dump__params.html">nl_dump_params</a> *p)</td></tr> <tr class="memitem:ga19d931b78cacaee9855a676a00b56d73"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga19d931b78cacaee9855a676a00b56d73"></a> int </td><td class="memItemRight" valign="bottom"><b>rtnl_ematch_fill_attr</b> (struct nl_msg *msg, int attrid, struct rtnl_ematch_tree *tree)</td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ga7d4df8c4fa0400da37c5eccd786e626b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_ematch_register </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structrtnl__ematch__ops.html">rtnl_ematch_ops</a> * </td> <td class="paramname"><em>ops</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Register ematch module. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">ops</td><td>Module operations.</td></tr> </table> </dd> </dl> <p>This function must be called by each ematch module at initialization time. It registers the calling module as available module.</p> <dl class="section return"><dt>Returns:</dt><dd>0 on success or a negative error code. </dd></dl> <p>Definition at line <a class="el" href="ematch_8c_source.html#l00045">45</a> of file <a class="el" href="ematch_8c_source.html">ematch.c</a>.</p> <p>References <a class="el" href="ematch_8c_source.html#l00065">rtnl_ematch_lookup_ops()</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 call 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__ematch_ga7d4df8c4fa0400da37c5eccd786e626b_cgraph.png" border="0" usemap="#group__ematch_ga7d4df8c4fa0400da37c5eccd786e626b_cgraph" alt=""/></div> <map name="group__ematch_ga7d4df8c4fa0400da37c5eccd786e626b_cgraph" id="group__ematch_ga7d4df8c4fa0400da37c5eccd786e626b_cgraph"> <area shape="rect" id="node3" href="group__ematch.html#gab8ad5b895ba9e9744cf50bcebdd9ed06" title="Lookup ematch module by identification number." alt="" coords="208,5,387,32"/></map> </div> </p> </div> </div> <a class="anchor" id="gab8ad5b895ba9e9744cf50bcebdd9ed06"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structrtnl__ematch__ops.html">rtnl_ematch_ops</a>* rtnl_ematch_lookup_ops </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>kind</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>Lookup ematch module by identification number. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">kind</td><td>Module kind.</td></tr> </table> </dd> </dl> <p>Searches the list of registered ematch modules for match and returns it.</p> <dl class="section return"><dt>Returns:</dt><dd>Module operations or NULL if not found. </dd></dl> <p>Definition at line <a class="el" href="ematch_8c_source.html#l00065">65</a> of file <a class="el" href="ematch_8c_source.html">ematch.c</a>.</p> <p>Referenced by <a class="el" href="ematch_8c_source.html#l00339">rtnl_ematch_parse_attr()</a>, and <a class="el" href="ematch_8c_source.html#l00045">rtnl_ematch_register()</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__ematch_gab8ad5b895ba9e9744cf50bcebdd9ed06_icgraph.png" border="0" usemap="#group__ematch_gab8ad5b895ba9e9744cf50bcebdd9ed06_icgraph" alt=""/></div> <map name="group__ematch_gab8ad5b895ba9e9744cf50bcebdd9ed06_icgraph" id="group__ematch_gab8ad5b895ba9e9744cf50bcebdd9ed06_icgraph"> <area shape="rect" id="node3" href="group__ematch.html#gaaf3c76fa97f70a252154ca2055fed4d3" title="Parse ematch netlink attributes." alt="" coords="233,5,405,32"/><area shape="rect" id="node5" href="group__ematch.html#ga7d4df8c4fa0400da37c5eccd786e626b" title="Register ematch module." alt="" coords="241,56,396,83"/></map> </div> </p> </div> </div> <a class="anchor" id="gad73bbd3c13cd0c92acc8ec81d538c155"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structrtnl__ematch__ops.html">rtnl_ematch_ops</a>* rtnl_ematch_lookup_ops_by_name </td> <td>(</td> <td class="paramtype">const char * </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>Lookup ematch module by name. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">name</td><td>Name of ematch module.</td></tr> </table> </dd> </dl> <p>Searches the list of registered ematch modules for a match and returns it.</p> <dl class="section return"><dt>Returns:</dt><dd>Module operations or NULL if not fuond. </dd></dl> <p>Definition at line <a class="el" href="ematch_8c_source.html#l00084">84</a> of file <a class="el" href="ematch_8c_source.html">ematch.c</a>.</p> </div> </div> <a class="anchor" id="gaffe71b9af389a39020bb1a3bcc04a58d"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">struct rtnl_ematch* rtnl_ematch_alloc </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></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>Allocate ematch object. </p> <p>Allocates and initializes an ematch object.</p> <dl class="section return"><dt>Returns:</dt><dd>New ematch object or NULL. </dd></dl> <p>Definition at line <a class="el" href="ematch_8c_source.html#l00108">108</a> of file <a class="el" href="ematch_8c_source.html">ematch.c</a>.</p> <p>Referenced by <a class="el" href="ematch_8c_source.html#l00339">rtnl_ematch_parse_attr()</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__ematch_gaffe71b9af389a39020bb1a3bcc04a58d_icgraph.png" border="0" usemap="#group__ematch_gaffe71b9af389a39020bb1a3bcc04a58d_icgraph" alt=""/></div> <map name="group__ematch_gaffe71b9af389a39020bb1a3bcc04a58d_icgraph" id="group__ematch_gaffe71b9af389a39020bb1a3bcc04a58d_icgraph"> <area shape="rect" id="node3" href="group__ematch.html#gaaf3c76fa97f70a252154ca2055fed4d3" title="Parse ematch netlink attributes." alt="" coords="190,5,362,32"/></map> </div> </p> </div> </div> <a class="anchor" id="gad6185c5bffa495cd55054192c9282e91"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_ematch_add_child </td> <td>(</td> <td class="paramtype">struct rtnl_ematch * </td> <td class="paramname"><em>parent</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct rtnl_ematch * </td> <td class="paramname"><em>child</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Add ematch to the end of the parent's list of children. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">parent</td><td>parent ematch object </td></tr> <tr><td class="paramname">child</td><td>ematch object to be added to parent</td></tr> </table> </dd> </dl> <p>The parent must be a container ematch. </p> <p>Definition at line <a class="el" href="ematch_8c_source.html#l00130">130</a> of file <a class="el" href="ematch_8c_source.html">ematch.c</a>.</p> </div> </div> <a class="anchor" id="gad04dc50b04f78ab72a1e644973964762"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void rtnl_ematch_unlink </td> <td>(</td> <td class="paramtype">struct rtnl_ematch * </td> <td class="paramname"><em>ematch</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Remove ematch from the list of ematches it is linked to. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">ematch</td><td>ematch object </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="ematch_8c_source.html#l00148">148</a> of file <a class="el" href="ematch_8c_source.html">ematch.c</a>.</p> </div> </div> <a class="anchor" id="gadb59baf48dad619186fc039610ae8602"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">struct rtnl_ematch_tree* rtnl_ematch_tree_alloc </td> <td>(</td> <td class="paramtype">uint16_t </td> <td class="paramname"><em>progid</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>Allocate ematch tree object. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">progid</td><td>program id </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="ematch_8c_source.html#l00247">247</a> of file <a class="el" href="ematch_8c_source.html">ematch.c</a>.</p> <p>Referenced by <a class="el" href="ematch_8c_source.html#l00339">rtnl_ematch_parse_attr()</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__ematch_gadb59baf48dad619186fc039610ae8602_icgraph.png" border="0" usemap="#group__ematch_gadb59baf48dad619186fc039610ae8602_icgraph" alt=""/></div> <map name="group__ematch_gadb59baf48dad619186fc039610ae8602_icgraph" id="group__ematch_gadb59baf48dad619186fc039610ae8602_icgraph"> <area shape="rect" id="node3" href="group__ematch.html#gaaf3c76fa97f70a252154ca2055fed4d3" title="Parse ematch netlink attributes." alt="" coords="222,5,394,32"/></map> </div> </p> </div> </div> <a class="anchor" id="ga3e8ad918e1d3481b469a9edd6291875e"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void rtnl_ematch_tree_free </td> <td>(</td> <td class="paramtype">struct rtnl_ematch_tree * </td> <td class="paramname"><em>tree</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Free ematch tree object. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">tree</td><td>ematch tree object</td></tr> </table> </dd> </dl> <p>This function frees the ematch tree and all ematches attached to it. </p> <p>Definition at line <a class="el" href="ematch_8c_source.html#l00279">279</a> of file <a class="el" href="ematch_8c_source.html">ematch.c</a>.</p> <p>Referenced by <a class="el" href="ematch_8c_source.html#l00339">rtnl_ematch_parse_attr()</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 caller 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__ematch_ga3e8ad918e1d3481b469a9edd6291875e_icgraph.png" border="0" usemap="#group__ematch_ga3e8ad918e1d3481b469a9edd6291875e_icgraph" alt=""/></div> <map name="group__ematch_ga3e8ad918e1d3481b469a9edd6291875e_icgraph" id="group__ematch_ga3e8ad918e1d3481b469a9edd6291875e_icgraph"> <area shape="rect" id="node3" href="group__ematch.html#gaaf3c76fa97f70a252154ca2055fed4d3" title="Parse ematch netlink attributes." alt="" coords="219,5,391,32"/></map> </div> </p> </div> </div> <a class="anchor" id="ga2ded11a00d3e46f888ad411394294440"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void rtnl_ematch_tree_add </td> <td>(</td> <td class="paramtype">struct rtnl_ematch_tree * </td> <td class="paramname"><em>tree</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct rtnl_ematch * </td> <td class="paramname"><em>ematch</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Add ematch object to the end of the ematch tree. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">tree</td><td>ematch tree object </td></tr> <tr><td class="paramname">ematch</td><td>ematch object to add </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="ematch_8c_source.html#l00295">295</a> of file <a class="el" href="ematch_8c_source.html">ematch.c</a>.</p> </div> </div> <a class="anchor" id="gaaf3c76fa97f70a252154ca2055fed4d3"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rtnl_ematch_parse_attr </td> <td>(</td> <td class="paramtype">struct nlattr * </td> <td class="paramname"><em>attr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct rtnl_ematch_tree ** </td> <td class="paramname"><em>result</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Parse ematch netlink attributes. </p> <dl class="section return"><dt>Returns:</dt><dd>0 on success or a negative error code. </dd></dl> <p>Definition at line <a class="el" href="ematch_8c_source.html#l00339">339</a> of file <a class="el" href="ematch_8c_source.html">ematch.c</a>.</p> <p>References <a class="el" href="attr_8c_source.html#l00120">nla_data()</a>, <a class="el" href="attr_8h_source.html#l00272">nla_for_each_nested</a>, <a class="el" href="attr_8c_source.html#l00131">nla_len()</a>, <a class="el" href="attr_8c_source.html#l00865">nla_parse_nested()</a>, <a class="el" href="attr_8c_source.html#l00073">nla_total_size()</a>, <a class="el" href="ematch_8c_source.html#l00108">rtnl_ematch_alloc()</a>, <a class="el" href="ematch_8c_source.html#l00065">rtnl_ematch_lookup_ops()</a>, <a class="el" href="ematch_8c_source.html#l00247">rtnl_ematch_tree_alloc()</a>, and <a class="el" href="ematch_8c_source.html#l00279">rtnl_ematch_tree_free()</a>.</p> <p><div id="dynsection-5" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"> <img id="dynsection-5-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div> <div id="dynsection-5-summary" class="dynsummary" style="display:block;"> </div> <div id="dynsection-5-content" class="dyncontent" style="display:none;"> <div class="center"><img src="group__ematch_gaaf3c76fa97f70a252154ca2055fed4d3_cgraph.png" border="0" usemap="#group__ematch_gaaf3c76fa97f70a252154ca2055fed4d3_cgraph" alt=""/></div> <map name="group__ematch_gaaf3c76fa97f70a252154ca2055fed4d3_cgraph" id="group__ematch_gaaf3c76fa97f70a252154ca2055fed4d3_cgraph"> <area shape="rect" id="node3" href="group__attr.html#gaf39d6bbd2be1fc2de30b6b7d079a5fce" title="Return pointer to the payload section." alt="" coords="467,5,544,32"/><area shape="rect" id="node5" href="group__attr.html#gac5a7705797946fa9c0775997bb8d130b" title="Return length of the payload ." alt="" coords="472,107,539,133"/><area shape="rect" id="node7" href="group__attr.html#ga974ec0720b2d863a5c65da868bcb7a6e" title="Create attribute index based on nested attribute." alt="" coords="249,56,383,83"/><area shape="rect" id="node15" href="group__attr.html#gafc7e89c7d72952510eff46f96761e3ea" title="Return size of attribute including padding." alt="" coords="261,157,371,184"/><area shape="rect" id="node19" href="group__ematch.html#gaffe71b9af389a39020bb1a3bcc04a58d" title="Allocate ematch object." alt="" coords="249,208,383,235"/><area shape="rect" id="node21" href="group__ematch.html#gab8ad5b895ba9e9744cf50bcebdd9ed06" title="Lookup ematch module by identification number." alt="" coords="227,259,405,285"/><area shape="rect" id="node23" href="group__ematch.html#gadb59baf48dad619186fc039610ae8602" title="Allocate ematch tree object." alt="" coords="232,309,400,336"/><area shape="rect" id="node25" href="group__ematch.html#ga3e8ad918e1d3481b469a9edd6291875e" title="Free ematch tree object." alt="" coords="234,360,398,387"/><area shape="rect" id="node11" href="group__attr.html#gaa7ad544b5a93034602a442eb26cda92c" title="Create attribute index based on a stream of attributes." alt="" coords="463,56,547,83"/><area shape="rect" id="node13" href="group__attr.html#ga4aa5611a0b84b217ee9a7dd2b0491128" title="Return type of the attribute." alt="" coords="606,56,682,83"/><area shape="rect" id="node17" href="group__attr.html#ga894e1ded50d0d62748a2b9b5f7195938" title="Return size of attribute whithout padding." alt="" coords="454,157,557,184"/></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>