add Doxygen documentation
[o-du/phy.git] / docs / API / ethdi_8h_source.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <meta name="generator" content="Doxygen 1.8.13"/>
7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
8 <title>o-du/phy: ethdi.h Source File</title>
9 <link href="tabs.css" rel="stylesheet" type="text/css"/>
10 <script type="text/javascript" src="jquery.js"></script>
11 <script type="text/javascript" src="dynsections.js"></script>
12 <link href="search/search.css" rel="stylesheet" type="text/css"/>
13 <script type="text/javascript" src="search/searchdata.js"></script>
14 <script type="text/javascript" src="search/search.js"></script>
15 <link href="doxygen.css" rel="stylesheet" type="text/css" />
16 </head>
17 <body>
18 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19 <div id="titlearea">
20 <table cellspacing="0" cellpadding="0">
21  <tbody>
22  <tr style="height: 56px;">
23   <td id="projectalign" style="padding-left: 0.5em;">
24    <div id="projectname">o-du/phy
25    </div>
26    <div id="projectbrief">Intel O-RAN/X-RAN Generated Doxygen Documentation</div>
27   </td>
28  </tr>
29  </tbody>
30 </table>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.13 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <script type="text/javascript" src="menudata.js"></script>
38 <script type="text/javascript" src="menu.js"></script>
39 <script type="text/javascript">
40 $(function() {
41   initMenu('',true,false,'search.php','Search');
42   $(document).ready(function() { init_search(); });
43 });
44 </script>
45 <div id="main-nav"></div>
46 <!-- window showing the filter options -->
47 <div id="MSearchSelectWindow"
48      onmouseover="return searchBox.OnSearchSelectShow()"
49      onmouseout="return searchBox.OnSearchSelectHide()"
50      onkeydown="return searchBox.OnSearchSelectKey(event)">
51 </div>
52
53 <!-- iframe showing the search results (closed by default) -->
54 <div id="MSearchResultsWindow">
55 <iframe src="javascript:void(0)" frameborder="0" 
56         name="MSearchResults" id="MSearchResults">
57 </iframe>
58 </div>
59
60 <div id="nav-path" class="navpath">
61   <ul>
62 <li class="navelem"><a class="el" href="dir_a4c74d6baed87eba72f3b201b7b4b8f2.html">fhi_lib</a></li><li class="navelem"><a class="el" href="dir_5cc0cc0264b57168b75ca56bde6cc403.html">lib</a></li><li class="navelem"><a class="el" href="dir_88a772f59406d8641777e8d7da928916.html">ethernet</a></li>  </ul>
63 </div>
64 </div><!-- top -->
65 <div class="header">
66   <div class="headertitle">
67 <div class="title">ethdi.h</div>  </div>
68 </div><!--header-->
69 <div class="contents">
70 <a href="ethdi_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/******************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">*</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">*   Copyright (c) 2019 Intel.</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">*</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">*   Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">*   you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">*   You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">*</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">*       http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">*</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">*   Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">*   distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">*   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">*   See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">*   limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">*</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">*******************************************************************************/</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#ifndef _ETHDI_H_</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#define _ETHDI_H_</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &lt;rte_config.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &lt;rte_mbuf.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &lt;rte_timer.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment">/*  comment this to enable PDUMP</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="comment"> *  DPDK has to be compiled with</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="comment"> *      CONFIG_RTE_LIBRTE_PMD_PCAP=y</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="comment"> *      CONFIG_RTE_LIBRTE_PDUMP=y</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#undef RTE_LIBRTE_PDUMP</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#ifdef RTE_LIBRTE_PDUMP</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#include &lt;rte_pdump.h&gt;</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ethernet_8h.html">ethernet.h</a>&quot;</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="xran__fh__o__du_8h.html">xran_fh_o_du.h</a>&quot;</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a3822681248af17c36115a411e29e5fc2">   52</a></span>&#160;<span class="preprocessor">#define XRAN_THREAD_DEFAULT_PRIO (98)</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">/* How often to ping? */</span></div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="ethdi_8h.html#ae138d10c7cd4199e5e96377ff1f8e317">   55</a></span>&#160;<span class="preprocessor">#define PING_INTERVAL 300   </span><span class="comment">/* (us) */</span><span class="preprocessor"></span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a5a5cdcb25b0580324b2cfaa1cad7073c">   56</a></span>&#160;<span class="preprocessor">#define PING_BUSY_POLL 50   </span><span class="comment">/* (us) how long to actively wait for response */</span><span class="preprocessor"></span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment">/* If we&#39;re not receiving packets for more then this threshold... */</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="comment">//#define SLEEP_THRESHOLD (rte_get_tsc_hz() / 30)    /* = 33.3(3)ms */</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment">/* we go to sleep for this long (usleep). Undef SLEEP_TRESHOLD to disable. */</span></div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="ethdi_8h.html#abe0b7b2a0ec4b64b92585808a051e1fa">   61</a></span>&#160;<span class="preprocessor">#define SLEEP_TIME 200      </span><span class="comment">/* (us) */</span><span class="preprocessor"></span></div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="ethdi_8h.html#adc4a14c073a7427003796cbd9d435758">   62</a></span>&#160;<span class="preprocessor">#define BCAST {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a9df4578d38d6affa477914e529695e10">   64</a></span>&#160;<span class="preprocessor">#define TX_TIMER_INTERVAL ((rte_get_timer_hz() / 1000000000L)*interval_us*1000) </span><span class="comment">/* nanosec */</span><span class="preprocessor"></span></div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a2b97f9f2ff76cb92d7f3831918979e56">   65</a></span>&#160;<span class="preprocessor">#define TX_RX_LOOP_TIME rte_get_timer_hz() / 1</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a400519d4f3774fc47bc51223a4e3e1b4">   67</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="ethdi_8h.html#a400519d4f3774fc47bc51223a4e3e1b4">xran_ping_states</a></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a400519d4f3774fc47bc51223a4e3e1b4a10b65ee0f4ee1fa197fcc2171d53a988">   69</a></span>&#160;    <a class="code" href="ethdi_8h.html#a400519d4f3774fc47bc51223a4e3e1b4a10b65ee0f4ee1fa197fcc2171d53a988">PING_IDLE</a>,</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a400519d4f3774fc47bc51223a4e3e1b4a5a397770156c4176fc6a845070313c31">   70</a></span>&#160;    <a class="code" href="ethdi_8h.html#a400519d4f3774fc47bc51223a4e3e1b4a5a397770156c4176fc6a845070313c31">PING_NEEDED</a>,</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a400519d4f3774fc47bc51223a4e3e1b4a626bfa1d39d92be95dde42f08ec88ef1">   71</a></span>&#160;    <a class="code" href="ethdi_8h.html#a400519d4f3774fc47bc51223a4e3e1b4a626bfa1d39d92be95dde42f08ec88ef1">AWAITING_PONG</a></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;};</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22b">   74</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22b">xran_ethdi_vf_ports</a></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22bad26902fd68760130ecf75d5ec52a027d">   76</a></span>&#160;    <a class="code" href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22bad26902fd68760130ecf75d5ec52a027d">ETHDI_UP_VF</a> = 0,</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22bafd65206af3962a0d333f6bf4456b8c11">   77</a></span>&#160;    <a class="code" href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22bafd65206af3962a0d333f6bf4456b8c11">ETHDI_CP_VF</a>,</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22ba6f2e27be6beca5899e45e8ebade5216d">   78</a></span>&#160;    <a class="code" href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22ba6f2e27be6beca5899e45e8ebade5216d">ETHDI_VF_MAX</a></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;};</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structxran__io__loop__cfg.html">   81</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structxran__io__loop__cfg.html">xran_io_loop_cfg</a></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structxran__io__loop__cfg.html#a1e6927fa1486224044e568f9c370519b">   83</a></span>&#160;    uint8_t <a class="code" href="structxran__io__loop__cfg.html#a1e6927fa1486224044e568f9c370519b">id</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structxran__io__loop__cfg.html#a5df64aa9312bc9c7860efa45117045ff">   84</a></span>&#160;    <span class="keywordtype">char</span> *<a class="code" href="structxran__io__loop__cfg.html#a5df64aa9312bc9c7860efa45117045ff">dpdk_dev</a>[<a class="code" href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22ba6f2e27be6beca5899e45e8ebade5216d">ETHDI_VF_MAX</a>];</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structxran__io__loop__cfg.html#a64ddf49fc9f31dbe434f9ee6b0a08db4">   85</a></span>&#160;    <span class="keywordtype">char</span> *<a class="code" href="structxran__io__loop__cfg.html#a64ddf49fc9f31dbe434f9ee6b0a08db4">bbdev_dev</a>[1];</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structxran__io__loop__cfg.html#a42ca365685976f50257addd91dfc653a">   86</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structxran__io__loop__cfg.html#a42ca365685976f50257addd91dfc653a">bbdev_mode</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structxran__io__loop__cfg.html#a18da1e1fddf1ac92da74aecf88ab2b2e">   87</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structxran__io__loop__cfg.html#a18da1e1fddf1ac92da74aecf88ab2b2e">core</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structxran__io__loop__cfg.html#ad541922317ba6249ed0d3d0c333cfad0">   88</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structxran__io__loop__cfg.html#ad541922317ba6249ed0d3d0c333cfad0">system_core</a>;    <span class="comment">/* Needed as DPDK will change your starting core. */</span></div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="structxran__io__loop__cfg.html#a0b34ea46d27e0e37faae5f15997cc607">   89</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structxran__io__loop__cfg.html#a0b34ea46d27e0e37faae5f15997cc607">pkt_proc_core</a>;  <span class="comment">/* Needed for packet processing thread. */</span></div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structxran__io__loop__cfg.html#a45c65f9da3c052a4b461c34be998b138">   90</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structxran__io__loop__cfg.html#a45c65f9da3c052a4b461c34be998b138">pkt_aux_core</a>;   <span class="comment">/* Needed for packet dumping for debug purposes. */</span></div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="structxran__io__loop__cfg.html#ab93b5693f54489ba747cce7e0a09f84a">   91</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structxran__io__loop__cfg.html#ab93b5693f54489ba747cce7e0a09f84a">timing_core</a>;    <span class="comment">/* Needed for getting precise time */</span></div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="structxran__io__loop__cfg.html#af48c6d39ced0dc3629c2b2c1322dae84">   92</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structxran__io__loop__cfg.html#af48c6d39ced0dc3629c2b2c1322dae84">port</a>[<a class="code" href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22ba6f2e27be6beca5899e45e8ebade5216d">ETHDI_VF_MAX</a>];           <span class="comment">/* This is auto-detected, no need to set. */</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;};</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="comment">/* CAUTION: Keep in sync with the string table below. */</span></div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851">   96</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851">xran_entities_id</a></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;{</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851adb43d55990f322d26e5cdd13ae5df1c1">   98</a></span>&#160;    <a class="code" href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851adb43d55990f322d26e5cdd13ae5df1c1">ID_LLS_CU</a>,</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851ac45a8e08bb429947dc63349e955829f9">   99</a></span>&#160;    <a class="code" href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851ac45a8e08bb429947dc63349e955829f9">ID_RU</a>,</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851ac960a8651dfedb74f745d26695fcc844">  100</a></span>&#160;    <a class="code" href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851ac960a8651dfedb74f745d26695fcc844">ID_BROADCAST</a>,</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851a04d25c2b2f0416a3d9ac9c75b10d017e">  101</a></span>&#160;    <a class="code" href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851a04d25c2b2f0416a3d9ac9c75b10d017e">ID_MAX</a></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;};</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="keyword">static</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> entity_names[] = {</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="stringliteral">&quot;xRAN lls-CU sim app&quot;</span>,</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="stringliteral">&quot;xRAN RU sim app&quot;</span>,</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;};</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a8f1b290228ee37b3a5ea2282aded6664">  109</a></span>&#160;<span class="keyword">typedef</span> int (*<a class="code" href="ethdi_8h.html#a8f1b290228ee37b3a5ea2282aded6664">PROCESS_CB</a>)(<span class="keywordtype">void</span> * arg);</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html">  111</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structxran__ethdi__ctx.html">xran_ethdi_ctx</a></div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;{</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#a84a901e82e979ec87118ff865b311a1f">  113</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structxran__io__loop__cfg.html">xran_io_loop_cfg</a> io_cfg;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#a9aae028a7de6cf24800730ee0ead940a">  114</a></span>&#160;    <span class="keyword">struct </span>ether_addr entities[<a class="code" href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851ac960a8651dfedb74f745d26695fcc844">ID_BROADCAST</a> + 1];</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#a5a97f72041614c818fa41ba34f0d776d">  115</a></span>&#160;    uint8_t <a class="code" href="structxran__ethdi__ctx.html#a5a97f72041614c818fa41ba34f0d776d">ping_state</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#af01104d20d9d5120bd7c5b39c7084643">  116</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structxran__ethdi__ctx.html#af01104d20d9d5120bd7c5b39c7084643">ping_times</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#a01a95c1b6bb9bcb0390508a3045ad0ed">  117</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structxran__ethdi__ctx.html#a01a95c1b6bb9bcb0390508a3045ad0ed">known_peers</a>;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#af78a2835ea5575b2e63963898d89b34f">  119</a></span>&#160;    <span class="keyword">struct </span>rte_ring *tx_ring[<a class="code" href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22ba6f2e27be6beca5899e45e8ebade5216d">ETHDI_VF_MAX</a>];</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#a252aa4a41dea61041edb525c4190651b">  120</a></span>&#160;    <span class="keyword">struct </span>rte_ring *rx_ring[<a class="code" href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22ba6f2e27be6beca5899e45e8ebade5216d">ETHDI_VF_MAX</a>];</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#ae69618bbe52d90014001faa69198051c">  121</a></span>&#160;    <span class="keyword">struct </span>rte_ring *pkt_dump_ring[<a class="code" href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22ba6f2e27be6beca5899e45e8ebade5216d">ETHDI_VF_MAX</a>];</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#a371cecbf2b9db724d36a5c8da75c5463">  122</a></span>&#160;    <span class="keyword">struct </span>rte_timer timer_autodetect;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#ae6b738dc6d77d4734678c55c56efdd9d">  123</a></span>&#160;    <span class="keyword">struct </span>rte_timer timer_ping;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#aa7306ce280013295a40e89e29bb536a6">  124</a></span>&#160;    <span class="keyword">struct </span>rte_timer timer_sync;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#a46bbd0014fd7d61fb5a9cad69eb2f6b0">  125</a></span>&#160;    <span class="keyword">struct </span>rte_timer timer_tx;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#a73b587527ef3ade588b6ba7db09b6b87">  127</a></span>&#160;    uint64_t <a class="code" href="structxran__ethdi__ctx.html#a73b587527ef3ade588b6ba7db09b6b87">busy_poll_till</a>;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#a16aa42188d112d73d8d32b0f766d8d2c">  129</a></span>&#160;    <span class="keywordtype">unsigned</span> pkt_stats[<a class="code" href="ethernet_8h.html#afc285891d94145229942219cffd91c4ca7f0f1f1aa3a08f0073130d85a93a27ad">PKT_LAST</a> + 1];</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#a5233222c0adb365a4dbdc52a54abf845">  131</a></span>&#160;    uint16_t <a class="code" href="structxran__ethdi__ctx.html#a5233222c0adb365a4dbdc52a54abf845">cp_vtag</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#a798a71d6d7f0176bb1fcb276811e5271">  132</a></span>&#160;    uint16_t <a class="code" href="structxran__ethdi__ctx.html#a798a71d6d7f0176bb1fcb276811e5271">up_vtag</a>;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;};</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a39fca1837c5ce7715cbf571669660c13a5c8f213f6ff879119c23ec38c63a54e5">  136</a></span>&#160;    <a class="code" href="ethdi_8h.html#a39fca1837c5ce7715cbf571669660c13a5c8f213f6ff879119c23ec38c63a54e5">MBUF_KEEP</a>,</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a39fca1837c5ce7715cbf571669660c13a90bbe176be23902fec1de76501599769">  137</a></span>&#160;    <a class="code" href="ethdi_8h.html#a39fca1837c5ce7715cbf571669660c13a90bbe176be23902fec1de76501599769">MBUF_FREE</a></div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;};</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="keyword">extern</span> <span class="keyword">enum</span> <a class="code" href="xran__fh__o__du_8h.html#a2f600110ab5726a0f21375b7f24c0326">xran_if_state</a> <a class="code" href="ethdi_8h.html#aef5f52e6a4f49171518a59382eb03df5">xran_if_current_state</a>;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="keyword">extern</span> uint8_t <a class="code" href="ethdi_8h.html#a6cf5d5256dc316f01943cc2850cff44c">ping_dst_id</a>;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span>ether_addr <a class="code" href="ethdi_8h.html#a061420dc29ec42fb222295d9496edbf7">entities_addrs</a>[];</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keyword">struct </span><a class="code" href="structxran__ethdi__ctx.html">xran_ethdi_ctx</a> *xran_ethdi_get_ctx(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;{</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structxran__ethdi__ctx.html">xran_ethdi_ctx</a> <a class="code" href="ethdi_8c.html#a87322175547262f4937875027a108e90">g_ethdi_ctx</a>;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="keywordflow">return</span> &amp;<a class="code" href="ethdi_8c.html#a87322175547262f4937875027a108e90">g_ethdi_ctx</a>;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;}</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a3f3cb6ac70cce2db8234669b745b4538">  150</a></span>&#160;<span class="keyword">typedef</span> int (*<a class="code" href="ethdi_8h.html#a3f3cb6ac70cce2db8234669b745b4538">xran_ethdi_handler</a>)(<span class="keyword">struct </span>rte_mbuf *, <span class="keywordtype">int</span> sender, uint64_t rx_time);</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a7c379f4a70692477327fb1a3538cfd1e">  152</a></span>&#160;<span class="keyword">typedef</span> int (*<a class="code" href="ethdi_8h.html#a7c379f4a70692477327fb1a3538cfd1e">ethertype_handler</a>)(<span class="keyword">struct </span>rte_mbuf *, uint64_t rx_time);</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="keyword">typedef</span> int (*<a class="code" href="ethdi_8h.html#a3f3cb6ac70cce2db8234669b745b4538">xran_ethdi_handler</a>)(<span class="keyword">struct </span>rte_mbuf *, <span class="keywordtype">int</span> sender, uint64_t rx_time);</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="ethdi_8h.html#abdeeae19de30cfa3120005562b0c4588">  154</a></span>&#160;<span class="keyword">typedef</span> void (<a class="code" href="ethdi_8h.html#abdeeae19de30cfa3120005562b0c4588">xran_ethdi_tx_callback</a>)(<span class="keyword">struct </span>rte_timer *tim, <span class="keywordtype">void</span> *arg);</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="keywordtype">int</span> <a class="code" href="ethdi_8h.html#a69c763967ba7e28c4a589ce624c226ff">xran_register_ethertype_handler</a>(uint16_t <a class="code" href="ethdi_8c.html#aa9296c58dc24c63c4ee927db394a97d7">ethertype</a>, <a class="code" href="ethdi_8h.html#a7c379f4a70692477327fb1a3538cfd1e">ethertype_handler</a> callback);</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="keywordtype">int</span> <a class="code" href="ethdi_8h.html#a97dcf8200aebed714f47764c302a06b5">xran_ethdi_init_dpdk_io</a>(<span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structxran__io__loop__cfg.html">xran_io_loop_cfg</a> *io_cfg,</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <span class="keywordtype">int</span> *lcore_id, <span class="keyword">struct</span> ether_addr *p_lls_cu_addr, <span class="keyword">struct</span> ether_addr *p_ru_addr,</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    uint16_t cp_vlan, uint16_t up_vlan);</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="keyword">struct </span>rte_mbuf *<a class="code" href="ethdi_8h.html#a77f0a4b49dc21be816aefa3066debfa7">xran_ethdi_mbuf_alloc</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="keywordtype">int</span> <a class="code" href="ethdi_8h.html#ab6a05b3b37887e49b0017e1668317829">xran_ethdi_mbuf_send</a>(<span class="keyword">struct</span> rte_mbuf *mb, uint16_t <a class="code" href="ethdi_8c.html#aa9296c58dc24c63c4ee927db394a97d7">ethertype</a>);</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="keywordtype">int</span> <a class="code" href="ethdi_8h.html#ab8a8c592ac06111ce690ab5a6207a6eb">xran_ethdi_mbuf_send_cp</a>(<span class="keyword">struct</span> rte_mbuf *mb, uint16_t <a class="code" href="ethdi_8c.html#aa9296c58dc24c63c4ee927db394a97d7">ethertype</a>);</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="preprocessor">#if 0</span></div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="keywordtype">void</span> xran_ethdi_stop_tx(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="keywordtype">void</span> xran_ethdi_ports_stats(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="keywordtype">int</span> xran_ethdi_dpdk_io_loop(<span class="keywordtype">void</span> *);</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="keywordtype">int</span> <a class="code" href="ethdi_8h.html#af110b40ee89935ebe18d65ef84de1359">xran_ethdi_filter_packet</a>(<span class="keyword">struct</span> rte_mbuf *pkt, uint64_t rx_time);</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;int32_t <a class="code" href="ethdi_8h.html#ae5cd564d3dc5eb89dbe0dd1fa105b645">process_dpdk_io</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;}</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* #ifndef _ETHDI_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="ethdi_8h_html_a8f1b290228ee37b3a5ea2282aded6664"><div class="ttname"><a href="ethdi_8h.html#a8f1b290228ee37b3a5ea2282aded6664">PROCESS_CB</a></div><div class="ttdeci">int(* PROCESS_CB)(void *arg)</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00109">ethdi.h:109</a></div></div>
71 <div class="ttc" id="ethdi_8h_html_a0e36dceadaee8cb4907cd2110d135851a04d25c2b2f0416a3d9ac9c75b10d017e"><div class="ttname"><a href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851a04d25c2b2f0416a3d9ac9c75b10d017e">ID_MAX</a></div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00101">ethdi.h:101</a></div></div>
72 <div class="ttc" id="ethdi_8h_html_a400519d4f3774fc47bc51223a4e3e1b4a10b65ee0f4ee1fa197fcc2171d53a988"><div class="ttname"><a href="ethdi_8h.html#a400519d4f3774fc47bc51223a4e3e1b4a10b65ee0f4ee1fa197fcc2171d53a988">PING_IDLE</a></div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00069">ethdi.h:69</a></div></div>
73 <div class="ttc" id="ethdi_8h_html_ae5cd564d3dc5eb89dbe0dd1fa105b645"><div class="ttname"><a href="ethdi_8h.html#ae5cd564d3dc5eb89dbe0dd1fa105b645">process_dpdk_io</a></div><div class="ttdeci">int32_t process_dpdk_io(void)</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8c_source.html#l00445">ethdi.c:445</a></div></div>
74 <div class="ttc" id="ethdi_8h_html_a061420dc29ec42fb222295d9496edbf7"><div class="ttname"><a href="ethdi_8h.html#a061420dc29ec42fb222295d9496edbf7">entities_addrs</a></div><div class="ttdeci">struct ether_addr entities_addrs[]</div></div>
75 <div class="ttc" id="ethdi_8h_html_a0e36dceadaee8cb4907cd2110d135851ac45a8e08bb429947dc63349e955829f9"><div class="ttname"><a href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851ac45a8e08bb429947dc63349e955829f9">ID_RU</a></div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00099">ethdi.h:99</a></div></div>
76 <div class="ttc" id="structxran__io__loop__cfg_html_a5df64aa9312bc9c7860efa45117045ff"><div class="ttname"><a href="structxran__io__loop__cfg.html#a5df64aa9312bc9c7860efa45117045ff">xran_io_loop_cfg::dpdk_dev</a></div><div class="ttdeci">char * dpdk_dev[ETHDI_VF_MAX]</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00084">ethdi.h:84</a></div></div>
77 <div class="ttc" id="ethdi_8h_html_a08bfa37a0c337e82469d07cac15fd22bafd65206af3962a0d333f6bf4456b8c11"><div class="ttname"><a href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22bafd65206af3962a0d333f6bf4456b8c11">ETHDI_CP_VF</a></div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00077">ethdi.h:77</a></div></div>
78 <div class="ttc" id="ethdi_8h_html_a7c379f4a70692477327fb1a3538cfd1e"><div class="ttname"><a href="ethdi_8h.html#a7c379f4a70692477327fb1a3538cfd1e">ethertype_handler</a></div><div class="ttdeci">int(* ethertype_handler)(struct rte_mbuf *, uint64_t rx_time)</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00152">ethdi.h:152</a></div></div>
79 <div class="ttc" id="structxran__io__loop__cfg_html_a1e6927fa1486224044e568f9c370519b"><div class="ttname"><a href="structxran__io__loop__cfg.html#a1e6927fa1486224044e568f9c370519b">xran_io_loop_cfg::id</a></div><div class="ttdeci">uint8_t id</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00083">ethdi.h:83</a></div></div>
80 <div class="ttc" id="structxran__ethdi__ctx_html_af01104d20d9d5120bd7c5b39c7084643"><div class="ttname"><a href="structxran__ethdi__ctx.html#af01104d20d9d5120bd7c5b39c7084643">xran_ethdi_ctx::ping_times</a></div><div class="ttdeci">int ping_times</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00116">ethdi.h:116</a></div></div>
81 <div class="ttc" id="ethdi_8h_html_a0e36dceadaee8cb4907cd2110d135851adb43d55990f322d26e5cdd13ae5df1c1"><div class="ttname"><a href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851adb43d55990f322d26e5cdd13ae5df1c1">ID_LLS_CU</a></div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00098">ethdi.h:98</a></div></div>
82 <div class="ttc" id="ethdi_8h_html_a0e36dceadaee8cb4907cd2110d135851"><div class="ttname"><a href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851">xran_entities_id</a></div><div class="ttdeci">xran_entities_id</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00096">ethdi.h:96</a></div></div>
83 <div class="ttc" id="ethdi_8h_html_af110b40ee89935ebe18d65ef84de1359"><div class="ttname"><a href="ethdi_8h.html#af110b40ee89935ebe18d65ef84de1359">xran_ethdi_filter_packet</a></div><div class="ttdeci">int xran_ethdi_filter_packet(struct rte_mbuf *pkt, uint64_t rx_time)</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8c_source.html#l00156">ethdi.c:156</a></div></div>
84 <div class="ttc" id="ethdi_8h_html_a400519d4f3774fc47bc51223a4e3e1b4a626bfa1d39d92be95dde42f08ec88ef1"><div class="ttname"><a href="ethdi_8h.html#a400519d4f3774fc47bc51223a4e3e1b4a626bfa1d39d92be95dde42f08ec88ef1">AWAITING_PONG</a></div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00071">ethdi.h:71</a></div></div>
85 <div class="ttc" id="ethdi_8h_html_ab6a05b3b37887e49b0017e1668317829"><div class="ttname"><a href="ethdi_8h.html#ab6a05b3b37887e49b0017e1668317829">xran_ethdi_mbuf_send</a></div><div class="ttdeci">int xran_ethdi_mbuf_send(struct rte_mbuf *mb, uint16_t ethertype)</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8c_source.html#l00082">ethdi.c:82</a></div></div>
86 <div class="ttc" id="ethdi_8c_html_a87322175547262f4937875027a108e90"><div class="ttname"><a href="ethdi_8c.html#a87322175547262f4937875027a108e90">g_ethdi_ctx</a></div><div class="ttdeci">struct xran_ethdi_ctx g_ethdi_ctx</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8c_source.html#l00074">ethdi.c:74</a></div></div>
87 <div class="ttc" id="ethdi_8h_html_a39fca1837c5ce7715cbf571669660c13a90bbe176be23902fec1de76501599769"><div class="ttname"><a href="ethdi_8h.html#a39fca1837c5ce7715cbf571669660c13a90bbe176be23902fec1de76501599769">MBUF_FREE</a></div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00137">ethdi.h:137</a></div></div>
88 <div class="ttc" id="structxran__io__loop__cfg_html_a0b34ea46d27e0e37faae5f15997cc607"><div class="ttname"><a href="structxran__io__loop__cfg.html#a0b34ea46d27e0e37faae5f15997cc607">xran_io_loop_cfg::pkt_proc_core</a></div><div class="ttdeci">int pkt_proc_core</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00089">ethdi.h:89</a></div></div>
89 <div class="ttc" id="ethdi_8h_html_a77f0a4b49dc21be816aefa3066debfa7"><div class="ttname"><a href="ethdi_8h.html#a77f0a4b49dc21be816aefa3066debfa7">xran_ethdi_mbuf_alloc</a></div><div class="ttdeci">struct rte_mbuf * xran_ethdi_mbuf_alloc(void)</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8c_source.html#l00077">ethdi.c:77</a></div></div>
90 <div class="ttc" id="ethernet_8h_html"><div class="ttname"><a href="ethernet_8h.html">ethernet.h</a></div><div class="ttdoc">This file has all definitions for the Ethernet Data Interface Layer. </div></div>
91 <div class="ttc" id="structxran__ethdi__ctx_html_a01a95c1b6bb9bcb0390508a3045ad0ed"><div class="ttname"><a href="structxran__ethdi__ctx.html#a01a95c1b6bb9bcb0390508a3045ad0ed">xran_ethdi_ctx::known_peers</a></div><div class="ttdeci">int known_peers</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00117">ethdi.h:117</a></div></div>
92 <div class="ttc" id="ethdi_8h_html_abdeeae19de30cfa3120005562b0c4588"><div class="ttname"><a href="ethdi_8h.html#abdeeae19de30cfa3120005562b0c4588">xran_ethdi_tx_callback</a></div><div class="ttdeci">void() xran_ethdi_tx_callback(struct rte_timer *tim, void *arg)</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00154">ethdi.h:154</a></div></div>
93 <div class="ttc" id="ethdi_8h_html_a08bfa37a0c337e82469d07cac15fd22ba6f2e27be6beca5899e45e8ebade5216d"><div class="ttname"><a href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22ba6f2e27be6beca5899e45e8ebade5216d">ETHDI_VF_MAX</a></div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00078">ethdi.h:78</a></div></div>
94 <div class="ttc" id="structxran__ethdi__ctx_html_a5a97f72041614c818fa41ba34f0d776d"><div class="ttname"><a href="structxran__ethdi__ctx.html#a5a97f72041614c818fa41ba34f0d776d">xran_ethdi_ctx::ping_state</a></div><div class="ttdeci">uint8_t ping_state</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00115">ethdi.h:115</a></div></div>
95 <div class="ttc" id="structxran__io__loop__cfg_html_ab93b5693f54489ba747cce7e0a09f84a"><div class="ttname"><a href="structxran__io__loop__cfg.html#ab93b5693f54489ba747cce7e0a09f84a">xran_io_loop_cfg::timing_core</a></div><div class="ttdeci">int timing_core</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00091">ethdi.h:91</a></div></div>
96 <div class="ttc" id="structxran__ethdi__ctx_html_a73b587527ef3ade588b6ba7db09b6b87"><div class="ttname"><a href="structxran__ethdi__ctx.html#a73b587527ef3ade588b6ba7db09b6b87">xran_ethdi_ctx::busy_poll_till</a></div><div class="ttdeci">uint64_t busy_poll_till</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00127">ethdi.h:127</a></div></div>
97 <div class="ttc" id="structxran__io__loop__cfg_html_af48c6d39ced0dc3629c2b2c1322dae84"><div class="ttname"><a href="structxran__io__loop__cfg.html#af48c6d39ced0dc3629c2b2c1322dae84">xran_io_loop_cfg::port</a></div><div class="ttdeci">int port[ETHDI_VF_MAX]</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00092">ethdi.h:92</a></div></div>
98 <div class="ttc" id="xran__fh__o__du_8h_html_a2f600110ab5726a0f21375b7f24c0326"><div class="ttname"><a href="xran__fh__o__du_8h.html#a2f600110ab5726a0f21375b7f24c0326">xran_if_state</a></div><div class="ttdeci">xran_if_state</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00189">xran_fh_o_du.h:189</a></div></div>
99 <div class="ttc" id="structxran__ethdi__ctx_html_a5233222c0adb365a4dbdc52a54abf845"><div class="ttname"><a href="structxran__ethdi__ctx.html#a5233222c0adb365a4dbdc52a54abf845">xran_ethdi_ctx::cp_vtag</a></div><div class="ttdeci">uint16_t cp_vtag</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00131">ethdi.h:131</a></div></div>
100 <div class="ttc" id="ethdi_8h_html_a6cf5d5256dc316f01943cc2850cff44c"><div class="ttname"><a href="ethdi_8h.html#a6cf5d5256dc316f01943cc2850cff44c">ping_dst_id</a></div><div class="ttdeci">uint8_t ping_dst_id</div></div>
101 <div class="ttc" id="structxran__io__loop__cfg_html_a45c65f9da3c052a4b461c34be998b138"><div class="ttname"><a href="structxran__io__loop__cfg.html#a45c65f9da3c052a4b461c34be998b138">xran_io_loop_cfg::pkt_aux_core</a></div><div class="ttdeci">int pkt_aux_core</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00090">ethdi.h:90</a></div></div>
102 <div class="ttc" id="ethdi_8h_html_a39fca1837c5ce7715cbf571669660c13a5c8f213f6ff879119c23ec38c63a54e5"><div class="ttname"><a href="ethdi_8h.html#a39fca1837c5ce7715cbf571669660c13a5c8f213f6ff879119c23ec38c63a54e5">MBUF_KEEP</a></div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00136">ethdi.h:136</a></div></div>
103 <div class="ttc" id="ethdi_8h_html_a400519d4f3774fc47bc51223a4e3e1b4a5a397770156c4176fc6a845070313c31"><div class="ttname"><a href="ethdi_8h.html#a400519d4f3774fc47bc51223a4e3e1b4a5a397770156c4176fc6a845070313c31">PING_NEEDED</a></div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00070">ethdi.h:70</a></div></div>
104 <div class="ttc" id="ethdi_8h_html_aef5f52e6a4f49171518a59382eb03df5"><div class="ttname"><a href="ethdi_8h.html#aef5f52e6a4f49171518a59382eb03df5">xran_if_current_state</a></div><div class="ttdeci">enum xran_if_state xran_if_current_state</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8c_source.html#l00075">ethdi.c:75</a></div></div>
105 <div class="ttc" id="ethdi_8h_html_a97dcf8200aebed714f47764c302a06b5"><div class="ttname"><a href="ethdi_8h.html#a97dcf8200aebed714f47764c302a06b5">xran_ethdi_init_dpdk_io</a></div><div class="ttdeci">int xran_ethdi_init_dpdk_io(char *name, const struct xran_io_loop_cfg *io_cfg, int *lcore_id, struct ether_addr *p_lls_cu_addr, struct ether_addr *p_ru_addr, uint16_t cp_vlan, uint16_t up_vlan)</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8c_source.html#l00288">ethdi.c:288</a></div></div>
106 <div class="ttc" id="structxran__ethdi__ctx_html"><div class="ttname"><a href="structxran__ethdi__ctx.html">xran_ethdi_ctx</a></div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00111">ethdi.h:111</a></div></div>
107 <div class="ttc" id="structxran__io__loop__cfg_html_a18da1e1fddf1ac92da74aecf88ab2b2e"><div class="ttname"><a href="structxran__io__loop__cfg.html#a18da1e1fddf1ac92da74aecf88ab2b2e">xran_io_loop_cfg::core</a></div><div class="ttdeci">int core</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00087">ethdi.h:87</a></div></div>
108 <div class="ttc" id="structxran__io__loop__cfg_html"><div class="ttname"><a href="structxran__io__loop__cfg.html">xran_io_loop_cfg</a></div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00081">ethdi.h:81</a></div></div>
109 <div class="ttc" id="ethdi_8h_html_ab8a8c592ac06111ce690ab5a6207a6eb"><div class="ttname"><a href="ethdi_8h.html#ab8a8c592ac06111ce690ab5a6207a6eb">xran_ethdi_mbuf_send_cp</a></div><div class="ttdeci">int xran_ethdi_mbuf_send_cp(struct rte_mbuf *mb, uint16_t ethertype)</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8c_source.html#l00094">ethdi.c:94</a></div></div>
110 <div class="ttc" id="structxran__ethdi__ctx_html_a798a71d6d7f0176bb1fcb276811e5271"><div class="ttname"><a href="structxran__ethdi__ctx.html#a798a71d6d7f0176bb1fcb276811e5271">xran_ethdi_ctx::up_vtag</a></div><div class="ttdeci">uint16_t up_vtag</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00132">ethdi.h:132</a></div></div>
111 <div class="ttc" id="xran__fh__o__du_8h_html"><div class="ttname"><a href="xran__fh__o__du_8h.html">xran_fh_o_du.h</a></div><div class="ttdoc">This file provides public interface to xRAN Front Haul layer implementation as defined in the ORAN-WG...</div></div>
112 <div class="ttc" id="ethdi_8h_html_a0e36dceadaee8cb4907cd2110d135851ac960a8651dfedb74f745d26695fcc844"><div class="ttname"><a href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851ac960a8651dfedb74f745d26695fcc844">ID_BROADCAST</a></div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00100">ethdi.h:100</a></div></div>
113 <div class="ttc" id="ethdi_8c_html_aa9296c58dc24c63c4ee927db394a97d7"><div class="ttname"><a href="ethdi_8c.html#aa9296c58dc24c63c4ee927db394a97d7">ethertype</a></div><div class="ttdeci">uint16_t ethertype</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8c_source.html#l00114">ethdi.c:114</a></div></div>
114 <div class="ttc" id="structxran__io__loop__cfg_html_ad541922317ba6249ed0d3d0c333cfad0"><div class="ttname"><a href="structxran__io__loop__cfg.html#ad541922317ba6249ed0d3d0c333cfad0">xran_io_loop_cfg::system_core</a></div><div class="ttdeci">int system_core</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00088">ethdi.h:88</a></div></div>
115 <div class="ttc" id="ethdi_8h_html_a08bfa37a0c337e82469d07cac15fd22bad26902fd68760130ecf75d5ec52a027d"><div class="ttname"><a href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22bad26902fd68760130ecf75d5ec52a027d">ETHDI_UP_VF</a></div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00076">ethdi.h:76</a></div></div>
116 <div class="ttc" id="ethernet_8h_html_afc285891d94145229942219cffd91c4ca7f0f1f1aa3a08f0073130d85a93a27ad"><div class="ttname"><a href="ethernet_8h.html#afc285891d94145229942219cffd91c4ca7f0f1f1aa3a08f0073130d85a93a27ad">PKT_LAST</a></div><div class="ttdef"><b>Definition:</b> <a href="ethernet_8h_source.html#l00085">ethernet.h:85</a></div></div>
117 <div class="ttc" id="ethdi_8h_html_a08bfa37a0c337e82469d07cac15fd22b"><div class="ttname"><a href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22b">xran_ethdi_vf_ports</a></div><div class="ttdeci">xran_ethdi_vf_ports</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00074">ethdi.h:74</a></div></div>
118 <div class="ttc" id="structxran__io__loop__cfg_html_a64ddf49fc9f31dbe434f9ee6b0a08db4"><div class="ttname"><a href="structxran__io__loop__cfg.html#a64ddf49fc9f31dbe434f9ee6b0a08db4">xran_io_loop_cfg::bbdev_dev</a></div><div class="ttdeci">char * bbdev_dev[1]</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00085">ethdi.h:85</a></div></div>
119 <div class="ttc" id="ethdi_8h_html_a3f3cb6ac70cce2db8234669b745b4538"><div class="ttname"><a href="ethdi_8h.html#a3f3cb6ac70cce2db8234669b745b4538">xran_ethdi_handler</a></div><div class="ttdeci">int(* xran_ethdi_handler)(struct rte_mbuf *, int sender, uint64_t rx_time)</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00150">ethdi.h:150</a></div></div>
120 <div class="ttc" id="structxran__io__loop__cfg_html_a42ca365685976f50257addd91dfc653a"><div class="ttname"><a href="structxran__io__loop__cfg.html#a42ca365685976f50257addd91dfc653a">xran_io_loop_cfg::bbdev_mode</a></div><div class="ttdeci">int bbdev_mode</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00086">ethdi.h:86</a></div></div>
121 <div class="ttc" id="ethdi_8h_html_a400519d4f3774fc47bc51223a4e3e1b4"><div class="ttname"><a href="ethdi_8h.html#a400519d4f3774fc47bc51223a4e3e1b4">xran_ping_states</a></div><div class="ttdeci">xran_ping_states</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8h_source.html#l00067">ethdi.h:67</a></div></div>
122 <div class="ttc" id="ethdi_8h_html_a69c763967ba7e28c4a589ce624c226ff"><div class="ttname"><a href="ethdi_8h.html#a69c763967ba7e28c4a589ce624c226ff">xran_register_ethertype_handler</a></div><div class="ttdeci">int xran_register_ethertype_handler(uint16_t ethertype, ethertype_handler callback)</div><div class="ttdef"><b>Definition:</b> <a href="ethdi_8c_source.html#l00124">ethdi.c:124</a></div></div>
123 </div><!-- fragment --></div><!-- contents -->
124 <!-- start footer part -->
125 <hr class="footer"/><address class="footer"><small>
126 Generated by &#160;<a href="http://www.doxygen.org/index.html">
127 <img class="footer" src="doxygen.png" alt="doxygen"/>
128 </a> 1.8.13
129 </small></address>
130 </body>
131 </html>