L1-L2 Integration fixes.[Issue-ID: ODUHIGH-252]
[o-du/l2.git] / src / phy_stub / l1_bdy2.c
index 61b1f30..2edaa5b 100644 (file)
@@ -1,31 +1,70 @@
-/* This file handles TTI genertion */
+/*******************************************************************************
+################################################################################
+#   Copyright (c) [2017-2019] [Radisys]                                        #
+#                                                                              #
+#   Licensed under the Apache License, Version 2.0 (the "License");            #
+#   you may not use this file except in compliance with the License.           #
+#   You may obtain a copy of the License at                                    #
+#                                                                              #
+#       http://www.apache.org/licenses/LICENSE-2.0                             #
+#                                                                              #
+#   Unless required by applicable law or agreed to in writing, software        #
+#   distributed under the License is distributed on an "AS IS" BASIS,          #
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
+#   See the License for the specific language governing permissions and        #
+#   limitations under the License.                                             #
+################################################################################
+*******************************************************************************/
 
-#include <stdio.h>
-#include <pthread.h>
+/* This file handles slot indication */
+
+#include "common_def.h"
 #include "lphy_stub.h"
+#include "du_log.h"
+
+uint16_t l1BuildAndSendSlotIndication();
+pthread_t thread = 0;
 
 void *GenerateTicks(void *arg)
 {
+   int     milisec = 1;        /* 1ms */
+   struct timespec req = {0};
+
+   req.tv_sec = 0;
+   req.tv_nsec = milisec * 1000000L;
+
    while(1)
    {
-      sleep(1);
-      printf("\nPHY STUB : Slot indication");
-
+      nanosleep(&req, (struct timespec *)NULL);
+      
       /* Send Slot indication indication to lower mac */
-      //buildAndSendSlotIndication();
+      l1BuildAndSendSlotIndication();
    }
+   return((void *)NULLP);
 }
 
-void duStartSlotIndicaion()
+void l1HdlSlotIndicaion(bool stopSlotInd)
 {
-   pthread_t thread;
    int ret;
 
-   ret = pthread_create(&thread, NULL, GenerateTicks, NULL);
-   if(ret)
+   if(!stopSlotInd)
+   {
+      ret = pthread_create(&thread, NULL, GenerateTicks, NULL);
+      if(ret)
+      {
+         DU_LOG("\nPHY_STUB: Unable to create thread");
+      }
+   }
+   else
    {
-      printf("\nUnable to create thread");
+      ret = pthread_cancel(thread);
+      if(ret)
+      {
+         DU_LOG("\nPHY_STUB: Unable to stop thread");
+      }
    }
 }
 
-
+/**********************************************************************
+         End of file
+**********************************************************************/