| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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"/> |
| <meta name="generator" content="Doxygen 1.9.1"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <title>API Reference Manual for linux-dpdk: ODP PACKET</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="navtreedata.js"></script> |
| <script type="text/javascript" src="navtree.js"></script> |
| <link href="search/search.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="search/searchdata.js"></script> |
| <script type="text/javascript" src="search/search.js"></script> |
| <link href="doxygen.css" rel="stylesheet" type="text/css" /> |
| <link href="odpdoxygen.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 id="projectlogo"><img alt="Logo" src="ODP-Logo-HQ.svg"/></td> |
| <td id="projectalign" style="padding-left: 0.5em;"> |
| <div id="projectname">API Reference Manual for linux-dpdk |
|  <span id="projectnumber">1.47.0</span> |
| </div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.9.1 --> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ |
| var searchBox = new SearchBox("searchBox", "search",false,'Search','.html'); |
| /* @license-end */ |
| </script> |
| <script type="text/javascript" src="menudata.js"></script> |
| <script type="text/javascript" src="menu.js"></script> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ |
| $(function() { |
| initMenu('',true,false,'search.php','Search'); |
| $(document).ready(function() { init_search(); }); |
| }); |
| /* @license-end */</script> |
| <div id="main-nav"></div> |
| </div><!-- top --> |
| <div id="side-nav" class="ui-resizable side-nav-resizable"> |
| <div id="nav-tree"> |
| <div id="nav-tree-contents"> |
| <div id="nav-sync" class="sync"></div> |
| </div> |
| </div> |
| <div id="splitbar" style="-moz-user-select:none;" |
| class="ui-resizable-handle"> |
| </div> |
| </div> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ |
| $(document).ready(function(){initNavTree('group__odp__packet.html',''); initResizable(); }); |
| /* @license-end */ |
| </script> |
| <div id="doc-content"> |
| <!-- window showing the filter options --> |
| <div id="MSearchSelectWindow" |
| onmouseover="return searchBox.OnSearchSelectShow()" |
| onmouseout="return searchBox.OnSearchSelectHide()" |
| onkeydown="return searchBox.OnSearchSelectKey(event)"> |
| </div> |
| |
| <!-- iframe showing the search results (closed by default) --> |
| <div id="MSearchResultsWindow"> |
| <iframe src="javascript:void(0)" frameborder="0" |
| name="MSearchResults" id="MSearchResults"> |
| </iframe> |
| </div> |
| |
| <div class="header"> |
| <div class="summary"> |
| <a href="#nested-classes">Data Structures</a> | |
| <a href="#define-members">Macros</a> | |
| <a href="#typedef-members">Typedefs</a> | |
| <a href="#enum-members">Enumerations</a> | |
| <a href="#func-members">Functions</a> </div> |
| <div class="headertitle"> |
| <div class="title">ODP PACKET</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| <a name="details" id="details"></a><h2 class="groupheader">API Description</h2> |
| <p>Packet event metadata and operations. </p> |
| <dl class="section user"><dt>Operations on packet metadata flags</dt><dd></dd></dl> |
| <p>If user sets multiple conflicting packet metadata flags using odp_packet_has_XX_set() functions, only the last set flag value is guaranteed to hold. The values of other conflicting flags are implementation specific. The conflicting flag combinations are defined in function documentations. </p> |
| <table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> |
| Data Structures</h2></td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structodp__packet__parse__result__flag__t.html">odp_packet_parse_result_flag_t</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Parse result flags. <a href="structodp__packet__parse__result__flag__t.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structodp__packet__data__range.html">odp_packet_data_range</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Packet API data range specifier. <a href="structodp__packet__data__range.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structodp__packet__reass__info__t.html">odp_packet_reass_info_t</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Information about a completed reassembly. <a href="structodp__packet__reass__info__t.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structodp__packet__reass__partial__state__t.html">odp_packet_reass_partial_state_t</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Result from <a class="el" href="group__odp__packet.html#gabb92b37b4ccfe45efd24a3f2dd0e1979" title="Get partial reassembly state from a packet.">odp_packet_reass_partial_state()</a> <a href="structodp__packet__reass__partial__state__t.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union  </td><td class="memItemRight" valign="bottom"><a class="el" href="unionodp__proto__chksums__t.html">odp_proto_chksums_t</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Flags to control packet data checksum checking. <a href="unionodp__proto__chksums__t.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structodp__packet__parse__param__t.html">odp_packet_parse_param_t</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Packet parse parameters. <a href="structodp__packet__parse__param__t.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structodp__packet__parse__result__t.html">odp_packet_parse_result_t</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Packet parse results. <a href="structodp__packet__parse__result__t.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structodp__packet__lso__opt__t.html">odp_packet_lso_opt_t</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">LSO options. <a href="structodp__packet__lso__opt__t.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structodp__packet__tx__compl__opt__t.html">odp_packet_tx_compl_opt_t</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Packet transmit completion request options. <a href="structodp__packet__tx__compl__opt__t.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structodp__packet__proto__stats__opt__t.html">odp_packet_proto_stats_opt_t</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Packet proto stats options. <a href="structodp__packet__proto__stats__opt__t.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> |
| Macros</h2></td></tr> |
| <tr class="memitem:gaba8cf39480fb133ab8299155d4ef63dc"><td class="memItemLeft" align="right" valign="top"><a id="gaba8cf39480fb133ab8299155d4ef63dc"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaba8cf39480fb133ab8299155d4ef63dc">ODP_PACKET_INVALID</a>   ((<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a>)0)</td></tr> |
| <tr class="memdesc:gaba8cf39480fb133ab8299155d4ef63dc"><td class="mdescLeft"> </td><td class="mdescRight">Invalid packet. <br /></td></tr> |
| <tr class="separator:gaba8cf39480fb133ab8299155d4ef63dc"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga73db5a837748f17620d0657837d3800a"><td class="memItemLeft" align="right" valign="top"><a id="ga73db5a837748f17620d0657837d3800a"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga73db5a837748f17620d0657837d3800a">ODP_PACKET_SEG_INVALID</a>   ((<a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a>)0)</td></tr> |
| <tr class="memdesc:ga73db5a837748f17620d0657837d3800a"><td class="mdescLeft"> </td><td class="mdescRight">Invalid packet segment. <br /></td></tr> |
| <tr class="separator:ga73db5a837748f17620d0657837d3800a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga4785db06b876daff8fc58a48b3abf176"><td class="memItemLeft" align="right" valign="top"><a id="ga4785db06b876daff8fc58a48b3abf176"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga4785db06b876daff8fc58a48b3abf176">ODP_PACKET_BUF_INVALID</a>   ((<a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a>)0)</td></tr> |
| <tr class="memdesc:ga4785db06b876daff8fc58a48b3abf176"><td class="mdescLeft"> </td><td class="mdescRight">Invalid packet buffer. <br /></td></tr> |
| <tr class="separator:ga4785db06b876daff8fc58a48b3abf176"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga2fd2cf7b7b354945cb0199bef6b0bff6"><td class="memItemLeft" align="right" valign="top"><a id="ga2fd2cf7b7b354945cb0199bef6b0bff6"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga2fd2cf7b7b354945cb0199bef6b0bff6">ODP_PACKET_OFFSET_INVALID</a>   0xffff</td></tr> |
| <tr class="memdesc:ga2fd2cf7b7b354945cb0199bef6b0bff6"><td class="mdescLeft"> </td><td class="mdescRight">Invalid packet offset. <br /></td></tr> |
| <tr class="separator:ga2fd2cf7b7b354945cb0199bef6b0bff6"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gae848cc0f23559d7dc30eb9bed8ff7b24"><td class="memItemLeft" align="right" valign="top"><a id="gae848cc0f23559d7dc30eb9bed8ff7b24"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gae848cc0f23559d7dc30eb9bed8ff7b24">ODP_PACKET_VECTOR_INVALID</a>   ((<a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a>)0)</td></tr> |
| <tr class="memdesc:gae848cc0f23559d7dc30eb9bed8ff7b24"><td class="mdescLeft"> </td><td class="mdescRight">Invalid packet vector. <br /></td></tr> |
| <tr class="separator:gae848cc0f23559d7dc30eb9bed8ff7b24"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaea5e89f0991c7f4463ce63b8fa6e2efc"><td class="memItemLeft" align="right" valign="top"><a id="gaea5e89f0991c7f4463ce63b8fa6e2efc"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaea5e89f0991c7f4463ce63b8fa6e2efc">ODP_PACKET_TX_COMPL_INVALID</a>   ((<a class="el" href="group__odp__packet.html#gad876550d61f3e496eed591ea98bbf38d">odp_packet_tx_compl_t</a>)0)</td></tr> |
| <tr class="memdesc:gaea5e89f0991c7f4463ce63b8fa6e2efc"><td class="mdescLeft"> </td><td class="mdescRight">Invalid packet Tx completion. <br /></td></tr> |
| <tr class="separator:gaea5e89f0991c7f4463ce63b8fa6e2efc"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga3628c01444ad1f0717c6db5861fab1dc"><td class="memItemLeft" align="right" valign="top"><a id="ga3628c01444ad1f0717c6db5861fab1dc"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga3628c01444ad1f0717c6db5861fab1dc">ODP_NUM_PACKET_COLORS</a>   3</td></tr> |
| <tr class="memdesc:ga3628c01444ad1f0717c6db5861fab1dc"><td class="mdescLeft"> </td><td class="mdescRight">Maximum number of packet colors which accommodates ODP_PACKET_GREEN, ODP_PACKET_YELLOW and ODP_PACKET_RED. <br /></td></tr> |
| <tr class="separator:ga3628c01444ad1f0717c6db5861fab1dc"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gab101d323b7326da78b6478a8d1e99e55"><td class="memItemLeft" align="right" valign="top"><a id="gab101d323b7326da78b6478a8d1e99e55"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gab101d323b7326da78b6478a8d1e99e55">ODP_PROTO_L2_TYPE_NONE</a>   0</td></tr> |
| <tr class="memdesc:gab101d323b7326da78b6478a8d1e99e55"><td class="mdescLeft"> </td><td class="mdescRight">Layer 2 protocol type not defined. <br /></td></tr> |
| <tr class="separator:gab101d323b7326da78b6478a8d1e99e55"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga6908b7c65f61c36be6379f5b0ec04540"><td class="memItemLeft" align="right" valign="top"><a id="ga6908b7c65f61c36be6379f5b0ec04540"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga6908b7c65f61c36be6379f5b0ec04540">ODP_PROTO_L2_TYPE_ETH</a>   1</td></tr> |
| <tr class="memdesc:ga6908b7c65f61c36be6379f5b0ec04540"><td class="mdescLeft"> </td><td class="mdescRight">Layer 2 protocol is Ethernet. <br /></td></tr> |
| <tr class="separator:ga6908b7c65f61c36be6379f5b0ec04540"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gae619ef3ddba426776138354deba53284"><td class="memItemLeft" align="right" valign="top"><a id="gae619ef3ddba426776138354deba53284"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gae619ef3ddba426776138354deba53284">ODP_PROTO_L3_TYPE_NONE</a>   0xFFFF</td></tr> |
| <tr class="memdesc:gae619ef3ddba426776138354deba53284"><td class="mdescLeft"> </td><td class="mdescRight">Layer 3 protocol type not defined. <br /></td></tr> |
| <tr class="separator:gae619ef3ddba426776138354deba53284"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga52d367b3e497588cb95c22f56f66deeb"><td class="memItemLeft" align="right" valign="top"><a id="ga52d367b3e497588cb95c22f56f66deeb"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga52d367b3e497588cb95c22f56f66deeb">ODP_PROTO_L3_TYPE_ARP</a>   0x0806</td></tr> |
| <tr class="memdesc:ga52d367b3e497588cb95c22f56f66deeb"><td class="mdescLeft"> </td><td class="mdescRight">Layer 3 protocol is ARP. <br /></td></tr> |
| <tr class="separator:ga52d367b3e497588cb95c22f56f66deeb"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga0131fd878beac07a1917b8d5bd9f7a88"><td class="memItemLeft" align="right" valign="top"><a id="ga0131fd878beac07a1917b8d5bd9f7a88"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga0131fd878beac07a1917b8d5bd9f7a88">ODP_PROTO_L3_TYPE_RARP</a>   0x8035</td></tr> |
| <tr class="memdesc:ga0131fd878beac07a1917b8d5bd9f7a88"><td class="mdescLeft"> </td><td class="mdescRight">Layer 3 protocol is RARP. <br /></td></tr> |
| <tr class="separator:ga0131fd878beac07a1917b8d5bd9f7a88"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad0e315521546a04ab00c18683a4f5b13"><td class="memItemLeft" align="right" valign="top"><a id="gad0e315521546a04ab00c18683a4f5b13"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad0e315521546a04ab00c18683a4f5b13">ODP_PROTO_L3_TYPE_MPLS</a>   0x8847</td></tr> |
| <tr class="memdesc:gad0e315521546a04ab00c18683a4f5b13"><td class="mdescLeft"> </td><td class="mdescRight">Layer 3 protocol is MPLS. <br /></td></tr> |
| <tr class="separator:gad0e315521546a04ab00c18683a4f5b13"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gacf4e6adf61acb53d6c731576f2bc5a88"><td class="memItemLeft" align="right" valign="top"><a id="gacf4e6adf61acb53d6c731576f2bc5a88"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gacf4e6adf61acb53d6c731576f2bc5a88">ODP_PROTO_L3_TYPE_IPV4</a>   0x0800</td></tr> |
| <tr class="memdesc:gacf4e6adf61acb53d6c731576f2bc5a88"><td class="mdescLeft"> </td><td class="mdescRight">Layer 3 protocol type is IPv4. <br /></td></tr> |
| <tr class="separator:gacf4e6adf61acb53d6c731576f2bc5a88"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaeaa720707be2e99199ad60415b91cc5f"><td class="memItemLeft" align="right" valign="top"><a id="gaeaa720707be2e99199ad60415b91cc5f"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaeaa720707be2e99199ad60415b91cc5f">ODP_PROTO_L3_TYPE_IPV6</a>   0x86DD</td></tr> |
| <tr class="memdesc:gaeaa720707be2e99199ad60415b91cc5f"><td class="mdescLeft"> </td><td class="mdescRight">Layer 3 protocol type is IPv6. <br /></td></tr> |
| <tr class="separator:gaeaa720707be2e99199ad60415b91cc5f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga9e5a811ee769c334c6a2bd4b35580b99"><td class="memItemLeft" align="right" valign="top"><a id="ga9e5a811ee769c334c6a2bd4b35580b99"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga9e5a811ee769c334c6a2bd4b35580b99">ODP_PROTO_L4_TYPE_NONE</a>   255</td></tr> |
| <tr class="memdesc:ga9e5a811ee769c334c6a2bd4b35580b99"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type not defined. <br /></td></tr> |
| <tr class="separator:ga9e5a811ee769c334c6a2bd4b35580b99"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad7e2f8e9fe6cf1601a04f881d201013f"><td class="memItemLeft" align="right" valign="top"><a id="gad7e2f8e9fe6cf1601a04f881d201013f"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad7e2f8e9fe6cf1601a04f881d201013f">ODP_PROTO_L4_TYPE_ICMPV4</a>   1</td></tr> |
| <tr class="memdesc:gad7e2f8e9fe6cf1601a04f881d201013f"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type is ICMPv4. <br /></td></tr> |
| <tr class="separator:gad7e2f8e9fe6cf1601a04f881d201013f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gac0e74ed4cf4aab9c1a03c56d761339da"><td class="memItemLeft" align="right" valign="top"><a id="gac0e74ed4cf4aab9c1a03c56d761339da"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gac0e74ed4cf4aab9c1a03c56d761339da">ODP_PROTO_L4_TYPE_IGMP</a>   2</td></tr> |
| <tr class="memdesc:gac0e74ed4cf4aab9c1a03c56d761339da"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type is IGMP. <br /></td></tr> |
| <tr class="separator:gac0e74ed4cf4aab9c1a03c56d761339da"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad51dd5b815719e645969e2bcb63d2e53"><td class="memItemLeft" align="right" valign="top"><a id="gad51dd5b815719e645969e2bcb63d2e53"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad51dd5b815719e645969e2bcb63d2e53">ODP_PROTO_L4_TYPE_IPV4</a>   4</td></tr> |
| <tr class="memdesc:gad51dd5b815719e645969e2bcb63d2e53"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type is IPv4. <br /></td></tr> |
| <tr class="separator:gad51dd5b815719e645969e2bcb63d2e53"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gacb1e75aeeaf58f3c3acefcf778692201"><td class="memItemLeft" align="right" valign="top"><a id="gacb1e75aeeaf58f3c3acefcf778692201"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gacb1e75aeeaf58f3c3acefcf778692201">ODP_PROTO_L4_TYPE_TCP</a>   6</td></tr> |
| <tr class="memdesc:gacb1e75aeeaf58f3c3acefcf778692201"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type is TCP. <br /></td></tr> |
| <tr class="separator:gacb1e75aeeaf58f3c3acefcf778692201"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaf6398f8662878d5bde8bc389ede287b6"><td class="memItemLeft" align="right" valign="top"><a id="gaf6398f8662878d5bde8bc389ede287b6"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaf6398f8662878d5bde8bc389ede287b6">ODP_PROTO_L4_TYPE_UDP</a>   17</td></tr> |
| <tr class="memdesc:gaf6398f8662878d5bde8bc389ede287b6"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type is UDP. <br /></td></tr> |
| <tr class="separator:gaf6398f8662878d5bde8bc389ede287b6"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gac3e50c854ddcf3af461eaf9d3ef98467"><td class="memItemLeft" align="right" valign="top"><a id="gac3e50c854ddcf3af461eaf9d3ef98467"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gac3e50c854ddcf3af461eaf9d3ef98467">ODP_PROTO_L4_TYPE_IPV6</a>   41</td></tr> |
| <tr class="memdesc:gac3e50c854ddcf3af461eaf9d3ef98467"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type is IPv6. <br /></td></tr> |
| <tr class="separator:gac3e50c854ddcf3af461eaf9d3ef98467"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga26306d37aeff35fc2a1210ffd3288168"><td class="memItemLeft" align="right" valign="top"><a id="ga26306d37aeff35fc2a1210ffd3288168"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga26306d37aeff35fc2a1210ffd3288168">ODP_PROTO_L4_TYPE_GRE</a>   47</td></tr> |
| <tr class="memdesc:ga26306d37aeff35fc2a1210ffd3288168"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type is GRE. <br /></td></tr> |
| <tr class="separator:ga26306d37aeff35fc2a1210ffd3288168"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga898994755be9386ca9b1c911df09da89"><td class="memItemLeft" align="right" valign="top"><a id="ga898994755be9386ca9b1c911df09da89"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga898994755be9386ca9b1c911df09da89">ODP_PROTO_L4_TYPE_ESP</a>   50</td></tr> |
| <tr class="memdesc:ga898994755be9386ca9b1c911df09da89"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type is IPSEC ESP. <br /></td></tr> |
| <tr class="separator:ga898994755be9386ca9b1c911df09da89"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga444f20e2723efe4ac9c69b65f9d288c8"><td class="memItemLeft" align="right" valign="top"><a id="ga444f20e2723efe4ac9c69b65f9d288c8"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga444f20e2723efe4ac9c69b65f9d288c8">ODP_PROTO_L4_TYPE_AH</a>   51</td></tr> |
| <tr class="memdesc:ga444f20e2723efe4ac9c69b65f9d288c8"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type is IPSEC AH. <br /></td></tr> |
| <tr class="separator:ga444f20e2723efe4ac9c69b65f9d288c8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga629d122c729c0bcb45b5c049015d67c4"><td class="memItemLeft" align="right" valign="top"><a id="ga629d122c729c0bcb45b5c049015d67c4"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga629d122c729c0bcb45b5c049015d67c4">ODP_PROTO_L4_TYPE_ICMPV6</a>   58</td></tr> |
| <tr class="memdesc:ga629d122c729c0bcb45b5c049015d67c4"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type is ICMPv6. <br /></td></tr> |
| <tr class="separator:ga629d122c729c0bcb45b5c049015d67c4"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga1f3d65ba6d064b4b274cbc3872a1befd"><td class="memItemLeft" align="right" valign="top"><a id="ga1f3d65ba6d064b4b274cbc3872a1befd"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga1f3d65ba6d064b4b274cbc3872a1befd">ODP_PROTO_L4_TYPE_NO_NEXT</a>   59</td></tr> |
| <tr class="memdesc:ga1f3d65ba6d064b4b274cbc3872a1befd"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type is No Next Header for IPv6. <br /></td></tr> |
| <tr class="separator:ga1f3d65ba6d064b4b274cbc3872a1befd"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaa706269f0971ebacf24582c2d3f25c05"><td class="memItemLeft" align="right" valign="top"><a id="gaa706269f0971ebacf24582c2d3f25c05"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaa706269f0971ebacf24582c2d3f25c05">ODP_PROTO_L4_TYPE_IPCOMP</a>   108</td></tr> |
| <tr class="memdesc:gaa706269f0971ebacf24582c2d3f25c05"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type is IP Payload Compression Protocol. <br /></td></tr> |
| <tr class="separator:gaa706269f0971ebacf24582c2d3f25c05"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga630818df10d2ffc19f6a571d3e963433"><td class="memItemLeft" align="right" valign="top"><a id="ga630818df10d2ffc19f6a571d3e963433"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga630818df10d2ffc19f6a571d3e963433">ODP_PROTO_L4_TYPE_SCTP</a>   132</td></tr> |
| <tr class="memdesc:ga630818df10d2ffc19f6a571d3e963433"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type is SCTP. <br /></td></tr> |
| <tr class="separator:ga630818df10d2ffc19f6a571d3e963433"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gab7d5103b71a70e600d0ca883bd8f3ef2"><td class="memItemLeft" align="right" valign="top"><a id="gab7d5103b71a70e600d0ca883bd8f3ef2"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gab7d5103b71a70e600d0ca883bd8f3ef2">ODP_PROTO_L4_TYPE_ROHC</a>   142</td></tr> |
| <tr class="memdesc:gab7d5103b71a70e600d0ca883bd8f3ef2"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type is ROHC. <br /></td></tr> |
| <tr class="separator:gab7d5103b71a70e600d0ca883bd8f3ef2"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gabdbb67db95cd4143aa3e47ad66666687"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gabdbb67db95cd4143aa3e47ad66666687">ODP_PACKET_TX_COMPL_ALL</a>   <a class="el" href="group__odp__packet.html#gga4bb031f9e7fc5ba10c67a713afdb2e61a7ad3c421b06b807be8ec874ab12a4627">ODP_PACKET_TX_COMPL_EVENT</a></td></tr> |
| <tr class="memdesc:gabdbb67db95cd4143aa3e47ad66666687"><td class="mdescLeft"> </td><td class="mdescRight">For backwards compatibility, ODP_PACKET_TX_COMPL_ALL is synonym of ODP_PACKET_TX_COMPL_EVENT. <a href="group__odp__packet.html#gabdbb67db95cd4143aa3e47ad66666687">More...</a><br /></td></tr> |
| <tr class="separator:gabdbb67db95cd4143aa3e47ad66666687"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> |
| Typedefs</h2></td></tr> |
| <tr class="memitem:gae0641dfc3b74aabd61154e24419e35a6"><td class="memItemLeft" align="right" valign="top"><a id="gae0641dfc3b74aabd61154e24419e35a6"></a> |
| typedef <a class="el" href="struct__odp__abi__packet__t.html">_odp_abi_packet_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a></td></tr> |
| <tr class="memdesc:gae0641dfc3b74aabd61154e24419e35a6"><td class="mdescLeft"> </td><td class="mdescRight">ODP packet. <br /></td></tr> |
| <tr class="separator:gae0641dfc3b74aabd61154e24419e35a6"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga96879753fc2a295c4f6d3870f787f565"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="struct__odp__abi__packet__seg__t.html">_odp_abi_packet_seg_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a></td></tr> |
| <tr class="memdesc:ga96879753fc2a295c4f6d3870f787f565"><td class="mdescLeft"> </td><td class="mdescRight">ODP packet segment. <a href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">More...</a><br /></td></tr> |
| <tr class="separator:ga96879753fc2a295c4f6d3870f787f565"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga93a7765945bb4d132c77285fba275f9f"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="struct__odp__abi__packet__buf__t.html">_odp_abi_packet_buf_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a></td></tr> |
| <tr class="memdesc:ga93a7765945bb4d132c77285fba275f9f"><td class="mdescLeft"> </td><td class="mdescRight">ODP packet buffer. <a href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">More...</a><br /></td></tr> |
| <tr class="separator:ga93a7765945bb4d132c77285fba275f9f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga52b924c9f322081544bb8fc21f695eca"><td class="memItemLeft" align="right" valign="top"><a id="ga52b924c9f322081544bb8fc21f695eca"></a> |
| typedef <a class="el" href="struct__odp__abi__packet__vector__t.html">_odp_abi_packet_vector_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a></td></tr> |
| <tr class="memdesc:ga52b924c9f322081544bb8fc21f695eca"><td class="mdescLeft"> </td><td class="mdescRight">ODP packet vector. <br /></td></tr> |
| <tr class="separator:ga52b924c9f322081544bb8fc21f695eca"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad876550d61f3e496eed591ea98bbf38d"><td class="memItemLeft" align="right" valign="top"><a id="gad876550d61f3e496eed591ea98bbf38d"></a> |
| typedef <a class="el" href="struct__odp__abi__packet__tx__compl__t.html">_odp_abi_packet_tx_compl_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad876550d61f3e496eed591ea98bbf38d">odp_packet_tx_compl_t</a></td></tr> |
| <tr class="memdesc:gad876550d61f3e496eed591ea98bbf38d"><td class="mdescLeft"> </td><td class="mdescRight">ODP Packet Tx completion. <br /></td></tr> |
| <tr class="separator:gad876550d61f3e496eed591ea98bbf38d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga881c983f915f15a531a80de8dd08d95d"><td class="memItemLeft" align="right" valign="top"><a id="ga881c983f915f15a531a80de8dd08d95d"></a> |
| typedef struct <a class="el" href="structodp__packet__parse__result__flag__t.html">odp_packet_parse_result_flag_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga881c983f915f15a531a80de8dd08d95d">odp_packet_parse_result_flag_t</a></td></tr> |
| <tr class="memdesc:ga881c983f915f15a531a80de8dd08d95d"><td class="mdescLeft"> </td><td class="mdescRight">Parse result flags. <br /></td></tr> |
| <tr class="separator:ga881c983f915f15a531a80de8dd08d95d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaf7dbe2e9d44019a2589323b870868f68"><td class="memItemLeft" align="right" valign="top"><a id="gaf7dbe2e9d44019a2589323b870868f68"></a> |
| typedef uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaf7dbe2e9d44019a2589323b870868f68">odp_proto_l2_type_t</a></td></tr> |
| <tr class="memdesc:gaf7dbe2e9d44019a2589323b870868f68"><td class="mdescLeft"> </td><td class="mdescRight">Layer 2 protocol type. <br /></td></tr> |
| <tr class="separator:gaf7dbe2e9d44019a2589323b870868f68"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga406d88edf230d5177c114b5046e33cdf"><td class="memItemLeft" align="right" valign="top"><a id="ga406d88edf230d5177c114b5046e33cdf"></a> |
| typedef uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga406d88edf230d5177c114b5046e33cdf">odp_proto_l3_type_t</a></td></tr> |
| <tr class="memdesc:ga406d88edf230d5177c114b5046e33cdf"><td class="mdescLeft"> </td><td class="mdescRight">Layer 3 protocol type. <br /></td></tr> |
| <tr class="separator:ga406d88edf230d5177c114b5046e33cdf"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gac81078393c53cbc0ac16c29137085703"><td class="memItemLeft" align="right" valign="top"><a id="gac81078393c53cbc0ac16c29137085703"></a> |
| typedef uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gac81078393c53cbc0ac16c29137085703">odp_proto_l4_type_t</a></td></tr> |
| <tr class="memdesc:gac81078393c53cbc0ac16c29137085703"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type. <br /></td></tr> |
| <tr class="separator:gac81078393c53cbc0ac16c29137085703"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga1d79491e12afe1d75572e47abfb5075f"><td class="memItemLeft" align="right" valign="top"><a id="ga1d79491e12afe1d75572e47abfb5075f"></a> |
| typedef enum <a class="el" href="group__odp__packet.html#ga1c1953ca031653b51469128363e55ab8">odp_proto_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga1d79491e12afe1d75572e47abfb5075f">odp_proto_t</a></td></tr> |
| <tr class="memdesc:ga1d79491e12afe1d75572e47abfb5075f"><td class="mdescLeft"> </td><td class="mdescRight">Protocol. <br /></td></tr> |
| <tr class="separator:ga1d79491e12afe1d75572e47abfb5075f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga282cf4790d448f8f13a72393db626f4b"><td class="memItemLeft" align="right" valign="top"><a id="ga282cf4790d448f8f13a72393db626f4b"></a> |
| typedef enum <a class="el" href="group__odp__packet.html#ga428cdbec9e7bc0bc19286f9564f9828b">odp_proto_layer_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga282cf4790d448f8f13a72393db626f4b">odp_proto_layer_t</a></td></tr> |
| <tr class="memdesc:ga282cf4790d448f8f13a72393db626f4b"><td class="mdescLeft"> </td><td class="mdescRight">Protocol layer. <br /></td></tr> |
| <tr class="separator:ga282cf4790d448f8f13a72393db626f4b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga3679864d08a10a773f2c29bbef408617"><td class="memItemLeft" align="right" valign="top"><a id="ga3679864d08a10a773f2c29bbef408617"></a> |
| typedef struct <a class="el" href="structodp__packet__data__range.html">odp_packet_data_range</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga3679864d08a10a773f2c29bbef408617">odp_packet_data_range_t</a></td></tr> |
| <tr class="memdesc:ga3679864d08a10a773f2c29bbef408617"><td class="mdescLeft"> </td><td class="mdescRight">Packet API data range specifier. <br /></td></tr> |
| <tr class="separator:ga3679864d08a10a773f2c29bbef408617"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gab26684f50a730186b81ad63cba129ef5"><td class="memItemLeft" align="right" valign="top"><a id="gab26684f50a730186b81ad63cba129ef5"></a> |
| typedef enum <a class="el" href="group__odp__packet.html#ga921fa9035d7f9f3989afbcc7bcdfb6fd">odp_packet_reass_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gab26684f50a730186b81ad63cba129ef5">odp_packet_reass_status_t</a></td></tr> |
| <tr class="memdesc:gab26684f50a730186b81ad63cba129ef5"><td class="mdescLeft"> </td><td class="mdescRight">Reassembly status of a packet. <br /></td></tr> |
| <tr class="separator:gab26684f50a730186b81ad63cba129ef5"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaaa91eefc436b0f3ac3e2f507ea5d5f53"><td class="memItemLeft" align="right" valign="top"><a id="gaaa91eefc436b0f3ac3e2f507ea5d5f53"></a> |
| typedef struct <a class="el" href="structodp__packet__reass__info__t.html">odp_packet_reass_info_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaaa91eefc436b0f3ac3e2f507ea5d5f53">odp_packet_reass_info_t</a></td></tr> |
| <tr class="memdesc:gaaa91eefc436b0f3ac3e2f507ea5d5f53"><td class="mdescLeft"> </td><td class="mdescRight">Information about a completed reassembly. <br /></td></tr> |
| <tr class="separator:gaaa91eefc436b0f3ac3e2f507ea5d5f53"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gab80408220e6ba7e04f7ece541482bf86"><td class="memItemLeft" align="right" valign="top"><a id="gab80408220e6ba7e04f7ece541482bf86"></a> |
| typedef struct <a class="el" href="structodp__packet__reass__partial__state__t.html">odp_packet_reass_partial_state_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gab80408220e6ba7e04f7ece541482bf86">odp_packet_reass_partial_state_t</a></td></tr> |
| <tr class="memdesc:gab80408220e6ba7e04f7ece541482bf86"><td class="mdescLeft"> </td><td class="mdescRight">Result from <a class="el" href="group__odp__packet.html#gabb92b37b4ccfe45efd24a3f2dd0e1979" title="Get partial reassembly state from a packet.">odp_packet_reass_partial_state()</a> <br /></td></tr> |
| <tr class="separator:gab80408220e6ba7e04f7ece541482bf86"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaee260ed618de46adf25627805efda019"><td class="memItemLeft" align="right" valign="top"><a id="gaee260ed618de46adf25627805efda019"></a> |
| typedef union <a class="el" href="unionodp__proto__chksums__t.html">odp_proto_chksums_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaee260ed618de46adf25627805efda019">odp_proto_chksums_t</a></td></tr> |
| <tr class="memdesc:gaee260ed618de46adf25627805efda019"><td class="mdescLeft"> </td><td class="mdescRight">Flags to control packet data checksum checking. <br /></td></tr> |
| <tr class="separator:gaee260ed618de46adf25627805efda019"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga718d7253ee9a1b2b9758e48594cddb82"><td class="memItemLeft" align="right" valign="top"><a id="ga718d7253ee9a1b2b9758e48594cddb82"></a> |
| typedef struct <a class="el" href="structodp__packet__parse__param__t.html">odp_packet_parse_param_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga718d7253ee9a1b2b9758e48594cddb82">odp_packet_parse_param_t</a></td></tr> |
| <tr class="memdesc:ga718d7253ee9a1b2b9758e48594cddb82"><td class="mdescLeft"> </td><td class="mdescRight">Packet parse parameters. <br /></td></tr> |
| <tr class="separator:ga718d7253ee9a1b2b9758e48594cddb82"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga380d5ec606138cdd618fa0d510d106ad"><td class="memItemLeft" align="right" valign="top"><a id="ga380d5ec606138cdd618fa0d510d106ad"></a> |
| typedef struct <a class="el" href="structodp__packet__parse__result__t.html">odp_packet_parse_result_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga380d5ec606138cdd618fa0d510d106ad">odp_packet_parse_result_t</a></td></tr> |
| <tr class="memdesc:ga380d5ec606138cdd618fa0d510d106ad"><td class="mdescLeft"> </td><td class="mdescRight">Packet parse results. <br /></td></tr> |
| <tr class="separator:ga380d5ec606138cdd618fa0d510d106ad"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad495d410946f2a3b8f4ecc9c81f9348d"><td class="memItemLeft" align="right" valign="top"><a id="gad495d410946f2a3b8f4ecc9c81f9348d"></a> |
| typedef struct <a class="el" href="structodp__packet__lso__opt__t.html">odp_packet_lso_opt_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad495d410946f2a3b8f4ecc9c81f9348d">odp_packet_lso_opt_t</a></td></tr> |
| <tr class="memdesc:gad495d410946f2a3b8f4ecc9c81f9348d"><td class="mdescLeft"> </td><td class="mdescRight">LSO options. <br /></td></tr> |
| <tr class="separator:gad495d410946f2a3b8f4ecc9c81f9348d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga490a1d768b9881345109569d36b6f796"><td class="memItemLeft" align="right" valign="top"><a id="ga490a1d768b9881345109569d36b6f796"></a> |
| typedef enum <a class="el" href="group__odp__packet.html#ga4bb031f9e7fc5ba10c67a713afdb2e61">odp_packet_tx_compl_mode_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga490a1d768b9881345109569d36b6f796">odp_packet_tx_compl_mode_t</a></td></tr> |
| <tr class="memdesc:ga490a1d768b9881345109569d36b6f796"><td class="mdescLeft"> </td><td class="mdescRight">Packet transmit completion mode. <br /></td></tr> |
| <tr class="separator:ga490a1d768b9881345109569d36b6f796"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gac249f19ed0caf5b7315f6ee8d02cd8ef"><td class="memItemLeft" align="right" valign="top"><a id="gac249f19ed0caf5b7315f6ee8d02cd8ef"></a> |
| typedef struct <a class="el" href="structodp__packet__tx__compl__opt__t.html">odp_packet_tx_compl_opt_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gac249f19ed0caf5b7315f6ee8d02cd8ef">odp_packet_tx_compl_opt_t</a></td></tr> |
| <tr class="memdesc:gac249f19ed0caf5b7315f6ee8d02cd8ef"><td class="mdescLeft"> </td><td class="mdescRight">Packet transmit completion request options. <br /></td></tr> |
| <tr class="separator:gac249f19ed0caf5b7315f6ee8d02cd8ef"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gade71a4057d1093fb8fd62ef3c209622a"><td class="memItemLeft" align="right" valign="top"><a id="gade71a4057d1093fb8fd62ef3c209622a"></a> |
| typedef enum <a class="el" href="group__odp__packet.html#ga187fb105f4575928e18c7438c3070be1">odp_packet_free_ctrl_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gade71a4057d1093fb8fd62ef3c209622a">odp_packet_free_ctrl_t</a></td></tr> |
| <tr class="memdesc:gade71a4057d1093fb8fd62ef3c209622a"><td class="mdescLeft"> </td><td class="mdescRight">Packet free control option. <br /></td></tr> |
| <tr class="separator:gade71a4057d1093fb8fd62ef3c209622a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga5a2cf31f2669edcab61530c13fe77c94"><td class="memItemLeft" align="right" valign="top"><a id="ga5a2cf31f2669edcab61530c13fe77c94"></a> |
| typedef struct <a class="el" href="structodp__packet__proto__stats__opt__t.html">odp_packet_proto_stats_opt_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga5a2cf31f2669edcab61530c13fe77c94">odp_packet_proto_stats_opt_t</a></td></tr> |
| <tr class="memdesc:ga5a2cf31f2669edcab61530c13fe77c94"><td class="mdescLeft"> </td><td class="mdescRight">Packet proto stats options. <br /></td></tr> |
| <tr class="separator:ga5a2cf31f2669edcab61530c13fe77c94"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a> |
| Enumerations</h2></td></tr> |
| <tr class="memitem:gac19d4ea0c0918ffa4a804ea83c5ab131"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gac19d4ea0c0918ffa4a804ea83c5ab131">odp_packet_color_t</a> { <a class="el" href="group__odp__packet.html#ggac19d4ea0c0918ffa4a804ea83c5ab131acb86d06a54277d5e4bce0ff51e0de3eb">ODP_PACKET_GREEN</a> = 0 |
| , <a class="el" href="group__odp__packet.html#ggac19d4ea0c0918ffa4a804ea83c5ab131aa613740121f2e69161b9bd4a56e3225d">ODP_PACKET_YELLOW</a> = 1 |
| , <a class="el" href="group__odp__packet.html#ggac19d4ea0c0918ffa4a804ea83c5ab131ac6271f6e429a18cf631793a47d1098f7">ODP_PACKET_RED</a> = 2 |
| , <b>ODP_PACKET_ALL_COLORS</b> = 3 |
| }</td></tr> |
| <tr class="memdesc:gac19d4ea0c0918ffa4a804ea83c5ab131"><td class="mdescLeft"> </td><td class="mdescRight">Packet Color. <a href="group__odp__packet.html#gac19d4ea0c0918ffa4a804ea83c5ab131">More...</a><br /></td></tr> |
| <tr class="separator:gac19d4ea0c0918ffa4a804ea83c5ab131"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gabf47d1f8d2c6fc6a4391d028a5acc749"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gabf47d1f8d2c6fc6a4391d028a5acc749">odp_packet_chksum_status_t</a> { <a class="el" href="group__odp__packet.html#ggabf47d1f8d2c6fc6a4391d028a5acc749ab79f731430a7f396c87acbe7a983d836">ODP_PACKET_CHKSUM_UNKNOWN</a> = 0 |
| , <a class="el" href="group__odp__packet.html#ggabf47d1f8d2c6fc6a4391d028a5acc749a1295768041cfd67a5c5e88beec098fec">ODP_PACKET_CHKSUM_BAD</a> |
| , <a class="el" href="group__odp__packet.html#ggabf47d1f8d2c6fc6a4391d028a5acc749a702ab156478a40f754a7457a7fa98ea0">ODP_PACKET_CHKSUM_OK</a> |
| }</td></tr> |
| <tr class="memdesc:gabf47d1f8d2c6fc6a4391d028a5acc749"><td class="mdescLeft"> </td><td class="mdescRight">Packet Checksum Status. <a href="group__odp__packet.html#gabf47d1f8d2c6fc6a4391d028a5acc749">More...</a><br /></td></tr> |
| <tr class="separator:gabf47d1f8d2c6fc6a4391d028a5acc749"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga1c1953ca031653b51469128363e55ab8"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga1c1953ca031653b51469128363e55ab8">odp_proto_t</a> { <a class="el" href="group__odp__packet.html#gga1c1953ca031653b51469128363e55ab8a07f42c299dba340592495aa77abf955a">ODP_PROTO_NONE</a> = 0 |
| , <a class="el" href="group__odp__packet.html#gga1c1953ca031653b51469128363e55ab8aa22a3391dfa7f2a1d8db9aa18667841f">ODP_PROTO_ETH</a> |
| , <a class="el" href="group__odp__packet.html#gga1c1953ca031653b51469128363e55ab8aa9135f97b6711405c0cefff71a3130ac">ODP_PROTO_IPV4</a> |
| , <a class="el" href="group__odp__packet.html#gga1c1953ca031653b51469128363e55ab8aa13cafe3e2050890432f8f374df3b6eb">ODP_PROTO_IPV6</a> |
| }</td></tr> |
| <tr class="memdesc:ga1c1953ca031653b51469128363e55ab8"><td class="mdescLeft"> </td><td class="mdescRight">Protocol. <a href="group__odp__packet.html#ga1c1953ca031653b51469128363e55ab8">More...</a><br /></td></tr> |
| <tr class="separator:ga1c1953ca031653b51469128363e55ab8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga428cdbec9e7bc0bc19286f9564f9828b"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga428cdbec9e7bc0bc19286f9564f9828b">odp_proto_layer_t</a> { <br /> |
|   <a class="el" href="group__odp__packet.html#gga428cdbec9e7bc0bc19286f9564f9828ba5404cdbbe70c105fa88e1e0c146cce54">ODP_PROTO_LAYER_NONE</a> = 0 |
| , <a class="el" href="group__odp__packet.html#gga428cdbec9e7bc0bc19286f9564f9828baff3161006596a85044c7b2ca1016dac0">ODP_PROTO_LAYER_L2</a> |
| , <a class="el" href="group__odp__packet.html#gga428cdbec9e7bc0bc19286f9564f9828ba05ec885bbe7e9f0812d92719ddde9efd">ODP_PROTO_LAYER_L3</a> |
| , <a class="el" href="group__odp__packet.html#gga428cdbec9e7bc0bc19286f9564f9828ba45a5be98c1596b05a7406f894902beaf">ODP_PROTO_LAYER_L4</a> |
| , <br /> |
|   <a class="el" href="group__odp__packet.html#gga428cdbec9e7bc0bc19286f9564f9828ba3a3cbdc7032884954f7b688afacd37d5">ODP_PROTO_LAYER_ALL</a> |
| <br /> |
| }</td></tr> |
| <tr class="memdesc:ga428cdbec9e7bc0bc19286f9564f9828b"><td class="mdescLeft"> </td><td class="mdescRight">Protocol layer. <a href="group__odp__packet.html#ga428cdbec9e7bc0bc19286f9564f9828b">More...</a><br /></td></tr> |
| <tr class="separator:ga428cdbec9e7bc0bc19286f9564f9828b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga921fa9035d7f9f3989afbcc7bcdfb6fd"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga921fa9035d7f9f3989afbcc7bcdfb6fd">odp_packet_reass_status_t</a> { <a class="el" href="group__odp__packet.html#gga921fa9035d7f9f3989afbcc7bcdfb6fdaf1b860a078a7bc5a33019eddec47c91e">ODP_PACKET_REASS_NONE</a> = 0 |
| , <a class="el" href="group__odp__packet.html#gga921fa9035d7f9f3989afbcc7bcdfb6fda1081329cc1c9e8f5edb527b4526a4a24">ODP_PACKET_REASS_INCOMPLETE</a> |
| , <a class="el" href="group__odp__packet.html#gga921fa9035d7f9f3989afbcc7bcdfb6fdab31ad11c7751e8c60ec490b814396526">ODP_PACKET_REASS_COMPLETE</a> |
| }</td></tr> |
| <tr class="memdesc:ga921fa9035d7f9f3989afbcc7bcdfb6fd"><td class="mdescLeft"> </td><td class="mdescRight">Reassembly status of a packet. <a href="group__odp__packet.html#ga921fa9035d7f9f3989afbcc7bcdfb6fd">More...</a><br /></td></tr> |
| <tr class="separator:ga921fa9035d7f9f3989afbcc7bcdfb6fd"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga4bb031f9e7fc5ba10c67a713afdb2e61"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga4bb031f9e7fc5ba10c67a713afdb2e61">odp_packet_tx_compl_mode_t</a> { <a class="el" href="group__odp__packet.html#gga4bb031f9e7fc5ba10c67a713afdb2e61a6ae7e6d71d8ff00e235e782417fda5f6">ODP_PACKET_TX_COMPL_DISABLED</a> = 0 |
| , <a class="el" href="group__odp__packet.html#gga4bb031f9e7fc5ba10c67a713afdb2e61a7ad3c421b06b807be8ec874ab12a4627">ODP_PACKET_TX_COMPL_EVENT</a> |
| , <a class="el" href="group__odp__packet.html#gga4bb031f9e7fc5ba10c67a713afdb2e61a4053d17c20003489da855450ddffff0e">ODP_PACKET_TX_COMPL_POLL</a> |
| }</td></tr> |
| <tr class="memdesc:ga4bb031f9e7fc5ba10c67a713afdb2e61"><td class="mdescLeft"> </td><td class="mdescRight">Packet transmit completion mode. <a href="group__odp__packet.html#ga4bb031f9e7fc5ba10c67a713afdb2e61">More...</a><br /></td></tr> |
| <tr class="separator:ga4bb031f9e7fc5ba10c67a713afdb2e61"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga187fb105f4575928e18c7438c3070be1"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga187fb105f4575928e18c7438c3070be1">odp_packet_free_ctrl_t</a> { <a class="el" href="group__odp__packet.html#gga187fb105f4575928e18c7438c3070be1ae92c24b8a0bceecc2c693b55927159f4">ODP_PACKET_FREE_CTRL_DISABLED</a> = 0 |
| , <a class="el" href="group__odp__packet.html#gga187fb105f4575928e18c7438c3070be1a0bb9ee9d9f41721e3d9e58f9da1d4eef">ODP_PACKET_FREE_CTRL_DONT_FREE</a> |
| }</td></tr> |
| <tr class="memdesc:ga187fb105f4575928e18c7438c3070be1"><td class="mdescLeft"> </td><td class="mdescRight">Packet free control option. <a href="group__odp__packet.html#ga187fb105f4575928e18c7438c3070be1">More...</a><br /></td></tr> |
| <tr class="separator:ga187fb105f4575928e18c7438c3070be1"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> |
| Functions</h2></td></tr> |
| <tr class="memitem:ga1b9e567cdf8d0e256dd02ea1f87c5d0b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__event.html#ga8b1714719c72de90c54a2aba621d725e">odp_event_subtype_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga1b9e567cdf8d0e256dd02ea1f87c5d0b">odp_packet_subtype</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> packet)</td></tr> |
| <tr class="memdesc:ga1b9e567cdf8d0e256dd02ea1f87c5d0b"><td class="mdescLeft"> </td><td class="mdescRight">Event subtype of a packet. <a href="group__odp__packet.html#ga1b9e567cdf8d0e256dd02ea1f87c5d0b">More...</a><br /></td></tr> |
| <tr class="separator:ga1b9e567cdf8d0e256dd02ea1f87c5d0b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga7528dda77d71a9dbfe563dffb62d8318"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga7528dda77d71a9dbfe563dffb62d8318">odp_packet_alloc</a> (<a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> pool, uint32_t len)</td></tr> |
| <tr class="memdesc:ga7528dda77d71a9dbfe563dffb62d8318"><td class="mdescLeft"> </td><td class="mdescRight">Allocate a packet from a packet pool. <a href="group__odp__packet.html#ga7528dda77d71a9dbfe563dffb62d8318">More...</a><br /></td></tr> |
| <tr class="separator:ga7528dda77d71a9dbfe563dffb62d8318"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad8c2fe3bd45001fb1a61e827d010d9f8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad8c2fe3bd45001fb1a61e827d010d9f8">odp_packet_alloc_multi</a> (<a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> pool, uint32_t len, <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt[], int num)</td></tr> |
| <tr class="memdesc:gad8c2fe3bd45001fb1a61e827d010d9f8"><td class="mdescLeft"> </td><td class="mdescRight">Allocate multiple packets from a packet pool. <a href="group__odp__packet.html#gad8c2fe3bd45001fb1a61e827d010d9f8">More...</a><br /></td></tr> |
| <tr class="separator:gad8c2fe3bd45001fb1a61e827d010d9f8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga8a5e2cd674828c5415f3695f266347d7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga8a5e2cd674828c5415f3695f266347d7">odp_packet_free</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga8a5e2cd674828c5415f3695f266347d7"><td class="mdescLeft"> </td><td class="mdescRight">Free packet. <a href="group__odp__packet.html#ga8a5e2cd674828c5415f3695f266347d7">More...</a><br /></td></tr> |
| <tr class="separator:ga8a5e2cd674828c5415f3695f266347d7"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad190c5b094a0406b9d86da03f10c15cb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad190c5b094a0406b9d86da03f10c15cb">odp_packet_free_multi</a> (const <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt[], int num)</td></tr> |
| <tr class="memdesc:gad190c5b094a0406b9d86da03f10c15cb"><td class="mdescLeft"> </td><td class="mdescRight">Free multiple packets. <a href="group__odp__packet.html#gad190c5b094a0406b9d86da03f10c15cb">More...</a><br /></td></tr> |
| <tr class="separator:gad190c5b094a0406b9d86da03f10c15cb"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaf08f226b5d6433998e58d59811ceebaf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaf08f226b5d6433998e58d59811ceebaf">odp_packet_free_sp</a> (const <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt[], int num)</td></tr> |
| <tr class="memdesc:gaf08f226b5d6433998e58d59811ceebaf"><td class="mdescLeft"> </td><td class="mdescRight">Free multiple packets to the same pool. <a href="group__odp__packet.html#gaf08f226b5d6433998e58d59811ceebaf">More...</a><br /></td></tr> |
| <tr class="separator:gaf08f226b5d6433998e58d59811ceebaf"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaa334fa06c78f3cfe635901724d0dbfa0"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaa334fa06c78f3cfe635901724d0dbfa0">odp_packet_reset</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t len)</td></tr> |
| <tr class="memdesc:gaa334fa06c78f3cfe635901724d0dbfa0"><td class="mdescLeft"> </td><td class="mdescRight">Reset packet. <a href="group__odp__packet.html#gaa334fa06c78f3cfe635901724d0dbfa0">More...</a><br /></td></tr> |
| <tr class="separator:gaa334fa06c78f3cfe635901724d0dbfa0"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga973da0577b164fd1944406b2b45f4ea4"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga973da0577b164fd1944406b2b45f4ea4">odp_packet_reset_max_len</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga973da0577b164fd1944406b2b45f4ea4"><td class="mdescLeft"> </td><td class="mdescRight">Maximum packet data reset length. <a href="group__odp__packet.html#ga973da0577b164fd1944406b2b45f4ea4">More...</a><br /></td></tr> |
| <tr class="separator:ga973da0577b164fd1944406b2b45f4ea4"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga9fe0cfc87551389bee98530de1332790"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga9fe0cfc87551389bee98530de1332790">odp_packet_reset_meta</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga9fe0cfc87551389bee98530de1332790"><td class="mdescLeft"> </td><td class="mdescRight">Reset packet metadata. <a href="group__odp__packet.html#ga9fe0cfc87551389bee98530de1332790">More...</a><br /></td></tr> |
| <tr class="separator:ga9fe0cfc87551389bee98530de1332790"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga8605e7d4629a479f7b1a59da121c601c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga8605e7d4629a479f7b1a59da121c601c">odp_packet_from_event</a> (<a class="el" href="group__odp__event.html#ga51942509e0d072db63a565cbc1e7204d">odp_event_t</a> ev)</td></tr> |
| <tr class="memdesc:ga8605e7d4629a479f7b1a59da121c601c"><td class="mdescLeft"> </td><td class="mdescRight">Get packet handle from event. <a href="group__odp__packet.html#ga8605e7d4629a479f7b1a59da121c601c">More...</a><br /></td></tr> |
| <tr class="separator:ga8605e7d4629a479f7b1a59da121c601c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga0924634e5431e0ae31bb0cfd7bf8d262"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga0924634e5431e0ae31bb0cfd7bf8d262">odp_packet_from_event_multi</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt[], const <a class="el" href="group__odp__event.html#ga51942509e0d072db63a565cbc1e7204d">odp_event_t</a> ev[], int num)</td></tr> |
| <tr class="memdesc:ga0924634e5431e0ae31bb0cfd7bf8d262"><td class="mdescLeft"> </td><td class="mdescRight">Convert multiple packet events to packet handles. <a href="group__odp__packet.html#ga0924634e5431e0ae31bb0cfd7bf8d262">More...</a><br /></td></tr> |
| <tr class="separator:ga0924634e5431e0ae31bb0cfd7bf8d262"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga1f738db1a7ac6ffe4573195ff158d56e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__event.html#ga51942509e0d072db63a565cbc1e7204d">odp_event_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga1f738db1a7ac6ffe4573195ff158d56e">odp_packet_to_event</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga1f738db1a7ac6ffe4573195ff158d56e"><td class="mdescLeft"> </td><td class="mdescRight">Convert packet handle to event. <a href="group__odp__packet.html#ga1f738db1a7ac6ffe4573195ff158d56e">More...</a><br /></td></tr> |
| <tr class="separator:ga1f738db1a7ac6ffe4573195ff158d56e"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga229f5a60b69678c472b6b75dcf443dfe"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga229f5a60b69678c472b6b75dcf443dfe">odp_packet_to_event_multi</a> (const <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt[], <a class="el" href="group__odp__event.html#ga51942509e0d072db63a565cbc1e7204d">odp_event_t</a> ev[], int num)</td></tr> |
| <tr class="memdesc:ga229f5a60b69678c472b6b75dcf443dfe"><td class="mdescLeft"> </td><td class="mdescRight">Convert multiple packet handles to events. <a href="group__odp__packet.html#ga229f5a60b69678c472b6b75dcf443dfe">More...</a><br /></td></tr> |
| <tr class="separator:ga229f5a60b69678c472b6b75dcf443dfe"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga3cdc6892c9d669efeb2895dfc82e08a1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga3cdc6892c9d669efeb2895dfc82e08a1">odp_packet_reass_info</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, <a class="el" href="structodp__packet__reass__info__t.html">odp_packet_reass_info_t</a> *info)</td></tr> |
| <tr class="memdesc:ga3cdc6892c9d669efeb2895dfc82e08a1"><td class="mdescLeft"> </td><td class="mdescRight">Get information about successful reassembly offload that has happened. <a href="group__odp__packet.html#ga3cdc6892c9d669efeb2895dfc82e08a1">More...</a><br /></td></tr> |
| <tr class="separator:ga3cdc6892c9d669efeb2895dfc82e08a1"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gabb92b37b4ccfe45efd24a3f2dd0e1979"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gabb92b37b4ccfe45efd24a3f2dd0e1979">odp_packet_reass_partial_state</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> frags[], <a class="el" href="structodp__packet__reass__partial__state__t.html">odp_packet_reass_partial_state_t</a> *res)</td></tr> |
| <tr class="memdesc:gabb92b37b4ccfe45efd24a3f2dd0e1979"><td class="mdescLeft"> </td><td class="mdescRight">Get partial reassembly state from a packet. <a href="group__odp__packet.html#gabb92b37b4ccfe45efd24a3f2dd0e1979">More...</a><br /></td></tr> |
| <tr class="separator:gabb92b37b4ccfe45efd24a3f2dd0e1979"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaa8d4f74f0923b5c50ff1c9712ea27294"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaa8d4f74f0923b5c50ff1c9712ea27294">odp_packet_head</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gaa8d4f74f0923b5c50ff1c9712ea27294"><td class="mdescLeft"> </td><td class="mdescRight">Packet head address. <a href="group__odp__packet.html#gaa8d4f74f0923b5c50ff1c9712ea27294">More...</a><br /></td></tr> |
| <tr class="separator:gaa8d4f74f0923b5c50ff1c9712ea27294"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaa012e314f07259b803d61236845da45c"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaa012e314f07259b803d61236845da45c">odp_packet_buf_len</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gaa012e314f07259b803d61236845da45c"><td class="mdescLeft"> </td><td class="mdescRight">Total packet buffer length. <a href="group__odp__packet.html#gaa012e314f07259b803d61236845da45c">More...</a><br /></td></tr> |
| <tr class="separator:gaa012e314f07259b803d61236845da45c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga433ba21e3c83c6d4d9831c9e732b63de"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de">odp_packet_data</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga433ba21e3c83c6d4d9831c9e732b63de"><td class="mdescLeft"> </td><td class="mdescRight">Packet data pointer. <a href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de">More...</a><br /></td></tr> |
| <tr class="separator:ga433ba21e3c83c6d4d9831c9e732b63de"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga22a6d43d83393129dcd548194930bfcf"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga22a6d43d83393129dcd548194930bfcf">odp_packet_seg_len</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga22a6d43d83393129dcd548194930bfcf"><td class="mdescLeft"> </td><td class="mdescRight">Packet data length following the data pointer. <a href="group__odp__packet.html#ga22a6d43d83393129dcd548194930bfcf">More...</a><br /></td></tr> |
| <tr class="separator:ga22a6d43d83393129dcd548194930bfcf"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gac8a51a3e1cedd2a849c87e54db853d3a"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gac8a51a3e1cedd2a849c87e54db853d3a">odp_packet_data_seg_len</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t *seg_len)</td></tr> |
| <tr class="memdesc:gac8a51a3e1cedd2a849c87e54db853d3a"><td class="mdescLeft"> </td><td class="mdescRight">Packet data pointer with segment length. <a href="group__odp__packet.html#gac8a51a3e1cedd2a849c87e54db853d3a">More...</a><br /></td></tr> |
| <tr class="separator:gac8a51a3e1cedd2a849c87e54db853d3a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga68c47fd0c2a764b01b11390974748cc6"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga68c47fd0c2a764b01b11390974748cc6">odp_packet_len</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga68c47fd0c2a764b01b11390974748cc6"><td class="mdescLeft"> </td><td class="mdescRight">Packet data length. <a href="group__odp__packet.html#ga68c47fd0c2a764b01b11390974748cc6">More...</a><br /></td></tr> |
| <tr class="separator:ga68c47fd0c2a764b01b11390974748cc6"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga2b5bbe693aa7639f78ea3ae00b462a74"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga2b5bbe693aa7639f78ea3ae00b462a74">odp_packet_headroom</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga2b5bbe693aa7639f78ea3ae00b462a74"><td class="mdescLeft"> </td><td class="mdescRight">Packet headroom length. <a href="group__odp__packet.html#ga2b5bbe693aa7639f78ea3ae00b462a74">More...</a><br /></td></tr> |
| <tr class="separator:ga2b5bbe693aa7639f78ea3ae00b462a74"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaf7b90abcb93b4f566fae730a6156b299"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaf7b90abcb93b4f566fae730a6156b299">odp_packet_tailroom</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gaf7b90abcb93b4f566fae730a6156b299"><td class="mdescLeft"> </td><td class="mdescRight">Packet tailroom length. <a href="group__odp__packet.html#gaf7b90abcb93b4f566fae730a6156b299">More...</a><br /></td></tr> |
| <tr class="separator:gaf7b90abcb93b4f566fae730a6156b299"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga7cfaf313d642bf21c0b88ed055b8d4ba"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga7cfaf313d642bf21c0b88ed055b8d4ba">odp_packet_tail</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga7cfaf313d642bf21c0b88ed055b8d4ba"><td class="mdescLeft"> </td><td class="mdescRight">Packet tailroom pointer. <a href="group__odp__packet.html#ga7cfaf313d642bf21c0b88ed055b8d4ba">More...</a><br /></td></tr> |
| <tr class="separator:ga7cfaf313d642bf21c0b88ed055b8d4ba"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaf4496d8e509b72648ec2c44f61942a96"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaf4496d8e509b72648ec2c44f61942a96">odp_packet_offset</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t offset, uint32_t *len, <a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a> *seg)</td></tr> |
| <tr class="memdesc:gaf4496d8e509b72648ec2c44f61942a96"><td class="mdescLeft"> </td><td class="mdescRight">Packet offset pointer. <a href="group__odp__packet.html#gaf4496d8e509b72648ec2c44f61942a96">More...</a><br /></td></tr> |
| <tr class="separator:gaf4496d8e509b72648ec2c44f61942a96"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga2ee5e9e323590bcf24501a9f920710d0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga2ee5e9e323590bcf24501a9f920710d0">odp_packet_prefetch</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t offset, uint32_t len)</td></tr> |
| <tr class="memdesc:ga2ee5e9e323590bcf24501a9f920710d0"><td class="mdescLeft"> </td><td class="mdescRight">Packet data prefetch. <a href="group__odp__packet.html#ga2ee5e9e323590bcf24501a9f920710d0">More...</a><br /></td></tr> |
| <tr class="separator:ga2ee5e9e323590bcf24501a9f920710d0"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga2ed856750508efaae13d6be7aaa93695"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga2ed856750508efaae13d6be7aaa93695">odp_packet_push_head</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t len)</td></tr> |
| <tr class="memdesc:ga2ed856750508efaae13d6be7aaa93695"><td class="mdescLeft"> </td><td class="mdescRight">Push out packet head. <a href="group__odp__packet.html#ga2ed856750508efaae13d6be7aaa93695">More...</a><br /></td></tr> |
| <tr class="separator:ga2ed856750508efaae13d6be7aaa93695"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga1460efe82a6129a52b8b48756fce9d5c"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga1460efe82a6129a52b8b48756fce9d5c">odp_packet_pull_head</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t len)</td></tr> |
| <tr class="memdesc:ga1460efe82a6129a52b8b48756fce9d5c"><td class="mdescLeft"> </td><td class="mdescRight">Pull in packet head. <a href="group__odp__packet.html#ga1460efe82a6129a52b8b48756fce9d5c">More...</a><br /></td></tr> |
| <tr class="separator:ga1460efe82a6129a52b8b48756fce9d5c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga59783339be921ad584733114f058e5dc"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga59783339be921ad584733114f058e5dc">odp_packet_push_tail</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t len)</td></tr> |
| <tr class="memdesc:ga59783339be921ad584733114f058e5dc"><td class="mdescLeft"> </td><td class="mdescRight">Push out packet tail. <a href="group__odp__packet.html#ga59783339be921ad584733114f058e5dc">More...</a><br /></td></tr> |
| <tr class="separator:ga59783339be921ad584733114f058e5dc"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad32688da5282118e53b07d362e68e015"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad32688da5282118e53b07d362e68e015">odp_packet_pull_tail</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t len)</td></tr> |
| <tr class="memdesc:gad32688da5282118e53b07d362e68e015"><td class="mdescLeft"> </td><td class="mdescRight">Pull in packet tail. <a href="group__odp__packet.html#gad32688da5282118e53b07d362e68e015">More...</a><br /></td></tr> |
| <tr class="separator:gad32688da5282118e53b07d362e68e015"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga4b2dce564891d379ec9973a2cd623fa1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga4b2dce564891d379ec9973a2cd623fa1">odp_packet_extend_head</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> *pkt, uint32_t len, void **data_ptr, uint32_t *seg_len)</td></tr> |
| <tr class="memdesc:ga4b2dce564891d379ec9973a2cd623fa1"><td class="mdescLeft"> </td><td class="mdescRight">Extend packet head. <a href="group__odp__packet.html#ga4b2dce564891d379ec9973a2cd623fa1">More...</a><br /></td></tr> |
| <tr class="separator:ga4b2dce564891d379ec9973a2cd623fa1"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga958362ba0d115ad2384f921cc6d9606a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga958362ba0d115ad2384f921cc6d9606a">odp_packet_trunc_head</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> *pkt, uint32_t len, void **data_ptr, uint32_t *seg_len)</td></tr> |
| <tr class="memdesc:ga958362ba0d115ad2384f921cc6d9606a"><td class="mdescLeft"> </td><td class="mdescRight">Truncate packet head. <a href="group__odp__packet.html#ga958362ba0d115ad2384f921cc6d9606a">More...</a><br /></td></tr> |
| <tr class="separator:ga958362ba0d115ad2384f921cc6d9606a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga6c1008f97485b2bdc2e0473b0b62b922"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga6c1008f97485b2bdc2e0473b0b62b922">odp_packet_extend_tail</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> *pkt, uint32_t len, void **data_ptr, uint32_t *seg_len)</td></tr> |
| <tr class="memdesc:ga6c1008f97485b2bdc2e0473b0b62b922"><td class="mdescLeft"> </td><td class="mdescRight">Extend packet tail. <a href="group__odp__packet.html#ga6c1008f97485b2bdc2e0473b0b62b922">More...</a><br /></td></tr> |
| <tr class="separator:ga6c1008f97485b2bdc2e0473b0b62b922"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga18475e24d05ef7870327d32345eed06d"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga18475e24d05ef7870327d32345eed06d">odp_packet_trunc_tail</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> *pkt, uint32_t len, void **tail_ptr, uint32_t *tailroom)</td></tr> |
| <tr class="memdesc:ga18475e24d05ef7870327d32345eed06d"><td class="mdescLeft"> </td><td class="mdescRight">Truncate packet tail. <a href="group__odp__packet.html#ga18475e24d05ef7870327d32345eed06d">More...</a><br /></td></tr> |
| <tr class="separator:ga18475e24d05ef7870327d32345eed06d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga239753648a03a2f1d20f3e0fa80a5c82"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga239753648a03a2f1d20f3e0fa80a5c82">odp_packet_add_data</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> *pkt, uint32_t offset, uint32_t len)</td></tr> |
| <tr class="memdesc:ga239753648a03a2f1d20f3e0fa80a5c82"><td class="mdescLeft"> </td><td class="mdescRight">Add data into an offset. <a href="group__odp__packet.html#ga239753648a03a2f1d20f3e0fa80a5c82">More...</a><br /></td></tr> |
| <tr class="separator:ga239753648a03a2f1d20f3e0fa80a5c82"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga78600a52b2b7ae755219489b129630f9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga78600a52b2b7ae755219489b129630f9">odp_packet_rem_data</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> *pkt, uint32_t offset, uint32_t len)</td></tr> |
| <tr class="memdesc:ga78600a52b2b7ae755219489b129630f9"><td class="mdescLeft"> </td><td class="mdescRight">Remove data from an offset. <a href="group__odp__packet.html#ga78600a52b2b7ae755219489b129630f9">More...</a><br /></td></tr> |
| <tr class="separator:ga78600a52b2b7ae755219489b129630f9"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga849b8d5020bb87df6b78ef6834452925"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga849b8d5020bb87df6b78ef6834452925">odp_packet_align</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> *pkt, uint32_t offset, uint32_t len, uint32_t align)</td></tr> |
| <tr class="memdesc:ga849b8d5020bb87df6b78ef6834452925"><td class="mdescLeft"> </td><td class="mdescRight">Align packet data. <a href="group__odp__packet.html#ga849b8d5020bb87df6b78ef6834452925">More...</a><br /></td></tr> |
| <tr class="separator:ga849b8d5020bb87df6b78ef6834452925"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga02e9829352d32aec8c8904964cddf158"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga02e9829352d32aec8c8904964cddf158">odp_packet_is_segmented</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga02e9829352d32aec8c8904964cddf158"><td class="mdescLeft"> </td><td class="mdescRight">Tests if packet is segmented. <a href="group__odp__packet.html#ga02e9829352d32aec8c8904964cddf158">More...</a><br /></td></tr> |
| <tr class="separator:ga02e9829352d32aec8c8904964cddf158"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga3125802abd9f29fabe4813307e884f87"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga3125802abd9f29fabe4813307e884f87">odp_packet_num_segs</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga3125802abd9f29fabe4813307e884f87"><td class="mdescLeft"> </td><td class="mdescRight">Number of segments. <a href="group__odp__packet.html#ga3125802abd9f29fabe4813307e884f87">More...</a><br /></td></tr> |
| <tr class="separator:ga3125802abd9f29fabe4813307e884f87"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga8ade0ac9a53f829d860ba18fd715c59f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga8ade0ac9a53f829d860ba18fd715c59f">odp_packet_first_seg</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga8ade0ac9a53f829d860ba18fd715c59f"><td class="mdescLeft"> </td><td class="mdescRight">First segment in packet. <a href="group__odp__packet.html#ga8ade0ac9a53f829d860ba18fd715c59f">More...</a><br /></td></tr> |
| <tr class="separator:ga8ade0ac9a53f829d860ba18fd715c59f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga1bb76339fa22c72b31b5e2063c408f5d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga1bb76339fa22c72b31b5e2063c408f5d">odp_packet_last_seg</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga1bb76339fa22c72b31b5e2063c408f5d"><td class="mdescLeft"> </td><td class="mdescRight">Last segment in packet. <a href="group__odp__packet.html#ga1bb76339fa22c72b31b5e2063c408f5d">More...</a><br /></td></tr> |
| <tr class="separator:ga1bb76339fa22c72b31b5e2063c408f5d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga810852b5ad28525d75d5f88f06a97fe1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga810852b5ad28525d75d5f88f06a97fe1">odp_packet_next_seg</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, <a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a> seg)</td></tr> |
| <tr class="memdesc:ga810852b5ad28525d75d5f88f06a97fe1"><td class="mdescLeft"> </td><td class="mdescRight">Next segment in packet. <a href="group__odp__packet.html#ga810852b5ad28525d75d5f88f06a97fe1">More...</a><br /></td></tr> |
| <tr class="separator:ga810852b5ad28525d75d5f88f06a97fe1"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga613c050268f3f794a13cfc0e3a653de2"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga613c050268f3f794a13cfc0e3a653de2">odp_packet_seg_data</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, <a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a> seg)</td></tr> |
| <tr class="memdesc:ga613c050268f3f794a13cfc0e3a653de2"><td class="mdescLeft"> </td><td class="mdescRight">Segment data pointer. <a href="group__odp__packet.html#ga613c050268f3f794a13cfc0e3a653de2">More...</a><br /></td></tr> |
| <tr class="separator:ga613c050268f3f794a13cfc0e3a653de2"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga367b7a45a12d68bd6b717a4850d9ca83"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga367b7a45a12d68bd6b717a4850d9ca83">odp_packet_seg_data_len</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, <a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a> seg)</td></tr> |
| <tr class="memdesc:ga367b7a45a12d68bd6b717a4850d9ca83"><td class="mdescLeft"> </td><td class="mdescRight">Segment data length. <a href="group__odp__packet.html#ga367b7a45a12d68bd6b717a4850d9ca83">More...</a><br /></td></tr> |
| <tr class="separator:ga367b7a45a12d68bd6b717a4850d9ca83"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga26d161f6b315321e968950cdaa6c0326"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga26d161f6b315321e968950cdaa6c0326">odp_packet_concat</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> *dst, <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> src)</td></tr> |
| <tr class="memdesc:ga26d161f6b315321e968950cdaa6c0326"><td class="mdescLeft"> </td><td class="mdescRight">Concatenate two packets. <a href="group__odp__packet.html#ga26d161f6b315321e968950cdaa6c0326">More...</a><br /></td></tr> |
| <tr class="separator:ga26d161f6b315321e968950cdaa6c0326"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga5be650e9bec4b8a49dd24bde3c6224b7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga5be650e9bec4b8a49dd24bde3c6224b7">odp_packet_split</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> *pkt, uint32_t len, <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> *tail)</td></tr> |
| <tr class="memdesc:ga5be650e9bec4b8a49dd24bde3c6224b7"><td class="mdescLeft"> </td><td class="mdescRight">Split packet into two packets. <a href="group__odp__packet.html#ga5be650e9bec4b8a49dd24bde3c6224b7">More...</a><br /></td></tr> |
| <tr class="separator:ga5be650e9bec4b8a49dd24bde3c6224b7"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaa3ec32e9f6e307d55b8ebfdfe9cccf44"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaa3ec32e9f6e307d55b8ebfdfe9cccf44">odp_packet_buf_head</a> (<a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a> pkt_buf)</td></tr> |
| <tr class="memdesc:gaa3ec32e9f6e307d55b8ebfdfe9cccf44"><td class="mdescLeft"> </td><td class="mdescRight">Packet buffer head pointer. <a href="group__odp__packet.html#gaa3ec32e9f6e307d55b8ebfdfe9cccf44">More...</a><br /></td></tr> |
| <tr class="separator:gaa3ec32e9f6e307d55b8ebfdfe9cccf44"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaeb0e0285e6dadd9755698ca7dc56ad49"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaeb0e0285e6dadd9755698ca7dc56ad49">odp_packet_buf_size</a> (<a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a> pkt_buf)</td></tr> |
| <tr class="memdesc:gaeb0e0285e6dadd9755698ca7dc56ad49"><td class="mdescLeft"> </td><td class="mdescRight">Packet buffer size in bytes. <a href="group__odp__packet.html#gaeb0e0285e6dadd9755698ca7dc56ad49">More...</a><br /></td></tr> |
| <tr class="separator:gaeb0e0285e6dadd9755698ca7dc56ad49"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga2e20eef0601165dfe91bfff078818690"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga2e20eef0601165dfe91bfff078818690">odp_packet_buf_data_offset</a> (<a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a> pkt_buf)</td></tr> |
| <tr class="memdesc:ga2e20eef0601165dfe91bfff078818690"><td class="mdescLeft"> </td><td class="mdescRight">Packet buffer data offset. <a href="group__odp__packet.html#ga2e20eef0601165dfe91bfff078818690">More...</a><br /></td></tr> |
| <tr class="separator:ga2e20eef0601165dfe91bfff078818690"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga238d1c808115bb2fce9e0e67c89f7223"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga238d1c808115bb2fce9e0e67c89f7223">odp_packet_buf_data_len</a> (<a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a> pkt_buf)</td></tr> |
| <tr class="memdesc:ga238d1c808115bb2fce9e0e67c89f7223"><td class="mdescLeft"> </td><td class="mdescRight">Packet buffer data length in bytes. <a href="group__odp__packet.html#ga238d1c808115bb2fce9e0e67c89f7223">More...</a><br /></td></tr> |
| <tr class="separator:ga238d1c808115bb2fce9e0e67c89f7223"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gac133601913eacf81b50b3e519269999b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gac133601913eacf81b50b3e519269999b">odp_packet_buf_data_set</a> (<a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a> pkt_buf, uint32_t data_offset, uint32_t data_len)</td></tr> |
| <tr class="memdesc:gac133601913eacf81b50b3e519269999b"><td class="mdescLeft"> </td><td class="mdescRight">Packet buffer data set. <a href="group__odp__packet.html#gac133601913eacf81b50b3e519269999b">More...</a><br /></td></tr> |
| <tr class="separator:gac133601913eacf81b50b3e519269999b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga93e2bce341ea84267b16ee7c010c1705"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga93e2bce341ea84267b16ee7c010c1705">odp_packet_buf_from_head</a> (<a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> pool, void *head)</td></tr> |
| <tr class="memdesc:ga93e2bce341ea84267b16ee7c010c1705"><td class="mdescLeft"> </td><td class="mdescRight">Convert packet buffer head pointer to handle. <a href="group__odp__packet.html#ga93e2bce341ea84267b16ee7c010c1705">More...</a><br /></td></tr> |
| <tr class="separator:ga93e2bce341ea84267b16ee7c010c1705"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gace1e4ce9f3c124547f899095effa7775"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gace1e4ce9f3c124547f899095effa7775">odp_packet_disassemble</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, <a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a> pkt_buf[], uint32_t num)</td></tr> |
| <tr class="memdesc:gace1e4ce9f3c124547f899095effa7775"><td class="mdescLeft"> </td><td class="mdescRight">Disassemble packet into packet buffers. <a href="group__odp__packet.html#gace1e4ce9f3c124547f899095effa7775">More...</a><br /></td></tr> |
| <tr class="separator:gace1e4ce9f3c124547f899095effa7775"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga049e7cdd6ef1d6a6f07801767eb086a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga049e7cdd6ef1d6a6f07801767eb086a7">odp_packet_reassemble</a> (<a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> pool, <a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a> pkt_buf[], uint32_t num)</td></tr> |
| <tr class="memdesc:ga049e7cdd6ef1d6a6f07801767eb086a7"><td class="mdescLeft"> </td><td class="mdescRight">Reassemble packet from packet buffers. <a href="group__odp__packet.html#ga049e7cdd6ef1d6a6f07801767eb086a7">More...</a><br /></td></tr> |
| <tr class="separator:ga049e7cdd6ef1d6a6f07801767eb086a7"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gae4fa1de607d4dc99066160944d646cb2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gae4fa1de607d4dc99066160944d646cb2">odp_packet_ref_static</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gae4fa1de607d4dc99066160944d646cb2"><td class="mdescLeft"> </td><td class="mdescRight">Create a static reference to a packet. <a href="group__odp__packet.html#gae4fa1de607d4dc99066160944d646cb2">More...</a><br /></td></tr> |
| <tr class="separator:gae4fa1de607d4dc99066160944d646cb2"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga4e4c31ab64f067a3417d175162978d0d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga4e4c31ab64f067a3417d175162978d0d">odp_packet_ref</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t offset)</td></tr> |
| <tr class="memdesc:ga4e4c31ab64f067a3417d175162978d0d"><td class="mdescLeft"> </td><td class="mdescRight">Create a reference to a packet. <a href="group__odp__packet.html#ga4e4c31ab64f067a3417d175162978d0d">More...</a><br /></td></tr> |
| <tr class="separator:ga4e4c31ab64f067a3417d175162978d0d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga09ac7329a06748a60e801b55631641bd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga09ac7329a06748a60e801b55631641bd">odp_packet_ref_pkt</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t offset, <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> hdr)</td></tr> |
| <tr class="memdesc:ga09ac7329a06748a60e801b55631641bd"><td class="mdescLeft"> </td><td class="mdescRight">Create a reference to a packet with a header packet. <a href="group__odp__packet.html#ga09ac7329a06748a60e801b55631641bd">More...</a><br /></td></tr> |
| <tr class="separator:ga09ac7329a06748a60e801b55631641bd"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gae9c092f02e0e51e389921c23e25ebff7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gae9c092f02e0e51e389921c23e25ebff7">odp_packet_has_ref</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gae9c092f02e0e51e389921c23e25ebff7"><td class="mdescLeft"> </td><td class="mdescRight">Test if packet has multiple references. <a href="group__odp__packet.html#gae9c092f02e0e51e389921c23e25ebff7">More...</a><br /></td></tr> |
| <tr class="separator:gae9c092f02e0e51e389921c23e25ebff7"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga3446c95a98cbe4ccfe0b425d49bd5886"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga3446c95a98cbe4ccfe0b425d49bd5886">odp_packet_copy</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, <a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> pool)</td></tr> |
| <tr class="memdesc:ga3446c95a98cbe4ccfe0b425d49bd5886"><td class="mdescLeft"> </td><td class="mdescRight">Full copy of a packet. <a href="group__odp__packet.html#ga3446c95a98cbe4ccfe0b425d49bd5886">More...</a><br /></td></tr> |
| <tr class="separator:ga3446c95a98cbe4ccfe0b425d49bd5886"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gae1083592e8f673c814fd20a6519a2bed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gae1083592e8f673c814fd20a6519a2bed">odp_packet_copy_part</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t offset, uint32_t len, <a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> pool)</td></tr> |
| <tr class="memdesc:gae1083592e8f673c814fd20a6519a2bed"><td class="mdescLeft"> </td><td class="mdescRight">Partial copy of a packet. <a href="group__odp__packet.html#gae1083592e8f673c814fd20a6519a2bed">More...</a><br /></td></tr> |
| <tr class="separator:gae1083592e8f673c814fd20a6519a2bed"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gadf9179122029a9dd7a000e050f68b357"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gadf9179122029a9dd7a000e050f68b357">odp_packet_copy_to_mem</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t offset, uint32_t len, void *dst)</td></tr> |
| <tr class="memdesc:gadf9179122029a9dd7a000e050f68b357"><td class="mdescLeft"> </td><td class="mdescRight">Copy data from packet to memory. <a href="group__odp__packet.html#gadf9179122029a9dd7a000e050f68b357">More...</a><br /></td></tr> |
| <tr class="separator:gadf9179122029a9dd7a000e050f68b357"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gab67164b42ca75ae96615af7cebbfc414"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gab67164b42ca75ae96615af7cebbfc414">odp_packet_copy_from_mem</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t offset, uint32_t len, const void *src)</td></tr> |
| <tr class="memdesc:gab67164b42ca75ae96615af7cebbfc414"><td class="mdescLeft"> </td><td class="mdescRight">Copy data from memory to packet. <a href="group__odp__packet.html#gab67164b42ca75ae96615af7cebbfc414">More...</a><br /></td></tr> |
| <tr class="separator:gab67164b42ca75ae96615af7cebbfc414"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaad6a847e3402150a0d820bc8753caf51"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaad6a847e3402150a0d820bc8753caf51">odp_packet_copy_from_pkt</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> dst, uint32_t dst_offset, <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> src, uint32_t src_offset, uint32_t len)</td></tr> |
| <tr class="memdesc:gaad6a847e3402150a0d820bc8753caf51"><td class="mdescLeft"> </td><td class="mdescRight">Copy data from another packet. <a href="group__odp__packet.html#gaad6a847e3402150a0d820bc8753caf51">More...</a><br /></td></tr> |
| <tr class="separator:gaad6a847e3402150a0d820bc8753caf51"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga4364b3e9b0d4b6ee64ca650370627ea8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga4364b3e9b0d4b6ee64ca650370627ea8">odp_packet_copy_data</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t dst_offset, uint32_t src_offset, uint32_t len)</td></tr> |
| <tr class="memdesc:ga4364b3e9b0d4b6ee64ca650370627ea8"><td class="mdescLeft"> </td><td class="mdescRight">Copy data within packet. <a href="group__odp__packet.html#ga4364b3e9b0d4b6ee64ca650370627ea8">More...</a><br /></td></tr> |
| <tr class="separator:ga4364b3e9b0d4b6ee64ca650370627ea8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga620330f43f514b89350695602c8ccf4a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga620330f43f514b89350695602c8ccf4a">odp_packet_move_data</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t dst_offset, uint32_t src_offset, uint32_t len)</td></tr> |
| <tr class="memdesc:ga620330f43f514b89350695602c8ccf4a"><td class="mdescLeft"> </td><td class="mdescRight">Move data within packet. <a href="group__odp__packet.html#ga620330f43f514b89350695602c8ccf4a">More...</a><br /></td></tr> |
| <tr class="separator:ga620330f43f514b89350695602c8ccf4a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gab35a12b14bafdf232f7a06193298004a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gab35a12b14bafdf232f7a06193298004a">odp_packet_parse</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t offset, const <a class="el" href="structodp__packet__parse__param__t.html">odp_packet_parse_param_t</a> *param)</td></tr> |
| <tr class="memdesc:gab35a12b14bafdf232f7a06193298004a"><td class="mdescLeft"> </td><td class="mdescRight">Parse packet. <a href="group__odp__packet.html#gab35a12b14bafdf232f7a06193298004a">More...</a><br /></td></tr> |
| <tr class="separator:gab35a12b14bafdf232f7a06193298004a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga28b60e89bdccb4537bc159c67a2993cf"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga28b60e89bdccb4537bc159c67a2993cf">odp_packet_parse_multi</a> (const <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt[], const uint32_t offset[], int num, const <a class="el" href="structodp__packet__parse__param__t.html">odp_packet_parse_param_t</a> *param)</td></tr> |
| <tr class="memdesc:ga28b60e89bdccb4537bc159c67a2993cf"><td class="mdescLeft"> </td><td class="mdescRight">Parse multiple packets. <a href="group__odp__packet.html#ga28b60e89bdccb4537bc159c67a2993cf">More...</a><br /></td></tr> |
| <tr class="separator:ga28b60e89bdccb4537bc159c67a2993cf"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad01723b917524013ddcf485121a25399"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad01723b917524013ddcf485121a25399">odp_packet_parse_result</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, <a class="el" href="structodp__packet__parse__result__t.html">odp_packet_parse_result_t</a> *result)</td></tr> |
| <tr class="memdesc:gad01723b917524013ddcf485121a25399"><td class="mdescLeft"> </td><td class="mdescRight">Read parse results. <a href="group__odp__packet.html#gad01723b917524013ddcf485121a25399">More...</a><br /></td></tr> |
| <tr class="separator:gad01723b917524013ddcf485121a25399"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga24ba4bde26312e012214d1a95e201712"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga24ba4bde26312e012214d1a95e201712">odp_packet_parse_result_multi</a> (const <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt[], <a class="el" href="structodp__packet__parse__result__t.html">odp_packet_parse_result_t</a> *result[], int num)</td></tr> |
| <tr class="memdesc:ga24ba4bde26312e012214d1a95e201712"><td class="mdescLeft"> </td><td class="mdescRight">Read parse results from multiple packets. <a href="group__odp__packet.html#ga24ba4bde26312e012214d1a95e201712">More...</a><br /></td></tr> |
| <tr class="separator:ga24ba4bde26312e012214d1a95e201712"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gadccb9ed96850de34353a813932462463"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gadccb9ed96850de34353a813932462463">odp_packet_pool</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gadccb9ed96850de34353a813932462463"><td class="mdescLeft"> </td><td class="mdescRight">Packet pool. <a href="group__odp__packet.html#gadccb9ed96850de34353a813932462463">More...</a><br /></td></tr> |
| <tr class="separator:gadccb9ed96850de34353a813932462463"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gafedebc00ec9a8b6076717e43e9ac1b43"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet__io.html#gab2c9857b9be70ca49962a8f22d3cb657">odp_pktio_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gafedebc00ec9a8b6076717e43e9ac1b43">odp_packet_input</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gafedebc00ec9a8b6076717e43e9ac1b43"><td class="mdescLeft"> </td><td class="mdescRight">Packet input interface. <a href="group__odp__packet.html#gafedebc00ec9a8b6076717e43e9ac1b43">More...</a><br /></td></tr> |
| <tr class="separator:gafedebc00ec9a8b6076717e43e9ac1b43"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad00eacb288b18150c3da5ef134f4e4b2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad00eacb288b18150c3da5ef134f4e4b2">odp_packet_input_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, <a class="el" href="group__odp__packet__io.html#gab2c9857b9be70ca49962a8f22d3cb657">odp_pktio_t</a> pktio)</td></tr> |
| <tr class="memdesc:gad00eacb288b18150c3da5ef134f4e4b2"><td class="mdescLeft"> </td><td class="mdescRight">Set packet input interface. <a href="group__odp__packet.html#gad00eacb288b18150c3da5ef134f4e4b2">More...</a><br /></td></tr> |
| <tr class="separator:gad00eacb288b18150c3da5ef134f4e4b2"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga1c03b0fec815617168cf29a013442d58"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga1c03b0fec815617168cf29a013442d58">odp_packet_input_index</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga1c03b0fec815617168cf29a013442d58"><td class="mdescLeft"> </td><td class="mdescRight">Packet input interface index. <a href="group__odp__packet.html#ga1c03b0fec815617168cf29a013442d58">More...</a><br /></td></tr> |
| <tr class="separator:ga1c03b0fec815617168cf29a013442d58"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga163f75fca9789a17ab4db0e75bfd9b29"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga163f75fca9789a17ab4db0e75bfd9b29">odp_packet_user_ptr</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga163f75fca9789a17ab4db0e75bfd9b29"><td class="mdescLeft"> </td><td class="mdescRight">User context pointer. <a href="group__odp__packet.html#ga163f75fca9789a17ab4db0e75bfd9b29">More...</a><br /></td></tr> |
| <tr class="separator:ga163f75fca9789a17ab4db0e75bfd9b29"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gabba756536217212e5570b73db24d00c8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gabba756536217212e5570b73db24d00c8">odp_packet_user_ptr_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, const void *user_ptr)</td></tr> |
| <tr class="memdesc:gabba756536217212e5570b73db24d00c8"><td class="mdescLeft"> </td><td class="mdescRight">Set user context pointer. <a href="group__odp__packet.html#gabba756536217212e5570b73db24d00c8">More...</a><br /></td></tr> |
| <tr class="separator:gabba756536217212e5570b73db24d00c8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga67a5c6d167ea5ac5c6bbfb96b465a119"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga67a5c6d167ea5ac5c6bbfb96b465a119">odp_packet_user_area</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga67a5c6d167ea5ac5c6bbfb96b465a119"><td class="mdescLeft"> </td><td class="mdescRight">User area address. <a href="group__odp__packet.html#ga67a5c6d167ea5ac5c6bbfb96b465a119">More...</a><br /></td></tr> |
| <tr class="separator:ga67a5c6d167ea5ac5c6bbfb96b465a119"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga3803f4be3568c39077acf2e3c8232271"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga3803f4be3568c39077acf2e3c8232271">odp_packet_user_area_size</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga3803f4be3568c39077acf2e3c8232271"><td class="mdescLeft"> </td><td class="mdescRight">User area size. <a href="group__odp__packet.html#ga3803f4be3568c39077acf2e3c8232271">More...</a><br /></td></tr> |
| <tr class="separator:ga3803f4be3568c39077acf2e3c8232271"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad775927e18fb31e70c5014e75e3ecaf3"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad775927e18fb31e70c5014e75e3ecaf3">odp_packet_user_flag</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gad775927e18fb31e70c5014e75e3ecaf3"><td class="mdescLeft"> </td><td class="mdescRight">Check user flag. <a href="group__odp__packet.html#gad775927e18fb31e70c5014e75e3ecaf3">More...</a><br /></td></tr> |
| <tr class="separator:gad775927e18fb31e70c5014e75e3ecaf3"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga3016d9113cc70cce0874f5db4b068f65"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga3016d9113cc70cce0874f5db4b068f65">odp_packet_user_flag_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:ga3016d9113cc70cce0874f5db4b068f65"><td class="mdescLeft"> </td><td class="mdescRight">Set user flag. <a href="group__odp__packet.html#ga3016d9113cc70cce0874f5db4b068f65">More...</a><br /></td></tr> |
| <tr class="separator:ga3016d9113cc70cce0874f5db4b068f65"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga9db78b8022b51bbe434d7599d22b0b95"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga9db78b8022b51bbe434d7599d22b0b95">odp_packet_l2_ptr</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t *len)</td></tr> |
| <tr class="memdesc:ga9db78b8022b51bbe434d7599d22b0b95"><td class="mdescLeft"> </td><td class="mdescRight">Layer 2 start pointer. <a href="group__odp__packet.html#ga9db78b8022b51bbe434d7599d22b0b95">More...</a><br /></td></tr> |
| <tr class="separator:ga9db78b8022b51bbe434d7599d22b0b95"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaff4652c8ee369e5d0964775c810ac720"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaff4652c8ee369e5d0964775c810ac720">odp_packet_l2_offset</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gaff4652c8ee369e5d0964775c810ac720"><td class="mdescLeft"> </td><td class="mdescRight">Layer 2 start offset. <a href="group__odp__packet.html#gaff4652c8ee369e5d0964775c810ac720">More...</a><br /></td></tr> |
| <tr class="separator:gaff4652c8ee369e5d0964775c810ac720"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga79bdc8c991e23c5e676b31e630bc31f3"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga79bdc8c991e23c5e676b31e630bc31f3">odp_packet_l2_offset_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t offset)</td></tr> |
| <tr class="memdesc:ga79bdc8c991e23c5e676b31e630bc31f3"><td class="mdescLeft"> </td><td class="mdescRight">Set layer 2 start offset. <a href="group__odp__packet.html#ga79bdc8c991e23c5e676b31e630bc31f3">More...</a><br /></td></tr> |
| <tr class="separator:ga79bdc8c991e23c5e676b31e630bc31f3"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad0cd1a3f0137909e038438c97e701ffb"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad0cd1a3f0137909e038438c97e701ffb">odp_packet_l3_ptr</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t *len)</td></tr> |
| <tr class="memdesc:gad0cd1a3f0137909e038438c97e701ffb"><td class="mdescLeft"> </td><td class="mdescRight">Layer 3 start pointer. <a href="group__odp__packet.html#gad0cd1a3f0137909e038438c97e701ffb">More...</a><br /></td></tr> |
| <tr class="separator:gad0cd1a3f0137909e038438c97e701ffb"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga9eb7cff2a7f32d07bcf919d7286509b1"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga9eb7cff2a7f32d07bcf919d7286509b1">odp_packet_l3_offset</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga9eb7cff2a7f32d07bcf919d7286509b1"><td class="mdescLeft"> </td><td class="mdescRight">Layer 3 start offset. <a href="group__odp__packet.html#ga9eb7cff2a7f32d07bcf919d7286509b1">More...</a><br /></td></tr> |
| <tr class="separator:ga9eb7cff2a7f32d07bcf919d7286509b1"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga1b1c25d6a81b1f3c2cb82188b3721a6f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga1b1c25d6a81b1f3c2cb82188b3721a6f">odp_packet_l3_offset_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t offset)</td></tr> |
| <tr class="memdesc:ga1b1c25d6a81b1f3c2cb82188b3721a6f"><td class="mdescLeft"> </td><td class="mdescRight">Set layer 3 start offset. <a href="group__odp__packet.html#ga1b1c25d6a81b1f3c2cb82188b3721a6f">More...</a><br /></td></tr> |
| <tr class="separator:ga1b1c25d6a81b1f3c2cb82188b3721a6f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gab9760ae693455cc838dfb82cc280de7d"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gab9760ae693455cc838dfb82cc280de7d">odp_packet_l4_ptr</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t *len)</td></tr> |
| <tr class="memdesc:gab9760ae693455cc838dfb82cc280de7d"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 start pointer. <a href="group__odp__packet.html#gab9760ae693455cc838dfb82cc280de7d">More...</a><br /></td></tr> |
| <tr class="separator:gab9760ae693455cc838dfb82cc280de7d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga3d1e523b200b887c88d9506a804f0e38"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga3d1e523b200b887c88d9506a804f0e38">odp_packet_l4_offset</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga3d1e523b200b887c88d9506a804f0e38"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 start offset. <a href="group__odp__packet.html#ga3d1e523b200b887c88d9506a804f0e38">More...</a><br /></td></tr> |
| <tr class="separator:ga3d1e523b200b887c88d9506a804f0e38"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga4629db8bf7e9b378f8a83b7aabab8248"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga4629db8bf7e9b378f8a83b7aabab8248">odp_packet_l4_offset_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t offset)</td></tr> |
| <tr class="memdesc:ga4629db8bf7e9b378f8a83b7aabab8248"><td class="mdescLeft"> </td><td class="mdescRight">Set layer 4 start offset. <a href="group__odp__packet.html#ga4629db8bf7e9b378f8a83b7aabab8248">More...</a><br /></td></tr> |
| <tr class="separator:ga4629db8bf7e9b378f8a83b7aabab8248"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga5293342304d7a2bf1f5bd958a272f186"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#gaf7dbe2e9d44019a2589323b870868f68">odp_proto_l2_type_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga5293342304d7a2bf1f5bd958a272f186">odp_packet_l2_type</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga5293342304d7a2bf1f5bd958a272f186"><td class="mdescLeft"> </td><td class="mdescRight">Layer 2 protocol type. <a href="group__odp__packet.html#ga5293342304d7a2bf1f5bd958a272f186">More...</a><br /></td></tr> |
| <tr class="separator:ga5293342304d7a2bf1f5bd958a272f186"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gac5b14d78f78c263f00959d6d189b0270"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#ga406d88edf230d5177c114b5046e33cdf">odp_proto_l3_type_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gac5b14d78f78c263f00959d6d189b0270">odp_packet_l3_type</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gac5b14d78f78c263f00959d6d189b0270"><td class="mdescLeft"> </td><td class="mdescRight">Layer 3 protocol type. <a href="group__odp__packet.html#gac5b14d78f78c263f00959d6d189b0270">More...</a><br /></td></tr> |
| <tr class="separator:gac5b14d78f78c263f00959d6d189b0270"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga154698e4b688372fee60af446a7f1190"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#gac81078393c53cbc0ac16c29137085703">odp_proto_l4_type_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga154698e4b688372fee60af446a7f1190">odp_packet_l4_type</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga154698e4b688372fee60af446a7f1190"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 protocol type. <a href="group__odp__packet.html#ga154698e4b688372fee60af446a7f1190">More...</a><br /></td></tr> |
| <tr class="separator:ga154698e4b688372fee60af446a7f1190"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gababf616c2fa7a646362367cbc2b57362"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#gabf47d1f8d2c6fc6a4391d028a5acc749">odp_packet_chksum_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gababf616c2fa7a646362367cbc2b57362">odp_packet_l3_chksum_status</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gababf616c2fa7a646362367cbc2b57362"><td class="mdescLeft"> </td><td class="mdescRight">Layer 3 checksum check status. <a href="group__odp__packet.html#gababf616c2fa7a646362367cbc2b57362">More...</a><br /></td></tr> |
| <tr class="separator:gababf616c2fa7a646362367cbc2b57362"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga22a4d615b0101a47b290dc53ccb0c407"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#gabf47d1f8d2c6fc6a4391d028a5acc749">odp_packet_chksum_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga22a4d615b0101a47b290dc53ccb0c407">odp_packet_l4_chksum_status</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga22a4d615b0101a47b290dc53ccb0c407"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 checksum check status. <a href="group__odp__packet.html#ga22a4d615b0101a47b290dc53ccb0c407">More...</a><br /></td></tr> |
| <tr class="separator:ga22a4d615b0101a47b290dc53ccb0c407"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gae88bcb7cf28e3ddfbdc2886a55ee86a3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gae88bcb7cf28e3ddfbdc2886a55ee86a3">odp_packet_l3_chksum_insert</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int insert)</td></tr> |
| <tr class="memdesc:gae88bcb7cf28e3ddfbdc2886a55ee86a3"><td class="mdescLeft"> </td><td class="mdescRight">Layer 3 checksum insertion override. <a href="group__odp__packet.html#gae88bcb7cf28e3ddfbdc2886a55ee86a3">More...</a><br /></td></tr> |
| <tr class="separator:gae88bcb7cf28e3ddfbdc2886a55ee86a3"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gab37e17f1aad3ea3a5a2cbdadfcb50dec"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gab37e17f1aad3ea3a5a2cbdadfcb50dec">odp_packet_l4_chksum_insert</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int insert)</td></tr> |
| <tr class="memdesc:gab37e17f1aad3ea3a5a2cbdadfcb50dec"><td class="mdescLeft"> </td><td class="mdescRight">Layer 4 checksum insertion override. <a href="group__odp__packet.html#gab37e17f1aad3ea3a5a2cbdadfcb50dec">More...</a><br /></td></tr> |
| <tr class="separator:gab37e17f1aad3ea3a5a2cbdadfcb50dec"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga0ca81ee2d1776d8f0dd4986d4dfababb"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga0ca81ee2d1776d8f0dd4986d4dfababb">odp_packet_ones_comp</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, <a class="el" href="group__odp__packet.html#ga3679864d08a10a773f2c29bbef408617">odp_packet_data_range_t</a> *range)</td></tr> |
| <tr class="memdesc:ga0ca81ee2d1776d8f0dd4986d4dfababb"><td class="mdescLeft"> </td><td class="mdescRight">Ones' complement sum of packet data. <a href="group__odp__packet.html#ga0ca81ee2d1776d8f0dd4986d4dfababb">More...</a><br /></td></tr> |
| <tr class="separator:ga0ca81ee2d1776d8f0dd4986d4dfababb"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga0f4d215e25b1091a6e1fc5e4794a7f7a"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga0f4d215e25b1091a6e1fc5e4794a7f7a">odp_packet_flow_hash</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga0f4d215e25b1091a6e1fc5e4794a7f7a"><td class="mdescLeft"> </td><td class="mdescRight">Packet flow hash value. <a href="group__odp__packet.html#ga0f4d215e25b1091a6e1fc5e4794a7f7a">More...</a><br /></td></tr> |
| <tr class="separator:ga0f4d215e25b1091a6e1fc5e4794a7f7a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga9e3e4ee951b171713192b4d6fd0dab9a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga9e3e4ee951b171713192b4d6fd0dab9a">odp_packet_flow_hash_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t flow_hash)</td></tr> |
| <tr class="memdesc:ga9e3e4ee951b171713192b4d6fd0dab9a"><td class="mdescLeft"> </td><td class="mdescRight">Set packet flow hash value. <a href="group__odp__packet.html#ga9e3e4ee951b171713192b4d6fd0dab9a">More...</a><br /></td></tr> |
| <tr class="separator:ga9e3e4ee951b171713192b4d6fd0dab9a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaeac50a7feadc136a33839222ce55ad6a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structodp__time__t.html">odp_time_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaeac50a7feadc136a33839222ce55ad6a">odp_packet_ts</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gaeac50a7feadc136a33839222ce55ad6a"><td class="mdescLeft"> </td><td class="mdescRight">Packet timestamp. <a href="group__odp__packet.html#gaeac50a7feadc136a33839222ce55ad6a">More...</a><br /></td></tr> |
| <tr class="separator:gaeac50a7feadc136a33839222ce55ad6a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gadd35a854f133d3f09f4170da27e73e83"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gadd35a854f133d3f09f4170da27e73e83">odp_packet_ts_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, <a class="el" href="structodp__time__t.html">odp_time_t</a> timestamp)</td></tr> |
| <tr class="memdesc:gadd35a854f133d3f09f4170da27e73e83"><td class="mdescLeft"> </td><td class="mdescRight">Set packet timestamp. <a href="group__odp__packet.html#gadd35a854f133d3f09f4170da27e73e83">More...</a><br /></td></tr> |
| <tr class="separator:gadd35a854f133d3f09f4170da27e73e83"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga80e080846fddfed7bad8d315141a5339"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga80e080846fddfed7bad8d315141a5339">odp_packet_ts_request</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int enable)</td></tr> |
| <tr class="memdesc:ga80e080846fddfed7bad8d315141a5339"><td class="mdescLeft"> </td><td class="mdescRight">Request Tx timestamp capture. <a href="group__odp__packet.html#ga80e080846fddfed7bad8d315141a5339">More...</a><br /></td></tr> |
| <tr class="separator:ga80e080846fddfed7bad8d315141a5339"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga0597c60af7a4a129ce6a1733f62fd8aa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#gac19d4ea0c0918ffa4a804ea83c5ab131">odp_packet_color_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga0597c60af7a4a129ce6a1733f62fd8aa">odp_packet_color</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga0597c60af7a4a129ce6a1733f62fd8aa"><td class="mdescLeft"> </td><td class="mdescRight">Get packet color. <a href="group__odp__packet.html#ga0597c60af7a4a129ce6a1733f62fd8aa">More...</a><br /></td></tr> |
| <tr class="separator:ga0597c60af7a4a129ce6a1733f62fd8aa"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga0521296b580f66fff46a99d08299b503"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga0521296b580f66fff46a99d08299b503">odp_packet_color_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, <a class="el" href="group__odp__packet.html#gac19d4ea0c0918ffa4a804ea83c5ab131">odp_packet_color_t</a> color)</td></tr> |
| <tr class="memdesc:ga0521296b580f66fff46a99d08299b503"><td class="mdescLeft"> </td><td class="mdescRight">Set packet color. <a href="group__odp__packet.html#ga0521296b580f66fff46a99d08299b503">More...</a><br /></td></tr> |
| <tr class="separator:ga0521296b580f66fff46a99d08299b503"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga57c1076ac5facca4e033980e4a90e0c7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__std.html#ga0b2a7ca83ccc7af0346db309d8c06d6f">odp_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga57c1076ac5facca4e033980e4a90e0c7">odp_packet_drop_eligible</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga57c1076ac5facca4e033980e4a90e0c7"><td class="mdescLeft"> </td><td class="mdescRight">Get drop eligible status. <a href="group__odp__packet.html#ga57c1076ac5facca4e033980e4a90e0c7">More...</a><br /></td></tr> |
| <tr class="separator:ga57c1076ac5facca4e033980e4a90e0c7"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga5f580686728b69ce273c2062a1fd8659"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga5f580686728b69ce273c2062a1fd8659">odp_packet_drop_eligible_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, <a class="el" href="group__odp__std.html#ga0b2a7ca83ccc7af0346db309d8c06d6f">odp_bool_t</a> status)</td></tr> |
| <tr class="memdesc:ga5f580686728b69ce273c2062a1fd8659"><td class="mdescLeft"> </td><td class="mdescRight">Set drop eligible status. <a href="group__odp__packet.html#ga5f580686728b69ce273c2062a1fd8659">More...</a><br /></td></tr> |
| <tr class="separator:ga5f580686728b69ce273c2062a1fd8659"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga2212096ea59f11056cf0aeafb4bb8cdc"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga2212096ea59f11056cf0aeafb4bb8cdc">odp_packet_shaper_len_adjust</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga2212096ea59f11056cf0aeafb4bb8cdc"><td class="mdescLeft"> </td><td class="mdescRight">Get shaper length adjustment. <a href="group__odp__packet.html#ga2212096ea59f11056cf0aeafb4bb8cdc">More...</a><br /></td></tr> |
| <tr class="separator:ga2212096ea59f11056cf0aeafb4bb8cdc"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga82bf719e0fffac6fc235c0e887f8f4e4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga82bf719e0fffac6fc235c0e887f8f4e4">odp_packet_shaper_len_adjust_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int8_t adj)</td></tr> |
| <tr class="memdesc:ga82bf719e0fffac6fc235c0e887f8f4e4"><td class="mdescLeft"> </td><td class="mdescRight">Set shaper length adjustment. <a href="group__odp__packet.html#ga82bf719e0fffac6fc235c0e887f8f4e4">More...</a><br /></td></tr> |
| <tr class="separator:ga82bf719e0fffac6fc235c0e887f8f4e4"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga1a23df15159f336bc48735071b7d859c"><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga1a23df15159f336bc48735071b7d859c">odp_packet_cls_mark</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga1a23df15159f336bc48735071b7d859c"><td class="mdescLeft"> </td><td class="mdescRight">Classification mark value. <a href="group__odp__packet.html#ga1a23df15159f336bc48735071b7d859c">More...</a><br /></td></tr> |
| <tr class="separator:ga1a23df15159f336bc48735071b7d859c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gade29af4bf83690e79712d3b77bca9a71"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gade29af4bf83690e79712d3b77bca9a71">odp_packet_lso_request</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, const <a class="el" href="structodp__packet__lso__opt__t.html">odp_packet_lso_opt_t</a> *lso_opt)</td></tr> |
| <tr class="memdesc:gade29af4bf83690e79712d3b77bca9a71"><td class="mdescLeft"> </td><td class="mdescRight">Request Large Send Offload (LSO) for a packet. <a href="group__odp__packet.html#gade29af4bf83690e79712d3b77bca9a71">More...</a><br /></td></tr> |
| <tr class="separator:gade29af4bf83690e79712d3b77bca9a71"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga493237b55fac6115124f1396a220ad17"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga493237b55fac6115124f1396a220ad17">odp_packet_lso_request_clr</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga493237b55fac6115124f1396a220ad17"><td class="mdescLeft"> </td><td class="mdescRight">Clear LSO request from a packet. <a href="group__odp__packet.html#ga493237b55fac6115124f1396a220ad17">More...</a><br /></td></tr> |
| <tr class="separator:ga493237b55fac6115124f1396a220ad17"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad79cf50f43970652da88316fd2c5cb61"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad79cf50f43970652da88316fd2c5cb61">odp_packet_has_lso_request</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gad79cf50f43970652da88316fd2c5cb61"><td class="mdescLeft"> </td><td class="mdescRight">Check if LSO is requested for the packet. <a href="group__odp__packet.html#gad79cf50f43970652da88316fd2c5cb61">More...</a><br /></td></tr> |
| <tr class="separator:gad79cf50f43970652da88316fd2c5cb61"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga1e02b1e46abc9e39d3d256e3aa080c1e"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga1e02b1e46abc9e39d3d256e3aa080c1e">odp_packet_payload_offset</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga1e02b1e46abc9e39d3d256e3aa080c1e"><td class="mdescLeft"> </td><td class="mdescRight">Payload data offset. <a href="group__odp__packet.html#ga1e02b1e46abc9e39d3d256e3aa080c1e">More...</a><br /></td></tr> |
| <tr class="separator:ga1e02b1e46abc9e39d3d256e3aa080c1e"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaf7cba8183719acdb53389fd38566f476"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaf7cba8183719acdb53389fd38566f476">odp_packet_payload_offset_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t offset)</td></tr> |
| <tr class="memdesc:gaf7cba8183719acdb53389fd38566f476"><td class="mdescLeft"> </td><td class="mdescRight">Set payload data start offset. <a href="group__odp__packet.html#gaf7cba8183719acdb53389fd38566f476">More...</a><br /></td></tr> |
| <tr class="separator:gaf7cba8183719acdb53389fd38566f476"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gac429a8ec2d57e17022174155a18c2728"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gac429a8ec2d57e17022174155a18c2728">odp_packet_aging_tmo_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint64_t tmo_ns)</td></tr> |
| <tr class="memdesc:gac429a8ec2d57e17022174155a18c2728"><td class="mdescLeft"> </td><td class="mdescRight">Enable or disable Tx packet aging. <a href="group__odp__packet.html#gac429a8ec2d57e17022174155a18c2728">More...</a><br /></td></tr> |
| <tr class="separator:gac429a8ec2d57e17022174155a18c2728"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gafca967f91a3661b1b7f21a697130f565"><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gafca967f91a3661b1b7f21a697130f565">odp_packet_aging_tmo</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gafca967f91a3661b1b7f21a697130f565"><td class="mdescLeft"> </td><td class="mdescRight">Check if packet has Tx aging drop enabled. <a href="group__odp__packet.html#gafca967f91a3661b1b7f21a697130f565">More...</a><br /></td></tr> |
| <tr class="separator:gafca967f91a3661b1b7f21a697130f565"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga0e56e8bc389284b3193c51f0ab63ebad"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga0e56e8bc389284b3193c51f0ab63ebad">odp_packet_tx_compl_request</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, const <a class="el" href="structodp__packet__tx__compl__opt__t.html">odp_packet_tx_compl_opt_t</a> *opt)</td></tr> |
| <tr class="memdesc:ga0e56e8bc389284b3193c51f0ab63ebad"><td class="mdescLeft"> </td><td class="mdescRight">Request packet transmit completion. <a href="group__odp__packet.html#ga0e56e8bc389284b3193c51f0ab63ebad">More...</a><br /></td></tr> |
| <tr class="separator:ga0e56e8bc389284b3193c51f0ab63ebad"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga759de8fdd15f9a731fb32117368bbf31"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga759de8fdd15f9a731fb32117368bbf31">odp_packet_has_tx_compl_request</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga759de8fdd15f9a731fb32117368bbf31"><td class="mdescLeft"> </td><td class="mdescRight">Check if packet transmit completion is requested. <a href="group__odp__packet.html#ga759de8fdd15f9a731fb32117368bbf31">More...</a><br /></td></tr> |
| <tr class="separator:ga759de8fdd15f9a731fb32117368bbf31"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga97705f949edaba2b3cc99b7ae4066e6a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga97705f949edaba2b3cc99b7ae4066e6a">odp_packet_free_ctrl_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, <a class="el" href="group__odp__packet.html#ga187fb105f4575928e18c7438c3070be1">odp_packet_free_ctrl_t</a> ctrl)</td></tr> |
| <tr class="memdesc:ga97705f949edaba2b3cc99b7ae4066e6a"><td class="mdescLeft"> </td><td class="mdescRight">Set packet free control option. <a href="group__odp__packet.html#ga97705f949edaba2b3cc99b7ae4066e6a">More...</a><br /></td></tr> |
| <tr class="separator:ga97705f949edaba2b3cc99b7ae4066e6a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga31ae604f4da6a794e7607dc958785ff0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#ga187fb105f4575928e18c7438c3070be1">odp_packet_free_ctrl_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga31ae604f4da6a794e7607dc958785ff0">odp_packet_free_ctrl</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga31ae604f4da6a794e7607dc958785ff0"><td class="mdescLeft"> </td><td class="mdescRight">Returns packet free control option value. <a href="group__odp__packet.html#ga31ae604f4da6a794e7607dc958785ff0">More...</a><br /></td></tr> |
| <tr class="separator:ga31ae604f4da6a794e7607dc958785ff0"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaf09bbf2a6d51e4742834a8a8c5492740"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaf09bbf2a6d51e4742834a8a8c5492740">odp_packet_proto_stats_request</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, <a class="el" href="structodp__packet__proto__stats__opt__t.html">odp_packet_proto_stats_opt_t</a> *opt)</td></tr> |
| <tr class="memdesc:gaf09bbf2a6d51e4742834a8a8c5492740"><td class="mdescLeft"> </td><td class="mdescRight">Request packet proto stats. <a href="group__odp__packet.html#gaf09bbf2a6d51e4742834a8a8c5492740">More...</a><br /></td></tr> |
| <tr class="separator:gaf09bbf2a6d51e4742834a8a8c5492740"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga633cef4c000431c0d609bed069539cf0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__proto__stats.html#gaccde85c2d2f84f16769fb92e25399614">odp_proto_stats_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga633cef4c000431c0d609bed069539cf0">odp_packet_proto_stats</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga633cef4c000431c0d609bed069539cf0"><td class="mdescLeft"> </td><td class="mdescRight">Get proto stats object. <a href="group__odp__packet.html#ga633cef4c000431c0d609bed069539cf0">More...</a><br /></td></tr> |
| <tr class="separator:ga633cef4c000431c0d609bed069539cf0"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga30f5ecc1cb4cd111fc9f64f150f84c8a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga30f5ecc1cb4cd111fc9f64f150f84c8a">odp_packet_vector_from_event</a> (<a class="el" href="group__odp__event.html#ga51942509e0d072db63a565cbc1e7204d">odp_event_t</a> ev)</td></tr> |
| <tr class="memdesc:ga30f5ecc1cb4cd111fc9f64f150f84c8a"><td class="mdescLeft"> </td><td class="mdescRight">Get packet vector handle from event. <a href="group__odp__packet.html#ga30f5ecc1cb4cd111fc9f64f150f84c8a">More...</a><br /></td></tr> |
| <tr class="separator:ga30f5ecc1cb4cd111fc9f64f150f84c8a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga1d1c28d3de02f33e5c30a739c0b59cc5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__event.html#ga51942509e0d072db63a565cbc1e7204d">odp_event_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga1d1c28d3de02f33e5c30a739c0b59cc5">odp_packet_vector_to_event</a> (<a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> pktv)</td></tr> |
| <tr class="memdesc:ga1d1c28d3de02f33e5c30a739c0b59cc5"><td class="mdescLeft"> </td><td class="mdescRight">Convert packet vector handle to event. <a href="group__odp__packet.html#ga1d1c28d3de02f33e5c30a739c0b59cc5">More...</a><br /></td></tr> |
| <tr class="separator:ga1d1c28d3de02f33e5c30a739c0b59cc5"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga8d4eac978150e39836ceb3518375deda"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga8d4eac978150e39836ceb3518375deda">odp_packet_vector_alloc</a> (<a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> pool)</td></tr> |
| <tr class="memdesc:ga8d4eac978150e39836ceb3518375deda"><td class="mdescLeft"> </td><td class="mdescRight">Allocate a packet vector from a packet vector pool. <a href="group__odp__packet.html#ga8d4eac978150e39836ceb3518375deda">More...</a><br /></td></tr> |
| <tr class="separator:ga8d4eac978150e39836ceb3518375deda"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga9780a47c0d1ba64c4f179f0f5a864a59"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga9780a47c0d1ba64c4f179f0f5a864a59">odp_packet_vector_free</a> (<a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> pktv)</td></tr> |
| <tr class="memdesc:ga9780a47c0d1ba64c4f179f0f5a864a59"><td class="mdescLeft"> </td><td class="mdescRight">Free packet vector. <a href="group__odp__packet.html#ga9780a47c0d1ba64c4f179f0f5a864a59">More...</a><br /></td></tr> |
| <tr class="separator:ga9780a47c0d1ba64c4f179f0f5a864a59"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gabd27c442a680f0b8f1e8dad0918b6091"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gabd27c442a680f0b8f1e8dad0918b6091">odp_packet_vector_tbl</a> (<a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> pktv, <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> **pkt_tbl)</td></tr> |
| <tr class="memdesc:gabd27c442a680f0b8f1e8dad0918b6091"><td class="mdescLeft"> </td><td class="mdescRight">Get packet vector table. <a href="group__odp__packet.html#gabd27c442a680f0b8f1e8dad0918b6091">More...</a><br /></td></tr> |
| <tr class="separator:gabd27c442a680f0b8f1e8dad0918b6091"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaf0afdf0e46614b32f489575e918936fe"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaf0afdf0e46614b32f489575e918936fe">odp_packet_vector_size</a> (<a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> pktv)</td></tr> |
| <tr class="memdesc:gaf0afdf0e46614b32f489575e918936fe"><td class="mdescLeft"> </td><td class="mdescRight">Number of packets in a vector. <a href="group__odp__packet.html#gaf0afdf0e46614b32f489575e918936fe">More...</a><br /></td></tr> |
| <tr class="separator:gaf0afdf0e46614b32f489575e918936fe"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gadf7995703ea6be6ac2e9e72b4e0c1650"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gadf7995703ea6be6ac2e9e72b4e0c1650">odp_packet_vector_size_set</a> (<a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> pktv, uint32_t size)</td></tr> |
| <tr class="memdesc:gadf7995703ea6be6ac2e9e72b4e0c1650"><td class="mdescLeft"> </td><td class="mdescRight">Set the number of packets stored in a vector. <a href="group__odp__packet.html#gadf7995703ea6be6ac2e9e72b4e0c1650">More...</a><br /></td></tr> |
| <tr class="separator:gadf7995703ea6be6ac2e9e72b4e0c1650"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga595fb8408a803ae4ffe1b82b3672e7f7"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga595fb8408a803ae4ffe1b82b3672e7f7">odp_packet_vector_user_area</a> (<a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> pktv)</td></tr> |
| <tr class="memdesc:ga595fb8408a803ae4ffe1b82b3672e7f7"><td class="mdescLeft"> </td><td class="mdescRight">Packet vector user area. <a href="group__odp__packet.html#ga595fb8408a803ae4ffe1b82b3672e7f7">More...</a><br /></td></tr> |
| <tr class="separator:ga595fb8408a803ae4ffe1b82b3672e7f7"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaebda888140179cc3703f1ce074b696d9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaebda888140179cc3703f1ce074b696d9">odp_packet_vector_user_flag</a> (<a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> pktv)</td></tr> |
| <tr class="memdesc:gaebda888140179cc3703f1ce074b696d9"><td class="mdescLeft"> </td><td class="mdescRight">Check user flag. <a href="group__odp__packet.html#gaebda888140179cc3703f1ce074b696d9">More...</a><br /></td></tr> |
| <tr class="separator:gaebda888140179cc3703f1ce074b696d9"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga6a6e7daccc14954b218069d875e49086"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga6a6e7daccc14954b218069d875e49086">odp_packet_vector_user_flag_set</a> (<a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> pktv, int val)</td></tr> |
| <tr class="memdesc:ga6a6e7daccc14954b218069d875e49086"><td class="mdescLeft"> </td><td class="mdescRight">Set user flag. <a href="group__odp__packet.html#ga6a6e7daccc14954b218069d875e49086">More...</a><br /></td></tr> |
| <tr class="separator:ga6a6e7daccc14954b218069d875e49086"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga5862d011e8ed2fd9991b4c76ca590010"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga5862d011e8ed2fd9991b4c76ca590010">odp_packet_vector_valid</a> (<a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> pktv)</td></tr> |
| <tr class="memdesc:ga5862d011e8ed2fd9991b4c76ca590010"><td class="mdescLeft"> </td><td class="mdescRight">Check that packet vector is valid. <a href="group__odp__packet.html#ga5862d011e8ed2fd9991b4c76ca590010">More...</a><br /></td></tr> |
| <tr class="separator:ga5862d011e8ed2fd9991b4c76ca590010"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga1ec765e8b4110a3c649aa9b58bd78873"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga1ec765e8b4110a3c649aa9b58bd78873">odp_packet_vector_pool</a> (<a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> pktv)</td></tr> |
| <tr class="memdesc:ga1ec765e8b4110a3c649aa9b58bd78873"><td class="mdescLeft"> </td><td class="mdescRight">Packet vector pool. <a href="group__odp__packet.html#ga1ec765e8b4110a3c649aa9b58bd78873">More...</a><br /></td></tr> |
| <tr class="separator:ga1ec765e8b4110a3c649aa9b58bd78873"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaa2a3aba713553d99bd4d369cdf3676e7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaa2a3aba713553d99bd4d369cdf3676e7">odp_packet_vector_print</a> (<a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> pktv)</td></tr> |
| <tr class="memdesc:gaa2a3aba713553d99bd4d369cdf3676e7"><td class="mdescLeft"> </td><td class="mdescRight">Print packet vector debug information. <a href="group__odp__packet.html#gaa2a3aba713553d99bd4d369cdf3676e7">More...</a><br /></td></tr> |
| <tr class="separator:gaa2a3aba713553d99bd4d369cdf3676e7"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaaec23edd4639703d996d65e388092333"><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaaec23edd4639703d996d65e388092333">odp_packet_vector_to_u64</a> (<a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> pktv)</td></tr> |
| <tr class="memdesc:gaaec23edd4639703d996d65e388092333"><td class="mdescLeft"> </td><td class="mdescRight">Get printable value for packet vector handle. <a href="group__odp__packet.html#gaaec23edd4639703d996d65e388092333">More...</a><br /></td></tr> |
| <tr class="separator:gaaec23edd4639703d996d65e388092333"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga97dad01c0769ba31fc9ad8ae7779d2d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#ga921fa9035d7f9f3989afbcc7bcdfb6fd">odp_packet_reass_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga97dad01c0769ba31fc9ad8ae7779d2d0">odp_packet_reass_status</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga97dad01c0769ba31fc9ad8ae7779d2d0"><td class="mdescLeft"> </td><td class="mdescRight">Check reassembly status of the packet. <a href="group__odp__packet.html#ga97dad01c0769ba31fc9ad8ae7779d2d0">More...</a><br /></td></tr> |
| <tr class="separator:ga97dad01c0769ba31fc9ad8ae7779d2d0"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad5ed46d03733647995ba81168b2d201d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__packet.html#gad876550d61f3e496eed591ea98bbf38d">odp_packet_tx_compl_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad5ed46d03733647995ba81168b2d201d">odp_packet_tx_compl_from_event</a> (<a class="el" href="group__odp__event.html#ga51942509e0d072db63a565cbc1e7204d">odp_event_t</a> ev)</td></tr> |
| <tr class="memdesc:gad5ed46d03733647995ba81168b2d201d"><td class="mdescLeft"> </td><td class="mdescRight">Get packet Tx completion handle from event. <a href="group__odp__packet.html#gad5ed46d03733647995ba81168b2d201d">More...</a><br /></td></tr> |
| <tr class="separator:gad5ed46d03733647995ba81168b2d201d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gac1788b5527fec6c43fa6d42c8b337278"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__event.html#ga51942509e0d072db63a565cbc1e7204d">odp_event_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gac1788b5527fec6c43fa6d42c8b337278">odp_packet_tx_compl_to_event</a> (<a class="el" href="group__odp__packet.html#gad876550d61f3e496eed591ea98bbf38d">odp_packet_tx_compl_t</a> tx_compl)</td></tr> |
| <tr class="memdesc:gac1788b5527fec6c43fa6d42c8b337278"><td class="mdescLeft"> </td><td class="mdescRight">Convert packet Tx completion to event. <a href="group__odp__packet.html#gac1788b5527fec6c43fa6d42c8b337278">More...</a><br /></td></tr> |
| <tr class="separator:gac1788b5527fec6c43fa6d42c8b337278"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad76137e77418e1bba2e866f92d3c6295"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad76137e77418e1bba2e866f92d3c6295">odp_packet_tx_compl_free</a> (<a class="el" href="group__odp__packet.html#gad876550d61f3e496eed591ea98bbf38d">odp_packet_tx_compl_t</a> tx_compl)</td></tr> |
| <tr class="memdesc:gad76137e77418e1bba2e866f92d3c6295"><td class="mdescLeft"> </td><td class="mdescRight">Free packet Tx completion. <a href="group__odp__packet.html#gad76137e77418e1bba2e866f92d3c6295">More...</a><br /></td></tr> |
| <tr class="separator:gad76137e77418e1bba2e866f92d3c6295"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaa6b6edef3e086212b414593a1709209f"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaa6b6edef3e086212b414593a1709209f">odp_packet_tx_compl_user_ptr</a> (<a class="el" href="group__odp__packet.html#gad876550d61f3e496eed591ea98bbf38d">odp_packet_tx_compl_t</a> tx_compl)</td></tr> |
| <tr class="memdesc:gaa6b6edef3e086212b414593a1709209f"><td class="mdescLeft"> </td><td class="mdescRight">User context pointer. <a href="group__odp__packet.html#gaa6b6edef3e086212b414593a1709209f">More...</a><br /></td></tr> |
| <tr class="separator:gaa6b6edef3e086212b414593a1709209f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga1f61efc592270b109e3e7fa526ab2554"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga1f61efc592270b109e3e7fa526ab2554">odp_packet_tx_compl_done</a> (<a class="el" href="group__odp__packet__io.html#gab2c9857b9be70ca49962a8f22d3cb657">odp_pktio_t</a> pktio, uint32_t compl_id)</td></tr> |
| <tr class="memdesc:ga1f61efc592270b109e3e7fa526ab2554"><td class="mdescLeft"> </td><td class="mdescRight">Check packet transmit completion. <a href="group__odp__packet.html#ga1f61efc592270b109e3e7fa526ab2554">More...</a><br /></td></tr> |
| <tr class="separator:ga1f61efc592270b109e3e7fa526ab2554"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad880f7004841de43ab0ae37ad428b0ca"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad880f7004841de43ab0ae37ad428b0ca">odp_packet_print</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gad880f7004841de43ab0ae37ad428b0ca"><td class="mdescLeft"> </td><td class="mdescRight">Print packet debug information. <a href="group__odp__packet.html#gad880f7004841de43ab0ae37ad428b0ca">More...</a><br /></td></tr> |
| <tr class="separator:gad880f7004841de43ab0ae37ad428b0ca"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga023c8f0f47ffef701b8ce6f5264d028a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga023c8f0f47ffef701b8ce6f5264d028a">odp_packet_print_data</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, uint32_t offset, uint32_t len)</td></tr> |
| <tr class="memdesc:ga023c8f0f47ffef701b8ce6f5264d028a"><td class="mdescLeft"> </td><td class="mdescRight">Print packet data. <a href="group__odp__packet.html#ga023c8f0f47ffef701b8ce6f5264d028a">More...</a><br /></td></tr> |
| <tr class="separator:ga023c8f0f47ffef701b8ce6f5264d028a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad18f8814ec61cc711dc3d0070b73478b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad18f8814ec61cc711dc3d0070b73478b">odp_packet_is_valid</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gad18f8814ec61cc711dc3d0070b73478b"><td class="mdescLeft"> </td><td class="mdescRight">Check that packet is valid. <a href="group__odp__packet.html#gad18f8814ec61cc711dc3d0070b73478b">More...</a><br /></td></tr> |
| <tr class="separator:gad18f8814ec61cc711dc3d0070b73478b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga703e72cf0c9f7c02fa7c67ee52db97e8"><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga703e72cf0c9f7c02fa7c67ee52db97e8">odp_packet_to_u64</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga703e72cf0c9f7c02fa7c67ee52db97e8"><td class="mdescLeft"> </td><td class="mdescRight">Get printable value for packet handle. <a href="group__odp__packet.html#ga703e72cf0c9f7c02fa7c67ee52db97e8">More...</a><br /></td></tr> |
| <tr class="separator:ga703e72cf0c9f7c02fa7c67ee52db97e8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad376133cffb1d964b441e4ed5e7311b9"><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad376133cffb1d964b441e4ed5e7311b9">odp_packet_seg_to_u64</a> (<a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a> seg)</td></tr> |
| <tr class="memdesc:gad376133cffb1d964b441e4ed5e7311b9"><td class="mdescLeft"> </td><td class="mdescRight">Get printable value for packet segment handle. <a href="group__odp__packet.html#gad376133cffb1d964b441e4ed5e7311b9">More...</a><br /></td></tr> |
| <tr class="separator:gad376133cffb1d964b441e4ed5e7311b9"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga17519fb947ac4b1c2a147d79a88898ae"><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga17519fb947ac4b1c2a147d79a88898ae">odp_packet_tx_compl_to_u64</a> (<a class="el" href="group__odp__packet.html#gad876550d61f3e496eed591ea98bbf38d">odp_packet_tx_compl_t</a> tx_compl)</td></tr> |
| <tr class="memdesc:ga17519fb947ac4b1c2a147d79a88898ae"><td class="mdescLeft"> </td><td class="mdescRight">Get printable value for packet Tx completion handle. <a href="group__odp__packet.html#ga17519fb947ac4b1c2a147d79a88898ae">More...</a><br /></td></tr> |
| <tr class="separator:ga17519fb947ac4b1c2a147d79a88898ae"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga6a0bceb8c3c555f52638561dfce5f785"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga6a0bceb8c3c555f52638561dfce5f785">odp_packet_has_error</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga6a0bceb8c3c555f52638561dfce5f785"><td class="mdescLeft"> </td><td class="mdescRight">Check for all parse errors in packet. <a href="group__odp__packet.html#ga6a0bceb8c3c555f52638561dfce5f785">More...</a><br /></td></tr> |
| <tr class="separator:ga6a0bceb8c3c555f52638561dfce5f785"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga8cb2fae71b65569db938f8ccdd55fbd9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga8cb2fae71b65569db938f8ccdd55fbd9">odp_packet_has_l2_error</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga8cb2fae71b65569db938f8ccdd55fbd9"><td class="mdescLeft"> </td><td class="mdescRight">Check for errors in layer 2. <a href="group__odp__packet.html#ga8cb2fae71b65569db938f8ccdd55fbd9">More...</a><br /></td></tr> |
| <tr class="separator:ga8cb2fae71b65569db938f8ccdd55fbd9"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gac8faba8bf82ea23f85963e27f0d5e6b8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gac8faba8bf82ea23f85963e27f0d5e6b8">odp_packet_has_l3_error</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gac8faba8bf82ea23f85963e27f0d5e6b8"><td class="mdescLeft"> </td><td class="mdescRight">Check for errors in layer 3. <a href="group__odp__packet.html#gac8faba8bf82ea23f85963e27f0d5e6b8">More...</a><br /></td></tr> |
| <tr class="separator:gac8faba8bf82ea23f85963e27f0d5e6b8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaab6d8b5d962ac021b7a95e69f5691c2e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaab6d8b5d962ac021b7a95e69f5691c2e">odp_packet_has_l4_error</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gaab6d8b5d962ac021b7a95e69f5691c2e"><td class="mdescLeft"> </td><td class="mdescRight">Check for errors in layer 4. <a href="group__odp__packet.html#gaab6d8b5d962ac021b7a95e69f5691c2e">More...</a><br /></td></tr> |
| <tr class="separator:gaab6d8b5d962ac021b7a95e69f5691c2e"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga7d214afb24153cf16bf3ae774c3b7d1b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga7d214afb24153cf16bf3ae774c3b7d1b">odp_packet_has_l2</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga7d214afb24153cf16bf3ae774c3b7d1b"><td class="mdescLeft"> </td><td class="mdescRight">Check for layer 2 protocols. <a href="group__odp__packet.html#ga7d214afb24153cf16bf3ae774c3b7d1b">More...</a><br /></td></tr> |
| <tr class="separator:ga7d214afb24153cf16bf3ae774c3b7d1b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga0aa1a0f7db60d79c1fdf8453aac52248"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga0aa1a0f7db60d79c1fdf8453aac52248">odp_packet_has_l3</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga0aa1a0f7db60d79c1fdf8453aac52248"><td class="mdescLeft"> </td><td class="mdescRight">Check for layer 3 protocols. <a href="group__odp__packet.html#ga0aa1a0f7db60d79c1fdf8453aac52248">More...</a><br /></td></tr> |
| <tr class="separator:ga0aa1a0f7db60d79c1fdf8453aac52248"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga67debe2e28e66e464faeaa3b3ab655e0"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga67debe2e28e66e464faeaa3b3ab655e0">odp_packet_has_l4</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga67debe2e28e66e464faeaa3b3ab655e0"><td class="mdescLeft"> </td><td class="mdescRight">Check for layer 4 protocols. <a href="group__odp__packet.html#ga67debe2e28e66e464faeaa3b3ab655e0">More...</a><br /></td></tr> |
| <tr class="separator:ga67debe2e28e66e464faeaa3b3ab655e0"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga4606474a0e463064e573cfe95acf10ab"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga4606474a0e463064e573cfe95acf10ab">odp_packet_has_eth</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga4606474a0e463064e573cfe95acf10ab"><td class="mdescLeft"> </td><td class="mdescRight">Check for Ethernet header. <a href="group__odp__packet.html#ga4606474a0e463064e573cfe95acf10ab">More...</a><br /></td></tr> |
| <tr class="separator:ga4606474a0e463064e573cfe95acf10ab"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga6132c365b59f060a4c9b6d0a9058b55a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga6132c365b59f060a4c9b6d0a9058b55a">odp_packet_has_eth_bcast</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga6132c365b59f060a4c9b6d0a9058b55a"><td class="mdescLeft"> </td><td class="mdescRight">Check for Ethernet broadcast address. <a href="group__odp__packet.html#ga6132c365b59f060a4c9b6d0a9058b55a">More...</a><br /></td></tr> |
| <tr class="separator:ga6132c365b59f060a4c9b6d0a9058b55a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gab616ce707cc10fed777f3293ebe2a46b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gab616ce707cc10fed777f3293ebe2a46b">odp_packet_has_eth_mcast</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gab616ce707cc10fed777f3293ebe2a46b"><td class="mdescLeft"> </td><td class="mdescRight">Check for Ethernet multicast address. <a href="group__odp__packet.html#gab616ce707cc10fed777f3293ebe2a46b">More...</a><br /></td></tr> |
| <tr class="separator:gab616ce707cc10fed777f3293ebe2a46b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaa3328f5fc60d071022b541bbd0fa03ea"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaa3328f5fc60d071022b541bbd0fa03ea">odp_packet_has_jumbo</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gaa3328f5fc60d071022b541bbd0fa03ea"><td class="mdescLeft"> </td><td class="mdescRight">Check for jumbo frame. <a href="group__odp__packet.html#gaa3328f5fc60d071022b541bbd0fa03ea">More...</a><br /></td></tr> |
| <tr class="separator:gaa3328f5fc60d071022b541bbd0fa03ea"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga9e3e865a777eb4a8e51632cc206e73ce"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga9e3e865a777eb4a8e51632cc206e73ce">odp_packet_has_vlan</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga9e3e865a777eb4a8e51632cc206e73ce"><td class="mdescLeft"> </td><td class="mdescRight">Check for VLAN. <a href="group__odp__packet.html#ga9e3e865a777eb4a8e51632cc206e73ce">More...</a><br /></td></tr> |
| <tr class="separator:ga9e3e865a777eb4a8e51632cc206e73ce"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga4dc1736dab76a84e77b32899d5ce4903"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga4dc1736dab76a84e77b32899d5ce4903">odp_packet_has_vlan_qinq</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga4dc1736dab76a84e77b32899d5ce4903"><td class="mdescLeft"> </td><td class="mdescRight">Check for VLAN QinQ (stacked VLAN) <a href="group__odp__packet.html#ga4dc1736dab76a84e77b32899d5ce4903">More...</a><br /></td></tr> |
| <tr class="separator:ga4dc1736dab76a84e77b32899d5ce4903"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gab10f687e98d43e563d92c1cfaaf81dfe"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gab10f687e98d43e563d92c1cfaaf81dfe">odp_packet_has_arp</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gab10f687e98d43e563d92c1cfaaf81dfe"><td class="mdescLeft"> </td><td class="mdescRight">Check for ARP. <a href="group__odp__packet.html#gab10f687e98d43e563d92c1cfaaf81dfe">More...</a><br /></td></tr> |
| <tr class="separator:gab10f687e98d43e563d92c1cfaaf81dfe"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga34cecc1ff01ab01bbcbd18dd8ef535fb"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga34cecc1ff01ab01bbcbd18dd8ef535fb">odp_packet_has_ipv4</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga34cecc1ff01ab01bbcbd18dd8ef535fb"><td class="mdescLeft"> </td><td class="mdescRight">Check for IPv4. <a href="group__odp__packet.html#ga34cecc1ff01ab01bbcbd18dd8ef535fb">More...</a><br /></td></tr> |
| <tr class="separator:ga34cecc1ff01ab01bbcbd18dd8ef535fb"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga6fb9531bd5cbc6a850e294c4dbcd0c27"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga6fb9531bd5cbc6a850e294c4dbcd0c27">odp_packet_has_ipv6</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga6fb9531bd5cbc6a850e294c4dbcd0c27"><td class="mdescLeft"> </td><td class="mdescRight">Check for IPv6. <a href="group__odp__packet.html#ga6fb9531bd5cbc6a850e294c4dbcd0c27">More...</a><br /></td></tr> |
| <tr class="separator:ga6fb9531bd5cbc6a850e294c4dbcd0c27"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga356875beb511a9dfd36bc2029947ea54"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga356875beb511a9dfd36bc2029947ea54">odp_packet_has_ip_bcast</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga356875beb511a9dfd36bc2029947ea54"><td class="mdescLeft"> </td><td class="mdescRight">Check for IP broadcast address. <a href="group__odp__packet.html#ga356875beb511a9dfd36bc2029947ea54">More...</a><br /></td></tr> |
| <tr class="separator:ga356875beb511a9dfd36bc2029947ea54"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga107df4e23d6769976828a314ff4582fc"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga107df4e23d6769976828a314ff4582fc">odp_packet_has_ip_mcast</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga107df4e23d6769976828a314ff4582fc"><td class="mdescLeft"> </td><td class="mdescRight">Check for IP multicast address. <a href="group__odp__packet.html#ga107df4e23d6769976828a314ff4582fc">More...</a><br /></td></tr> |
| <tr class="separator:ga107df4e23d6769976828a314ff4582fc"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga10b548f0a75e32dd11bbeaf8a8edc345"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga10b548f0a75e32dd11bbeaf8a8edc345">odp_packet_has_ipfrag</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga10b548f0a75e32dd11bbeaf8a8edc345"><td class="mdescLeft"> </td><td class="mdescRight">Check for IP fragment. <a href="group__odp__packet.html#ga10b548f0a75e32dd11bbeaf8a8edc345">More...</a><br /></td></tr> |
| <tr class="separator:ga10b548f0a75e32dd11bbeaf8a8edc345"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga1eee0e77ad58ff572dfabaf95f25cd55"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga1eee0e77ad58ff572dfabaf95f25cd55">odp_packet_has_ipopt</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga1eee0e77ad58ff572dfabaf95f25cd55"><td class="mdescLeft"> </td><td class="mdescRight">Check for IP options. <a href="group__odp__packet.html#ga1eee0e77ad58ff572dfabaf95f25cd55">More...</a><br /></td></tr> |
| <tr class="separator:ga1eee0e77ad58ff572dfabaf95f25cd55"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gab6a8f73fcc0f585c4a4443f9f449b69e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gab6a8f73fcc0f585c4a4443f9f449b69e">odp_packet_has_ipsec</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gab6a8f73fcc0f585c4a4443f9f449b69e"><td class="mdescLeft"> </td><td class="mdescRight">Check for IPSec. <a href="group__odp__packet.html#gab6a8f73fcc0f585c4a4443f9f449b69e">More...</a><br /></td></tr> |
| <tr class="separator:gab6a8f73fcc0f585c4a4443f9f449b69e"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaebb6c19d5fc2ff3a722947b74e0d38a3"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaebb6c19d5fc2ff3a722947b74e0d38a3">odp_packet_has_udp</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gaebb6c19d5fc2ff3a722947b74e0d38a3"><td class="mdescLeft"> </td><td class="mdescRight">Check for UDP. <a href="group__odp__packet.html#gaebb6c19d5fc2ff3a722947b74e0d38a3">More...</a><br /></td></tr> |
| <tr class="separator:gaebb6c19d5fc2ff3a722947b74e0d38a3"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gac7bc6a3ffc116a7bf86ba827fd579704"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gac7bc6a3ffc116a7bf86ba827fd579704">odp_packet_has_tcp</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gac7bc6a3ffc116a7bf86ba827fd579704"><td class="mdescLeft"> </td><td class="mdescRight">Check for TCP. <a href="group__odp__packet.html#gac7bc6a3ffc116a7bf86ba827fd579704">More...</a><br /></td></tr> |
| <tr class="separator:gac7bc6a3ffc116a7bf86ba827fd579704"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gac369da93c52238750f9af6b4d331c605"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gac369da93c52238750f9af6b4d331c605">odp_packet_has_sctp</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gac369da93c52238750f9af6b4d331c605"><td class="mdescLeft"> </td><td class="mdescRight">Check for SCTP. <a href="group__odp__packet.html#gac369da93c52238750f9af6b4d331c605">More...</a><br /></td></tr> |
| <tr class="separator:gac369da93c52238750f9af6b4d331c605"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga343ae97d85ff6defcecbf66e32fba4c5"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga343ae97d85ff6defcecbf66e32fba4c5">odp_packet_has_icmp</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga343ae97d85ff6defcecbf66e32fba4c5"><td class="mdescLeft"> </td><td class="mdescRight">Check for ICMP. <a href="group__odp__packet.html#ga343ae97d85ff6defcecbf66e32fba4c5">More...</a><br /></td></tr> |
| <tr class="separator:ga343ae97d85ff6defcecbf66e32fba4c5"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga7b17fb171e242b31d1089d349c9ba356"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga7b17fb171e242b31d1089d349c9ba356">odp_packet_has_flow_hash</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga7b17fb171e242b31d1089d349c9ba356"><td class="mdescLeft"> </td><td class="mdescRight">Check for packet flow hash. <a href="group__odp__packet.html#ga7b17fb171e242b31d1089d349c9ba356">More...</a><br /></td></tr> |
| <tr class="separator:ga7b17fb171e242b31d1089d349c9ba356"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga1937a99d94a87387d8700e850a013dd3"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga1937a99d94a87387d8700e850a013dd3">odp_packet_has_ts</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:ga1937a99d94a87387d8700e850a013dd3"><td class="mdescLeft"> </td><td class="mdescRight">Check for packet timestamp. <a href="group__odp__packet.html#ga1937a99d94a87387d8700e850a013dd3">More...</a><br /></td></tr> |
| <tr class="separator:ga1937a99d94a87387d8700e850a013dd3"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga2eedd4c3af15c61c61494899ca59d0ec"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga2eedd4c3af15c61c61494899ca59d0ec">odp_packet_has_l2_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:ga2eedd4c3af15c61c61494899ca59d0ec"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for L2 header, e.g. <a href="group__odp__packet.html#ga2eedd4c3af15c61c61494899ca59d0ec">More...</a><br /></td></tr> |
| <tr class="separator:ga2eedd4c3af15c61c61494899ca59d0ec"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga4ff8f445fbba9c391a47d06b5ea1c8ec"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga4ff8f445fbba9c391a47d06b5ea1c8ec">odp_packet_has_l3_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:ga4ff8f445fbba9c391a47d06b5ea1c8ec"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for L3 header, e.g. <a href="group__odp__packet.html#ga4ff8f445fbba9c391a47d06b5ea1c8ec">More...</a><br /></td></tr> |
| <tr class="separator:ga4ff8f445fbba9c391a47d06b5ea1c8ec"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga235cffc4f9a5c5d7ecbfd690f2659d6f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga235cffc4f9a5c5d7ecbfd690f2659d6f">odp_packet_has_l4_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:ga235cffc4f9a5c5d7ecbfd690f2659d6f"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for L4 header, e.g. <a href="group__odp__packet.html#ga235cffc4f9a5c5d7ecbfd690f2659d6f">More...</a><br /></td></tr> |
| <tr class="separator:ga235cffc4f9a5c5d7ecbfd690f2659d6f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga55e5a8e03de24831ae630003dbb8003f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga55e5a8e03de24831ae630003dbb8003f">odp_packet_has_eth_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:ga55e5a8e03de24831ae630003dbb8003f"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for Ethernet header. <a href="group__odp__packet.html#ga55e5a8e03de24831ae630003dbb8003f">More...</a><br /></td></tr> |
| <tr class="separator:ga55e5a8e03de24831ae630003dbb8003f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga84155aa933a2c27ec2c1d79dd9431861"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga84155aa933a2c27ec2c1d79dd9431861">odp_packet_has_eth_bcast_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:ga84155aa933a2c27ec2c1d79dd9431861"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for Ethernet broadcast address. <a href="group__odp__packet.html#ga84155aa933a2c27ec2c1d79dd9431861">More...</a><br /></td></tr> |
| <tr class="separator:ga84155aa933a2c27ec2c1d79dd9431861"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gab6e400e84876eebd498abe5b1d7e6068"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gab6e400e84876eebd498abe5b1d7e6068">odp_packet_has_eth_mcast_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:gab6e400e84876eebd498abe5b1d7e6068"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for Ethernet multicast address. <a href="group__odp__packet.html#gab6e400e84876eebd498abe5b1d7e6068">More...</a><br /></td></tr> |
| <tr class="separator:gab6e400e84876eebd498abe5b1d7e6068"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gadba137d2bd45fdc060f7c0f3716b8742"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gadba137d2bd45fdc060f7c0f3716b8742">odp_packet_has_jumbo_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:gadba137d2bd45fdc060f7c0f3716b8742"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for jumbo frame. <a href="group__odp__packet.html#gadba137d2bd45fdc060f7c0f3716b8742">More...</a><br /></td></tr> |
| <tr class="separator:gadba137d2bd45fdc060f7c0f3716b8742"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gae7914c71c103f6e5905a88d6c5845a41"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gae7914c71c103f6e5905a88d6c5845a41">odp_packet_has_vlan_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:gae7914c71c103f6e5905a88d6c5845a41"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for VLAN. <a href="group__odp__packet.html#gae7914c71c103f6e5905a88d6c5845a41">More...</a><br /></td></tr> |
| <tr class="separator:gae7914c71c103f6e5905a88d6c5845a41"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga19fe37ff7935a1083c6aa346932c866a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga19fe37ff7935a1083c6aa346932c866a">odp_packet_has_vlan_qinq_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:ga19fe37ff7935a1083c6aa346932c866a"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for VLAN QinQ (stacked VLAN) <a href="group__odp__packet.html#ga19fe37ff7935a1083c6aa346932c866a">More...</a><br /></td></tr> |
| <tr class="separator:ga19fe37ff7935a1083c6aa346932c866a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gabcb2296cce10ecd7d81e972e5550bdb9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gabcb2296cce10ecd7d81e972e5550bdb9">odp_packet_has_arp_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:gabcb2296cce10ecd7d81e972e5550bdb9"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for ARP. <a href="group__odp__packet.html#gabcb2296cce10ecd7d81e972e5550bdb9">More...</a><br /></td></tr> |
| <tr class="separator:gabcb2296cce10ecd7d81e972e5550bdb9"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaf968bba615817de2f67c89e3d424431e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gaf968bba615817de2f67c89e3d424431e">odp_packet_has_ipv4_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:gaf968bba615817de2f67c89e3d424431e"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for IPv4. <a href="group__odp__packet.html#gaf968bba615817de2f67c89e3d424431e">More...</a><br /></td></tr> |
| <tr class="separator:gaf968bba615817de2f67c89e3d424431e"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga0bce56214d6a2914fc03f4eb51532fff"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga0bce56214d6a2914fc03f4eb51532fff">odp_packet_has_ipv6_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:ga0bce56214d6a2914fc03f4eb51532fff"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for IPv6. <a href="group__odp__packet.html#ga0bce56214d6a2914fc03f4eb51532fff">More...</a><br /></td></tr> |
| <tr class="separator:ga0bce56214d6a2914fc03f4eb51532fff"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga402ddf7d44c470fc1f106daa2c1a4467"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga402ddf7d44c470fc1f106daa2c1a4467">odp_packet_has_ip_bcast_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:ga402ddf7d44c470fc1f106daa2c1a4467"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for IP broadcast address. <a href="group__odp__packet.html#ga402ddf7d44c470fc1f106daa2c1a4467">More...</a><br /></td></tr> |
| <tr class="separator:ga402ddf7d44c470fc1f106daa2c1a4467"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad718b3bf172601b68bb4b371b00a36c3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gad718b3bf172601b68bb4b371b00a36c3">odp_packet_has_ip_mcast_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:gad718b3bf172601b68bb4b371b00a36c3"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for IP multicast address. <a href="group__odp__packet.html#gad718b3bf172601b68bb4b371b00a36c3">More...</a><br /></td></tr> |
| <tr class="separator:gad718b3bf172601b68bb4b371b00a36c3"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gae4cd511c7e3eb6ee91dd9f36d0e8c97d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gae4cd511c7e3eb6ee91dd9f36d0e8c97d">odp_packet_has_ipfrag_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:gae4cd511c7e3eb6ee91dd9f36d0e8c97d"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for IP fragment. <a href="group__odp__packet.html#gae4cd511c7e3eb6ee91dd9f36d0e8c97d">More...</a><br /></td></tr> |
| <tr class="separator:gae4cd511c7e3eb6ee91dd9f36d0e8c97d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gab9e70b2dbd1eae7a1945ac8d2d0d7def"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gab9e70b2dbd1eae7a1945ac8d2d0d7def">odp_packet_has_ipopt_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:gab9e70b2dbd1eae7a1945ac8d2d0d7def"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for IP options. <a href="group__odp__packet.html#gab9e70b2dbd1eae7a1945ac8d2d0d7def">More...</a><br /></td></tr> |
| <tr class="separator:gab9e70b2dbd1eae7a1945ac8d2d0d7def"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga6180f1fa95e6b618cf88f8952620ee43"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga6180f1fa95e6b618cf88f8952620ee43">odp_packet_has_ipsec_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:ga6180f1fa95e6b618cf88f8952620ee43"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for IPSec. <a href="group__odp__packet.html#ga6180f1fa95e6b618cf88f8952620ee43">More...</a><br /></td></tr> |
| <tr class="separator:ga6180f1fa95e6b618cf88f8952620ee43"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga7a4b17e9c4ae1b29c1731d0a56ab4d1f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga7a4b17e9c4ae1b29c1731d0a56ab4d1f">odp_packet_has_udp_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:ga7a4b17e9c4ae1b29c1731d0a56ab4d1f"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for UDP. <a href="group__odp__packet.html#ga7a4b17e9c4ae1b29c1731d0a56ab4d1f">More...</a><br /></td></tr> |
| <tr class="separator:ga7a4b17e9c4ae1b29c1731d0a56ab4d1f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga9f77d0fd39522623b44a262d8fc482de"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga9f77d0fd39522623b44a262d8fc482de">odp_packet_has_tcp_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:ga9f77d0fd39522623b44a262d8fc482de"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for TCP. <a href="group__odp__packet.html#ga9f77d0fd39522623b44a262d8fc482de">More...</a><br /></td></tr> |
| <tr class="separator:ga9f77d0fd39522623b44a262d8fc482de"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gae585f7f9e0908667feea1166feb75e81"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gae585f7f9e0908667feea1166feb75e81">odp_packet_has_sctp_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:gae585f7f9e0908667feea1166feb75e81"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for SCTP. <a href="group__odp__packet.html#gae585f7f9e0908667feea1166feb75e81">More...</a><br /></td></tr> |
| <tr class="separator:gae585f7f9e0908667feea1166feb75e81"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga7a2e04fab008fa837e77d4a2e5c8fc77"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#ga7a2e04fab008fa837e77d4a2e5c8fc77">odp_packet_has_icmp_set</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt, int val)</td></tr> |
| <tr class="memdesc:ga7a2e04fab008fa837e77d4a2e5c8fc77"><td class="mdescLeft"> </td><td class="mdescRight">Set flag for ICMP. <a href="group__odp__packet.html#ga7a2e04fab008fa837e77d4a2e5c8fc77">More...</a><br /></td></tr> |
| <tr class="separator:ga7a2e04fab008fa837e77d4a2e5c8fc77"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gac98dc9625073a770b61cd9dd3678440d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gac98dc9625073a770b61cd9dd3678440d">odp_packet_has_flow_hash_clr</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gac98dc9625073a770b61cd9dd3678440d"><td class="mdescLeft"> </td><td class="mdescRight">Clear flag for packet flow hash. <a href="group__odp__packet.html#gac98dc9625073a770b61cd9dd3678440d">More...</a><br /></td></tr> |
| <tr class="separator:gac98dc9625073a770b61cd9dd3678440d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gae8946a4ba073b12b61c26b3ee288a114"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__packet.html#gae8946a4ba073b12b61c26b3ee288a114">odp_packet_has_ts_clr</a> (<a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> pkt)</td></tr> |
| <tr class="memdesc:gae8946a4ba073b12b61c26b3ee288a114"><td class="mdescLeft"> </td><td class="mdescRight">Clear flag for packet timestamp. <a href="group__odp__packet.html#gae8946a4ba073b12b61c26b3ee288a114">More...</a><br /></td></tr> |
| <tr class="separator:gae8946a4ba073b12b61c26b3ee288a114"><td class="memSeparator" colspan="2"> </td></tr> |
| </table> |
| <h2 class="groupheader">Macro Definition Documentation</h2> |
| <a id="gabdbb67db95cd4143aa3e47ad66666687"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gabdbb67db95cd4143aa3e47ad66666687">◆ </a></span>ODP_PACKET_TX_COMPL_ALL</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define ODP_PACKET_TX_COMPL_ALL   <a class="el" href="group__odp__packet.html#gga4bb031f9e7fc5ba10c67a713afdb2e61a7ad3c421b06b807be8ec874ab12a4627">ODP_PACKET_TX_COMPL_EVENT</a></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>For backwards compatibility, ODP_PACKET_TX_COMPL_ALL is synonym of ODP_PACKET_TX_COMPL_EVENT. </p> |
| <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000004">Deprecated:</a></b></dt><dd>Use <a class="el" href="group__odp__packet.html#gga4bb031f9e7fc5ba10c67a713afdb2e61a7ad3c421b06b807be8ec874ab12a4627" title="Enable packet transmit completion event.">ODP_PACKET_TX_COMPL_EVENT</a> instead. </dd></dl> |
| |
| <p class="definition">Definition at line <a class="el" href="spec_2packet__types_8h_source.html#l00449">449</a> of file <a class="el" href="spec_2packet__types_8h_source.html">spec/packet_types.h</a>.</p> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Typedef Documentation</h2> |
| <a id="ga96879753fc2a295c4f6d3870f787f565"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga96879753fc2a295c4f6d3870f787f565">◆ </a></span>odp_packet_seg_t</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>ODP packet segment. </p> |
| <p>A packet segment refers to a contiguous part of packet data (in memory). Segments of a packet can be examined with <a class="el" href="group__odp__packet.html#ga613c050268f3f794a13cfc0e3a653de2" title="Segment data pointer.">odp_packet_seg_data()</a>, <a class="el" href="group__odp__packet.html#ga367b7a45a12d68bd6b717a4850d9ca83" title="Segment data length.">odp_packet_seg_data_len()</a> and other calls. </p> |
| |
| <p class="definition">Definition at line <a class="el" href="abi-default_2packet__types_8h_source.html#l00035">35</a> of file <a class="el" href="abi-default_2packet__types_8h_source.html">abi-default/packet_types.h</a>.</p> |
| |
| </div> |
| </div> |
| <a id="ga93a7765945bb4d132c77285fba275f9f"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga93a7765945bb4d132c77285fba275f9f">◆ </a></span>odp_packet_buf_t</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>ODP packet buffer. </p> |
| <p>Packet buffers are not part of any packet, but they result from a previous <a class="el" href="group__odp__packet.html#gace1e4ce9f3c124547f899095effa7775" title="Disassemble packet into packet buffers.">odp_packet_disassemble()</a> call. A new packet is formed from packet buffers with a <a class="el" href="group__odp__packet.html#ga049e7cdd6ef1d6a6f07801767eb086a7" title="Reassemble packet from packet buffers.">odp_packet_reassemble()</a> call. </p> |
| |
| <p class="definition">Definition at line <a class="el" href="abi-default_2packet__types_8h_source.html#l00036">36</a> of file <a class="el" href="abi-default_2packet__types_8h_source.html">abi-default/packet_types.h</a>.</p> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Enumeration Type Documentation</h2> |
| <a id="gac19d4ea0c0918ffa4a804ea83c5ab131"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gac19d4ea0c0918ffa4a804ea83c5ab131">◆ </a></span>odp_packet_color_t</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">enum <a class="el" href="group__odp__packet.html#gac19d4ea0c0918ffa4a804ea83c5ab131">odp_packet_color_t</a></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet Color. </p> |
| <p>Color of packet for shaper/drop processing. </p> |
| <table class="fieldtable"> |
| <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggac19d4ea0c0918ffa4a804ea83c5ab131acb86d06a54277d5e4bce0ff51e0de3eb"></a>ODP_PACKET_GREEN </td><td class="fielddoc"><p>Packet is green. </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="ggac19d4ea0c0918ffa4a804ea83c5ab131aa613740121f2e69161b9bd4a56e3225d"></a>ODP_PACKET_YELLOW </td><td class="fielddoc"><p>Packet is yellow. </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="ggac19d4ea0c0918ffa4a804ea83c5ab131ac6271f6e429a18cf631793a47d1098f7"></a>ODP_PACKET_RED </td><td class="fielddoc"><p>Packet is red. </p> |
| </td></tr> |
| </table> |
| |
| <p class="definition">Definition at line <a class="el" href="abi-default_2packet__types_8h_source.html#l00048">48</a> of file <a class="el" href="abi-default_2packet__types_8h_source.html">abi-default/packet_types.h</a>.</p> |
| |
| </div> |
| </div> |
| <a id="gabf47d1f8d2c6fc6a4391d028a5acc749"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gabf47d1f8d2c6fc6a4391d028a5acc749">◆ </a></span>odp_packet_chksum_status_t</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">enum <a class="el" href="group__odp__packet.html#gabf47d1f8d2c6fc6a4391d028a5acc749">odp_packet_chksum_status_t</a></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet Checksum Status. </p> |
| <p>Checksum check status in packet. </p> |
| <table class="fieldtable"> |
| <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggabf47d1f8d2c6fc6a4391d028a5acc749ab79f731430a7f396c87acbe7a983d836"></a>ODP_PACKET_CHKSUM_UNKNOWN </td><td class="fielddoc"><p>Checksum was not checked. </p> |
| <p>Checksum check was not attempted or the attempt failed. </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="ggabf47d1f8d2c6fc6a4391d028a5acc749a1295768041cfd67a5c5e88beec098fec"></a>ODP_PACKET_CHKSUM_BAD </td><td class="fielddoc"><p>Checksum was checked and it was not correct. </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="ggabf47d1f8d2c6fc6a4391d028a5acc749a702ab156478a40f754a7457a7fa98ea0"></a>ODP_PACKET_CHKSUM_OK </td><td class="fielddoc"><p>Checksum was checked and it was correct. </p> |
| </td></tr> |
| </table> |
| |
| <p class="definition">Definition at line <a class="el" href="abi-default_2packet__types_8h_source.html#l00056">56</a> of file <a class="el" href="abi-default_2packet__types_8h_source.html">abi-default/packet_types.h</a>.</p> |
| |
| </div> |
| </div> |
| <a id="ga1c1953ca031653b51469128363e55ab8"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga1c1953ca031653b51469128363e55ab8">◆ </a></span>odp_proto_t</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">enum <a class="el" href="group__odp__packet.html#ga1c1953ca031653b51469128363e55ab8">odp_proto_t</a></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Protocol. </p> |
| <table class="fieldtable"> |
| <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga1c1953ca031653b51469128363e55ab8a07f42c299dba340592495aa77abf955a"></a>ODP_PROTO_NONE </td><td class="fielddoc"><p>No protocol defined. </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="gga1c1953ca031653b51469128363e55ab8aa22a3391dfa7f2a1d8db9aa18667841f"></a>ODP_PROTO_ETH </td><td class="fielddoc"><p>Ethernet (including VLAN) </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="gga1c1953ca031653b51469128363e55ab8aa9135f97b6711405c0cefff71a3130ac"></a>ODP_PROTO_IPV4 </td><td class="fielddoc"><p>IP version 4. </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="gga1c1953ca031653b51469128363e55ab8aa13cafe3e2050890432f8f374df3b6eb"></a>ODP_PROTO_IPV6 </td><td class="fielddoc"><p>IP version 6. </p> |
| </td></tr> |
| </table> |
| |
| <p class="definition">Definition at line <a class="el" href="spec_2packet__types_8h_source.html#l00216">216</a> of file <a class="el" href="spec_2packet__types_8h_source.html">spec/packet_types.h</a>.</p> |
| |
| </div> |
| </div> |
| <a id="ga428cdbec9e7bc0bc19286f9564f9828b"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga428cdbec9e7bc0bc19286f9564f9828b">◆ </a></span>odp_proto_layer_t</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">enum <a class="el" href="group__odp__packet.html#ga428cdbec9e7bc0bc19286f9564f9828b">odp_proto_layer_t</a></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Protocol layer. </p> |
| <table class="fieldtable"> |
| <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga428cdbec9e7bc0bc19286f9564f9828ba5404cdbbe70c105fa88e1e0c146cce54"></a>ODP_PROTO_LAYER_NONE </td><td class="fielddoc"><p>No layers. </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="gga428cdbec9e7bc0bc19286f9564f9828baff3161006596a85044c7b2ca1016dac0"></a>ODP_PROTO_LAYER_L2 </td><td class="fielddoc"><p>Layer L2 protocols (Ethernet, VLAN, etc) </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="gga428cdbec9e7bc0bc19286f9564f9828ba05ec885bbe7e9f0812d92719ddde9efd"></a>ODP_PROTO_LAYER_L3 </td><td class="fielddoc"><p>Layer L3 protocols (IPv4, IPv6, ICMP, IPSEC, etc) </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="gga428cdbec9e7bc0bc19286f9564f9828ba45a5be98c1596b05a7406f894902beaf"></a>ODP_PROTO_LAYER_L4 </td><td class="fielddoc"><p>Layer L4 protocols (UDP, TCP, SCTP) </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="gga428cdbec9e7bc0bc19286f9564f9828ba3a3cbdc7032884954f7b688afacd37d5"></a>ODP_PROTO_LAYER_ALL </td><td class="fielddoc"><p>All layers. </p> |
| </td></tr> |
| </table> |
| |
| <p class="definition">Definition at line <a class="el" href="spec_2packet__types_8h_source.html#l00234">234</a> of file <a class="el" href="spec_2packet__types_8h_source.html">spec/packet_types.h</a>.</p> |
| |
| </div> |
| </div> |
| <a id="ga921fa9035d7f9f3989afbcc7bcdfb6fd"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga921fa9035d7f9f3989afbcc7bcdfb6fd">◆ </a></span>odp_packet_reass_status_t</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">enum <a class="el" href="group__odp__packet.html#ga921fa9035d7f9f3989afbcc7bcdfb6fd">odp_packet_reass_status_t</a></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Reassembly status of a packet. </p> |
| <table class="fieldtable"> |
| <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga921fa9035d7f9f3989afbcc7bcdfb6fdaf1b860a078a7bc5a33019eddec47c91e"></a>ODP_PACKET_REASS_NONE </td><td class="fielddoc"><p>Reassembly was not attempted. </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="gga921fa9035d7f9f3989afbcc7bcdfb6fda1081329cc1c9e8f5edb527b4526a4a24"></a>ODP_PACKET_REASS_INCOMPLETE </td><td class="fielddoc"><p>Reassembly was attempted but is incomplete. </p> |
| <p>Partial reassembly result can be accessed using <code><a class="el" href="group__odp__packet.html#gabb92b37b4ccfe45efd24a3f2dd0e1979" title="Get partial reassembly state from a packet.">odp_packet_reass_partial_state()</a></code>.</p> |
| <p>The packet does not contain valid packet data and cannot be used in normal packet operations. </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="gga921fa9035d7f9f3989afbcc7bcdfb6fdab31ad11c7751e8c60ec490b814396526"></a>ODP_PACKET_REASS_COMPLETE </td><td class="fielddoc"><p>Reassembly was successfully done. </p> |
| <p>The packet has been reassembled from multiple received fragments. </p> |
| </td></tr> |
| </table> |
| |
| <p class="definition">Definition at line <a class="el" href="spec_2packet__types_8h_source.html#l00267">267</a> of file <a class="el" href="spec_2packet__types_8h_source.html">spec/packet_types.h</a>.</p> |
| |
| </div> |
| </div> |
| <a id="ga4bb031f9e7fc5ba10c67a713afdb2e61"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga4bb031f9e7fc5ba10c67a713afdb2e61">◆ </a></span>odp_packet_tx_compl_mode_t</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">enum <a class="el" href="group__odp__packet.html#ga4bb031f9e7fc5ba10c67a713afdb2e61">odp_packet_tx_compl_mode_t</a></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet transmit completion mode. </p> |
| <table class="fieldtable"> |
| <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga4bb031f9e7fc5ba10c67a713afdb2e61a6ae7e6d71d8ff00e235e782417fda5f6"></a>ODP_PACKET_TX_COMPL_DISABLED </td><td class="fielddoc"><p>Disable packet transmit completion. </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="gga4bb031f9e7fc5ba10c67a713afdb2e61a7ad3c421b06b807be8ec874ab12a4627"></a>ODP_PACKET_TX_COMPL_EVENT </td><td class="fielddoc"><p>Enable packet transmit completion event. </p> |
| <p>A packet transmit completion event is sent for both transmitted and dropped packets. </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="gga4bb031f9e7fc5ba10c67a713afdb2e61a4053d17c20003489da855450ddffff0e"></a>ODP_PACKET_TX_COMPL_POLL </td><td class="fielddoc"><p>Enable packet transmit completion check through polling. </p> |
| <p>Packet transmit completion status is updated for both transmitted and dropped packets. </p> |
| </td></tr> |
| </table> |
| |
| <p class="definition">Definition at line <a class="el" href="spec_2packet__types_8h_source.html#l00423">423</a> of file <a class="el" href="spec_2packet__types_8h_source.html">spec/packet_types.h</a>.</p> |
| |
| </div> |
| </div> |
| <a id="ga187fb105f4575928e18c7438c3070be1"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga187fb105f4575928e18c7438c3070be1">◆ </a></span>odp_packet_free_ctrl_t</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">enum <a class="el" href="group__odp__packet.html#ga187fb105f4575928e18c7438c3070be1">odp_packet_free_ctrl_t</a></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet free control option. </p> |
| <table class="fieldtable"> |
| <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga187fb105f4575928e18c7438c3070be1ae92c24b8a0bceecc2c693b55927159f4"></a>ODP_PACKET_FREE_CTRL_DISABLED </td><td class="fielddoc"><p>Packet free control disabled. </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="gga187fb105f4575928e18c7438c3070be1a0bb9ee9d9f41721e3d9e58f9da1d4eef"></a>ODP_PACKET_FREE_CTRL_DONT_FREE </td><td class="fielddoc"><p>Don't free packet after processing it. </p> |
| </td></tr> |
| </table> |
| |
| <p class="definition">Definition at line <a class="el" href="spec_2packet__types_8h_source.html#l00494">494</a> of file <a class="el" href="spec_2packet__types_8h_source.html">spec/packet_types.h</a>.</p> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Function Documentation</h2> |
| <a id="ga1b9e567cdf8d0e256dd02ea1f87c5d0b"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga1b9e567cdf8d0e256dd02ea1f87c5d0b">◆ </a></span>odp_packet_subtype()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__event.html#ga8b1714719c72de90c54a2aba621d725e">odp_event_subtype_t</a> odp_packet_subtype </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>packet</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Event subtype of a packet. </p> |
| <p>Returns the subtype of a packet event. Subtype tells if the packet contains only basic metadata (ODP_EVENT_PACKET_BASIC) or in addition to that some specific metadata (e.g. ODP_EVENT_PACKET_CRYPTO or ODP_EVENT_PACKET_IPSEC).</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">packet</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Packet subtype </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga7528dda77d71a9dbfe563dffb62d8318"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga7528dda77d71a9dbfe563dffb62d8318">◆ </a></span>odp_packet_alloc()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> odp_packet_alloc </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> </td> |
| <td class="paramname"><em>pool</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Allocate a packet from a packet pool. </p> |
| <p>Allocates a packet of the requested length from the specified packet pool. The pool must have been created with ODP_POOL_PACKET type. The packet is initialized with data pointers and lengths set according to the specified len, and the default headroom and tailroom length settings. All other packet metadata are set to their default values. Packet length must be greater than zero and not exceed packet pool parameter 'max_len' value.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pool</td><td>Pool handle </td></tr> |
| <tr><td class="paramname">len</td><td>Packet data length (1 ... pool max_len)</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Handle of allocated packet </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_PACKET_INVALID</td><td>Packet could not be allocated</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section note"><dt>Note</dt><dd>The minimum headroom and tailroom used for packets is specified by pool capabilities min_headroom and min_tailroom. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gad8c2fe3bd45001fb1a61e827d010d9f8"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gad8c2fe3bd45001fb1a61e827d010d9f8">◆ </a></span>odp_packet_alloc_multi()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_alloc_multi </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> </td> |
| <td class="paramname"><em>pool</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>num</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Allocate multiple packets from a packet pool. </p> |
| <p>Otherwise like <a class="el" href="group__odp__packet.html#ga7528dda77d71a9dbfe563dffb62d8318" title="Allocate a packet from a packet pool.">odp_packet_alloc()</a>, but allocates multiple packets from a pool.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir"></td><td class="paramname">pool</td><td>Pool handle </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">len</td><td>Packet data length (1 ... pool max_len) </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">pkt</td><td>Array of packet handles for output </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">num</td><td>Maximum number of packets to allocate</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Number of packets actually allocated (0 ... num) </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga8a5e2cd674828c5415f3695f266347d7"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga8a5e2cd674828c5415f3695f266347d7">◆ </a></span>odp_packet_free()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_free </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Free packet. </p> |
| <p>Frees the packet into the packet pool it was allocated from.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gad190c5b094a0406b9d86da03f10c15cb"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gad190c5b094a0406b9d86da03f10c15cb">◆ </a></span>odp_packet_free_multi()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_free_multi </td> |
| <td>(</td> |
| <td class="paramtype">const <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>num</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Free multiple packets. </p> |
| <p>Otherwise like <a class="el" href="group__odp__packet.html#ga8a5e2cd674828c5415f3695f266347d7" title="Free packet.">odp_packet_free()</a>, but frees multiple packets to their originating pools.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Array of packet handles </td></tr> |
| <tr><td class="paramname">num</td><td>Number of packet handles to free </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gaf08f226b5d6433998e58d59811ceebaf"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaf08f226b5d6433998e58d59811ceebaf">◆ </a></span>odp_packet_free_sp()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_free_sp </td> |
| <td>(</td> |
| <td class="paramtype">const <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>num</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Free multiple packets to the same pool. </p> |
| <p>Otherwise like <a class="el" href="group__odp__packet.html#gad190c5b094a0406b9d86da03f10c15cb" title="Free multiple packets.">odp_packet_free_multi()</a>, but all packets must be from the same originating pool.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Array of packet handles </td></tr> |
| <tr><td class="paramname">num</td><td>Number of packets to free </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gaa334fa06c78f3cfe635901724d0dbfa0"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaa334fa06c78f3cfe635901724d0dbfa0">◆ </a></span>odp_packet_reset()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_reset </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Reset packet. </p> |
| <p>Resets all packet metadata and adjusts packet data to start according to pool parameters (align, seg_len, headroom). Packet data length is set to 'len'. Maximum value for 'len' can be queried with <a class="el" href="group__odp__packet.html#ga973da0577b164fd1944406b2b45f4ea4" title="Maximum packet data reset length.">odp_packet_reset_max_len()</a> function. Passing larger 'len' than the maximum value is allowed, but will cause failure to be returned.</p> |
| <p>Packet reset maintains the original user area content. The operation may change data layout in packet segments and free possible extra segments. Data content may not be preserved. Packet is not modified on failure.</p> |
| <p>This function must not be called for packets with references or incomplete reassembly status (ODP_PACKET_REASS_INCOMPLETE).</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">len</td><td>Packet data length (1 ... <a class="el" href="group__odp__packet.html#ga973da0577b164fd1944406b2b45f4ea4" title="Maximum packet data reset length.">odp_packet_reset_max_len()</a>)</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga973da0577b164fd1944406b2b45f4ea4"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga973da0577b164fd1944406b2b45f4ea4">◆ </a></span>odp_packet_reset_max_len()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_reset_max_len </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Maximum packet data reset length. </p> |
| <p>Returns the maximum packet data reset length for <a class="el" href="group__odp__packet.html#gaa334fa06c78f3cfe635901724d0dbfa0" title="Reset packet.">odp_packet_reset()</a> based on current packet buffer space and pool parameters (align, seg_len, headroom). Note that the returned length may be less than the current packet data length if data length has been increased by utilizing head- or tailroom.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Maximum packet data length for <a class="el" href="group__odp__packet.html#gaa334fa06c78f3cfe635901724d0dbfa0" title="Reset packet.">odp_packet_reset()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga9fe0cfc87551389bee98530de1332790"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga9fe0cfc87551389bee98530de1332790">◆ </a></span>odp_packet_reset_meta()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_reset_meta </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Reset packet metadata. </p> |
| <p>Resets all packet metadata to their default values, except the ones listed below which are not modified:</p><ul> |
| <li>Data pointer and length</li> |
| <li>Headroom and tailroom pointers and lengths</li> |
| <li>Packet segmentation</li> |
| <li>User area content</li> |
| <li>Dynamic reference count</li> |
| </ul> |
| <p>This function must not be called for packets with static references or incomplete reassembly status (ODP_PACKET_REASS_INCOMPLETE).</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga8605e7d4629a479f7b1a59da121c601c"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga8605e7d4629a479f7b1a59da121c601c">◆ </a></span>odp_packet_from_event()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> odp_packet_from_event </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__event.html#ga51942509e0d072db63a565cbc1e7204d">odp_event_t</a> </td> |
| <td class="paramname"><em>ev</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get packet handle from event. </p> |
| <p>Converts an ODP_EVENT_PACKET type event to a packet.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">ev</td><td>Event handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Packet handle</dd></dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__event.html#ga4bd59cdf228fe0c36b8e04fe122e047a" title="Event type of an event.">odp_event_type()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga0924634e5431e0ae31bb0cfd7bf8d262"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga0924634e5431e0ae31bb0cfd7bf8d262">◆ </a></span>odp_packet_from_event_multi()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_from_event_multi </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const <a class="el" href="group__odp__event.html#ga51942509e0d072db63a565cbc1e7204d">odp_event_t</a> </td> |
| <td class="paramname"><em>ev</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>num</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Convert multiple packet events to packet handles. </p> |
| <p>All events must be of type ODP_EVENT_PACKET.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[out]</td><td class="paramname">pkt</td><td>Packet handle array for output </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">ev</td><td>Array of event handles to convert </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">num</td><td>Number of packets and events </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga1f738db1a7ac6ffe4573195ff158d56e"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga1f738db1a7ac6ffe4573195ff158d56e">◆ </a></span>odp_packet_to_event()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__event.html#ga51942509e0d072db63a565cbc1e7204d">odp_event_t</a> odp_packet_to_event </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Convert packet handle to event. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Event handle </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga229f5a60b69678c472b6b75dcf443dfe"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga229f5a60b69678c472b6b75dcf443dfe">◆ </a></span>odp_packet_to_event_multi()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_to_event_multi </td> |
| <td>(</td> |
| <td class="paramtype">const <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__event.html#ga51942509e0d072db63a565cbc1e7204d">odp_event_t</a> </td> |
| <td class="paramname"><em>ev</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>num</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Convert multiple packet handles to events. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir"></td><td class="paramname">pkt</td><td>Array of packet handles to convert </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">ev</td><td>Event handle array for output </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">num</td><td>Number of packets and events </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga3cdc6892c9d669efeb2895dfc82e08a1"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga3cdc6892c9d669efeb2895dfc82e08a1">◆ </a></span>odp_packet_reass_info()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_reass_info </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structodp__packet__reass__info__t.html">odp_packet_reass_info_t</a> * </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get information about successful reassembly offload that has happened. </p> |
| <p>This function may be called only if the reassembly status of a packet is ODP_PACKET_REASS_COMPLETE.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir"></td><td class="paramname">pkt</td><td>Completely reassembled packet. </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">info</td><td>Pointer to the info structure to be filled</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gabb92b37b4ccfe45efd24a3f2dd0e1979"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gabb92b37b4ccfe45efd24a3f2dd0e1979">◆ </a></span>odp_packet_reass_partial_state()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_reass_partial_state </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>frags</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structodp__packet__reass__partial__state__t.html">odp_packet_reass_partial_state_t</a> * </td> |
| <td class="paramname"><em>res</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get partial reassembly state from a packet. </p> |
| <p>In case of incomplete reassembly, a packet carries information on the time already used for the reassembly attempt and one or more fragments. The fragments are not necessarily the original received fragments but may be partially reassembled parts of the packet.</p> |
| <p>This function may be called only if the reassembly status of a packet is ODP_PACKET_REASS_INCOMPLETE.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir"></td><td class="paramname">pkt</td><td>Incompletely reassembled packet. The packet will be consumed if the function succeeds. </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">frags</td><td>Packet handle array for output. The size of this array must be at least <code><a class="el" href="structodp__reass__config__t.html#a776ac0861d2d84f09cc6bbab285ce690" title="Maximum number of fragments that can be reassembled.">odp_reass_config_t::max_num_frags</a></code>. </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">res</td><td>Pointer to result structure</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gaa8d4f74f0923b5c50ff1c9712ea27294"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaa8d4f74f0923b5c50ff1c9712ea27294">◆ </a></span>odp_packet_head()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_head </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet head address. </p> |
| <p>Returns start address of the first segment. Packet level headroom starts from here. Use <a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a> or <a class="el" href="group__odp__packet.html#ga9db78b8022b51bbe434d7599d22b0b95" title="Layer 2 start pointer.">odp_packet_l2_ptr()</a> to return the packet data start address.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Pointer to the start address of the first packet segment</dd></dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a>, <a class="el" href="group__odp__packet.html#ga9db78b8022b51bbe434d7599d22b0b95" title="Layer 2 start pointer.">odp_packet_l2_ptr()</a>, <a class="el" href="group__odp__packet.html#ga2b5bbe693aa7639f78ea3ae00b462a74" title="Packet headroom length.">odp_packet_headroom()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gaa012e314f07259b803d61236845da45c"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaa012e314f07259b803d61236845da45c">◆ </a></span>odp_packet_buf_len()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_buf_len </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Total packet buffer length. </p> |
| <p>Returns sum of buffer lengths over all packet segments. Buffer length includes headroom, data, and tailroom lengths.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Total packet buffer length in bytes </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga433ba21e3c83c6d4d9831c9e732b63de"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga433ba21e3c83c6d4d9831c9e732b63de">◆ </a></span>odp_packet_data()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_data </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet data pointer. </p> |
| <p>Returns pointer to the first byte of packet data. When packet is segmented, only a portion of packet data follows the pointer. When unsure, use e.g. <a class="el" href="group__odp__packet.html#ga22a6d43d83393129dcd548194930bfcf" title="Packet data length following the data pointer.">odp_packet_seg_len()</a> to check the data length following the pointer. Packet level offsets are calculated relative to this position.</p> |
| <p>When a packet is received from packet input, this points to the first byte of the received packet. Pool configuration parameters may be used to ensure that the first packet segment contains all/most of the data relevant to the application.</p> |
| <p>User can adjust the data pointer with e.g. push_head/pull_head (does not modify segmentation) and extend_head/trunc_head (may modify segmentation) calls.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Pointer to the packet data</dd></dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga22a6d43d83393129dcd548194930bfcf" title="Packet data length following the data pointer.">odp_packet_seg_len()</a>, <a class="el" href="group__odp__packet.html#ga2ed856750508efaae13d6be7aaa93695" title="Push out packet head.">odp_packet_push_head()</a>, <a class="el" href="group__odp__packet.html#ga4b2dce564891d379ec9973a2cd623fa1" title="Extend packet head.">odp_packet_extend_head()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga22a6d43d83393129dcd548194930bfcf"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga22a6d43d83393129dcd548194930bfcf">◆ </a></span>odp_packet_seg_len()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_seg_len </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet data length following the data pointer. </p> |
| <p>Returns number of data bytes (in the segment) following the current data pointer position. When unsure, use this function to check how many bytes can be accessed linearly after data pointer (<a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a>). This equals to <a class="el" href="group__odp__packet.html#ga68c47fd0c2a764b01b11390974748cc6" title="Packet data length.">odp_packet_len()</a> for single segment packets.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Segment data length in bytes following <a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a></dd></dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gac8a51a3e1cedd2a849c87e54db853d3a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gac8a51a3e1cedd2a849c87e54db853d3a">◆ </a></span>odp_packet_data_seg_len()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_data_seg_len </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t * </td> |
| <td class="paramname"><em>seg_len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet data pointer with segment length. </p> |
| <p>Returns both data pointer and number of data bytes (in the segment) following it. This is equivalent to calling <a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a> and <a class="el" href="group__odp__packet.html#ga22a6d43d83393129dcd548194930bfcf" title="Packet data length following the data pointer.">odp_packet_seg_len()</a>.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir"></td><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">seg_len</td><td>Pointer to output segment length</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Pointer to the packet data</dd></dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a>, <a class="el" href="group__odp__packet.html#ga22a6d43d83393129dcd548194930bfcf" title="Packet data length following the data pointer.">odp_packet_seg_len()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga68c47fd0c2a764b01b11390974748cc6"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga68c47fd0c2a764b01b11390974748cc6">◆ </a></span>odp_packet_len()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_len </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet data length. </p> |
| <p>Returns total data length over all packet segments. This equals the sum of segment level data lengths (<a class="el" href="group__odp__packet.html#ga367b7a45a12d68bd6b717a4850d9ca83" title="Segment data length.">odp_packet_seg_data_len()</a>).</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Packet data length</dd></dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga22a6d43d83393129dcd548194930bfcf" title="Packet data length following the data pointer.">odp_packet_seg_len()</a>, <a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a>, <a class="el" href="group__odp__packet.html#ga367b7a45a12d68bd6b717a4850d9ca83" title="Segment data length.">odp_packet_seg_data_len()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga2b5bbe693aa7639f78ea3ae00b462a74"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga2b5bbe693aa7639f78ea3ae00b462a74">◆ </a></span>odp_packet_headroom()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_headroom </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet headroom length. </p> |
| <p>Returns the current packet level headroom length.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Headroom length </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gaf7b90abcb93b4f566fae730a6156b299"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaf7b90abcb93b4f566fae730a6156b299">◆ </a></span>odp_packet_tailroom()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_tailroom </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet tailroom length. </p> |
| <p>Returns the current packet level tailroom length.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Tailroom length </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga7cfaf313d642bf21c0b88ed055b8d4ba"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga7cfaf313d642bf21c0b88ed055b8d4ba">◆ </a></span>odp_packet_tail()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_tail </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet tailroom pointer. </p> |
| <p>Returns pointer to the start of the current packet level tailroom.</p> |
| <p>User can adjust the tail pointer with tail_push/tail_pull (does not modify segmentation) and add_data/rem_data calls (may modify segmentation).</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Tailroom pointer</dd></dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#gaf7b90abcb93b4f566fae730a6156b299" title="Packet tailroom length.">odp_packet_tailroom()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gaf4496d8e509b72648ec2c44f61942a96"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaf4496d8e509b72648ec2c44f61942a96">◆ </a></span>odp_packet_offset()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_offset </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t * </td> |
| <td class="paramname"><em>len</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a> * </td> |
| <td class="paramname"><em>seg</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet offset pointer. </p> |
| <p>Returns pointer to data in the packet offset. The packet level byte offset is calculated from the current <a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a> position. Optionally outputs handle to the segment and number of data bytes in the segment following the pointer.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir"></td><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">offset</td><td>Byte offset into the packet </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">len</td><td>Number of data bytes remaining in the segment (output). Ignored when NULL. </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">seg</td><td>Handle to the segment containing the address (output). Ignored when NULL.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Pointer to the offset </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">NULL</td><td>Requested offset exceeds packet length </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga2ee5e9e323590bcf24501a9f920710d0"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga2ee5e9e323590bcf24501a9f920710d0">◆ </a></span>odp_packet_prefetch()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_prefetch </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet data prefetch. </p> |
| <p>Prefetch 'len' bytes of packet data starting from 'offset' into various caches close to the calling thread.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">offset</td><td>Byte offset into packet data </td></tr> |
| <tr><td class="paramname">len</td><td>Number of bytes to prefetch starting from 'offset' </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga2ed856750508efaae13d6be7aaa93695"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga2ed856750508efaae13d6be7aaa93695">◆ </a></span>odp_packet_push_head()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_push_head </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Push out packet head. </p> |
| <p>Increase packet data length by moving packet head into packet headroom. Packet headroom is decreased with the same amount. The packet head may be pushed out up to 'headroom' bytes. Packet is not modified if there's not enough headroom space.</p> |
| <p>odp_packet_xxx: seg_len += len len += len headroom -= len data -= len</p> |
| <p>Operation does not modify packet segmentation or move data. Handles and pointers remain valid. User is responsible to update packet metadata offsets when needed.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">len</td><td>Number of bytes to push the head (0 ... headroom)</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The new data pointer </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">NULL</td><td>Requested offset exceeds available headroom</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga2b5bbe693aa7639f78ea3ae00b462a74" title="Packet headroom length.">odp_packet_headroom()</a>, <a class="el" href="group__odp__packet.html#ga1460efe82a6129a52b8b48756fce9d5c" title="Pull in packet head.">odp_packet_pull_head()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga1460efe82a6129a52b8b48756fce9d5c"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga1460efe82a6129a52b8b48756fce9d5c">◆ </a></span>odp_packet_pull_head()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_pull_head </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Pull in packet head. </p> |
| <p>Decrease packet data length by removing data from the head of the packet. Packet headroom is increased with the same amount. Packet head may be pulled in up to seg_len - 1 bytes (i.e. packet data pointer must stay in the first segment). Packet is not modified if there's not enough data.</p> |
| <p>odp_packet_xxx: seg_len -= len len -= len headroom += len data += len</p> |
| <p>Operation does not modify packet segmentation or move data. Handles and pointers remain valid. User is responsible to update packet metadata offsets when needed.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">len</td><td>Number of bytes to pull the head (0 ... seg_len - 1)</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The new data pointer </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">NULL</td><td>Requested offset exceeds packet segment length</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga22a6d43d83393129dcd548194930bfcf" title="Packet data length following the data pointer.">odp_packet_seg_len()</a>, <a class="el" href="group__odp__packet.html#ga2ed856750508efaae13d6be7aaa93695" title="Push out packet head.">odp_packet_push_head()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga59783339be921ad584733114f058e5dc"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga59783339be921ad584733114f058e5dc">◆ </a></span>odp_packet_push_tail()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_push_tail </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Push out packet tail. </p> |
| <p>Increase packet data length by moving packet tail into packet tailroom. Packet tailroom is decreased with the same amount. The packet tail may be pushed out up to 'tailroom' bytes. Packet is not modified if there's not enough tailroom.</p> |
| <p>last_seg: data_len += len</p> |
| <p>odp_packet_xxx: len += len tail += len tailroom -= len</p> |
| <p>Operation does not modify packet segmentation or move data. Handles, pointers and offsets remain valid.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">len</td><td>Number of bytes to push the tail (0 ... tailroom)</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The old tail pointer </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">NULL</td><td>Requested offset exceeds available tailroom</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#gaf7b90abcb93b4f566fae730a6156b299" title="Packet tailroom length.">odp_packet_tailroom()</a>, <a class="el" href="group__odp__packet.html#gad32688da5282118e53b07d362e68e015" title="Pull in packet tail.">odp_packet_pull_tail()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gad32688da5282118e53b07d362e68e015"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gad32688da5282118e53b07d362e68e015">◆ </a></span>odp_packet_pull_tail()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_pull_tail </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Pull in packet tail. </p> |
| <p>Decrease packet data length by removing data from the tail of the packet. Packet tailroom is increased with the same amount. Packet tail may be pulled in up to last segment data_len - 1 bytes. (i.e. packet tail must stay in the last segment). Packet is not modified if there's not enough data.</p> |
| <p>last_seg: data_len -= len</p> |
| <p>odp_packet_xxx: len -= len tail -= len tailroom += len</p> |
| <p>Operation does not modify packet segmentation or move data. Handles and pointers remain valid. User is responsible to update packet metadata offsets when needed.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">len</td><td>Number of bytes to pull the tail (0 ... last_seg:data_len - 1)</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The new tail pointer </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">NULL</td><td>The specified offset exceeds allowable data length </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga4b2dce564891d379ec9973a2cd623fa1"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga4b2dce564891d379ec9973a2cd623fa1">◆ </a></span>odp_packet_extend_head()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_extend_head </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> * </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">void ** </td> |
| <td class="paramname"><em>data_ptr</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t * </td> |
| <td class="paramname"><em>seg_len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Extend packet head. </p> |
| <p>Increase packet data length at packet head. Functionality is analogous to <a class="el" href="group__odp__packet.html#ga2ed856750508efaae13d6be7aaa93695" title="Push out packet head.">odp_packet_push_head()</a> when data length is extended up to headroom size. When data length is increased more than that, new segments are added into the packet head and old segment handles become invalid.</p> |
| <p>A successful operation overwrites the packet handle with a new handle, which application must use as the reference to the packet instead of the old handle. Depending on the implementation, the old and new handles may be equal.</p> |
| <p>The operation return value indicates if any packet data or metadata (e.g. user_area) were moved in memory during the operation. If some memory areas were moved, application must use new packet/segment handles to update data pointers. Otherwise, all old pointers remain valid.</p> |
| <p>User is responsible to update packet metadata offsets when needed. Packet is not modified if operation fails.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[in,out]</td><td class="paramname">pkt</td><td>Pointer to packet handle. A successful operation outputs the new packet handle. </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">len</td><td>Number of bytes to extend the head </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">data_ptr</td><td>Pointer to output the new data pointer. Ignored when NULL. </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">seg_len</td><td>Pointer to output segment length at 'data_ptr' above. Ignored when NULL.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>Operation successful, old pointers remain valid </td></tr> |
| <tr><td class="paramname">>0</td><td>Operation successful, old pointers need to be updated </td></tr> |
| <tr><td class="paramname"><0</td><td>Operation failed (e.g. due to an allocation failure) </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga958362ba0d115ad2384f921cc6d9606a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga958362ba0d115ad2384f921cc6d9606a">◆ </a></span>odp_packet_trunc_head()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_trunc_head </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> * </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">void ** </td> |
| <td class="paramname"><em>data_ptr</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t * </td> |
| <td class="paramname"><em>seg_len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Truncate packet head. </p> |
| <p>Decrease packet data length at packet head. Functionality is analogous to <a class="el" href="group__odp__packet.html#ga1460efe82a6129a52b8b48756fce9d5c" title="Pull in packet head.">odp_packet_pull_head()</a> when data length is truncated less than the first segment data length. When data length is decreased more than that, some head segments are removed from the packet and old segment handles become invalid.</p> |
| <p>A successful operation overwrites the packet handle with a new handle, which application must use as the reference to the packet instead of the old handle. Depending on the implementation, the old and new handles may be equal.</p> |
| <p>The operation return value indicates if any packet data or metadata (e.g. user_area) were moved in memory during the operation. If some memory areas were moved, application must use new packet/segment handles to update data pointers. Otherwise, all old pointers remain valid.</p> |
| <p>User is responsible to update packet metadata offsets when needed. Packet is not modified if operation fails.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[in,out]</td><td class="paramname">pkt</td><td>Pointer to packet handle. A successful operation outputs the new packet handle. </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">len</td><td>Number of bytes to truncate the head (0 ... packet_len - 1) </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">data_ptr</td><td>Pointer to output the new data pointer. Ignored when NULL. </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">seg_len</td><td>Pointer to output segment length at 'data_ptr' above. Ignored when NULL.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>Operation successful, old pointers remain valid </td></tr> |
| <tr><td class="paramname">>0</td><td>Operation successful, old pointers need to be updated </td></tr> |
| <tr><td class="paramname"><0</td><td>Operation failed </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga6c1008f97485b2bdc2e0473b0b62b922"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga6c1008f97485b2bdc2e0473b0b62b922">◆ </a></span>odp_packet_extend_tail()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_extend_tail </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> * </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">void ** </td> |
| <td class="paramname"><em>data_ptr</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t * </td> |
| <td class="paramname"><em>seg_len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Extend packet tail. </p> |
| <p>Increase packet data length at packet tail. Functionality is analogous to <a class="el" href="group__odp__packet.html#ga59783339be921ad584733114f058e5dc" title="Push out packet tail.">odp_packet_push_tail()</a> when data length is extended up to tailroom size. When data length is increased more than that, new segments are added into the packet tail and old segment handles become invalid.</p> |
| <p>A successful operation overwrites the packet handle with a new handle, which application must use as the reference to the packet instead of the old handle. Depending on the implementation, the old and new handles may be equal.</p> |
| <p>The operation return value indicates if any packet data or metadata (e.g. user_area) were moved in memory during the operation. If some memory areas were moved, application must use new packet/segment handles to update data pointers. Otherwise, all old pointers remain valid.</p> |
| <p>User is responsible to update packet metadata offsets when needed. Packet is not modified if operation fails.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[in,out]</td><td class="paramname">pkt</td><td>Pointer to packet handle. A successful operation outputs the new packet handle. </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">len</td><td>Number of bytes to extend the tail </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">data_ptr</td><td>Pointer to output pointer to the last 'len' bytes of the resulting packet (the previous tail). Ignored when NULL. </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">seg_len</td><td>Pointer to output segment length at 'data_ptr' above. Ignored when NULL.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>Operation successful, old pointers remain valid </td></tr> |
| <tr><td class="paramname">>0</td><td>Operation successful, old pointers need to be updated </td></tr> |
| <tr><td class="paramname"><0</td><td>Operation failed (e.g. due to an allocation failure) </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga18475e24d05ef7870327d32345eed06d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga18475e24d05ef7870327d32345eed06d">◆ </a></span>odp_packet_trunc_tail()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_trunc_tail </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> * </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">void ** </td> |
| <td class="paramname"><em>tail_ptr</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t * </td> |
| <td class="paramname"><em>tailroom</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Truncate packet tail. </p> |
| <p>Decrease packet data length at packet tail. Functionality is analogous to <a class="el" href="group__odp__packet.html#gad32688da5282118e53b07d362e68e015" title="Pull in packet tail.">odp_packet_pull_tail()</a> when data length is truncated less the last segment data length. When data length is decreased more than that, some tail segments are removed from the packet and old segment handles become invalid.</p> |
| <p>A successful operation overwrites the packet handle with a new handle, which application must use as the reference to the packet instead of the old handle. Depending on the implementation, the old and new handles may be equal.</p> |
| <p>The operation return value indicates if any packet data or metadata (e.g. user_area) were moved in memory during the operation. If some memory areas were moved, application must use new packet/segment handles to update data pointers. Otherwise, all old pointers remain valid.</p> |
| <p>User is responsible to update packet metadata offsets when needed. Packet is not modified if operation fails.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[in,out]</td><td class="paramname">pkt</td><td>Pointer to packet handle. A successful operation outputs the new packet handle. </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">len</td><td>Number of bytes to truncate the tail (0 ... packet_len - 1) </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">tail_ptr</td><td>Pointer to output the new tail pointer. Ignored when NULL. </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">tailroom</td><td>Pointer to output the new tailroom. Ignored when NULL.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>Operation successful, old pointers remain valid </td></tr> |
| <tr><td class="paramname">>0</td><td>Operation successful, old pointers need to be updated </td></tr> |
| <tr><td class="paramname"><0</td><td>Operation failed </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga239753648a03a2f1d20f3e0fa80a5c82"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga239753648a03a2f1d20f3e0fa80a5c82">◆ </a></span>odp_packet_add_data()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_add_data </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> * </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Add data into an offset. </p> |
| <p>Increase packet data length by adding new data area into the specified offset. The operation may modify packet segmentation and move data.</p> |
| <p>A successful operation overwrites the packet handle with a new handle, which application must use as the reference to the packet instead of the old handle. Depending on the implementation, the old and new handles may be equal.</p> |
| <p>The operation return value indicates if any packet data or metadata (e.g. user_area) were moved in memory during the operation. If some memory areas were moved, application must use new packet/segment handles to update data pointers. Otherwise, all old pointers remain valid.</p> |
| <p>User is responsible to update packet metadata offsets when needed. Packet is not modified if operation fails.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[in,out]</td><td class="paramname">pkt</td><td>Pointer to packet handle. A successful operation outputs the new packet handle. </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">offset</td><td>Byte offset into the packet </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">len</td><td>Number of bytes to add into the offset</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>Operation successful, old pointers remain valid </td></tr> |
| <tr><td class="paramname">>0</td><td>Operation successful, old pointers need to be updated </td></tr> |
| <tr><td class="paramname"><0</td><td>Operation failed </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga78600a52b2b7ae755219489b129630f9"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga78600a52b2b7ae755219489b129630f9">◆ </a></span>odp_packet_rem_data()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_rem_data </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> * </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Remove data from an offset. </p> |
| <p>Decrease packet data length by removing data area from the specified offset. The operation may modify packet segmentation and move data.</p> |
| <p>A successful operation overwrites the packet handle with a new handle, which application must use as the reference to the packet instead of the old handle. Depending on the implementation, the old and new handles may be equal.</p> |
| <p>The operation return value indicates if any packet data or metadata (e.g. user_area) were moved in memory during the operation. If some memory areas were moved, application must use new packet/segment handles to update data pointers. Otherwise, all old pointers remain valid.</p> |
| <p>User is responsible to update packet metadata offsets when needed. Packet is not modified if operation fails.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[in,out]</td><td class="paramname">pkt</td><td>Pointer to packet handle. A successful operation outputs the new packet handle. </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">offset</td><td>Byte offset into the packet </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">len</td><td>Number of bytes to remove from the offset. When offset is zero: 0 ... packet_len - 1 bytes, otherwise 0 ... packet_len - offset bytes.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>Operation successful, old pointers remain valid </td></tr> |
| <tr><td class="paramname">>0</td><td>Operation successful, old pointers need to be updated </td></tr> |
| <tr><td class="paramname"><0</td><td>Operation failed </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga849b8d5020bb87df6b78ef6834452925"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga849b8d5020bb87df6b78ef6834452925">◆ </a></span>odp_packet_align()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_align </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> * </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>align</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Align packet data. </p> |
| <p>Modify packet data alignment so that 'len' bytes between 'offset' and 'offset' plus 'len' are contiguous in memory and have a minimum alignment of 'align' bytes.</p> |
| <p>A successful operation overwrites the packet handle with a new handle, which the application must use as the reference to the packet instead of the old handle. Depending on the implementation, the old and new handles may be equal.</p> |
| <p>The operation return value indicates if any packet data outside of the requested area or metadata (e.g. user_area) were moved in memory during the operation. If some other memory areas were moved, application must use new packet/segment handles to update data pointers. Otherwise, old pointers remain valid.</p> |
| <p>Packet is not modified if operation fails.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[in,out]</td><td class="paramname">pkt</td><td>Pointer to packet handle. A successful operation outputs the new packet handle. </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">offset</td><td>Byte offset of the contiguous area </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">len</td><td>Byte length of the contiguous area (0 ... packet_len) </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">align</td><td>Minimum byte alignment of the contiguous area. Valid values are powers of 2. Use 0 to indicate no special alignment requirement. All implementations support alignments of up to at least 32 bytes. Request will fail if requested alignment exceeds implementation limits.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>Operation successful, old pointers remain valid </td></tr> |
| <tr><td class="paramname">>0</td><td>Operation successful, old pointers need to be updated </td></tr> |
| <tr><td class="paramname"><0</td><td>Operation failed </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga02e9829352d32aec8c8904964cddf158"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga02e9829352d32aec8c8904964cddf158">◆ </a></span>odp_packet_is_segmented()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_is_segmented </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Tests if packet is segmented. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>Packet is not segmented </td></tr> |
| <tr><td class="paramname">1</td><td>Packet is segmented </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga3125802abd9f29fabe4813307e884f87"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga3125802abd9f29fabe4813307e884f87">◆ </a></span>odp_packet_num_segs()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_num_segs </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Number of segments. </p> |
| <p>Returns number of segments in the packet. A packet has always at least one segment.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Number of segments (>0) </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga8ade0ac9a53f829d860ba18fd715c59f"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga8ade0ac9a53f829d860ba18fd715c59f">◆ </a></span>odp_packet_first_seg()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a> odp_packet_first_seg </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>First segment in packet. </p> |
| <p>A packet has always the first segment (has at least one segment).</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Handle to the first segment </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga1bb76339fa22c72b31b5e2063c408f5d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga1bb76339fa22c72b31b5e2063c408f5d">◆ </a></span>odp_packet_last_seg()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a> odp_packet_last_seg </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Last segment in packet. </p> |
| <p>A packet has always the last segment (has at least one segment).</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Handle to the last segment </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga810852b5ad28525d75d5f88f06a97fe1"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga810852b5ad28525d75d5f88f06a97fe1">◆ </a></span>odp_packet_next_seg()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a> odp_packet_next_seg </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a> </td> |
| <td class="paramname"><em>seg</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Next segment in packet. </p> |
| <p>Returns handle to the next segment after the current segment, or ODP_PACKET_SEG_INVALID if there are no more segments. Use <a class="el" href="group__odp__packet.html#ga8ade0ac9a53f829d860ba18fd715c59f" title="First segment in packet.">odp_packet_first_seg()</a> to get handle to the first segment.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">seg</td><td>Current segment handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Handle to the next segment </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_PACKET_SEG_INVALID</td><td>if there are no more segments </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga613c050268f3f794a13cfc0e3a653de2"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga613c050268f3f794a13cfc0e3a653de2">◆ </a></span>odp_packet_seg_data()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_seg_data </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a> </td> |
| <td class="paramname"><em>seg</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Segment data pointer. </p> |
| <p>Returns pointer to the first byte of data in the segment.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">seg</td><td>Segment handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Pointer to the segment data </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">NULL</td><td>on failure</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga367b7a45a12d68bd6b717a4850d9ca83" title="Segment data length.">odp_packet_seg_data_len()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga367b7a45a12d68bd6b717a4850d9ca83"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga367b7a45a12d68bd6b717a4850d9ca83">◆ </a></span>odp_packet_seg_data_len()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_seg_data_len </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a> </td> |
| <td class="paramname"><em>seg</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Segment data length. </p> |
| <p>Returns segment data length in bytes.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">seg</td><td>Segment handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Segment data length in bytes</dd></dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga613c050268f3f794a13cfc0e3a653de2" title="Segment data pointer.">odp_packet_seg_data()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga26d161f6b315321e968950cdaa6c0326"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga26d161f6b315321e968950cdaa6c0326">◆ </a></span>odp_packet_concat()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_concat </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> * </td> |
| <td class="paramname"><em>dst</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>src</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Concatenate two packets. </p> |
| <p>Concatenate all packet data from 'src' packet into tail of 'dst' packet. Operation preserves 'dst' packet metadata in the resulting packet, while 'src' packet handle, metadata and old segment handles for both packets become invalid. Source and destination packet handles must not refer to the same packet.</p> |
| <p>A successful operation overwrites 'dst' packet handle with a new handle, which application must use as the reference to the resulting packet instead of the old handle. Depending on the implementation, the old and new handles may be equal.</p> |
| <p>The operation return value indicates if any packet data or metadata (e.g. user_area) were moved in memory during the operation. If some memory areas were moved, application must use new packet/segment handles to update data pointers. Otherwise, all old pointers remain valid.</p> |
| <p>The resulting packet is always allocated from the same pool as the destination packet. The source packet may have been allocated from any pool.</p> |
| <p>On failure, both handles remain valid and packets are not modified.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[in,out]</td><td class="paramname">dst</td><td>Pointer to destination packet handle. A successful operation outputs the new packet handle. </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">src</td><td>Source packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>Operation successful, old pointers remain valid </td></tr> |
| <tr><td class="paramname">>0</td><td>Operation successful, old pointers need to be updated </td></tr> |
| <tr><td class="paramname"><0</td><td>Operation failed </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga5be650e9bec4b8a49dd24bde3c6224b7"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga5be650e9bec4b8a49dd24bde3c6224b7">◆ </a></span>odp_packet_split()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_split </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> * </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> * </td> |
| <td class="paramname"><em>tail</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Split packet into two packets. </p> |
| <p>Split the packet after 'len' bytes. The first 'len' bytes of data and metadata remain in the head packet. A successful operation outputs a handle for the tail packet and overwrites 'pkt' packet handle with a new handle, which application must use as the reference to the resulting head packet. Depending on the implementation, the old and new 'pkt' handles may be equal.</p> |
| <p>The operation return value indicates if any packet data or metadata (e.g. user_area) were moved in memory during the operation. If some memory areas were moved, application must use new packet/segment handles to update data pointers. Otherwise, all old pointers remain valid.</p> |
| <p>The tail packet holds the rest of the data (<a class="el" href="group__odp__packet.html#ga68c47fd0c2a764b01b11390974748cc6" title="Packet data length.">odp_packet_len()</a> - 'len' bytes). The packet is allocated from the same pool as the original packet and metadata is initialized with default values.</p> |
| <p>For performance reasons (zero copy), the head packet may have zero tailroom and the tail packet may have zero headroom length after the operation. Both packets may be extended normally.</p> |
| <p>The original packet is not modified on failure.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[in,out]</td><td class="paramname">pkt</td><td>Pointer to packet handle. A successful operation outputs a new packet handle for the head packet. </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">len</td><td>Data length remaining in the head packet (1 ... packet_len - 1) </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">tail</td><td>Pointer to output the tail packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>Operation successful, old pointers remain valid </td></tr> |
| <tr><td class="paramname">>0</td><td>Operation successful, old pointers need to be updated </td></tr> |
| <tr><td class="paramname"><0</td><td>Operation failed </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gaa3ec32e9f6e307d55b8ebfdfe9cccf44"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaa3ec32e9f6e307d55b8ebfdfe9cccf44">◆ </a></span>odp_packet_buf_head()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_buf_head </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a> </td> |
| <td class="paramname"><em>pkt_buf</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet buffer head pointer. </p> |
| <p>Packet buffer start address. Buffer level headroom starts from here. For the first packet buffer of a packet this is equivalent to <a class="el" href="group__odp__packet.html#gaa8d4f74f0923b5c50ff1c9712ea27294" title="Packet head address.">odp_packet_head()</a>.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt_buf</td><td>Packet buffer</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Packet buffer head pointer </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gaeb0e0285e6dadd9755698ca7dc56ad49"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaeb0e0285e6dadd9755698ca7dc56ad49">◆ </a></span>odp_packet_buf_size()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_buf_size </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a> </td> |
| <td class="paramname"><em>pkt_buf</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet buffer size in bytes. </p> |
| <p>Packet buffer size is calculated from the buffer head pointer (see <a class="el" href="group__odp__packet.html#gaa3ec32e9f6e307d55b8ebfdfe9cccf44" title="Packet buffer head pointer.">odp_packet_buf_head()</a>). It contains all buffer level headroom, data, and tailroom. For a single segmented packet this is equivalent to <a class="el" href="group__odp__packet.html#gaa012e314f07259b803d61236845da45c" title="Total packet buffer length.">odp_packet_buf_len()</a>.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt_buf</td><td>Packet buffer</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Packet buffer size </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga2e20eef0601165dfe91bfff078818690"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga2e20eef0601165dfe91bfff078818690">◆ </a></span>odp_packet_buf_data_offset()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_buf_data_offset </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a> </td> |
| <td class="paramname"><em>pkt_buf</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet buffer data offset. </p> |
| <p>Offset from the buffer head pointer to the first byte of packet data in the packet buffer. Valid values range from 0 to buf_size - 1. For the first packet buffer of a packet this is equivalent to <a class="el" href="group__odp__packet.html#ga2b5bbe693aa7639f78ea3ae00b462a74" title="Packet headroom length.">odp_packet_headroom()</a>.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt_buf</td><td>Packet buffer</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Packet buffer data offset </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga238d1c808115bb2fce9e0e67c89f7223"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga238d1c808115bb2fce9e0e67c89f7223">◆ </a></span>odp_packet_buf_data_len()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_buf_data_len </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a> </td> |
| <td class="paramname"><em>pkt_buf</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet buffer data length in bytes. </p> |
| <p>Packet buffer contains this many bytes of packet data. Valid values range from 1 to buf_size - data_offset. For the first packet buffer of a packet this is equivalent to <a class="el" href="group__odp__packet.html#ga22a6d43d83393129dcd548194930bfcf" title="Packet data length following the data pointer.">odp_packet_seg_len()</a>.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt_buf</td><td>Packet buffer</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Packet buffer data length </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gac133601913eacf81b50b3e519269999b"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gac133601913eacf81b50b3e519269999b">◆ </a></span>odp_packet_buf_data_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_buf_data_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a> </td> |
| <td class="paramname"><em>pkt_buf</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>data_offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>data_len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet buffer data set. </p> |
| <p>Update packet data start offset and length in the packet buffer. Valid offset values range from 0 to buf_size - 1. Valid length values range from 1 to buf_size - data_offset.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt_buf</td><td>Packet buffer </td></tr> |
| <tr><td class="paramname">data_offset</td><td>Packet buffer data offset in bytes (from the buffer head pointer) </td></tr> |
| <tr><td class="paramname">data_len</td><td>Packet buffer data length in bytes </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga93e2bce341ea84267b16ee7c010c1705"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga93e2bce341ea84267b16ee7c010c1705">◆ </a></span>odp_packet_buf_from_head()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a> odp_packet_buf_from_head </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> </td> |
| <td class="paramname"><em>pool</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">void * </td> |
| <td class="paramname"><em>head</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Convert packet buffer head pointer to handle. </p> |
| <p>Converts a packet buffer head pointer (from a previous <a class="el" href="group__odp__packet.html#gaa3ec32e9f6e307d55b8ebfdfe9cccf44" title="Packet buffer head pointer.">odp_packet_buf_head()</a> call) to a packet buffer handle. This allows an application to save memory as it can store only buffer pointers (instead of pointers and handles) and convert those to handles when needed. This conversion may be done only for packet buffers that are not part of any packet (i.e. buffers between <a class="el" href="group__odp__packet.html#gace1e4ce9f3c124547f899095effa7775" title="Disassemble packet into packet buffers.">odp_packet_disassemble()</a> and <a class="el" href="group__odp__packet.html#ga049e7cdd6ef1d6a6f07801767eb086a7" title="Reassemble packet from packet buffers.">odp_packet_reassemble()</a> calls).</p> |
| <p>This call can be used only for packets of an external memory pool (see <a class="el" href="group__odp__pool.html#gaafdf01e8be77a5f11f3cd894e29049f6" title="Create an external memory pool.">odp_pool_ext_create()</a>).</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pool</td><td>Pool from which the packet buffer (disassembled packet) originate from </td></tr> |
| <tr><td class="paramname">head</td><td>Head pointer</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Packet buffer handle on success </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_PACKET_BUF_INVALID</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gace1e4ce9f3c124547f899095effa7775"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gace1e4ce9f3c124547f899095effa7775">◆ </a></span>odp_packet_disassemble()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_disassemble </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a> </td> |
| <td class="paramname"><em>pkt_buf</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>num</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Disassemble packet into packet buffers. </p> |
| <p>Breaks up a packet into a list of packet buffers. Outputs a packet buffer handle for each segment of the packet (see <a class="el" href="group__odp__packet.html#ga3125802abd9f29fabe4813307e884f87" title="Number of segments.">odp_packet_num_segs()</a>). After a successful operation the packet handle must not be referenced anymore. Packet buffers are reassembled into a new packet (or several new packets) with a later <a class="el" href="group__odp__packet.html#ga049e7cdd6ef1d6a6f07801767eb086a7" title="Reassemble packet from packet buffers.">odp_packet_reassemble()</a> call(s). All packet buffers must be reassembled into a packet and freed into the originating pool before the pool is destroyed.</p> |
| <p>This call can be used only for packets of an external memory pool (see <a class="el" href="group__odp__pool.html#gaafdf01e8be77a5f11f3cd894e29049f6" title="Create an external memory pool.">odp_pool_ext_create()</a>).</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir"></td><td class="paramname">pkt</td><td>Packet to be disassembled </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">pkt_buf</td><td>Packet buffer handle array for output </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">num</td><td>Number of elements in packet buffer handle array. Must be equal to or larger than number of segments in the packet.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Number of handles written (equals the number of segments in the packet) </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga049e7cdd6ef1d6a6f07801767eb086a7"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga049e7cdd6ef1d6a6f07801767eb086a7">◆ </a></span>odp_packet_reassemble()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> odp_packet_reassemble </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> </td> |
| <td class="paramname"><em>pool</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga93a7765945bb4d132c77285fba275f9f">odp_packet_buf_t</a> </td> |
| <td class="paramname"><em>pkt_buf</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>num</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Reassemble packet from packet buffers. </p> |
| <p>Forms a new packet from packet buffers of a previous <a class="el" href="group__odp__packet.html#gace1e4ce9f3c124547f899095effa7775" title="Disassemble packet into packet buffers.">odp_packet_disassemble()</a> call(s). Packet buffers from different disassembled packets may be used, but all buffers must be from packets of the same pool. Packet pool capability 'max_segs_per_pkt' defines the maximum number of packet buffers that can be reassembled to form a new packet.</p> |
| <p>Application may use <a class="el" href="group__odp__packet.html#gac133601913eacf81b50b3e519269999b" title="Packet buffer data set.">odp_packet_buf_data_set()</a> to adjust data_offset and data_len values in each packet buffer to match the current packet data placement. The operation maintains packet data content and position. Each buffer becomes a segment in the new packet. Packet metadata related to data length and position are set according data layout in the buffers. All other packet metadata are set to their default values. After a successful operation packet buffer handles must not be referenced anymore.</p> |
| <p>This call can be used only for packets of an external memory pool (see <a class="el" href="group__odp__pool.html#gaafdf01e8be77a5f11f3cd894e29049f6" title="Create an external memory pool.">odp_pool_ext_create()</a>).</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pool</td><td>Pool from which all packet buffers (disassembled packets) originate from </td></tr> |
| <tr><td class="paramname">pkt_buf</td><td>Packet buffers to form a new packet </td></tr> |
| <tr><td class="paramname">num</td><td>Number of packet buffers. Must not exceed max_segs_per_pkt pool capability.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Handle of the newly formed packet </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_PACKET_INVALID</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gae4fa1de607d4dc99066160944d646cb2"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gae4fa1de607d4dc99066160944d646cb2">◆ </a></span>odp_packet_ref_static()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> odp_packet_ref_static </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Create a static reference to a packet. </p> |
| <p>A static reference is used to obtain an additional handle for referring to the entire packet as it is. As long as a packet has multiple (static) references, any of the references (including 'pkt') must not be used to modify the packet in any way - both data and metadata must remain static. The packet may be modified again when there is a single reference left. Static and dynamic references must not be mixed. Results are undefined if these restrictions are not observed.</p> |
| <p>While static references are inflexible they offer efficient way to do, e.g., packet retransmissions. Use <a class="el" href="group__odp__packet.html#ga4e4c31ab64f067a3417d175162978d0d" title="Create a reference to a packet.">odp_packet_ref()</a> or <a class="el" href="group__odp__packet.html#ga09ac7329a06748a60e801b55631641bd" title="Create a reference to a packet with a header packet.">odp_packet_ref_pkt()</a> for more flexible, dynamic references.</p> |
| <p>Packet is not modified on failure.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Handle of the packet for which a static reference is to be created.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Static reference to the packet </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_PACKET_INVALID</td><td>On failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga4e4c31ab64f067a3417d175162978d0d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga4e4c31ab64f067a3417d175162978d0d">◆ </a></span>odp_packet_ref()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> odp_packet_ref </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>offset</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Create a reference to a packet. </p> |
| <p>Returns a new (dynamic) reference to a packet starting the shared part of the data at a specified byte offset. Metadata and data before the offset are not shared with other references of the packet. The rest of the data is shared and must be treated as read only. Initially the returned reference has metadata initialized to default values and does not contain unshared data. Packet (head) manipulation functions may be used normally to, e.g., add a unique header onto the shared payload. The shared part of the packet may be modified again when there is a single reference left. Static and dynamic references must not be mixed. Results are undefined if these restrictions are not observed.</p> |
| <p>The packet handle 'pkt' may itself be a (dynamic) reference to a packet.</p> |
| <p>If the caller does not intend to modify either the packet or the new reference to it, <a class="el" href="group__odp__packet.html#gae4fa1de607d4dc99066160944d646cb2" title="Create a static reference to a packet.">odp_packet_ref_static()</a> may be used to create a static reference that is more optimized for that use case.</p> |
| <p>Packet is not modified on failure.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Handle of the packet for which a reference is to be created.</td></tr> |
| <tr><td class="paramname">offset</td><td>Byte offset in the packet at which the shared part is to begin. This must be in the range 0 ... odp_packet_len(pkt)-1.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>New reference to the packet </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_PACKET_INVALID</td><td>On failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga09ac7329a06748a60e801b55631641bd"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga09ac7329a06748a60e801b55631641bd">◆ </a></span>odp_packet_ref_pkt()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> odp_packet_ref_pkt </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>hdr</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Create a reference to a packet with a header packet. </p> |
| <p>This operation is otherwise identical to <a class="el" href="group__odp__packet.html#ga4e4c31ab64f067a3417d175162978d0d" title="Create a reference to a packet.">odp_packet_ref()</a>, but it prepends a supplied 'hdr' packet as the head of the new reference. The resulting packet consists metadata and data of the 'hdr' packet, followed by the shared part of packet 'pkt'.</p> |
| <p>The packet handle ('pkt') may itself be a (dynamic) reference to a packet, but the header packet handle ('hdr') must be unique. Both packets must be have been allocated from the same pool and the handles must not refer to the same packet. Results are undefined if these restrictions are not observed.</p> |
| <p>Packets are not modified on failure. The header packet 'hdr' is consumed on success.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Handle of the packet for which a reference is to be created.</td></tr> |
| <tr><td class="paramname">offset</td><td>Byte offset in 'pkt' at which the shared part is to begin. Must be in the range 0 ... odp_packet_len(pkt)-1.</td></tr> |
| <tr><td class="paramname">hdr</td><td>Handle of the header packet to be prefixed onto the new reference. Must be a unique reference.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>New reference the reference packet </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_PACKET_INVALID</td><td>On failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gae9c092f02e0e51e389921c23e25ebff7"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gae9c092f02e0e51e389921c23e25ebff7">◆ </a></span>odp_packet_has_ref()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_ref </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Test if packet has multiple references. </p> |
| <p>A packet that has multiple references share data with other packets. In case of a static reference it also shares metadata. Shared parts must be treated as read only.</p> |
| <p>New references are created with <a class="el" href="group__odp__packet.html#gae4fa1de607d4dc99066160944d646cb2" title="Create a static reference to a packet.">odp_packet_ref_static()</a>, <a class="el" href="group__odp__packet.html#ga4e4c31ab64f067a3417d175162978d0d" title="Create a reference to a packet.">odp_packet_ref()</a> and <a class="el" href="group__odp__packet.html#ga09ac7329a06748a60e801b55631641bd" title="Create a reference to a packet with a header packet.">odp_packet_ref_pkt()</a> calls. The intent of multiple references is to avoid packet copies, however some implementations may do a packet copy for some of the calls. If a copy is done, the new reference is actually a new, unique packet and this function returns '0' for it. When a real reference is created (instead of a copy), this function returns '1' for both packets (the original packet and the new reference).</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>This is the single reference to the packet </td></tr> |
| <tr><td class="paramname">1</td><td>Packet has multiple references </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga3446c95a98cbe4ccfe0b425d49bd5886"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga3446c95a98cbe4ccfe0b425d49bd5886">◆ </a></span>odp_packet_copy()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> odp_packet_copy </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> </td> |
| <td class="paramname"><em>pool</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Full copy of a packet. </p> |
| <p>Create a new copy of the packet. The new packet is exact copy of the source packet (incl. data and metadata). The pool must have been created with ODP_POOL_PACKET type.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">pool</td><td>Packet pool for allocation of the new packet.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Handle to the copy of the packet </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_PACKET_INVALID</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gae1083592e8f673c814fd20a6519a2bed"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gae1083592e8f673c814fd20a6519a2bed">◆ </a></span>odp_packet_copy_part()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> odp_packet_copy_part </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> </td> |
| <td class="paramname"><em>pool</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Partial copy of a packet. </p> |
| <p>Copy 'len' bytes of data starting from 'offset' into a new packet. Metadata in the new packet is initialized with default values. Maximum number of bytes to copy is packet data length minus the offset. The pool must be a packet pool.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">offset</td><td>Byte offset into the packet </td></tr> |
| <tr><td class="paramname">len</td><td>Number of bytes to copy </td></tr> |
| <tr><td class="paramname">pool</td><td>Packet pool for allocation of the new packet</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Handle for the new packet </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_PACKET_INVALID</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gadf9179122029a9dd7a000e050f68b357"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gadf9179122029a9dd7a000e050f68b357">◆ </a></span>odp_packet_copy_to_mem()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_copy_to_mem </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">void * </td> |
| <td class="paramname"><em>dst</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Copy data from packet to memory. </p> |
| <p>Copy 'len' bytes of data starting from 'offset' to the destination address. Maximum number of bytes to copy is packet data length minus the offset.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">offset</td><td>Byte offset into the packet </td></tr> |
| <tr><td class="paramname">len</td><td>Number of bytes to copy </td></tr> |
| <tr><td class="paramname">dst</td><td>Destination address</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gab67164b42ca75ae96615af7cebbfc414"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gab67164b42ca75ae96615af7cebbfc414">◆ </a></span>odp_packet_copy_from_mem()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_copy_from_mem </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const void * </td> |
| <td class="paramname"><em>src</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Copy data from memory to packet. </p> |
| <p>Copy 'len' bytes of data from the source address into the packet level offset. Maximum number of bytes to copy is packet data length minus the offset. Packet is not modified on an error.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">offset</td><td>Byte offset into the packet </td></tr> |
| <tr><td class="paramname">len</td><td>Number of bytes to copy </td></tr> |
| <tr><td class="paramname">src</td><td>Source address</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gaad6a847e3402150a0d820bc8753caf51"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaad6a847e3402150a0d820bc8753caf51">◆ </a></span>odp_packet_copy_from_pkt()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_copy_from_pkt </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>dst</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>dst_offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>src_offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Copy data from another packet. </p> |
| <p>Copy 'len' bytes of data from 'src' packet to 'dst' packet. Copy starts from the specified source and destination packet offsets. Copied areas (offset ... offset + len) must not exceed their packet data lengths. Source and destination packet handles must not refer to the same packet (use <a class="el" href="group__odp__packet.html#ga4364b3e9b0d4b6ee64ca650370627ea8" title="Copy data within packet.">odp_packet_copy_data()</a> or <a class="el" href="group__odp__packet.html#ga620330f43f514b89350695602c8ccf4a" title="Move data within packet.">odp_packet_move_data()</a> for a single packet).</p> |
| <p>Packet is not modified on an error.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">dst</td><td>Destination packet handle </td></tr> |
| <tr><td class="paramname">dst_offset</td><td>Byte offset into destination packet </td></tr> |
| <tr><td class="paramname">src</td><td>Source packet handle </td></tr> |
| <tr><td class="paramname">src_offset</td><td>Byte offset into source packet </td></tr> |
| <tr><td class="paramname">len</td><td>Number of bytes to copy</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga4364b3e9b0d4b6ee64ca650370627ea8"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga4364b3e9b0d4b6ee64ca650370627ea8">◆ </a></span>odp_packet_copy_data()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_copy_data </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>dst_offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>src_offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Copy data within packet. </p> |
| <p>Copy 'len' bytes of data from 'src_offset' to 'dst_offset'. Copied areas (offset ... offset + len) must not overlap or exceed packet data length. Packet is not modified on an error.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">dst_offset</td><td>Destination byte offset </td></tr> |
| <tr><td class="paramname">src_offset</td><td>Source byte offset </td></tr> |
| <tr><td class="paramname">len</td><td>Number of bytes to copy</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga620330f43f514b89350695602c8ccf4a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga620330f43f514b89350695602c8ccf4a">◆ </a></span>odp_packet_move_data()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_move_data </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>dst_offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>src_offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Move data within packet. </p> |
| <p>Copy 'len' bytes of data from 'src_offset' to 'dst_offset'. Copied areas (offset ... offset + len) may overlap by any number of bytes, but must not exceed packet data length. When areas overlap, copying takes place as if source bytes are first copied into a temporary buffer, and then from there to the destination. Packet is not modified on an error.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">dst_offset</td><td>Destination byte offset </td></tr> |
| <tr><td class="paramname">src_offset</td><td>Source byte offset </td></tr> |
| <tr><td class="paramname">len</td><td>Number of bytes to move</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gab35a12b14bafdf232f7a06193298004a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gab35a12b14bafdf232f7a06193298004a">◆ </a></span>odp_packet_parse()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_parse </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const <a class="el" href="structodp__packet__parse__param__t.html">odp_packet_parse_param_t</a> * </td> |
| <td class="paramname"><em>param</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Parse packet. </p> |
| <p>Parse protocol headers in packet data and update layer/protocol specific metadata (e.g. offsets, errors, protocols, checksum statuses, etc). Parsing starts at 'offset', which is the first header byte of protocol 'param.proto'. Parameter 'param.last_layer' defines the last layer application requests to check. Use ODP_PROTO_LAYER_ALL for all layers. A successful operation sets (or resets) packet metadata for all layers from the layer of 'param.proto' to the application defined last layer. In addition, offset (and pointer) to the next layer is set. Other layer/protocol specific metadata have undefined values. When operation fails, all layer/protocol specific metadata have undefined values.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">offset</td><td>Byte offset into the packet </td></tr> |
| <tr><td class="paramname">param</td><td>Parse parameters. Proto and last_layer fields must be set. Clear all check bits that are not used.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga28b60e89bdccb4537bc159c67a2993cf"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga28b60e89bdccb4537bc159c67a2993cf">◆ </a></span>odp_packet_parse_multi()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_parse_multi </td> |
| <td>(</td> |
| <td class="paramtype">const <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const uint32_t </td> |
| <td class="paramname"><em>offset</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>num</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const <a class="el" href="structodp__packet__parse__param__t.html">odp_packet_parse_param_t</a> * </td> |
| <td class="paramname"><em>param</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Parse multiple packets. </p> |
| <p>Otherwise like <a class="el" href="group__odp__packet.html#gab35a12b14bafdf232f7a06193298004a" title="Parse packet.">odp_packet_parse()</a>, but parses multiple packets. Packets may have unique offsets, but must start with the same protocol. The same parse parameters are applied to all packets.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle array </td></tr> |
| <tr><td class="paramname">offset</td><td>Byte offsets into the packets </td></tr> |
| <tr><td class="paramname">num</td><td>Number of packets and offsets </td></tr> |
| <tr><td class="paramname">param</td><td>Parse parameters. Proto and last_layer fields must be set. Clear all check bits that are not used.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Number of packets parsed successfully (0 ... num) </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gad01723b917524013ddcf485121a25399"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gad01723b917524013ddcf485121a25399">◆ </a></span>odp_packet_parse_result()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_parse_result </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structodp__packet__parse__result__t.html">odp_packet_parse_result_t</a> * </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>Read parse results. </p> |
| <p>Read out the most commonly used packet parse results. The same information is available through individual function calls, but this call may be more efficient when reading multiple results from a packet.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir"></td><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>Pointer for parse result output </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga24ba4bde26312e012214d1a95e201712"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga24ba4bde26312e012214d1a95e201712">◆ </a></span>odp_packet_parse_result_multi()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_parse_result_multi </td> |
| <td>(</td> |
| <td class="paramtype">const <a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structodp__packet__parse__result__t.html">odp_packet_parse_result_t</a> * </td> |
| <td class="paramname"><em>result</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>num</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Read parse results from multiple packets. </p> |
| <p>Otherwise same functionality as <a class="el" href="group__odp__packet.html#gad01723b917524013ddcf485121a25399" title="Read parse results.">odp_packet_parse_result()</a> but handles multiple packets.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir"></td><td class="paramname">pkt</td><td>Packet handle array </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>Parse result array for output </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">num</td><td>Number of packets and results </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gadccb9ed96850de34353a813932462463"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gadccb9ed96850de34353a813932462463">◆ </a></span>odp_packet_pool()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> odp_packet_pool </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet pool. </p> |
| <p>Returns handle to the packet pool where the packet was allocated from.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Packet pool handle </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gafedebc00ec9a8b6076717e43e9ac1b43"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gafedebc00ec9a8b6076717e43e9ac1b43">◆ </a></span>odp_packet_input()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet__io.html#gab2c9857b9be70ca49962a8f22d3cb657">odp_pktio_t</a> odp_packet_input </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet input interface. </p> |
| <p>Returns handle to the packet IO interface which received the packet or ODP_PKTIO_INVALID when the packet was allocated/reset by the application.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Packet interface handle </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_PKTIO_INVALID</td><td>Packet was not received on any interface </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gad00eacb288b18150c3da5ef134f4e4b2"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gad00eacb288b18150c3da5ef134f4e4b2">◆ </a></span>odp_packet_input_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_input_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet__io.html#gab2c9857b9be70ca49962a8f22d3cb657">odp_pktio_t</a> </td> |
| <td class="paramname"><em>pktio</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set packet input interface. </p> |
| <p>Set packet input interface to a valid packet IO handle or ODP_PKTIO_INVALID. An application may use this for testing or other purposes, when perception of the packet input interface need to be changed. The call updates both input interface handle (<a class="el" href="group__odp__packet.html#gafedebc00ec9a8b6076717e43e9ac1b43" title="Packet input interface.">odp_packet_input()</a>) and index (<a class="el" href="group__odp__packet.html#ga1c03b0fec815617168cf29a013442d58" title="Packet input interface index.">odp_packet_input_index()</a>).</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">pktio</td><td>Handle to a valid packet input interface or ODP_PKTIO_INVALID. ODP_PKTIO_INVALID indicates that the packet was not received by any packet IO interface. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga1c03b0fec815617168cf29a013442d58"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga1c03b0fec815617168cf29a013442d58">◆ </a></span>odp_packet_input_index()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_input_index </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet input interface index. </p> |
| <p>Returns the index of the packet I/O interface that received the packet, or <0 when the packet was allocated/reset by the application.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Packet interface index (0..<a class="el" href="group__odp__packet__io.html#ga0be6e0bf709786c2c7eb5ae78c5a3246" title="Maximum packet IO interface index.">odp_pktio_max_index()</a>) </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname"><0</td><td>Packet was not received on any interface </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga163f75fca9789a17ab4db0e75bfd9b29"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga163f75fca9789a17ab4db0e75bfd9b29">◆ </a></span>odp_packet_user_ptr()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_user_ptr </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>User context pointer. </p> |
| <p>Return previously stored user context pointer. If not otherwise documented, the pointer value is maintained over packet manipulating operations. Implementation initializes the pointer value to NULL during new packet creation (e.g. alloc and packet input) and reset.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>User context pointer </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gabba756536217212e5570b73db24d00c8"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gabba756536217212e5570b73db24d00c8">◆ </a></span>odp_packet_user_ptr_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_user_ptr_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const void * </td> |
| <td class="paramname"><em>user_ptr</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set user context pointer. </p> |
| <p>Each packet has room for a user defined context pointer. The pointer value does not necessarily represent a valid address - e.g. user may store any value of type intptr_t. ODP may use the pointer for data prefetching, but must ignore any invalid addresses.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">user_ptr</td><td>User context pointer </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga67a5c6d167ea5ac5c6bbfb96b465a119"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga67a5c6d167ea5ac5c6bbfb96b465a119">◆ </a></span>odp_packet_user_area()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_user_area </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>User area address. </p> |
| <p>Each packet has an area for user data. Size of the area is fixed and defined in packet pool parameters.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>User area address associated with the packet </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">NULL</td><td>The packet does not have user area </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga3803f4be3568c39077acf2e3c8232271"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga3803f4be3568c39077acf2e3c8232271">◆ </a></span>odp_packet_user_area_size()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_user_area_size </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>User area size. </p> |
| <p>The size is fixed and defined in packet pool parameters.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>User area size in bytes </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gad775927e18fb31e70c5014e75e3ecaf3"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gad775927e18fb31e70c5014e75e3ecaf3">◆ </a></span>odp_packet_user_flag()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_user_flag </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check user flag. </p> |
| <p>Implementation clears user flag during new packet creation (e.g. alloc and packet input) and reset. User may set the flag with <a class="el" href="group__odp__packet.html#ga3016d9113cc70cce0874f5db4b068f65" title="Set user flag.">odp_packet_user_flag_set()</a>. Implementation never sets the flag, only clears it. The flag may be useful e.g. to mark when the user area content is valid.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>User flag is clear </td></tr> |
| <tr><td class="paramname">>0</td><td>User flag is set </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga3016d9113cc70cce0874f5db4b068f65"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga3016d9113cc70cce0874f5db4b068f65">◆ </a></span>odp_packet_user_flag_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_user_flag_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set user flag. </p> |
| <p>Set (or clear) the user flag.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>New value for the flag. Zero clears the flag, other values set the flag. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga9db78b8022b51bbe434d7599d22b0b95"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga9db78b8022b51bbe434d7599d22b0b95">◆ </a></span>odp_packet_l2_ptr()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_l2_ptr </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t * </td> |
| <td class="paramname"><em>len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Layer 2 start pointer. </p> |
| <p>Returns pointer to the start of layer 2. Optionally, outputs number of data bytes in the segment following the pointer. The pointer value is generated from the current layer 2 offset.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir"></td><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">len</td><td>Number of data bytes remaining in the segment (output). Ignored when NULL.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Layer 2 start pointer </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">NULL</td><td>Layer 2 offset has not been set</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#gaff4652c8ee369e5d0964775c810ac720" title="Layer 2 start offset.">odp_packet_l2_offset()</a>, <a class="el" href="group__odp__packet.html#ga79bdc8c991e23c5e676b31e630bc31f3" title="Set layer 2 start offset.">odp_packet_l2_offset_set()</a>, <a class="el" href="group__odp__packet.html#ga7d214afb24153cf16bf3ae774c3b7d1b" title="Check for layer 2 protocols.">odp_packet_has_l2()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gaff4652c8ee369e5d0964775c810ac720"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaff4652c8ee369e5d0964775c810ac720">◆ </a></span>odp_packet_l2_offset()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_l2_offset </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Layer 2 start offset. </p> |
| <p>Returns offset to the start of layer 2. The offset is calculated from the current <a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a> position in bytes. Packet parsing sets the offset according to parse configuration and layers recognized in the packet. Data start position updating functions (e.g. <a class="el" href="group__odp__packet.html#ga2ed856750508efaae13d6be7aaa93695" title="Push out packet head.">odp_packet_push_head()</a>) do not modify the offset, but user sets a new value when needed.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Layer 2 start offset </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_PACKET_OFFSET_INVALID</td><td>Layer 2 offset has not been set</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga79bdc8c991e23c5e676b31e630bc31f3" title="Set layer 2 start offset.">odp_packet_l2_offset_set()</a>, <a class="el" href="group__odp__packet.html#ga7d214afb24153cf16bf3ae774c3b7d1b" title="Check for layer 2 protocols.">odp_packet_has_l2()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga79bdc8c991e23c5e676b31e630bc31f3"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga79bdc8c991e23c5e676b31e630bc31f3">◆ </a></span>odp_packet_l2_offset_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_l2_offset_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>offset</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set layer 2 start offset. </p> |
| <p>Set offset to the start of layer 2. The offset is calculated from the current <a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a> position in bytes. Offset must not exceed packet data length. Offset is not modified on an error.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">offset</td><td>Layer 2 start offset (0 ... <a class="el" href="group__odp__packet.html#ga68c47fd0c2a764b01b11390974748cc6" title="Packet data length.">odp_packet_len()</a>-1)</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gad0cd1a3f0137909e038438c97e701ffb"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gad0cd1a3f0137909e038438c97e701ffb">◆ </a></span>odp_packet_l3_ptr()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_l3_ptr </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t * </td> |
| <td class="paramname"><em>len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Layer 3 start pointer. </p> |
| <p>Returns pointer to the start of layer 3. Optionally, outputs number of data bytes in the segment following the pointer. The pointer value is generated from the current layer 3 offset.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir"></td><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">len</td><td>Number of data bytes remaining in the segment (output). Ignored when NULL.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Layer 3 start pointer </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">NULL</td><td>Layer 3 offset has not been set</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga9eb7cff2a7f32d07bcf919d7286509b1" title="Layer 3 start offset.">odp_packet_l3_offset()</a>, <a class="el" href="group__odp__packet.html#ga1b1c25d6a81b1f3c2cb82188b3721a6f" title="Set layer 3 start offset.">odp_packet_l3_offset_set()</a>, <a class="el" href="group__odp__packet.html#ga0aa1a0f7db60d79c1fdf8453aac52248" title="Check for layer 3 protocols.">odp_packet_has_l3()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga9eb7cff2a7f32d07bcf919d7286509b1"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga9eb7cff2a7f32d07bcf919d7286509b1">◆ </a></span>odp_packet_l3_offset()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_l3_offset </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Layer 3 start offset. </p> |
| <p>Returns offset to the start of layer 3. The offset is calculated from the current <a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a> position in bytes. Packet parsing sets the offset according to parse configuration and layers recognized in the packet. Data start position updating functions (e.g. <a class="el" href="group__odp__packet.html#ga2ed856750508efaae13d6be7aaa93695" title="Push out packet head.">odp_packet_push_head()</a>) do not modify the offset, but user sets a new value when needed.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Layer 3 start offset </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_PACKET_OFFSET_INVALID</td><td>Layer 3 offset has not been set</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga1b1c25d6a81b1f3c2cb82188b3721a6f" title="Set layer 3 start offset.">odp_packet_l3_offset_set()</a>, <a class="el" href="group__odp__packet.html#ga0aa1a0f7db60d79c1fdf8453aac52248" title="Check for layer 3 protocols.">odp_packet_has_l3()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga1b1c25d6a81b1f3c2cb82188b3721a6f"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga1b1c25d6a81b1f3c2cb82188b3721a6f">◆ </a></span>odp_packet_l3_offset_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_l3_offset_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>offset</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set layer 3 start offset. </p> |
| <p>Set offset to the start of layer 3. The offset is calculated from the current <a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a> position in bytes. Offset must not exceed packet data length. Offset is not modified on an error.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">offset</td><td>Layer 3 start offset (0 ... <a class="el" href="group__odp__packet.html#ga68c47fd0c2a764b01b11390974748cc6" title="Packet data length.">odp_packet_len()</a>-1)</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gab9760ae693455cc838dfb82cc280de7d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gab9760ae693455cc838dfb82cc280de7d">◆ </a></span>odp_packet_l4_ptr()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_l4_ptr </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t * </td> |
| <td class="paramname"><em>len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Layer 4 start pointer. </p> |
| <p>Returns pointer to the start of layer 4. Optionally, outputs number of data bytes in the segment following the pointer. The pointer value is generated from the current layer 4 offset.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir"></td><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">len</td><td>Number of data bytes remaining in the segment (output). Ignored when NULL.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Layer 4 start pointer </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">NULL</td><td>Layer 4 offset has not been set</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga3d1e523b200b887c88d9506a804f0e38" title="Layer 4 start offset.">odp_packet_l4_offset()</a>, <a class="el" href="group__odp__packet.html#ga4629db8bf7e9b378f8a83b7aabab8248" title="Set layer 4 start offset.">odp_packet_l4_offset_set()</a>, <a class="el" href="group__odp__packet.html#ga67debe2e28e66e464faeaa3b3ab655e0" title="Check for layer 4 protocols.">odp_packet_has_l4()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga3d1e523b200b887c88d9506a804f0e38"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga3d1e523b200b887c88d9506a804f0e38">◆ </a></span>odp_packet_l4_offset()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_l4_offset </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Layer 4 start offset. </p> |
| <p>Returns offset to the start of layer 4. The offset is calculated from the current <a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a> position in bytes. Packet parsing sets the offset according to parse configuration and layers recognized in the packet. Data start position updating functions (e.g. <a class="el" href="group__odp__packet.html#ga2ed856750508efaae13d6be7aaa93695" title="Push out packet head.">odp_packet_push_head()</a>) do not modify the offset, but user sets a new value when needed.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Layer 4 start offset </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_PACKET_OFFSET_INVALID</td><td>Layer 4 offset has not been set</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga4629db8bf7e9b378f8a83b7aabab8248" title="Set layer 4 start offset.">odp_packet_l4_offset_set()</a>, <a class="el" href="group__odp__packet.html#ga67debe2e28e66e464faeaa3b3ab655e0" title="Check for layer 4 protocols.">odp_packet_has_l4()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga4629db8bf7e9b378f8a83b7aabab8248"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga4629db8bf7e9b378f8a83b7aabab8248">◆ </a></span>odp_packet_l4_offset_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_l4_offset_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>offset</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set layer 4 start offset. </p> |
| <p>Set offset to the start of layer 4. The offset is calculated from the current <a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a> position in bytes. Offset must not exceed packet data length. Offset is not modified on an error.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">offset</td><td>Layer 4 start offset (0 ... <a class="el" href="group__odp__packet.html#ga68c47fd0c2a764b01b11390974748cc6" title="Packet data length.">odp_packet_len()</a>-1)</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga5293342304d7a2bf1f5bd958a272f186"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga5293342304d7a2bf1f5bd958a272f186">◆ </a></span>odp_packet_l2_type()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#gaf7dbe2e9d44019a2589323b870868f68">odp_proto_l2_type_t</a> odp_packet_l2_type </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Layer 2 protocol type. </p> |
| <p>Returns layer 2 protocol type. Initial type value is ODP_PROTO_L2_TYPE_NONE.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Layer 2 protocol type </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gac5b14d78f78c263f00959d6d189b0270"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gac5b14d78f78c263f00959d6d189b0270">◆ </a></span>odp_packet_l3_type()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#ga406d88edf230d5177c114b5046e33cdf">odp_proto_l3_type_t</a> odp_packet_l3_type </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Layer 3 protocol type. </p> |
| <p>Returns layer 3 protocol type. Initial type value is ODP_PROTO_L3_TYPE_NONE.</p> |
| <p>In addition to protocol types specified in ODP_PROTO_L3_TYPE_* defines, the function may also return other L3 protocol types (e.g. from IEEE EtherTypes list) recognized by the parser. If protocol type is not recognized, ODP_PROTO_L3_TYPE_NONE is returned.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Layer 3 protocol type </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga154698e4b688372fee60af446a7f1190"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga154698e4b688372fee60af446a7f1190">◆ </a></span>odp_packet_l4_type()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#gac81078393c53cbc0ac16c29137085703">odp_proto_l4_type_t</a> odp_packet_l4_type </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Layer 4 protocol type. </p> |
| <p>Returns layer 4 protocol type. Initial type value is ODP_PROTO_L4_TYPE_NONE.</p> |
| <p>In addition to protocol types specified in ODP_PROTO_L4_TYPE_* defines, the function may also return other L4 protocol types (e.g. from IANA protocol number list) recognized by the parser. If protocol type is not recognized, ODP_PROTO_L4_TYPE_NONE is returned.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Layer 4 protocol type </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gababf616c2fa7a646362367cbc2b57362"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gababf616c2fa7a646362367cbc2b57362">◆ </a></span>odp_packet_l3_chksum_status()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#gabf47d1f8d2c6fc6a4391d028a5acc749">odp_packet_chksum_status_t</a> odp_packet_l3_chksum_status </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Layer 3 checksum check status. </p> |
| <p>Returns the result of the latest layer 3 checksum check done for the packet. The status tells if checksum check was attempted and the result of the attempt. It depends on packet input (or IPSEC) configuration, packet content and implementation capabilities if checksum check is attempted for a packet.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>L3 checksum check status </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga22a4d615b0101a47b290dc53ccb0c407"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga22a4d615b0101a47b290dc53ccb0c407">◆ </a></span>odp_packet_l4_chksum_status()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#gabf47d1f8d2c6fc6a4391d028a5acc749">odp_packet_chksum_status_t</a> odp_packet_l4_chksum_status </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Layer 4 checksum check status. </p> |
| <p>Returns the result of the latest layer 4 checksum check done for the packet. The status tells if checksum check was attempted and the result of the attempt. It depends on packet input (or IPSEC) configuration, packet content and implementation capabilities if checksum check is attempted for a packet.</p> |
| <p>When a UDP packet does not have a checksum (e.g. checksum field of a UDP/IPv4 packet is zero), checksum check result is ODP_PACKET_CHKSUM_OK.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>L4 checksum check status </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gae88bcb7cf28e3ddfbdc2886a55ee86a3"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gae88bcb7cf28e3ddfbdc2886a55ee86a3">◆ </a></span>odp_packet_l3_chksum_insert()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_l3_chksum_insert </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>insert</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Layer 3 checksum insertion override. </p> |
| <p>Override checksum insertion configuration per packet. This per packet setting overrides a higher level configuration for checksum insertion into a L3 header during packet output processing.</p> |
| <p>Calling this function is always allowed but the checksum will not be inserted if the packet is output through a pktio that does not have the relevant checksum insertion enabled.</p> |
| <p>L3 type and L3 offset in packet metadata should provide valid protocol and header offset for checksum insertion purposes.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">insert</td><td>0: do not insert L3 checksum 1: insert L3 checksum</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga9eb7cff2a7f32d07bcf919d7286509b1" title="Layer 3 start offset.">odp_packet_l3_offset()</a>, <a class="el" href="group__odp__packet.html#ga34cecc1ff01ab01bbcbd18dd8ef535fb" title="Check for IPv4.">odp_packet_has_ipv4()</a>, <a class="el" href="group__odp__packet.html#ga6fb9531bd5cbc6a850e294c4dbcd0c27" title="Check for IPv6.">odp_packet_has_ipv6()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gab37e17f1aad3ea3a5a2cbdadfcb50dec"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gab37e17f1aad3ea3a5a2cbdadfcb50dec">◆ </a></span>odp_packet_l4_chksum_insert()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_l4_chksum_insert </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>insert</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Layer 4 checksum insertion override. </p> |
| <p>Override checksum insertion configuration per packet. This per packet setting overrides a higher level configuration for checksum insertion into a L4 header during packet output processing.</p> |
| <p>Calling this function is always allowed but the checksum will not be inserted if the packet is output through a pktio that does not have the relevant checksum insertion enabled.</p> |
| <p>L3 type, L4 type, L3 offset and L4 offset in packet metadata should provide valid protocols and header offsets for checksum insertion purposes.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">insert</td><td>0: do not insert L4 checksum 1: insert L4 checksum</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga9eb7cff2a7f32d07bcf919d7286509b1" title="Layer 3 start offset.">odp_packet_l3_offset()</a>, <a class="el" href="group__odp__packet.html#ga34cecc1ff01ab01bbcbd18dd8ef535fb" title="Check for IPv4.">odp_packet_has_ipv4()</a>, <a class="el" href="group__odp__packet.html#ga6fb9531bd5cbc6a850e294c4dbcd0c27" title="Check for IPv6.">odp_packet_has_ipv6()</a> </dd> |
| <dd> |
| <a class="el" href="group__odp__packet.html#ga3d1e523b200b887c88d9506a804f0e38" title="Layer 4 start offset.">odp_packet_l4_offset()</a>, <a class="el" href="group__odp__packet.html#gac7bc6a3ffc116a7bf86ba827fd579704" title="Check for TCP.">odp_packet_has_tcp()</a>, <a class="el" href="group__odp__packet.html#gaebb6c19d5fc2ff3a722947b74e0d38a3" title="Check for UDP.">odp_packet_has_udp()</a> </dd> |
| <dd> |
| <a class="el" href="group__odp__packet.html#gac369da93c52238750f9af6b4d331c605" title="Check for SCTP.">odp_packet_has_sctp()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga0ca81ee2d1776d8f0dd4986d4dfababb"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga0ca81ee2d1776d8f0dd4986d4dfababb">◆ </a></span>odp_packet_ones_comp()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint16_t odp_packet_ones_comp </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga3679864d08a10a773f2c29bbef408617">odp_packet_data_range_t</a> * </td> |
| <td class="paramname"><em>range</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Ones' complement sum of packet data. </p> |
| <p>Returns 16-bit ones' complement sum that was calculated over a portion of packet data during a packet processing operation (e.g. packet input or IPSEC offload). The data range is output with 'range' parameter, and usually includes IP payload (L4 headers and payload). When 'range.length' is zero, the sum has not been calculated. In case of odd number of bytes, calculation uses a zero byte as padding at the end. The sum may be used as part of e.g. UDP/TCP checksum checking, especially with IP fragments.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir"></td><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">range</td><td>Data range of the sum (output). The calculation started from range.offset and included range.length bytes. When range.length is zero, the sum has not been calculated.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Ones' complement sum over the data range </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga0f4d215e25b1091a6e1fc5e4794a7f7a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga0f4d215e25b1091a6e1fc5e4794a7f7a">◆ </a></span>odp_packet_flow_hash()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_flow_hash </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet flow hash value. </p> |
| <p>Returns the hash generated from the packet header. Use <a class="el" href="group__odp__packet.html#ga7b17fb171e242b31d1089d349c9ba356" title="Check for packet flow hash.">odp_packet_has_flow_hash()</a> to check if packet contains a hash.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Hash value</dd></dl> |
| <dl class="section note"><dt>Note</dt><dd>Zero can be a valid hash value. </dd> |
| <dd> |
| The hash algorithm and the header fields defining the flow (therefore used for hashing) is platform dependent. It is possible a platform doesn't generate any hash at all. </dd> |
| <dd> |
| The returned hash is either the platform generated (if any), or if <a class="el" href="group__odp__packet.html#ga9e3e4ee951b171713192b4d6fd0dab9a" title="Set packet flow hash value.">odp_packet_flow_hash_set()</a> were called then the value set there. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga9e3e4ee951b171713192b4d6fd0dab9a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga9e3e4ee951b171713192b4d6fd0dab9a">◆ </a></span>odp_packet_flow_hash_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_flow_hash_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>flow_hash</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set packet flow hash value. </p> |
| <p>Store the packet flow hash for the packet and sets the flow hash flag. This enables (but does not require!) application to reflect packet header changes in the hash.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">flow_hash</td><td>Hash value to set</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section note"><dt>Note</dt><dd>If the platform needs to keep the original hash value, it has to maintain it internally. Overwriting the platform provided value doesn't change how the platform handles this packet after it. </dd> |
| <dd> |
| The application is not required to keep this hash valid for new or modified packets. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gaeac50a7feadc136a33839222ce55ad6a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaeac50a7feadc136a33839222ce55ad6a">◆ </a></span>odp_packet_ts()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="structodp__time__t.html">odp_time_t</a> odp_packet_ts </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet timestamp. </p> |
| <p>Returns timestamp value recorded into the packet. Use <a class="el" href="group__odp__packet.html#ga1937a99d94a87387d8700e850a013dd3" title="Check for packet timestamp.">odp_packet_has_ts()</a> to check if the packet has a valid timestamp. Packet input uses packet IO interface specific time source and thus timestamp (or nanosecond) values from one interface cannot be mixed with values from another interface (or time source in general). Packet IO interface timestamp resolution can be checked with <a class="el" href="group__odp__packet__io.html#ga1f75fba52ac4d74a2a73a678b33eb6eb" title="Packet IO timestamp resolution in hertz.">odp_pktio_ts_res()</a> and current time with <a class="el" href="group__odp__packet__io.html#gaaf1982363c29afa19d8e2acdb10163d9" title="Current packet IO time and global time.">odp_pktio_time()</a>.</p> |
| <p>Time API operations (e.g. <a class="el" href="group__odp__time.html#ga1a5b41e057216483b4843120631f869a" title="Time difference.">odp_time_diff()</a>) can be used with packet timestamp values or when converting those into nanoseconds (<a class="el" href="group__odp__time.html#ga04eed146c4559fb906766c4fbd4c2460" title="Convert time to nanoseconds.">odp_time_to_ns()</a>).</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Timestamp value </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gadd35a854f133d3f09f4170da27e73e83"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gadd35a854f133d3f09f4170da27e73e83">◆ </a></span>odp_packet_ts_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_ts_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structodp__time__t.html">odp_time_t</a> </td> |
| <td class="paramname"><em>timestamp</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set packet timestamp. </p> |
| <p>Stores timestamp value and sets timestamp flag for the packet.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">timestamp</td><td>Timestamp value</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#gaeac50a7feadc136a33839222ce55ad6a" title="Packet timestamp.">odp_packet_ts()</a>, <a class="el" href="group__odp__packet.html#ga1937a99d94a87387d8700e850a013dd3" title="Check for packet timestamp.">odp_packet_has_ts()</a>, <a class="el" href="group__odp__packet__io.html#ga4043430ef50ba1883d6e3d9da9213f6f" title="Convert nanoseconds to packet IO time.">odp_pktio_ts_from_ns()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga80e080846fddfed7bad8d315141a5339"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga80e080846fddfed7bad8d315141a5339">◆ </a></span>odp_packet_ts_request()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_ts_request </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>enable</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Request Tx timestamp capture. </p> |
| <p>Control whether timestamp needs to be captured when this packet is transmitted. By default, Tx timestamping is disabled. This API is allowed to be called always, but the Tx timestamp is not captured if the output packet IO device is not configured to enable timestamping.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">enable</td><td>0: do not capture timestamp on Tx 1: capture timestamp on Tx</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet__io.html#ga49733cf1cfdaa6360292395f1f94e7ae" title="Read last captured Tx timestamp of a packet if available and clear it for next timestamp.">odp_pktout_ts_read()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga0597c60af7a4a129ce6a1733f62fd8aa"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga0597c60af7a4a129ce6a1733f62fd8aa">◆ </a></span>odp_packet_color()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#gac19d4ea0c0918ffa4a804ea83c5ab131">odp_packet_color_t</a> odp_packet_color </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get packet color. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>packet color </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga0521296b580f66fff46a99d08299b503"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga0521296b580f66fff46a99d08299b503">◆ </a></span>odp_packet_color_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_color_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gac19d4ea0c0918ffa4a804ea83c5ab131">odp_packet_color_t</a> </td> |
| <td class="paramname"><em>color</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set packet color. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">color</td><td>Color to set </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga57c1076ac5facca4e033980e4a90e0c7"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga57c1076ac5facca4e033980e4a90e0c7">◆ </a></span>odp_packet_drop_eligible()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__std.html#ga0b2a7ca83ccc7af0346db309d8c06d6f">odp_bool_t</a> odp_packet_drop_eligible </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get drop eligible status. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Packet drop eligibility status </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>Packet is not drop eligible </td></tr> |
| <tr><td class="paramname">1</td><td>Packet is drop </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga5f580686728b69ce273c2062a1fd8659"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga5f580686728b69ce273c2062a1fd8659">◆ </a></span>odp_packet_drop_eligible_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_drop_eligible_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__std.html#ga0b2a7ca83ccc7af0346db309d8c06d6f">odp_bool_t</a> </td> |
| <td class="paramname"><em>status</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set drop eligible status. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">status</td><td>Drop eligibility status </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga2212096ea59f11056cf0aeafb4bb8cdc"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga2212096ea59f11056cf0aeafb4bb8cdc">◆ </a></span>odp_packet_shaper_len_adjust()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int8_t odp_packet_shaper_len_adjust </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get shaper length adjustment. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Shaper adjustment (-128..127) </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga82bf719e0fffac6fc235c0e887f8f4e4"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga82bf719e0fffac6fc235c0e887f8f4e4">◆ </a></span>odp_packet_shaper_len_adjust_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_shaper_len_adjust_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int8_t </td> |
| <td class="paramname"><em>adj</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set shaper length adjustment. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">adj</td><td>Signed adjustment value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga1a23df15159f336bc48735071b7d859c"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga1a23df15159f336bc48735071b7d859c">◆ </a></span>odp_packet_cls_mark()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint64_t odp_packet_cls_mark </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Classification mark value. </p> |
| <p>Get the value of the CLS mark of the packet. The mark value is zero by default, but may be changed by the classification subsystem.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>mark value</dd></dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="structodp__cls__capability__t.html#a0fd3282d86141ca13782dd6a8216bd98" title="Maximum value of odp_pmr_create_opt_t::mark.">odp_cls_capability_t::max_mark</a>, <a class="el" href="structodp__pmr__create__opt__t.html#a1c1868ebea502a76555860f57cb52d59" title="Classification mark value.">odp_pmr_create_opt_t::mark</a>, <a class="el" href="group__odp__classification.html#ga30a5d9b5b809b3f674c3061c2fdfafb2" title="Create a packet matching rule with options.">odp_cls_pmr_create_opt()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gade29af4bf83690e79712d3b77bca9a71"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gade29af4bf83690e79712d3b77bca9a71">◆ </a></span>odp_packet_lso_request()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_lso_request </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const <a class="el" href="structodp__packet__lso__opt__t.html">odp_packet_lso_opt_t</a> * </td> |
| <td class="paramname"><em>lso_opt</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Request Large Send Offload (LSO) for a packet. </p> |
| <p>Setup packet metadata which requests LSO segmentation to be performed during packet output. The selected LSO profile specifies details of the segmentation operation to be done. Depending on LSO profile options, additional metadata (e.g. L3/L4 protocol header offsets) may need to be set on the packet.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">lso_opt</td><td>LSO options</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>On success </td></tr> |
| <tr><td class="paramname"><0</td><td>On failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga493237b55fac6115124f1396a220ad17"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga493237b55fac6115124f1396a220ad17">◆ </a></span>odp_packet_lso_request_clr()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_lso_request_clr </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Clear LSO request from a packet. </p> |
| <p>Clears packet metadata not to request LSO segmentation.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gad79cf50f43970652da88316fd2c5cb61"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gad79cf50f43970652da88316fd2c5cb61">◆ </a></span>odp_packet_has_lso_request()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_lso_request </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check if LSO is requested for the packet. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>LSO is requested </td></tr> |
| <tr><td class="paramname">0</td><td>LSO is not requested </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga1e02b1e46abc9e39d3d256e3aa080c1e"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga1e02b1e46abc9e39d3d256e3aa080c1e">◆ </a></span>odp_packet_payload_offset()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_payload_offset </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Payload data offset. </p> |
| <p>Returns offset to the start of payload data. Packet data before this offset is considered as protocol headers. The offset is calculated from the current <a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a> position in bytes. Data start position updating functions (e.g. <a class="el" href="group__odp__packet.html#ga2ed856750508efaae13d6be7aaa93695" title="Push out packet head.">odp_packet_push_head()</a>) do not modify the offset, but user sets a new value when needed.</p> |
| <p>Packet parsing does not set this offset. Initial offset value is undefined. Application may utilize the offset for internal purposes or when requesting LSO segmentation for the packet.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Payload data offset </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_PACKET_OFFSET_INVALID</td><td>Payload data offset has not been set </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gaf7cba8183719acdb53389fd38566f476"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaf7cba8183719acdb53389fd38566f476">◆ </a></span>odp_packet_payload_offset_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_payload_offset_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>offset</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set payload data start offset. </p> |
| <p>Set offset to the start of payload data. The offset is calculated from the current <a class="el" href="group__odp__packet.html#ga433ba21e3c83c6d4d9831c9e732b63de" title="Packet data pointer.">odp_packet_data()</a> position in bytes. Offset must not exceed packet data length. Offset is not modified on an error.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">offset</td><td>Payload data start offset (0 ... <a class="el" href="group__odp__packet.html#ga68c47fd0c2a764b01b11390974748cc6" title="Packet data length.">odp_packet_len()</a>-1) or ODP_PACKET_OFFSET_INVALID</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gac429a8ec2d57e17022174155a18c2728"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gac429a8ec2d57e17022174155a18c2728">◆ </a></span>odp_packet_aging_tmo_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_aging_tmo_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint64_t </td> |
| <td class="paramname"><em>tmo_ns</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Enable or disable Tx packet aging. </p> |
| <p>Enable or disable Tx packet drop based on packet age. When enabled, packet will be dropped if it is in Tx pktout queue or traffic shapers/schedulers for longer than timeout set.</p> |
| <p>When tmo_ns is !0: Aging is enabled 0: Aging is disabled</p> |
| <p>Aging is disabled by default. Maximum tmo value is defined by max_tx_aging_tmo_ns capa.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">tmo_ns</td><td>Packet aging drop timeout in nsec. When 0, aging drop is disabled (default).</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="structodp__pktio__capability__t.html#a9ac97decbfc7d6f457f9cedd973d6220" title="Max Tx aging timeout in nano seconds supported when packet aging feature is supported.">odp_pktio_capability_t::max_tx_aging_tmo_ns</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gafca967f91a3661b1b7f21a697130f565"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gafca967f91a3661b1b7f21a697130f565">◆ </a></span>odp_packet_aging_tmo()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint64_t odp_packet_aging_tmo </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check if packet has Tx aging drop enabled. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Aging drop timeout if enabled. </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">>0</td><td>Aging drop timeout in nano seconds and implies aging drop is enabled. </td></tr> |
| <tr><td class="paramname">0</td><td>If Aging drop is disabled. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga0e56e8bc389284b3193c51f0ab63ebad"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga0e56e8bc389284b3193c51f0ab63ebad">◆ </a></span>odp_packet_tx_compl_request()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_tx_compl_request </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const <a class="el" href="structodp__packet__tx__compl__opt__t.html">odp_packet_tx_compl_opt_t</a> * </td> |
| <td class="paramname"><em>opt</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Request packet transmit completion. </p> |
| <p>Enables or disables packet transmit completion request for the packet. Completion may be requested either in event (<a class="el" href="group__odp__packet.html#gga4bb031f9e7fc5ba10c67a713afdb2e61a7ad3c421b06b807be8ec874ab12a4627" title="Enable packet transmit completion event.">ODP_PACKET_TX_COMPL_EVENT</a>) or poll (<a class="el" href="group__odp__packet.html#gga4bb031f9e7fc5ba10c67a713afdb2e61a4053d17c20003489da855450ddffff0e" title="Enable packet transmit completion check through polling.">ODP_PACKET_TX_COMPL_POLL</a>) mode. When event mode is enabled, an event of type ODP_EVENT_PACKET_TX_COMPL will be sent to the destination queue to signal transmit completion. When poll mode is enabled, <a class="el" href="group__odp__packet.html#ga1f61efc592270b109e3e7fa526ab2554" title="Check packet transmit completion.">odp_packet_tx_compl_done()</a> is used with the provided completion identifier to check the completion. In both cases, transmit completion is reported only after pktio interface has finished processing the packet.</p> |
| <p>A previously enabled request can be disabled by setting the mode to ODP_PACKET_TX_COMPL_DISABLED. Transmit completion request is disabled by default.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">opt</td><td>Packet transmit completion request options</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>On success </td></tr> |
| <tr><td class="paramname"><0</td><td>On failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga759de8fdd15f9a731fb32117368bbf31"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga759de8fdd15f9a731fb32117368bbf31">◆ </a></span>odp_packet_has_tx_compl_request()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_tx_compl_request </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check if packet transmit completion is requested. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Transmit completion is requested </td></tr> |
| <tr><td class="paramname">0</td><td>Transmit completion is not requested </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga97705f949edaba2b3cc99b7ae4066e6a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga97705f949edaba2b3cc99b7ae4066e6a">◆ </a></span>odp_packet_free_ctrl_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_free_ctrl_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga187fb105f4575928e18c7438c3070be1">odp_packet_free_ctrl_t</a> </td> |
| <td class="paramname"><em>ctrl</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set packet free control option. </p> |
| <p>This option enables application to control if a packet is freed/not freed back into a pool after an ODP offload feature has finished processing it. The option does not have an effect on <a class="el" href="group__odp__packet.html#ga8a5e2cd674828c5415f3695f266347d7" title="Free packet.">odp_packet_free()</a> or other direct free calls. It affects only packets that are sent directly through a packet output interface queue (<a class="el" href="structodp__pktout__queue__t.html">odp_pktout_queue_t</a> or odp_queue_t), also when packets are LSO offloaded. Packets transmitted through inline IPsec or TM are not affected.</p> |
| <p>Packet output interface frees transmitted packets by default. When the option is set to <a class="el" href="group__odp__packet.html#gga187fb105f4575928e18c7438c3070be1a0bb9ee9d9f41721e3d9e58f9da1d4eef" title="Don't free packet after processing it.">ODP_PACKET_FREE_CTRL_DONT_FREE</a>, packet output will not free the packet after transmit and application may reuse or free the packet as soon as its transmission is complete (see e.g. <a class="el" href="group__odp__packet.html#ga1f61efc592270b109e3e7fa526ab2554" title="Check packet transmit completion.">odp_packet_tx_compl_done()</a>). Check packet IO interface capability free_ctrl.dont_free (<a class="el" href="structodp__pktio__capability__t.html#a16fcf4d84bd206f8704298db05af7ac6" title="Supported packet free control options.">odp_pktio_capability_t.free_ctrl</a>) for the option support. When an interface does not support the option, it ignores the value.</p> |
| <p>The option must not be enabled on packets that have multiple references. The default value is <a class="el" href="group__odp__packet.html#gga187fb105f4575928e18c7438c3070be1ae92c24b8a0bceecc2c693b55927159f4" title="Packet free control disabled.">ODP_PACKET_FREE_CTRL_DISABLED</a>.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">ctrl</td><td>Packet free control option value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga31ae604f4da6a794e7607dc958785ff0"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga31ae604f4da6a794e7607dc958785ff0">◆ </a></span>odp_packet_free_ctrl()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#ga187fb105f4575928e18c7438c3070be1">odp_packet_free_ctrl_t</a> odp_packet_free_ctrl </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Returns packet free control option value. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The current value of the packet free control option </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gaf09bbf2a6d51e4742834a8a8c5492740"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaf09bbf2a6d51e4742834a8a8c5492740">◆ </a></span>odp_packet_proto_stats_request()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_proto_stats_request </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structodp__packet__proto__stats__opt__t.html">odp_packet_proto_stats_opt_t</a> * </td> |
| <td class="paramname"><em>opt</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Request packet proto stats. </p> |
| <p>The statistics enabled in the proto stats object are updated for the packet in packet output when the packet is transmitted or dropped. The statistics update is done as the last step of output processing after possible packet transformations (e.g. fragmentation, IPsec) that may occur. If a packet is fragmented or segmented to multiple packets as part of output processing, all the resulting packets inherit the proto stats object association from the original packet.</p> |
| <p>The relevant octet counts will be updated with the actual packet length at the time of transmission or drop plus the respective adjustment value passed in the 'opt' parameter. The octet counts thus include possible additional headers added by ODP during packet output (e.g. ESP header added by inline outbound IPsec processing). Ethernet padding and FCS are not included in the octet counts. The adjustment value is added only if the respective capability field is true and otherwise ignored.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">opt</td><td>Proto stats options. If NULL, then proto stats update is disabled for this packet.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="structodp__proto__stats__capability__t.html#a21ef42cf46da8e24f795328d657ab859" title="Tx capabilities.">odp_proto_stats_capability_t::tx</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga633cef4c000431c0d609bed069539cf0"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga633cef4c000431c0d609bed069539cf0">◆ </a></span>odp_packet_proto_stats()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__proto__stats.html#gaccde85c2d2f84f16769fb92e25399614">odp_proto_stats_t</a> odp_packet_proto_stats </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get proto stats object. </p> |
| <p>Get the proto stats object associated with the given packet.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Proto stats object handle or ODP_PROTO_STATS_INVALID if not set. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga30f5ecc1cb4cd111fc9f64f150f84c8a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga30f5ecc1cb4cd111fc9f64f150f84c8a">◆ </a></span>odp_packet_vector_from_event()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> odp_packet_vector_from_event </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__event.html#ga51942509e0d072db63a565cbc1e7204d">odp_event_t</a> </td> |
| <td class="paramname"><em>ev</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get packet vector handle from event. </p> |
| <p>Converts an ODP_EVENT_PACKET_VECTOR type event to a packet vector handle</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">ev</td><td>Event handle </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Packet vector handle</dd></dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__event.html#ga4bd59cdf228fe0c36b8e04fe122e047a" title="Event type of an event.">odp_event_type()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga1d1c28d3de02f33e5c30a739c0b59cc5"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga1d1c28d3de02f33e5c30a739c0b59cc5">◆ </a></span>odp_packet_vector_to_event()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__event.html#ga51942509e0d072db63a565cbc1e7204d">odp_event_t</a> odp_packet_vector_to_event </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> </td> |
| <td class="paramname"><em>pktv</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Convert packet vector handle to event. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pktv</td><td>Packet vector handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Event handle </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga8d4eac978150e39836ceb3518375deda"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga8d4eac978150e39836ceb3518375deda">◆ </a></span>odp_packet_vector_alloc()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> odp_packet_vector_alloc </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> </td> |
| <td class="paramname"><em>pool</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Allocate a packet vector from a packet vector pool. </p> |
| <p>Allocates a packet vector from the specified packet vector pool. The pool must have been created with the ODP_POOL_VECTOR type.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pool</td><td>Packet vector pool handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Handle of allocated packet vector </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_PACKET_VECTOR_INVALID</td><td>Packet vector could not be allocated</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section note"><dt>Note</dt><dd>A newly allocated vector shall not contain any packets, instead, alloc operation shall reserve the space for odp_pool_param_t::vector::max_size packets. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga9780a47c0d1ba64c4f179f0f5a864a59"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga9780a47c0d1ba64c4f179f0f5a864a59">◆ </a></span>odp_packet_vector_free()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_vector_free </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> </td> |
| <td class="paramname"><em>pktv</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Free packet vector. </p> |
| <p>Frees the packet vector into the packet vector pool it was allocated from.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pktv</td><td>Packet vector handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section note"><dt>Note</dt><dd>This API just frees the vector, not any packets inside the vector. Application can use <a class="el" href="group__odp__event.html#ga1622f73356c325f625db747cb3badf8d" title="Free event.">odp_event_free()</a> to free the vector and packets inside the vector. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gabd27c442a680f0b8f1e8dad0918b6091"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gabd27c442a680f0b8f1e8dad0918b6091">◆ </a></span>odp_packet_vector_tbl()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_vector_tbl </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> </td> |
| <td class="paramname"><em>pktv</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> ** </td> |
| <td class="paramname"><em>pkt_tbl</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get packet vector table. </p> |
| <p>Packet vector table is an array of packets (odp_packet_t) stored in contiguous memory location. Upon completion of this API, the implementation returns the packet table pointer in pkt_tbl.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir"></td><td class="paramname">pktv</td><td>Packet vector handle </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">pkt_tbl</td><td>Points to packet vector table</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Number of packets available in the vector.</dd></dl> |
| <dl class="section note"><dt>Note</dt><dd>When pktin subsystem is producing the packet vectors, <a class="el" href="structodp__pktin__vector__config__t.html#ad842cadcf8f34dc34d58d5dddc32f098" title="Vector pool.">odp_pktin_vector_config_t::pool</a> shall be used to configure the pool to form the vector table.</dd> |
| <dd> |
| The maximum number of packets this vector can hold is defined by odp_pool_param_t::vector::max_size. The return value of this function will not be greater than odp_pool_param_t::vector::max_size</dd> |
| <dd> |
| The pkt_tbl points to the packet vector table. Application can edit the packet handles in the table directly (up to odp_pool_param_t::vector::max_size). Application must update the size of the table using <a class="el" href="group__odp__packet.html#gadf7995703ea6be6ac2e9e72b4e0c1650" title="Set the number of packets stored in a vector.">odp_packet_vector_size_set()</a> when there is a change in the size of the vector.</dd> |
| <dd> |
| Invalid packet handles (ODP_PACKET_INVALID) are not allowed to be stored in the table to allow consumers of odp_packet_vector_t handle to have optimized implementation. So consumption of packets in the middle of the vector would call for moving the remaining packets up to form a contiguous array of packets and update the size of the new vector using <a class="el" href="group__odp__packet.html#gadf7995703ea6be6ac2e9e72b4e0c1650" title="Set the number of packets stored in a vector.">odp_packet_vector_size_set()</a>.</dd> |
| <dd> |
| The table memory is backed by a vector pool buffer. The ownership of the table memory is linked to the ownership of the event. I.e. after sending the event to a queue, the sender loses ownership to the table also. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gaf0afdf0e46614b32f489575e918936fe"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaf0afdf0e46614b32f489575e918936fe">◆ </a></span>odp_packet_vector_size()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint32_t odp_packet_vector_size </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> </td> |
| <td class="paramname"><em>pktv</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Number of packets in a vector. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pktv</td><td>Packet vector handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The number of packets available in the vector </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gadf7995703ea6be6ac2e9e72b4e0c1650"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gadf7995703ea6be6ac2e9e72b4e0c1650">◆ </a></span>odp_packet_vector_size_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_vector_size_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> </td> |
| <td class="paramname"><em>pktv</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>size</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set the number of packets stored in a vector. </p> |
| <p>Update the number of packets stored in a vector. When the application is producing a packet vector, this function shall be used by the application to set the number of packets available in this vector.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pktv</td><td>Packet vector handle </td></tr> |
| <tr><td class="paramname">size</td><td>Number of packets in this vector</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section note"><dt>Note</dt><dd>The maximum number of packets this vector can hold is defined by odp_pool_param_t::vector::max_size. The size value must not be greater than odp_pool_param_t::vector::max_size</dd> |
| <dd> |
| All handles in the vector table (0 .. size - 1) need to be valid packet handles.</dd></dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#gabd27c442a680f0b8f1e8dad0918b6091" title="Get packet vector table.">odp_packet_vector_tbl()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga595fb8408a803ae4ffe1b82b3672e7f7"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga595fb8408a803ae4ffe1b82b3672e7f7">◆ </a></span>odp_packet_vector_user_area()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_vector_user_area </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> </td> |
| <td class="paramname"><em>pktv</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet vector user area. </p> |
| <p>Returns pointer to the user area associated with the packet vector. Size of the area is fixed and defined in vector pool parameters.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pktv</td><td>Packet vector handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Pointer to the user area of the packet vector </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">NULL</td><td>The packet vector does not have user area </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gaebda888140179cc3703f1ce074b696d9"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaebda888140179cc3703f1ce074b696d9">◆ </a></span>odp_packet_vector_user_flag()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_vector_user_flag </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> </td> |
| <td class="paramname"><em>pktv</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check user flag. </p> |
| <p>Implementation clears user flag during new packet vector creation (e.g. alloc and packet input) and reset. User may set the flag with <a class="el" href="group__odp__packet.html#ga6a6e7daccc14954b218069d875e49086" title="Set user flag.">odp_packet_vector_user_flag_set()</a>. Implementation never sets the flag, only clears it. The flag may be useful e.g. to mark when the user area content is valid.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pktv</td><td>Packet vector handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>User flag is clear </td></tr> |
| <tr><td class="paramname">>0</td><td>User flag is set </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga6a6e7daccc14954b218069d875e49086"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga6a6e7daccc14954b218069d875e49086">◆ </a></span>odp_packet_vector_user_flag_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_vector_user_flag_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> </td> |
| <td class="paramname"><em>pktv</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set user flag. </p> |
| <p>Set (or clear) the user flag.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pktv</td><td>Packet vector handle </td></tr> |
| <tr><td class="paramname">val</td><td>New value for the flag. Zero clears the flag, other values set the flag. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga5862d011e8ed2fd9991b4c76ca590010"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga5862d011e8ed2fd9991b4c76ca590010">◆ </a></span>odp_packet_vector_valid()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_vector_valid </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> </td> |
| <td class="paramname"><em>pktv</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check that packet vector is valid. </p> |
| <p>This function can be used for debugging purposes to check if a packet vector handle represents a valid packet vector. The level of error checks depends on the implementation. Considerable number of cpu cycles may be consumed depending on the level. The call should not crash if the packet vector handle is corrupted.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pktv</td><td>Packet vector handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>Packet vector is not valid </td></tr> |
| <tr><td class="paramname">1</td><td>Packet vector is valid </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga1ec765e8b4110a3c649aa9b58bd78873"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga1ec765e8b4110a3c649aa9b58bd78873">◆ </a></span>odp_packet_vector_pool()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__pool.html#ga6dca86557a195eff4ce022fa6c38f252">odp_pool_t</a> odp_packet_vector_pool </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> </td> |
| <td class="paramname"><em>pktv</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Packet vector pool. </p> |
| <p>Returns handle to the packet vector pool where the packet vector was allocated from.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pktv</td><td>Packet vector handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Packet vector pool handle </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gaa2a3aba713553d99bd4d369cdf3676e7"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaa2a3aba713553d99bd4d369cdf3676e7">◆ </a></span>odp_packet_vector_print()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_vector_print </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> </td> |
| <td class="paramname"><em>pktv</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Print packet vector debug information. </p> |
| <p>Print all packet vector debug information to ODP log.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pktv</td><td>Packet vector handle </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gaaec23edd4639703d996d65e388092333"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaaec23edd4639703d996d65e388092333">◆ </a></span>odp_packet_vector_to_u64()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint64_t odp_packet_vector_to_u64 </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga52b924c9f322081544bb8fc21f695eca">odp_packet_vector_t</a> </td> |
| <td class="paramname"><em>pktv</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get printable value for packet vector handle. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pktv</td><td>Handle to be converted for debugging</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>uint64_t value that can be used to print/display this handle </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga97dad01c0769ba31fc9ad8ae7779d2d0"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga97dad01c0769ba31fc9ad8ae7779d2d0">◆ </a></span>odp_packet_reass_status()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#ga921fa9035d7f9f3989afbcc7bcdfb6fd">odp_packet_reass_status_t</a> odp_packet_reass_status </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check reassembly status of the packet. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Reassembly status </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gad5ed46d03733647995ba81168b2d201d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gad5ed46d03733647995ba81168b2d201d">◆ </a></span>odp_packet_tx_compl_from_event()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__packet.html#gad876550d61f3e496eed591ea98bbf38d">odp_packet_tx_compl_t</a> odp_packet_tx_compl_from_event </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__event.html#ga51942509e0d072db63a565cbc1e7204d">odp_event_t</a> </td> |
| <td class="paramname"><em>ev</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get packet Tx completion handle from event. </p> |
| <p>Converts an ODP_EVENT_PACKET_TX_COMPL type event to packet Tx completion handle.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">ev</td><td>Event handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Packet Tx completion handle</dd></dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__event.html#ga4bd59cdf228fe0c36b8e04fe122e047a" title="Event type of an event.">odp_event_type()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gac1788b5527fec6c43fa6d42c8b337278"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gac1788b5527fec6c43fa6d42c8b337278">◆ </a></span>odp_packet_tx_compl_to_event()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__event.html#ga51942509e0d072db63a565cbc1e7204d">odp_event_t</a> odp_packet_tx_compl_to_event </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gad876550d61f3e496eed591ea98bbf38d">odp_packet_tx_compl_t</a> </td> |
| <td class="paramname"><em>tx_compl</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Convert packet Tx completion to event. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">tx_compl</td><td>Packet Tx completion</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Event handle </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gad76137e77418e1bba2e866f92d3c6295"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gad76137e77418e1bba2e866f92d3c6295">◆ </a></span>odp_packet_tx_compl_free()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_tx_compl_free </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gad876550d61f3e496eed591ea98bbf38d">odp_packet_tx_compl_t</a> </td> |
| <td class="paramname"><em>tx_compl</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Free packet Tx completion. </p> |
| <p>Frees the packet Tx completion back to platform. It frees packet Tx completion that gets allocated as part of packet Tx completion request for a given packet.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">tx_compl</td><td>Packet Tx completion handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga0e56e8bc389284b3193c51f0ab63ebad" title="Request packet transmit completion.">odp_packet_tx_compl_request()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gaa6b6edef3e086212b414593a1709209f"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaa6b6edef3e086212b414593a1709209f">◆ </a></span>odp_packet_tx_compl_user_ptr()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_packet_tx_compl_user_ptr </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gad876550d61f3e496eed591ea98bbf38d">odp_packet_tx_compl_t</a> </td> |
| <td class="paramname"><em>tx_compl</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>User context pointer. </p> |
| <p>Return user context pointer from packet Tx completion event. This is the same value set to packet using <a class="el" href="group__odp__packet.html#gabba756536217212e5570b73db24d00c8" title="Set user context pointer.">odp_packet_user_ptr_set()</a>.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">tx_compl</td><td>Packet Tx completion handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>User context pointer</dd></dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#gabba756536217212e5570b73db24d00c8" title="Set user context pointer.">odp_packet_user_ptr_set()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga1f61efc592270b109e3e7fa526ab2554"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga1f61efc592270b109e3e7fa526ab2554">◆ </a></span>odp_packet_tx_compl_done()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_tx_compl_done </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet__io.html#gab2c9857b9be70ca49962a8f22d3cb657">odp_pktio_t</a> </td> |
| <td class="paramname"><em>pktio</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>compl_id</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check packet transmit completion. </p> |
| <p>Checks if a previously sent packet with a ODP_PACKET_TX_COMPL_POLL type transmit completion request (see <a class="el" href="structodp__packet__tx__compl__opt__t.html" title="Packet transmit completion request options.">odp_packet_tx_compl_opt_t</a>) has been transmitted. The packet send function call clears completion identifier status, and 0 is returned while the transmit is in progress. When >0 is returned, transmit of the packet is complete and the completion identifier may be reused for another transmit.</p> |
| <p>When transmit of a packet is complete, it indicates that transmit of other packets sent before the packet through the same queue have also completed.</p> |
| <p>Returns initially 0 for all configured completion identifiers.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pktio</td><td>Packet IO interface that was used to send the packet </td></tr> |
| <tr><td class="paramname">compl_id</td><td>Completion identifier that was used in the transmit completion request</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">>0</td><td>Packet transmit is complete </td></tr> |
| <tr><td class="paramname">0</td><td>Packet transmit is not complete </td></tr> |
| <tr><td class="paramname"><0</td><td>Failed to read packet transmit status </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gad880f7004841de43ab0ae37ad428b0ca"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gad880f7004841de43ab0ae37ad428b0ca">◆ </a></span>odp_packet_print()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_print </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Print packet debug information. </p> |
| <p>Print all packet debug information to the ODP log.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga023c8f0f47ffef701b8ce6f5264d028a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga023c8f0f47ffef701b8ce6f5264d028a">◆ </a></span>odp_packet_print_data()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_print_data </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>len</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Print packet data. </p> |
| <p>Print packet debug information with packet data to the ODP log. Operation prints 'len' bytes of packet data starting from 'offset' byte. Offset plus length must not exceed packet length (<a class="el" href="group__odp__packet.html#ga68c47fd0c2a764b01b11390974748cc6" title="Packet data length.">odp_packet_len()</a>).</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">offset</td><td>Byte offset into the packet </td></tr> |
| <tr><td class="paramname">len</td><td>Number of bytes to print </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gad18f8814ec61cc711dc3d0070b73478b"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gad18f8814ec61cc711dc3d0070b73478b">◆ </a></span>odp_packet_is_valid()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_is_valid </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check that packet is valid. </p> |
| <p>This function can be used for debugging purposes to check if a packet handle represents a valid packet. The level of error checks depends on the implementation. Considerable number of cpu cycles may be consumed depending on the level. The call should not crash if the packet handle is corrupted.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>Packet is not valid </td></tr> |
| <tr><td class="paramname">1</td><td>Packet is valid </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga703e72cf0c9f7c02fa7c67ee52db97e8"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga703e72cf0c9f7c02fa7c67ee52db97e8">◆ </a></span>odp_packet_to_u64()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint64_t odp_packet_to_u64 </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get printable value for packet handle. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Handle to be converted for debugging</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>uint64_t value that can be used to print/display this handle </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gad376133cffb1d964b441e4ed5e7311b9"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gad376133cffb1d964b441e4ed5e7311b9">◆ </a></span>odp_packet_seg_to_u64()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint64_t odp_packet_seg_to_u64 </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#ga96879753fc2a295c4f6d3870f787f565">odp_packet_seg_t</a> </td> |
| <td class="paramname"><em>seg</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get printable value for packet segment handle. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">seg</td><td>Handle to be converted for debugging</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>uint64_t value that can be used to print/display this handle </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga17519fb947ac4b1c2a147d79a88898ae"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga17519fb947ac4b1c2a147d79a88898ae">◆ </a></span>odp_packet_tx_compl_to_u64()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint64_t odp_packet_tx_compl_to_u64 </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gad876550d61f3e496eed591ea98bbf38d">odp_packet_tx_compl_t</a> </td> |
| <td class="paramname"><em>tx_compl</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get printable value for packet Tx completion handle. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">tx_compl</td><td>Handle to be converted for debugging</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>uint64_t value that can be used to print/display this handle </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga6a0bceb8c3c555f52638561dfce5f785"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga6a0bceb8c3c555f52638561dfce5f785">◆ </a></span>odp_packet_has_error()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_error </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for all parse errors in packet. </p> |
| <p>Check if packet parsing has found any errors in the packet. The level of error checking depends on the parse configuration (e.g. included layers and checksums). Protocol layer functions (e.g. <a class="el" href="group__odp__packet.html#ga0aa1a0f7db60d79c1fdf8453aac52248" title="Check for layer 3 protocols.">odp_packet_has_l3()</a>) indicate which layers have been checked, and layer error functions (e.g. <a class="el" href="group__odp__packet.html#gac8faba8bf82ea23f85963e27f0d5e6b8" title="Check for errors in layer 3.">odp_packet_has_l3_error()</a>) which layers have errors.</p> |
| <p>If packet subtype is ODP_EVENT_PACKET_IPSEC, <a class="el" href="group__odp__packet.html#ga6a0bceb8c3c555f52638561dfce5f785" title="Check for all parse errors in packet.">odp_packet_has_error()</a> would indicate parsing errors after IPSEC processing. IPSEC errors/warnings need to be checked using <a class="el" href="group__odp__ipsec.html#gafff715b7d787c085f492eca8d77ed8c6" title="Get IPSEC operation results from an IPSEC processed packet.">odp_ipsec_result()</a>.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet has errors </td></tr> |
| <tr><td class="paramname">0</td><td>No errors were found </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga8cb2fae71b65569db938f8ccdd55fbd9"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga8cb2fae71b65569db938f8ccdd55fbd9">◆ </a></span>odp_packet_has_l2_error()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_l2_error </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for errors in layer 2. </p> |
| <p>When layer 2 is included in the parse configuration, check if any errors were found in layer 2 of the packet.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet has errors in layer 2 </td></tr> |
| <tr><td class="paramname">0</td><td>No errors were found in layer 2 </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gac8faba8bf82ea23f85963e27f0d5e6b8"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gac8faba8bf82ea23f85963e27f0d5e6b8">◆ </a></span>odp_packet_has_l3_error()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_l3_error </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for errors in layer 3. </p> |
| <p>When layer 3 is included in the parse configuration, check if any errors were found in layer 3 of the packet.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet has errors in layer 3 </td></tr> |
| <tr><td class="paramname">0</td><td>No errors found in layer 3 </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gaab6d8b5d962ac021b7a95e69f5691c2e"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaab6d8b5d962ac021b7a95e69f5691c2e">◆ </a></span>odp_packet_has_l4_error()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_l4_error </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for errors in layer 4. </p> |
| <p>When layer 4 is included in the parse configuration, check if any errors were found in layer 4 of the packet.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet has errors in layer 4 </td></tr> |
| <tr><td class="paramname">0</td><td>No errors were found in layer 4 </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga7d214afb24153cf16bf3ae774c3b7d1b"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga7d214afb24153cf16bf3ae774c3b7d1b">◆ </a></span>odp_packet_has_l2()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_l2 </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for layer 2 protocols. </p> |
| <p>When layer 2 is included in the parse configuration, check if packet parsing has found and checked a layer 2 protocol (e.g. Ethernet) in the packet.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>A layer 2 protocol header was found and checked </td></tr> |
| <tr><td class="paramname">0</td><td>No layer 2 protocol was found </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga0aa1a0f7db60d79c1fdf8453aac52248"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga0aa1a0f7db60d79c1fdf8453aac52248">◆ </a></span>odp_packet_has_l3()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_l3 </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for layer 3 protocols. </p> |
| <p>When layer 3 is included in the parse configuration, check if packet parsing has found and checked a layer 3 protocol (e.g. IPv4, IPv6) in the packet.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>A layer 3 protocol header was found and checked </td></tr> |
| <tr><td class="paramname">0</td><td>No layer 3 protocol was found </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga67debe2e28e66e464faeaa3b3ab655e0"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga67debe2e28e66e464faeaa3b3ab655e0">◆ </a></span>odp_packet_has_l4()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_l4 </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for layer 4 protocols. </p> |
| <p>When layer 4 is included in the parse configuration, check if packet parsing has found and checked a layer 4 protocol (e.g. UDP, TCP, SCTP) in the packet.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>A layer 4 protocol header was found and checked </td></tr> |
| <tr><td class="paramname">0</td><td>No layer 4 protocol was found </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga4606474a0e463064e573cfe95acf10ab"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga4606474a0e463064e573cfe95acf10ab">◆ </a></span>odp_packet_has_eth()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_eth </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for Ethernet header. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet contains an Ethernet header </td></tr> |
| <tr><td class="paramname">0</td><td>Packet does not contain an Ethernet header </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga6132c365b59f060a4c9b6d0a9058b55a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga6132c365b59f060a4c9b6d0a9058b55a">◆ </a></span>odp_packet_has_eth_bcast()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_eth_bcast </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for Ethernet broadcast address. </p> |
| <p>ODP recognizes the destination MAC address FF:FF:FF:FF:FF:FF as a broadcast address. All others are considered non-broadcast.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Ethernet destination address is the broadcast address </td></tr> |
| <tr><td class="paramname">0</td><td>Ethernet destination address is not the broadcast address </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gab616ce707cc10fed777f3293ebe2a46b"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gab616ce707cc10fed777f3293ebe2a46b">◆ </a></span>odp_packet_has_eth_mcast()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_eth_mcast </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for Ethernet multicast address. </p> |
| <p>ODP recognizes the destination MAC address as multicast if bit 7 is 1.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Ethernet destination address is a multicast address </td></tr> |
| <tr><td class="paramname">0</td><td>Ethernet destination address is not a multicast address </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gaa3328f5fc60d071022b541bbd0fa03ea"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaa3328f5fc60d071022b541bbd0fa03ea">◆ </a></span>odp_packet_has_jumbo()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_jumbo </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for jumbo frame. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet is a jumbo frame </td></tr> |
| <tr><td class="paramname">0</td><td>Packet is not a jumbo frame </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga9e3e865a777eb4a8e51632cc206e73ce"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga9e3e865a777eb4a8e51632cc206e73ce">◆ </a></span>odp_packet_has_vlan()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_vlan </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for VLAN. </p> |
| <p>Check if packet contains normal or QinQ VLAN header.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet contains a VLAN header </td></tr> |
| <tr><td class="paramname">0</td><td>Packet does not contain a VLAN header </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga4dc1736dab76a84e77b32899d5ce4903"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga4dc1736dab76a84e77b32899d5ce4903">◆ </a></span>odp_packet_has_vlan_qinq()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_vlan_qinq </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for VLAN QinQ (stacked VLAN) </p> |
| <p>Check if packet contains QinQ VLAN header.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet contains a VLAN QinQ header </td></tr> |
| <tr><td class="paramname">0</td><td>Packet does not contain a VLAN QinQ header </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gab10f687e98d43e563d92c1cfaaf81dfe"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gab10f687e98d43e563d92c1cfaaf81dfe">◆ </a></span>odp_packet_has_arp()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_arp </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for ARP. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet contains an ARP message </td></tr> |
| <tr><td class="paramname">0</td><td>Packet does not contain an ARP message </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga34cecc1ff01ab01bbcbd18dd8ef535fb"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga34cecc1ff01ab01bbcbd18dd8ef535fb">◆ </a></span>odp_packet_has_ipv4()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_ipv4 </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for IPv4. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet contains an IPv4 header </td></tr> |
| <tr><td class="paramname">0</td><td>Packet does not contain an IPv4 header </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga6fb9531bd5cbc6a850e294c4dbcd0c27"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga6fb9531bd5cbc6a850e294c4dbcd0c27">◆ </a></span>odp_packet_has_ipv6()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_ipv6 </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for IPv6. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet contains an IPv6 header </td></tr> |
| <tr><td class="paramname">0</td><td>Packet does not contain an IPv6 header </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga356875beb511a9dfd36bc2029947ea54"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga356875beb511a9dfd36bc2029947ea54">◆ </a></span>odp_packet_has_ip_bcast()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_ip_bcast </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for IP broadcast address. </p> |
| <p>For IPv4, ODP recognizes the destination IP address 255.255.255.255 as a broadcast address. All other addresses are considered non-broadcast.</p> |
| <p>For IPv6, no destination addresses are recognized as broadcast addresses.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>IP destination address is a broadcast address </td></tr> |
| <tr><td class="paramname">0</td><td>IP destination address is not a broadcast address </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga107df4e23d6769976828a314ff4582fc"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga107df4e23d6769976828a314ff4582fc">◆ </a></span>odp_packet_has_ip_mcast()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_ip_mcast </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for IP multicast address. </p> |
| <p>For IPv4 ODP recognizes destination IP addresses in the range 224.0.0.0 through 239.255.255.255 as multicast addresses.</p> |
| <p>For IPv6 ODP recognizes destination IP addresses with prefixes FF00:: through FFFF:: as multicast addresses.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>IP destination address is a multicast address </td></tr> |
| <tr><td class="paramname">0</td><td>IP destination address is not a multicast address </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga10b548f0a75e32dd11bbeaf8a8edc345"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga10b548f0a75e32dd11bbeaf8a8edc345">◆ </a></span>odp_packet_has_ipfrag()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_ipfrag </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for IP fragment. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet is an IP fragment </td></tr> |
| <tr><td class="paramname">0</td><td>Packet is not an IP fragment </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga1eee0e77ad58ff572dfabaf95f25cd55"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga1eee0e77ad58ff572dfabaf95f25cd55">◆ </a></span>odp_packet_has_ipopt()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_ipopt </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for IP options. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet contains IP options </td></tr> |
| <tr><td class="paramname">0</td><td>Packet does not contain IP options </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gab6a8f73fcc0f585c4a4443f9f449b69e"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gab6a8f73fcc0f585c4a4443f9f449b69e">◆ </a></span>odp_packet_has_ipsec()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_ipsec </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for IPSec. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet requires IPSec processing </td></tr> |
| <tr><td class="paramname">0</td><td>Packet does not require IPSec processing </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gaebb6c19d5fc2ff3a722947b74e0d38a3"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaebb6c19d5fc2ff3a722947b74e0d38a3">◆ </a></span>odp_packet_has_udp()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_udp </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for UDP. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet contains a UDP header </td></tr> |
| <tr><td class="paramname">0</td><td>Packet does not contain a UDP header </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gac7bc6a3ffc116a7bf86ba827fd579704"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gac7bc6a3ffc116a7bf86ba827fd579704">◆ </a></span>odp_packet_has_tcp()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_tcp </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for TCP. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet contains a TCP header </td></tr> |
| <tr><td class="paramname">0</td><td>Packet does not contain a TCP header </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gac369da93c52238750f9af6b4d331c605"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gac369da93c52238750f9af6b4d331c605">◆ </a></span>odp_packet_has_sctp()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_sctp </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for SCTP. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet contains a SCTP header </td></tr> |
| <tr><td class="paramname">0</td><td>Packet does not contain a SCTP header </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga343ae97d85ff6defcecbf66e32fba4c5"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga343ae97d85ff6defcecbf66e32fba4c5">◆ </a></span>odp_packet_has_icmp()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_icmp </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for ICMP. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet contains an ICMP header </td></tr> |
| <tr><td class="paramname">0</td><td>Packet does not contain an ICMP header </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga7b17fb171e242b31d1089d349c9ba356"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga7b17fb171e242b31d1089d349c9ba356">◆ </a></span>odp_packet_has_flow_hash()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_flow_hash </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for packet flow hash. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet contains a hash value </td></tr> |
| <tr><td class="paramname">0</td><td>Packet does not contain a hash value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga1937a99d94a87387d8700e850a013dd3"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga1937a99d94a87387d8700e850a013dd3">◆ </a></span>odp_packet_has_ts()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_packet_has_ts </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Check for packet timestamp. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">non-zero</td><td>Packet contains a timestamp value </td></tr> |
| <tr><td class="paramname">0</td><td>Packet does not contain a timestamp value</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#gae8946a4ba073b12b61c26b3ee288a114" title="Clear flag for packet timestamp.">odp_packet_has_ts_clr()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga2eedd4c3af15c61c61494899ca59d0ec"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga2eedd4c3af15c61c61494899ca59d0ec">◆ </a></span>odp_packet_has_l2_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_l2_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for L2 header, e.g. </p> |
| <p>ethernet</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga4ff8f445fbba9c391a47d06b5ea1c8ec"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga4ff8f445fbba9c391a47d06b5ea1c8ec">◆ </a></span>odp_packet_has_l3_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_l3_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for L3 header, e.g. </p> |
| <p>IPv4, IPv6</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga235cffc4f9a5c5d7ecbfd690f2659d6f"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga235cffc4f9a5c5d7ecbfd690f2659d6f">◆ </a></span>odp_packet_has_l4_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_l4_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for L4 header, e.g. </p> |
| <p>UDP, TCP, SCTP (also ICMP)</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga55e5a8e03de24831ae630003dbb8003f"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga55e5a8e03de24831ae630003dbb8003f">◆ </a></span>odp_packet_has_eth_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_eth_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for Ethernet header. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga84155aa933a2c27ec2c1d79dd9431861"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga84155aa933a2c27ec2c1d79dd9431861">◆ </a></span>odp_packet_has_eth_bcast_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_eth_bcast_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for Ethernet broadcast address. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gab6e400e84876eebd498abe5b1d7e6068"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gab6e400e84876eebd498abe5b1d7e6068">◆ </a></span>odp_packet_has_eth_mcast_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_eth_mcast_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for Ethernet multicast address. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gadba137d2bd45fdc060f7c0f3716b8742"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gadba137d2bd45fdc060f7c0f3716b8742">◆ </a></span>odp_packet_has_jumbo_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_jumbo_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for jumbo frame. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gae7914c71c103f6e5905a88d6c5845a41"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gae7914c71c103f6e5905a88d6c5845a41">◆ </a></span>odp_packet_has_vlan_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_vlan_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for VLAN. </p> |
| <p>Set when packet contains normal VLAN header. Only one VLAN flag (VLAN/VLAN QinQ) can be set simultaneously.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga19fe37ff7935a1083c6aa346932c866a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga19fe37ff7935a1083c6aa346932c866a">◆ </a></span>odp_packet_has_vlan_qinq_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_vlan_qinq_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for VLAN QinQ (stacked VLAN) </p> |
| <p>Set when packet contains QinQ VLAN header. Only one VLAN flag (VLAN/VLAN QinQ) can be set simultaneously.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gabcb2296cce10ecd7d81e972e5550bdb9"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gabcb2296cce10ecd7d81e972e5550bdb9">◆ </a></span>odp_packet_has_arp_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_arp_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for ARP. </p> |
| <p>Only one of ARP/IPv4/IPv6 flags can be set simultaneously.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gaf968bba615817de2f67c89e3d424431e"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaf968bba615817de2f67c89e3d424431e">◆ </a></span>odp_packet_has_ipv4_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_ipv4_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for IPv4. </p> |
| <p>Only one of ARP/IPv4/IPv6 flags can be set simultaneously.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga0bce56214d6a2914fc03f4eb51532fff"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga0bce56214d6a2914fc03f4eb51532fff">◆ </a></span>odp_packet_has_ipv6_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_ipv6_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for IPv6. </p> |
| <p>Only one of ARP/IPv4/IPv6 flags can be set simultaneously.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga402ddf7d44c470fc1f106daa2c1a4467"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga402ddf7d44c470fc1f106daa2c1a4467">◆ </a></span>odp_packet_has_ip_bcast_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_ip_bcast_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for IP broadcast address. </p> |
| <p>Only one of IP broadcast/multicast flags can be set simultaneously.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gad718b3bf172601b68bb4b371b00a36c3"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gad718b3bf172601b68bb4b371b00a36c3">◆ </a></span>odp_packet_has_ip_mcast_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_ip_mcast_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for IP multicast address. </p> |
| <p>Only one of IP broadcast/multicast flags can be set simultaneously.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gae4cd511c7e3eb6ee91dd9f36d0e8c97d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gae4cd511c7e3eb6ee91dd9f36d0e8c97d">◆ </a></span>odp_packet_has_ipfrag_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_ipfrag_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for IP fragment. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gab9e70b2dbd1eae7a1945ac8d2d0d7def"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gab9e70b2dbd1eae7a1945ac8d2d0d7def">◆ </a></span>odp_packet_has_ipopt_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_ipopt_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for IP options. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga6180f1fa95e6b618cf88f8952620ee43"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga6180f1fa95e6b618cf88f8952620ee43">◆ </a></span>odp_packet_has_ipsec_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_ipsec_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for IPSec. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga7a4b17e9c4ae1b29c1731d0a56ab4d1f"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga7a4b17e9c4ae1b29c1731d0a56ab4d1f">◆ </a></span>odp_packet_has_udp_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_udp_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for UDP. </p> |
| <p>Only one of TCP/UDP/SCTP/ICMP flags can be set simultaneously.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga9f77d0fd39522623b44a262d8fc482de"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga9f77d0fd39522623b44a262d8fc482de">◆ </a></span>odp_packet_has_tcp_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_tcp_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for TCP. </p> |
| <p>Only one of TCP/UDP/SCTP/ICMP flags can be set simultaneously.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gae585f7f9e0908667feea1166feb75e81"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gae585f7f9e0908667feea1166feb75e81">◆ </a></span>odp_packet_has_sctp_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_sctp_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for SCTP. </p> |
| <p>Only one of TCP/UDP/SCTP/ICMP flags can be set simultaneously.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga7a2e04fab008fa837e77d4a2e5c8fc77"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga7a2e04fab008fa837e77d4a2e5c8fc77">◆ </a></span>odp_packet_has_icmp_set()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_icmp_set </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>val</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Set flag for ICMP. </p> |
| <p>Only one of TCP/UDP/SCTP/ICMP flags can be set simultaneously.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle </td></tr> |
| <tr><td class="paramname">val</td><td>Value </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gac98dc9625073a770b61cd9dd3678440d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gac98dc9625073a770b61cd9dd3678440d">◆ </a></span>odp_packet_has_flow_hash_clr()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_flow_hash_clr </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Clear flag for packet flow hash. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section note"><dt>Note</dt><dd>Set this flag is only possible through <a class="el" href="group__odp__packet.html#ga9e3e4ee951b171713192b4d6fd0dab9a" title="Set packet flow hash value.">odp_packet_flow_hash_set()</a> </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gae8946a4ba073b12b61c26b3ee288a114"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gae8946a4ba073b12b61c26b3ee288a114">◆ </a></span>odp_packet_has_ts_clr()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_packet_has_ts_clr </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__packet.html#gae0641dfc3b74aabd61154e24419e35a6">odp_packet_t</a> </td> |
| <td class="paramname"><em>pkt</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Clear flag for packet timestamp. </p> |
| <p>This call clears the timestamp flag. A <a class="el" href="group__odp__packet.html#gadd35a854f133d3f09f4170da27e73e83" title="Set packet timestamp.">odp_packet_ts_set()</a> call sets the flag in addition to the timestamp value.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pkt</td><td>Packet handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__packet.html#ga1937a99d94a87387d8700e850a013dd3" title="Check for packet timestamp.">odp_packet_has_ts()</a>, <a class="el" href="group__odp__packet.html#gadd35a854f133d3f09f4170da27e73e83" title="Set packet timestamp.">odp_packet_ts_set()</a> </dd></dl> |
| |
| </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 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li> |
| </ul> |
| </div> |
| </body> |
| </html> |