diff --git a/openair1/PHY/LTE_TRANSPORT/if4_tools.h b/openair1/PHY/LTE_TRANSPORT/if4_tools.h
new file mode 100644
index 0000000000000000000000000000000000000000..977e5f36c5d3da2f21ddfc70850fe1be3d5c2316
--- /dev/null
+++ b/openair1/PHY/LTE_TRANSPORT/if4_tools.h
@@ -0,0 +1,135 @@
+/*******************************************************************************
+    OpenAirInterface
+    Copyright(c) 1999 - 2014 Eurecom
+
+    OpenAirInterface is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+
+    OpenAirInterface is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenAirInterface.The full GNU General Public License is
+   included in this distribution in the file called "COPYING". If not,
+   see <http://www.gnu.org/licenses/>.
+
+  Contact Information
+  OpenAirInterface Admin: openair_admin@eurecom.fr
+  OpenAirInterface Tech : openair_tech@eurecom.fr
+  OpenAirInterface Dev  : openair4g-devel@lists.eurecom.fr
+
+  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
+
+ *******************************************************************************/
+
+/*! \file PHY/LTE_TRANSPORT/if4_tools.h
+* \brief 
+* \author S. Sandeep Kumar, Raymond Knopp
+* \date 2016
+* \version 0.1
+* \company Eurecom
+* \email: ee13b1025@iith.ac.in, knopp@eurecom.fr 
+* \note
+* \warning
+*/
+
+#include <stdint.h>
+
+/// IF4 Frame Status (32 bits)
+struct IF4_frame_status {
+  /// Antenna Numbers
+  uint32_t ant_num:3;
+  /// Antenna Start
+  uint32_t ant_start:3;
+  /// Radio Frame Number
+  uint32_t rf_num:16;
+  /// Sub-frame Number
+  uint32_t sf_num:4;
+  /// Symbol Number
+  uint32_t sym_num:4;
+  /// Reserved
+  uint32_t rsvd:2;    
+};
+
+/// IF4 PRACH Configuration (32 bits)
+struct IF4_lte_prach_conf {
+  /// Reserved
+  uint32_t rsvd:3;
+  /// Antenna Indication
+  uint32_t ant:3;
+  /// Radio Frame Number
+  uint32_t rf_num:16;
+  /// Sub-frame Number
+  uint32_t sf_num:4;
+  /// FFT Exponent Output
+  uint32_t exponent:6;  
+};
+
+/// IF4 Antenna Gain
+struct IF4_gain {
+  /// Reserved 
+  uint32_t rsvd:10;
+  /// FFT Exponent Output
+  uint32_t exponent:6;  
+};  
+  
+struct IF4_dl_packet {
+  /// Destination Address
+  
+  /// Source Address
+  
+  /// Type
+  
+  /// Sub-Type
+  
+  /// Reserved
+  
+  /// Frame Status
+  
+  /// Data Blocks
+  
+  /// Frame Check Sequence
+   
+};
+
+struct IF4_ul_packet {
+  /// Destination Address
+  
+  /// Source Address
+  
+  /// Type
+  
+  /// Sub-Type
+  
+  /// Reserved
+  
+  /// Frame Status
+  
+  /// Gain 0
+  /// Gain 1
+  /// Gain 2
+  /// Gain 3
+  /// Gain 4
+  /// Gain 5
+  /// Gain 6
+  /// Gain 7
+
+  /// Data Blocks
+  
+  /// Frame Check Sequence
+  uint32_t fcs;
+};
+
+struct IF4_prach_packet {
+  
+  
+};
+
+void send_IF4(PHY_VARS_eNB *eNB, int subframe);
+
+void recv_IF4(PHY_VARS_eNB *eNB, int subframe);