X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=docs%2Fdeveloper-guide.rst;fp=docs%2Fdeveloper-guide.rst;h=550784183264851913e4fe08342c277d474fe38e;hb=799160e805914b3131eb2b22f66c7a38a1bf9733;hp=2340191133c6ebc2acbbf90d5cb189133d45665f;hpb=131089020214ee333453548430470a96f075d9e6;p=o-du%2Fl2.git diff --git a/docs/developer-guide.rst b/docs/developer-guide.rst index 234019113..550784183 100644 --- a/docs/developer-guide.rst +++ b/docs/developer-guide.rst @@ -26,9 +26,9 @@ O-DU High uses C languages. The coding guidelines followed are: .. figure:: LicHeader.jpg :width: 600 - :alt: Figure 16 License Header and Footer + :alt: Figure 17 License Header and Footer - Figure 16 : License Header and Footer + Figure 17 : License Header and Footer O-DU High code --------------- @@ -280,9 +280,9 @@ Here, .. figure:: ModeofCommunication.jpg :width: 600 - :alt: Figure 17 Mode of communication between O-DU High entities + :alt: Figure 18 Mode of communication between O-DU High entities - Figure 17: Mode of communication between O-DU High entities + Figure 18: Mode of communication between O-DU High entities Steps of Communication ++++++++++++++++++++++ @@ -344,9 +344,9 @@ Below figure summarized the above steps of intra O-DU High communication .. figure:: StepsOfCommunication.jpg :width: 600 - :alt: Figure 18 Communication between entities + :alt: Figure 19 Communication between entities - Figure 18: Steps of Communication between O-DU High entities + Figure 19: Steps of Communication between O-DU High entities Communication with Intel O-DU Low @@ -601,6 +601,39 @@ the following APIs for communication. b. Input - handle of WLS interface c. Returns number of available blocks in slave to master queue +Scheduler Framework with plug-in support +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +5G NR SCH module is encapsulated within 5G NR MAC of ODU-High. Any communication to/from SCH will happen only through MAC. +The scheduler framework in ODU-High provides support to plug-in multiple scheduling algorithms easily. + +Design ++++++++ + +.. figure:: 5G_NR_SCH_Design.PNG + :width: 600 + :alt: 5G NR Scheduler Framework Design + + Figure 20: 5G NR Scheduler Framework Design + +- The code for scheduler has been divided into 2 parts i.e. the common APIs and scheduler-specific APIs. +- Any code (structure/API) which is specific to a scheduling algorithm must be within scheduler-specific files such as sch_rr.c and sch_rr.h for round-roubin scheduler. +- Function pointers are used to identify and call APIs belonging to the scheduling algorithm in use at any given point in time. +- All supported scheduling algorithm are listed in SchType enum in sch.h file. +- All function pointers are declared in SchAllApis structure in sch.h +- For each scheduling algorithm, function pointers must be initialised to scheduler-specific APIs during scheduler initialisation. + +Call Flow ++++++++++ + +- In any call flow, a common API calls the scheduler-specific API using function pointer and its output is returned back to the common API, which will be further processed and communicated to MAC. + +.. figure:: Multi_Scheduling_Algorithm_Call_Flow.PNG + :width: 600 + :alt: Call flow example of Multi-Scheduling Algorithm framework + + Figure 21: Example of a call flow in multi-scheduling algorithm framework + Additional Utility Functions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^