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: xran_lib_wrap.hpp 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_babe8eacf738372576863f88f66866a5.html">test</a></li><li class="navelem"><a class="el" href="dir_1bd9561fc3fad99ea06f3a94905f6e7f.html">common</a></li> </ul>
66 <div class="headertitle">
67 <div class="title">xran_lib_wrap.hpp</div> </div>
69 <div class="contents">
70 <a href="xran__lib__wrap_8hpp.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="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#ifndef XRAN_LIB_WRAP_HPP</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#define XRAN_LIB_WRAP_HPP</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <exception></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <random></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <utility></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <malloc.h></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <stdint.h></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="common_8hpp.html">common.hpp</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</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="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="xran__common_8h.html">xran_common.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="xran__frame__struct_8h.html">xran_frame_struct.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</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"><a class="line" href="xran__lib__wrap_8hpp.html#a7959c3e12f3260a6461fe2610203d1af"> 38</a></span> <span class="preprocessor">#define XRAN_UT_CFG_FILENAME "conf.json"</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="xran__lib__wrap_8hpp.html#a7c71ebeaaa34df8b1f1e2f33c6d7a54e"> 40</a></span> <span class="preprocessor">#define XRAN_UT_KEY_GLOBALCFG "GLOBAL"</span></div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532"> 41</a></span> <span class="preprocessor">#define XRAN_UT_KEY_GLOBALCFG_IO "io_cfg"</span></div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="xran__lib__wrap_8hpp.html#ad8d180966ea390f149dea00f5616b540"> 42</a></span> <span class="preprocessor">#define XRAN_UT_KEY_GLOBALCFG_EAXCID "eAxCId_cfg"</span></div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="xran__lib__wrap_8hpp.html#a0c97e7d2cdb34b857e3b6de86b49f55d"> 43</a></span> <span class="preprocessor">#define XRAN_UT_KEY_GLOBALCFG_PRACH "prach_cfg"</span></div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a"> 44</a></span> <span class="preprocessor">#define XRAN_UT_KEY_GLOBALCFG_RU "ru_cfg"</span></div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="xran__lib__wrap_8hpp.html#a1976c5b3ee9779f3fe720e706b5c4e72"> 45</a></span> <span class="preprocessor">#define XRAN_UT_KEY_GLOBALCFG_SLOT "slotcfg_"</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="xran__lib__wrap_8hpp.html#a16ea7ba6b48522ff69767c3a3d31b776"> 47</a></span> <span class="preprocessor">#define MAX_NUM_OF_XRAN_CTX (2)</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"><a class="line" href="xran__lib__wrap_8hpp.html#a7b323875aec9da8e30e082063f75b50b"> 49</a></span> <span class="preprocessor">#define SW_FPGA_TOTAL_BUFFER_LEN (4*1024*1024*1024)</span></div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="xran__lib__wrap_8hpp.html#ae9c34194d5ec7c9c24b680085991306c"> 50</a></span> <span class="preprocessor">#define SW_FPGA_SEGMENT_BUFFER_LEN (1*1024*1024*1024)</span></div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="xran__lib__wrap_8hpp.html#ad5b1e2ec82b937000bd1fe89acb5384c"> 51</a></span> <span class="preprocessor">#define SW_FPGA_FH_TOTAL_BUFFER_LEN (1*1024*1024*1024)</span></div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="xran__lib__wrap_8hpp.html#a67e68cef19d6e679b04c315c9234a0e3"> 52</a></span> <span class="preprocessor">#define FPGA_TO_SW_PRACH_RX_BUFFER_LEN (8192)</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"><a class="line" href="xran__lib__wrap_8hpp.html#a14c306e04a1b3ecdd13b82ab9ca6c9b5"> 54</a></span> <span class="preprocessor">#define MAX_ANT_CARRIER_SUPPORTED (XRAN_MAX_SECTOR_NR*XRAN_MAX_ANTENNA_NR)</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</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="keyword">extern</span> uint32_t <a class="code" href="xran__lib__wrap_8hpp.html#a273a09cbea9267272f4e2a339059e442">xran_lib_ota_tti</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">extern</span> uint32_t <a class="code" href="xran__lib__wrap_8hpp.html#a8cec0b41a42705e6ab9f49914ca666c2">xran_lib_ota_sym</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">extern</span> uint32_t <a class="code" href="xran__lib__wrap_8hpp.html#a98175f360f5753bc99c4edd3c2d8bd04">xran_lib_ota_sym_idx</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keywordtype">void</span> <a class="code" href="xran__lib__wrap_8hpp.html#a6c189fbbc24f87fad24cff9cbd0e6a42">sym_ota_cb</a>(<span class="keyword">struct</span> rte_timer *tim, <span class="keywordtype">void</span> *arg);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keywordtype">void</span> <a class="code" href="xran__lib__wrap_8hpp.html#a9c3700d61ba446fa9b05cca2ca9018ab">tti_ota_cb</a>(<span class="keyword">struct</span> rte_timer *tim, <span class="keywordtype">void</span> *arg);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html"> 66</a></span> <span class="keyword">class </span><a class="code" href="classxran_lib_wraper.html">xranLibWraper</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46"> 69</a></span>  <span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a4d401558e32ed1e564c795cdc03ee5e5"> 71</a></span>  <a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a4d401558e32ed1e564c795cdc03ee5e5">XRANFTHTX_OUT</a> = 0,</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a93393e301d55554422fb4780cbaf1cb1"> 72</a></span>  <a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a93393e301d55554422fb4780cbaf1cb1">XRANFTHTX_PRB_MAP_OUT</a>,</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a18f6c4a01fa5ed71ccbe1caa53201f4b"> 73</a></span>  <a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a18f6c4a01fa5ed71ccbe1caa53201f4b">XRANFTHTX_SEC_DESC_OUT</a>,</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a18a697e15ab9936bdc60f3e5b83ddf54"> 74</a></span>  <a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a18a697e15ab9936bdc60f3e5b83ddf54">XRANFTHRX_IN</a>,</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a49ff95bd57852bfa8cfd8039fffad1e2"> 75</a></span>  <a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a49ff95bd57852bfa8cfd8039fffad1e2">XRANFTHRX_PRB_MAP_IN</a>,</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46adc5b684e21c0681c775b8f903328de35"> 76</a></span>  <a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46adc5b684e21c0681c775b8f903328de35">XRANFTHTX_SEC_DESC_IN</a>,</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a08f01b9504a22e9c6b9692585b471729"> 77</a></span>  <a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a08f01b9504a22e9c6b9692585b471729">XRANFTHRACH_IN</a>,</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a6365b7a9adffb0e096ffbd8012b909c1"> 78</a></span>  <a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a6365b7a9adffb0e096ffbd8012b909c1">MAX_SW_XRAN_INTERFACE_NUM</a></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  } <a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46">SWXRANInterfaceTypeEnum</a>;</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="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5"> 81</a></span>  <span class="keyword">enum</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5">nChBw</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="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5afe7527756943cdf6474ad1c40ac7d716"> 83</a></span>  <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5afe7527756943cdf6474ad1c40ac7d716">PHY_BW_5MHZ</a> = 5, <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5aae465d43fabe2dda9a2c6dbd2fa1099a">PHY_BW_10MHZ</a> = 10, <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a6eac287ee60ef4b214f6cd0b8196c7e4">PHY_BW_15MHZ</a> = 15,</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5acb0fe0e94ea4f59ab5dd24203d20e7a4"> 84</a></span>  <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a9aacdbe3977171e1dda54f4778698ae8">PHY_BW_20MHZ</a> = 20, <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a5b785d20b7b0bf419524631adcb69df2">PHY_BW_25MHZ</a> = 25, <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5acb0fe0e94ea4f59ab5dd24203d20e7a4">PHY_BW_30MHZ</a> = 30,</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5acc82a679f8781bb880161e53650bdc33"> 85</a></span>  <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a5a479142e60c93d76621c1390d029109">PHY_BW_40MHZ</a> = 40, <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a890aa1814878ba9f0adfab63784ef1c1">PHY_BW_50MHZ</a> = 50, <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5acc82a679f8781bb880161e53650bdc33">PHY_BW_60MHZ</a> = 60,</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a78c8c492b7c956fcd6b6e704662d385f"> 86</a></span>  <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a3e20f3de146adbc3420c294819ec1e19">PHY_BW_70MHZ</a> = 70, <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a22ec162486eef1dd707ae1bd7ac8bde6">PHY_BW_80MHZ</a> = 80, <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a78c8c492b7c956fcd6b6e704662d385f">PHY_BW_90MHZ</a> = 90,</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a7217a56ae78997c5ae511d10ebb4c924"> 87</a></span>  <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5aa890924947f41b2c05cb5acf87b463cb">PHY_BW_100MHZ</a> = 100, <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a845dedb5bd2f41b50f6a7268473435a0">PHY_BW_200MHZ</a> = 200, <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a7217a56ae78997c5ae511d10ebb4c924">PHY_BW_400MHZ</a> = 400</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  };</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// F1 Tables 38.101-1 Table 5.3.2-1. Maximum transmission bandwidth configuration NRB</span></div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a95651581b17afb55b04ca83f04261353"> 91</a></span>  <span class="keyword">const</span> uint16_t <a class="code" href="classxran_lib_wraper.html#a95651581b17afb55b04ca83f04261353">nNumRbsPerSymF1</a>[3][13] =</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// 5MHz 10MHz 15MHz 20MHz 25MHz 30MHz 40MHz 50MHz 60MHz 70MHz 80MHz 90MHz 100MHz</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  { 25, 52, 79, 106, 133, 160, 216, 270, 0, 0, 0, 0, 0 }, <span class="comment">// Numerology 0 (15KHz)</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  { 11, 24, 38, 51, 65, 78, 106, 133, 162, 0, 217, 245, 273 }, <span class="comment">// Numerology 1 (30KHz)</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  { 0, 11, 18, 24, 31, 38, 51, 65, 79, 0, 107, 121, 135 } <span class="comment">// Numerology 2 (60KHz)</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  };</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="comment">// F2 Tables 38.101-2 Table 5.3.2-1. Maximum transmission bandwidth configuration NRB</span></div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#aa77e335f5b2d2cc1d81de7a55f122ded"> 100</a></span>  <span class="keyword">const</span> uint16_t <a class="code" href="classxran_lib_wraper.html#aa77e335f5b2d2cc1d81de7a55f122ded">nNumRbsPerSymF2</a>[2][4] =</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">// 50MHz 100MHz 200MHz 400MHz</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  { 66, 132, 264, 0 }, <span class="comment">// Numerology 2 (60KHz)</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  { 32, 66, 132, 264 } <span class="comment">// Numerology 3 (120KHz)</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  };</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</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> <span class="keyword">protected</span>:</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#ac6f9b50e19408f0c2efdcf7e5dd204a9"> 109</a></span>  <span class="keywordtype">char</span> <a class="code" href="classxran_lib_wraper.html#ac6f9b50e19408f0c2efdcf7e5dd204a9">argv</a>[25] = <span class="stringliteral">"unittest"</span>;</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="classxran_lib_wraper.html#a790ada9a4b1a467dc29bc4bfa1ec3e20"> 111</a></span>  std::string <a class="code" href="classxran_lib_wraper.html#a790ada9a4b1a467dc29bc4bfa1ec3e20">m_dpdk_dev_up</a>, <a class="code" href="classxran_lib_wraper.html#aa0dbf843da8d26633022c153c473deb5">m_dpdk_dev_cp</a>, <a class="code" href="classxran_lib_wraper.html#af2f499e1b7c34ec4e1c600e00bddc75f">m_dpdk_bbdev</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="classxran_lib_wraper.html#adcc43270fba1599cebe2bc32eca45554"> 113</a></span>  <span class="keywordtype">void</span> *<a class="code" href="classxran_lib_wraper.html#adcc43270fba1599cebe2bc32eca45554">m_xranhandle</a>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#ab58608944b110026e58c96affe100111"> 115</a></span>  uint8_t <a class="code" href="classxran_lib_wraper.html#ab58608944b110026e58c96affe100111">m_du_mac</a>[6] = { 0x00,0x11, 0x22, 0x33, 0x44, 0x66 };</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a5914f36a470616ef17f5b663a8d21b30"> 116</a></span>  uint8_t <a class="code" href="classxran_lib_wraper.html#a5914f36a470616ef17f5b663a8d21b30">m_ru_mac</a>[6] = { 0x00,0x11, 0x22, 0x33, 0x44, 0x55 };</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#ae064c199bd624882f23a786c57aa5afe"> 117</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classxran_lib_wraper.html#ae064c199bd624882f23a786c57aa5afe">m_bSub6</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#aa7e4fc7db724dc357f1425ab426c8921"> 118</a></span>  uint32_t <a class="code" href="classxran_lib_wraper.html#aa7e4fc7db724dc357f1425ab426c8921">m_nSlots</a> = 10;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa"> 120</a></span>  <span class="keyword">struct </span><a class="code" href="structxran__fh__config.html">xran_fh_config</a> <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419"> 121</a></span>  <span class="keyword">struct </span><a class="code" href="structxran__fh__init.html">xran_fh_init</a> <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="structxran_lib_wraper_1_1xran__timer__ctx.html"> 123</a></span>  <span class="keyword">struct </span><a class="code" href="structxran_lib_wraper_1_1xran__timer__ctx.html">xran_timer_ctx</a> {</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="structxran_lib_wraper_1_1xran__timer__ctx.html#ac9a8f4c80840a80e1a27ff9776e13f66"> 124</a></span>  uint32_t <a class="code" href="structxran_lib_wraper_1_1xran__timer__ctx.html#ac9a8f4c80840a80e1a27ff9776e13f66">tti_to_process</a>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  } <a class="code" href="classxran_lib_wraper.html#a74cbf8f188c4df27d645f80be26bb077">m_timer_ctx</a>[<a class="code" href="xran__lib__wrap_8hpp.html#a16ea7ba6b48522ff69767c3a3d31b776">MAX_NUM_OF_XRAN_CTX</a>];</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">/* io struct */</span></div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a4ec48d0ffb9f1f4310057061754541af"> 128</a></span>  <a class="code" href="struct_bbu_io_buf_ctrl_struct.html">BbuIoBufCtrlStruct</a> <a class="code" href="classxran_lib_wraper.html#a4ec48d0ffb9f1f4310057061754541af">m_sFrontHaulTxBbuIoBufCtrl</a>[<a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>][<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>];</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a5de5e6cb2e5beb2315f16ecc06aa2966"> 129</a></span>  <a class="code" href="struct_bbu_io_buf_ctrl_struct.html">BbuIoBufCtrlStruct</a> <a class="code" href="classxran_lib_wraper.html#a5de5e6cb2e5beb2315f16ecc06aa2966">m_sFrontHaulTxPrbMapBbuIoBufCtrl</a>[<a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>][<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>];</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#ad99e9ea539081aeef2978a3f472baf1c"> 130</a></span>  <a class="code" href="struct_bbu_io_buf_ctrl_struct.html">BbuIoBufCtrlStruct</a> <a class="code" href="classxran_lib_wraper.html#ad99e9ea539081aeef2978a3f472baf1c">m_sFrontHaulRxBbuIoBufCtrl</a>[<a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>][<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>];</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a5d7d51f26d22de978142c336c82b8736"> 131</a></span>  <a class="code" href="struct_bbu_io_buf_ctrl_struct.html">BbuIoBufCtrlStruct</a> <a class="code" href="classxran_lib_wraper.html#a5d7d51f26d22de978142c336c82b8736">m_sFrontHaulRxPrbMapBbuIoBufCtrl</a>[<a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>][<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>];</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a4e219881fa053028c692fb10ae2bb5a3"> 132</a></span>  <a class="code" href="struct_bbu_io_buf_ctrl_struct.html">BbuIoBufCtrlStruct</a> <a class="code" href="classxran_lib_wraper.html#a4e219881fa053028c692fb10ae2bb5a3">m_sFHPrachRxBbuIoBufCtrl</a>[<a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>][<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</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>  <span class="comment">/* buffers lists */</span></div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#aaf96fa2c0147a497910401ba377506db"> 135</a></span>  <span class="keyword">struct </span><a class="code" href="structxran__flat__buffer.html">xran_flat_buffer</a> <a class="code" href="classxran_lib_wraper.html#aaf96fa2c0147a497910401ba377506db">m_sFrontHaulTxBuffers</a>[<a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>][<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>];</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#aa1611b01fe2d460ebe58e45c901f68e8"> 136</a></span>  <span class="keyword">struct </span><a class="code" href="structxran__flat__buffer.html">xran_flat_buffer</a> <a class="code" href="classxran_lib_wraper.html#aa1611b01fe2d460ebe58e45c901f68e8">m_sFrontHaulTxPrbMapBuffers</a>[<a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>][<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>];</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a6284df81f3334e6319e99aa3d368acec"> 137</a></span>  <span class="keyword">struct </span><a class="code" href="structxran__flat__buffer.html">xran_flat_buffer</a> <a class="code" href="classxran_lib_wraper.html#a6284df81f3334e6319e99aa3d368acec">m_sFrontHaulRxBuffers</a>[<a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>][<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>];</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a21adf86e6b2a299b94a4eb59b6094863"> 138</a></span>  <span class="keyword">struct </span><a class="code" href="structxran__flat__buffer.html">xran_flat_buffer</a> <a class="code" href="classxran_lib_wraper.html#a21adf86e6b2a299b94a4eb59b6094863">m_sFrontHaulRxPrbMapBuffers</a>[<a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>][<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>];</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#ad84b20c11b0095b35674f3eb1c247375"> 139</a></span>  <span class="keyword">struct </span><a class="code" href="structxran__flat__buffer.html">xran_flat_buffer</a> <a class="code" href="classxran_lib_wraper.html#ad84b20c11b0095b35674f3eb1c247375">m_sFHPrachRxBuffers</a>[<a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>][<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>];</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a80a3e8332a69c2beb5df4ad72b4a022c"> 141</a></span>  <span class="keywordtype">void</span> *<a class="code" href="classxran_lib_wraper.html#a80a3e8332a69c2beb5df4ad72b4a022c">m_nInstanceHandle</a>[<a class="code" href="xran__fh__o__du_8h.html#ac1e23b437693cb93f1ddd5a74f97cab4">XRAN_PORTS_NUM</a>][<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>]; <span class="comment">// instance per sector</span></div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a9270468afb68051247edd5953b828aca"> 142</a></span>  uint32_t <a class="code" href="classxran_lib_wraper.html#a9270468afb68051247edd5953b828aca">m_nBufPoolIndex</a>[<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>][<a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a6365b7a9adffb0e096ffbd8012b909c1">MAX_SW_XRAN_INTERFACE_NUM</a>]; <span class="comment">// every api owns unique buffer pool</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a21b3d390c6eee5d15152cdc5459ff523"> 144</a></span>  uint32_t <a class="code" href="classxran_lib_wraper.html#a21b3d390c6eee5d15152cdc5459ff523">m_nSW_ToFpga_FTH_TxBufferLen</a>;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#af53e776036ad72ea2d2e5a2bdbbdc0b2"> 145</a></span>  uint32_t <a class="code" href="classxran_lib_wraper.html#af53e776036ad72ea2d2e5a2bdbbdc0b2">m_nFpgaToSW_FTH_RxBufferLen</a>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a98ce8fded84309c17c61f4dd902d4e0f"> 147</a></span>  int32_t <a class="code" href="classxran_lib_wraper.html#a98ce8fded84309c17c61f4dd902d4e0f">m_nSectorIndex</a>[<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>];</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#ad1ab6e8c4efe2805b76180b34ce4c019"> 149</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#ad1ab6e8c4efe2805b76180b34ce4c019">iq_bfw_buffer_size_dl</a> = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a8b3edaed699562559db744c8e2aa36b1"> 150</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#a8b3edaed699562559db744c8e2aa36b1">iq_bfw_buffer_size_ul</a> = 0;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="comment">/* beamforming weights for UL (O-DU) */</span></div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a77bd4ecb90ef07ddc1420242672b1587"> 153</a></span>  int16_t *<a class="code" href="classxran_lib_wraper.html#a77bd4ecb90ef07ddc1420242672b1587">p_tx_dl_bfw_buffer</a>[<a class="code" href="xran__lib__wrap_8hpp.html#a14c306e04a1b3ecdd13b82ab9ca6c9b5">MAX_ANT_CARRIER_SUPPORTED</a>];</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#aad7c467bc9da44318d2e8cf2f4472f17"> 154</a></span>  int32_t <a class="code" href="classxran_lib_wraper.html#aad7c467bc9da44318d2e8cf2f4472f17">tx_dl_bfw_buffer_size</a>[<a class="code" href="xran__lib__wrap_8hpp.html#a14c306e04a1b3ecdd13b82ab9ca6c9b5">MAX_ANT_CARRIER_SUPPORTED</a>];</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a364dd5820c1bb3fc2f760e5b6cab5b98"> 155</a></span>  int32_t <a class="code" href="classxran_lib_wraper.html#a364dd5820c1bb3fc2f760e5b6cab5b98">tx_dl_bfw_buffer_position</a>[<a class="code" href="xran__lib__wrap_8hpp.html#a14c306e04a1b3ecdd13b82ab9ca6c9b5">MAX_ANT_CARRIER_SUPPORTED</a>];</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="comment">/* beamforming weights for UL (O-DU) */</span></div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a95b1981d7d33eb50789dbc55d5d2755f"> 158</a></span>  int16_t *<a class="code" href="classxran_lib_wraper.html#a95b1981d7d33eb50789dbc55d5d2755f">p_tx_ul_bfw_buffer</a>[<a class="code" href="xran__lib__wrap_8hpp.html#a14c306e04a1b3ecdd13b82ab9ca6c9b5">MAX_ANT_CARRIER_SUPPORTED</a>];</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a2fca7a2340a727f72d85407c5e153ed4"> 159</a></span>  int32_t <a class="code" href="classxran_lib_wraper.html#a2fca7a2340a727f72d85407c5e153ed4">tx_ul_bfw_buffer_size</a>[<a class="code" href="xran__lib__wrap_8hpp.html#a14c306e04a1b3ecdd13b82ab9ca6c9b5">MAX_ANT_CARRIER_SUPPORTED</a>];</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#adc7a94af3a9c52fdb09e8733264eee4a"> 160</a></span>  int32_t <a class="code" href="classxran_lib_wraper.html#adc7a94af3a9c52fdb09e8733264eee4a">tx_ul_bfw_buffer_position</a>[<a class="code" href="xran__lib__wrap_8hpp.html#a14c306e04a1b3ecdd13b82ab9ca6c9b5">MAX_ANT_CARRIER_SUPPORTED</a>];</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="classnlohmann_1_1basic__json.html">json</a> m_global_cfg;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  T get_globalcfg(<span class="keyword">const</span> std::string &type, <span class="keyword">const</span> std::string &parameter_name)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">return</span> m_global_cfg[<a class="code" href="xran__lib__wrap_8hpp.html#a7c71ebeaaa34df8b1f1e2f33c6d7a54e">XRAN_UT_KEY_GLOBALCFG</a>][type][parameter_name];</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  std::vector<T> get_globalcfg_array(<span class="keyword">const</span> std::string &type, <span class="keyword">const</span> std::string &parameter_name)</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="keyword">auto</span> array_size = m_global_cfg[<a class="code" href="xran__lib__wrap_8hpp.html#a7c71ebeaaa34df8b1f1e2f33c6d7a54e">XRAN_UT_KEY_GLOBALCFG</a>][type][parameter_name].<a class="code" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d">size</a>();</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>  std::vector<T> result(array_size);</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="keywordflow">for</span>(<span class="keywordtype">unsigned</span> number = 0; number < array_size; number++)</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  result.at(number) = m_global_cfg[<a class="code" href="xran__lib__wrap_8hpp.html#a7c71ebeaaa34df8b1f1e2f33c6d7a54e">XRAN_UT_KEY_GLOBALCFG</a>][type][parameter_name][number];</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  uint16_t get_eaxcid_mask(<span class="keywordtype">int</span> numbit, <span class="keywordtype">int</span> shift)</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  uint16_t result = 0;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i < numbit; i++) {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  result = result << 1; result +=1;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">return</span> (result << shift);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordtype">int</span> init_memory()</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="xran__fh__o__du_8h.html#aa3ceca070f84e316e0e2f6002419d572">xran_status_t</a> status;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  int32_t i, j, k, z;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  SWXRANInterfaceTypeEnum eInterfaceType;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordtype">void</span> *ptr;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordtype">void</span> *mb;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  uint32_t *u32dptr;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  uint16_t *u16dptr;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  uint8_t *u8dptr;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  std::cout << <span class="stringliteral">"XRAN front haul xran_mm_init"</span> << std::endl;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  status = <a class="code" href="xran__fh__o__du_8h.html#a999189549fd6b524b733ddd61f1f9962">xran_mm_init</a>(m_xranhandle, (uint64_t) <a class="code" href="xran__lib__wrap_8hpp.html#ad5b1e2ec82b937000bd1fe89acb5384c">SW_FPGA_FH_TOTAL_BUFFER_LEN</a>, <a class="code" href="xran__lib__wrap_8hpp.html#ae9c34194d5ec7c9c24b680085991306c">SW_FPGA_SEGMENT_BUFFER_LEN</a>);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">if</span>(status != <a class="code" href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a>) {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  std::cout << <span class="stringliteral">"Failed at XRAN front haul xran_mm_init"</span> << std::endl;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="comment">/* initialize maximum instances to have flexibility for the tests */</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordtype">int</span> nInstanceNum = <a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="comment">/* initialize maximum supported CC to have flexibility on the test */</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  int32_t nSectorNum = 6;<span class="comment">//XRAN_MAX_SECTOR_NR;</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">for</span>(k = 0; k < <a class="code" href="xran__fh__o__du_8h.html#ac1e23b437693cb93f1ddd5a74f97cab4">XRAN_PORTS_NUM</a>; k++) {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  status = <a class="code" href="xran__fh__o__du_8h.html#adf5ead6a9f90b5d524e8012521d64bb5">xran_sector_get_instances</a>(m_xranhandle, nInstanceNum, &m_nInstanceHandle[k][0]);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">if</span>(status != <a class="code" href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a>) {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  std::cout << <span class="stringliteral">"get sector instance failed "</span> << k << <span class="stringliteral">" for XRAN nInstanceNum "</span> << nInstanceNum << std::endl;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">for</span> (i = 0; i < nInstanceNum; i++)</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  std::cout << __func__ << <span class="stringliteral">" ["</span> << k << <span class="stringliteral">"]: CC "</span> << i << <span class="stringliteral">" handle "</span> << m_nInstanceHandle[0][i] << std::endl;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  std::cout << <span class="stringliteral">"Sucess xran_mm_init"</span> << std::endl;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="comment">/* Init Memory */</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">for</span>(i = 0; i<nSectorNum; i++) {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  eInterfaceType = <a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a4d401558e32ed1e564c795cdc03ee5e5">XRANFTHTX_OUT</a>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  status = <a class="code" href="xran__fh__o__du_8h.html#a39a9f7b5d01979eb1f8d806d6b9c50fe">xran_bm_init</a>(m_nInstanceHandle[0][i],</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  &m_nBufPoolIndex[m_nSectorIndex[i]][eInterfaceType],</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a> * <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a> * <a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>,</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  m_nSW_ToFpga_FTH_TxBufferLen);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">if</span>(status != <a class="code" href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a>) {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  std::cout << __LINE__ << <span class="stringliteral">" Failed at xran_bm_init, status "</span> << status << std::endl;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">for</span>(j = 0; j < <a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>; j++) {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">for</span>(z = 0; z < <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>; z++){</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  m_sFrontHaulTxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a48c33fa4a8f2f93d51cba58b78d3cd9f">bValid</a> = 0;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  m_sFrontHaulTxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#af00b094918ddba2073443dcd755141f6">nSegGenerated</a> = -1;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  m_sFrontHaulTxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a7dc97933eadb8a8049057209c3303818">nSegToBeGen</a> = -1;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  m_sFrontHaulTxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a09ab9a2f4541256129428a4ccabc6803">nSegTransferred</a> = 0;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  m_sFrontHaulTxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#a3d723fbd99a0f76d412b2b79931fbc6e">nNumBuffers</a> = <a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  m_sFrontHaulTxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a> = &<a class="code" href="classxran_lib_wraper.html#aaf96fa2c0147a497910401ba377506db">m_sFrontHaulTxBuffers</a>[j][i][z][0];</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">for</span>(k = 0; k < <a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>; k++) {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  m_sFrontHaulTxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>[k].<a class="code" href="structxran__flat__buffer.html#ac9d92d585877c2ef1af759479baf85fe">nElementLenInBytes</a> = <a class="code" href="classxran_lib_wraper.html#a21b3d390c6eee5d15152cdc5459ff523">m_nSW_ToFpga_FTH_TxBufferLen</a>; <span class="comment">// 14 symbols 3200bytes/symbol</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  m_sFrontHaulTxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>[k].<a class="code" href="structxran__flat__buffer.html#a4371798a7694f5939136dca8baa93f21">nNumberOfElements</a> = 1;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  m_sFrontHaulTxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>[k].<a class="code" href="structxran__flat__buffer.html#a2c3c46f4c4709f349a0cc62bae9ca92d">nOffsetInBytes</a> = 0;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  status = <a class="code" href="xran__fh__o__du_8h.html#ae79ca138dc77d69ef692886be4e5da81">xran_bm_allocate_buffer</a>(m_nInstanceHandle[0][i], m_nBufPoolIndex[m_nSectorIndex[i]][eInterfaceType], &ptr, &mb);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">if</span>(status != <a class="code" href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a>) {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  std::cout << __LINE__ << <span class="stringliteral">" Failed at xran_bm_allocate_buffer, status "</span> << status << std::endl;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  m_sFrontHaulTxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>[k].<a class="code" href="structxran__flat__buffer.html#a77f0d5374ee675db57c0b29946ca7744">pData</a> = (uint8_t *)ptr;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  m_sFrontHaulTxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>[k].<a class="code" href="structxran__flat__buffer.html#addb9297d816b26c680888115de8c9538">pCtrl</a> = (<span class="keywordtype">void</span> *)mb;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">if</span>(ptr) {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  u32dptr = (uint32_t*)(ptr);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  uint8_t *ptr_temp = (uint8_t *)ptr;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  memset(u32dptr, 0x0, m_nSW_ToFpga_FTH_TxBufferLen);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  }</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="comment">/* C-plane DL */</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  eInterfaceType = <a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a18f6c4a01fa5ed71ccbe1caa53201f4b">XRANFTHTX_SEC_DESC_OUT</a>;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  status = <a class="code" href="xran__fh__o__du_8h.html#a39a9f7b5d01979eb1f8d806d6b9c50fe">xran_bm_init</a>(m_nInstanceHandle[0][i],</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  &m_nBufPoolIndex[m_nSectorIndex[i]][eInterfaceType],</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  XRAN_N_FE_BUF_LEN * <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a> * XRAN_NUM_OF_SYMBOL_PER_SLOT*<a class="code" href="xran__fh__o__du_8h.html#aa099ceebb1479cddef1ee64f5c311973">XRAN_MAX_SECTIONS_PER_SYM</a>, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structxran__section__desc.html">xran_section_desc</a>));</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">if</span>(<a class="code" href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a> != status) {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  std::cout << __LINE__ << <span class="stringliteral">" Failed at xran_bm_init, status "</span> << status << std::endl;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  eInterfaceType = <a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a93393e301d55554422fb4780cbaf1cb1">XRANFTHTX_PRB_MAP_OUT</a>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  status = <a class="code" href="xran__fh__o__du_8h.html#a39a9f7b5d01979eb1f8d806d6b9c50fe">xran_bm_init</a>(m_nInstanceHandle[0][i],</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  &m_nBufPoolIndex[m_nSectorIndex[i]][eInterfaceType],</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  XRAN_N_FE_BUF_LEN * <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a> * XRAN_NUM_OF_SYMBOL_PER_SLOT,</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structxran__prb__map.html">xran_prb_map</a>));</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">if</span>(status != <a class="code" href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a>) {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  std::cout << __LINE__ << <span class="stringliteral">" Failed at xran_bm_init, status "</span> << status << std::endl;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordflow">for</span>(j = 0; j < <a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>; j++) {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">for</span>(z = 0; z < <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>; z++) {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  m_sFrontHaulTxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a48c33fa4a8f2f93d51cba58b78d3cd9f">bValid</a> = 0;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  m_sFrontHaulTxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#af00b094918ddba2073443dcd755141f6">nSegGenerated</a> = -1;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  m_sFrontHaulTxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a7dc97933eadb8a8049057209c3303818">nSegToBeGen</a> = -1;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  m_sFrontHaulTxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a09ab9a2f4541256129428a4ccabc6803">nSegTransferred</a> = 0;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  m_sFrontHaulTxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#a3d723fbd99a0f76d412b2b79931fbc6e">nNumBuffers</a> = <a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  m_sFrontHaulTxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a> = &<a class="code" href="classxran_lib_wraper.html#aa1611b01fe2d460ebe58e45c901f68e8">m_sFrontHaulTxPrbMapBuffers</a>[j][i][z];</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  m_sFrontHaulTxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>-><a class="code" href="structxran__flat__buffer.html#ac9d92d585877c2ef1af759479baf85fe">nElementLenInBytes</a> = <span class="keyword">sizeof</span>(<span class="keyword">struct </span><a class="code" href="structxran__prb__map.html">xran_prb_map</a>);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  m_sFrontHaulTxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>-><a class="code" href="structxran__flat__buffer.html#a4371798a7694f5939136dca8baa93f21">nNumberOfElements</a> = 1;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  m_sFrontHaulTxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>-><a class="code" href="structxran__flat__buffer.html#a2c3c46f4c4709f349a0cc62bae9ca92d">nOffsetInBytes</a> = 0;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  status = <a class="code" href="xran__fh__o__du_8h.html#ae79ca138dc77d69ef692886be4e5da81">xran_bm_allocate_buffer</a>(m_nInstanceHandle[0][i], m_nBufPoolIndex[m_nSectorIndex[i]][eInterfaceType], &ptr, &mb);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">if</span>(status != <a class="code" href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a>) {</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  std::cout << __LINE__ << <span class="stringliteral">" Failed at xran_bm_allocate_buffer, status "</span> << status << std::endl;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  m_sFrontHaulTxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>-><a class="code" href="structxran__flat__buffer.html#a77f0d5374ee675db57c0b29946ca7744">pData</a> = (uint8_t *)ptr;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  m_sFrontHaulTxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>-><a class="code" href="structxran__flat__buffer.html#addb9297d816b26c680888115de8c9538">pCtrl</a> = (<span class="keywordtype">void</span> *)mb;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordtype">void</span> *sd_ptr;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordtype">void</span> *sd_mb;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordtype">int</span> elm_id;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keyword">struct </span><a class="code" href="structxran__prb__map.html">xran_prb_map</a> * p_rb_map = (<span class="keyword">struct </span><a class="code" href="structxran__prb__map.html">xran_prb_map</a> *)ptr;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="comment">//memcpy(ptr, &startupConfiguration.PrbMap, sizeof(struct xran_prb_map));</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">for</span> (elm_id = 0; elm_id < <a class="code" href="xran__fh__o__du_8h.html#aa099ceebb1479cddef1ee64f5c311973">XRAN_MAX_SECTIONS_PER_SYM</a>; elm_id++){</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keyword">struct </span><a class="code" href="structxran__prb__elm.html">xran_prb_elm</a> *pPrbElem = &p_rb_map-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[elm_id];</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">for</span>(k = 0; k < <a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>; k++){</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  status = <a class="code" href="xran__fh__o__du_8h.html#ae79ca138dc77d69ef692886be4e5da81">xran_bm_allocate_buffer</a>(m_nInstanceHandle[0][i], m_nBufPoolIndex[m_nSectorIndex[i]][<a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a18f6c4a01fa5ed71ccbe1caa53201f4b">XRANFTHTX_SEC_DESC_OUT</a>], &sd_ptr, &sd_mb);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">if</span>(<a class="code" href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a> != status){</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  std::cout << __LINE__ << <span class="stringliteral">"SD Failed at xran_bm_allocate_buffer , status %d\n"</span> << status << std::endl;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  pPrbElem-><a class="code" href="structxran__prb__elm.html#a6c405fdd34c38d29b355cd051527ad9b">p_sec_desc</a>[k] = (<span class="keyword">struct </span><a class="code" href="structxran__section__desc.html">xran_section_desc</a> *)sd_ptr;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  }</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  }</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">for</span>(i = 0; i<nSectorNum; i++) {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  eInterfaceType = <a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a18a697e15ab9936bdc60f3e5b83ddf54">XRANFTHRX_IN</a>;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  status = <a class="code" href="xran__fh__o__du_8h.html#a39a9f7b5d01979eb1f8d806d6b9c50fe">xran_bm_init</a>(m_nInstanceHandle[0][i],</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  &m_nBufPoolIndex[m_nSectorIndex[i]][eInterfaceType],</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a> * <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a> * <a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>,</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  m_nSW_ToFpga_FTH_TxBufferLen); <span class="comment">/* ????, actual alloc size is m_nFpgaToSW_FTH_RxBUfferLen */</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">if</span>(status != <a class="code" href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a>) {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  std::cout << __LINE__ << <span class="stringliteral">" Failed at xran_bm_init, status "</span> << status << std::endl;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">for</span>(j = 0;j < <a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>; j++) {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keywordflow">for</span>(z = 0; z < <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>; z++) {</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  m_sFrontHaulRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a48c33fa4a8f2f93d51cba58b78d3cd9f">bValid</a> = 0;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  m_sFrontHaulRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#af00b094918ddba2073443dcd755141f6">nSegGenerated</a> = -1;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  m_sFrontHaulRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a7dc97933eadb8a8049057209c3303818">nSegToBeGen</a> = -1;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  m_sFrontHaulRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a09ab9a2f4541256129428a4ccabc6803">nSegTransferred</a> = 0;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  m_sFrontHaulRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#a3d723fbd99a0f76d412b2b79931fbc6e">nNumBuffers</a> = <a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  m_sFrontHaulRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a> = &<a class="code" href="classxran_lib_wraper.html#a6284df81f3334e6319e99aa3d368acec">m_sFrontHaulRxBuffers</a>[j][i][z][0];</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">for</span>(k = 0; k< <a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>; k++) {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  m_sFrontHaulRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>[k].<a class="code" href="structxran__flat__buffer.html#ac9d92d585877c2ef1af759479baf85fe">nElementLenInBytes</a> = <a class="code" href="classxran_lib_wraper.html#af53e776036ad72ea2d2e5a2bdbbdc0b2">m_nFpgaToSW_FTH_RxBufferLen</a>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  m_sFrontHaulRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>[k].<a class="code" href="structxran__flat__buffer.html#a4371798a7694f5939136dca8baa93f21">nNumberOfElements</a> = 1;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  m_sFrontHaulRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>[k].<a class="code" href="structxran__flat__buffer.html#a2c3c46f4c4709f349a0cc62bae9ca92d">nOffsetInBytes</a> = 0;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  status = <a class="code" href="xran__fh__o__du_8h.html#ae79ca138dc77d69ef692886be4e5da81">xran_bm_allocate_buffer</a>(m_nInstanceHandle[0][i], m_nBufPoolIndex[m_nSectorIndex[i]][eInterfaceType],&ptr, &mb);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">if</span>(status != <a class="code" href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a>) {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  std::cout << __LINE__ << <span class="stringliteral">" Failed at xran_bm_allocate_buffer, status "</span> << status << std::endl;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  m_sFrontHaulRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>[k].<a class="code" href="structxran__flat__buffer.html#a77f0d5374ee675db57c0b29946ca7744">pData</a> = (uint8_t *)ptr;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  m_sFrontHaulRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>[k].<a class="code" href="structxran__flat__buffer.html#addb9297d816b26c680888115de8c9538">pCtrl</a> = (<span class="keywordtype">void</span> *) mb;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordflow">if</span>(ptr) {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  u32dptr = (uint32_t*)(ptr);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  uint8_t *ptr_temp = (uint8_t *)ptr;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  memset(u32dptr, 0x0, m_nFpgaToSW_FTH_RxBufferLen);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  }</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  }</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span> </div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  eInterfaceType = <a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46adc5b684e21c0681c775b8f903328de35">XRANFTHTX_SEC_DESC_IN</a>;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  status = <a class="code" href="xran__fh__o__du_8h.html#a39a9f7b5d01979eb1f8d806d6b9c50fe">xran_bm_init</a>(m_nInstanceHandle[0][i],</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  &m_nBufPoolIndex[m_nSectorIndex[i]][eInterfaceType],</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  XRAN_N_FE_BUF_LEN * <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a> * XRAN_NUM_OF_SYMBOL_PER_SLOT*<a class="code" href="xran__fh__o__du_8h.html#aa099ceebb1479cddef1ee64f5c311973">XRAN_MAX_SECTIONS_PER_SYM</a>, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structxran__section__desc.html">xran_section_desc</a>));</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordflow">if</span>(<a class="code" href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a> != status) {</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  std::cout << __LINE__ << <span class="stringliteral">" Failed at xran_bm_init, status "</span> << status << std::endl;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  }</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  eInterfaceType = <a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a49ff95bd57852bfa8cfd8039fffad1e2">XRANFTHRX_PRB_MAP_IN</a>;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  status = <a class="code" href="xran__fh__o__du_8h.html#a39a9f7b5d01979eb1f8d806d6b9c50fe">xran_bm_init</a>(m_nInstanceHandle[0][i],</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  &m_nBufPoolIndex[m_nSectorIndex[i]][eInterfaceType],</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  XRAN_N_FE_BUF_LEN * <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a> * XRAN_NUM_OF_SYMBOL_PER_SLOT,</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structxran__prb__map.html">xran_prb_map</a>));</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordflow">if</span>(status != <a class="code" href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a>) {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  std::cout << __LINE__ << <span class="stringliteral">" Failed at xran_bm_init, status "</span> << status << std::endl;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">for</span>(j = 0;j < <a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>; j++) {</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordflow">for</span>(z = 0; z < <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>; z++) {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  m_sFrontHaulRxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a48c33fa4a8f2f93d51cba58b78d3cd9f">bValid</a> = 0;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  m_sFrontHaulRxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#af00b094918ddba2073443dcd755141f6">nSegGenerated</a> = -1;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  m_sFrontHaulRxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a7dc97933eadb8a8049057209c3303818">nSegToBeGen</a> = -1;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  m_sFrontHaulRxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a09ab9a2f4541256129428a4ccabc6803">nSegTransferred</a> = 0;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  m_sFrontHaulRxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#a3d723fbd99a0f76d412b2b79931fbc6e">nNumBuffers</a> = <a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  m_sFrontHaulRxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a> = &<a class="code" href="classxran_lib_wraper.html#a21adf86e6b2a299b94a4eb59b6094863">m_sFrontHaulRxPrbMapBuffers</a>[j][i][z];</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  m_sFrontHaulRxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>-><a class="code" href="structxran__flat__buffer.html#ac9d92d585877c2ef1af759479baf85fe">nElementLenInBytes</a> = <span class="keyword">sizeof</span>(<span class="keyword">struct </span><a class="code" href="structxran__prb__map.html">xran_prb_map</a>);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  m_sFrontHaulRxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>-><a class="code" href="structxran__flat__buffer.html#a4371798a7694f5939136dca8baa93f21">nNumberOfElements</a> = 1;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  m_sFrontHaulRxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>-><a class="code" href="structxran__flat__buffer.html#a2c3c46f4c4709f349a0cc62bae9ca92d">nOffsetInBytes</a> = 0;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  status = <a class="code" href="xran__fh__o__du_8h.html#ae79ca138dc77d69ef692886be4e5da81">xran_bm_allocate_buffer</a>(m_nInstanceHandle[0][i],m_nBufPoolIndex[m_nSectorIndex[i]][eInterfaceType], &ptr, &mb);</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keywordflow">if</span>(status != <a class="code" href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a>) {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  std::cout << __LINE__ << <span class="stringliteral">" Failed at xran_bm_allocate_buffer , status "</span> << status << std::endl;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  m_sFrontHaulRxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>-><a class="code" href="structxran__flat__buffer.html#a77f0d5374ee675db57c0b29946ca7744">pData</a> = (uint8_t *)ptr;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  m_sFrontHaulRxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>-><a class="code" href="structxran__flat__buffer.html#addb9297d816b26c680888115de8c9538">pCtrl</a> = (<span class="keywordtype">void</span> *)mb;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordtype">void</span> *sd_ptr;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordtype">void</span> *sd_mb;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordtype">int</span> elm_id;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keyword">struct </span><a class="code" href="structxran__prb__map.html">xran_prb_map</a> * p_rb_map = (<span class="keyword">struct </span><a class="code" href="structxran__prb__map.html">xran_prb_map</a> *)ptr;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="comment">//memcpy(ptr, &startupConfiguration.PrbMap, sizeof(struct xran_prb_map));</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keywordflow">for</span> (elm_id = 0; elm_id < <a class="code" href="xran__fh__o__du_8h.html#aa099ceebb1479cddef1ee64f5c311973">XRAN_MAX_SECTIONS_PER_SYM</a>; elm_id++){</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keyword">struct </span><a class="code" href="structxran__prb__elm.html">xran_prb_elm</a> *pPrbElem = &p_rb_map-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[elm_id];</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">for</span>(k = 0; k < <a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>; k++){</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  status = <a class="code" href="xran__fh__o__du_8h.html#ae79ca138dc77d69ef692886be4e5da81">xran_bm_allocate_buffer</a>(m_nInstanceHandle[0][i], m_nBufPoolIndex[m_nSectorIndex[i]][<a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46adc5b684e21c0681c775b8f903328de35">XRANFTHTX_SEC_DESC_IN</a>], &sd_ptr, &sd_mb);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keywordflow">if</span>(<a class="code" href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a> != status){</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  std::cout << __LINE__ << <span class="stringliteral">"SD Failed at xran_bm_allocate_buffer , status %d\n"</span> << status << std::endl;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  }</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  pPrbElem-><a class="code" href="structxran__prb__elm.html#a6c405fdd34c38d29b355cd051527ad9b">p_sec_desc</a>[k] = (<span class="keyword">struct </span><a class="code" href="structxran__section__desc.html">xran_section_desc</a> *)sd_ptr;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  }</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  }</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">for</span>(i = 0; i<nSectorNum; i++) {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  eInterfaceType = <a class="code" href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a08f01b9504a22e9c6b9692585b471729">XRANFTHRACH_IN</a>;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  status = <a class="code" href="xran__fh__o__du_8h.html#a39a9f7b5d01979eb1f8d806d6b9c50fe">xran_bm_init</a>(m_nInstanceHandle[0][i],</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  &m_nBufPoolIndex[m_nSectorIndex[i]][eInterfaceType],</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a> * <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a> * <a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>,</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <a class="code" href="xran__lib__wrap_8hpp.html#a67e68cef19d6e679b04c315c9234a0e3">FPGA_TO_SW_PRACH_RX_BUFFER_LEN</a>);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordflow">if</span>(status != <a class="code" href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a>) {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  std::cout << __LINE__ << <span class="stringliteral">" Failed at xran_bm_init, status "</span> << status << std::endl;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keywordflow">for</span>(j = 0; j < <a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>; j++) {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">for</span>(z = 0; z < <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>; z++) {</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  m_sFHPrachRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a48c33fa4a8f2f93d51cba58b78d3cd9f">bValid</a> = 0;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  m_sFHPrachRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#af00b094918ddba2073443dcd755141f6">nSegGenerated</a> = -1;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  m_sFHPrachRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a7dc97933eadb8a8049057209c3303818">nSegToBeGen</a> = -1;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  m_sFHPrachRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a09ab9a2f4541256129428a4ccabc6803">nSegTransferred</a> = 0;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  m_sFHPrachRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#a3d723fbd99a0f76d412b2b79931fbc6e">nNumBuffers</a> = <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  m_sFHPrachRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a> = &<a class="code" href="classxran_lib_wraper.html#ad84b20c11b0095b35674f3eb1c247375">m_sFHPrachRxBuffers</a>[j][i][z][0];</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">for</span>(k = 0; k< <a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>; k++) {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  m_sFHPrachRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>[k].<a class="code" href="structxran__flat__buffer.html#ac9d92d585877c2ef1af759479baf85fe">nElementLenInBytes</a> = <a class="code" href="xran__lib__wrap_8hpp.html#a67e68cef19d6e679b04c315c9234a0e3">FPGA_TO_SW_PRACH_RX_BUFFER_LEN</a>;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  m_sFHPrachRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>[k].<a class="code" href="structxran__flat__buffer.html#a4371798a7694f5939136dca8baa93f21">nNumberOfElements</a> = 1;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  m_sFHPrachRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>[k].<a class="code" href="structxran__flat__buffer.html#a2c3c46f4c4709f349a0cc62bae9ca92d">nOffsetInBytes</a> = 0;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  status = <a class="code" href="xran__fh__o__du_8h.html#ae79ca138dc77d69ef692886be4e5da81">xran_bm_allocate_buffer</a>(m_nInstanceHandle[0][i], m_nBufPoolIndex[m_nSectorIndex[i]][eInterfaceType], &ptr, &mb);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keywordflow">if</span>(status != <a class="code" href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a>) {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  std::cout << __LINE__ << <span class="stringliteral">" Failed at xran_bm_allocate_buffer, status "</span> << status << std::endl;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  }</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  m_sFHPrachRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>[k].<a class="code" href="structxran__flat__buffer.html#a77f0d5374ee675db57c0b29946ca7744">pData</a> = (uint8_t *)ptr;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  m_sFHPrachRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>.<a class="code" href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">pBuffers</a>[k].<a class="code" href="structxran__flat__buffer.html#addb9297d816b26c680888115de8c9538">pCtrl</a> = (<span class="keywordtype">void</span> *)mb;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">if</span>(ptr) {</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  u32dptr = (uint32_t*)(ptr);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  memset(u32dptr, 0x0, <a class="code" href="xran__lib__wrap_8hpp.html#a67e68cef19d6e679b04c315c9234a0e3">FPGA_TO_SW_PRACH_RX_BUFFER_LEN</a>);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  }</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  }</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  }</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  }</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  }</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">return</span> (0);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span> </div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a2e64fc338fcfaac25af91aae564777fa"> 467</a></span>  <a class="code" href="classxran_lib_wraper.html#a2e64fc338fcfaac25af91aae564777fa">xranLibWraper</a>()</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  {</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordtype">int</span> i, temp;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  std::string tmpstr;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> tmp_mac[6];</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  m_global_cfg = <a class="code" href="common_8cpp.html#ad8c062e9b24e4b3a8408b23a0d8ab428">read_json_from_file</a>(<a class="code" href="xran__lib__wrap_8hpp.html#a7959c3e12f3260a6461fe2610203d1af">XRAN_UT_CFG_FILENAME</a>);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span> </div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  memset(&<a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>, 0, <span class="keyword">sizeof</span>(<a class="code" href="structxran__fh__init.html">xran_fh_init</a>));</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span> </div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a8a5462b0059073e90d42f8bfa066d566">io_cfg</a>.<a class="code" href="structxran__io__cfg.html#a1e6927fa1486224044e568f9c370519b">id</a> = 0;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="comment">/* DPDK configuration */</span></div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  m_dpdk_dev_up = get_globalcfg<std::string>(<a class="code" href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532">XRAN_UT_KEY_GLOBALCFG_IO</a>, <span class="stringliteral">"dpdk_dev_up"</span>);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  m_dpdk_dev_cp = get_globalcfg<std::string>(<a class="code" href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532">XRAN_UT_KEY_GLOBALCFG_IO</a>, <span class="stringliteral">"dpdk_dev_cp"</span>);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a8a5462b0059073e90d42f8bfa066d566">io_cfg</a>.<a class="code" href="structxran__io__cfg.html#ae58734e2aff608373089778da1aa4efa">dpdk_dev</a>[<a class="code" href="xran__fh__o__du_8h.html#a185d8ae20c697568878935f0a260227aafe31ae20f49aa6ca5a568bfdc89f69ab">XRAN_UP_VF</a>] = (m_dpdk_dev_up == <span class="stringliteral">""</span>) ? NULL : (<span class="keywordtype">char</span> *)&<a class="code" href="classxran_lib_wraper.html#a790ada9a4b1a467dc29bc4bfa1ec3e20">m_dpdk_dev_up</a>;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a8a5462b0059073e90d42f8bfa066d566">io_cfg</a>.<a class="code" href="structxran__io__cfg.html#ae58734e2aff608373089778da1aa4efa">dpdk_dev</a>[<a class="code" href="xran__fh__o__du_8h.html#a185d8ae20c697568878935f0a260227aabadad61426458852f6c89f1a74b03c1a">XRAN_CP_VF</a>] = (m_dpdk_dev_cp == <span class="stringliteral">""</span>) ? NULL : (<span class="keywordtype">char</span> *)&<a class="code" href="classxran_lib_wraper.html#aa0dbf843da8d26633022c153c473deb5">m_dpdk_dev_cp</a>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a8a5462b0059073e90d42f8bfa066d566">io_cfg</a>.<a class="code" href="structxran__io__cfg.html#a53341e81716fce9aeddee73d7228f2bf">core</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532">XRAN_UT_KEY_GLOBALCFG_IO</a>, <span class="stringliteral">"core"</span>);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a8a5462b0059073e90d42f8bfa066d566">io_cfg</a>.<a class="code" href="structxran__io__cfg.html#a727bdc89e33bfc7d18dfaf166d46598a">system_core</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532">XRAN_UT_KEY_GLOBALCFG_IO</a>, <span class="stringliteral">"system_core"</span>);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a8a5462b0059073e90d42f8bfa066d566">io_cfg</a>.<a class="code" href="structxran__io__cfg.html#a7ea8f53112b353d5e98cc955437f3706">pkt_proc_core</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532">XRAN_UT_KEY_GLOBALCFG_IO</a>, <span class="stringliteral">"pkt_proc_core"</span>);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a8a5462b0059073e90d42f8bfa066d566">io_cfg</a>.<a class="code" href="structxran__io__cfg.html#afc9b03cdc767412993891263da114dc3">pkt_aux_core</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532">XRAN_UT_KEY_GLOBALCFG_IO</a>, <span class="stringliteral">"pkt_aux_core"</span>);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a8a5462b0059073e90d42f8bfa066d566">io_cfg</a>.<a class="code" href="structxran__io__cfg.html#aa442a227739dcff5212e5356dee54b68">timing_core</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532">XRAN_UT_KEY_GLOBALCFG_IO</a>, <span class="stringliteral">"timing_core"</span>);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span> </div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  std::string bbdev_mode = get_globalcfg<std::string>(<a class="code" href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532">XRAN_UT_KEY_GLOBALCFG_IO</a>, <span class="stringliteral">"bbdev_mode"</span>);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keywordflow">if</span>(bbdev_mode == <span class="stringliteral">"sw"</span>)</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a8a5462b0059073e90d42f8bfa066d566">io_cfg</a>.<a class="code" href="structxran__io__cfg.html#ab99f9c6dba4d5fdc09299b3ac670503c">bbdev_mode</a> = <a class="code" href="xran__fh__o__du_8h.html#a4c62e469317040d695487f294cf9e0baab0a570cb95560770482680552b5dc5d0">XRAN_BBDEV_MODE_HW_OFF</a>;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(bbdev_mode == <span class="stringliteral">"hw"</span>)</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a8a5462b0059073e90d42f8bfa066d566">io_cfg</a>.<a class="code" href="structxran__io__cfg.html#ab99f9c6dba4d5fdc09299b3ac670503c">bbdev_mode</a> = <a class="code" href="xran__fh__o__du_8h.html#a4c62e469317040d695487f294cf9e0baa444621cf5453a912cc492b1bf62c0d39">XRAN_BBDEV_MODE_HW_ON</a>;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(bbdev_mode == <span class="stringliteral">"none"</span>)</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a8a5462b0059073e90d42f8bfa066d566">io_cfg</a>.<a class="code" href="structxran__io__cfg.html#ab99f9c6dba4d5fdc09299b3ac670503c">bbdev_mode</a> = <a class="code" href="xran__fh__o__du_8h.html#a4c62e469317040d695487f294cf9e0baaedc9957e395dca8c38c07377885b5339">XRAN_BBDEV_NOT_USED</a>;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  std::cout << <span class="stringliteral">"Invalid BBDev mode ["</span> << bbdev_mode << <span class="stringliteral">"], bbdev won't be used."</span> << std::endl;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a8a5462b0059073e90d42f8bfa066d566">io_cfg</a>.<a class="code" href="structxran__io__cfg.html#ab99f9c6dba4d5fdc09299b3ac670503c">bbdev_mode</a> = <a class="code" href="xran__fh__o__du_8h.html#a4c62e469317040d695487f294cf9e0baaedc9957e395dca8c38c07377885b5339">XRAN_BBDEV_NOT_USED</a>;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span> </div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a4f3d38bbb69d7dc49515ba2e0002537e">dpdkBasebandFecMode</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532">XRAN_UT_KEY_GLOBALCFG_IO</a>, <span class="stringliteral">"dpdkBasebandFecMode"</span>);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  m_dpdk_bbdev = get_globalcfg<std::string>(<a class="code" href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532">XRAN_UT_KEY_GLOBALCFG_IO</a>, <span class="stringliteral">"dpdkBasebandDevice"</span>);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ab783700ba1f1b7d6d617a102f01e2e8a">dpdkBasebandDevice</a> = (m_dpdk_bbdev == <span class="stringliteral">""</span>) ? NULL : (<span class="keywordtype">char</span> *)&<a class="code" href="classxran_lib_wraper.html#af2f499e1b7c34ec4e1c600e00bddc75f">m_dpdk_bbdev</a>;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span> </div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="comment">/* Network configurations */</span></div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3c8ee4e9dd2a5354e83fb30c95598f30">mtu</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532">XRAN_UT_KEY_GLOBALCFG_IO</a>, <span class="stringliteral">"mtu"</span>);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  std::string du_mac_str = get_globalcfg<std::string>(<a class="code" href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532">XRAN_UT_KEY_GLOBALCFG_IO</a>, <span class="stringliteral">"o_du_macaddr"</span>);</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  std::string ru_mac_str = get_globalcfg<std::string>(<a class="code" href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532">XRAN_UT_KEY_GLOBALCFG_IO</a>, <span class="stringliteral">"o_ru_macaddr"</span>);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="comment">/* using temp variables to resolve KW issue */</span></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  std::sscanf(du_mac_str.c_str(), <span class="stringliteral">"%02x:%02x:%02x:%02x:%02x:%02x"</span>,</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  &tmp_mac[0], &tmp_mac[1], &tmp_mac[2],</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  &tmp_mac[3], &tmp_mac[4], &tmp_mac[5]);</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordflow">for</span>(i=0; i<6; i++)</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  m_du_mac[i] = (uint8_t)tmp_mac[i];</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  std::sscanf(du_mac_str.c_str(), <span class="stringliteral">"%02x:%02x:%02x:%02x:%02x:%02x"</span>,</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  &tmp_mac[0], &tmp_mac[1], &tmp_mac[2],</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  &tmp_mac[3], &tmp_mac[4], &tmp_mac[5]);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">for</span>(i=0; i<6; i++)</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  m_ru_mac[i] = (uint8_t)tmp_mac[i];</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#adcde08e47bdc5157e76975f32d1e96e8">p_o_du_addr</a> = (int8_t *)m_du_mac;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ab05fc2b0bda23212626e2f075ce8e817">p_o_ru_addr</a> = (int8_t *)m_ru_mac;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#adc6cb9229207f58f6c4375305dcb5384">cp_vlan_tag</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532">XRAN_UT_KEY_GLOBALCFG_IO</a>, <span class="stringliteral">"cp_vlan_tag"</span>);</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ae5c22bf3cd63e278914bf627dab04ce8">up_vlan_tag</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532">XRAN_UT_KEY_GLOBALCFG_IO</a>, <span class="stringliteral">"up_vlan_tag"</span>);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span> </div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="comment">/* eAxCID configurations */</span></div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keywordtype">int</span> bitnum_cuport = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#ad8d180966ea390f149dea00f5616b540">XRAN_UT_KEY_GLOBALCFG_EAXCID</a>, <span class="stringliteral">"bit_cuPortId"</span>);</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keywordtype">int</span> bitnum_bandsec = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#ad8d180966ea390f149dea00f5616b540">XRAN_UT_KEY_GLOBALCFG_EAXCID</a>, <span class="stringliteral">"bit_bandSectorId"</span>);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="keywordtype">int</span> bitnum_ccid = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#ad8d180966ea390f149dea00f5616b540">XRAN_UT_KEY_GLOBALCFG_EAXCID</a>, <span class="stringliteral">"bit_ccId"</span>);</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordtype">int</span> bitnum_ruport = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#ad8d180966ea390f149dea00f5616b540">XRAN_UT_KEY_GLOBALCFG_EAXCID</a>, <span class="stringliteral">"bit_ruPortId"</span>);</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span> </div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#a8812802228fbd32d92c2c8f29963628b">bit_cuPortId</a> = bitnum_bandsec + bitnum_ccid + bitnum_ruport;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#ab3f5b7b7c113a7fdff4bdf31ff685594">bit_bandSectorId</a> = bitnum_ccid + bitnum_ruport;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#a292acf2be52d7b22753f8f3a9839f455">bit_ccId</a> = bitnum_ruport;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#aa6294a3b04f47cabf866ec1e1ec4bd23">bit_ruPortId</a> = 0;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#a3357253b181bed8132156f87728efc8d">mask_cuPortId</a> = get_eaxcid_mask(bitnum_cuport, <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#a8812802228fbd32d92c2c8f29963628b">bit_cuPortId</a>);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#affca087d8bc179073b5ae2f429340898">mask_bandSectorId</a> = get_eaxcid_mask(bitnum_bandsec, <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#ab3f5b7b7c113a7fdff4bdf31ff685594">bit_bandSectorId</a>);</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#a0ba87d865af2deb1ee2565f528e1e72d">mask_ccId</a> = get_eaxcid_mask(bitnum_ccid, <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#a292acf2be52d7b22753f8f3a9839f455">bit_ccId</a>);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#a64cc7d4da64fe531f01c6bb54e6a02f3">mask_ruPortId</a> = get_eaxcid_mask(bitnum_ruport, <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#aa6294a3b04f47cabf866ec1e1ec4bd23">bit_ruPortId</a>);</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span> </div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#af01fc39016255fbbedd02b31bb9c7959">totalBfWeights</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"totalBfWeights"</span>);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> </div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a05dca46f0128cb233e7d4f73215cc4a9">Tadv_cp_dl</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"Tadv_cp_dl"</span>);</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#aebed6420fb04aabce30025eec4583807">T2a_min_cp_dl</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"T2a_min_cp_dl"</span>);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a5df6250657a91c27fa2416154ec5a609">T2a_max_cp_dl</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"T2a_max_cp_dl"</span>);</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#acfa0c4237b95b1dc83d19e00d6487ec0">T2a_min_cp_ul</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"T2a_min_cp_ul"</span>);</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a60007ed3e328b06fb7f7ff2b3a37dac5">T2a_max_cp_ul</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"T2a_max_cp_ul"</span>);</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#aac84937e634fccb665c6de923af50c0f">T2a_min_up</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"T2a_min_up"</span>);</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#af27977cbf63a8beb2fd6b1f17c1502df">T2a_max_up</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"T2a_max_up"</span>);</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ac2e5d027408848a38879331bf54d5adf">Ta3_min</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"Ta3_min"</span>);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a82517c890db705ee58767fd245193214">Ta3_max</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"Ta3_max"</span>);</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a73b80929304dcde73f2c2f6d4f7448fa">T1a_min_cp_dl</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"T1a_min_cp_dl"</span>);</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a6080f8ca5894be470378d6f265c1f665">T1a_max_cp_dl</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"T1a_max_cp_dl"</span>);</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ab2d0817976952478020b3437b3dbbfc3">T1a_min_cp_ul</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"T1a_min_cp_ul"</span>);</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a71254f497cb48a57b123c7f4897b7a38">T1a_max_cp_ul</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"T1a_max_cp_ul"</span>);</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a0447175262da4e12814983c97d73ad21">T1a_min_up</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"T1a_min_up"</span>);</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a76ae7531da0aa8656d95c194f1e75b0f">T1a_max_up</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"T1a_max_up"</span>);</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ad8a8a60941ab888de5187345ce5fc92c">Ta4_min</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"Ta4_min"</span>);</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a934a145ce39320896b81ac25276b24d8">Ta4_max</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"Ta4_max"</span>);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span> </div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ab0bb0b684cc2798a2ef1ceabe4a47e38">enableCP</a> = 1;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ac0646000d1448798a186e109df0bb3dd">prachEnable</a> = 1;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a8ad55119f3b227785857aaddef6a8384">debugStop</a> = 0;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a0ce1293a9896f3e28d960a0b1d9dc911">debugStopCount</a> = 0;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a6fcbf469691a192f1ce298f70981c17a">DynamicSectionEna</a>= 0;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span> </div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a6a78f61ed42f876c7cfa835be5ed0942">filePrefix</a> = <span class="stringliteral">"wls"</span>;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span> </div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  m_bSub6 = get_globalcfg<bool>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"sub6"</span>);</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  memset(&<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>, 0, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structxran__fh__config.html">xran_fh_config</a>));</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  tmpstr = get_globalcfg<std::string>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"duplex"</span>);</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">if</span>(tmpstr == <span class="stringliteral">"FDD"</span>) {</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a72b0cba491d0dd2703d684cb2c2a14cf">frame_conf</a>.<a class="code" href="structxran__frame__config.html#a3b86317723a592e240c0047e53a6326d">nFrameDuplexType</a> = 0;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  }</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(tmpstr == <span class="stringliteral">"TDD"</span>) {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a72b0cba491d0dd2703d684cb2c2a14cf">frame_conf</a>.<a class="code" href="structxran__frame__config.html#a3b86317723a592e240c0047e53a6326d">nFrameDuplexType</a> = 1;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span> </div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  std::string slotcfg_key = get_globalcfg<std::string>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"slot_config"</span>);</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span> </div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keywordtype">int</span> numcfg = get_globalcfg<int>(slotcfg_key, <span class="stringliteral">"period"</span>);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a72b0cba491d0dd2703d684cb2c2a14cf">frame_conf</a>.<a class="code" href="structxran__frame__config.html#a53a1d989c6dee827495401b1973c9ef8">nTddPeriod</a> = numcfg;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span> </div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i< numcfg; i++) {</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  std::stringstream slotcfgname;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  slotcfgname << <span class="stringliteral">"slot"</span> << i;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  std::vector<int> slotcfg = get_globalcfg_array<int>(slotcfg_key, slotcfgname.str());</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j=0; j < slotcfg.size(); j++) {</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a72b0cba491d0dd2703d684cb2c2a14cf">frame_conf</a>.<a class="code" href="structxran__frame__config.html#a4664e9a9005020b4a98ada2d256906e2">sSlotConfig</a>[i].<a class="code" href="structxran__slot__config.html#a37a7dc4b204c22c2d8b9da9b07abd154">nSymbolType</a>[j] = slotcfg[j];</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  }</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a72b0cba491d0dd2703d684cb2c2a14cf">frame_conf</a>.<a class="code" href="structxran__frame__config.html#a4664e9a9005020b4a98ada2d256906e2">sSlotConfig</a>[i].<a class="code" href="structxran__slot__config.html#a8d7e0415efaf6e08cb6510401f765c28">reserved</a>[0] = 0;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a72b0cba491d0dd2703d684cb2c2a14cf">frame_conf</a>.<a class="code" href="structxran__frame__config.html#a4664e9a9005020b4a98ada2d256906e2">sSlotConfig</a>[i].<a class="code" href="structxran__slot__config.html#a8d7e0415efaf6e08cb6510401f765c28">reserved</a>[1] = 0;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  }</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  }</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  std::cout << <span class="stringliteral">"*** Invalid Duplex type ["</span> << tmpstr << <span class="stringliteral">"] !!!"</span> << std::endl;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  std::cout << <span class="stringliteral">"****** Set it to FDD... "</span> << std::endl;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a72b0cba491d0dd2703d684cb2c2a14cf">frame_conf</a>.<a class="code" href="structxran__frame__config.html#a3b86317723a592e240c0047e53a6326d">nFrameDuplexType</a> = 0;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  }</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span> </div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a72b0cba491d0dd2703d684cb2c2a14cf">frame_conf</a>.<a class="code" href="structxran__frame__config.html#a78b2fab8e8d6a6424c2712d528fd9a58">nNumerology</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"mu"</span>);</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keywordflow">if</span>(<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a72b0cba491d0dd2703d684cb2c2a14cf">frame_conf</a>.<a class="code" href="structxran__frame__config.html#a78b2fab8e8d6a6424c2712d528fd9a58">nNumerology</a> > 3) {</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  std::cout << <span class="stringliteral">"*** Invalid Numerology ["</span> << <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a72b0cba491d0dd2703d684cb2c2a14cf">frame_conf</a>.<a class="code" href="structxran__frame__config.html#a78b2fab8e8d6a6424c2712d528fd9a58">nNumerology</a> << <span class="stringliteral">"] !!!"</span> << std::endl;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a72b0cba491d0dd2703d684cb2c2a14cf">frame_conf</a>.<a class="code" href="structxran__frame__config.html#a78b2fab8e8d6a6424c2712d528fd9a58">nNumerology</a> = 0;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  std::cout << <span class="stringliteral">"****** Set it to "</span> << <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a72b0cba491d0dd2703d684cb2c2a14cf">frame_conf</a>.<a class="code" href="structxran__frame__config.html#a78b2fab8e8d6a6424c2712d528fd9a58">nNumerology</a> << <span class="stringliteral">"..."</span> << std::endl;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  }</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span> </div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a6dcac3ea0b3d99c20c2e6f7091b8b342">nCC</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"num_cc"</span>);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordflow">if</span>(<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a6dcac3ea0b3d99c20c2e6f7091b8b342">nCC</a> > <a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>) {</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  std::cout << <span class="stringliteral">"*** Exceeds maximum number of carriers supported ["</span> << <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a6dcac3ea0b3d99c20c2e6f7091b8b342">nCC</a> << <span class="stringliteral">"] !!!"</span> << std::endl;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a6dcac3ea0b3d99c20c2e6f7091b8b342">nCC</a> = <a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  std::cout << <span class="stringliteral">"****** Adjusted to "</span> << <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a6dcac3ea0b3d99c20c2e6f7091b8b342">nCC</a> << <span class="stringliteral">"..."</span> << std::endl;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  }</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#abcac68b45b2bcf3b5458817d65b86e45">neAxc</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"num_eaxc"</span>);</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="keywordflow">if</span>(<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#abcac68b45b2bcf3b5458817d65b86e45">neAxc</a> > <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>) {</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  std::cout << <span class="stringliteral">"*** Exceeds maximum number of antenna supported ["</span> << <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#abcac68b45b2bcf3b5458817d65b86e45">neAxc</a> << <span class="stringliteral">"] !!!"</span> << std::endl;</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#abcac68b45b2bcf3b5458817d65b86e45">neAxc</a> = <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  std::cout << <span class="stringliteral">"****** Adjusted to "</span> << <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#abcac68b45b2bcf3b5458817d65b86e45">neAxc</a> << <span class="stringliteral">"..."</span> << std::endl;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  }</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span> </div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  m_bSub6 = get_globalcfg<bool>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"sub6"</span>);</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  temp = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"chbw_dl"</span>);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a7917929ae3bb588a5bf6f4e56cf9549e">nDLRBs</a> = <a class="code" href="classxran_lib_wraper.html#abbe0bfcd68428ee4cc3f63a391495e8d">get_num_rbs</a>(<a class="code" href="classxran_lib_wraper.html#a7d7488daf0a2eebb9359f760a60eaf7c">get_numerology</a>(), temp, m_bSub6);</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  temp = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"chbw_ul"</span>);</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a5448b37ad609bb66bf44b44d1f9bac72">nULRBs</a> = <a class="code" href="classxran_lib_wraper.html#abbe0bfcd68428ee4cc3f63a391495e8d">get_num_rbs</a>(<a class="code" href="classxran_lib_wraper.html#a7d7488daf0a2eebb9359f760a60eaf7c">get_numerology</a>(), temp, m_bSub6);</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span> </div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#ac63d8c67956a8a08cbfd8efb92a2f055">nAntElmTRx</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"ant_elm_trx"</span>);</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a8956e982993d4b310e3bffe207f66405">nDLFftSize</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"fft_size"</span>);</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#ae4908e70f937e7eca578e348f4e3911f">nULFftSize</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"fft_size"</span>);</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span> </div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a167e91cb91119363bf10c9430b6f082c">prach_conf</a>.<a class="code" href="structxran__prach__config.html#acb5fe8097b0115e038eb02d5900f66d6">nPrachConfIdx</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a0c97e7d2cdb34b857e3b6de86b49f55d">XRAN_UT_KEY_GLOBALCFG_PRACH</a>, <span class="stringliteral">"config_id"</span>);</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a167e91cb91119363bf10c9430b6f082c">prach_conf</a>.<a class="code" href="structxran__prach__config.html#ab9b99e41ea39f16780f66a539aa872c8">nPrachSubcSpacing</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a0c97e7d2cdb34b857e3b6de86b49f55d">XRAN_UT_KEY_GLOBALCFG_PRACH</a>, <span class="stringliteral">"scs"</span>);</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a167e91cb91119363bf10c9430b6f082c">prach_conf</a>.<a class="code" href="structxran__prach__config.html#a5c648c99c04370a4e8767f919a2289bf">nPrachFreqStart</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a0c97e7d2cdb34b857e3b6de86b49f55d">XRAN_UT_KEY_GLOBALCFG_PRACH</a>, <span class="stringliteral">"freq_start"</span>);</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a167e91cb91119363bf10c9430b6f082c">prach_conf</a>.<a class="code" href="structxran__prach__config.html#a3b43924c5ef23b0496d1a7adf2752dbf">nPrachFreqOffset</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a0c97e7d2cdb34b857e3b6de86b49f55d">XRAN_UT_KEY_GLOBALCFG_PRACH</a>, <span class="stringliteral">"freq_offset"</span>);</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a167e91cb91119363bf10c9430b6f082c">prach_conf</a>.<a class="code" href="structxran__prach__config.html#ab3ca7a740428b7023b7e29197124983b">nPrachFilterIdx</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a0c97e7d2cdb34b857e3b6de86b49f55d">XRAN_UT_KEY_GLOBALCFG_PRACH</a>, <span class="stringliteral">"filter_id"</span>);</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a167e91cb91119363bf10c9430b6f082c">prach_conf</a>.<a class="code" href="structxran__prach__config.html#a45ae197adc4010202a5b71d7b602bc0c">nPrachZeroCorrConf</a>= 0;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a167e91cb91119363bf10c9430b6f082c">prach_conf</a>.<a class="code" href="structxran__prach__config.html#a26e6c95dfde831c2588d46dde588c751">nPrachRestrictSet</a> = 0;</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a167e91cb91119363bf10c9430b6f082c">prach_conf</a>.<a class="code" href="structxran__prach__config.html#a66b19aaa946c36b309a3403b3d576c58">nPrachRootSeqIdx</a> = 0;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span> </div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  tmpstr = get_globalcfg<std::string>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"category"</span>);</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keywordflow">if</span>(tmpstr == <span class="stringliteral">"A"</span>)</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a27ff648f80c139235421b81f957fcb7e">ru_conf</a>.<a class="code" href="structxran__ru__config.html#af92ff2dfd2bddd0880d779c04b9fb359">xranCat</a> = <a class="code" href="xran__fh__o__du_8h.html#abf0211a253f5881ebad3910cef98d30ea25cae7703b653209b61647fa65ac7e9f">XRAN_CATEGORY_A</a>;</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(tmpstr == <span class="stringliteral">"B"</span>)</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a27ff648f80c139235421b81f957fcb7e">ru_conf</a>.<a class="code" href="structxran__ru__config.html#af92ff2dfd2bddd0880d779c04b9fb359">xranCat</a> = <a class="code" href="xran__fh__o__du_8h.html#abf0211a253f5881ebad3910cef98d30ea6f7ea23328e0189a3c4879d7fa0d3749">XRAN_CATEGORY_B</a>;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  std::cout << <span class="stringliteral">"*** Invalid RU Category ["</span> << tmpstr << <span class="stringliteral">"] !!!"</span> << std::endl;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  std::cout << <span class="stringliteral">"****** Set it to Category A... "</span> << std::endl;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a27ff648f80c139235421b81f957fcb7e">ru_conf</a>.<a class="code" href="structxran__ru__config.html#af92ff2dfd2bddd0880d779c04b9fb359">xranCat</a> = <a class="code" href="xran__fh__o__du_8h.html#abf0211a253f5881ebad3910cef98d30ea25cae7703b653209b61647fa65ac7e9f">XRAN_CATEGORY_A</a>;</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  }</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span> </div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a27ff648f80c139235421b81f957fcb7e">ru_conf</a>.<a class="code" href="structxran__ru__config.html#a1520b1ef6131bff6c14b88d849c266c5">iqWidth</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"iq_width"</span>);</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a27ff648f80c139235421b81f957fcb7e">ru_conf</a>.<a class="code" href="structxran__ru__config.html#a1e4a3c43fc7865c6520471fb9ba8501f">compMeth</a> = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"comp_meth"</span>);</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span> </div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  temp = get_globalcfg<int>(<a class="code" href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a>, <span class="stringliteral">"fft_size"</span>);</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a27ff648f80c139235421b81f957fcb7e">ru_conf</a>.<a class="code" href="structxran__ru__config.html#a59e7e8f3feb686850b0cb0ae065de85b">fftSize</a> = 0;</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="keywordflow">while</span> (temp >>= 1)</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  ++<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a27ff648f80c139235421b81f957fcb7e">ru_conf</a>.<a class="code" href="structxran__ru__config.html#a59e7e8f3feb686850b0cb0ae065de85b">fftSize</a>;</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span> </div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a27ff648f80c139235421b81f957fcb7e">ru_conf</a>.<a class="code" href="structxran__ru__config.html#a74e72997edeea7f9f1696baffb9989b4">byteOrder</a> = <a class="code" href="xran__fh__o__du_8h.html#ab5ce6839bae2968c79930a0bfa17f4d8a61bd03fd3153385f6791bd16e55892b8">XRAN_NE_BE_BYTE_ORDER</a>;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a27ff648f80c139235421b81f957fcb7e">ru_conf</a>.<a class="code" href="structxran__ru__config.html#ad1b1309ca2645e24fa201f8decae1988">iqOrder</a> = <a class="code" href="xran__fh__o__du_8h.html#a0d9cb4cebbc59a8fa5bfef7547898859a0064217ac0728d6ac2d4f92d95db0d21">XRAN_I_Q_ORDER</a>;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span> </div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a583c2f58d0655789ea36e22d605ab9ad">log_level</a> = 0;</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="comment">/*</span></div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="comment"> m_xranConf.bbdev_enc = nullptr;</span></div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span> <span class="comment"> m_xranConf.bbdev_dec = nullptr;</span></div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="comment"> m_xranConf.ttiCb = nullptr;</span></div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="comment"> m_xranConf.ttiCbParam = nullptr;</span></div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="comment">*/</span></div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  }</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span> </div><div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a6608686375e6c9e5c3ce59970e4b90e0"> 674</a></span>  <a class="code" href="classxran_lib_wraper.html#a6608686375e6c9e5c3ce59970e4b90e0">~xranLibWraper</a>()</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  {</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  }</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span> </div><div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a126b53d8cc57521b34496dbe3a26621f"> 678</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#a126b53d8cc57521b34496dbe3a26621f">SetUp</a>()</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  {</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span> </div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  printf(<span class="stringliteral">"O-DU MAC address: %02X:%02X:%02X:%02X:%02X:%02X\n"</span>,</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#adcde08e47bdc5157e76975f32d1e96e8">p_o_du_addr</a>[0],</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#adcde08e47bdc5157e76975f32d1e96e8">p_o_du_addr</a>[1],</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#adcde08e47bdc5157e76975f32d1e96e8">p_o_du_addr</a>[2],</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#adcde08e47bdc5157e76975f32d1e96e8">p_o_du_addr</a>[3],</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#adcde08e47bdc5157e76975f32d1e96e8">p_o_du_addr</a>[4],</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#adcde08e47bdc5157e76975f32d1e96e8">p_o_du_addr</a>[5]);</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span> </div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  printf(<span class="stringliteral">"O-RU MAC address: %02X:%02X:%02X:%02X:%02X:%02X\n"</span>,</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ab05fc2b0bda23212626e2f075ce8e817">p_o_ru_addr</a>[0],</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ab05fc2b0bda23212626e2f075ce8e817">p_o_ru_addr</a>[1],</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ab05fc2b0bda23212626e2f075ce8e817">p_o_ru_addr</a>[2],</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ab05fc2b0bda23212626e2f075ce8e817">p_o_ru_addr</a>[3],</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ab05fc2b0bda23212626e2f075ce8e817">p_o_ru_addr</a>[4],</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ab05fc2b0bda23212626e2f075ce8e817">p_o_ru_addr</a>[5]);</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span> </div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  printf(<span class="stringliteral">"eAxCID - %d:%d:%d:%d (%04x, %04x, %04x, %04x)\n"</span>,</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#a8812802228fbd32d92c2c8f29963628b">bit_cuPortId</a>,</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#ab3f5b7b7c113a7fdff4bdf31ff685594">bit_bandSectorId</a>,</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#a292acf2be52d7b22753f8f3a9839f455">bit_ccId</a>,</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#aa6294a3b04f47cabf866ec1e1ec4bd23">bit_ruPortId</a>,</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#a3357253b181bed8132156f87728efc8d">mask_cuPortId</a>,</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#affca087d8bc179073b5ae2f429340898">mask_bandSectorId</a>,</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#a0ba87d865af2deb1ee2565f528e1e72d">mask_ccId</a>,</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">eAxCId_conf</a>.<a class="code" href="structxran__eaxcid__config.html#a64cc7d4da64fe531f01c6bb54e6a02f3">mask_ruPortId</a>);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span> </div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  printf(<span class="stringliteral">"Total BF Weights : %d\n"</span>, <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#af01fc39016255fbbedd02b31bb9c7959">totalBfWeights</a>);</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span> </div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  <a class="code" href="xran__fh__o__du_8h.html#a3efe8aba779b0a2f90adc02065579f5f">xran_init</a>(0, NULL, &<a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>, &argv[0], &m_xranhandle);</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span> </div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="keywordflow">for</span>(i = 0; i < <a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>; i++)</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  m_nSectorIndex[i] = i;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span> </div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="comment">/* set to maximum length to support multiple cases */</span></div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  m_nFpgaToSW_FTH_RxBufferLen = 13168; <span class="comment">/* 273*12*4 + 64*/</span></div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  m_nSW_ToFpga_FTH_TxBufferLen = 13168; <span class="comment">/* 273*12*4 + 64*/</span></div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span> </div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <span class="keywordflow">if</span>(init_memory() < 0) {</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  std::cout << <span class="stringliteral">"Fatal Error on Initialization !!!"</span> << std::endl;</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  std::cout << <span class="stringliteral">"INIT FAILED"</span> << std::endl;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  }</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span> </div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  std::cout << <span class="stringliteral">"INIT DONE"</span> << std::endl;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keywordflow">return</span> (0);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  }</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span> </div><div class="line"><a name="l00729"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a931587596081ef8178c2b128facb0411"> 729</a></span>  <span class="keywordtype">void</span> <a class="code" href="classxran_lib_wraper.html#a931587596081ef8178c2b128facb0411">TearDown</a>()</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  {</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <span class="keywordflow">if</span>(m_xranhandle) {</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <a class="code" href="xran__fh__o__du_8h.html#a2f8866c9d6536a56e4d8232b8c45808b">xran_close</a>(m_xranhandle);</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  m_xranhandle = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  std::cout << <span class="stringliteral">"CLOSE DONE"</span> << std::endl;</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  }</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  std::cout << <span class="stringliteral">"ALREADY CLOSED"</span> << std::endl;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  }</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span> </div><div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a200da4e2209141f12cafef2380cb801a"> 740</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#a200da4e2209141f12cafef2380cb801a">Init</a>(<span class="keyword">struct</span> <a class="code" href="structxran__fh__config.html">xran_fh_config</a> *pCfg = <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  {</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <a class="code" href="xran__fh__o__du_8h.html#aa3ceca070f84e316e0e2f6002419d572">xran_status_t</a> status;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  int32_t nSectorNum;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  int32_t i, j, k, z;</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <span class="keywordtype">void</span> *ptr;</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="keywordtype">void</span> *mb;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  uint32_t *u32dptr;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  uint16_t *u16dptr;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  uint8_t *u8dptr;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  SWXRANInterfaceTypeEnum eInterfaceType;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  int32_t cc_id, ant_id, sym_id, tti;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  int32_t flowId;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <span class="keywordtype">char</span> *pos = NULL;</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="keyword">struct </span><a class="code" href="structxran__prb__map.html">xran_prb_map</a> *pRbMap = NULL;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span> </div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span> </div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <span class="comment">/* Update member variables */</span></div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  <span class="keywordflow">if</span>(pCfg)</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  memcpy(&<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>, pCfg, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structxran__fh__config.html">xran_fh_config</a>));</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span> </div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <span class="comment">/* Init timer context */</span></div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <a class="code" href="xran__lib__wrap_8hpp.html#a273a09cbea9267272f4e2a339059e442">xran_lib_ota_tti</a> = 0;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  <a class="code" href="xran__lib__wrap_8hpp.html#a8cec0b41a42705e6ab9f49914ca666c2">xran_lib_ota_sym</a> = 0;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <a class="code" href="xran__lib__wrap_8hpp.html#a98175f360f5753bc99c4edd3c2d8bd04">xran_lib_ota_sym_idx</a> = 0;</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="keywordflow">for</span>(i=0; i < <a class="code" href="xran__lib__wrap_8hpp.html#a16ea7ba6b48522ff69767c3a3d31b776">MAX_NUM_OF_XRAN_CTX</a>; i++)</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <a class="code" href="classxran_lib_wraper.html#a74cbf8f188c4df27d645f80be26bb077">m_timer_ctx</a>[i].<a class="code" href="structxran_lib_wraper_1_1xran__timer__ctx.html#ac9a8f4c80840a80e1a27ff9776e13f66">tti_to_process</a> = i;</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span> </div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  nSectorNum = <a class="code" href="classxran_lib_wraper.html#aeeef9211b4ee7d22934db64125b538dd">get_num_cc</a>();</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span> </div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <span class="comment">/* Cat B RU support */</span></div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <span class="keywordflow">if</span>(<a class="code" href="classxran_lib_wraper.html#a25afbf449e11f9e290e0fdbef77702c2">get_rucategory</a>() == <a class="code" href="xran__fh__o__du_8h.html#abf0211a253f5881ebad3910cef98d30ea6f7ea23328e0189a3c4879d7fa0d3749">XRAN_CATEGORY_B</a>) {</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <span class="comment">/* 10 * [14*32*273*2*2] = 4892160 bytes */</span></div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  iq_bfw_buffer_size_dl = (m_nSlots * <a class="code" href="common_8h.html#a534c88c03c366dfbd4dd5efe7693f56b">N_SYM_PER_SLOT</a> * <a class="code" href="classxran_lib_wraper.html#adde1d671cf6532a577f13d85875ee3b4">get_num_antelmtrx</a>() * <a class="code" href="classxran_lib_wraper.html#ad2b06001d76c9a773c242b28fc7c92f4">get_num_dlrbs</a>() * 4L);</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  iq_bfw_buffer_size_ul = (m_nSlots * <a class="code" href="common_8h.html#a534c88c03c366dfbd4dd5efe7693f56b">N_SYM_PER_SLOT</a> * <a class="code" href="classxran_lib_wraper.html#adde1d671cf6532a577f13d85875ee3b4">get_num_antelmtrx</a>() * <a class="code" href="classxran_lib_wraper.html#a967a0c58430104684cf2f9b1fdb444da">get_num_ulrbs</a>() * 4L);</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span> </div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keywordflow">for</span>(i = 0; i < <a class="code" href="xran__lib__wrap_8hpp.html#a14c306e04a1b3ecdd13b82ab9ca6c9b5">MAX_ANT_CARRIER_SUPPORTED</a> && i < (uint32_t)(<a class="code" href="classxran_lib_wraper.html#aeeef9211b4ee7d22934db64125b538dd">get_num_cc</a>() * <a class="code" href="classxran_lib_wraper.html#aef8068804ca7393d92edd9ed22d90070">get_num_eaxc</a>()); i++) {</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  p_tx_dl_bfw_buffer[i] = (int16_t*)malloc(iq_bfw_buffer_size_dl);</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  tx_dl_bfw_buffer_size[i] = (int32_t)iq_bfw_buffer_size_dl;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordflow">if</span>(p_tx_dl_bfw_buffer[i] == NULL)</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span> </div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  memset(p_tx_dl_bfw_buffer[i], <span class="charliteral">'D'</span>, iq_bfw_buffer_size_dl);</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  tx_dl_bfw_buffer_position[i] = 0;</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span> </div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  p_tx_ul_bfw_buffer[i] = (int16_t*)malloc(iq_bfw_buffer_size_ul);</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  tx_ul_bfw_buffer_size[i] = (int32_t)iq_bfw_buffer_size_ul;</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  <span class="keywordflow">if</span>(p_tx_ul_bfw_buffer[i] == NULL)</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span> </div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  memset(p_tx_ul_bfw_buffer[i], <span class="charliteral">'U'</span>, iq_bfw_buffer_size_ul);</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  tx_ul_bfw_buffer_position[i] = 0;</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  }</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  }</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span> </div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="comment">/* Init RB map */</span></div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <span class="keywordflow">for</span>(cc_id = 0; cc_id <nSectorNum; cc_id++) {</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="keywordflow">for</span>(tti = 0; tti < <a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>; tti ++) {</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <span class="keywordflow">for</span>(ant_id = 0; ant_id < <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>; ant_id++) {</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  flowId = XRAN_MAX_ANTENNA_NR*cc_id + ant_id;</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span> </div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="comment">/* C-plane DL */</span></div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  pRbMap = (<span class="keyword">struct </span><a class="code" href="structxran__prb__map.html">xran_prb_map</a> *)m_sFrontHaulTxPrbMapBbuIoBufCtrl[tti][cc_id][ant_id].sBufferList.pBuffers-><a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a7941f6b35742c3de02e270f7b80c8dda">pData</a>;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  <span class="keywordflow">if</span>(pRbMap) {</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a92abda0bec7c1c978fe96f87aad18067">dir</a> = <a class="code" href="group__xran__common__pkt.html#gga9c60a23fdae979ad1842b255790d1558a19f3d3cee814f10e4f3bf7d80194083f">XRAN_DIR_DL</a>;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a5ca9a2b3d2a5c902f8153e3e383049be">xran_port</a> = 0;</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a1c85ead6321835264d2451291430a7da">band_id</a> = 0;</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a7fd0cb6d38d73460d3eaba911462dc69">cc_id</a> = <a class="code" href="structxran__prb__map.html#a7fd0cb6d38d73460d3eaba911462dc69">cc_id</a>;</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a16b7b2d1f57da5ed39e7e3a026592a85">ru_port_id</a> = ant_id;</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a689e28eeb2f378d4dc5f915a30f560db">tti_id</a> = tti;</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  pRbMap-><a class="code" href="structxran__prb__map.html#afc7dda8bf6b9a76f94c88c3610d9c594">start_sym_id</a> = 0;</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span> </div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a5a2ad8f5285dd33572e310069cdac3c4">nPrbElm</a> = 1;</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#a5248ad5c1a177b8b9d5ef60f710652bc">nRBStart</a> = 0;</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#a18adf7163dacc5bd7dd344fb1216f729">nRBSize</a> = <a class="code" href="classxran_lib_wraper.html#ad2b06001d76c9a773c242b28fc7c92f4">get_num_dlrbs</a>();</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#a5acab5eec7096fb7732c804f71f02a4d">nStartSymb</a> = 0;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#ad2586af82c76901c361a2d08a6ba553b">numSymb</a> = 14;</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#aba198438bbacf8f73b6bfa481b365ce5">nBeamIndex</a> = 0;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#ad73157f14fa98c54fb563244c1327933">compMethod</a> = <a class="code" href="xran__fh__o__du_8h.html#afc082593977ad91f3dcdd2175cb74615a7fbf705170e00d2ce3e838fa9826ca8d">XRAN_COMPMETHOD_NONE</a>;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span> </div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  <span class="keywordflow">if</span>(<a class="code" href="classxran_lib_wraper.html#a25afbf449e11f9e290e0fdbef77702c2">get_rucategory</a>() == <a class="code" href="xran__fh__o__du_8h.html#abf0211a253f5881ebad3910cef98d30ea25cae7703b653209b61647fa65ac7e9f">XRAN_CATEGORY_A</a>) {</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#a8b8b1bd49f0c7c15063d74dd4ad48cde">BeamFormingType</a> = <a class="code" href="xran__fh__o__du_8h.html#ab78adb73387ef66b18318c2425be2f27a28eb3e91604ef0f752bef0c98e48a21f">XRAN_BEAM_ID_BASED</a>;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#a0cae38b481020301f9e6831c27b5058b">bf_weight_update</a> = 0;</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  <span class="comment">//pRbMap->prbMap[0].bf_attribute.weight[];</span></div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="comment">//pRbMap->prbMap[0].bf_precoding.weight[];</span></div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  }</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classxran_lib_wraper.html#a25afbf449e11f9e290e0fdbef77702c2">get_rucategory</a>() == <a class="code" href="xran__fh__o__du_8h.html#abf0211a253f5881ebad3910cef98d30ea6f7ea23328e0189a3c4879d7fa0d3749">XRAN_CATEGORY_B</a>) {</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="keywordtype">int</span> idxElm;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <span class="keywordtype">int</span> <a class="code" href="gen__test_8m.html#ac6b31045f94257d82fbbcf64a170a093">iPrb</a>;</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="keywordtype">char</span> *dl_bfw_pos = ((<span class="keywordtype">char</span>*)p_tx_dl_bfw_buffer[flowId]) + tx_dl_bfw_buffer_position[flowId];</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keyword">struct </span><a class="code" href="structxran__prb__elm.html">xran_prb_elm</a>* p_prbMap = NULL;</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <span class="keywordtype">int</span> num_antelm;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span> </div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#a8b8b1bd49f0c7c15063d74dd4ad48cde">BeamFormingType</a> = <a class="code" href="xran__fh__o__du_8h.html#ab78adb73387ef66b18318c2425be2f27ac65119b19d6f3b1195050fb56529e02a">XRAN_BEAM_WEIGHT</a>;</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#a0cae38b481020301f9e6831c27b5058b">bf_weight_update</a> = 1;</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span> </div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  num_antelm = <a class="code" href="classxran_lib_wraper.html#adde1d671cf6532a577f13d85875ee3b4">get_num_antelmtrx</a>();</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span> <span class="preprocessor">#if 0</span></div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <span class="comment">/* populate beam weights to C-plane for each elm */</span></div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  pRbMap->bf_weight.nAntElmTRx = num_antelm;</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  <span class="keywordflow">for</span>(idxElm = 0; idxElm < pRbMap-><a class="code" href="structxran__prb__map.html#a5a2ad8f5285dd33572e310069cdac3c4">nPrbElm</a>; idxElm++){</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  p_prbMap = &pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[idxElm];</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  <span class="keywordflow">for</span> (iPrb = p_prbMap-><a class="code" href="structxran__prb__elm.html#a5248ad5c1a177b8b9d5ef60f710652bc">nRBStart</a>; iPrb < (p_prbMap-><a class="code" href="structxran__prb__elm.html#a5248ad5c1a177b8b9d5ef60f710652bc">nRBStart</a> + p_prbMap-><a class="code" href="structxran__prb__elm.html#a18adf7163dacc5bd7dd344fb1216f729">nRBSize</a>); iPrb++) {</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  <span class="comment">/* copy BF W IQs for 1 PRB of */</span></div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  rte_memcpy(&pRbMap->bf_weight.weight[iPrb][0], (dl_bfw_pos + (iPrb * num_antelm)*4), num_antelm*4);</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  }</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  }</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  } <span class="comment">/* else if(get_rucategory() == XRAN_CATEGORY_B) */</span></div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  } <span class="comment">/* if(pRbMap) */</span></div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  std::cout << <span class="stringliteral">"DL pRbMap ==NULL"</span> << std::endl;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  }</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span> </div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <span class="comment">/* C-plane UL */</span></div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  pRbMap = (<span class="keyword">struct </span><a class="code" href="structxran__prb__map.html">xran_prb_map</a> *)m_sFrontHaulRxPrbMapBbuIoBufCtrl[tti][cc_id][ant_id].sBufferList.pBuffers-><a class="code" href="struct_bbu_io_buf_ctrl_struct.html#a7941f6b35742c3de02e270f7b80c8dda">pData</a>;</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <span class="keywordflow">if</span>(pRbMap) {</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a92abda0bec7c1c978fe96f87aad18067">dir</a> = <a class="code" href="group__xran__common__pkt.html#gga9c60a23fdae979ad1842b255790d1558a404255db3f05419798875bfb763e1c05">XRAN_DIR_UL</a>;</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a5ca9a2b3d2a5c902f8153e3e383049be">xran_port</a> = 0;</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a1c85ead6321835264d2451291430a7da">band_id</a> = 0;</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a7fd0cb6d38d73460d3eaba911462dc69">cc_id</a> = <a class="code" href="structxran__prb__map.html#a7fd0cb6d38d73460d3eaba911462dc69">cc_id</a>;</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a16b7b2d1f57da5ed39e7e3a026592a85">ru_port_id</a> = ant_id;</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a689e28eeb2f378d4dc5f915a30f560db">tti_id</a> = tti;</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  pRbMap-><a class="code" href="structxran__prb__map.html#afc7dda8bf6b9a76f94c88c3610d9c594">start_sym_id</a> = 0;</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span> </div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a5a2ad8f5285dd33572e310069cdac3c4">nPrbElm</a> = 1;</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#a5248ad5c1a177b8b9d5ef60f710652bc">nRBStart</a> = 0;</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#a18adf7163dacc5bd7dd344fb1216f729">nRBSize</a> = <a class="code" href="classxran_lib_wraper.html#a967a0c58430104684cf2f9b1fdb444da">get_num_ulrbs</a>();</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#a5acab5eec7096fb7732c804f71f02a4d">nStartSymb</a> = 0;</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#ad2586af82c76901c361a2d08a6ba553b">numSymb</a> = 14;</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#aba198438bbacf8f73b6bfa481b365ce5">nBeamIndex</a> = 0;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#ad73157f14fa98c54fb563244c1327933">compMethod</a> = <a class="code" href="xran__fh__o__du_8h.html#afc082593977ad91f3dcdd2175cb74615a7fbf705170e00d2ce3e838fa9826ca8d">XRAN_COMPMETHOD_NONE</a>;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span> </div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <span class="keywordflow">if</span>(<a class="code" href="classxran_lib_wraper.html#a25afbf449e11f9e290e0fdbef77702c2">get_rucategory</a>() == <a class="code" href="xran__fh__o__du_8h.html#abf0211a253f5881ebad3910cef98d30ea25cae7703b653209b61647fa65ac7e9f">XRAN_CATEGORY_A</a>) {</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#a8b8b1bd49f0c7c15063d74dd4ad48cde">BeamFormingType</a> = <a class="code" href="xran__fh__o__du_8h.html#ab78adb73387ef66b18318c2425be2f27a28eb3e91604ef0f752bef0c98e48a21f">XRAN_BEAM_ID_BASED</a>;</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#a0cae38b481020301f9e6831c27b5058b">bf_weight_update</a> = 0;</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  <span class="comment">//pRbMap->prbMap[0].bf_attribute.weight[];</span></div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <span class="comment">//pRbMap->prbMap[0].bf_precoding.weight[];</span></div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  }</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classxran_lib_wraper.html#a25afbf449e11f9e290e0fdbef77702c2">get_rucategory</a>() == <a class="code" href="xran__fh__o__du_8h.html#abf0211a253f5881ebad3910cef98d30ea6f7ea23328e0189a3c4879d7fa0d3749">XRAN_CATEGORY_B</a>) {</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  <span class="keywordtype">int</span> idxElm;</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keywordtype">int</span> <a class="code" href="gen__test_8m.html#ac6b31045f94257d82fbbcf64a170a093">iPrb</a>;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <span class="keywordtype">char</span> *ul_bfw_pos = ((<span class="keywordtype">char</span>*)p_tx_ul_bfw_buffer[flowId]) + tx_ul_bfw_buffer_position[flowId];</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="keyword">struct </span><a class="code" href="structxran__prb__elm.html">xran_prb_elm</a>* p_prbMap = NULL;</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <span class="keywordtype">int</span> num_antelm;</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span> </div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#a8b8b1bd49f0c7c15063d74dd4ad48cde">BeamFormingType</a> = <a class="code" href="xran__fh__o__du_8h.html#ab78adb73387ef66b18318c2425be2f27ac65119b19d6f3b1195050fb56529e02a">XRAN_BEAM_WEIGHT</a>;</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[0].<a class="code" href="structxran__prb__elm.html#a0cae38b481020301f9e6831c27b5058b">bf_weight_update</a> = 1;</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span> </div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  num_antelm = <a class="code" href="classxran_lib_wraper.html#adde1d671cf6532a577f13d85875ee3b4">get_num_antelmtrx</a>();</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span> <span class="preprocessor">#if 0</span></div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  <span class="comment">/* populate beam weights to C-plane for each elm */</span></div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  pRbMap->bf_weight.nAntElmTRx = num_antelm;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <span class="keywordflow">for</span> (idxElm = 0; idxElm < pRbMap-><a class="code" href="structxran__prb__map.html#a5a2ad8f5285dd33572e310069cdac3c4">nPrbElm</a>; idxElm++){</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  p_prbMap = &pRbMap-><a class="code" href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">prbMap</a>[idxElm];</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  <span class="keywordflow">for</span> (iPrb = p_prbMap-><a class="code" href="structxran__prb__elm.html#a5248ad5c1a177b8b9d5ef60f710652bc">nRBStart</a>; iPrb < (p_prbMap-><a class="code" href="structxran__prb__elm.html#a5248ad5c1a177b8b9d5ef60f710652bc">nRBStart</a> + p_prbMap-><a class="code" href="structxran__prb__elm.html#a18adf7163dacc5bd7dd344fb1216f729">nRBSize</a>); iPrb++){</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  <span class="comment">/* copy BF W IQs for 1 PRB of */</span></div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  rte_memcpy(&pRbMap->bf_weight.weight[iPrb][0], (ul_bfw_pos + (iPrb*num_antelm)*4), num_antelm*4);</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  }</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  }</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  } <span class="comment">/* else if(get_rucategory() == XRAN_CATEGORY_B) */</span></div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span> </div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  } <span class="comment">/* if(pRbMap) */</span></div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  std::cout << <span class="stringliteral">"UL: pRbMap ==NULL"</span> << std::endl;</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  }</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  }</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  }</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  }</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span> </div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  <span class="keywordflow">return</span> (0);</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  }</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span> </div><div class="line"><a name="l00914"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#ae89a123aad1c66a76c398b7af216aae4"> 914</a></span>  <span class="keywordtype">void</span> <a class="code" href="classxran_lib_wraper.html#ae89a123aad1c66a76c398b7af216aae4">Cleanup</a>()</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  {</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span> </div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  <span class="keywordflow">if</span>(<a class="code" href="classxran_lib_wraper.html#a25afbf449e11f9e290e0fdbef77702c2">get_rucategory</a>() == <a class="code" href="xran__fh__o__du_8h.html#abf0211a253f5881ebad3910cef98d30ea6f7ea23328e0189a3c4879d7fa0d3749">XRAN_CATEGORY_B</a>) {</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  <span class="keywordflow">for</span>(i = 0; i < <a class="code" href="xran__lib__wrap_8hpp.html#a14c306e04a1b3ecdd13b82ab9ca6c9b5">MAX_ANT_CARRIER_SUPPORTED</a> && i < (uint32_t)(<a class="code" href="classxran_lib_wraper.html#aeeef9211b4ee7d22934db64125b538dd">get_num_cc</a>() * <a class="code" href="classxran_lib_wraper.html#aef8068804ca7393d92edd9ed22d90070">get_num_eaxc</a>()); i++) {</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  <span class="keywordflow">if</span>(p_tx_dl_bfw_buffer[i]) {</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  free(p_tx_dl_bfw_buffer[i]);</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  p_tx_dl_bfw_buffer[i] == NULL;</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  }</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span> </div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <span class="keywordflow">if</span>(p_tx_ul_bfw_buffer[i]) {</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  free(p_tx_ul_bfw_buffer[i]);</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  p_tx_ul_bfw_buffer[i] == NULL;</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  }</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  }</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  }</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span> </div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  }</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span> </div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span> </div><div class="line"><a name="l00936"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#ad93226058ef4fd59bd7d0cd55701b752"> 936</a></span>  <span class="keywordtype">void</span> <a class="code" href="classxran_lib_wraper.html#ad93226058ef4fd59bd7d0cd55701b752">Open</a>(<a class="code" href="xran__common_8h.html#aedb267cc96c01f38341f460932d4cc5c">xran_ethdi_mbuf_send_fn</a> send_cp, <a class="code" href="xran__common_8h.html#aedb267cc96c01f38341f460932d4cc5c">xran_ethdi_mbuf_send_fn</a> send_up,</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <span class="keywordtype">void</span> *fh_rx_callback, <span class="keywordtype">void</span> *fh_rx_prach_callback)</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  {</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <span class="keyword">struct </span><a class="code" href="structxran__fh__config.html">xran_fh_config</a> *<a class="code" href="sample-app_8c.html#ac1813c55eefb1dca0fd1af4c7a173c4a">pXranConf</a>;</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  int32_t nSectorNum;</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <span class="keywordtype">int</span> i, j, k, z;</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  <span class="keyword">struct </span><a class="code" href="structxran__buffer__list.html">xran_buffer_list</a> *pFthTxBuffer[<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>];</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  <span class="keyword">struct </span><a class="code" href="structxran__buffer__list.html">xran_buffer_list</a> *pFthTxPrbMapBuffer[<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>];</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  <span class="keyword">struct </span><a class="code" href="structxran__buffer__list.html">xran_buffer_list</a> *pFthRxBuffer[<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>];</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  <span class="keyword">struct </span><a class="code" href="structxran__buffer__list.html">xran_buffer_list</a> *pFthRxPrbMapBuffer[<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>];</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  <span class="keyword">struct </span><a class="code" href="structxran__buffer__list.html">xran_buffer_list</a> *pFthRxRachBuffer[<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>][<a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>];</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span> </div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span> <span class="preprocessor">#if 0</span></div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <a class="code" href="xran__fh__o__du_8h.html#aa8354b56b0be4be47c44a8a5c38db86e">xran_reg_physide_cb</a>(<a class="code" href="sample-app_8c.html#a85ff1667d07b822b2c7f5a91a0c0bc95">xranHandle</a>, <a class="code" href="sample-app_8c.html#aa8882d42d07fbd9750da4db4395b438c">physide_dl_tti_call_back</a>, NULL, 10, <a class="code" href="xran__fh__o__du_8h.html#a8eb67099ddcb1b5877a494edfd450d24ae2863e9abb188c74c5e36966396988e3">XRAN_CB_TTI</a>);</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <a class="code" href="xran__fh__o__du_8h.html#aa8354b56b0be4be47c44a8a5c38db86e">xran_reg_physide_cb</a>(<a class="code" href="sample-app_8c.html#a85ff1667d07b822b2c7f5a91a0c0bc95">xranHandle</a>, <a class="code" href="sample-app_8c.html#a52c968a559117b66a05591f958da75c2">physide_ul_half_slot_call_back</a>, NULL, 10, <a class="code" href="xran__fh__o__du_8h.html#a8eb67099ddcb1b5877a494edfd450d24a75d1b6240b461efda58c8e06e8e9f6d2">XRAN_CB_HALF_SLOT_RX</a>);</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  <a class="code" href="xran__fh__o__du_8h.html#aa8354b56b0be4be47c44a8a5c38db86e">xran_reg_physide_cb</a>(<a class="code" href="sample-app_8c.html#a85ff1667d07b822b2c7f5a91a0c0bc95">xranHandle</a>, <a class="code" href="sample-app_8c.html#a874ba95e7c465e83ccc26ab623eec60c">physide_ul_full_slot_call_back</a>, NULL, 10, <a class="code" href="xran__fh__o__du_8h.html#a8eb67099ddcb1b5877a494edfd450d24a1e3bbfc0078205779b22c99889f927af">XRAN_CB_FULL_SLOT_RX</a>);</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  nSectorNum = <a class="code" href="classxran_lib_wraper.html#aeeef9211b4ee7d22934db64125b538dd">get_num_cc</a>();</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span> </div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  <span class="keywordflow">for</span>(i=0; i<nSectorNum; i++) {</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <span class="keywordflow">for</span>(j=0; j<<a class="code" href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a>; j++) {</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  <span class="keywordflow">for</span>(z = 0; z < <a class="code" href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a>; z++) {</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  pFthTxBuffer[i][z][j] = &(m_sFrontHaulTxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>);</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  pFthTxPrbMapBuffer[i][z][j] = &(m_sFrontHaulTxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>);</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  pFthRxBuffer[i][z][j] = &(m_sFrontHaulRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>);</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  pFthRxPrbMapBuffer[i][z][j] = &(m_sFrontHaulRxPrbMapBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>);</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  pFthRxRachBuffer[i][z][j] = &(m_sFHPrachRxBbuIoBufCtrl[j][i][z].<a class="code" href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">sBufferList</a>);</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  }</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  }</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  }</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span> </div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <span class="keywordflow">if</span>(m_nInstanceHandle[0] != NULL) {</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  <span class="keywordflow">for</span>(i = 0; i<nSectorNum; i++) {</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <a class="code" href="xran__fh__o__du_8h.html#ac94e2474beef3b68521cfd391211b1be">xran_5g_fronthault_config</a>(m_nInstanceHandle[0][i],</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  pFthTxBuffer[i], pFthTxPrbMapBuffer[i],</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  pFthRxBuffer[i], pFthRxPrbMapBuffer[i],</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  (<span class="keywordtype">void</span> (*)(<span class="keywordtype">void</span> *, <a class="code" href="xran__fh__o__du_8h.html#aa3ceca070f84e316e0e2f6002419d572">xran_status_t</a>))fh_rx_callback, &pFthRxBuffer[i][0]);</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span> </div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  <a class="code" href="xran__fh__o__du_8h.html#ab204e979de14c21d34e9b88c6c700d25">xran_5g_prach_req</a>(m_nInstanceHandle[0][i], pFthRxRachBuffer[i],</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  (<span class="keywordtype">void</span> (*)(<span class="keywordtype">void</span> *, <a class="code" href="xran__fh__o__du_8h.html#aa3ceca070f84e316e0e2f6002419d572">xran_status_t</a>))fh_rx_prach_callback, &pFthRxRachBuffer[i][0]);</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  }</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  }</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span> </div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  <a class="code" href="xran__common_8h.html#ad1ada9c5c57979c50f1a17a9050b8f3a">xran_register_cb_mbuf2ring</a>(send_cp, send_up);</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span> </div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  <a class="code" href="xran__fh__o__du_8h.html#a03f408f45e97aa68ca47c92e4e7d1a70">xran_open</a>(m_xranhandle, &<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>);</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  }</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span> </div><div class="line"><a name="l00984"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a7f7a3199c392465d0767c6506c1af5b4"> 984</a></span>  <span class="keywordtype">void</span> <a class="code" href="classxran_lib_wraper.html#a7f7a3199c392465d0767c6506c1af5b4">Close</a>()</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  {</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  <span class="keywordflow">if</span>(m_xranhandle)</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <a class="code" href="xran__fh__o__du_8h.html#a2f8866c9d6536a56e4d8232b8c45808b">xran_close</a>(m_xranhandle);</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  }</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span> </div><div class="line"><a name="l00990"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#af9989f7ffd89540fc26371e24a29fefc"> 990</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#af9989f7ffd89540fc26371e24a29fefc">Start</a>()</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  {</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  <span class="keywordflow">if</span>(m_xranhandle)</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  <span class="keywordflow">return</span>(<a class="code" href="xran__fh__o__du_8h.html#ad4852c0827600db95f9841e2f5f9f6f1">xran_start</a>(m_xranhandle));</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  }</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span> </div><div class="line"><a name="l00998"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#af7c499a1fa8e52a104500d7d01c1a280"> 998</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#af7c499a1fa8e52a104500d7d01c1a280">Stop</a>()</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  {</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  <span class="keywordflow">if</span>(m_xranhandle)</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  <span class="keywordflow">return</span>(<a class="code" href="xran__fh__o__du_8h.html#a8f2daee2fe90126f1f7c361b7760a7a3">xran_stop</a>(m_xranhandle));</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  }</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> </div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  <span class="comment">/* emulation of timer */</span></div><div class="line"><a name="l01007"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a3783fbb2a26b8a0530c489850a905a38"> 1007</a></span>  <span class="keywordtype">void</span> <a class="code" href="classxran_lib_wraper.html#a3783fbb2a26b8a0530c489850a905a38">update_tti</a>()</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  {</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  <a class="code" href="xran__lib__wrap_8hpp.html#a9c3700d61ba446fa9b05cca2ca9018ab">tti_ota_cb</a>(<span class="keyword">nullptr</span>, <a class="code" href="classxran_lib_wraper.html#a1ffad42e0cccdbc800d3dbef66f52d45">get_timer_ctx</a>());</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  }</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> </div><div class="line"><a name="l01012"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#ac4ce5a18c687ee515676e035359a1e89"> 1012</a></span>  <span class="keywordtype">void</span> <a class="code" href="classxran_lib_wraper.html#ac4ce5a18c687ee515676e035359a1e89">update_symbol_index</a>()</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  {</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  <a class="code" href="xran__lib__wrap_8hpp.html#a98175f360f5753bc99c4edd3c2d8bd04">xran_lib_ota_sym_idx</a>++;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  <span class="keywordflow">if</span>((<a class="code" href="xran__lib__wrap_8hpp.html#a98175f360f5753bc99c4edd3c2d8bd04">xran_lib_ota_sym_idx</a> % <a class="code" href="common_8h.html#a534c88c03c366dfbd4dd5efe7693f56b">N_SYM_PER_SLOT</a>) == 0) {</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <a class="code" href="classxran_lib_wraper.html#a3783fbb2a26b8a0530c489850a905a38">update_tti</a>();</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  }</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> </div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  <a class="code" href="xran__lib__wrap_8hpp.html#a8cec0b41a42705e6ab9f49914ca666c2">xran_lib_ota_sym</a>++;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  <span class="keywordflow">if</span>(<a class="code" href="xran__lib__wrap_8hpp.html#a8cec0b41a42705e6ab9f49914ca666c2">xran_lib_ota_sym</a> >= N_SYM_PER_SLOT)</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  <a class="code" href="xran__lib__wrap_8hpp.html#a8cec0b41a42705e6ab9f49914ca666c2">xran_lib_ota_sym</a> = 0;</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  }</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> </div><div class="line"><a name="l01024"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a165ca95dea40ce1abcc161f39087d38d"> 1024</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#a165ca95dea40ce1abcc161f39087d38d">apply_cpenable</a>(<span class="keywordtype">bool</span> flag)</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  {</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  <span class="keyword">struct </span><a class="code" href="structxran__device__ctx.html">xran_device_ctx</a> *pCtx = <a class="code" href="xran__common_8h.html#aa09e72e94d2a1d891e86f4c09b0f8b21">xran_dev_get_ctx</a>();</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> </div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  <span class="keywordflow">if</span>(<a class="code" href="classxran_lib_wraper.html#a61da580fc69a74f3ef17956ba5fd88a0">is_running</a>())</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> </div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  <span class="keywordflow">if</span>(pCtx == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> </div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  <span class="keywordflow">if</span>(flag == <span class="keyword">true</span>) {</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ab0bb0b684cc2798a2ef1ceabe4a47e38">enableCP</a> = 1;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  pCtx-><a class="code" href="structxran__device__ctx.html#a1acdb894b98fd0ddf9e5542b50acfc50">enableCP</a> = 1;</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  }</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  <a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ab0bb0b684cc2798a2ef1ceabe4a47e38">enableCP</a> = 0;</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  pCtx-><a class="code" href="structxran__device__ctx.html#a1acdb894b98fd0ddf9e5542b50acfc50">enableCP</a> = 0;</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  }</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> </div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  <span class="keywordflow">return</span> (0);</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  }</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> </div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> </div><div class="line"><a name="l01047"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a970616fd84b2f27327a77e202d31eeef"> 1047</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#a970616fd84b2f27327a77e202d31eeef">get_slot_config</a>(<span class="keyword">const</span> std::string &cfgname, <span class="keyword">struct</span> <a class="code" href="structxran__frame__config.html">xran_frame_config</a> *pCfg)</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  {</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  <span class="keywordtype">int</span> numcfg, i, j;</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  std::vector<int> slotcfg;</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> </div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  numcfg = get_globalcfg<int>(cfgname, <span class="stringliteral">"period"</span>);</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  pCfg-><a class="code" href="structxran__frame__config.html#a53a1d989c6dee827495401b1973c9ef8">nTddPeriod</a> = numcfg;</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  <span class="keywordflow">for</span>(i=0; i < numcfg; i++) {</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  std::stringstream slotcfgname;</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> </div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  slotcfgname << <span class="stringliteral">"slot"</span> << i;</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  std::vector<int> slotcfg = get_globalcfg_array<int>(cfgname, slotcfgname.str());</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> </div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  <span class="keywordflow">for</span>(j=0; j < slotcfg.size(); j++)</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  pCfg-><a class="code" href="structxran__frame__config.html#a4664e9a9005020b4a98ada2d256906e2">sSlotConfig</a>[i].<a class="code" href="structxran__slot__config.html#a37a7dc4b204c22c2d8b9da9b07abd154">nSymbolType</a>[j] = slotcfg[j];</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  pCfg-><a class="code" href="structxran__frame__config.html#a4664e9a9005020b4a98ada2d256906e2">sSlotConfig</a>[i].<a class="code" href="structxran__slot__config.html#a8d7e0415efaf6e08cb6510401f765c28">reserved</a>[0] = 0; pCfg-><a class="code" href="structxran__frame__config.html#a4664e9a9005020b4a98ada2d256906e2">sSlotConfig</a>[i].<a class="code" href="structxran__slot__config.html#a8d7e0415efaf6e08cb6510401f765c28">reserved</a>[1] = 0;</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  }</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> </div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  <span class="keywordflow">return</span> (numcfg);</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  }</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> </div><div class="line"><a name="l01068"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#abbe0bfcd68428ee4cc3f63a391495e8d"> 1068</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#abbe0bfcd68428ee4cc3f63a391495e8d">get_num_rbs</a>(uint32_t nNumerology, uint32_t nBandwidth, <span class="keywordtype">bool</span> nSub6)</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>  {</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  <span class="keywordflow">if</span>(nNumerology > 3)</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> </div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  <span class="keywordflow">if</span>(nSub6) {</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>  <span class="keywordflow">if</span> (nNumerology < 3) {</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  <span class="comment">/* F1 Tables 38.101-1 Table 5.3.2-1. Maximum transmission bandwidth configuration NRB */</span></div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  <span class="keywordflow">switch</span>(nBandwidth) {</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5afe7527756943cdf6474ad1c40ac7d716">PHY_BW_5MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF1[nNumerology][0]);</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5aae465d43fabe2dda9a2c6dbd2fa1099a">PHY_BW_10MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF1[nNumerology][1]);</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a6eac287ee60ef4b214f6cd0b8196c7e4">PHY_BW_15MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF1[nNumerology][2]);</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a9aacdbe3977171e1dda54f4778698ae8">PHY_BW_20MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF1[nNumerology][3]);</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a5b785d20b7b0bf419524631adcb69df2">PHY_BW_25MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF1[nNumerology][4]);</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5acb0fe0e94ea4f59ab5dd24203d20e7a4">PHY_BW_30MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF1[nNumerology][5]);</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a5a479142e60c93d76621c1390d029109">PHY_BW_40MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF1[nNumerology][6]);</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a890aa1814878ba9f0adfab63784ef1c1">PHY_BW_50MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF1[nNumerology][7]);</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5acc82a679f8781bb880161e53650bdc33">PHY_BW_60MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF1[nNumerology][8]);</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a3e20f3de146adbc3420c294819ec1e19">PHY_BW_70MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF1[nNumerology][9]);</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a22ec162486eef1dd707ae1bd7ac8bde6">PHY_BW_80MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF1[nNumerology][10]);</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a78c8c492b7c956fcd6b6e704662d385f">PHY_BW_90MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF1[nNumerology][11]);</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5aa890924947f41b2c05cb5acf87b463cb">PHY_BW_100MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF1[nNumerology][12]);</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  }</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  }</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  }</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  <span class="keywordflow">else</span> { <span class="comment">/* if(nSub6) */</span></div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  <span class="keywordflow">if</span>((nNumerology >= 2) && (nNumerology <= 3)) {</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>  nNumerology -= 2;</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  <span class="comment">/* F2 Tables 38.101-2 Table 5.3.2-1. Maximum transmission bandwidth configuration NRB */</span></div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  <span class="keywordflow">switch</span>(nBandwidth) {</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a890aa1814878ba9f0adfab63784ef1c1">PHY_BW_50MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF2[nNumerology][0]); <span class="keywordflow">break</span>;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5aa890924947f41b2c05cb5acf87b463cb">PHY_BW_100MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF2[nNumerology][1]); <span class="keywordflow">break</span>;</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a845dedb5bd2f41b50f6a7268473435a0">PHY_BW_200MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF2[nNumerology][2]); <span class="keywordflow">break</span>;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  <span class="keywordflow">case</span> <a class="code" href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a7217a56ae78997c5ae511d10ebb4c924">PHY_BW_400MHZ</a>: <span class="keywordflow">return</span>(nNumRbsPerSymF2[nNumerology][3]); <span class="keywordflow">break</span>;</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  }</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  }</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  }</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> </div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  }</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> </div><div class="line"><a name="l01109"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a2ad94e2d18c69b423d5402d7777832f1"> 1109</a></span>  <span class="keywordtype">void</span> *<a class="code" href="classxran_lib_wraper.html#a2ad94e2d18c69b423d5402d7777832f1">get_xranhandle</a>() { <span class="keywordflow">return</span>(m_xranhandle); }</div><div class="line"><a name="l01110"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a1ffad42e0cccdbc800d3dbef66f52d45"> 1110</a></span>  <span class="keywordtype">void</span> *<a class="code" href="classxran_lib_wraper.html#a1ffad42e0cccdbc800d3dbef66f52d45">get_timer_ctx</a>() { <span class="keywordflow">return</span>((<span class="keywordtype">void</span> *)&<a class="code" href="classxran_lib_wraper.html#a74cbf8f188c4df27d645f80be26bb077">m_timer_ctx</a>[0]); }</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> </div><div class="line"><a name="l01112"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#ab795436cc8b07e2b0d665502274b30e6"> 1112</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#ab795436cc8b07e2b0d665502274b30e6">get_symbol_index</a>() { <span class="keywordflow">return</span> (<a class="code" href="xran__lib__wrap_8hpp.html#a8cec0b41a42705e6ab9f49914ca666c2">xran_lib_ota_sym</a>); }</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> </div><div class="line"><a name="l01114"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a61da580fc69a74f3ef17956ba5fd88a0"> 1114</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classxran_lib_wraper.html#a61da580fc69a74f3ef17956ba5fd88a0">is_running</a>() { <span class="keywordflow">return</span>((<a class="code" href="xran__fh__o__du_8h.html#a937105f52446cfcb951e43e1dc3c4d8b">xran_get_if_state</a>() == <a class="code" href="xran__fh__o__du_8h.html#a2f600110ab5726a0f21375b7f24c0326a35916b54fc6804c2f2dc1f5891f3047e">XRAN_RUNNING</a>)?<span class="keyword">true</span>:<span class="keyword">false</span>); }</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> </div><div class="line"><a name="l01116"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a25afbf449e11f9e290e0fdbef77702c2"> 1116</a></span>  <span class="keyword">enum</span> <a class="code" href="xran__fh__o__du_8h.html#abf0211a253f5881ebad3910cef98d30e">xran_category</a> <a class="code" href="classxran_lib_wraper.html#a25afbf449e11f9e290e0fdbef77702c2">get_rucategory</a>() { <span class="keywordflow">return</span>(<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a27ff648f80c139235421b81f957fcb7e">ru_conf</a>.<a class="code" href="structxran__ru__config.html#af92ff2dfd2bddd0880d779c04b9fb359">xranCat</a>); }</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> </div><div class="line"><a name="l01118"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a7d7488daf0a2eebb9359f760a60eaf7c"> 1118</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#a7d7488daf0a2eebb9359f760a60eaf7c">get_numerology</a>() { <span class="keywordflow">return</span>(<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a72b0cba491d0dd2703d684cb2c2a14cf">frame_conf</a>.<a class="code" href="structxran__frame__config.html#a78b2fab8e8d6a6424c2712d528fd9a58">nNumerology</a>); }</div><div class="line"><a name="l01119"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a5548a3a1605dbf7b492d6eb164d3c667"> 1119</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#a5548a3a1605dbf7b492d6eb164d3c667">get_duplextype</a>() { <span class="keywordflow">return</span>(<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a72b0cba491d0dd2703d684cb2c2a14cf">frame_conf</a>.<a class="code" href="structxran__frame__config.html#a3b86317723a592e240c0047e53a6326d">nFrameDuplexType</a>); }</div><div class="line"><a name="l01120"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#aeeef9211b4ee7d22934db64125b538dd"> 1120</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#aeeef9211b4ee7d22934db64125b538dd">get_num_cc</a>() { <span class="keywordflow">return</span>(<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a6dcac3ea0b3d99c20c2e6f7091b8b342">nCC</a>); }</div><div class="line"><a name="l01121"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#aef8068804ca7393d92edd9ed22d90070"> 1121</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#aef8068804ca7393d92edd9ed22d90070">get_num_eaxc</a>() { <span class="keywordflow">return</span>(<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#abcac68b45b2bcf3b5458817d65b86e45">neAxc</a>); }</div><div class="line"><a name="l01122"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#ad2b06001d76c9a773c242b28fc7c92f4"> 1122</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#ad2b06001d76c9a773c242b28fc7c92f4">get_num_dlrbs</a>() { <span class="keywordflow">return</span>(<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a7917929ae3bb588a5bf6f4e56cf9549e">nDLRBs</a>); }</div><div class="line"><a name="l01123"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a967a0c58430104684cf2f9b1fdb444da"> 1123</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#a967a0c58430104684cf2f9b1fdb444da">get_num_ulrbs</a>() { <span class="keywordflow">return</span>(<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a5448b37ad609bb66bf44b44d1f9bac72">nULRBs</a>); }</div><div class="line"><a name="l01124"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#adde1d671cf6532a577f13d85875ee3b4"> 1124</a></span>  <span class="keywordtype">int</span> <a class="code" href="classxran_lib_wraper.html#adde1d671cf6532a577f13d85875ee3b4">get_num_antelmtrx</a>() { <span class="keywordflow">return</span>(<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#ac63d8c67956a8a08cbfd8efb92a2f055">nAntElmTRx</a>); }</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> </div><div class="line"><a name="l01126"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a5855fc30031ba49b7375526f7cda0ff7"> 1126</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classxran_lib_wraper.html#a5855fc30031ba49b7375526f7cda0ff7">is_cpenable</a>() { <span class="keywordflow">return</span>(<a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ab0bb0b684cc2798a2ef1ceabe4a47e38">enableCP</a>); };</div><div class="line"><a name="l01127"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a5b5d9e46f23728cf8901e177fbf1e32b"> 1127</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classxran_lib_wraper.html#a5b5d9e46f23728cf8901e177fbf1e32b">is_prachenable</a>() { <span class="keywordflow">return</span>(<a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#ac0646000d1448798a186e109df0bb3dd">prachEnable</a>); };</div><div class="line"><a name="l01128"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a1d92eb426fc3269a180f07289f738d1a"> 1128</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classxran_lib_wraper.html#a1d92eb426fc3269a180f07289f738d1a">is_dynamicsection</a>() { <span class="keywordflow">return</span>(<a class="code" href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">m_xranInit</a>.<a class="code" href="structxran__fh__init.html#a6fcbf469691a192f1ce298f70981c17a">DynamicSectionEna</a>?<span class="keyword">true</span>:<span class="keyword">false</span>); }</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> </div><div class="line"><a name="l01130"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a0395e3b64e7fe193c70ea4e86ce2bddc"> 1130</a></span>  <span class="keywordtype">void</span> <a class="code" href="classxran_lib_wraper.html#a0395e3b64e7fe193c70ea4e86ce2bddc">get_cfg_prach</a>(<span class="keyword">struct</span> <a class="code" href="structxran__prach__config.html">xran_prach_config</a> *pCfg)</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  {</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  <span class="keywordflow">if</span>(pCfg)</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  memcpy(pCfg, &<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a167e91cb91119363bf10c9430b6f082c">prach_conf</a>, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structxran__prach__config.html">xran_prach_config</a>));</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>  }</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> </div><div class="line"><a name="l01136"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a387cf1bf4b8f48c23d58309a0c1a9e2c"> 1136</a></span>  <span class="keywordtype">void</span> <a class="code" href="classxran_lib_wraper.html#a387cf1bf4b8f48c23d58309a0c1a9e2c">get_cfg_frame</a>(<span class="keyword">struct</span> <a class="code" href="structxran__frame__config.html">xran_frame_config</a> *pCfg)</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  {</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  <span class="keywordflow">if</span>(pCfg)</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>  memcpy(pCfg, &<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a72b0cba491d0dd2703d684cb2c2a14cf">frame_conf</a>, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structxran__frame__config.html">xran_frame_config</a>));</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>  }</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> </div><div class="line"><a name="l01142"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a8789158912b9607cbc6414c92a120003"> 1142</a></span>  <span class="keywordtype">void</span> <a class="code" href="classxran_lib_wraper.html#a8789158912b9607cbc6414c92a120003">get_cfg_ru</a>(<span class="keyword">struct</span> <a class="code" href="structxran__ru__config.html">xran_ru_config</a> *pCfg)</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>  {</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>  <span class="keywordflow">if</span>(pCfg)</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>  memcpy(pCfg, &<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>.<a class="code" href="structxran__fh__config.html#a27ff648f80c139235421b81f957fcb7e">ru_conf</a>, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structxran__ru__config.html">xran_ru_config</a>));</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>  }</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> </div><div class="line"><a name="l01148"></a><span class="lineno"><a class="line" href="classxran_lib_wraper.html#a7d671b9b851d9b0fbae6777e85643c3b"> 1148</a></span>  <span class="keywordtype">void</span> <a class="code" href="classxran_lib_wraper.html#a7d671b9b851d9b0fbae6777e85643c3b">get_cfg_fh</a>(<span class="keyword">struct</span> <a class="code" href="structxran__fh__config.html">xran_fh_config</a> *pCfg)</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>  {</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  <span class="keywordflow">if</span>(pCfg)</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>  memcpy(pCfg, &<a class="code" href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">m_xranConf</a>, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structxran__fh__config.html">xran_fh_config</a>));</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  }</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> </div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> };</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> </div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> </div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> <span class="comment">/* external declaration for the instance */</span></div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> <span class="keyword">extern</span> <a class="code" href="classxran_lib_wraper.html">xranLibWraper</a> *<a class="code" href="xran__lib__wrap_8hpp.html#a1b2100f9f398243bb4bdbf0db003b9a3">xranlib</a>;</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> </div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> </div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="preprocessor">#endif //XRAN_LIB_WRAP_HPP</span></div><div class="ttc" id="xran__fh__o__du_8h_html_a4c62e469317040d695487f294cf9e0baaedc9957e395dca8c38c07377885b5339"><div class="ttname"><a href="xran__fh__o__du_8h.html#a4c62e469317040d695487f294cf9e0baaedc9957e395dca8c38c07377885b5339">XRAN_BBDEV_NOT_USED</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00280">xran_fh_o_du.h:280</a></div></div>
71 <div class="ttc" id="structxran__fh__init_html_a8ad55119f3b227785857aaddef6a8384"><div class="ttname"><a href="structxran__fh__init.html#a8ad55119f3b227785857aaddef6a8384">xran_fh_init::debugStop</a></div><div class="ttdeci">int32_t debugStop</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00361">xran_fh_o_du.h:361</a></div></div>
72 <div class="ttc" id="sample-app_8c_html_a874ba95e7c465e83ccc26ab623eec60c"><div class="ttname"><a href="sample-app_8c.html#a874ba95e7c465e83ccc26ab623eec60c">physide_ul_full_slot_call_back</a></div><div class="ttdeci">int physide_ul_full_slot_call_back(void *param)</div><div class="ttdef"><b>Definition:</b> <a href="sample-app_8c_source.html#l00367">sample-app.c:367</a></div></div>
73 <div class="ttc" id="classxran_lib_wraper_html_a1ffad42e0cccdbc800d3dbef66f52d45"><div class="ttname"><a href="classxran_lib_wraper.html#a1ffad42e0cccdbc800d3dbef66f52d45">xranLibWraper::get_timer_ctx</a></div><div class="ttdeci">void * get_timer_ctx()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01110">xran_lib_wrap.hpp:1110</a></div></div>
74 <div class="ttc" id="classxran_lib_wraper_html_a163a7a574581e04dfa9cc60cfc81e7f5a845dedb5bd2f41b50f6a7268473435a0"><div class="ttname"><a href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a845dedb5bd2f41b50f6a7268473435a0">xranLibWraper::PHY_BW_200MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00087">xran_lib_wrap.hpp:87</a></div></div>
75 <div class="ttc" id="xran__fh__o__du_8h_html_aa099ceebb1479cddef1ee64f5c311973"><div class="ttname"><a href="xran__fh__o__du_8h.html#aa099ceebb1479cddef1ee64f5c311973">XRAN_MAX_SECTIONS_PER_SYM</a></div><div class="ttdeci">#define XRAN_MAX_SECTIONS_PER_SYM</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00130">xran_fh_o_du.h:130</a></div></div>
76 <div class="ttc" id="xran__lib__wrap_8hpp_html_ad5b1e2ec82b937000bd1fe89acb5384c"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#ad5b1e2ec82b937000bd1fe89acb5384c">SW_FPGA_FH_TOTAL_BUFFER_LEN</a></div><div class="ttdeci">#define SW_FPGA_FH_TOTAL_BUFFER_LEN</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00051">xran_lib_wrap.hpp:51</a></div></div>
77 <div class="ttc" id="xran__fh__o__du_8h_html_abf0211a253f5881ebad3910cef98d30ea25cae7703b653209b61647fa65ac7e9f"><div class="ttname"><a href="xran__fh__o__du_8h.html#abf0211a253f5881ebad3910cef98d30ea25cae7703b653209b61647fa65ac7e9f">XRAN_CATEGORY_A</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00264">xran_fh_o_du.h:264</a></div></div>
78 <div class="ttc" id="structxran__fh__init_html_ab0bb0b684cc2798a2ef1ceabe4a47e38"><div class="ttname"><a href="structxran__fh__init.html#ab0bb0b684cc2798a2ef1ceabe4a47e38">xran_fh_init::enableCP</a></div><div class="ttdeci">uint8_t enableCP</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00356">xran_fh_o_du.h:356</a></div></div>
79 <div class="ttc" id="xran__fh__o__du_8h_html_abf0211a253f5881ebad3910cef98d30ea6f7ea23328e0189a3c4879d7fa0d3749"><div class="ttname"><a href="xran__fh__o__du_8h.html#abf0211a253f5881ebad3910cef98d30ea6f7ea23328e0189a3c4879d7fa0d3749">XRAN_CATEGORY_B</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00265">xran_fh_o_du.h:265</a></div></div>
80 <div class="ttc" id="classxran_lib_wraper_html_ad84b20c11b0095b35674f3eb1c247375"><div class="ttname"><a href="classxran_lib_wraper.html#ad84b20c11b0095b35674f3eb1c247375">xranLibWraper::m_sFHPrachRxBuffers</a></div><div class="ttdeci">struct xran_flat_buffer m_sFHPrachRxBuffers[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR][XRAN_MAX_ANTENNA_NR][XRAN_NUM_OF_SYMBOL_PER_SLOT]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00139">xran_lib_wrap.hpp:139</a></div></div>
81 <div class="ttc" id="classxran_lib_wraper_html_a163a7a574581e04dfa9cc60cfc81e7f5afe7527756943cdf6474ad1c40ac7d716"><div class="ttname"><a href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5afe7527756943cdf6474ad1c40ac7d716">xranLibWraper::PHY_BW_5MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00083">xran_lib_wrap.hpp:83</a></div></div>
82 <div class="ttc" id="xran__common_8h_html_ad1ada9c5c57979c50f1a17a9050b8f3a"><div class="ttname"><a href="xran__common_8h.html#ad1ada9c5c57979c50f1a17a9050b8f3a">xran_register_cb_mbuf2ring</a></div><div class="ttdeci">int xran_register_cb_mbuf2ring(xran_ethdi_mbuf_send_fn mbuf_send_cp, xran_ethdi_mbuf_send_fn mbuf_send_up)</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l02918">xran_main.c:2918</a></div></div>
83 <div class="ttc" id="xran__fh__o__du_8h_html_a185d8ae20c697568878935f0a260227aabadad61426458852f6c89f1a74b03c1a"><div class="ttname"><a href="xran__fh__o__du_8h.html#a185d8ae20c697568878935f0a260227aabadad61426458852f6c89f1a74b03c1a">XRAN_CP_VF</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00257">xran_fh_o_du.h:257</a></div></div>
84 <div class="ttc" id="classxran_lib_wraper_html_a5914f36a470616ef17f5b663a8d21b30"><div class="ttname"><a href="classxran_lib_wraper.html#a5914f36a470616ef17f5b663a8d21b30">xranLibWraper::m_ru_mac</a></div><div class="ttdeci">uint8_t m_ru_mac[6]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00116">xran_lib_wrap.hpp:116</a></div></div>
85 <div class="ttc" id="classxran_lib_wraper_html_a21b3d390c6eee5d15152cdc5459ff523"><div class="ttname"><a href="classxran_lib_wraper.html#a21b3d390c6eee5d15152cdc5459ff523">xranLibWraper::m_nSW_ToFpga_FTH_TxBufferLen</a></div><div class="ttdeci">uint32_t m_nSW_ToFpga_FTH_TxBufferLen</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00144">xran_lib_wrap.hpp:144</a></div></div>
86 <div class="ttc" id="classxran_lib_wraper_html_adde1d671cf6532a577f13d85875ee3b4"><div class="ttname"><a href="classxran_lib_wraper.html#adde1d671cf6532a577f13d85875ee3b4">xranLibWraper::get_num_antelmtrx</a></div><div class="ttdeci">int get_num_antelmtrx()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01124">xran_lib_wrap.hpp:1124</a></div></div>
87 <div class="ttc" id="classxran_lib_wraper_html_a7f7a3199c392465d0767c6506c1af5b4"><div class="ttname"><a href="classxran_lib_wraper.html#a7f7a3199c392465d0767c6506c1af5b4">xranLibWraper::Close</a></div><div class="ttdeci">void Close()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00984">xran_lib_wrap.hpp:984</a></div></div>
88 <div class="ttc" id="structxran__io__cfg_html_aa442a227739dcff5212e5356dee54b68"><div class="ttname"><a href="structxran__io__cfg.html#aa442a227739dcff5212e5356dee54b68">xran_io_cfg::timing_core</a></div><div class="ttdeci">int32_t timing_core</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00303">xran_fh_o_du.h:303</a></div></div>
89 <div class="ttc" id="xran__fh__o__du_8h_html_af0963ba32cc8ecd280afd2e474eb426a"><div class="ttname"><a href="xran__fh__o__du_8h.html#af0963ba32cc8ecd280afd2e474eb426a">XRAN_N_FE_BUF_LEN</a></div><div class="ttdeci">#define XRAN_N_FE_BUF_LEN</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00109">xran_fh_o_du.h:109</a></div></div>
90 <div class="ttc" id="xran__fh__o__du_8h_html_a4c62e469317040d695487f294cf9e0baa444621cf5453a912cc492b1bf62c0d39"><div class="ttname"><a href="xran__fh__o__du_8h.html#a4c62e469317040d695487f294cf9e0baa444621cf5453a912cc492b1bf62c0d39">XRAN_BBDEV_MODE_HW_ON</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00282">xran_fh_o_du.h:282</a></div></div>
91 <div class="ttc" id="structxran__prb__map_html_a16b7b2d1f57da5ed39e7e3a026592a85"><div class="ttname"><a href="structxran__prb__map.html#a16b7b2d1f57da5ed39e7e3a026592a85">xran_prb_map::ru_port_id</a></div><div class="ttdeci">uint16_t ru_port_id</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00419">xran_fh_o_du.h:419</a></div></div>
92 <div class="ttc" id="xran__fh__o__du_8h_html_a814959a7b5ff6cd4474433f62312eee0"><div class="ttname"><a href="xran__fh__o__du_8h.html#a814959a7b5ff6cd4474433f62312eee0">XRAN_STATUS_SUCCESS</a></div><div class="ttdeci">#define XRAN_STATUS_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00054">xran_fh_o_du.h:54</a></div></div>
93 <div class="ttc" id="classxran_lib_wraper_html_afecde4b156cd353cb29487bbb9675d46a18a697e15ab9936bdc60f3e5b83ddf54"><div class="ttname"><a href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a18a697e15ab9936bdc60f3e5b83ddf54">xranLibWraper::XRANFTHRX_IN</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00074">xran_lib_wrap.hpp:74</a></div></div>
94 <div class="ttc" id="xran__lib__wrap_8hpp_html_a9c3700d61ba446fa9b05cca2ca9018ab"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#a9c3700d61ba446fa9b05cca2ca9018ab">tti_ota_cb</a></div><div class="ttdeci">void tti_ota_cb(struct rte_timer *tim, void *arg)</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l00632">xran_main.c:632</a></div></div>
95 <div class="ttc" id="structxran__fh__config_html_ac63d8c67956a8a08cbfd8efb92a2f055"><div class="ttname"><a href="structxran__fh__config.html#ac63d8c67956a8a08cbfd8efb92a2f055">xran_fh_config::nAntElmTRx</a></div><div class="ttdeci">uint32_t nAntElmTRx</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00503">xran_fh_o_du.h:503</a></div></div>
96 <div class="ttc" id="xran__fh__o__du_8h_html_a8eb67099ddcb1b5877a494edfd450d24a75d1b6240b461efda58c8e06e8e9f6d2"><div class="ttname"><a href="xran__fh__o__du_8h.html#a8eb67099ddcb1b5877a494edfd450d24a75d1b6240b461efda58c8e06e8e9f6d2">XRAN_CB_HALF_SLOT_RX</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00222">xran_fh_o_du.h:222</a></div></div>
97 <div class="ttc" id="classxran_lib_wraper_html_a77bd4ecb90ef07ddc1420242672b1587"><div class="ttname"><a href="classxran_lib_wraper.html#a77bd4ecb90ef07ddc1420242672b1587">xranLibWraper::p_tx_dl_bfw_buffer</a></div><div class="ttdeci">int16_t * p_tx_dl_bfw_buffer[MAX_ANT_CARRIER_SUPPORTED]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00153">xran_lib_wrap.hpp:153</a></div></div>
98 <div class="ttc" id="xran__fh__o__du_8h_html_a03f408f45e97aa68ca47c92e4e7d1a70"><div class="ttname"><a href="xran__fh__o__du_8h.html#a03f408f45e97aa68ca47c92e4e7d1a70">xran_open</a></div><div class="ttdeci">int32_t xran_open(void *pHandle, struct xran_fh_config *pConf)</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l02756">xran_main.c:2756</a></div></div>
99 <div class="ttc" id="classxran_lib_wraper_html_aad7c467bc9da44318d2e8cf2f4472f17"><div class="ttname"><a href="classxran_lib_wraper.html#aad7c467bc9da44318d2e8cf2f4472f17">xranLibWraper::tx_dl_bfw_buffer_size</a></div><div class="ttdeci">int32_t tx_dl_bfw_buffer_size[MAX_ANT_CARRIER_SUPPORTED]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00154">xran_lib_wrap.hpp:154</a></div></div>
100 <div class="ttc" id="structxran__prach__config_html_a3b43924c5ef23b0496d1a7adf2752dbf"><div class="ttname"><a href="structxran__prach__config.html#a3b43924c5ef23b0496d1a7adf2752dbf">xran_prach_config::nPrachFreqOffset</a></div><div class="ttdeci">int32_t nPrachFreqOffset</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00442">xran_fh_o_du.h:442</a></div></div>
101 <div class="ttc" id="structxran__section__desc_html"><div class="ttname"><a href="structxran__section__desc.html">xran_section_desc</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00382">xran_fh_o_du.h:382</a></div></div>
102 <div class="ttc" id="structxran__fh__init_html_a76ae7531da0aa8656d95c194f1e75b0f"><div class="ttname"><a href="structxran__fh__init.html#a76ae7531da0aa8656d95c194f1e75b0f">xran_fh_init::T1a_max_up</a></div><div class="ttdeci">uint16_t T1a_max_up</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00352">xran_fh_o_du.h:352</a></div></div>
103 <div class="ttc" id="classxran_lib_wraper_html_afecde4b156cd353cb29487bbb9675d46a18f6c4a01fa5ed71ccbe1caa53201f4b"><div class="ttname"><a href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a18f6c4a01fa5ed71ccbe1caa53201f4b">xranLibWraper::XRANFTHTX_SEC_DESC_OUT</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00073">xran_lib_wrap.hpp:73</a></div></div>
104 <div class="ttc" id="classxran_lib_wraper_html_acb7ae6f5547d5e166b643084db28b2fa"><div class="ttname"><a href="classxran_lib_wraper.html#acb7ae6f5547d5e166b643084db28b2fa">xranLibWraper::m_xranConf</a></div><div class="ttdeci">struct xran_fh_config m_xranConf</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00120">xran_lib_wrap.hpp:120</a></div></div>
105 <div class="ttc" id="structxran__buffer__list_html_a3d723fbd99a0f76d412b2b79931fbc6e"><div class="ttname"><a href="structxran__buffer__list.html#a3d723fbd99a0f76d412b2b79931fbc6e">xran_buffer_list::nNumBuffers</a></div><div class="ttdeci">uint32_t nNumBuffers</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00594">xran_fh_o_du.h:594</a></div></div>
106 <div class="ttc" id="xran__lib__wrap_8hpp_html_a67e68cef19d6e679b04c315c9234a0e3"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#a67e68cef19d6e679b04c315c9234a0e3">FPGA_TO_SW_PRACH_RX_BUFFER_LEN</a></div><div class="ttdeci">#define FPGA_TO_SW_PRACH_RX_BUFFER_LEN</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00052">xran_lib_wrap.hpp:52</a></div></div>
107 <div class="ttc" id="structxran__fh__config_html_a7917929ae3bb588a5bf6f4e56cf9549e"><div class="ttname"><a href="structxran__fh__config.html#a7917929ae3bb588a5bf6f4e56cf9549e">xran_fh_config::nDLRBs</a></div><div class="ttdeci">uint16_t nDLRBs</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00506">xran_fh_o_du.h:506</a></div></div>
108 <div class="ttc" id="structxran__io__cfg_html_afc9b03cdc767412993891263da114dc3"><div class="ttname"><a href="structxran__io__cfg.html#afc9b03cdc767412993891263da114dc3">xran_io_cfg::pkt_aux_core</a></div><div class="ttdeci">int32_t pkt_aux_core</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00302">xran_fh_o_du.h:302</a></div></div>
109 <div class="ttc" id="xran__lib__wrap_8hpp_html_a6c189fbbc24f87fad24cff9cbd0e6a42"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#a6c189fbbc24f87fad24cff9cbd0e6a42">sym_ota_cb</a></div><div class="ttdeci">void sym_ota_cb(struct rte_timer *tim, void *arg)</div></div>
110 <div class="ttc" id="classxran_lib_wraper_html_a970616fd84b2f27327a77e202d31eeef"><div class="ttname"><a href="classxran_lib_wraper.html#a970616fd84b2f27327a77e202d31eeef">xranLibWraper::get_slot_config</a></div><div class="ttdeci">int get_slot_config(const std::string &cfgname, struct xran_frame_config *pCfg)</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01047">xran_lib_wrap.hpp:1047</a></div></div>
111 <div class="ttc" id="xran__fh__o__du_8h_html_a3efe8aba779b0a2f90adc02065579f5f"><div class="ttname"><a href="xran__fh__o__du_8h.html#a3efe8aba779b0a2f90adc02065579f5f">xran_init</a></div><div class="ttdeci">int32_t xran_init(int argc, char *argv[], struct xran_fh_init *p_xran_fh_init, char *appName, void **pHandle)</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l02319">xran_main.c:2319</a></div></div>
112 <div class="ttc" id="xran__lib__wrap_8hpp_html_ad3747a607e4b273dfae8278854ffc532"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#ad3747a607e4b273dfae8278854ffc532">XRAN_UT_KEY_GLOBALCFG_IO</a></div><div class="ttdeci">#define XRAN_UT_KEY_GLOBALCFG_IO</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00041">xran_lib_wrap.hpp:41</a></div></div>
113 <div class="ttc" id="classxran_lib_wraper_html_af7c499a1fa8e52a104500d7d01c1a280"><div class="ttname"><a href="classxran_lib_wraper.html#af7c499a1fa8e52a104500d7d01c1a280">xranLibWraper::Stop</a></div><div class="ttdeci">int Stop()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00998">xran_lib_wrap.hpp:998</a></div></div>
114 <div class="ttc" id="xran__fh__o__du_8h_html_a999189549fd6b524b733ddd61f1f9962"><div class="ttname"><a href="xran__fh__o__du_8h.html#a999189549fd6b524b733ddd61f1f9962">xran_mm_init</a></div><div class="ttdeci">int32_t xran_mm_init(void *pHandle, uint64_t nMemorySize, uint32_t nMemorySegmentSize)</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l02447">xran_main.c:2447</a></div></div>
115 <div class="ttc" id="common_8cpp_html_ad8c062e9b24e4b3a8408b23a0d8ab428"><div class="ttname"><a href="common_8cpp.html#ad8c062e9b24e4b3a8408b23a0d8ab428">read_json_from_file</a></div><div class="ttdeci">json read_json_from_file(const std::string &filename)</div><div class="ttdoc">Read JSON from the given file. </div><div class="ttdef"><b>Definition:</b> <a href="common_8cpp_source.html#l00106">common.cpp:106</a></div></div>
116 <div class="ttc" id="structxran__eaxcid__config_html_affca087d8bc179073b5ae2f429340898"><div class="ttname"><a href="structxran__eaxcid__config.html#affca087d8bc179073b5ae2f429340898">xran_eaxcid_config::mask_bandSectorId</a></div><div class="ttdeci">uint16_t mask_bandSectorId</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00310">xran_fh_o_du.h:310</a></div></div>
117 <div class="ttc" id="classxran_lib_wraper_html_a387cf1bf4b8f48c23d58309a0c1a9e2c"><div class="ttname"><a href="classxran_lib_wraper.html#a387cf1bf4b8f48c23d58309a0c1a9e2c">xranLibWraper::get_cfg_frame</a></div><div class="ttdeci">void get_cfg_frame(struct xran_frame_config *pCfg)</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01136">xran_lib_wrap.hpp:1136</a></div></div>
118 <div class="ttc" id="structxran__fh__config_html_a5448b37ad609bb66bf44b44d1f9bac72"><div class="ttname"><a href="structxran__fh__config.html#a5448b37ad609bb66bf44b44d1f9bac72">xran_fh_config::nULRBs</a></div><div class="ttdeci">uint16_t nULRBs</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00507">xran_fh_o_du.h:507</a></div></div>
119 <div class="ttc" id="structxran__io__cfg_html_a1e6927fa1486224044e568f9c370519b"><div class="ttname"><a href="structxran__io__cfg.html#a1e6927fa1486224044e568f9c370519b">xran_io_cfg::id</a></div><div class="ttdeci">uint8_t id</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00295">xran_fh_o_du.h:295</a></div></div>
120 <div class="ttc" id="classxran_lib_wraper_html_a9270468afb68051247edd5953b828aca"><div class="ttname"><a href="classxran_lib_wraper.html#a9270468afb68051247edd5953b828aca">xranLibWraper::m_nBufPoolIndex</a></div><div class="ttdeci">uint32_t m_nBufPoolIndex[XRAN_MAX_SECTOR_NR][MAX_SW_XRAN_INTERFACE_NUM]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00142">xran_lib_wrap.hpp:142</a></div></div>
121 <div class="ttc" id="xran__fh__o__du_8h_html_abf0211a253f5881ebad3910cef98d30e"><div class="ttname"><a href="xran__fh__o__du_8h.html#abf0211a253f5881ebad3910cef98d30e">xran_category</a></div><div class="ttdeci">xran_category</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00262">xran_fh_o_du.h:262</a></div></div>
122 <div class="ttc" id="structxran__prach__config_html_a26e6c95dfde831c2588d46dde588c751"><div class="ttname"><a href="structxran__prach__config.html#a26e6c95dfde831c2588d46dde588c751">xran_prach_config::nPrachRestrictSet</a></div><div class="ttdeci">uint8_t nPrachRestrictSet</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00439">xran_fh_o_du.h:439</a></div></div>
123 <div class="ttc" id="classxran_lib_wraper_html_ac4ce5a18c687ee515676e035359a1e89"><div class="ttname"><a href="classxran_lib_wraper.html#ac4ce5a18c687ee515676e035359a1e89">xranLibWraper::update_symbol_index</a></div><div class="ttdeci">void update_symbol_index()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01012">xran_lib_wrap.hpp:1012</a></div></div>
124 <div class="ttc" id="structxran_lib_wraper_1_1xran__timer__ctx_html"><div class="ttname"><a href="structxran_lib_wraper_1_1xran__timer__ctx.html">xranLibWraper::xran_timer_ctx</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00123">xran_lib_wrap.hpp:123</a></div></div>
125 <div class="ttc" id="classnlohmann_1_1basic__json_html_a0801762a3fe36fe32dca5f16e515478d"><div class="ttname"><a href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d">nlohmann::basic_json::size</a></div><div class="ttdeci">size_type size() const noexcept</div><div class="ttdoc">returns the number of elements </div><div class="ttdef"><b>Definition:</b> <a href="json_8hpp_source.html#l05040">json.hpp:5040</a></div></div>
126 <div class="ttc" id="structxran__prb__map_html_a5ca9a2b3d2a5c902f8153e3e383049be"><div class="ttname"><a href="structxran__prb__map.html#a5ca9a2b3d2a5c902f8153e3e383049be">xran_prb_map::xran_port</a></div><div class="ttdeci">uint8_t xran_port</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00416">xran_fh_o_du.h:416</a></div></div>
127 <div class="ttc" id="sample-app_8c_html_a52c968a559117b66a05591f958da75c2"><div class="ttname"><a href="sample-app_8c.html#a52c968a559117b66a05591f958da75c2">physide_ul_half_slot_call_back</a></div><div class="ttdeci">int physide_ul_half_slot_call_back(void *param)</div><div class="ttdef"><b>Definition:</b> <a href="sample-app_8c_source.html#l00359">sample-app.c:359</a></div></div>
128 <div class="ttc" id="classnlohmann_1_1basic__json_html"><div class="ttname"><a href="classnlohmann_1_1basic__json.html">nlohmann::basic_json</a></div><div class="ttdoc">a class to store JSON values </div><div class="ttdef"><b>Definition:</b> <a href="json_8hpp_source.html#l01016">json.hpp:1016</a></div></div>
129 <div class="ttc" id="classxran_lib_wraper_html_a61da580fc69a74f3ef17956ba5fd88a0"><div class="ttname"><a href="classxran_lib_wraper.html#a61da580fc69a74f3ef17956ba5fd88a0">xranLibWraper::is_running</a></div><div class="ttdeci">bool is_running()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01114">xran_lib_wrap.hpp:1114</a></div></div>
130 <div class="ttc" id="structxran__slot__config_html_a8d7e0415efaf6e08cb6510401f765c28"><div class="ttname"><a href="structxran__slot__config.html#a8d7e0415efaf6e08cb6510401f765c28">xran_slot_config::reserved</a></div><div class="ttdeci">uint8_t reserved[2]</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00455">xran_fh_o_du.h:455</a></div></div>
131 <div class="ttc" id="structxran__prb__elm_html_a5248ad5c1a177b8b9d5ef60f710652bc"><div class="ttname"><a href="structxran__prb__elm.html#a5248ad5c1a177b8b9d5ef60f710652bc">xran_prb_elm::nRBStart</a></div><div class="ttdeci">int16_t nRBStart</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00394">xran_fh_o_du.h:394</a></div></div>
132 <div class="ttc" id="classxran_lib_wraper_html_a5d7d51f26d22de978142c336c82b8736"><div class="ttname"><a href="classxran_lib_wraper.html#a5d7d51f26d22de978142c336c82b8736">xranLibWraper::m_sFrontHaulRxPrbMapBbuIoBufCtrl</a></div><div class="ttdeci">BbuIoBufCtrlStruct m_sFrontHaulRxPrbMapBbuIoBufCtrl[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR][XRAN_MAX_ANTENNA_NR]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00131">xran_lib_wrap.hpp:131</a></div></div>
133 <div class="ttc" id="structxran__io__cfg_html_a53341e81716fce9aeddee73d7228f2bf"><div class="ttname"><a href="structxran__io__cfg.html#a53341e81716fce9aeddee73d7228f2bf">xran_io_cfg::core</a></div><div class="ttdeci">int32_t core</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00299">xran_fh_o_du.h:299</a></div></div>
134 <div class="ttc" id="structxran__fh__init_html_a0ce1293a9896f3e28d960a0b1d9dc911"><div class="ttname"><a href="structxran__fh__init.html#a0ce1293a9896f3e28d960a0b1d9dc911">xran_fh_init::debugStopCount</a></div><div class="ttdeci">int32_t debugStopCount</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00362">xran_fh_o_du.h:362</a></div></div>
135 <div class="ttc" id="structxran__prb__elm_html_aba198438bbacf8f73b6bfa481b365ce5"><div class="ttname"><a href="structxran__prb__elm.html#aba198438bbacf8f73b6bfa481b365ce5">xran_prb_elm::nBeamIndex</a></div><div class="ttdeci">int16_t nBeamIndex</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00398">xran_fh_o_du.h:398</a></div></div>
136 <div class="ttc" id="structxran__fh__init_html_ac0646000d1448798a186e109df0bb3dd"><div class="ttname"><a href="structxran__fh__init.html#ac0646000d1448798a186e109df0bb3dd">xran_fh_init::prachEnable</a></div><div class="ttdeci">uint8_t prachEnable</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00357">xran_fh_o_du.h:357</a></div></div>
137 <div class="ttc" id="structxran__ru__config_html_a74e72997edeea7f9f1696baffb9989b4"><div class="ttname"><a href="structxran__ru__config.html#a74e72997edeea7f9f1696baffb9989b4">xran_ru_config::byteOrder</a></div><div class="ttdeci">enum xran_input_byte_order byteOrder</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00489">xran_fh_o_du.h:489</a></div></div>
138 <div class="ttc" id="sample-app_8c_html_ac1813c55eefb1dca0fd1af4c7a173c4a"><div class="ttname"><a href="sample-app_8c.html#ac1813c55eefb1dca0fd1af4c7a173c4a">pXranConf</a></div><div class="ttdeci">struct xran_fh_config * pXranConf</div><div class="ttdef"><b>Definition:</b> <a href="sample-app_8c_source.html#l00079">sample-app.c:79</a></div></div>
139 <div class="ttc" id="structxran__fh__init_html_af01fc39016255fbbedd02b31bb9c7959"><div class="ttname"><a href="structxran__fh__init.html#af01fc39016255fbbedd02b31bb9c7959">xran_fh_init::totalBfWeights</a></div><div class="ttdeci">uint16_t totalBfWeights</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00336">xran_fh_o_du.h:336</a></div></div>
140 <div class="ttc" id="structxran__prb__map_html_a5a2ad8f5285dd33572e310069cdac3c4"><div class="ttname"><a href="structxran__prb__map.html#a5a2ad8f5285dd33572e310069cdac3c4">xran_prb_map::nPrbElm</a></div><div class="ttdeci">uint32_t nPrbElm</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00422">xran_fh_o_du.h:422</a></div></div>
141 <div class="ttc" id="struct_bbu_io_buf_ctrl_struct_html_a09ab9a2f4541256129428a4ccabc6803"><div class="ttname"><a href="struct_bbu_io_buf_ctrl_struct.html#a09ab9a2f4541256129428a4ccabc6803">BbuIoBufCtrlStruct::nSegTransferred</a></div><div class="ttdeci">int32_t nSegTransferred</div><div class="ttdef"><b>Definition:</b> <a href="sample-app_8c_source.html#l00127">sample-app.c:127</a></div></div>
142 <div class="ttc" id="classxran_lib_wraper_html"><div class="ttname"><a href="classxran_lib_wraper.html">xranLibWraper</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00066">xran_lib_wrap.hpp:66</a></div></div>
143 <div class="ttc" id="classxran_lib_wraper_html_ad99e9ea539081aeef2978a3f472baf1c"><div class="ttname"><a href="classxran_lib_wraper.html#ad99e9ea539081aeef2978a3f472baf1c">xranLibWraper::m_sFrontHaulRxBbuIoBufCtrl</a></div><div class="ttdeci">BbuIoBufCtrlStruct m_sFrontHaulRxBbuIoBufCtrl[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR][XRAN_MAX_ANTENNA_NR]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00130">xran_lib_wrap.hpp:130</a></div></div>
144 <div class="ttc" id="structxran__prb__elm_html_a18adf7163dacc5bd7dd344fb1216f729"><div class="ttname"><a href="structxran__prb__elm.html#a18adf7163dacc5bd7dd344fb1216f729">xran_prb_elm::nRBSize</a></div><div class="ttdeci">int16_t nRBSize</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00395">xran_fh_o_du.h:395</a></div></div>
145 <div class="ttc" id="structxran__eaxcid__config_html_aa6294a3b04f47cabf866ec1e1ec4bd23"><div class="ttname"><a href="structxran__eaxcid__config.html#aa6294a3b04f47cabf866ec1e1ec4bd23">xran_eaxcid_config::bit_ruPortId</a></div><div class="ttdeci">uint8_t bit_ruPortId</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00317">xran_fh_o_du.h:317</a></div></div>
146 <div class="ttc" id="classxran_lib_wraper_html_a126b53d8cc57521b34496dbe3a26621f"><div class="ttname"><a href="classxran_lib_wraper.html#a126b53d8cc57521b34496dbe3a26621f">xranLibWraper::SetUp</a></div><div class="ttdeci">int SetUp()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00678">xran_lib_wrap.hpp:678</a></div></div>
147 <div class="ttc" id="classxran_lib_wraper_html_aeeef9211b4ee7d22934db64125b538dd"><div class="ttname"><a href="classxran_lib_wraper.html#aeeef9211b4ee7d22934db64125b538dd">xranLibWraper::get_num_cc</a></div><div class="ttdeci">int get_num_cc()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01120">xran_lib_wrap.hpp:1120</a></div></div>
148 <div class="ttc" id="structxran_lib_wraper_1_1xran__timer__ctx_html_ac9a8f4c80840a80e1a27ff9776e13f66"><div class="ttname"><a href="structxran_lib_wraper_1_1xran__timer__ctx.html#ac9a8f4c80840a80e1a27ff9776e13f66">xranLibWraper::xran_timer_ctx::tti_to_process</a></div><div class="ttdeci">uint32_t tti_to_process</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00124">xran_lib_wrap.hpp:124</a></div></div>
149 <div class="ttc" id="xran__fh__o__du_8h_html_a39a9f7b5d01979eb1f8d806d6b9c50fe"><div class="ttname"><a href="xran__fh__o__du_8h.html#a39a9f7b5d01979eb1f8d806d6b9c50fe">xran_bm_init</a></div><div class="ttdeci">int32_t xran_bm_init(void *pHandle, uint32_t *pPoolIndex, uint32_t nNumberOfBuffers, uint32_t nBufferSize)</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l02454">xran_main.c:2454</a></div></div>
150 <div class="ttc" id="classxran_lib_wraper_html_a163a7a574581e04dfa9cc60cfc81e7f5a3e20f3de146adbc3420c294819ec1e19"><div class="ttname"><a href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a3e20f3de146adbc3420c294819ec1e19">xranLibWraper::PHY_BW_70MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00086">xran_lib_wrap.hpp:86</a></div></div>
151 <div class="ttc" id="structxran__fh__init_html_acfa0c4237b95b1dc83d19e00d6487ec0"><div class="ttname"><a href="structxran__fh__init.html#acfa0c4237b95b1dc83d19e00d6487ec0">xran_fh_init::T2a_min_cp_ul</a></div><div class="ttdeci">uint16_t T2a_min_cp_ul</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00341">xran_fh_o_du.h:341</a></div></div>
152 <div class="ttc" id="xran__fh__o__du_8h_html_a34dbe5e515cc78b4ce26fa287e6c1edc"><div class="ttname"><a href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a></div><div class="ttdeci">#define XRAN_MAX_SECTOR_NR</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00110">xran_fh_o_du.h:110</a></div></div>
153 <div class="ttc" id="xran__fh__o__du_8h_html_a8eb67099ddcb1b5877a494edfd450d24a1e3bbfc0078205779b22c99889f927af"><div class="ttname"><a href="xran__fh__o__du_8h.html#a8eb67099ddcb1b5877a494edfd450d24a1e3bbfc0078205779b22c99889f927af">XRAN_CB_FULL_SLOT_RX</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00223">xran_fh_o_du.h:223</a></div></div>
154 <div class="ttc" id="classxran_lib_wraper_html_a2fca7a2340a727f72d85407c5e153ed4"><div class="ttname"><a href="classxran_lib_wraper.html#a2fca7a2340a727f72d85407c5e153ed4">xranLibWraper::tx_ul_bfw_buffer_size</a></div><div class="ttdeci">int32_t tx_ul_bfw_buffer_size[MAX_ANT_CARRIER_SUPPORTED]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00159">xran_lib_wrap.hpp:159</a></div></div>
155 <div class="ttc" id="classxran_lib_wraper_html_a163a7a574581e04dfa9cc60cfc81e7f5a5a479142e60c93d76621c1390d029109"><div class="ttname"><a href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a5a479142e60c93d76621c1390d029109">xranLibWraper::PHY_BW_40MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00085">xran_lib_wrap.hpp:85</a></div></div>
156 <div class="ttc" id="classxran_lib_wraper_html_ad1ab6e8c4efe2805b76180b34ce4c019"><div class="ttname"><a href="classxran_lib_wraper.html#ad1ab6e8c4efe2805b76180b34ce4c019">xranLibWraper::iq_bfw_buffer_size_dl</a></div><div class="ttdeci">int iq_bfw_buffer_size_dl</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00149">xran_lib_wrap.hpp:149</a></div></div>
157 <div class="ttc" id="group__xran__common__pkt_html_gga9c60a23fdae979ad1842b255790d1558a19f3d3cee814f10e4f3bf7d80194083f"><div class="ttname"><a href="group__xran__common__pkt.html#gga9c60a23fdae979ad1842b255790d1558a19f3d3cee814f10e4f3bf7d80194083f">XRAN_DIR_DL</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__pkt_8h_source.html#l00149">xran_pkt.h:149</a></div></div>
158 <div class="ttc" id="xran__lib__wrap_8hpp_html_a98f3e1fb2c2dd1381aac8d01b293486a"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#a98f3e1fb2c2dd1381aac8d01b293486a">XRAN_UT_KEY_GLOBALCFG_RU</a></div><div class="ttdeci">#define XRAN_UT_KEY_GLOBALCFG_RU</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00044">xran_lib_wrap.hpp:44</a></div></div>
159 <div class="ttc" id="classxran_lib_wraper_html_afecde4b156cd353cb29487bbb9675d46"><div class="ttname"><a href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46">xranLibWraper::SWXRANInterfaceTypeEnum</a></div><div class="ttdeci">SWXRANInterfaceTypeEnum</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00069">xran_lib_wrap.hpp:69</a></div></div>
160 <div class="ttc" id="structxran__prb__map_html_a7fd0cb6d38d73460d3eaba911462dc69"><div class="ttname"><a href="structxran__prb__map.html#a7fd0cb6d38d73460d3eaba911462dc69">xran_prb_map::cc_id</a></div><div class="ttdeci">uint16_t cc_id</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00418">xran_fh_o_du.h:418</a></div></div>
161 <div class="ttc" id="structxran__fh__init_html_a3a10011d5a15ba88d65b9e027cdff35e"><div class="ttname"><a href="structxran__fh__init.html#a3a10011d5a15ba88d65b9e027cdff35e">xran_fh_init::eAxCId_conf</a></div><div class="ttdeci">struct xran_eaxcid_config eAxCId_conf</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00325">xran_fh_o_du.h:325</a></div></div>
162 <div class="ttc" id="xran__fh__o__du_8h_html_ad4852c0827600db95f9841e2f5f9f6f1"><div class="ttname"><a href="xran__fh__o__du_8h.html#ad4852c0827600db95f9841e2f5f9f6f1">xran_start</a></div><div class="ttdeci">int32_t xran_start(void *pHandle)</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l02841">xran_main.c:2841</a></div></div>
163 <div class="ttc" id="classxran_lib_wraper_html_a4ec48d0ffb9f1f4310057061754541af"><div class="ttname"><a href="classxran_lib_wraper.html#a4ec48d0ffb9f1f4310057061754541af">xranLibWraper::m_sFrontHaulTxBbuIoBufCtrl</a></div><div class="ttdeci">BbuIoBufCtrlStruct m_sFrontHaulTxBbuIoBufCtrl[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR][XRAN_MAX_ANTENNA_NR]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00128">xran_lib_wrap.hpp:128</a></div></div>
164 <div class="ttc" id="structxran__eaxcid__config_html_a292acf2be52d7b22753f8f3a9839f455"><div class="ttname"><a href="structxran__eaxcid__config.html#a292acf2be52d7b22753f8f3a9839f455">xran_eaxcid_config::bit_ccId</a></div><div class="ttdeci">uint8_t bit_ccId</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00316">xran_fh_o_du.h:316</a></div></div>
165 <div class="ttc" id="structxran__prach__config_html_a5c648c99c04370a4e8767f919a2289bf"><div class="ttname"><a href="structxran__prach__config.html#a5c648c99c04370a4e8767f919a2289bf">xran_prach_config::nPrachFreqStart</a></div><div class="ttdeci">uint16_t nPrachFreqStart</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00441">xran_fh_o_du.h:441</a></div></div>
166 <div class="ttc" id="structxran__fh__init_html_ac2e5d027408848a38879331bf54d5adf"><div class="ttname"><a href="structxran__fh__init.html#ac2e5d027408848a38879331bf54d5adf">xran_fh_init::Ta3_min</a></div><div class="ttdeci">uint16_t Ta3_min</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00345">xran_fh_o_du.h:345</a></div></div>
167 <div class="ttc" id="xran__fh__o__du_8h_html_a4c62e469317040d695487f294cf9e0baab0a570cb95560770482680552b5dc5d0"><div class="ttname"><a href="xran__fh__o__du_8h.html#a4c62e469317040d695487f294cf9e0baab0a570cb95560770482680552b5dc5d0">XRAN_BBDEV_MODE_HW_OFF</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00281">xran_fh_o_du.h:281</a></div></div>
168 <div class="ttc" id="structxran__fh__init_html_a05dca46f0128cb233e7d4f73215cc4a9"><div class="ttname"><a href="structxran__fh__init.html#a05dca46f0128cb233e7d4f73215cc4a9">xran_fh_init::Tadv_cp_dl</a></div><div class="ttdeci">uint16_t Tadv_cp_dl</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00338">xran_fh_o_du.h:338</a></div></div>
169 <div class="ttc" id="classxran_lib_wraper_html_a6608686375e6c9e5c3ce59970e4b90e0"><div class="ttname"><a href="classxran_lib_wraper.html#a6608686375e6c9e5c3ce59970e4b90e0">xranLibWraper::~xranLibWraper</a></div><div class="ttdeci">~xranLibWraper()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00674">xran_lib_wrap.hpp:674</a></div></div>
170 <div class="ttc" id="classxran_lib_wraper_html_a163a7a574581e04dfa9cc60cfc81e7f5"><div class="ttname"><a href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5">xranLibWraper::nChBw</a></div><div class="ttdeci">nChBw</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00081">xran_lib_wrap.hpp:81</a></div></div>
171 <div class="ttc" id="structxran__prb__map_html"><div class="ttname"><a href="structxran__prb__map.html">xran_prb_map</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00414">xran_fh_o_du.h:414</a></div></div>
172 <div class="ttc" id="xran__fh__o__du_8h_html_a35fa05e7523928c0c86cbcf835c12dc5"><div class="ttname"><a href="xran__fh__o__du_8h.html#a35fa05e7523928c0c86cbcf835c12dc5">XRAN_MAX_ANTENNA_NR</a></div><div class="ttdeci">#define XRAN_MAX_ANTENNA_NR</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00111">xran_fh_o_du.h:111</a></div></div>
173 <div class="ttc" id="xran__lib__wrap_8hpp_html_a7c71ebeaaa34df8b1f1e2f33c6d7a54e"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#a7c71ebeaaa34df8b1f1e2f33c6d7a54e">XRAN_UT_KEY_GLOBALCFG</a></div><div class="ttdeci">#define XRAN_UT_KEY_GLOBALCFG</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00040">xran_lib_wrap.hpp:40</a></div></div>
174 <div class="ttc" id="structxran__fh__init_html_ab05fc2b0bda23212626e2f075ce8e817"><div class="ttname"><a href="structxran__fh__init.html#ab05fc2b0bda23212626e2f075ce8e817">xran_fh_init::p_o_ru_addr</a></div><div class="ttdeci">int8_t * p_o_ru_addr</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00334">xran_fh_o_du.h:334</a></div></div>
175 <div class="ttc" id="classxran_lib_wraper_html_a8789158912b9607cbc6414c92a120003"><div class="ttname"><a href="classxran_lib_wraper.html#a8789158912b9607cbc6414c92a120003">xranLibWraper::get_cfg_ru</a></div><div class="ttdeci">void get_cfg_ru(struct xran_ru_config *pCfg)</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01142">xran_lib_wrap.hpp:1142</a></div></div>
176 <div class="ttc" id="xran__fh__o__du_8h_html_ac1e23b437693cb93f1ddd5a74f97cab4"><div class="ttname"><a href="xran__fh__o__du_8h.html#ac1e23b437693cb93f1ddd5a74f97cab4">XRAN_PORTS_NUM</a></div><div class="ttdeci">#define XRAN_PORTS_NUM</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00108">xran_fh_o_du.h:108</a></div></div>
177 <div class="ttc" id="classxran_lib_wraper_html_a163a7a574581e04dfa9cc60cfc81e7f5aae465d43fabe2dda9a2c6dbd2fa1099a"><div class="ttname"><a href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5aae465d43fabe2dda9a2c6dbd2fa1099a">xranLibWraper::PHY_BW_10MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00083">xran_lib_wrap.hpp:83</a></div></div>
178 <div class="ttc" id="classxran_lib_wraper_html_a5b5d9e46f23728cf8901e177fbf1e32b"><div class="ttname"><a href="classxran_lib_wraper.html#a5b5d9e46f23728cf8901e177fbf1e32b">xranLibWraper::is_prachenable</a></div><div class="ttdeci">bool is_prachenable()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01127">xran_lib_wrap.hpp:1127</a></div></div>
179 <div class="ttc" id="structxran__frame__config_html_a3b86317723a592e240c0047e53a6326d"><div class="ttname"><a href="structxran__frame__config.html#a3b86317723a592e240c0047e53a6326d">xran_frame_config::nFrameDuplexType</a></div><div class="ttdeci">uint8_t nFrameDuplexType</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00460">xran_fh_o_du.h:460</a></div></div>
180 <div class="ttc" id="xran__fh__o__du_8h_html_a937105f52446cfcb951e43e1dc3c4d8b"><div class="ttname"><a href="xran__fh__o__du_8h.html#a937105f52446cfcb951e43e1dc3c4d8b">xran_get_if_state</a></div><div class="ttdeci">enum xran_if_state xran_get_if_state(void)</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l00238">xran_main.c:238</a></div></div>
181 <div class="ttc" id="structxran__io__cfg_html_a727bdc89e33bfc7d18dfaf166d46598a"><div class="ttname"><a href="structxran__io__cfg.html#a727bdc89e33bfc7d18dfaf166d46598a">xran_io_cfg::system_core</a></div><div class="ttdeci">int32_t system_core</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00300">xran_fh_o_du.h:300</a></div></div>
182 <div class="ttc" id="structxran__prb__map_html_afc7dda8bf6b9a76f94c88c3610d9c594"><div class="ttname"><a href="structxran__prb__map.html#afc7dda8bf6b9a76f94c88c3610d9c594">xran_prb_map::start_sym_id</a></div><div class="ttdeci">uint8_t start_sym_id</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00421">xran_fh_o_du.h:421</a></div></div>
183 <div class="ttc" id="structxran__prb__map_html_a689e28eeb2f378d4dc5f915a30f560db"><div class="ttname"><a href="structxran__prb__map.html#a689e28eeb2f378d4dc5f915a30f560db">xran_prb_map::tti_id</a></div><div class="ttdeci">uint16_t tti_id</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00420">xran_fh_o_du.h:420</a></div></div>
184 <div class="ttc" id="classxran_lib_wraper_html_a163a7a574581e04dfa9cc60cfc81e7f5a78c8c492b7c956fcd6b6e704662d385f"><div class="ttname"><a href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a78c8c492b7c956fcd6b6e704662d385f">xranLibWraper::PHY_BW_90MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00086">xran_lib_wrap.hpp:86</a></div></div>
185 <div class="ttc" id="structxran__fh__init_html_a6a78f61ed42f876c7cfa835be5ed0942"><div class="ttname"><a href="structxran__fh__init.html#a6a78f61ed42f876c7cfa835be5ed0942">xran_fh_init::filePrefix</a></div><div class="ttdeci">char * filePrefix</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00329">xran_fh_o_du.h:329</a></div></div>
186 <div class="ttc" id="structxran__fh__config_html_a8956e982993d4b310e3bffe207f66405"><div class="ttname"><a href="structxran__fh__config.html#a8956e982993d4b310e3bffe207f66405">xran_fh_config::nDLFftSize</a></div><div class="ttdeci">uint16_t nDLFftSize</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00504">xran_fh_o_du.h:504</a></div></div>
187 <div class="ttc" id="classxran_lib_wraper_html_a7d671b9b851d9b0fbae6777e85643c3b"><div class="ttname"><a href="classxran_lib_wraper.html#a7d671b9b851d9b0fbae6777e85643c3b">xranLibWraper::get_cfg_fh</a></div><div class="ttdeci">void get_cfg_fh(struct xran_fh_config *pCfg)</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01148">xran_lib_wrap.hpp:1148</a></div></div>
188 <div class="ttc" id="structxran__slot__config_html_a37a7dc4b204c22c2d8b9da9b07abd154"><div class="ttname"><a href="structxran__slot__config.html#a37a7dc4b204c22c2d8b9da9b07abd154">xran_slot_config::nSymbolType</a></div><div class="ttdeci">uint8_t nSymbolType[XRAN_NUM_OF_SYMBOL_PER_SLOT]</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00454">xran_fh_o_du.h:454</a></div></div>
189 <div class="ttc" id="structxran__device__ctx_html"><div class="ttname"><a href="structxran__device__ctx.html">xran_device_ctx</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__common_8h_source.html#l00203">xran_common.h:203</a></div></div>
190 <div class="ttc" id="structxran__fh__init_html_a3c8ee4e9dd2a5354e83fb30c95598f30"><div class="ttname"><a href="structxran__fh__init.html#a3c8ee4e9dd2a5354e83fb30c95598f30">xran_fh_init::mtu</a></div><div class="ttdeci">uint32_t mtu</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00331">xran_fh_o_du.h:331</a></div></div>
191 <div class="ttc" id="sample-app_8c_html_aa8882d42d07fbd9750da4db4395b438c"><div class="ttname"><a href="sample-app_8c.html#aa8882d42d07fbd9750da4db4395b438c">physide_dl_tti_call_back</a></div><div class="ttdeci">int physide_dl_tti_call_back(void *param)</div><div class="ttdef"><b>Definition:</b> <a href="sample-app_8c_source.html#l00351">sample-app.c:351</a></div></div>
192 <div class="ttc" id="structxran__flat__buffer_html_a4371798a7694f5939136dca8baa93f21"><div class="ttname"><a href="structxran__flat__buffer.html#a4371798a7694f5939136dca8baa93f21">xran_flat_buffer::nNumberOfElements</a></div><div class="ttdeci">uint32_t nNumberOfElements</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00560">xran_fh_o_du.h:560</a></div></div>
193 <div class="ttc" id="classxran_lib_wraper_html_a790ada9a4b1a467dc29bc4bfa1ec3e20"><div class="ttname"><a href="classxran_lib_wraper.html#a790ada9a4b1a467dc29bc4bfa1ec3e20">xranLibWraper::m_dpdk_dev_up</a></div><div class="ttdeci">std::string m_dpdk_dev_up</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00111">xran_lib_wrap.hpp:111</a></div></div>
194 <div class="ttc" id="structxran__prach__config_html_a45ae197adc4010202a5b71d7b602bc0c"><div class="ttname"><a href="structxran__prach__config.html#a45ae197adc4010202a5b71d7b602bc0c">xran_prach_config::nPrachZeroCorrConf</a></div><div class="ttdeci">uint8_t nPrachZeroCorrConf</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00438">xran_fh_o_du.h:438</a></div></div>
195 <div class="ttc" id="xran__lib__wrap_8hpp_html_a8cec0b41a42705e6ab9f49914ca666c2"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#a8cec0b41a42705e6ab9f49914ca666c2">xran_lib_ota_sym</a></div><div class="ttdeci">uint32_t xran_lib_ota_sym</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l00112">xran_main.c:112</a></div></div>
196 <div class="ttc" id="structxran__frame__config_html"><div class="ttname"><a href="structxran__frame__config.html">xran_frame_config</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00459">xran_fh_o_du.h:459</a></div></div>
197 <div class="ttc" id="structxran__ru__config_html_ad1b1309ca2645e24fa201f8decae1988"><div class="ttname"><a href="structxran__ru__config.html#ad1b1309ca2645e24fa201f8decae1988">xran_ru_config::iqOrder</a></div><div class="ttdeci">enum xran_input_i_q_order iqOrder</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00490">xran_fh_o_du.h:490</a></div></div>
198 <div class="ttc" id="classxran_lib_wraper_html_a163a7a574581e04dfa9cc60cfc81e7f5a7217a56ae78997c5ae511d10ebb4c924"><div class="ttname"><a href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a7217a56ae78997c5ae511d10ebb4c924">xranLibWraper::PHY_BW_400MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00087">xran_lib_wrap.hpp:87</a></div></div>
199 <div class="ttc" id="xran__fh__o__du_8h_html_a185d8ae20c697568878935f0a260227aafe31ae20f49aa6ca5a568bfdc89f69ab"><div class="ttname"><a href="xran__fh__o__du_8h.html#a185d8ae20c697568878935f0a260227aafe31ae20f49aa6ca5a568bfdc89f69ab">XRAN_UP_VF</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00256">xran_fh_o_du.h:256</a></div></div>
200 <div class="ttc" id="structxran__fh__init_html_a6080f8ca5894be470378d6f265c1f665"><div class="ttname"><a href="structxran__fh__init.html#a6080f8ca5894be470378d6f265c1f665">xran_fh_init::T1a_max_cp_dl</a></div><div class="ttdeci">uint16_t T1a_max_cp_dl</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00348">xran_fh_o_du.h:348</a></div></div>
201 <div class="ttc" id="xran__lib__wrap_8hpp_html_a14c306e04a1b3ecdd13b82ab9ca6c9b5"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#a14c306e04a1b3ecdd13b82ab9ca6c9b5">MAX_ANT_CARRIER_SUPPORTED</a></div><div class="ttdeci">#define MAX_ANT_CARRIER_SUPPORTED</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00054">xran_lib_wrap.hpp:54</a></div></div>
202 <div class="ttc" id="classxran_lib_wraper_html_a163a7a574581e04dfa9cc60cfc81e7f5aa890924947f41b2c05cb5acf87b463cb"><div class="ttname"><a href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5aa890924947f41b2c05cb5acf87b463cb">xranLibWraper::PHY_BW_100MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00087">xran_lib_wrap.hpp:87</a></div></div>
203 <div class="ttc" id="common_8hpp_html"><div class="ttname"><a href="common_8hpp.html">common.hpp</a></div></div>
204 <div class="ttc" id="xran__lib__wrap_8hpp_html_a7959c3e12f3260a6461fe2610203d1af"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#a7959c3e12f3260a6461fe2610203d1af">XRAN_UT_CFG_FILENAME</a></div><div class="ttdeci">#define XRAN_UT_CFG_FILENAME</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00038">xran_lib_wrap.hpp:38</a></div></div>
205 <div class="ttc" id="structxran__fh__init_html_a8a5462b0059073e90d42f8bfa066d566"><div class="ttname"><a href="structxran__fh__init.html#a8a5462b0059073e90d42f8bfa066d566">xran_fh_init::io_cfg</a></div><div class="ttdeci">struct xran_io_cfg io_cfg</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00324">xran_fh_o_du.h:324</a></div></div>
206 <div class="ttc" id="structxran__eaxcid__config_html_a8812802228fbd32d92c2c8f29963628b"><div class="ttname"><a href="structxran__eaxcid__config.html#a8812802228fbd32d92c2c8f29963628b">xran_eaxcid_config::bit_cuPortId</a></div><div class="ttdeci">uint8_t bit_cuPortId</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00314">xran_fh_o_du.h:314</a></div></div>
207 <div class="ttc" id="classxran_lib_wraper_html_aa7e4fc7db724dc357f1425ab426c8921"><div class="ttname"><a href="classxran_lib_wraper.html#aa7e4fc7db724dc357f1425ab426c8921">xranLibWraper::m_nSlots</a></div><div class="ttdeci">uint32_t m_nSlots</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00118">xran_lib_wrap.hpp:118</a></div></div>
208 <div class="ttc" id="structxran__prb__map_html_a92abda0bec7c1c978fe96f87aad18067"><div class="ttname"><a href="structxran__prb__map.html#a92abda0bec7c1c978fe96f87aad18067">xran_prb_map::dir</a></div><div class="ttdeci">uint8_t dir</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00415">xran_fh_o_du.h:415</a></div></div>
209 <div class="ttc" id="classxran_lib_wraper_html_ae064c199bd624882f23a786c57aa5afe"><div class="ttname"><a href="classxran_lib_wraper.html#ae064c199bd624882f23a786c57aa5afe">xranLibWraper::m_bSub6</a></div><div class="ttdeci">bool m_bSub6</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00117">xran_lib_wrap.hpp:117</a></div></div>
210 <div class="ttc" id="structxran__prb__elm_html"><div class="ttname"><a href="structxran__prb__elm.html">xran_prb_elm</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00393">xran_fh_o_du.h:393</a></div></div>
211 <div class="ttc" id="structxran__fh__config_html_a583c2f58d0655789ea36e22d605ab9ad"><div class="ttname"><a href="structxran__fh__config.html#a583c2f58d0655789ea36e22d605ab9ad">xran_fh_config::log_level</a></div><div class="ttdeci">uint32_t log_level</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00523">xran_fh_o_du.h:523</a></div></div>
212 <div class="ttc" id="classxran_lib_wraper_html_af53e776036ad72ea2d2e5a2bdbbdc0b2"><div class="ttname"><a href="classxran_lib_wraper.html#af53e776036ad72ea2d2e5a2bdbbdc0b2">xranLibWraper::m_nFpgaToSW_FTH_RxBufferLen</a></div><div class="ttdeci">uint32_t m_nFpgaToSW_FTH_RxBufferLen</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00145">xran_lib_wrap.hpp:145</a></div></div>
213 <div class="ttc" id="structxran__eaxcid__config_html_ab3f5b7b7c113a7fdff4bdf31ff685594"><div class="ttname"><a href="structxran__eaxcid__config.html#ab3f5b7b7c113a7fdff4bdf31ff685594">xran_eaxcid_config::bit_bandSectorId</a></div><div class="ttdeci">uint8_t bit_bandSectorId</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00315">xran_fh_o_du.h:315</a></div></div>
214 <div class="ttc" id="structxran__prach__config_html_ab3ca7a740428b7023b7e29197124983b"><div class="ttname"><a href="structxran__prach__config.html#ab3ca7a740428b7023b7e29197124983b">xran_prach_config::nPrachFilterIdx</a></div><div class="ttdeci">uint8_t nPrachFilterIdx</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00443">xran_fh_o_du.h:443</a></div></div>
215 <div class="ttc" id="structxran__flat__buffer_html_a2c3c46f4c4709f349a0cc62bae9ca92d"><div class="ttname"><a href="structxran__flat__buffer.html#a2c3c46f4c4709f349a0cc62bae9ca92d">xran_flat_buffer::nOffsetInBytes</a></div><div class="ttdeci">uint32_t nOffsetInBytes</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00562">xran_fh_o_du.h:562</a></div></div>
216 <div class="ttc" id="structxran__fh__init_html_a4f3d38bbb69d7dc49515ba2e0002537e"><div class="ttname"><a href="structxran__fh__init.html#a4f3d38bbb69d7dc49515ba2e0002537e">xran_fh_init::dpdkBasebandFecMode</a></div><div class="ttdeci">uint32_t dpdkBasebandFecMode</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00327">xran_fh_o_du.h:327</a></div></div>
217 <div class="ttc" id="structxran__ru__config_html_a1e4a3c43fc7865c6520471fb9ba8501f"><div class="ttname"><a href="structxran__ru__config.html#a1e4a3c43fc7865c6520471fb9ba8501f">xran_ru_config::compMeth</a></div><div class="ttdeci">uint8_t compMeth</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00487">xran_fh_o_du.h:487</a></div></div>
218 <div class="ttc" id="structxran__prach__config_html_a66b19aaa946c36b309a3403b3d576c58"><div class="ttname"><a href="structxran__prach__config.html#a66b19aaa946c36b309a3403b3d576c58">xran_prach_config::nPrachRootSeqIdx</a></div><div class="ttdeci">uint16_t nPrachRootSeqIdx</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00440">xran_fh_o_du.h:440</a></div></div>
219 <div class="ttc" id="xran__fh__o__du_8h_html_afc082593977ad91f3dcdd2175cb74615a7fbf705170e00d2ce3e838fa9826ca8d"><div class="ttname"><a href="xran__fh__o__du_8h.html#afc082593977ad91f3dcdd2175cb74615a7fbf705170e00d2ce3e838fa9826ca8d">XRAN_COMPMETHOD_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00204">xran_fh_o_du.h:204</a></div></div>
220 <div class="ttc" id="classxran_lib_wraper_html_a967a0c58430104684cf2f9b1fdb444da"><div class="ttname"><a href="classxran_lib_wraper.html#a967a0c58430104684cf2f9b1fdb444da">xranLibWraper::get_num_ulrbs</a></div><div class="ttdeci">int get_num_ulrbs()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01123">xran_lib_wrap.hpp:1123</a></div></div>
221 <div class="ttc" id="xran__fh__o__du_8h_html_ab204e979de14c21d34e9b88c6c700d25"><div class="ttname"><a href="xran__fh__o__du_8h.html#ab204e979de14c21d34e9b88c6c700d25">xran_5g_prach_req</a></div><div class="ttdeci">int32_t xran_5g_prach_req(void *pHandle, struct xran_buffer_list *pDstBuffer[XRAN_MAX_ANTENNA_NR][XRAN_N_FE_BUF_LEN], xran_transport_callback_fn pCallback, void *pCallbackTag)</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l02636">xran_main.c:2636</a></div></div>
222 <div class="ttc" id="classxran_lib_wraper_html_adcc43270fba1599cebe2bc32eca45554"><div class="ttname"><a href="classxran_lib_wraper.html#adcc43270fba1599cebe2bc32eca45554">xranLibWraper::m_xranhandle</a></div><div class="ttdeci">void * m_xranhandle</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00113">xran_lib_wrap.hpp:113</a></div></div>
223 <div class="ttc" id="structxran__fh__init_html_ad8a8a60941ab888de5187345ce5fc92c"><div class="ttname"><a href="structxran__fh__init.html#ad8a8a60941ab888de5187345ce5fc92c">xran_fh_init::Ta4_min</a></div><div class="ttdeci">uint16_t Ta4_min</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00353">xran_fh_o_du.h:353</a></div></div>
224 <div class="ttc" id="xran__fh__o__du_8h_html_a8eb67099ddcb1b5877a494edfd450d24ae2863e9abb188c74c5e36966396988e3"><div class="ttname"><a href="xran__fh__o__du_8h.html#a8eb67099ddcb1b5877a494edfd450d24ae2863e9abb188c74c5e36966396988e3">XRAN_CB_TTI</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00221">xran_fh_o_du.h:221</a></div></div>
225 <div class="ttc" id="structxran__fh__init_html_a934a145ce39320896b81ac25276b24d8"><div class="ttname"><a href="structxran__fh__init.html#a934a145ce39320896b81ac25276b24d8">xran_fh_init::Ta4_max</a></div><div class="ttdeci">uint16_t Ta4_max</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00354">xran_fh_o_du.h:354</a></div></div>
226 <div class="ttc" id="structxran__fh__config_html_a72b0cba491d0dd2703d684cb2c2a14cf"><div class="ttname"><a href="structxran__fh__config.html#a72b0cba491d0dd2703d684cb2c2a14cf">xran_fh_config::frame_conf</a></div><div class="ttdeci">struct xran_frame_config frame_conf</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00517">xran_fh_o_du.h:517</a></div></div>
227 <div class="ttc" id="struct_bbu_io_buf_ctrl_struct_html_a7dc97933eadb8a8049057209c3303818"><div class="ttname"><a href="struct_bbu_io_buf_ctrl_struct.html#a7dc97933eadb8a8049057209c3303818">BbuIoBufCtrlStruct::nSegToBeGen</a></div><div class="ttdeci">int32_t nSegToBeGen</div><div class="ttdef"><b>Definition:</b> <a href="sample-app_8c_source.html#l00124">sample-app.c:124</a></div></div>
228 <div class="ttc" id="xran__common_8h_html_aa09e72e94d2a1d891e86f4c09b0f8b21"><div class="ttname"><a href="xran__common_8h.html#aa09e72e94d2a1d891e86f4c09b0f8b21">xran_dev_get_ctx</a></div><div class="ttdeci">struct xran_device_ctx * xran_dev_get_ctx(void)</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l00223">xran_main.c:223</a></div></div>
229 <div class="ttc" id="struct_bbu_io_buf_ctrl_struct_html_af00b094918ddba2073443dcd755141f6"><div class="ttname"><a href="struct_bbu_io_buf_ctrl_struct.html#af00b094918ddba2073443dcd755141f6">BbuIoBufCtrlStruct::nSegGenerated</a></div><div class="ttdeci">int32_t nSegGenerated</div><div class="ttdef"><b>Definition:</b> <a href="sample-app_8c_source.html#l00125">sample-app.c:125</a></div></div>
230 <div class="ttc" id="structxran__device__ctx_html_a1acdb894b98fd0ddf9e5542b50acfc50"><div class="ttname"><a href="structxran__device__ctx.html#a1acdb894b98fd0ddf9e5542b50acfc50">xran_device_ctx::enableCP</a></div><div class="ttdeci">uint32_t enableCP</div><div class="ttdef"><b>Definition:</b> <a href="xran__common_8h_source.html#l00213">xran_common.h:213</a></div></div>
231 <div class="ttc" id="xran__fh__o__du_8h_html_a2f8866c9d6536a56e4d8232b8c45808b"><div class="ttname"><a href="xran__fh__o__du_8h.html#a2f8866c9d6536a56e4d8232b8c45808b">xran_close</a></div><div class="ttdeci">int32_t xran_close(void *pHandle)</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l02863">xran_main.c:2863</a></div></div>
232 <div class="ttc" id="classxran_lib_wraper_html_afecde4b156cd353cb29487bbb9675d46a4d401558e32ed1e564c795cdc03ee5e5"><div class="ttname"><a href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a4d401558e32ed1e564c795cdc03ee5e5">xranLibWraper::XRANFTHTX_OUT</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00071">xran_lib_wrap.hpp:71</a></div></div>
233 <div class="ttc" id="structxran__fh__init_html_a0447175262da4e12814983c97d73ad21"><div class="ttname"><a href="structxran__fh__init.html#a0447175262da4e12814983c97d73ad21">xran_fh_init::T1a_min_up</a></div><div class="ttdeci">uint16_t T1a_min_up</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00351">xran_fh_o_du.h:351</a></div></div>
234 <div class="ttc" id="classxran_lib_wraper_html_a165ca95dea40ce1abcc161f39087d38d"><div class="ttname"><a href="classxran_lib_wraper.html#a165ca95dea40ce1abcc161f39087d38d">xranLibWraper::apply_cpenable</a></div><div class="ttdeci">int apply_cpenable(bool flag)</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01024">xran_lib_wrap.hpp:1024</a></div></div>
235 <div class="ttc" id="structxran__prach__config_html"><div class="ttname"><a href="structxran__prach__config.html">xran_prach_config</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00429">xran_fh_o_du.h:429</a></div></div>
236 <div class="ttc" id="structxran__fh__init_html_a82517c890db705ee58767fd245193214"><div class="ttname"><a href="structxran__fh__init.html#a82517c890db705ee58767fd245193214">xran_fh_init::Ta3_max</a></div><div class="ttdeci">uint16_t Ta3_max</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00346">xran_fh_o_du.h:346</a></div></div>
237 <div class="ttc" id="structxran__fh__init_html_aebed6420fb04aabce30025eec4583807"><div class="ttname"><a href="structxran__fh__init.html#aebed6420fb04aabce30025eec4583807">xran_fh_init::T2a_min_cp_dl</a></div><div class="ttdeci">uint16_t T2a_min_cp_dl</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00339">xran_fh_o_du.h:339</a></div></div>
238 <div class="ttc" id="struct_bbu_io_buf_ctrl_struct_html"><div class="ttname"><a href="struct_bbu_io_buf_ctrl_struct.html">BbuIoBufCtrlStruct</a></div><div class="ttdef"><b>Definition:</b> <a href="sample-app_8c_source.html#l00116">sample-app.c:116</a></div></div>
239 <div class="ttc" id="classxran_lib_wraper_html_a931587596081ef8178c2b128facb0411"><div class="ttname"><a href="classxran_lib_wraper.html#a931587596081ef8178c2b128facb0411">xranLibWraper::TearDown</a></div><div class="ttdeci">void TearDown()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00729">xran_lib_wrap.hpp:729</a></div></div>
240 <div class="ttc" id="classxran_lib_wraper_html_a80a3e8332a69c2beb5df4ad72b4a022c"><div class="ttname"><a href="classxran_lib_wraper.html#a80a3e8332a69c2beb5df4ad72b4a022c">xranLibWraper::m_nInstanceHandle</a></div><div class="ttdeci">void * m_nInstanceHandle[XRAN_PORTS_NUM][XRAN_MAX_SECTOR_NR]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00141">xran_lib_wrap.hpp:141</a></div></div>
241 <div class="ttc" id="classxran_lib_wraper_html_a163a7a574581e04dfa9cc60cfc81e7f5acc82a679f8781bb880161e53650bdc33"><div class="ttname"><a href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5acc82a679f8781bb880161e53650bdc33">xranLibWraper::PHY_BW_60MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00085">xran_lib_wrap.hpp:85</a></div></div>
242 <div class="ttc" id="structxran__fh__config_html"><div class="ttname"><a href="structxran__fh__config.html">xran_fh_config</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00497">xran_fh_o_du.h:497</a></div></div>
243 <div class="ttc" id="structxran__flat__buffer_html_addb9297d816b26c680888115de8c9538"><div class="ttname"><a href="structxran__flat__buffer.html#addb9297d816b26c680888115de8c9538">xran_flat_buffer::pCtrl</a></div><div class="ttdeci">void * pCtrl</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00570">xran_fh_o_du.h:570</a></div></div>
244 <div class="ttc" id="structxran__fh__init_html_a5df6250657a91c27fa2416154ec5a609"><div class="ttname"><a href="structxran__fh__init.html#a5df6250657a91c27fa2416154ec5a609">xran_fh_init::T2a_max_cp_dl</a></div><div class="ttdeci">uint16_t T2a_max_cp_dl</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00340">xran_fh_o_du.h:340</a></div></div>
245 <div class="ttc" id="structxran__fh__init_html_ae5c22bf3cd63e278914bf627dab04ce8"><div class="ttname"><a href="structxran__fh__init.html#ae5c22bf3cd63e278914bf627dab04ce8">xran_fh_init::up_vlan_tag</a></div><div class="ttdeci">uint8_t up_vlan_tag</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00360">xran_fh_o_du.h:360</a></div></div>
246 <div class="ttc" id="structxran__flat__buffer_html_a77f0d5374ee675db57c0b29946ca7744"><div class="ttname"><a href="structxran__flat__buffer.html#a77f0d5374ee675db57c0b29946ca7744">xran_flat_buffer::pData</a></div><div class="ttdeci">uint8_t * pData</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00566">xran_fh_o_du.h:566</a></div></div>
247 <div class="ttc" id="structxran__buffer__list_html_afa8c44acddb126e8bb0652d7b4e4395e"><div class="ttname"><a href="structxran__buffer__list.html#afa8c44acddb126e8bb0652d7b4e4395e">xran_buffer_list::pBuffers</a></div><div class="ttdeci">struct xran_flat_buffer * pBuffers</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00596">xran_fh_o_du.h:596</a></div></div>
248 <div class="ttc" id="classxran_lib_wraper_html_aa77e335f5b2d2cc1d81de7a55f122ded"><div class="ttname"><a href="classxran_lib_wraper.html#aa77e335f5b2d2cc1d81de7a55f122ded">xranLibWraper::nNumRbsPerSymF2</a></div><div class="ttdeci">const uint16_t nNumRbsPerSymF2[2][4]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00100">xran_lib_wrap.hpp:100</a></div></div>
249 <div class="ttc" id="classxran_lib_wraper_html_a74cbf8f188c4df27d645f80be26bb077"><div class="ttname"><a href="classxran_lib_wraper.html#a74cbf8f188c4df27d645f80be26bb077">xranLibWraper::m_timer_ctx</a></div><div class="ttdeci">struct xranLibWraper::xran_timer_ctx m_timer_ctx[MAX_NUM_OF_XRAN_CTX]</div></div>
250 <div class="ttc" id="classxran_lib_wraper_html_a7d7488daf0a2eebb9359f760a60eaf7c"><div class="ttname"><a href="classxran_lib_wraper.html#a7d7488daf0a2eebb9359f760a60eaf7c">xranLibWraper::get_numerology</a></div><div class="ttdeci">int get_numerology()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01118">xran_lib_wrap.hpp:1118</a></div></div>
251 <div class="ttc" id="structxran__fh__init_html_aac84937e634fccb665c6de923af50c0f"><div class="ttname"><a href="structxran__fh__init.html#aac84937e634fccb665c6de923af50c0f">xran_fh_init::T2a_min_up</a></div><div class="ttdeci">uint16_t T2a_min_up</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00343">xran_fh_o_du.h:343</a></div></div>
252 <div class="ttc" id="xran__fh__o__du_8h_html_ae79ca138dc77d69ef692886be4e5da81"><div class="ttname"><a href="xran__fh__o__du_8h.html#ae79ca138dc77d69ef692886be4e5da81">xran_bm_allocate_buffer</a></div><div class="ttdeci">int32_t xran_bm_allocate_buffer(void *pHandle, uint32_t nPoolIndex, void **ppData, void **ppCtrl)</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l02499">xran_main.c:2499</a></div></div>
253 <div class="ttc" id="xran__frame__struct_8h_html"><div class="ttname"><a href="xran__frame__struct_8h.html">xran_frame_struct.h</a></div><div class="ttdoc">Header file for function to work with 5G NR frame structure and related routines. ...</div></div>
254 <div class="ttc" id="classxran_lib_wraper_html_afecde4b156cd353cb29487bbb9675d46a08f01b9504a22e9c6b9692585b471729"><div class="ttname"><a href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a08f01b9504a22e9c6b9692585b471729">xranLibWraper::XRANFTHRACH_IN</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00077">xran_lib_wrap.hpp:77</a></div></div>
255 <div class="ttc" id="structxran__fh__config_html_a167e91cb91119363bf10c9430b6f082c"><div class="ttname"><a href="structxran__fh__config.html#a167e91cb91119363bf10c9430b6f082c">xran_fh_config::prach_conf</a></div><div class="ttdeci">struct xran_prach_config prach_conf</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00515">xran_fh_o_du.h:515</a></div></div>
256 <div class="ttc" id="classxran_lib_wraper_html_ad2b06001d76c9a773c242b28fc7c92f4"><div class="ttname"><a href="classxran_lib_wraper.html#ad2b06001d76c9a773c242b28fc7c92f4">xranLibWraper::get_num_dlrbs</a></div><div class="ttdeci">int get_num_dlrbs()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01122">xran_lib_wrap.hpp:1122</a></div></div>
257 <div class="ttc" id="structxran__prb__elm_html_a0cae38b481020301f9e6831c27b5058b"><div class="ttname"><a href="structxran__prb__elm.html#a0cae38b481020301f9e6831c27b5058b">xran_prb_elm::bf_weight_update</a></div><div class="ttdeci">int16_t bf_weight_update</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00399">xran_fh_o_du.h:399</a></div></div>
258 <div class="ttc" id="gen__test_8m_html_ac6b31045f94257d82fbbcf64a170a093"><div class="ttname"><a href="gen__test_8m.html#ac6b31045f94257d82fbbcf64a170a093">iPrb</a></div><div class="ttdeci">adjust channel per each RB for iPrb</div><div class="ttdef"><b>Definition:</b> <a href="gen__test_8m_source.html#l00201">gen_test.m:201</a></div></div>
259 <div class="ttc" id="classxran_lib_wraper_html_ac6f9b50e19408f0c2efdcf7e5dd204a9"><div class="ttname"><a href="classxran_lib_wraper.html#ac6f9b50e19408f0c2efdcf7e5dd204a9">xranLibWraper::argv</a></div><div class="ttdeci">char argv[25]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00109">xran_lib_wrap.hpp:109</a></div></div>
260 <div class="ttc" id="classxran_lib_wraper_html_a25afbf449e11f9e290e0fdbef77702c2"><div class="ttname"><a href="classxran_lib_wraper.html#a25afbf449e11f9e290e0fdbef77702c2">xranLibWraper::get_rucategory</a></div><div class="ttdeci">enum xran_category get_rucategory()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01116">xran_lib_wrap.hpp:1116</a></div></div>
261 <div class="ttc" id="structxran__frame__config_html_a78b2fab8e8d6a6424c2712d528fd9a58"><div class="ttname"><a href="structxran__frame__config.html#a78b2fab8e8d6a6424c2712d528fd9a58">xran_frame_config::nNumerology</a></div><div class="ttdeci">uint8_t nNumerology</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00461">xran_fh_o_du.h:461</a></div></div>
262 <div class="ttc" id="structxran__prb__elm_html_ad73157f14fa98c54fb563244c1327933"><div class="ttname"><a href="structxran__prb__elm.html#ad73157f14fa98c54fb563244c1327933">xran_prb_elm::compMethod</a></div><div class="ttdeci">int16_t compMethod</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00400">xran_fh_o_du.h:400</a></div></div>
263 <div class="ttc" id="classxran_lib_wraper_html_adc7a94af3a9c52fdb09e8733264eee4a"><div class="ttname"><a href="classxran_lib_wraper.html#adc7a94af3a9c52fdb09e8733264eee4a">xranLibWraper::tx_ul_bfw_buffer_position</a></div><div class="ttdeci">int32_t tx_ul_bfw_buffer_position[MAX_ANT_CARRIER_SUPPORTED]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00160">xran_lib_wrap.hpp:160</a></div></div>
264 <div class="ttc" id="classxran_lib_wraper_html_a163a7a574581e04dfa9cc60cfc81e7f5a5b785d20b7b0bf419524631adcb69df2"><div class="ttname"><a href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a5b785d20b7b0bf419524631adcb69df2">xranLibWraper::PHY_BW_25MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00084">xran_lib_wrap.hpp:84</a></div></div>
265 <div class="ttc" id="structxran__ru__config_html_af92ff2dfd2bddd0880d779c04b9fb359"><div class="ttname"><a href="structxran__ru__config.html#af92ff2dfd2bddd0880d779c04b9fb359">xran_ru_config::xranCat</a></div><div class="ttdeci">enum xran_category xranCat</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00484">xran_fh_o_du.h:484</a></div></div>
266 <div class="ttc" id="classxran_lib_wraper_html_ae89a123aad1c66a76c398b7af216aae4"><div class="ttname"><a href="classxran_lib_wraper.html#ae89a123aad1c66a76c398b7af216aae4">xranLibWraper::Cleanup</a></div><div class="ttdeci">void Cleanup()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00914">xran_lib_wrap.hpp:914</a></div></div>
267 <div class="ttc" id="xran__fh__o__du_8h_html_a8f2daee2fe90126f1f7c361b7760a7a3"><div class="ttname"><a href="xran__fh__o__du_8h.html#a8f2daee2fe90126f1f7c361b7760a7a3">xran_stop</a></div><div class="ttdeci">int32_t xran_stop(void *pHandle)</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l02852">xran_main.c:2852</a></div></div>
268 <div class="ttc" id="structxran__frame__config_html_a4664e9a9005020b4a98ada2d256906e2"><div class="ttname"><a href="structxran__frame__config.html#a4664e9a9005020b4a98ada2d256906e2">xran_frame_config::sSlotConfig</a></div><div class="ttdeci">struct xran_slot_config sSlotConfig[XRAN_MAX_TDD_PERIODICITY]</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00465">xran_fh_o_du.h:465</a></div></div>
269 <div class="ttc" id="xran__fh__o__du_8h_html_ab5ce6839bae2968c79930a0bfa17f4d8a61bd03fd3153385f6791bd16e55892b8"><div class="ttname"><a href="xran__fh__o__du_8h.html#ab5ce6839bae2968c79930a0bfa17f4d8a61bd03fd3153385f6791bd16e55892b8">XRAN_NE_BE_BYTE_ORDER</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00472">xran_fh_o_du.h:472</a></div></div>
270 <div class="ttc" id="structxran__fh__init_html_a60007ed3e328b06fb7f7ff2b3a37dac5"><div class="ttname"><a href="structxran__fh__init.html#a60007ed3e328b06fb7f7ff2b3a37dac5">xran_fh_init::T2a_max_cp_ul</a></div><div class="ttdeci">uint16_t T2a_max_cp_ul</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00342">xran_fh_o_du.h:342</a></div></div>
271 <div class="ttc" id="structxran__prb__elm_html_a5acab5eec7096fb7732c804f71f02a4d"><div class="ttname"><a href="structxran__prb__elm.html#a5acab5eec7096fb7732c804f71f02a4d">xran_prb_elm::nStartSymb</a></div><div class="ttdeci">int16_t nStartSymb</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00396">xran_fh_o_du.h:396</a></div></div>
272 <div class="ttc" id="structxran__buffer__list_html"><div class="ttname"><a href="structxran__buffer__list.html">xran_buffer_list</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00592">xran_fh_o_du.h:592</a></div></div>
273 <div class="ttc" id="xran__lib__wrap_8hpp_html_a16ea7ba6b48522ff69767c3a3d31b776"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#a16ea7ba6b48522ff69767c3a3d31b776">MAX_NUM_OF_XRAN_CTX</a></div><div class="ttdeci">#define MAX_NUM_OF_XRAN_CTX</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00047">xran_lib_wrap.hpp:47</a></div></div>
274 <div class="ttc" id="xran__common_8h_html"><div class="ttname"><a href="xran__common_8h.html">xran_common.h</a></div><div class="ttdoc">XRAN layer common functionality for both lls-CU and RU as well as C-plane and U-plane. </div></div>
275 <div class="ttc" id="structxran__prb__map_html_a1c85ead6321835264d2451291430a7da"><div class="ttname"><a href="structxran__prb__map.html#a1c85ead6321835264d2451291430a7da">xran_prb_map::band_id</a></div><div class="ttdeci">uint16_t band_id</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00417">xran_fh_o_du.h:417</a></div></div>
276 <div class="ttc" id="classxran_lib_wraper_html_a4e219881fa053028c692fb10ae2bb5a3"><div class="ttname"><a href="classxran_lib_wraper.html#a4e219881fa053028c692fb10ae2bb5a3">xranLibWraper::m_sFHPrachRxBbuIoBufCtrl</a></div><div class="ttdeci">BbuIoBufCtrlStruct m_sFHPrachRxBbuIoBufCtrl[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR][XRAN_MAX_ANTENNA_NR]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00132">xran_lib_wrap.hpp:132</a></div></div>
277 <div class="ttc" id="classxran_lib_wraper_html_aef8068804ca7393d92edd9ed22d90070"><div class="ttname"><a href="classxran_lib_wraper.html#aef8068804ca7393d92edd9ed22d90070">xranLibWraper::get_num_eaxc</a></div><div class="ttdeci">int get_num_eaxc()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01121">xran_lib_wrap.hpp:1121</a></div></div>
278 <div class="ttc" id="structxran__fh__config_html_a27ff648f80c139235421b81f957fcb7e"><div class="ttname"><a href="structxran__fh__config.html#a27ff648f80c139235421b81f957fcb7e">xran_fh_config::ru_conf</a></div><div class="ttdeci">struct xran_ru_config ru_conf</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00518">xran_fh_o_du.h:518</a></div></div>
279 <div class="ttc" id="classxran_lib_wraper_html_ab58608944b110026e58c96affe100111"><div class="ttname"><a href="classxran_lib_wraper.html#ab58608944b110026e58c96affe100111">xranLibWraper::m_du_mac</a></div><div class="ttdeci">uint8_t m_du_mac[6]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00115">xran_lib_wrap.hpp:115</a></div></div>
280 <div class="ttc" id="xran__fh__o__du_8h_html_ab78adb73387ef66b18318c2425be2f27a28eb3e91604ef0f752bef0c98e48a21f"><div class="ttname"><a href="xran__fh__o__du_8h.html#ab78adb73387ef66b18318c2425be2f27a28eb3e91604ef0f752bef0c98e48a21f">XRAN_BEAM_ID_BASED</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00272">xran_fh_o_du.h:272</a></div></div>
281 <div class="ttc" id="structxran__fh__init_html_adc6cb9229207f58f6c4375305dcb5384"><div class="ttname"><a href="structxran__fh__init.html#adc6cb9229207f58f6c4375305dcb5384">xran_fh_init::cp_vlan_tag</a></div><div class="ttdeci">uint8_t cp_vlan_tag</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00359">xran_fh_o_du.h:359</a></div></div>
282 <div class="ttc" id="structxran__prb__elm_html_a6c405fdd34c38d29b355cd051527ad9b"><div class="ttname"><a href="structxran__prb__elm.html#a6c405fdd34c38d29b355cd051527ad9b">xran_prb_elm::p_sec_desc</a></div><div class="ttdeci">struct xran_section_desc * p_sec_desc[XRAN_NUM_OF_SYMBOL_PER_SLOT]</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00404">xran_fh_o_du.h:404</a></div></div>
283 <div class="ttc" id="structxran__prb__elm_html_a8b8b1bd49f0c7c15063d74dd4ad48cde"><div class="ttname"><a href="structxran__prb__elm.html#a8b8b1bd49f0c7c15063d74dd4ad48cde">xran_prb_elm::BeamFormingType</a></div><div class="ttdeci">int16_t BeamFormingType</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00402">xran_fh_o_du.h:402</a></div></div>
284 <div class="ttc" id="xran__lib__wrap_8hpp_html_ad8d180966ea390f149dea00f5616b540"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#ad8d180966ea390f149dea00f5616b540">XRAN_UT_KEY_GLOBALCFG_EAXCID</a></div><div class="ttdeci">#define XRAN_UT_KEY_GLOBALCFG_EAXCID</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00042">xran_lib_wrap.hpp:42</a></div></div>
285 <div class="ttc" id="sample-app_8c_html_a85ff1667d07b822b2c7f5a91a0c0bc95"><div class="ttname"><a href="sample-app_8c.html#a85ff1667d07b822b2c7f5a91a0c0bc95">xranHandle</a></div><div class="ttdeci">void * xranHandle</div><div class="ttdef"><b>Definition:</b> <a href="sample-app_8c_source.html#l00076">sample-app.c:76</a></div></div>
286 <div class="ttc" id="classxran_lib_wraper_html_aaf96fa2c0147a497910401ba377506db"><div class="ttname"><a href="classxran_lib_wraper.html#aaf96fa2c0147a497910401ba377506db">xranLibWraper::m_sFrontHaulTxBuffers</a></div><div class="ttdeci">struct xran_flat_buffer m_sFrontHaulTxBuffers[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR][XRAN_MAX_ANTENNA_NR][XRAN_NUM_OF_SYMBOL_PER_SLOT]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00135">xran_lib_wrap.hpp:135</a></div></div>
287 <div class="ttc" id="struct_bbu_io_buf_ctrl_struct_html_a7941f6b35742c3de02e270f7b80c8dda"><div class="ttname"><a href="struct_bbu_io_buf_ctrl_struct.html#a7941f6b35742c3de02e270f7b80c8dda">BbuIoBufCtrlStruct::pData</a></div><div class="ttdeci">struct rte_mbuf * pData[N_MAX_BUFFER_SEGMENT]</div><div class="ttdef"><b>Definition:</b> <a href="sample-app_8c_source.html#l00128">sample-app.c:128</a></div></div>
288 <div class="ttc" id="classxran_lib_wraper_html_afecde4b156cd353cb29487bbb9675d46a6365b7a9adffb0e096ffbd8012b909c1"><div class="ttname"><a href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a6365b7a9adffb0e096ffbd8012b909c1">xranLibWraper::MAX_SW_XRAN_INTERFACE_NUM</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00078">xran_lib_wrap.hpp:78</a></div></div>
289 <div class="ttc" id="xran__fh__o__du_8h_html_a87d92ec177ed9c388685a91051f66205"><div class="ttname"><a href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a></div><div class="ttdeci">#define XRAN_NUM_OF_SYMBOL_PER_SLOT</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00122">xran_fh_o_du.h:122</a></div></div>
290 <div class="ttc" id="classxran_lib_wraper_html_a5de5e6cb2e5beb2315f16ecc06aa2966"><div class="ttname"><a href="classxran_lib_wraper.html#a5de5e6cb2e5beb2315f16ecc06aa2966">xranLibWraper::m_sFrontHaulTxPrbMapBbuIoBufCtrl</a></div><div class="ttdeci">BbuIoBufCtrlStruct m_sFrontHaulTxPrbMapBbuIoBufCtrl[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR][XRAN_MAX_ANTENNA_NR]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00129">xran_lib_wrap.hpp:129</a></div></div>
291 <div class="ttc" id="structxran__fh__init_html_a6fcbf469691a192f1ce298f70981c17a"><div class="ttname"><a href="structxran__fh__init.html#a6fcbf469691a192f1ce298f70981c17a">xran_fh_init::DynamicSectionEna</a></div><div class="ttdeci">int32_t DynamicSectionEna</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00363">xran_fh_o_du.h:363</a></div></div>
292 <div class="ttc" id="classxran_lib_wraper_html_af2f499e1b7c34ec4e1c600e00bddc75f"><div class="ttname"><a href="classxran_lib_wraper.html#af2f499e1b7c34ec4e1c600e00bddc75f">xranLibWraper::m_dpdk_bbdev</a></div><div class="ttdeci">std::string m_dpdk_bbdev</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00111">xran_lib_wrap.hpp:111</a></div></div>
293 <div class="ttc" id="classxran_lib_wraper_html_a163a7a574581e04dfa9cc60cfc81e7f5a9aacdbe3977171e1dda54f4778698ae8"><div class="ttname"><a href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a9aacdbe3977171e1dda54f4778698ae8">xranLibWraper::PHY_BW_20MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00084">xran_lib_wrap.hpp:84</a></div></div>
294 <div class="ttc" id="classxran_lib_wraper_html_afecde4b156cd353cb29487bbb9675d46adc5b684e21c0681c775b8f903328de35"><div class="ttname"><a href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46adc5b684e21c0681c775b8f903328de35">xranLibWraper::XRANFTHTX_SEC_DESC_IN</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00076">xran_lib_wrap.hpp:76</a></div></div>
295 <div class="ttc" id="structxran__fh__config_html_abcac68b45b2bcf3b5458817d65b86e45"><div class="ttname"><a href="structxran__fh__config.html#abcac68b45b2bcf3b5458817d65b86e45">xran_fh_config::neAxc</a></div><div class="ttdeci">uint32_t neAxc</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00501">xran_fh_o_du.h:501</a></div></div>
296 <div class="ttc" id="structxran__io__cfg_html_ae58734e2aff608373089778da1aa4efa"><div class="ttname"><a href="structxran__io__cfg.html#ae58734e2aff608373089778da1aa4efa">xran_io_cfg::dpdk_dev</a></div><div class="ttdeci">char * dpdk_dev[XRAN_VF_MAX]</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00296">xran_fh_o_du.h:296</a></div></div>
297 <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>
298 <div class="ttc" id="classxran_lib_wraper_html_a21adf86e6b2a299b94a4eb59b6094863"><div class="ttname"><a href="classxran_lib_wraper.html#a21adf86e6b2a299b94a4eb59b6094863">xranLibWraper::m_sFrontHaulRxPrbMapBuffers</a></div><div class="ttdeci">struct xran_flat_buffer m_sFrontHaulRxPrbMapBuffers[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR][XRAN_MAX_ANTENNA_NR]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00138">xran_lib_wrap.hpp:138</a></div></div>
299 <div class="ttc" id="structxran__io__cfg_html_a7ea8f53112b353d5e98cc955437f3706"><div class="ttname"><a href="structxran__io__cfg.html#a7ea8f53112b353d5e98cc955437f3706">xran_io_cfg::pkt_proc_core</a></div><div class="ttdeci">int32_t pkt_proc_core</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00301">xran_fh_o_du.h:301</a></div></div>
300 <div class="ttc" id="xran__fh__o__du_8h_html_adf5ead6a9f90b5d524e8012521d64bb5"><div class="ttname"><a href="xran__fh__o__du_8h.html#adf5ead6a9f90b5d524e8012521d64bb5">xran_sector_get_instances</a></div><div class="ttdeci">int32_t xran_sector_get_instances(void *pHandle, uint16_t nNumInstances, xran_cc_handle_t *pSectorInstanceHandles)</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l02408">xran_main.c:2408</a></div></div>
301 <div class="ttc" id="classxran_lib_wraper_html_a163a7a574581e04dfa9cc60cfc81e7f5a890aa1814878ba9f0adfab63784ef1c1"><div class="ttname"><a href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a890aa1814878ba9f0adfab63784ef1c1">xranLibWraper::PHY_BW_50MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00085">xran_lib_wrap.hpp:85</a></div></div>
302 <div class="ttc" id="structxran__eaxcid__config_html_a3357253b181bed8132156f87728efc8d"><div class="ttname"><a href="structxran__eaxcid__config.html#a3357253b181bed8132156f87728efc8d">xran_eaxcid_config::mask_cuPortId</a></div><div class="ttdeci">uint16_t mask_cuPortId</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00309">xran_fh_o_du.h:309</a></div></div>
303 <div class="ttc" id="classxran_lib_wraper_html_abbe0bfcd68428ee4cc3f63a391495e8d"><div class="ttname"><a href="classxran_lib_wraper.html#abbe0bfcd68428ee4cc3f63a391495e8d">xranLibWraper::get_num_rbs</a></div><div class="ttdeci">int get_num_rbs(uint32_t nNumerology, uint32_t nBandwidth, bool nSub6)</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01068">xran_lib_wrap.hpp:1068</a></div></div>
304 <div class="ttc" id="classxran_lib_wraper_html_a200da4e2209141f12cafef2380cb801a"><div class="ttname"><a href="classxran_lib_wraper.html#a200da4e2209141f12cafef2380cb801a">xranLibWraper::Init</a></div><div class="ttdeci">int Init(struct xran_fh_config *pCfg=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00740">xran_lib_wrap.hpp:740</a></div></div>
305 <div class="ttc" id="struct_bbu_io_buf_ctrl_struct_html_ab79185e465507117d7b13fd30ec49f70"><div class="ttname"><a href="struct_bbu_io_buf_ctrl_struct.html#ab79185e465507117d7b13fd30ec49f70">BbuIoBufCtrlStruct::sBufferList</a></div><div class="ttdeci">struct xran_buffer_list sBufferList</div><div class="ttdef"><b>Definition:</b> <a href="sample-app_8c_source.html#l00129">sample-app.c:129</a></div></div>
306 <div class="ttc" id="structxran__ru__config_html"><div class="ttname"><a href="structxran__ru__config.html">xran_ru_config</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00483">xran_fh_o_du.h:483</a></div></div>
307 <div class="ttc" id="structxran__fh__init_html_a73b80929304dcde73f2c2f6d4f7448fa"><div class="ttname"><a href="structxran__fh__init.html#a73b80929304dcde73f2c2f6d4f7448fa">xran_fh_init::T1a_min_cp_dl</a></div><div class="ttdeci">uint16_t T1a_min_cp_dl</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00347">xran_fh_o_du.h:347</a></div></div>
308 <div class="ttc" id="classxran_lib_wraper_html_afecde4b156cd353cb29487bbb9675d46a49ff95bd57852bfa8cfd8039fffad1e2"><div class="ttname"><a href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a49ff95bd57852bfa8cfd8039fffad1e2">xranLibWraper::XRANFTHRX_PRB_MAP_IN</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00075">xran_lib_wrap.hpp:75</a></div></div>
309 <div class="ttc" id="classxran_lib_wraper_html_ab795436cc8b07e2b0d665502274b30e6"><div class="ttname"><a href="classxran_lib_wraper.html#ab795436cc8b07e2b0d665502274b30e6">xranLibWraper::get_symbol_index</a></div><div class="ttdeci">int get_symbol_index()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01112">xran_lib_wrap.hpp:1112</a></div></div>
310 <div class="ttc" id="structxran__frame__config_html_a53a1d989c6dee827495401b1973c9ef8"><div class="ttname"><a href="structxran__frame__config.html#a53a1d989c6dee827495401b1973c9ef8">xran_frame_config::nTddPeriod</a></div><div class="ttdeci">uint8_t nTddPeriod</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00464">xran_fh_o_du.h:464</a></div></div>
311 <div class="ttc" id="xran__lib__wrap_8hpp_html_a98175f360f5753bc99c4edd3c2d8bd04"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#a98175f360f5753bc99c4edd3c2d8bd04">xran_lib_ota_sym_idx</a></div><div class="ttdeci">uint32_t xran_lib_ota_sym_idx</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l00113">xran_main.c:113</a></div></div>
312 <div class="ttc" id="structxran__fh__config_html_ae4908e70f937e7eca578e348f4e3911f"><div class="ttname"><a href="structxran__fh__config.html#ae4908e70f937e7eca578e348f4e3911f">xran_fh_config::nULFftSize</a></div><div class="ttdeci">uint16_t nULFftSize</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00505">xran_fh_o_du.h:505</a></div></div>
313 <div class="ttc" id="struct_bbu_io_buf_ctrl_struct_html_a48c33fa4a8f2f93d51cba58b78d3cd9f"><div class="ttname"><a href="struct_bbu_io_buf_ctrl_struct.html#a48c33fa4a8f2f93d51cba58b78d3cd9f">BbuIoBufCtrlStruct::bValid</a></div><div class="ttdeci">int32_t bValid</div><div class="ttdef"><b>Definition:</b> <a href="sample-app_8c_source.html#l00123">sample-app.c:123</a></div></div>
314 <div class="ttc" id="classxran_lib_wraper_html_a5548a3a1605dbf7b492d6eb164d3c667"><div class="ttname"><a href="classxran_lib_wraper.html#a5548a3a1605dbf7b492d6eb164d3c667">xranLibWraper::get_duplextype</a></div><div class="ttdeci">int get_duplextype()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01119">xran_lib_wrap.hpp:1119</a></div></div>
315 <div class="ttc" id="structxran__fh__init_html_a71254f497cb48a57b123c7f4897b7a38"><div class="ttname"><a href="structxran__fh__init.html#a71254f497cb48a57b123c7f4897b7a38">xran_fh_init::T1a_max_cp_ul</a></div><div class="ttdeci">uint16_t T1a_max_cp_ul</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00350">xran_fh_o_du.h:350</a></div></div>
316 <div class="ttc" id="structxran__flat__buffer_html"><div class="ttname"><a href="structxran__flat__buffer.html">xran_flat_buffer</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00553">xran_fh_o_du.h:553</a></div></div>
317 <div class="ttc" id="xran__lib__wrap_8hpp_html_a0c97e7d2cdb34b857e3b6de86b49f55d"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#a0c97e7d2cdb34b857e3b6de86b49f55d">XRAN_UT_KEY_GLOBALCFG_PRACH</a></div><div class="ttdeci">#define XRAN_UT_KEY_GLOBALCFG_PRACH</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00043">xran_lib_wrap.hpp:43</a></div></div>
318 <div class="ttc" id="structxran__fh__config_html_a6dcac3ea0b3d99c20c2e6f7091b8b342"><div class="ttname"><a href="structxran__fh__config.html#a6dcac3ea0b3d99c20c2e6f7091b8b342">xran_fh_config::nCC</a></div><div class="ttdeci">uint32_t nCC</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00500">xran_fh_o_du.h:500</a></div></div>
319 <div class="ttc" id="classxran_lib_wraper_html_a163a7a574581e04dfa9cc60cfc81e7f5a22ec162486eef1dd707ae1bd7ac8bde6"><div class="ttname"><a href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a22ec162486eef1dd707ae1bd7ac8bde6">xranLibWraper::PHY_BW_80MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00086">xran_lib_wrap.hpp:86</a></div></div>
320 <div class="ttc" id="structxran__ru__config_html_a59e7e8f3feb686850b0cb0ae065de85b"><div class="ttname"><a href="structxran__ru__config.html#a59e7e8f3feb686850b0cb0ae065de85b">xran_ru_config::fftSize</a></div><div class="ttdeci">uint8_t fftSize</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00488">xran_fh_o_du.h:488</a></div></div>
321 <div class="ttc" id="structxran__fh__init_html_ab783700ba1f1b7d6d617a102f01e2e8a"><div class="ttname"><a href="structxran__fh__init.html#ab783700ba1f1b7d6d617a102f01e2e8a">xran_fh_init::dpdkBasebandDevice</a></div><div class="ttdeci">char * dpdkBasebandDevice</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00328">xran_fh_o_du.h:328</a></div></div>
322 <div class="ttc" id="classxran_lib_wraper_html_a2e64fc338fcfaac25af91aae564777fa"><div class="ttname"><a href="classxran_lib_wraper.html#a2e64fc338fcfaac25af91aae564777fa">xranLibWraper::xranLibWraper</a></div><div class="ttdeci">xranLibWraper()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00467">xran_lib_wrap.hpp:467</a></div></div>
323 <div class="ttc" id="classxran_lib_wraper_html_a6284df81f3334e6319e99aa3d368acec"><div class="ttname"><a href="classxran_lib_wraper.html#a6284df81f3334e6319e99aa3d368acec">xranLibWraper::m_sFrontHaulRxBuffers</a></div><div class="ttdeci">struct xran_flat_buffer m_sFrontHaulRxBuffers[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR][XRAN_MAX_ANTENNA_NR][XRAN_NUM_OF_SYMBOL_PER_SLOT]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00137">xran_lib_wrap.hpp:137</a></div></div>
324 <div class="ttc" id="classxran_lib_wraper_html_a9507c81d07af4f634e04173663fd5419"><div class="ttname"><a href="classxran_lib_wraper.html#a9507c81d07af4f634e04173663fd5419">xranLibWraper::m_xranInit</a></div><div class="ttdeci">struct xran_fh_init m_xranInit</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00121">xran_lib_wrap.hpp:121</a></div></div>
325 <div class="ttc" id="structxran__fh__init_html_ab2d0817976952478020b3437b3dbbfc3"><div class="ttname"><a href="structxran__fh__init.html#ab2d0817976952478020b3437b3dbbfc3">xran_fh_init::T1a_min_cp_ul</a></div><div class="ttdeci">uint16_t T1a_min_cp_ul</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00349">xran_fh_o_du.h:349</a></div></div>
326 <div class="ttc" id="classxran_lib_wraper_html_ad93226058ef4fd59bd7d0cd55701b752"><div class="ttname"><a href="classxran_lib_wraper.html#ad93226058ef4fd59bd7d0cd55701b752">xranLibWraper::Open</a></div><div class="ttdeci">void Open(xran_ethdi_mbuf_send_fn send_cp, xran_ethdi_mbuf_send_fn send_up, void *fh_rx_callback, void *fh_rx_prach_callback)</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00936">xran_lib_wrap.hpp:936</a></div></div>
327 <div class="ttc" id="structxran__fh__init_html_af27977cbf63a8beb2fd6b1f17c1502df"><div class="ttname"><a href="structxran__fh__init.html#af27977cbf63a8beb2fd6b1f17c1502df">xran_fh_init::T2a_max_up</a></div><div class="ttdeci">uint16_t T2a_max_up</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00344">xran_fh_o_du.h:344</a></div></div>
328 <div class="ttc" id="classxran_lib_wraper_html_a95b1981d7d33eb50789dbc55d5d2755f"><div class="ttname"><a href="classxran_lib_wraper.html#a95b1981d7d33eb50789dbc55d5d2755f">xranLibWraper::p_tx_ul_bfw_buffer</a></div><div class="ttdeci">int16_t * p_tx_ul_bfw_buffer[MAX_ANT_CARRIER_SUPPORTED]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00158">xran_lib_wrap.hpp:158</a></div></div>
329 <div class="ttc" id="structxran__ru__config_html_a1520b1ef6131bff6c14b88d849c266c5"><div class="ttname"><a href="structxran__ru__config.html#a1520b1ef6131bff6c14b88d849c266c5">xran_ru_config::iqWidth</a></div><div class="ttdeci">uint8_t iqWidth</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00486">xran_fh_o_du.h:486</a></div></div>
330 <div class="ttc" id="xran__fh__o__du_8h_html_ab78adb73387ef66b18318c2425be2f27ac65119b19d6f3b1195050fb56529e02a"><div class="ttname"><a href="xran__fh__o__du_8h.html#ab78adb73387ef66b18318c2425be2f27ac65119b19d6f3b1195050fb56529e02a">XRAN_BEAM_WEIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00273">xran_fh_o_du.h:273</a></div></div>
331 <div class="ttc" id="structxran__prb__map_html_a2357c89e196d6c8c53e29bf04d168b7e"><div class="ttname"><a href="structxran__prb__map.html#a2357c89e196d6c8c53e29bf04d168b7e">xran_prb_map::prbMap</a></div><div class="ttdeci">struct xran_prb_elm prbMap[XRAN_MAX_PRBS]</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00423">xran_fh_o_du.h:423</a></div></div>
332 <div class="ttc" id="classxran_lib_wraper_html_a1d92eb426fc3269a180f07289f738d1a"><div class="ttname"><a href="classxran_lib_wraper.html#a1d92eb426fc3269a180f07289f738d1a">xranLibWraper::is_dynamicsection</a></div><div class="ttdeci">bool is_dynamicsection()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01128">xran_lib_wrap.hpp:1128</a></div></div>
333 <div class="ttc" id="structxran__prach__config_html_acb5fe8097b0115e038eb02d5900f66d6"><div class="ttname"><a href="structxran__prach__config.html#acb5fe8097b0115e038eb02d5900f66d6">xran_prach_config::nPrachConfIdx</a></div><div class="ttdeci">uint8_t nPrachConfIdx</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00432">xran_fh_o_du.h:432</a></div></div>
334 <div class="ttc" id="classxran_lib_wraper_html_a5855fc30031ba49b7375526f7cda0ff7"><div class="ttname"><a href="classxran_lib_wraper.html#a5855fc30031ba49b7375526f7cda0ff7">xranLibWraper::is_cpenable</a></div><div class="ttdeci">bool is_cpenable()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01126">xran_lib_wrap.hpp:1126</a></div></div>
335 <div class="ttc" id="classxran_lib_wraper_html_a95651581b17afb55b04ca83f04261353"><div class="ttname"><a href="classxran_lib_wraper.html#a95651581b17afb55b04ca83f04261353">xranLibWraper::nNumRbsPerSymF1</a></div><div class="ttdeci">const uint16_t nNumRbsPerSymF1[3][13]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00091">xran_lib_wrap.hpp:91</a></div></div>
336 <div class="ttc" id="structxran__eaxcid__config_html_a64cc7d4da64fe531f01c6bb54e6a02f3"><div class="ttname"><a href="structxran__eaxcid__config.html#a64cc7d4da64fe531f01c6bb54e6a02f3">xran_eaxcid_config::mask_ruPortId</a></div><div class="ttdeci">uint16_t mask_ruPortId</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00312">xran_fh_o_du.h:312</a></div></div>
337 <div class="ttc" id="classxran_lib_wraper_html_a0395e3b64e7fe193c70ea4e86ce2bddc"><div class="ttname"><a href="classxran_lib_wraper.html#a0395e3b64e7fe193c70ea4e86ce2bddc">xranLibWraper::get_cfg_prach</a></div><div class="ttdeci">void get_cfg_prach(struct xran_prach_config *pCfg)</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01130">xran_lib_wrap.hpp:1130</a></div></div>
338 <div class="ttc" id="group__xran__common__pkt_html_gga9c60a23fdae979ad1842b255790d1558a404255db3f05419798875bfb763e1c05"><div class="ttname"><a href="group__xran__common__pkt.html#gga9c60a23fdae979ad1842b255790d1558a404255db3f05419798875bfb763e1c05">XRAN_DIR_UL</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__pkt_8h_source.html#l00148">xran_pkt.h:148</a></div></div>
339 <div class="ttc" id="xran__common_8h_html_aedb267cc96c01f38341f460932d4cc5c"><div class="ttname"><a href="xran__common_8h.html#aedb267cc96c01f38341f460932d4cc5c">xran_ethdi_mbuf_send_fn</a></div><div class="ttdeci">int(* xran_ethdi_mbuf_send_fn)(struct rte_mbuf *mb, uint16_t ethertype)</div><div class="ttdef"><b>Definition:</b> <a href="xran__common_8h_source.html#l00169">xran_common.h:169</a></div></div>
340 <div class="ttc" id="xran__lib__wrap_8hpp_html_a1b2100f9f398243bb4bdbf0db003b9a3"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#a1b2100f9f398243bb4bdbf0db003b9a3">xranlib</a></div><div class="ttdeci">xranLibWraper * xranlib</div><div class="ttdef"><b>Definition:</b> <a href="xranlib__unit__test__main_8cc_source.html#l00044">xranlib_unit_test_main.cc:44</a></div></div>
341 <div class="ttc" id="structxran__fh__init_html"><div class="ttname"><a href="structxran__fh__init.html">xran_fh_init</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00323">xran_fh_o_du.h:323</a></div></div>
342 <div class="ttc" id="xran__lib__wrap_8hpp_html_a273a09cbea9267272f4e2a339059e442"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#a273a09cbea9267272f4e2a339059e442">xran_lib_ota_tti</a></div><div class="ttdeci">uint32_t xran_lib_ota_tti</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l00111">xran_main.c:111</a></div></div>
343 <div class="ttc" id="common_8h_html_a534c88c03c366dfbd4dd5efe7693f56b"><div class="ttname"><a href="common_8h.html#a534c88c03c366dfbd4dd5efe7693f56b">N_SYM_PER_SLOT</a></div><div class="ttdeci">#define N_SYM_PER_SLOT</div><div class="ttdef"><b>Definition:</b> <a href="common_8h_source.html#l00050">common.h:50</a></div></div>
344 <div class="ttc" id="classxran_lib_wraper_html_a3783fbb2a26b8a0530c489850a905a38"><div class="ttname"><a href="classxran_lib_wraper.html#a3783fbb2a26b8a0530c489850a905a38">xranLibWraper::update_tti</a></div><div class="ttdeci">void update_tti()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01007">xran_lib_wrap.hpp:1007</a></div></div>
345 <div class="ttc" id="classxran_lib_wraper_html_a2ad94e2d18c69b423d5402d7777832f1"><div class="ttname"><a href="classxran_lib_wraper.html#a2ad94e2d18c69b423d5402d7777832f1">xranLibWraper::get_xranhandle</a></div><div class="ttdeci">void * get_xranhandle()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l01109">xran_lib_wrap.hpp:1109</a></div></div>
346 <div class="ttc" id="xran__lib__wrap_8hpp_html_ae9c34194d5ec7c9c24b680085991306c"><div class="ttname"><a href="xran__lib__wrap_8hpp.html#ae9c34194d5ec7c9c24b680085991306c">SW_FPGA_SEGMENT_BUFFER_LEN</a></div><div class="ttdeci">#define SW_FPGA_SEGMENT_BUFFER_LEN</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00050">xran_lib_wrap.hpp:50</a></div></div>
347 <div class="ttc" id="classxran_lib_wraper_html_a98ce8fded84309c17c61f4dd902d4e0f"><div class="ttname"><a href="classxran_lib_wraper.html#a98ce8fded84309c17c61f4dd902d4e0f">xranLibWraper::m_nSectorIndex</a></div><div class="ttdeci">int32_t m_nSectorIndex[XRAN_MAX_SECTOR_NR]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00147">xran_lib_wrap.hpp:147</a></div></div>
348 <div class="ttc" id="classxran_lib_wraper_html_a163a7a574581e04dfa9cc60cfc81e7f5acb0fe0e94ea4f59ab5dd24203d20e7a4"><div class="ttname"><a href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5acb0fe0e94ea4f59ab5dd24203d20e7a4">xranLibWraper::PHY_BW_30MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00084">xran_lib_wrap.hpp:84</a></div></div>
349 <div class="ttc" id="structxran__io__cfg_html_ab99f9c6dba4d5fdc09299b3ac670503c"><div class="ttname"><a href="structxran__io__cfg.html#ab99f9c6dba4d5fdc09299b3ac670503c">xran_io_cfg::bbdev_mode</a></div><div class="ttdeci">int32_t bbdev_mode</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00298">xran_fh_o_du.h:298</a></div></div>
350 <div class="ttc" id="structxran__eaxcid__config_html_a0ba87d865af2deb1ee2565f528e1e72d"><div class="ttname"><a href="structxran__eaxcid__config.html#a0ba87d865af2deb1ee2565f528e1e72d">xran_eaxcid_config::mask_ccId</a></div><div class="ttdeci">uint16_t mask_ccId</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00311">xran_fh_o_du.h:311</a></div></div>
351 <div class="ttc" id="classxran_lib_wraper_html_af9989f7ffd89540fc26371e24a29fefc"><div class="ttname"><a href="classxran_lib_wraper.html#af9989f7ffd89540fc26371e24a29fefc">xranLibWraper::Start</a></div><div class="ttdeci">int Start()</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00990">xran_lib_wrap.hpp:990</a></div></div>
352 <div class="ttc" id="structxran__prb__elm_html_ad2586af82c76901c361a2d08a6ba553b"><div class="ttname"><a href="structxran__prb__elm.html#ad2586af82c76901c361a2d08a6ba553b">xran_prb_elm::numSymb</a></div><div class="ttdeci">int16_t numSymb</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00397">xran_fh_o_du.h:397</a></div></div>
353 <div class="ttc" id="classxran_lib_wraper_html_aa1611b01fe2d460ebe58e45c901f68e8"><div class="ttname"><a href="classxran_lib_wraper.html#aa1611b01fe2d460ebe58e45c901f68e8">xranLibWraper::m_sFrontHaulTxPrbMapBuffers</a></div><div class="ttdeci">struct xran_flat_buffer m_sFrontHaulTxPrbMapBuffers[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR][XRAN_MAX_ANTENNA_NR]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00136">xran_lib_wrap.hpp:136</a></div></div>
354 <div class="ttc" id="classxran_lib_wraper_html_a163a7a574581e04dfa9cc60cfc81e7f5a6eac287ee60ef4b214f6cd0b8196c7e4"><div class="ttname"><a href="classxran_lib_wraper.html#a163a7a574581e04dfa9cc60cfc81e7f5a6eac287ee60ef4b214f6cd0b8196c7e4">xranLibWraper::PHY_BW_15MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00083">xran_lib_wrap.hpp:83</a></div></div>
355 <div class="ttc" id="xran__fh__o__du_8h_html_aa8354b56b0be4be47c44a8a5c38db86e"><div class="ttname"><a href="xran__fh__o__du_8h.html#aa8354b56b0be4be47c44a8a5c38db86e">xran_reg_physide_cb</a></div><div class="ttdeci">int32_t xran_reg_physide_cb(void *pHandle, xran_fh_tti_callback_fn Cb, void *cbParam, int skipTtiNum, enum callback_to_phy_id)</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l02900">xran_main.c:2900</a></div></div>
356 <div class="ttc" id="classxran_lib_wraper_html_aa0dbf843da8d26633022c153c473deb5"><div class="ttname"><a href="classxran_lib_wraper.html#aa0dbf843da8d26633022c153c473deb5">xranLibWraper::m_dpdk_dev_cp</a></div><div class="ttdeci">std::string m_dpdk_dev_cp</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00111">xran_lib_wrap.hpp:111</a></div></div>
357 <div class="ttc" id="classxran_lib_wraper_html_a364dd5820c1bb3fc2f760e5b6cab5b98"><div class="ttname"><a href="classxran_lib_wraper.html#a364dd5820c1bb3fc2f760e5b6cab5b98">xranLibWraper::tx_dl_bfw_buffer_position</a></div><div class="ttdeci">int32_t tx_dl_bfw_buffer_position[MAX_ANT_CARRIER_SUPPORTED]</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00155">xran_lib_wrap.hpp:155</a></div></div>
358 <div class="ttc" id="xran__fh__o__du_8h_html_a0d9cb4cebbc59a8fa5bfef7547898859a0064217ac0728d6ac2d4f92d95db0d21"><div class="ttname"><a href="xran__fh__o__du_8h.html#a0d9cb4cebbc59a8fa5bfef7547898859a0064217ac0728d6ac2d4f92d95db0d21">XRAN_I_Q_ORDER</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00478">xran_fh_o_du.h:478</a></div></div>
359 <div class="ttc" id="xran__fh__o__du_8h_html_ac94e2474beef3b68521cfd391211b1be"><div class="ttname"><a href="xran__fh__o__du_8h.html#ac94e2474beef3b68521cfd391211b1be">xran_5g_fronthault_config</a></div><div class="ttdeci">int32_t xran_5g_fronthault_config(void *pHandle, struct xran_buffer_list *pSrcBuffer[XRAN_MAX_ANTENNA_NR][XRAN_N_FE_BUF_LEN], struct xran_buffer_list *pSrcCpBuffer[XRAN_MAX_ANTENNA_NR][XRAN_N_FE_BUF_LEN], struct xran_buffer_list *pDstBuffer[XRAN_MAX_ANTENNA_NR][XRAN_N_FE_BUF_LEN], struct xran_buffer_list *pDstCpBuffer[XRAN_MAX_ANTENNA_NR][XRAN_N_FE_BUF_LEN], xran_transport_callback_fn pCallback, void *pCallbackTag)</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l02551">xran_main.c:2551</a></div></div>
360 <div class="ttc" id="xran__fh__o__du_8h_html_a2f600110ab5726a0f21375b7f24c0326a35916b54fc6804c2f2dc1f5891f3047e"><div class="ttname"><a href="xran__fh__o__du_8h.html#a2f600110ab5726a0f21375b7f24c0326a35916b54fc6804c2f2dc1f5891f3047e">XRAN_RUNNING</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00192">xran_fh_o_du.h:192</a></div></div>
361 <div class="ttc" id="structxran__prach__config_html_ab9b99e41ea39f16780f66a539aa872c8"><div class="ttname"><a href="structxran__prach__config.html#ab9b99e41ea39f16780f66a539aa872c8">xran_prach_config::nPrachSubcSpacing</a></div><div class="ttdeci">uint8_t nPrachSubcSpacing</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00433">xran_fh_o_du.h:433</a></div></div>
362 <div class="ttc" id="structxran__fh__init_html_adcde08e47bdc5157e76975f32d1e96e8"><div class="ttname"><a href="structxran__fh__init.html#adcde08e47bdc5157e76975f32d1e96e8">xran_fh_init::p_o_du_addr</a></div><div class="ttdeci">int8_t * p_o_du_addr</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00333">xran_fh_o_du.h:333</a></div></div>
363 <div class="ttc" id="xran__fh__o__du_8h_html_aa3ceca070f84e316e0e2f6002419d572"><div class="ttname"><a href="xran__fh__o__du_8h.html#aa3ceca070f84e316e0e2f6002419d572">xran_status_t</a></div><div class="ttdeci">int32_t xran_status_t</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00236">xran_fh_o_du.h:236</a></div></div>
364 <div class="ttc" id="classxran_lib_wraper_html_a8b3edaed699562559db744c8e2aa36b1"><div class="ttname"><a href="classxran_lib_wraper.html#a8b3edaed699562559db744c8e2aa36b1">xranLibWraper::iq_bfw_buffer_size_ul</a></div><div class="ttdeci">int iq_bfw_buffer_size_ul</div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00150">xran_lib_wrap.hpp:150</a></div></div>
365 <div class="ttc" id="classxran_lib_wraper_html_afecde4b156cd353cb29487bbb9675d46a93393e301d55554422fb4780cbaf1cb1"><div class="ttname"><a href="classxran_lib_wraper.html#afecde4b156cd353cb29487bbb9675d46a93393e301d55554422fb4780cbaf1cb1">xranLibWraper::XRANFTHTX_PRB_MAP_OUT</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__lib__wrap_8hpp_source.html#l00072">xran_lib_wrap.hpp:72</a></div></div>
366 <div class="ttc" id="structxran__flat__buffer_html_ac9d92d585877c2ef1af759479baf85fe"><div class="ttname"><a href="structxran__flat__buffer.html#ac9d92d585877c2ef1af759479baf85fe">xran_flat_buffer::nElementLenInBytes</a></div><div class="ttdeci">uint32_t nElementLenInBytes</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00555">xran_fh_o_du.h:555</a></div></div>
367 </div><!-- fragment --></div><!-- contents -->
368 <!-- start footer part -->
369 <hr class="footer"/><address class="footer"><small>
370 Generated by  <a href="http://www.doxygen.org/index.html">
371 <img class="footer" src="doxygen.png" alt="doxygen"/>