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">
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" />
18 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
20 <table cellspacing="0" cellpadding="0">
22 <tr style="height: 56px;">
23 <td id="projectalign" style="padding-left: 0.5em;">
24 <div id="projectname">o-du/phy
26 <div id="projectbrief">Intel O-RAN/X-RAN Generated Doxygen Documentation</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');
37 <script type="text/javascript" src="menudata.js"></script>
38 <script type="text/javascript" src="menu.js"></script>
39 <script type="text/javascript">
41 initMenu('',true,false,'search.php','Search');
42 $(document).ready(function() { init_search(); });
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)">
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">
60 <div id="nav-path" class="navpath">
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>
66 <div class="headertitle">
67 <div class="title">ethdi.h</div> </div>
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> <span class="comment">/******************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">*</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">* Copyright (c) 2019 Intel.</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">*</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">* Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <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> <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> <span class="comment">*</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <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> <span class="comment">*</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <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> <span class="comment">* distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <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> <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> <span class="comment">* limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">*</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">*******************************************************************************/</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#ifndef _ETHDI_H_</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#define _ETHDI_H_</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <rte_config.h></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <rte_mbuf.h></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <rte_timer.h></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">/* comment this to enable PDUMP</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment"> * DPDK has to be compiled with</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment"> * CONFIG_RTE_LIBRTE_PMD_PCAP=y</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment"> * CONFIG_RTE_LIBRTE_PDUMP=y</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment"> */</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#undef RTE_LIBRTE_PDUMP</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#ifdef RTE_LIBRTE_PDUMP</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include <rte_pdump.h></span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "<a class="code" href="ethernet_8h.html">ethernet.h</a>"</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "<a class="code" href="xran__fh__o__du_8h.html">xran_fh_o_du.h</a>"</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a3822681248af17c36115a411e29e5fc2"> 52</a></span> <span class="preprocessor">#define XRAN_THREAD_DEFAULT_PRIO (98)</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <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> <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> <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> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">/* If we're not receiving packets for more then this threshold... */</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <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> <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> <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> <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> </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a9df4578d38d6affa477914e529695e10"> 64</a></span> <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> <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> </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a400519d4f3774fc47bc51223a4e3e1b4"> 67</a></span> <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> {</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a400519d4f3774fc47bc51223a4e3e1b4a10b65ee0f4ee1fa197fcc2171d53a988"> 69</a></span>  <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>  <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>  <a class="code" href="ethdi_8h.html#a400519d4f3774fc47bc51223a4e3e1b4a626bfa1d39d92be95dde42f08ec88ef1">AWAITING_PONG</a></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> };</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22b"> 74</a></span> <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> {</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a08bfa37a0c337e82469d07cac15fd22bad26902fd68760130ecf75d5ec52a027d"> 76</a></span>  <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>  <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>  <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> };</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structxran__io__loop__cfg.html"> 81</a></span> <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> {</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structxran__io__loop__cfg.html#a1e6927fa1486224044e568f9c370519b"> 83</a></span>  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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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> };</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <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> <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> {</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851adb43d55990f322d26e5cdd13ae5df1c1"> 98</a></span>  <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>  <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>  <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>  <a class="code" href="ethdi_8h.html#a0e36dceadaee8cb4907cd2110d135851a04d25c2b2f0416a3d9ac9c75b10d017e">ID_MAX</a></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> };</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <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>  <span class="stringliteral">"xRAN lls-CU sim app"</span>,</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="stringliteral">"xRAN RU sim app"</span>,</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> };</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a8f1b290228ee37b3a5ea2282aded6664"> 109</a></span> <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> </div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html"> 111</a></span> <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> {</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#a84a901e82e979ec87118ff865b311a1f"> 113</a></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="l00114"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#a9aae028a7de6cf24800730ee0ead940a"> 114</a></span>  <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>  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>  <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>  <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> </div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#af78a2835ea5575b2e63963898d89b34f"> 119</a></span>  <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>  <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>  <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>  <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>  <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>  <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>  <span class="keyword">struct </span>rte_timer timer_tx;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#a73b587527ef3ade588b6ba7db09b6b87"> 127</a></span>  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> </div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#a16aa42188d112d73d8d32b0f766d8d2c"> 129</a></span>  <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> </div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="structxran__ethdi__ctx.html#a5233222c0adb365a4dbdc52a54abf845"> 131</a></span>  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>  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> };</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <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>  <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>  <a class="code" href="ethdi_8h.html#a39fca1837c5ce7715cbf571669660c13a90bbe176be23902fec1de76501599769">MBUF_FREE</a></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> };</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <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> <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> <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> </div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <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> {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <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> </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">return</span> &<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> }</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a3f3cb6ac70cce2db8234669b745b4538"> 150</a></span> <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> </div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="ethdi_8h.html#a7c379f4a70692477327fb1a3538cfd1e"> 152</a></span> <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> <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> <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> </div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <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> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <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>  <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>  uint16_t cp_vlan, uint16_t up_vlan);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <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> <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> <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> <span class="preprocessor">#if 0</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <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> <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> <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> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <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> 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> </div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <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  <a href="http://www.doxygen.org/index.html">
127 <img class="footer" src="doxygen.png" alt="doxygen"/>