Docs and build updates along with prachCfgTableIdx completion 81/3581/1
authorBalaji Shankaran <balaji.shankaran@radisys.com>
Tue, 5 May 2020 12:10:06 +0000 (17:40 +0530)
committerBalaji Shankaran <balaji.shankaran@radisys.com>
Tue, 5 May 2020 12:10:10 +0000 (17:40 +0530)
Change-Id: I7629e58ac3fe152c5d3e2aa58a3dc9070b7f8afe
Signed-off-by: Balaji Shankaran <balaji.shankaran@radisys.com>
Dockerfile
Dockerfile-cu-stub
docs/ODUArch.jpg [new file with mode: 0644]
docs/overview.rst
src/5gnrsch/sch_utils.c
src/5gnrsch/sch_utils.h

index 738b44f..7536b59 100644 (file)
@@ -1,4 +1,4 @@
-FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu18-c-go:6-u18.04-nng as ubuntu
+FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu18-c-go:7-u18.04 as ubuntu
 
 ADD . /opt/o-du-l2
 WORKDIR /opt/o-du-l2
index afefba0..79acea3 100644 (file)
@@ -1,4 +1,4 @@
-FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu18-c-go:6-u18.04-nng as ubuntu
+FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu18-c-go:7-u18.04 as ubuntu
 
 ADD . /opt/o-du-l2
 WORKDIR /opt/o-du-l2
diff --git a/docs/ODUArch.jpg b/docs/ODUArch.jpg
new file mode 100644 (file)
index 0000000..df98f84
Binary files /dev/null and b/docs/ODUArch.jpg differ
index 2de6706..2dd5df0 100644 (file)
@@ -2,14 +2,89 @@
 .. SPDX-License-Identifier: CC-BY-4.0
 
 
-o-du-l2 Overview
+O-DU-L2 Architecture
 ======================
 
 
-
 O-DU implements the functional blocks of L2 layer of a 5G NR protocol stacks.
