add Doxygen documentation
[o-du/phy.git] / docs / API / xran__frame__struct_8c_source.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <meta name="generator" content="Doxygen 1.8.13"/>
7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
8 <title>o-du/phy: xran_frame_struct.c Source File</title>
9 <link href="tabs.css" rel="stylesheet" type="text/css"/>
10 <script type="text/javascript" src="jquery.js"></script>
11 <script type="text/javascript" src="dynsections.js"></script>
12 <link href="search/search.css" rel="stylesheet" type="text/css"/>
13 <script type="text/javascript" src="search/searchdata.js"></script>
14 <script type="text/javascript" src="search/search.js"></script>
15 <link href="doxygen.css" rel="stylesheet" type="text/css" />
16 </head>
17 <body>
18 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19 <div id="titlearea">
20 <table cellspacing="0" cellpadding="0">
21  <tbody>
22  <tr style="height: 56px;">
23   <td id="projectalign" style="padding-left: 0.5em;">
24    <div id="projectname">o-du/phy
25    </div>
26    <div id="projectbrief">Intel O-RAN/X-RAN Generated Doxygen Documentation</div>
27   </td>
28  </tr>
29  </tbody>
30 </table>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.13 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <script type="text/javascript" src="menudata.js"></script>
38 <script type="text/javascript" src="menu.js"></script>
39 <script type="text/javascript">
40 $(function() {
41   initMenu('',true,false,'search.php','Search');
42   $(document).ready(function() { init_search(); });
43 });
44 </script>
45 <div id="main-nav"></div>
46 <!-- window showing the filter options -->
47 <div id="MSearchSelectWindow"
48      onmouseover="return searchBox.OnSearchSelectShow()"
49      onmouseout="return searchBox.OnSearchSelectHide()"
50      onkeydown="return searchBox.OnSearchSelectKey(event)">
51 </div>
52
53 <!-- iframe showing the search results (closed by default) -->
54 <div id="MSearchResultsWindow">
55 <iframe src="javascript:void(0)" frameborder="0" 
56         name="MSearchResults" id="MSearchResults">
57 </iframe>
58 </div>
59
60 <div id="nav-path" class="navpath">
61   <ul>
62 <li class="navelem"><a class="el" href="dir_a4c74d6baed87eba72f3b201b7b4b8f2.html">fhi_lib</a></li><li class="navelem"><a class="el" href="dir_5cc0cc0264b57168b75ca56bde6cc403.html">lib</a></li><li class="navelem"><a class="el" href="dir_9fc50806095da30fbd4a2dbe2e456ff5.html">src</a></li>  </ul>
63 </div>
64 </div><!-- top -->
65 <div class="header">
66   <div class="headertitle">
67 <div class="title">xran_frame_struct.c</div>  </div>
68 </div><!--header-->
69 <div class="contents">
70 <a href="xran__frame__struct_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/******************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">*</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">*   Copyright (c) 2019 Intel.</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">*</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">*   Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">*   you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">*   You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">*</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">*       http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">*</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">*   Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">*   distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">*   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">*   See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">*   limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">*</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">*******************************************************************************/</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;assert.h&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;err.h&gt;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;arpa/inet.h&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;sys/time.h&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;time.h&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="xran__frame__struct_8h.html">xran_frame_struct.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="xran__printf_8h.html">xran_printf.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9">   36</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9">nXranChBwOptions</a></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9af1715c0daef0f54811ab8a87f42742ee">   38</a></span>&#160;    <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9af1715c0daef0f54811ab8a87f42742ee">XRAN_BW_5_0_MHZ</a>  = 5,  <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a6962ae2a5f54f4e3ce9a149de814facd">XRAN_BW_10_0_MHZ</a> = 10, <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a6ad31835c019040e0e36910d47fcc516">XRAN_BW_15_0_MHZ</a> = 15, <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9afb339cd770ae4e049e8771c934eb803e">XRAN_BW_20_0_MHZ</a> = 20, <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a04f20811e9e1a6fadba19b332f363d01">XRAN_BW_25_0_MHZ</a> = 25,</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9af4a58d303ddb79d4204b118b9c913169">   39</a></span>&#160;    <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a46a890a929d9a17917fb95cfaed14d77">XRAN_BW_30_0_MHZ</a> = 30, <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a140d2813310b9a09102560d53c574f5d">XRAN_BW_40_0_MHZ</a> = 40, <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a0a6780597350044ee01ce150b95b9d13">XRAN_BW_50_0_MHZ</a> = 50, <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a3d0d107fb6cbe02dd80119161f686d3e">XRAN_BW_60_0_MHZ</a> = 60, <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9af4a58d303ddb79d4204b118b9c913169">XRAN_BW_70_0_MHZ</a> = 70,</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9ad49cca1191fc91dd0e54717304dd7526">   40</a></span>&#160;    <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9af8bd3316418b620a4faed776b3526060">XRAN_BW_80_0_MHZ</a> = 80, <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9ad49cca1191fc91dd0e54717304dd7526">XRAN_BW_90_0_MHZ</a> = 90, <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a74e3adf2f47cbea3b1969d0c2abf6b6d">XRAN_BW_100_0_MHZ</a> = 100, <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a47330264cd7945b7ec2aed5b87ebde87">XRAN_BW_200_0_MHZ</a> = 200, <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9ae5c86bacab2727a2aefd1ebede8b50bf">XRAN_BW_400_0_MHZ</a> = 400</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;};</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<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="l00044"></a><span class="lineno">   44</span>&#160;<span class="keyword">static</span> uint16_t <a class="code" href="gen__test_8m.html#a2b65d42365b9e14ae1c181cb883d93af">nNumRbsPerSymF1</a>[3][13] =</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="comment">//  5MHz    10MHz   15MHz   20 MHz  25 MHz  30 MHz  40 MHz  50MHz   60 MHz  70 MHz  80 MHz   90 MHz  100 MHz</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        {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="l00048"></a><span class="lineno">   48</span>&#160;        {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="l00049"></a><span class="lineno">   49</span>&#160;        {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="l00050"></a><span class="lineno">   50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<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="l00053"></a><span class="lineno">   53</span>&#160;<span class="keyword">static</span> uint16_t <a class="code" href="gen__test_8m.html#a220c0367b38ca34375ea822ff6aadfd9">nNumRbsPerSymF2</a>[2][4] =</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="comment">//  50Mhz  100MHz  200MHz   400MHz</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        {66,    132,    264,     0},        <span class="comment">// Numerology 2 (60KHz)</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        {32,    66,     132,     264}       <span class="comment">// Numerology 3 (120KHz)</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;};</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment">// 38.211 - Table 4.2.1</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keyword">static</span> uint16_t <a class="code" href="common_8c.html#a8734b8bf5121975264c578e7a875adf6">nSubCarrierSpacing</a>[5] =</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    15,     <span class="comment">// mu = 0</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    30,     <span class="comment">// mu = 1</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    60,     <span class="comment">// mu = 2</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    120,    <span class="comment">// mu = 3</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    240     <span class="comment">// mu = 4</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;};</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">// TTI interval in us (slot duration)</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="keyword">static</span> uint16_t <a class="code" href="common_8c.html#a2d77acfd0f679f0a8a73ef14abc706a9">nTtiInterval</a>[4] =</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    1000,    <span class="comment">// mu = 0</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    500,     <span class="comment">// mu = 1</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    250,     <span class="comment">// mu = 2</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    125,     <span class="comment">// mu = 3</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;};</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="comment">// F1 Tables 38.101-1 Table F.5.3. Window length for normal CP</span></div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="keyword">static</span> uint16_t <a class="code" href="common_8c.html#ad39b126a8b9123072b41967be14235ba">nCpSizeF1</a>[3][13][2] =</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;{</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="comment">//    5MHz      10MHz      15MHz       20 MHz      25 MHz     30 MHz      40 MHz       50MHz       60 MHz      70 MHz     80 MHz     90 MHz     100 MHz</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        {{40, 36}, {80, 72}, {120, 108}, {160, 144}, {160, 144}, {240, 216}, {320, 288}, {320, 288},     {0, 0},     {0, 0},     {0, 0},     {0, 0},     {0, 0}},        <span class="comment">// Numerology 0 (15KHz)</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        {{22, 18}, {44, 36},   {66, 54},   {88, 72},   {88, 72}, {132, 108}, {176, 144}, {176, 144}, {264, 216}, {264, 216}, {352, 288}, {352, 288}, {352, 288}},       <span class="comment">// Numerology 1 (30KHz)</span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        {  {0, 0}, {26, 18},   {39, 27},   {52, 36},   {52, 36},   {78, 54},  {104, 72},  {104, 72}, {156, 108}, {156, 108}, {208, 144}, {208, 144}, {208, 144}},       <span class="comment">// Numerology 2 (60KHz)</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="comment">// F2 Tables 38.101-2 Table F.5.3. Window length for normal CP</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="keyword">static</span> int16_t <a class="code" href="common_8c.html#a41b634e3c43560c0a29f60ddbf491d99">nCpSizeF2</a>[2][4][2] =</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;{</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="comment">//    50Mhz    100MHz      200MHz     400MHz</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        {  {0, 0}, {104, 72}, {208, 144}, {416, 288}}, <span class="comment">// Numerology 2 (60KHz)</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        {{68, 36}, {136, 72}, {272, 144}, {544, 288}}, <span class="comment">// Numerology 3 (120KHz)</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;};</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="keyword">static</span> uint32_t xran_fs_max_slot_num = 8000;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="keyword">static</span> uint32_t xran_fs_max_slot_num_SFN = 20480; <span class="comment">/* max slot number counted as SFN is 0-1023 */</span></div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="keyword">static</span> uint16_t xran_fs_num_slot_tdd_loop[<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#acd3869dff9738650c847e456c6ab21ae">XRAN_NUM_OF_SLOT_IN_TDD_LOOP</a> };</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="keyword">static</span> uint16_t xran_fs_num_dl_sym_sp[<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#acd3869dff9738650c847e456c6ab21ae">XRAN_NUM_OF_SLOT_IN_TDD_LOOP</a>] = {0};</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="keyword">static</span> uint16_t xran_fs_num_ul_sym_sp[<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#acd3869dff9738650c847e456c6ab21ae">XRAN_NUM_OF_SLOT_IN_TDD_LOOP</a>] = {0};</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="keyword">static</span> uint8_t xran_fs_slot_type[<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#acd3869dff9738650c847e456c6ab21ae">XRAN_NUM_OF_SLOT_IN_TDD_LOOP</a>] = {{<a class="code" href="xran__fh__o__du_8h.html#a81efa76a214d1fd1b9b409bdea15c87c">XRAN_SLOT_TYPE_INVALID</a>}};</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="keyword">static</span> uint8_t xran_fs_slot_symb_type[<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#acd3869dff9738650c847e456c6ab21ae">XRAN_NUM_OF_SLOT_IN_TDD_LOOP</a>][<a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>] = {{{<a class="code" href="xran__fh__o__du_8h.html#a81efa76a214d1fd1b9b409bdea15c87c">XRAN_SLOT_TYPE_INVALID</a>}}};</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="keyword">static</span> <span class="keywordtype">float</span> xran_fs_ul_rate[<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>] = {0.0};</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="keyword">static</span> <span class="keywordtype">float</span> xran_fs_dl_rate[<a class="code" href="xran__fh__o__du_8h.html#a34dbe5e515cc78b4ce26fa287e6c1edc">XRAN_MAX_SECTOR_NR</a>] = {0.0};</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="keyword">extern</span> uint16_t <a class="code" href="xran__frame__struct_8c.html#a7a25206e77e83a57fd036102cebfb4f0">xran_max_frame</a>;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="xran__frame__struct_8h.html#a8e8598556da3e49fa48cb646c24162fa">  108</a></span>&#160;uint32_t <a class="code" href="xran__frame__struct_8c.html#a8e8598556da3e49fa48cb646c24162fa">xran_fs_get_tti_interval</a>(uint8_t nMu)</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="keywordflow">if</span> (nMu &lt; 4)</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    {</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="common_8c.html#a2d77acfd0f679f0a8a73ef14abc706a9">nTtiInterval</a>[nMu];</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    }</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    {</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        printf(<span class="stringliteral">&quot;ERROR: %s Mu[%d] is not valid, setting to 0\n&quot;</span>,__FUNCTION__, nMu);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="common_8c.html#a2d77acfd0f679f0a8a73ef14abc706a9">nTtiInterval</a>[0];</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    }</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;}</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="xran__frame__struct_8h.html#a358977362c5bc0e3adc9f897994c0d09">  121</a></span>&#160;uint32_t <a class="code" href="xran__frame__struct_8c.html#a358977362c5bc0e3adc9f897994c0d09">xran_fs_get_scs</a>(uint8_t nMu)</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keywordflow">if</span> (nMu &lt;= 3)</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    {</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="common_8c.html#a8734b8bf5121975264c578e7a875adf6">nSubCarrierSpacing</a>[nMu];</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    }</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    {</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        printf(<span class="stringliteral">&quot;ERROR: %s Mu[%d] is not valid\n&quot;</span>,__FUNCTION__, nMu);</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    }</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;}</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="comment">//-------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="comment"></span><span class="comment">//-------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="xran__frame__struct_8h.html#adef530f5f3ebc94606c692d8784ddaf2">  149</a></span>&#160;uint16_t <a class="code" href="xran__frame__struct_8c.html#adef530f5f3ebc94606c692d8784ddaf2">xran_fs_get_num_rbs</a>(uint32_t nNumerology, uint32_t nBandwidth, uint32_t nAbsFrePointA)</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;{</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    uint32_t error = 1;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    uint16_t <a class="code" href="gen__test_8m.html#a887ee7a54247d19e5e93955a7b9663ae">numRBs</a> = 0;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="keywordflow">if</span> (nAbsFrePointA &lt;= 6000000)</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    {</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        <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="l00157"></a><span class="lineno">  157</span>&#160;        <span class="keywordflow">if</span> (nNumerology &lt; 3)</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        {</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;            <span class="keywordflow">switch</span>(nBandwidth)</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;            {</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9af1715c0daef0f54811ab8a87f42742ee">XRAN_BW_5_0_MHZ</a>:</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a2b65d42365b9e14ae1c181cb883d93af">nNumRbsPerSymF1</a>[nNumerology][0];</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                    error = 0;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a6962ae2a5f54f4e3ce9a149de814facd">XRAN_BW_10_0_MHZ</a>:</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a2b65d42365b9e14ae1c181cb883d93af">nNumRbsPerSymF1</a>[nNumerology][1];</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                    error = 0;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a6ad31835c019040e0e36910d47fcc516">XRAN_BW_15_0_MHZ</a>:</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a2b65d42365b9e14ae1c181cb883d93af">nNumRbsPerSymF1</a>[nNumerology][2];</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                    error = 0;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9afb339cd770ae4e049e8771c934eb803e">XRAN_BW_20_0_MHZ</a>:</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a2b65d42365b9e14ae1c181cb883d93af">nNumRbsPerSymF1</a>[nNumerology][3];</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                    error = 0;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a04f20811e9e1a6fadba19b332f363d01">XRAN_BW_25_0_MHZ</a>:</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a2b65d42365b9e14ae1c181cb883d93af">nNumRbsPerSymF1</a>[nNumerology][4];</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                    error = 0;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a46a890a929d9a17917fb95cfaed14d77">XRAN_BW_30_0_MHZ</a>:</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a2b65d42365b9e14ae1c181cb883d93af">nNumRbsPerSymF1</a>[nNumerology][5];</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                    error = 0;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a140d2813310b9a09102560d53c574f5d">XRAN_BW_40_0_MHZ</a>:</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a2b65d42365b9e14ae1c181cb883d93af">nNumRbsPerSymF1</a>[nNumerology][6];</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                    error = 0;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a0a6780597350044ee01ce150b95b9d13">XRAN_BW_50_0_MHZ</a>:</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a2b65d42365b9e14ae1c181cb883d93af">nNumRbsPerSymF1</a>[nNumerology][7];</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                    error = 0;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a3d0d107fb6cbe02dd80119161f686d3e">XRAN_BW_60_0_MHZ</a>:</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a2b65d42365b9e14ae1c181cb883d93af">nNumRbsPerSymF1</a>[nNumerology][8];</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                    error = 0;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9af4a58d303ddb79d4204b118b9c913169">XRAN_BW_70_0_MHZ</a>:</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a2b65d42365b9e14ae1c181cb883d93af">nNumRbsPerSymF1</a>[nNumerology][9];</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;                    error = 0;</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9af8bd3316418b620a4faed776b3526060">XRAN_BW_80_0_MHZ</a>:</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a2b65d42365b9e14ae1c181cb883d93af">nNumRbsPerSymF1</a>[nNumerology][10];</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;                    error = 0;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9ad49cca1191fc91dd0e54717304dd7526">XRAN_BW_90_0_MHZ</a>:</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a2b65d42365b9e14ae1c181cb883d93af">nNumRbsPerSymF1</a>[nNumerology][11];</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                    error = 0;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a74e3adf2f47cbea3b1969d0c2abf6b6d">XRAN_BW_100_0_MHZ</a>:</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a2b65d42365b9e14ae1c181cb883d93af">nNumRbsPerSymF1</a>[nNumerology][12];</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;                    error = 0;</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;                <span class="keywordflow">default</span>:</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;                    error = 1;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;            }</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        }</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    }</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    {</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        <span class="keywordflow">if</span> ((nNumerology &gt;= 2) &amp;&amp; (nNumerology &lt;= 3))</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        {</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;            <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="l00224"></a><span class="lineno">  224</span>&#160;            <span class="keywordflow">switch</span>(nBandwidth)</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;            {</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a0a6780597350044ee01ce150b95b9d13">XRAN_BW_50_0_MHZ</a>:</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a220c0367b38ca34375ea822ff6aadfd9">nNumRbsPerSymF2</a>[nNumerology-2][0];</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;                    error = 0;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a74e3adf2f47cbea3b1969d0c2abf6b6d">XRAN_BW_100_0_MHZ</a>:</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a220c0367b38ca34375ea822ff6aadfd9">nNumRbsPerSymF2</a>[nNumerology-2][1];</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;                    error = 0;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a47330264cd7945b7ec2aed5b87ebde87">XRAN_BW_200_0_MHZ</a>:</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a220c0367b38ca34375ea822ff6aadfd9">nNumRbsPerSymF2</a>[nNumerology-2][2];</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;                    error = 0;</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9ae5c86bacab2727a2aefd1ebede8b50bf">XRAN_BW_400_0_MHZ</a>:</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;                    numRBs = <a class="code" href="gen__test_8m.html#a220c0367b38ca34375ea822ff6aadfd9">nNumRbsPerSymF2</a>[nNumerology-2][3];</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;                    error = 0;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;                <span class="keywordflow">default</span>:</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;                    error = 1;</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;            }</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        }</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    }</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    <span class="keywordflow">if</span> (error)</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    {</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;        printf(<span class="stringliteral">&quot;ERROR: %s: nNumerology[%d] nBandwidth[%d] nAbsFrePointA[%d]\n&quot;</span>,__FUNCTION__, nNumerology, nBandwidth, nAbsFrePointA);</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    }</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    {</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        printf(<span class="stringliteral">&quot;%s: nNumerology[%d] nBandwidth[%d] nAbsFrePointA[%d] numRBs[%d]\n&quot;</span>,__FUNCTION__, nNumerology, nBandwidth, nAbsFrePointA, numRBs);</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    }</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="gen__test_8m.html#a887ee7a54247d19e5e93955a7b9663ae">numRBs</a>;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;}</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;<span class="comment">//-------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;<span class="comment"></span><span class="comment">//-------------------------------------------------------------------------------------------</span></div><div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="xran__frame__struct_8h.html#acc4fa9a039885a36bec7d1f6b68de1b0">  274</a></span>&#160;uint32_t <a class="code" href="xran__frame__struct_8c.html#acc4fa9a039885a36bec7d1f6b68de1b0">xran_fs_cal_nrarfcn</a>(uint32_t nCenterFreq)</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;{</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    uint32_t nDeltaFglobal,nFoffs,nNoffs;</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    uint32_t nNRARFCN = 0;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    <span class="keywordflow">if</span>(nCenterFreq &gt; 0 &amp;&amp; nCenterFreq &lt; 3000*1000)</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    {</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        nDeltaFglobal = 5;</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        nFoffs = 0;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        nNoffs = 0;</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;    }</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span>(nCenterFreq &gt;= 3000*1000 &amp;&amp; nCenterFreq &lt; 24250*1000)</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    {</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        nDeltaFglobal = 15;</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        nFoffs = 3000*1000;</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        nNoffs = 600000;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    }</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span>(nCenterFreq &gt;= 24250*1000 &amp;&amp; nCenterFreq &lt;= 100000*1000)</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    {</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        nDeltaFglobal = 60;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;        nFoffs = 24250080;</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        nNoffs = 2016667;</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    }</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    {</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;         printf(<span class="stringliteral">&quot;@@@@ incorrect center frerquency %d\n&quot;</span>,nCenterFreq);</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;         <span class="keywordflow">return</span> (0);</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    }</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    nNRARFCN = ((nCenterFreq - nFoffs)/nDeltaFglobal) + nNoffs;</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    printf(<span class="stringliteral">&quot;%s: nCenterFreq[%d] nDeltaFglobal[%d] nFoffs[%d] nNoffs[%d] nNRARFCN[%d]\n&quot;</span>, __FUNCTION__, nCenterFreq, nDeltaFglobal, nFoffs, nNoffs, nNRARFCN);</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    <span class="keywordflow">return</span> (nNRARFCN);</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;}</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="xran__frame__struct_8h.html#a2fd9b68ce2fa4734a021203b320e4e04">  309</a></span>&#160;uint32_t  <a class="code" href="xran__frame__struct_8c.html#a2fd9b68ce2fa4734a021203b320e4e04">xran_fs_slot_limit_init</a>(int32_t tti_interval_us)</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;{</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    xran_fs_max_slot_num = (1000/tti_interval_us)*1000;</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    xran_fs_max_slot_num_SFN = (1000/tti_interval_us)*(<a class="code" href="xran__frame__struct_8c.html#a7a25206e77e83a57fd036102cebfb4f0">xran_max_frame</a>+1)*10;</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    <span class="keywordflow">return</span> xran_fs_max_slot_num;</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;}</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="xran__frame__struct_8h.html#a7f5a87395d3930f222e58976960c99e2">  316</a></span>&#160;uint32_t <a class="code" href="xran__frame__struct_8c.html#a7f5a87395d3930f222e58976960c99e2">xran_fs_get_max_slot</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;{</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    <span class="keywordflow">return</span> xran_fs_max_slot_num;</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;}</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="xran__frame__struct_8h.html#a00aa0f7cc00a6ca9cde2bec43eb1c9f9">  321</a></span>&#160;uint32_t <a class="code" href="xran__frame__struct_8c.html#a00aa0f7cc00a6ca9cde2bec43eb1c9f9">xran_fs_get_max_slot_SFN</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;{</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    <span class="keywordflow">return</span> xran_fs_max_slot_num_SFN;</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;}</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="xran__frame__struct_8h.html#a2dae6c563c553fcc13a9cd3c87b9f37b">  326</a></span>&#160;int32_t <a class="code" href="xran__frame__struct_8c.html#ac81b5cb02d886c3eb9e7f006ea1f62f4">xran_fs_slot_limit</a>(int32_t nSfIdx)</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;{</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;    <span class="keywordflow">while</span> (nSfIdx &lt; 0) {</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        nSfIdx += xran_fs_max_slot_num;</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    }</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    <span class="keywordflow">while</span> (nSfIdx &gt;= xran_fs_max_slot_num) {</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;        nSfIdx -= xran_fs_max_slot_num;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    }</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;    <span class="keywordflow">return</span> nSfIdx;</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;}</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="xran__frame__struct_8h.html#a74a51cc251882612b53feb4895bcab61">  339</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="xran__frame__struct_8c.html#a907e2367ffa2ddb6776aad8e15715a3a">xran_fs_clear_slot_type</a>(uint32_t nPhyInstanceId)</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;{</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    xran_fs_ul_rate[nPhyInstanceId] = 0.0;</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    xran_fs_dl_rate[nPhyInstanceId] = 0.0;</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;    xran_fs_num_slot_tdd_loop[nPhyInstanceId] = 1;</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;}</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="xran__frame__struct_8h.html#a93baa96226b7790c8db4942f304269fc">  346</a></span>&#160;int32_t <a class="code" href="xran__frame__struct_8c.html#a075025c7652869adb79799313aab4f64">xran_fs_set_slot_type</a>(uint32_t nPhyInstanceId, uint32_t nFrameDuplexType, uint32_t nTddPeriod, <span class="keyword">struct</span> <a class="code" href="structxran__slot__config.html">xran_slot_config</a>* psSlotConfig)</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;{</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    uint32_t nSlotNum, nSymNum, nVal, i, j;</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;    uint32_t numDlSym, numUlSym, numGuardSym;</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    uint32_t numDlSlots = 0, numUlSlots = 0, numSpDlSlots = 0, numSpUlSlots = 0, numSpSlots = 0;</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;    <span class="keywordtype">char</span> sSlotPattern[<a class="code" href="xran__fh__o__du_8h.html#a581b66d2fea333f0a2e9ca3f9589fd89">XRAN_SLOT_TYPE_LAST</a>][10] = {<span class="stringliteral">&quot;IN\0&quot;</span>, <span class="stringliteral">&quot;DL\0&quot;</span>, <span class="stringliteral">&quot;UL\0&quot;</span>, <span class="stringliteral">&quot;SP\0&quot;</span>, <span class="stringliteral">&quot;FD\0&quot;</span>};</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    <span class="comment">// nPhyInstanceId    Carrier ID</span></div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    <span class="comment">// nFrameDuplexType  0 = FDD 1 = TDD</span></div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    <span class="comment">// nTddPeriod        Tdd Periodicity</span></div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    <span class="comment">// psSlotConfig[80]  Slot Config Structure for nTddPeriod Slots</span></div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;    xran_fs_ul_rate[nPhyInstanceId] = 0.0;</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;    xran_fs_dl_rate[nPhyInstanceId] = 0.0;</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    xran_fs_num_slot_tdd_loop[nPhyInstanceId] = nTddPeriod;</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;    <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="xran__fh__o__du_8h.html#acd3869dff9738650c847e456c6ab21ae">XRAN_NUM_OF_SLOT_IN_TDD_LOOP</a>; i++)</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    {</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;        xran_fs_slot_type[nPhyInstanceId][i] = <a class="code" href="xran__fh__o__du_8h.html#a81efa76a214d1fd1b9b409bdea15c87c">XRAN_SLOT_TYPE_INVALID</a>;</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        xran_fs_num_dl_sym_sp[nPhyInstanceId][i] = 0;</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        xran_fs_num_ul_sym_sp[nPhyInstanceId][i] = 0;</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;    }</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;    <span class="keywordflow">if</span> (nFrameDuplexType == <a class="code" href="xran__fh__o__du_8h.html#a1784f85d62401cba0ffb49c4d2467aaea852ad6bfdec7d14a64425c01c16d00c0">XRAN_FDD</a>)</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    {</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="xran__fh__o__du_8h.html#acd3869dff9738650c847e456c6ab21ae">XRAN_NUM_OF_SLOT_IN_TDD_LOOP</a>; i++)</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        {</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;            xran_fs_slot_type[nPhyInstanceId][i] = <a class="code" href="xran__fh__o__du_8h.html#ad997c19049d5e80611e4360b1ed79b80">XRAN_SLOT_TYPE_FDD</a>;</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;            <span class="keywordflow">for</span>(j = 0; j &lt; <a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>; j++)</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;              xran_fs_slot_symb_type[nPhyInstanceId][i][j] = <a class="code" href="xran__fh__o__du_8h.html#ac7915d813606499af39f5e952391fded">XRAN_SYMBOL_TYPE_FDD</a>;</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;        }</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        xran_fs_num_slot_tdd_loop[nPhyInstanceId] = 1;</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        xran_fs_dl_rate[nPhyInstanceId] = 1.0;</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;        xran_fs_ul_rate[nPhyInstanceId] = 1.0;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    }</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    {</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        <span class="keywordflow">for</span> (nSlotNum = 0; nSlotNum &lt; nTddPeriod; nSlotNum++)</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;        {</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;            numDlSym = 0;</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;            numUlSym = 0;</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;            numGuardSym = 0;</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;            <span class="keywordflow">for</span> (nSymNum = 0; nSymNum &lt; <a class="code" href="xran__fh__o__du_8h.html#a87d92ec177ed9c388685a91051f66205">XRAN_NUM_OF_SYMBOL_PER_SLOT</a>; nSymNum++)</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;            {</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;                <span class="keywordflow">switch</span>(psSlotConfig[nSlotNum].nSymbolType[nSymNum])</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;                {</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;                    <span class="keywordflow">case</span> <a class="code" href="xran__fh__o__du_8h.html#aa7db41b67e2cd3be904b7332d8df6657">XRAN_SYMBOL_TYPE_DL</a>:</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;                        numDlSym++;</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;                        xran_fs_slot_symb_type[nPhyInstanceId][nSlotNum][nSymNum] = <a class="code" href="xran__fh__o__du_8h.html#aa7db41b67e2cd3be904b7332d8df6657">XRAN_SYMBOL_TYPE_DL</a>;</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;                    <span class="keywordflow">case</span> <a class="code" href="xran__fh__o__du_8h.html#a0e0df6a907cf2724cf3e531d7f18fb3c">XRAN_SYMBOL_TYPE_GUARD</a>:</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;                        xran_fs_slot_symb_type[nPhyInstanceId][nSlotNum][nSymNum] = <a class="code" href="xran__fh__o__du_8h.html#a0e0df6a907cf2724cf3e531d7f18fb3c">XRAN_SYMBOL_TYPE_GUARD</a>;</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;                        numGuardSym++;</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;                    <span class="keywordflow">default</span>:</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;                        xran_fs_slot_symb_type[nPhyInstanceId][nSlotNum][nSymNum] = <a class="code" href="xran__fh__o__du_8h.html#a78bce62effeb80d1e2bda74c6ee3d5f4">XRAN_SYMBOL_TYPE_UL</a>;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;                        numUlSym++;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;                }</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;            }</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;            <a class="code" href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a>(<span class="stringliteral">&quot;nSlotNum[%d] : numDlSym[%d] numGuardSym[%d] numUlSym[%d] &quot;</span>, nSlotNum, numDlSym, numGuardSym, numUlSym);</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;            <span class="keywordflow">if</span> ((numUlSym == 0) &amp;&amp; (numGuardSym == 0))</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;            {</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;                xran_fs_slot_type[nPhyInstanceId][nSlotNum] = <a class="code" href="xran__fh__o__du_8h.html#a3640d50cafb5ccc15b73219309f60a3b">XRAN_SLOT_TYPE_DL</a>;</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;                numDlSlots++;</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;                <a class="code" href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a>(<span class="stringliteral">&quot;XRAN_SLOT_TYPE_DL\n&quot;</span>);</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;            }</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((numDlSym == 0) &amp;&amp; (numGuardSym == 0))</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;            {</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;                xran_fs_slot_type[nPhyInstanceId][nSlotNum] = <a class="code" href="xran__fh__o__du_8h.html#a3167443dbf786f9b87a133119a8f69e8">XRAN_SLOT_TYPE_UL</a>;</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;                numUlSlots++;</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;                <a class="code" href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a>(<span class="stringliteral">&quot;XRAN_SLOT_TYPE_UL\n&quot;</span>);</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;            }</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;            <span class="keywordflow">else</span></div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;            {</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;                xran_fs_slot_type[nPhyInstanceId][nSlotNum] = <a class="code" href="xran__fh__o__du_8h.html#a37ddab95bdd53de1ee17a3607a183eae">XRAN_SLOT_TYPE_SP</a>;</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;                numSpSlots++;</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;                <a class="code" href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a>(<span class="stringliteral">&quot;XRAN_SLOT_TYPE_SP\n&quot;</span>);</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;                <span class="keywordflow">if</span> (numDlSym)</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;                {</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;                    numSpDlSlots++;</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;                    xran_fs_num_dl_sym_sp[nPhyInstanceId][nSlotNum] = numDlSym;</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;                }</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;                <span class="keywordflow">if</span> (numUlSym)</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;                {</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;                    numSpUlSlots++;</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;                    xran_fs_num_ul_sym_sp[nPhyInstanceId][nSlotNum] = numUlSym;</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;                }</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;            }</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;            <a class="code" href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a>(<span class="stringliteral">&quot;            numDlSlots[%d] numUlSlots[%d] numSpSlots[%d] numSpDlSlots[%d] numSpUlSlots[%d]\n&quot;</span>, numDlSlots, numUlSlots, numSpSlots, numSpDlSlots, numSpUlSlots);</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;        }</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;        xran_fs_dl_rate[nPhyInstanceId] = (float)(numDlSlots + numSpDlSlots) / (float)nTddPeriod;</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;        xran_fs_ul_rate[nPhyInstanceId] = (float)(numUlSlots + numSpUlSlots) / (float)nTddPeriod;</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    }</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    <a class="code" href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a>(<span class="stringliteral">&quot;%s: nPhyInstanceId[%d] nFrameDuplexType[%d], nTddPeriod[%d]\n&quot;</span>,</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;        __FUNCTION__, nPhyInstanceId, nFrameDuplexType, nTddPeriod);</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    <a class="code" href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a>(<span class="stringliteral">&quot;DLRate[%f] ULRate[%f]\n&quot;</span>, xran_fs_dl_rate[nPhyInstanceId], xran_fs_ul_rate[nPhyInstanceId]);</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    nVal = (xran_fs_num_slot_tdd_loop[nPhyInstanceId] &lt; 10) ? xran_fs_num_slot_tdd_loop[nPhyInstanceId] : 10;</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;    <a class="code" href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a>(<span class="stringliteral">&quot;SlotPattern:\n&quot;</span>);</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    <a class="code" href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a>(<span class="stringliteral">&quot;Slot:   &quot;</span>);</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    <span class="keywordflow">for</span> (nSlotNum = 0; nSlotNum &lt; nVal; nSlotNum++)</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;    {</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;        <a class="code" href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a>(<span class="stringliteral">&quot;%d    &quot;</span>, nSlotNum);</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    }</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;    <a class="code" href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a>(<span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    <a class="code" href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a>(<span class="stringliteral">&quot;  %3d   &quot;</span>, 0);</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;    <span class="keywordflow">for</span> (nSlotNum = 0, i = 0; nSlotNum &lt; xran_fs_num_slot_tdd_loop[nPhyInstanceId]; nSlotNum++)</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;    {</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;        <a class="code" href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a>(<span class="stringliteral">&quot;%s   &quot;</span>, sSlotPattern[xran_fs_slot_type[nPhyInstanceId][nSlotNum]]);</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;        i++;</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;        <span class="keywordflow">if</span> ((i == 10) &amp;&amp; ((nSlotNum+1) &lt; xran_fs_num_slot_tdd_loop[nPhyInstanceId]))</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;        {</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;            <a class="code" href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a>(<span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;            <a class="code" href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a>(<span class="stringliteral">&quot;  %3d   &quot;</span>, nSlotNum);</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;            i = 0;</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;        }</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;    }</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    <a class="code" href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a>(<span class="stringliteral">&quot;\n\n&quot;</span>);</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;}</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="xran__frame__struct_8h.html#a9cc99d80a722f6afd2aaf6c6bd2e8887">  477</a></span>&#160;int32_t <a class="code" href="xran__frame__struct_8c.html#a875ef2ff0c44ad26c75bebe2a4732c80">xran_fs_get_slot_type</a>(int32_t nCellIdx, int32_t nSlotdx, int32_t nType)</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;{</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    int32_t nSfIdxMod, nSfType, ret = 0;</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;    nSfIdxMod = <a class="code" href="xran__frame__struct_8c.html#ac81b5cb02d886c3eb9e7f006ea1f62f4">xran_fs_slot_limit</a>(nSlotdx) % ((xran_fs_num_slot_tdd_loop[nCellIdx] &gt; 0) ? xran_fs_num_slot_tdd_loop[nCellIdx]: 1);</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    nSfType = xran_fs_slot_type[nCellIdx][nSfIdxMod];</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    <span class="keywordflow">if</span> (nSfType == nType)</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    {</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        ret = 1;</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    }</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (nSfType == <a class="code" href="xran__fh__o__du_8h.html#a37ddab95bdd53de1ee17a3607a183eae">XRAN_SLOT_TYPE_SP</a>)</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    {</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;        <span class="keywordflow">if</span> ((nType == <a class="code" href="xran__fh__o__du_8h.html#a3640d50cafb5ccc15b73219309f60a3b">XRAN_SLOT_TYPE_DL</a>) &amp;&amp; xran_fs_num_dl_sym_sp[nCellIdx][nSfIdxMod])</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;        {</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;            ret = 1;</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;        }</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;        <span class="keywordflow">if</span> ((nType == <a class="code" href="xran__fh__o__du_8h.html#a3167443dbf786f9b87a133119a8f69e8">XRAN_SLOT_TYPE_UL</a>) &amp;&amp; xran_fs_num_ul_sym_sp[nCellIdx][nSfIdxMod])</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;        {</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;            ret = 1;</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;        }</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    }</div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (nSfType == <a class="code" href="xran__fh__o__du_8h.html#ad997c19049d5e80611e4360b1ed79b80">XRAN_SLOT_TYPE_FDD</a>)</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;    {</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;        ret = 1;</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;    }</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;    <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;}</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="xran__frame__struct_8h.html#a3ad2b8ea8fe3559ce6d0195ed25dca11">  508</a></span>&#160;int32_t <a class="code" href="xran__frame__struct_8c.html#a3ad2b8ea8fe3559ce6d0195ed25dca11">xran_fs_get_symbol_type</a>(int32_t nCellIdx, int32_t nSlotdx,  int32_t nSymbIdx)</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;{</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;    int32_t nSfIdxMod, nSfType, ret = 0;</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    nSfIdxMod = <a class="code" href="xran__frame__struct_8c.html#ac81b5cb02d886c3eb9e7f006ea1f62f4">xran_fs_slot_limit</a>(nSlotdx) % ((xran_fs_num_slot_tdd_loop[nCellIdx] &gt; 0) ? xran_fs_num_slot_tdd_loop[nCellIdx]: 1);</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;    <span class="keywordflow">return</span> xran_fs_slot_symb_type[nCellIdx][nSfIdxMod][nSymbIdx];</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;}</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;</div><div class="ttc" id="xran__frame__struct_8c_html_a7f5a87395d3930f222e58976960c99e2"><div class="ttname"><a href="xran__frame__struct_8c.html#a7f5a87395d3930f222e58976960c99e2">xran_fs_get_max_slot</a></div><div class="ttdeci">uint32_t xran_fs_get_max_slot(void)</div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00316">xran_frame_struct.c:316</a></div></div>
71 <div class="ttc" id="xran__fh__o__du_8h_html_a0e0df6a907cf2724cf3e531d7f18fb3c"><div class="ttname"><a href="xran__fh__o__du_8h.html#a0e0df6a907cf2724cf3e531d7f18fb3c">XRAN_SYMBOL_TYPE_GUARD</a></div><div class="ttdeci">#define XRAN_SYMBOL_TYPE_GUARD</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00148">xran_fh_o_du.h:148</a></div></div>
72 <div class="ttc" id="xran__fh__o__du_8h_html_a78bce62effeb80d1e2bda74c6ee3d5f4"><div class="ttname"><a href="xran__fh__o__du_8h.html#a78bce62effeb80d1e2bda74c6ee3d5f4">XRAN_SYMBOL_TYPE_UL</a></div><div class="ttdeci">#define XRAN_SYMBOL_TYPE_UL</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00147">xran_fh_o_du.h:147</a></div></div>
73 <div class="ttc" id="xran__fh__o__du_8h_html_a581b66d2fea333f0a2e9ca3f9589fd89"><div class="ttname"><a href="xran__fh__o__du_8h.html#a581b66d2fea333f0a2e9ca3f9589fd89">XRAN_SLOT_TYPE_LAST</a></div><div class="ttdeci">#define XRAN_SLOT_TYPE_LAST</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00143">xran_fh_o_du.h:143</a></div></div>
74 <div class="ttc" id="xran__printf_8h_html_a417ba2c3b49b216e358bc340346bf1cf"><div class="ttname"><a href="xran__printf_8h.html#a417ba2c3b49b216e358bc340346bf1cf">print_dbg</a></div><div class="ttdeci">#define print_dbg(fmt, args...)</div><div class="ttdef"><b>Definition:</b> <a href="xran__printf_8h_source.html#l00054">xran_printf.h:54</a></div></div>
75 <div class="ttc" id="xran__frame__struct_8c_html_a2fd9b68ce2fa4734a021203b320e4e04"><div class="ttname"><a href="xran__frame__struct_8c.html#a2fd9b68ce2fa4734a021203b320e4e04">xran_fs_slot_limit_init</a></div><div class="ttdeci">uint32_t xran_fs_slot_limit_init(int32_t tti_interval_us)</div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00309">xran_frame_struct.c:309</a></div></div>
76 <div class="ttc" id="gen__test_8m_html_a2b65d42365b9e14ae1c181cb883d93af"><div class="ttname"><a href="gen__test_8m.html#a2b65d42365b9e14ae1c181cb883d93af">nNumRbsPerSymF1</a></div><div class="ttdeci">MHz MHz MHz MHz MHz MHz MHz MHz MHz nNumRbsPerSymF1</div><div class="ttdef"><b>Definition:</b> <a href="gen__test_8m_source.html#l00013">gen_test.m:13</a></div></div>
77 <div class="ttc" id="xran__fh__o__du_8h_html_a3640d50cafb5ccc15b73219309f60a3b"><div class="ttname"><a href="xran__fh__o__du_8h.html#a3640d50cafb5ccc15b73219309f60a3b">XRAN_SLOT_TYPE_DL</a></div><div class="ttdeci">#define XRAN_SLOT_TYPE_DL</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00139">xran_fh_o_du.h:139</a></div></div>
78 <div class="ttc" id="xran__frame__struct_8c_html_adef530f5f3ebc94606c692d8784ddaf2"><div class="ttname"><a href="xran__frame__struct_8c.html#adef530f5f3ebc94606c692d8784ddaf2">xran_fs_get_num_rbs</a></div><div class="ttdeci">uint16_t xran_fs_get_num_rbs(uint32_t nNumerology, uint32_t nBandwidth, uint32_t nAbsFrePointA)</div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00149">xran_frame_struct.c:149</a></div></div>
79 <div class="ttc" id="xran__frame__struct_8c_html_a6dc2f74f96bce0cce28b65f446b76bc9a04f20811e9e1a6fadba19b332f363d01"><div class="ttname"><a href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a04f20811e9e1a6fadba19b332f363d01">XRAN_BW_25_0_MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00038">xran_frame_struct.c:38</a></div></div>
80 <div class="ttc" id="gen__test_8m_html_a220c0367b38ca34375ea822ff6aadfd9"><div class="ttname"><a href="gen__test_8m.html#a220c0367b38ca34375ea822ff6aadfd9">nNumRbsPerSymF2</a></div><div class="ttdeci">nNumRbsPerSymF2</div><div class="ttdef"><b>Definition:</b> <a href="gen__test_8m_source.html#l00021">gen_test.m:21</a></div></div>
81 <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>
82 <div class="ttc" id="xran__frame__struct_8c_html_a6dc2f74f96bce0cce28b65f446b76bc9a47330264cd7945b7ec2aed5b87ebde87"><div class="ttname"><a href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a47330264cd7945b7ec2aed5b87ebde87">XRAN_BW_200_0_MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00040">xran_frame_struct.c:40</a></div></div>
83 <div class="ttc" id="gen__test_8m_html_a887ee7a54247d19e5e93955a7b9663ae"><div class="ttname"><a href="gen__test_8m.html#a887ee7a54247d19e5e93955a7b9663ae">numRBs</a></div><div class="ttdeci">numRBs</div><div class="ttdef"><b>Definition:</b> <a href="gen__test_8m_source.html#l00096">gen_test.m:96</a></div></div>
84 <div class="ttc" id="xran__frame__struct_8c_html_a6dc2f74f96bce0cce28b65f446b76bc9af1715c0daef0f54811ab8a87f42742ee"><div class="ttname"><a href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9af1715c0daef0f54811ab8a87f42742ee">XRAN_BW_5_0_MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00038">xran_frame_struct.c:38</a></div></div>
85 <div class="ttc" id="xran__frame__struct_8c_html_a6dc2f74f96bce0cce28b65f446b76bc9"><div class="ttname"><a href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9">nXranChBwOptions</a></div><div class="ttdeci">nXranChBwOptions</div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00036">xran_frame_struct.c:36</a></div></div>
86 <div class="ttc" id="xran__fh__o__du_8h_html_acd3869dff9738650c847e456c6ab21ae"><div class="ttname"><a href="xran__fh__o__du_8h.html#acd3869dff9738650c847e456c6ab21ae">XRAN_NUM_OF_SLOT_IN_TDD_LOOP</a></div><div class="ttdeci">#define XRAN_NUM_OF_SLOT_IN_TDD_LOOP</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00151">xran_fh_o_du.h:151</a></div></div>
87 <div class="ttc" id="xran__frame__struct_8c_html_a8e8598556da3e49fa48cb646c24162fa"><div class="ttname"><a href="xran__frame__struct_8c.html#a8e8598556da3e49fa48cb646c24162fa">xran_fs_get_tti_interval</a></div><div class="ttdeci">uint32_t xran_fs_get_tti_interval(uint8_t nMu)</div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00108">xran_frame_struct.c:108</a></div></div>
88 <div class="ttc" id="xran__frame__struct_8c_html_a6dc2f74f96bce0cce28b65f446b76bc9a6ad31835c019040e0e36910d47fcc516"><div class="ttname"><a href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a6ad31835c019040e0e36910d47fcc516">XRAN_BW_15_0_MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00038">xran_frame_struct.c:38</a></div></div>
89 <div class="ttc" id="xran__frame__struct_8c_html_a6dc2f74f96bce0cce28b65f446b76bc9a140d2813310b9a09102560d53c574f5d"><div class="ttname"><a href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a140d2813310b9a09102560d53c574f5d">XRAN_BW_40_0_MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00039">xran_frame_struct.c:39</a></div></div>
90 <div class="ttc" id="xran__frame__struct_8c_html_a7a25206e77e83a57fd036102cebfb4f0"><div class="ttname"><a href="xran__frame__struct_8c.html#a7a25206e77e83a57fd036102cebfb4f0">xran_max_frame</a></div><div class="ttdeci">uint16_t xran_max_frame</div><div class="ttdef"><b>Definition:</b> <a href="xran__main_8c_source.html#l00116">xran_main.c:116</a></div></div>
91 <div class="ttc" id="xran__fh__o__du_8h_html_a81efa76a214d1fd1b9b409bdea15c87c"><div class="ttname"><a href="xran__fh__o__du_8h.html#a81efa76a214d1fd1b9b409bdea15c87c">XRAN_SLOT_TYPE_INVALID</a></div><div class="ttdeci">#define XRAN_SLOT_TYPE_INVALID</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00138">xran_fh_o_du.h:138</a></div></div>
92 <div class="ttc" id="common_8c_html_a41b634e3c43560c0a29f60ddbf491d99"><div class="ttname"><a href="common_8c.html#a41b634e3c43560c0a29f60ddbf491d99">nCpSizeF2</a></div><div class="ttdeci">int16_t nCpSizeF2[2][4][2]</div><div class="ttdef"><b>Definition:</b> <a href="common_8c_source.html#l00147">common.c:147</a></div></div>
93 <div class="ttc" id="xran__frame__struct_8c_html_a6dc2f74f96bce0cce28b65f446b76bc9a6962ae2a5f54f4e3ce9a149de814facd"><div class="ttname"><a href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a6962ae2a5f54f4e3ce9a149de814facd">XRAN_BW_10_0_MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00038">xran_frame_struct.c:38</a></div></div>
94 <div class="ttc" id="xran__frame__struct_8c_html_a075025c7652869adb79799313aab4f64"><div class="ttname"><a href="xran__frame__struct_8c.html#a075025c7652869adb79799313aab4f64">xran_fs_set_slot_type</a></div><div class="ttdeci">int32_t xran_fs_set_slot_type(uint32_t nPhyInstanceId, uint32_t nFrameDuplexType, uint32_t nTddPeriod, struct xran_slot_config *psSlotConfig)</div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00346">xran_frame_struct.c:346</a></div></div>
95 <div class="ttc" id="xran__frame__struct_8c_html_a6dc2f74f96bce0cce28b65f446b76bc9af8bd3316418b620a4faed776b3526060"><div class="ttname"><a href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9af8bd3316418b620a4faed776b3526060">XRAN_BW_80_0_MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00040">xran_frame_struct.c:40</a></div></div>
96 <div class="ttc" id="xran__frame__struct_8c_html_acc4fa9a039885a36bec7d1f6b68de1b0"><div class="ttname"><a href="xran__frame__struct_8c.html#acc4fa9a039885a36bec7d1f6b68de1b0">xran_fs_cal_nrarfcn</a></div><div class="ttdeci">uint32_t xran_fs_cal_nrarfcn(uint32_t nCenterFreq)</div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00274">xran_frame_struct.c:274</a></div></div>
97 <div class="ttc" id="xran__frame__struct_8c_html_a00aa0f7cc00a6ca9cde2bec43eb1c9f9"><div class="ttname"><a href="xran__frame__struct_8c.html#a00aa0f7cc00a6ca9cde2bec43eb1c9f9">xran_fs_get_max_slot_SFN</a></div><div class="ttdeci">uint32_t xran_fs_get_max_slot_SFN(void)</div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00321">xran_frame_struct.c:321</a></div></div>
98 <div class="ttc" id="xran__frame__struct_8c_html_a6dc2f74f96bce0cce28b65f446b76bc9ad49cca1191fc91dd0e54717304dd7526"><div class="ttname"><a href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9ad49cca1191fc91dd0e54717304dd7526">XRAN_BW_90_0_MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00040">xran_frame_struct.c:40</a></div></div>
99 <div class="ttc" id="xran__fh__o__du_8h_html_a1784f85d62401cba0ffb49c4d2467aaea852ad6bfdec7d14a64425c01c16d00c0"><div class="ttname"><a href="xran__fh__o__du_8h.html#a1784f85d62401cba0ffb49c4d2467aaea852ad6bfdec7d14a64425c01c16d00c0">XRAN_FDD</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00186">xran_fh_o_du.h:186</a></div></div>
100 <div class="ttc" id="common_8c_html_a2d77acfd0f679f0a8a73ef14abc706a9"><div class="ttname"><a href="common_8c.html#a2d77acfd0f679f0a8a73ef14abc706a9">nTtiInterval</a></div><div class="ttdeci">uint16_t nTtiInterval[4]</div><div class="ttdef"><b>Definition:</b> <a href="common_8c_source.html#l00128">common.c:128</a></div></div>
101 <div class="ttc" id="xran__frame__struct_8c_html_a358977362c5bc0e3adc9f897994c0d09"><div class="ttname"><a href="xran__frame__struct_8c.html#a358977362c5bc0e3adc9f897994c0d09">xran_fs_get_scs</a></div><div class="ttdeci">uint32_t xran_fs_get_scs(uint8_t nMu)</div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00121">xran_frame_struct.c:121</a></div></div>
102 <div class="ttc" id="xran__frame__struct_8c_html_a6dc2f74f96bce0cce28b65f446b76bc9af4a58d303ddb79d4204b118b9c913169"><div class="ttname"><a href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9af4a58d303ddb79d4204b118b9c913169">XRAN_BW_70_0_MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00039">xran_frame_struct.c:39</a></div></div>
103 <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>
104 <div class="ttc" id="xran__fh__o__du_8h_html_aa7db41b67e2cd3be904b7332d8df6657"><div class="ttname"><a href="xran__fh__o__du_8h.html#aa7db41b67e2cd3be904b7332d8df6657">XRAN_SYMBOL_TYPE_DL</a></div><div class="ttdeci">#define XRAN_SYMBOL_TYPE_DL</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00146">xran_fh_o_du.h:146</a></div></div>
105 <div class="ttc" id="xran__printf_8h_html"><div class="ttname"><a href="xran__printf_8h.html">xran_printf.h</a></div><div class="ttdoc">Modules provide debug prints and utility functions. </div></div>
106 <div class="ttc" id="xran__fh__o__du_8h_html_ad997c19049d5e80611e4360b1ed79b80"><div class="ttname"><a href="xran__fh__o__du_8h.html#ad997c19049d5e80611e4360b1ed79b80">XRAN_SLOT_TYPE_FDD</a></div><div class="ttdeci">#define XRAN_SLOT_TYPE_FDD</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00142">xran_fh_o_du.h:142</a></div></div>
107 <div class="ttc" id="common_8c_html_a8734b8bf5121975264c578e7a875adf6"><div class="ttname"><a href="common_8c.html#a8734b8bf5121975264c578e7a875adf6">nSubCarrierSpacing</a></div><div class="ttdeci">uint16_t nSubCarrierSpacing[5]</div><div class="ttdef"><b>Definition:</b> <a href="common_8c_source.html#l00118">common.c:118</a></div></div>
108 <div class="ttc" id="common_8c_html_ad39b126a8b9123072b41967be14235ba"><div class="ttname"><a href="common_8c.html#ad39b126a8b9123072b41967be14235ba">nCpSizeF1</a></div><div class="ttdeci">uint16_t nCpSizeF1[3][13][2]</div><div class="ttdef"><b>Definition:</b> <a href="common_8c_source.html#l00138">common.c:138</a></div></div>
109 <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>
110 <div class="ttc" id="xran__frame__struct_8c_html_a6dc2f74f96bce0cce28b65f446b76bc9afb339cd770ae4e049e8771c934eb803e"><div class="ttname"><a href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9afb339cd770ae4e049e8771c934eb803e">XRAN_BW_20_0_MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00038">xran_frame_struct.c:38</a></div></div>
111 <div class="ttc" id="xran__frame__struct_8c_html_ac81b5cb02d886c3eb9e7f006ea1f62f4"><div class="ttname"><a href="xran__frame__struct_8c.html#ac81b5cb02d886c3eb9e7f006ea1f62f4">xran_fs_slot_limit</a></div><div class="ttdeci">int32_t xran_fs_slot_limit(int32_t nSfIdx)</div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00326">xran_frame_struct.c:326</a></div></div>
112 <div class="ttc" id="xran__frame__struct_8c_html_a907e2367ffa2ddb6776aad8e15715a3a"><div class="ttname"><a href="xran__frame__struct_8c.html#a907e2367ffa2ddb6776aad8e15715a3a">xran_fs_clear_slot_type</a></div><div class="ttdeci">void xran_fs_clear_slot_type(uint32_t nPhyInstanceId)</div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00339">xran_frame_struct.c:339</a></div></div>
113 <div class="ttc" id="xran__fh__o__du_8h_html_a37ddab95bdd53de1ee17a3607a183eae"><div class="ttname"><a href="xran__fh__o__du_8h.html#a37ddab95bdd53de1ee17a3607a183eae">XRAN_SLOT_TYPE_SP</a></div><div class="ttdeci">#define XRAN_SLOT_TYPE_SP</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00141">xran_fh_o_du.h:141</a></div></div>
114 <div class="ttc" id="xran__frame__struct_8c_html_a6dc2f74f96bce0cce28b65f446b76bc9a74e3adf2f47cbea3b1969d0c2abf6b6d"><div class="ttname"><a href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a74e3adf2f47cbea3b1969d0c2abf6b6d">XRAN_BW_100_0_MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00040">xran_frame_struct.c:40</a></div></div>
115 <div class="ttc" id="structxran__slot__config_html"><div class="ttname"><a href="structxran__slot__config.html">xran_slot_config</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00453">xran_fh_o_du.h:453</a></div></div>
116 <div class="ttc" id="xran__frame__struct_8c_html_a6dc2f74f96bce0cce28b65f446b76bc9a0a6780597350044ee01ce150b95b9d13"><div class="ttname"><a href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a0a6780597350044ee01ce150b95b9d13">XRAN_BW_50_0_MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00039">xran_frame_struct.c:39</a></div></div>
117 <div class="ttc" id="xran__frame__struct_8c_html_a875ef2ff0c44ad26c75bebe2a4732c80"><div class="ttname"><a href="xran__frame__struct_8c.html#a875ef2ff0c44ad26c75bebe2a4732c80">xran_fs_get_slot_type</a></div><div class="ttdeci">int32_t xran_fs_get_slot_type(int32_t nCellIdx, int32_t nSlotdx, int32_t nType)</div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00477">xran_frame_struct.c:477</a></div></div>
118 <div class="ttc" id="xran__frame__struct_8c_html_a6dc2f74f96bce0cce28b65f446b76bc9ae5c86bacab2727a2aefd1ebede8b50bf"><div class="ttname"><a href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9ae5c86bacab2727a2aefd1ebede8b50bf">XRAN_BW_400_0_MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00040">xran_frame_struct.c:40</a></div></div>
119 <div class="ttc" id="xran__fh__o__du_8h_html_ac7915d813606499af39f5e952391fded"><div class="ttname"><a href="xran__fh__o__du_8h.html#ac7915d813606499af39f5e952391fded">XRAN_SYMBOL_TYPE_FDD</a></div><div class="ttdeci">#define XRAN_SYMBOL_TYPE_FDD</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00149">xran_fh_o_du.h:149</a></div></div>
120 <div class="ttc" id="xran__frame__struct_8c_html_a3ad2b8ea8fe3559ce6d0195ed25dca11"><div class="ttname"><a href="xran__frame__struct_8c.html#a3ad2b8ea8fe3559ce6d0195ed25dca11">xran_fs_get_symbol_type</a></div><div class="ttdeci">int32_t xran_fs_get_symbol_type(int32_t nCellIdx, int32_t nSlotdx, int32_t nSymbIdx)</div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00508">xran_frame_struct.c:508</a></div></div>
121 <div class="ttc" id="xran__frame__struct_8c_html_a6dc2f74f96bce0cce28b65f446b76bc9a3d0d107fb6cbe02dd80119161f686d3e"><div class="ttname"><a href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a3d0d107fb6cbe02dd80119161f686d3e">XRAN_BW_60_0_MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00039">xran_frame_struct.c:39</a></div></div>
122 <div class="ttc" id="xran__frame__struct_8c_html_a6dc2f74f96bce0cce28b65f446b76bc9a46a890a929d9a17917fb95cfaed14d77"><div class="ttname"><a href="xran__frame__struct_8c.html#a6dc2f74f96bce0cce28b65f446b76bc9a46a890a929d9a17917fb95cfaed14d77">XRAN_BW_30_0_MHZ</a></div><div class="ttdef"><b>Definition:</b> <a href="xran__frame__struct_8c_source.html#l00039">xran_frame_struct.c:39</a></div></div>
123 <div class="ttc" id="xran__fh__o__du_8h_html_a3167443dbf786f9b87a133119a8f69e8"><div class="ttname"><a href="xran__fh__o__du_8h.html#a3167443dbf786f9b87a133119a8f69e8">XRAN_SLOT_TYPE_UL</a></div><div class="ttdeci">#define XRAN_SLOT_TYPE_UL</div><div class="ttdef"><b>Definition:</b> <a href="xran__fh__o__du_8h_source.html#l00140">xran_fh_o_du.h:140</a></div></div>
124 </div><!-- fragment --></div><!-- contents -->
125 <!-- start footer part -->
126 <hr class="footer"/><address class="footer"><small>
127 Generated by &#160;<a href="http://www.doxygen.org/index.html">
128 <img class="footer" src="doxygen.png" alt="doxygen"/>
129 </a> 1.8.13
130 </small></address>
131 </body>
132 </html>