From 5b59872dffb4f5c16d6c774b0130a7912eea6a01 Mon Sep 17 00:00:00 2001
From: Raymond Knopp <raymond.knopp@eurecom.fr>
Date: Mon, 25 Dec 2017 04:32:45 -0800
Subject: [PATCH] added new L1 files for Sidelink

---
 openair1/PHY/LTE_TRANSPORT/sldch.c | 43 +++++++++++++++++++
 openair1/PHY/LTE_TRANSPORT/slsch.c | 67 ++++++++++++++++++++++++++++++
 openair1/PHY/LTE_TRANSPORT/slss.c  | 43 +++++++++++++++++++
 3 files changed, 153 insertions(+)
 create mode 100644 openair1/PHY/LTE_TRANSPORT/sldch.c
 create mode 100644 openair1/PHY/LTE_TRANSPORT/slsch.c
 create mode 100644 openair1/PHY/LTE_TRANSPORT/slss.c

diff --git a/openair1/PHY/LTE_TRANSPORT/sldch.c b/openair1/PHY/LTE_TRANSPORT/sldch.c
new file mode 100644
index 00000000000..a06fed05dee
--- /dev/null
+++ b/openair1/PHY/LTE_TRANSPORT/sldch.c
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (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.openairinterface.org/?page_id=698
+ *
+ * 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.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+/*! \file PHY/LTE_TRANSPORT/slss.c
+ * \brief Functions to Generate and Receive PSDCH
+ * \author R. Knopp
+ * \date 2017
+ * \version 0.1
+ * \company Eurecom
+ * \email: knopp@eurecom.fr
+ * \note
+ * \warning
+ */
+#ifndef __LTE_TRANSPORT_SLSS__C__
+#define __LTE_TRANSPORT_SLSS__C__
+#include "PHY/defs.h"
+
+
+void generate_sldch(PHY_VARS_UE *ue,SLDCH_t *sldch,int frame_tx,int subframe_tx) {
+
+  AssertFatal(1==0,"Should get here yet for UE %d\n",ue->Mod_id);
+
+}
+
+#endif
diff --git a/openair1/PHY/LTE_TRANSPORT/slsch.c b/openair1/PHY/LTE_TRANSPORT/slsch.c
new file mode 100644
index 00000000000..6237a2a6b4f
--- /dev/null
+++ b/openair1/PHY/LTE_TRANSPORT/slsch.c
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (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.openairinterface.org/?page_id=698
+ *
+ * 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.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+/*! \file PHY/LTE_TRANSPORT/slss.c
+ * \brief Functions to Generate and Receive PSSCH
+ * \author R. Knopp
+ * \date 2017
+ * \version 0.1
+ * \company Eurecom
+ * \email: knopp@eurecom.fr
+ * \note
+ * \warning
+ */
+#ifndef __LTE_TRANSPORT_SLSS__C__
+#define __LTE_TRANSPORT_SLSS__C__
+#include "PHY/defs.h"
+
+
+void generate_slsch(PHY_VARS_UE *ue,SLSCH_t *slsch,int frame_tx,int subframe_tx) {
+
+  UE_tport_t pdu;
+  size_t slsch_header_len = sizeof(UE_tport_header_t);
+
+  if (slsch->rvidx==0) {
+    pdu.header.packet_type = SLSCH;
+    pdu.header.absSF = (frame_tx*10)+subframe_tx;
+    
+    memcpy((void*)&pdu.slsch,(void*)slsch,sizeof(SLSCH_t)-sizeof(uint8_t*));
+    
+    AssertFatal(slsch->payload_length <=1500-slsch_header_len - sizeof(SLSCH_t) + sizeof(uint8_t*),
+		"SLSCH payload length > %d\n",
+		1500-slsch_header_len - sizeof(SLSCH_t) + sizeof(uint8_t*));
+    memcpy((void*)&pdu.payload[0],
+	   (void*)slsch->payload,
+	   slsch->payload_length);
+    
+    LOG_I(PHY,"SLSCH configuration %d bytes, TBS payload %d bytes => %d bytes\n",
+	  sizeof(SLSCH_t)-sizeof(uint8_t*),
+	  slsch->payload_length,
+	  slsch_header_len+sizeof(SLSCH_t)-sizeof(uint8_t*)+slsch->payload_length);
+    
+    multicast_link_write_sock(0, 
+			      &pdu, 
+			      slsch_header_len+sizeof(SLSCH_t)-sizeof(uint8_t*)+slsch->payload_length);
+    
+  }
+}
+
+#endif
diff --git a/openair1/PHY/LTE_TRANSPORT/slss.c b/openair1/PHY/LTE_TRANSPORT/slss.c
new file mode 100644
index 00000000000..a8c9b75ae03
--- /dev/null
+++ b/openair1/PHY/LTE_TRANSPORT/slss.c
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (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.openairinterface.org/?page_id=698
+ *
+ * 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.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+/*! \file PHY/LTE_TRANSPORT/slss.c
+ * \brief Functions to Generate and Received Sidelink PSS,SSS and PSBCH
+ * \author R. Knopp
+ * \date 2017
+ * \version 0.1
+ * \company Eurecom
+ * \email: knopp@eurecom.fr
+ * \note
+ * \warning
+ */
+#ifndef __LTE_TRANSPORT_SLSS__C__
+#define __LTE_TRANSPORT_SLSS__C__
+#include "PHY/defs.h"
+
+
+void generate_slss(PHY_VARS_UE *ue,SLSS_t *slss,int frame_tx,int subframe_tx) {
+
+  AssertFatal(1==0,"Should get here yet for UE %d\n",ue->Mod_id);
+
+}
+
+#endif
-- 
GitLab