-These layers primarily include NR MAC and NR RLC layers.
-In order to manage these layers, DU_APP submodule has been introduced which can be comsidered as the 
-master module of O-DU.
+These layers primarily include NR MAC NR Scheduler and NR RLC layers.
+
+O-DU modules are developed as shown in the below diagram.
+
+.. image:: ODUArch.jpg
+  :width: 400
+  :alt: ODU Arch diagram
+
+O-DU Thread Architecture
+--------------------------
+
+As shown in Figure 1, there are multiple entities within O-DU. Modules sharing a
+given color belong to one thread. O-DU architecture can be defined at a thread
+level as follows:
+
+-      Thread 1: O-DU thread
+
+-      Thread 2: DU APP inclusive of Config Handler, DU Manager, UE Manager, EGTP Handler and ASN.1 Codecs
+
+-      Thread 3: 5G NR RLC DL and MAC (inclusive of 5G NR SCH and Lower MAC)
+
+-      Thread 4: 5G NR RLC UL
+
+-      Thread 5: SCTP Handler
+
+
+O-DU Modules
+--------------------------
+
+DU APP 
+^^^^^^^^^^^^^^^^^^
+This module configures and manages all the operations of O-DU.
+It interfaces with external entities as follows:
+
+-      OAM:  DU APP interacts with OAM on the O1 interface for configuration, alarms and performance management.
+
+-      O-CU: DU APP interacts with O-CU for RAN functionalities over the F1 interface which is built on SCTP. Control messages are exchanged on the F1-C interface and data messages on the F1-U interface.
+
+-      RIC: DU APP interacts with RIC on E2 interface over SCTP.
+
+
+DU App submodules are as follows:
+
+-      Config Handler manages the configurations received on O1 interfaces andstores them within DU APP context.
+
+-      DU Manager handles all cell operations at the DU APP.
+
+-      UE Manager handles UE contexts at the DU APP.
+
+-      SCTP handler is responsible for establishing SCTP connections with O-CU, RIC.
+
+-      EGTP handler is responsible for establishing EGTP connection with O-CU for data message exchange.
+
+-      ASN.1 Codecs contain ASN.1 encode/decode functions which are used for System information, F1AP and E2AP messages.
+
+5G NR RLC
+^^^^^^^^^^^^^^^^^^
+This module provides services for transferring the control and data messages
+between MAC layer and O-CU (via DU App).
+
+5G NR RLC UL and 5G NR RLC DL are the sub modules of this module that implement
+uplink and downlink functionality respectively. 
+
+5G NR MAC
+^^^^^^^^^^^^^^^^^^
+This module uses the services of the NR physical layer to send and receive data
+on the various logical channels.
+Functions of the 5G NR MAC module are as follows:
+
+-      5G NR MAC is responsible for multiplexing and de-multiplexing of the data on various logical channels.
+
+-      5G NR SCH schedules resources on UL and DL for cell and UE based procedures.
+
+-      Lower MAC interfaces between the MAC and the lower layers of the O-DU and implements all the messages of FAPI specification.
+
+O-DU Utility and Common Functions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+These modules help in the working of O-DU and message exchanges between
+the O-DU modules.
 
 
index 4e444c3..bd2a32e 100644 (file)
@@ -119,7 +119,6 @@ uint16_t numRbForPrachTable[MAX_RACH_NUM_RB_IDX][5] = {
  * Subframe num is represented considering 0-9 bits and
  * value 1 corresponds to the subframe that is valid 
  */
- //Sphoorthi TODO: complete this table
 
 uint16_t prachCfgIdxTable[MAX_PRACH_CONFIG_IDX][8] = {
 { 0, 16,  1,    2,  0,  0,  0,  0 }, /* index 0   */
@@ -248,6 +247,136 @@ uint16_t prachCfgIdxTable[MAX_PRACH_CONFIG_IDX][8] = {
 { 5,  2,  1,  580,  0,  1,  3,  4 }, /* index 123  */
 { 5,  2,  0,    2,  0,  2,  3,  4 }, /* index 124  */
 { 5,  2,  0,   16,  0,  2,  3,  4 }, /* index 125  */
+{ 5,  2,  0,  128,  0,  2,  3,  4 }, /* index 126  */
+{ 5,  1,  0,   16,  0,  1,  3,  4 }, /* index 127  */
+{ 5,  1,  0,   66,  0,  1,  3,  4 }, /* index 128  */
+{ 5,  1,  0,  528,  0,  1,  3,  4 }, /* index 129  */
+{ 5,  1,  0,    2,  0,  2,  3,  4 }, /* index 130  */
+{ 5,  1,  0,  128,  0,  2,  3,  4 }, /* index 131  */
+{ 5,  1,  0,  132,  0,  2,  3,  4 }, /* index 132  */
+{ 5,  1,  0,  146,  0,  2,  3,  4 }, /* index 133  */
+{ 5,  1,  0,  341,  0,  2,  3,  4 }, /* index 134  */
+{ 5,  1,  0, 1023,  0,  2,  3,  4 }, /* index 135  */
+{ 5,  1,  0,  682,  0,  2,  3,  4 }, /* index 136  */
+{12,  2,  1,  580,  0,  1,  3,  4 }, /* index 137  */
+{12,  2,  2,   16,  0,  1,  3,  4 }, /* index 138  */
+{12,  2,  1,   16,  0,  1,  3,  4 }, /* index 139  */
+{12,  2,  1,   66,  0,  1,  3,  4 }, /* index 140  */
+{12,  2,  1,  528,  0,  1,  3,  4 }, /* index 141  */
+{12,  2,  1,    2,  0,  1,  3,  4 }, /* index 142  */
+{12,  2,  1,  128,  0,  1,  3,  4 }, /* index 143  */
+{12,  2,  1,  146,  0,  1,  3,  4 }, /* index 144  */
+{12,  2,  1,  341,  0,  1,  3,  4 }, /* index 145  */
+{12,  2,  1, 1023,  0,  1,  3,  4 }, /* index 146  */
+{ 6, 16,  1,  528,  0,  1,  2,  6 }, /* index 147  */
+{ 6, 16,  1,   16,  0,  2,  2,  6 }, /* index 148  */
+{ 6,  8,  1,  528,  0,  1,  2,  6 }, /* index 149  */
+{ 6,  8,  1,   16,  0,  2,  2,  6 }, /* index 150  */
+{ 6,  4,  0,  528,  0,  1,  2,  6 }, /* index 151  */
+{ 6,  4,  0,   16,  0,  2,  2,  6 }, /* index 152  */
+{ 6,  2,  1,  580,  0,  2,  2,  6 }, /* index 153  */
+{ 6,  2,  0,    2,  0,  2,  2,  6 }, /* index 154  */
+{ 6,  2,  0,   16,  0,  2,  2,  6 }, /* index 155  */
+{ 6,  2,  0,  128,  0,  2,  2,  6 }, /* index 156  */
+{ 6,  1,  0,   16,  0,  1,  2,  6 }, /* index 157  */
+{ 6,  1,  0,   66,  0,  1,  2,  6 }, /* index 158  */
+{ 6,  1,  0,  528,  0,  1,  2,  6 }, /* index 159  */
+{ 6,  1,  0,    2,  0,  2,  2,  6 }, /* index 160  */
+{ 6,  1,  0,  128,  0,  2,  2,  6 }, /* index 161  */
+{ 6,  1,  0,  132,  0,  2,  2,  6 }, /* index 162  */
+{ 6,  1,  0,  146,  0,  2,  2,  6 }, /* index 163  */
+{ 6,  1,  0,  341,  0,  2,  2,  6 }, /* index 164  */
+{ 6,  1,  0, 1023,  0,  2,  2,  6 }, /* index 165  */
+{ 6,  1,  0,  682,  0,  2,  2,  6 }, /* index 166  */
+{13,  2,  1,  580,  0,  2,  2,  6 }, /* index 167  */
+{13,  2,  2,   16,  0,  2,  2,  6 }, /* index 168  */
+{13,  2,  1,   16,  0,  1,  2,  6 }, /* index 169  */
+{13,  2,  1,   66,  0,  1,  2,  6 }, /* index 170  */
+{13,  2,  1,  528,  0,  1,  2,  6 }, /* index 171  */
+{13,  2,  1,    2,  0,  2,  2,  6 }, /* index 172  */
+{13,  2,  1,  128,  0,  2,  2,  6 }, /* index 173  */
+{13,  2,  1,  146,  0,  2,  2,  6 }, /* index 174  */
+{13,  2,  1,  341,  0,  2,  2,  6 }, /* index 175  */
+{13,  2,  1, 1023,  0,  2,  2,  6 }, /* index 176  */
+{ 7, 16,  0,  528,  0,  1,  7,  2 }, /* index 177  */
+{ 7, 16,  1,   16,  0,  2,  7,  2 }, /* index 178  */
+{ 7,  8,  0,  528,  0,  1,  7,  2 }, /* index 179  */
+{ 7,  8,  1,   16,  0,  2,  7,  2 }, /* index 180  */
+{ 7,  4,  0,  528,  0,  1,  7,  2 }, /* index 181  */
+{ 7,  4,  1,  528,  0,  1,  7,  2 }, /* index 182  */
+{ 7,  4,  0,   16,  0,  2,  7,  2 }, /* index 183  */
+{ 7,  2,  0,  528,  0,  1,  7,  2 }, /* index 184  */
+{ 7,  2,  0,    2,  0,  2,  7,  2 }, /* index 185  */
+{ 7,  2,  0,   16,  0,  2,  7,  2 }, /* index 186  */
+{ 7,  2,  0,  128,  0,  2,  7,  2 }, /* index 187  */
+{ 7,  1,  0,   16,  0,  1,  7,  2 }, /* index 188  */
+{ 7,  1,  0,   66,  0,  1,  7,  2 }, /* index 189  */
+{ 7,  1,  0,  528,  0,  1,  7,  2 }, /* index 190  */
+{ 7,  1,  0,    2,  0,  2,  7,  2 }, /* index 191  */
+{ 7,  1,  0,  128,  0,  2,  7,  2 }, /* index 192  */
+{ 7,  1,  0,  132,  0,  2,  7,  2 }, /* index 193  */
+{ 7,  1,  0,  146,  0,  2,  7,  2 }, /* index 194  */
+{ 7,  1,  0,  341,  0,  2,  7,  2 }, /* index 195  */
+{ 7,  1,  0, 1023,  0,  2,  7,  2 }, /* index 196  */
+{ 7,  1,  0,  682,  0,  2,  7,  2 }, /* index 197  */
+{ 8, 16,  0,  528,  0,  2,  1, 12 }, /* index 198  */
+{ 8, 16,  1,   16,  0,  2,  1, 12 }, /* index 199  */
+{ 8,  8,  0,  528,  0,  2,  1, 12 }, /* index 200  */
+{ 8,  8,  1,   16,  0,  2,  1, 12 }, /* index 201  */
+{ 8,  4,  0,  528,  0,  2,  1, 12 }, /* index 202  */
+{ 8,  4,  0,   16,  0,  2,  1, 12 }, /* index 203  */
+{ 8,  4,  1,  528,  0,  2,  1, 12 }, /* index 204  */
+{ 8,  2,  0,  528,  0,  2,  1, 12 }, /* index 205  */
+{ 8,  2,  0,    2,  0,  2,  1, 12 }, /* index 206  */
+{ 8,  2,  0,   16,  0,  2,  1, 12 }, /* index 207  */
+{ 8,  2,  0,  128,  0,  2,  1, 12 }, /* index 208  */
+{ 8,  1,  0,    2,  0,  2,  1, 12 }, /* index 209  */
+{ 8,  1,  0,   16,  0,  2,  1, 12 }, /* index 210  */
+{ 8,  1,  0,  128,  0,  2,  1, 12 }, /* index 211  */
+{ 8,  1,  0,   66,  0,  2,  1, 12 }, /* index 212  */
+{ 8,  1,  0,  132,  0,  2,  1, 12 }, /* index 213  */
+{ 8,  1,  0,  528,  0,  2,  1, 12 }, /* index 214  */
+{ 8,  1,  0,  146,  0,  2,  1, 12 }, /* index 215  */
+{ 8,  1,  0,  341,  0,  2,  1, 12 }, /* index 216  */
+{ 8,  1,  0, 1023,  0,  2,  1, 12 }, /* index 217  */
+{ 8,  1,  0,  682,  0,  2,  1, 12 }, /* index 218  */
+{ 9,  8,  1,   16,  0,  2,  7,  2 }, /* index 219  */
+{ 9,  4,  1,  528,  0,  1,  7,  2 }, /* index 220  */
+{ 9,  4,  0,   16,  0,  2,  7,  2 }, /* index 221  */
+{ 9,  2,  0,  528,  0,  1,  7,  2 }, /* index 222  */
+{ 9,  2,  0,    2,  0,  2,  7,  2 }, /* index 223  */
+{ 9,  2,  0,   16,  0,  2,  7,  2 }, /* index 224  */
+{ 9,  2,  0,  128,  0,  2,  7,  2 }, /* index 225  */
+{ 9,  1,  0,   16,  0,  1,  7,  2 }, /* index 226  */
+{ 9,  1,  0,   66,  0,  1,  7,  2 }, /* index 227  */
+{ 9,  1,  0,  528,  0,  1,  7,  2 }, /* index 228  */
+{ 9,  1,  0,    2,  0,  2,  7,  2 }, /* index 229  */
+{ 9,  1,  0,  128,  0,  2,  7,  2 }, /* index 230  */
+{ 9,  1,  0,  132,  0,  2,  7,  2 }, /* index 231  */
+{ 9,  1,  0,  146,  0,  2,  7,  2 }, /* index 232  */
+{ 9,  1,  0,  341,  0,  2,  7,  2 }, /* index 233  */
+{ 9,  1,  0, 1023,  0,  2,  7,  2 }, /* index 234  */
+{ 9,  1,  0,  682,  0,  2,  7,  2 }, /* index 235  */
+{10, 16,  1,  528,  0,  1,  2,  6 }, /* index 236  */
+{10, 16,  1,   16,  0,  2,  2,  6 }, /* index 237  */
+{10,  8,  1,  528,  0,  1,  2,  6 }, /* index 238  */
+{10,  8,  1,   16,  0,  2,  2,  6 }, /* index 239  */
+{10,  4,  0,  528,  0,  1,  2,  6 }, /* index 240  */
+{10,  4,  0,   16,  0,  2,  2,  6 }, /* index 241  */
+{10,  2,  1,  580,  0,  2,  2,  6 }, /* index 242  */
+{10,  2,  0,    2,  0,  2,  2,  6 }, /* index 243  */
+{10,  2,  0,   16,  0,  2,  2,  6 }, /* index 244  */
+{10,  2,  0,  128,  0,  2,  2,  6 }, /* index 245  */
+{10,  1,  0,   16,  0,  1,  2,  6 }, /* index 246  */
+{10,  1,  0,   66,  0,  1,  2,  6 }, /* index 247  */
+{10,  1,  0,  528,  0,  1,  2,  6 }, /* index 248  */
+{10,  1,  0,    1,  0,  2,  2,  6 }, /* index 249  */
+{10,  1,  0,  128,  0,  2,  2,  6 }, /* index 250  */
+{10,  1,  0,  132,  0,  2,  2,  6 }, /* index 251  */
+{10,  1,  0,  146,  0,  2,  2,  6 }, /* index 252  */
+{10,  1,  0,  341,  0,  2,  2,  6 }, /* index 253  */
+{10,  1,  0, 1023,  0,  2,  2,  6 }, /* index 254  */
+{10,  1,  0,  682,  0,  2,  2,  6 }  /* index 255  */
 };
 
 
index ac97fb9..c79a2fe 100644 (file)
@@ -22,7 +22,7 @@
 #define MAX_CORESET_INDEX      16
 #define MAX_SEARCH_SPACE_INDEX 16
 #define MAX_RACH_NUM_RB_IDX    16
-#define MAX_PRACH_CONFIG_IDX   255
+#define MAX_PRACH_CONFIG_IDX   256
 
 #define SET_BITS(_startBit, _numBits, _byte)                                \
 {                                                            \