owned this note
owned this note
Published
Linked with GitHub
Pre-Internship Notes by Wilfrid
===
###### tags: `Internship`
_________________________
##### [<center>Root Page</center>](https://hackmd.io/uzWvF0wGSuGgH2NvY80TIA?view)
>Name : Wilfrid Azariah
>Department : School of Electrical Engineering and Informatics (Electrical engineering)
>University : Institut Teknologi Bandung
>General Topic : FHI
_________________________
### Week 01 : Review Background of O-RAN & Explore Fronthaul Topic
- [Daily Logbook](https://hackmd.io/exq31SMdQN2N_uO7KRKm1w)
- Fundamentals: Introduction to Open RAN ([2021/05/25](https://hackmd.io/8n7BZiJgRD-BrIGJ_DxkvQ))
- Fundamentals: Introduction to 5G ([2021/05/25](https://hackmd.io/0F59BCl6Qeq0KvgtNDIy9g))
- Intro to Fronthaul Interface ([2021/05/27](https://hackmd.io/-rVm8RY4Q3mT7ppiOOsFiQ))
- Digging into Fronthaul Interface Sourcecode ([2021/05/28](https://hackmd.io/xxV5PXqoSjSC8D_bT6o_uw))
:::danger
**Day Offs**
- 2021/05/26 was a national holiday (Waisak Day) in Indonesia
:::
:::success
**Goals**
- [x] Review about the background knowledge of O-RAN, how the system works and identify parts of the general architecture.
- [x] Review the what is 5G, how it works, learn about the 5G New Radio technology
- [x] Fill out the Survey Form, Renew and Post CV
- [x] Explore Fronthaul Interface Topic
- [x] Point out the difference between OSC FH lib and OAI FH lib
\
**What I have learned**
- An understanding of what is 5G mobile technology and the 3 different types (URLLC, mMTC, eMBB)
- A quick introduction to O-RAN and its architecture
- Components of the Open Fronthaul Interface
- OSC FH Lib has implemented all S-Plane & U-Plane functions, several C-Plane function, and none of M-Plane function
- OAI does not have FH library. OSC library could be used in OAI O-RAN implementation
:::
### Week 02 : Explore O-DU Topics
- [Daily Logbook](https://hackmd.io/exq31SMdQN2N_uO7KRKm1w)
- O-DU General Introduction ([2021/05/31](https://hackmd.io/ejkvi3poQ9KcKtj9Mvzz3g))
:::danger
**Day Offs**
- 2021/06/01 practice day for Thesis Defence
- 2021/06/02 was ITB Electrical Engineering Thesis Examination (Thesis Defence) day
- 2021/06/03 - 2021/06/13 Final Thesis Revision Period
:::
:::success
**Goals**
- [X] Explore O-DU generally
\
**What I have learned**
- O-DU is splited into High & Low with F1, E2, O1, FH, & FAPI interfaces.
:::
### Week 03 : OSC and OAI FHI part 1
- [Daily Logbook](https://hackmd.io/exq31SMdQN2N_uO7KRKm1w)
- OSC Frounthaul Library ([2021/06/14](https://hackmd.io/CJV2BodOTZW0PZgQX2EdGw))
- OAI files related to Split 7.2 ([2021/06/15-16](https://hackmd.io/rjqARt0VRgmAl4dHQz3HQg?view))
- Meeting with Navid ([2021/06/17](https://hackmd.io/eDR8okBPRFCo4FFFzUxCMQ?view#617-with-Prof-Navid))
- Study Benetel Directory([2021/06/18](https://hackmd.io/YXcft_06Sva7ZY31NGCl8g))
:::danger
**Day Offs**
- 2021/06/03 - 2021/06/13 Final Thesis Revision Period
- 2021/06/17-18 Half day busy submitting administration documents to ITB because there are last minute changes & COVID in Bandung is on high level
:::
:::success
**Goals**
- [X] Learn how O-DU calls the OSC FH Lib
- [ ] Learn OAI files relating to Split 7.2
- [x] Learn the files inside benetel directory
\
**What I have learned**
- OSC has provided good documentation for the FH lib, refer to sample-app.c for the steps to call OSC FH
:::
### Week 04 : OSC and OAI FHI part 2
- [Daily Logbook](https://hackmd.io/exq31SMdQN2N_uO7KRKm1w)
- O-RAN FH Message Format ([2021/06/21](https://hackmd.io/SupMlz-xSwe54Zv215OYUw?view))
- Build OAI 4G if4p5 Locally ([2021/06/22](https://hackmd.io/sq_yYsySSEGe4hoCLG6gAw?view))
- Build OAI 4G if4p5 Remotely on NTUST Lab ([2021/06/23](https://hackmd.io/sq_yYsySSEGe4hoCLG6gAw?view#IV-Tried-to-Build-in-NTUST-Computer-Lab))
- Analyzing message format sent from OAI RRU to OAI RRC ([2021/06/24](https://hackmd.io/NdYr1SqoTcWuE1zopej2Bg))
- Understanding how OAI ENB App (sourcecode) works ([2021/06/25](https://hackmd.io/6Ttjz22tRUefO4KNtLI7gw?view))
:::danger
**Day Offs**
- None Yet
:::
:::success
**Goals**
- [X] [Learn the official message format of O-RAN FHI](https://hackmd.io/SupMlz-xSwe54Zv215OYUw?view)
- [X] [Build OAI 4G if4p5 locally](https://hackmd.io/sq_yYsySSEGe4hoCLG6gAw?view#II-Building-OAI-4G-Locally)
- [x] [Learn the message format of OAI RRU to RRC comunication](https://hackmd.io/NdYr1SqoTcWuE1zopej2Bg#II-OAI-RRU-to-RCC-message-format)
- [x] [Understand how the ENB App works](https://hackmd.io/6Ttjz22tRUefO4KNtLI7gw?view#II-General-Flow-of-eNB-App)
\
**What I have learned**
- Documentations for O-RAN C-plane & U-plane messages are already clear and explored already by Kevin & Shuhua
- How to install OAI eNB, run RRU and RRC
- OAI if4p5 have different message format with OSC split 7.2
:::
### Week 05 : OSC and OAI FHI part 3
- [Daily Logbook](https://hackmd.io/exq31SMdQN2N_uO7KRKm1w)
- Understanding how OAI ENB App (sourcecode) works ([2021/06/28](https://hackmd.io/6Ttjz22tRUefO4KNtLI7gw?view))
- Build OAI 4G if4p5 Remotely on NTUST Lab ([2021/06/30](https://hackmd.io/sq_yYsySSEGe4hoCLG6gAw?view#V-Tried-to-Build-in-NTUST-Computer-Lab-20210630))
Internship Starts
===
_________________________
- Understanding data transmission on OAI ENB App ([2021/07/01](https://hackmd.io/6Ttjz22tRUefO4KNtLI7gw?view#III-Data-Transmission-U-plane))
- Understanding the ethernet details of data transmission on OAI ENB App ([2021/07/02](https://hackmd.io/kWwvXaLJRmOaWE3jjMohRQ))
- Restudy benetel directory further ([2021/07/02](https://hackmd.io/TNu-HjqBTvyh4r3WxTDq8w?view#-Benetel-Ethernet-Lib-))
:::danger
**Day Offs**
- 2021/06/29 COVID19 Vaccination
:::
:::success
**Goals**
- [x] [Understand how the ENB App works](https://hackmd.io/6Ttjz22tRUefO4KNtLI7gw?view#II-General-Flow-of-eNB-App)
- [x] [Understand the difference between the older OAI IF4p5 sourcecode and Benetel sourcecode on data transmission](https://hackmd.io/TNu-HjqBTvyh4r3WxTDq8w?view#IV-Difference-between-older-OAI-if4p5-the-benetel-if4p5-and-OSC-FHI)
- [x] [Build OAI if4p5 remotely on NTUST Lab](https://hackmd.io/sq_yYsySSEGe4hoCLG6gAw?view#V-Tried-to-Build-in-NTUST-Computer-Lab-20210630)
\
**What I have learned**
- In IF4p5, the eNB is divided into 2 parts, RRU and RCC. RRU is the remote RU. RRC is the RU on eNB/DU side.
- How the older OAI IF4p5 eNB works and transmit U-plane data
- Older if4p5 use ethernet socket while benetel if4p5 use dpdk ethernet
:::
### Week 06 : OSC and OAI FHI part 4
- [Daily Logbook](https://hackmd.io/exq31SMdQN2N_uO7KRKm1w)
- Difference between OSC and OAI (Benetel) DPDK ([2021/07/05](https://hackmd.io/99xRmhyXTD6gwhGLYVHY6Q?view))
- Transport_Init Function ([2021/07/06](https://hackmd.io/SpHXhRPQStChS26W8FhHKA?view))
- Where to Call Init, Config, Sender, Receive (NR version) ([2021/07/06](https://hackmd.io/1vRA81LYQf-eRF-2Gn4f7w?view))
- Where to Call Init, Config, Sender, Receive (LTE version) ([2021/07/07](https://hackmd.io/i2N-mj3jRT6XUr2VzrNEgg?view#II-In-benetel-version-lte-softmodemc))
- Find the use of benetel_fh_if4p5_south_in & benetel_fh_if4p5_south_out ([2021/07/08](https://hackmd.io/2CljKgeJSdOga_4dUxBnAg?view))
- Visual documentation of OAI IF4.5 architecture([2021/07/09](https://hackmd.io/ECoWyvclTgmwd-Cy2FFk_A?view))
- Research the U-plane data transmission flow on Srushti's Code([2021/07/09](https://hackmd.io/a4W8XOQ_TDaZPhtbdNpz2w?view))
:::danger
**Day Offs**
- None Yet
:::
:::success
**Goals**
- [x] [Understand what Transport_Init do](https://hackmd.io/SpHXhRPQStChS26W8FhHKA?view#II-Transport_Init-Flow-Benetel)
- [x] [Point out the difference between OSC and OAI DPDK](https://hackmd.io/99xRmhyXTD6gwhGLYVHY6Q?view#II-OAI-Benetel-vs-OSC-FHI-DPDK)
- [x] [Locate where to call Init, Config, Sender, and Receive Function (NR version)](https://hackmd.io/1vRA81LYQf-eRF-2Gn4f7w?view#I-In-benetel-version-nr-softmodemc)
- [x] [Locate where to call Init, Config, Sender, and Receive Function (LTE version)](https://hackmd.io/i2N-mj3jRT6XUr2VzrNEgg?view#II-In-benetel-version-lte-softmodemc)
- [x] [Understand the use of benetel_fh_if4p5_south_in/out](https://hackmd.io/2CljKgeJSdOga_4dUxBnAg?view)
- [x] [Make visual documentation of OAI IF4.5 architecture](https://hackmd.io/ECoWyvclTgmwd-Cy2FFk_A?view)
- [ ] Understand the Data Transmission Flow on Srushti's Code ([2021/07/12]())
\
**What I have learned**
- OAI Benetel FHI DPDK use the L2 Forwarding Event
- OSC FHI DPDK is similar to the Intel® QuickData Technology
- Benetel can be used in 4G and 5G. Just remember to use the correct version of the benetel directory
- Benetel TX/RX is done using 2 threads: dpdk_thread & ru_thread
:::
### Week 07 : OSC and OAI FHI part 5
- [Daily Logbook](https://hackmd.io/exq31SMdQN2N_uO7KRKm1w)
- Research the U-plane data transmission flow on Srushti's Code([2021/07/12](https://hackmd.io/a4W8XOQ_TDaZPhtbdNpz2w?view))
- Where to Load the FHI Library([2021/07/12](https://hackmd.io/ZOIgdQS5SkK9PafFHAxOSg?view))
- What parameters should be passed from OAI to OSC xran([2021/07/13-16](https://hackmd.io/GPUEViEUQjKcOKHLP_Evug))
- End to End Data Transmission Process in OSC XRAN([2021/07/15](https://hackmd.io/lwsT2bF-SViGu3SAC7QdyQ?view))
:::danger
**Day Offs**
- None Yet
:::
:::success
**Goals**
- [x] [Understand the Data Transmission Flow on Srushti's Code](https://hackmd.io/a4W8XOQ_TDaZPhtbdNpz2w?view)
- [x] [Find Where to Load the FHI Library](https://hackmd.io/ZOIgdQS5SkK9PafFHAxOSg)
- [x] [Understand the end to end data transmission process of the OSC XRAN](https://hackmd.io/lwsT2bF-SViGu3SAC7QdyQ?view)
- [ ] [What Parameters Should be Passed from OAI to OSC XRAN](https://hackmd.io/GPUEViEUQjKcOKHLP_Evug?view)
\
**What I have learned**
- Sruhsti's Code only load OSC FHI lib to OAI. Transferring samples is not available yet.
- Load of the FHI Library is done in transport_init() function
- OSC's `psBbuIo->sFrontHaulRxBbuIoBufCtrl[tti][cc_id][ant_id].sBufferList.pBuffers[sym_id].pData;` data need to be transfer to `ru->ifdevice.priv->buffers.ul` in OAI
- OAI's `ru->ifdevice.priv->buffers.dl` data need to be transfer to `psBbuIo->sFrontHaulTxBbuIoBufCtrl[tti][cc_id][ant_id].sBufferList.pBuffers[sym_id].pData;` in OSC
:::
### Week 08 : OSC and OAI FHI part 6
- [Daily Logbook](https://hackmd.io/exq31SMdQN2N_uO7KRKm1w)
- Research how OAI translate slot by slot to symbol by symbol ([2021/07/22-23](https://hackmd.io/W2qBR2fuTAmU5GhhBJn5_w))
- How l1.sh works? ([2021/07/23-26](https://hackmd.io/KIMPo0szQd2j7On3Qp_Eow))
:::danger
**Day Offs**
- 2021/07/19: 5G O-RAN Virtual Course
- 2021/07/20: National Holiday
- Since I have to attend 5G O-RAN Virtual Course in the morning till noon, I start working after 1PM
:::
:::success
**Goals**
- [x] [Research how OAI translate slot by slot to symbol by symbol](https://hackmd.io/W2qBR2fuTAmU5GhhBJn5_w?view)
\
**What I have learned**
- The process of translating symbol-by-symbol to slot-by-slot in Benetel is done by putting the 14 symbols into array[14] to be considered as a slot using regular for loop
:::
### Week 09 : OSC and OAI FHI part 7
- [Daily Logbook](https://hackmd.io/exq31SMdQN2N_uO7KRKm1w)
- How l1.sh works? ([2021/07/23-26](https://hackmd.io/KIMPo0szQd2j7On3Qp_Eow))
- Plan of complete architecture of OAI DU and OSC FHI integration ([2021/07/26-29](https://hackmd.io/Eklpy4pTQP-ExicULYPzNw))
- Research how OSC XRAN translate iq sample file to symbol by symbol ([2021/07/29-30](https://hackmd.io/6w2EGXvTTbWk67SCwHa5_g))
:::danger
**Day Offs**
- Since I have to attend 5G O-RAN Virtual Course in the morning till noon, I start working after 1PM
:::
:::success
**Goals**
- [x] [How l1.sh works?](https://hackmd.io/KIMPo0szQd2j7On3Qp_Eow)
- [x] [Develop a complete architecture plan of OAI DU & OSC FHI integration](https://hackmd.io/Eklpy4pTQP-ExicULYPzNw?view)
- [x] [Research how OSC XRAN translate iq sample file to symbol by symbol](https://hackmd.io/6w2EGXvTTbWk67SCwHa5_g)
\
**What I have learned**
- l1.sh will run l1app using xml cfg (radio/timer) provided by user
- We can directly use `psBbuIo->sFrontHaulRxBbuIoBufCtrl[tti][cc_id][ant_id].sBufferList.pBuffers[sym_id].pData` & `psBbuIo->sFrontHaulTxBbuIoBufCtrl[tti][cc_id][ant_id].sBufferList.pBuffers[sym_id].pData` as symbol to connect to the Wrapper in OAI DU but the symbol size should match OSC numerology
:::
### Week 10 : OSC and OAI FHI part 8
- [Daily Logbook](https://hackmd.io/exq31SMdQN2N_uO7KRKm1w)
- Plan of complete architecture of OAI DU and OSC FHI integration ([2021/07/26 - 08/02](https://hackmd.io/Eklpy4pTQP-ExicULYPzNw))
- Research where the handshake function is located in OAI Benetel ([2021/08/03](https://hackmd.io/l-i_N9EeSRi2uXaXfNd_3Q?view))
- Research where the data transmission synchronization function is located in OAI Benetel ([2021/08/04](https://hackmd.io/p1ICY1hvQ5-D8KPirxdKJg))
- Research where should call the function below in OAI: config (FHI CP) ([2021/08/05](https://hackmd.io/gjh-eocKQ66sHOzJ3vK_7g?view))
- Find the parameters in OAI that need to be the input of the function in wrapper (v2) ([2021/08/06](https://hackmd.io/KSFINEdjTSK2BlvGIE__5g?view))
:::danger
**Day Offs**
- None yet
:::
:::success
**Goals**
- [x] [Develop a complete architecture plan of OAI DU & OSC FHI integration](https://hackmd.io/Eklpy4pTQP-ExicULYPzNw?view)
- [x] [Research where the handshake function is located in OAI Benetel](https://hackmd.io/l-i_N9EeSRi2uXaXfNd_3Q?view)
- [x] [Research where the data transmission synchronization function is located in OAI Benetel](https://hackmd.io/p1ICY1hvQ5-D8KPirxdKJg)
- [x] [Research where should call the function below in OAI: config (FHI CP)](https://hackmd.io/gjh-eocKQ66sHOzJ3vK_7g?view)
- [x] [Find the parameters in OAI that need to be the input of the function in wrapper (v2)](https://hackmd.io/KSFINEdjTSK2BlvGIE__5g?view)
\
**What I have learned**
- On benetel RX/UL, synchronization is done by using the subframe & symbol index of the data transmitted
- On benetel TX/DL, it is assume that `dpdk_thread()` can finish transferring all 14 symbols to RU before `benetel_fh_if4p5_south_out()` is called again to fill 14 symbols again.
- The code for `ru_thread_control()` process [point 5](https://hackmd.io/l-i_N9EeSRi2uXaXfNd_3Q?both#II-Handshake-on-%E2%80%98ru_thread_control%E2%80%99) should be changed according to the OSC FHI configuration that we use.
- There are a lot of OSC FHI XRAN parameters that are not available in the current `benetel-4G.conf` file.
:::
### Week 11 : OSC and OAI FHI part 9
- [Daily Logbook](https://hackmd.io/exq31SMdQN2N_uO7KRKm1w)
- Use the table to record which files are related to 5G NR with if4.5 split and the description of these file (v2) ([2021/08/09-10](https://hackmd.io/43Padq8ARDyND2GT85gtMw?view))
- How to Trace Code Faster? ([2021/08/10](https://hackmd.io/ldV9Ln1VRa2cnAiKtV4Ocw))
- Research what is OSC Lab? ([2021/08/12](https://hackmd.io/_sHp4EwxQSOq2RJJqBaItw?view))
:::danger
**Day Offs**
- 2021/08/11: Indonesia National Holiday
- 2021/08/13: Had to meet with PT AVS (termination of capstone design project for thesis)
:::
:::success
**Goals**
- [x] [Use the table to record which files are related to 5G NR with if4.5 split and the description of these file (v2)](https://hackmd.io/43Padq8ARDyND2GT85gtMw?view)
- [x] [Make a note about How to Trace Code Faster?](https://hackmd.io/ldV9Ln1VRa2cnAiKtV4Ocw)
- [x] [Research what is OSC Community Lab?](https://hackmd.io/_sHp4EwxQSOq2RJJqBaItw?view)
\
**What I have learned**
- OSC Community Lab is a Lab to support the O-RAN Community in testing S/W and/or H/W. There is already an available OSC Community Lab in New Jersey
:::
### Week 12 : OSC Community Lab, OSC and OAI FHI part 10
- [Daily Logbook](https://hackmd.io/exq31SMdQN2N_uO7KRKm1w)
- What is timer mode & radio mode on L1? ([2021/08/16](https://hackmd.io/9j7hOTOwQG65ufSu3TlerA))
- TBA ([2021/08/18]())
- Tracing OSC code for samples indexing in `xran_timing_source_thread()` ([2021/08/19](https://hackmd.io/8sj9G1FASryjVODuqpYhHw))
- Learning Basic Linux ([2021/08/20](https://hackmd.io/UAGF5nkoQImPcj976VWuaw))
:::danger
**Day Offs**
- 2021/08/17: Indonesian Independence Day (National Holiday)
:::
:::success
**Goals**
- [x] [Understand what is timer mode & radio mode on L1](https://hackmd.io/9j7hOTOwQG65ufSu3TlerA)
- [x] [Understand OSC XRAN samples indexing in `xran_timing_source_thread()`](https://hackmd.io/8sj9G1FASryjVODuqpYhHw)
- [x] [Understand Basic Linux](https://hackmd.io/UAGF5nkoQImPcj976VWuaw)
\
**What I have learned**
- Timer Mode is used for simulation purposes, message that L1 get from MAC is not sent to RU
- Radio Mode is used for in real application, MAC message sent to L1 is sent to RU
- OSC L1-L2 integration testing is finished thus using Timer mode is done. Now, Radio mode is tested since O-DU-High, O-DU-Low, ORU & UE need to be tested end-to-end
- For RX side, we need to copy some codes from `xran_extract_iq_samples()` to get the symbol, slot, subframe & frame ID of incoming packets & crosscheck with OAI’s `expected_benetel_frame[2]`, `next_symbol[2]` & `next_subframe[2]` index in shared buffers.
- For TX side, XRAN will automatically generate the symbol, slot, subframe & frame ID. But we need to provide with the correct `T1a_max_up` value
:::
### Week 13 : End of Intern
- [Daily Logbook](https://hackmd.io/exq31SMdQN2N_uO7KRKm1w)
- Restructuring Study Note & Start Writing Paper ([2021/08/23](https://hackmd.io/uzWvF0wGSuGgH2NvY80TIA?both#Action-Items))
- Writing Paper ([2021/08/24](https://www.overleaf.com/read/mqtrnqyqjkdr))
- Making Final Presentation Slide ([2021/08/25](https://docs.google.com/presentation/d/1m_b2yn85AXvcsvRAchdXc9FgpcxvkVcpgwdzn9xvBdM/edit?usp=sharing))
- Continue Writing Paper ([2021/08/26](https://www.overleaf.com/read/mqtrnqyqjkdr))
- Make Experience Sharing Video & Writing ([2021/08/27](https://hackmd.io/uzWvF0wGSuGgH2NvY80TIA#Checklist-for-Internship))
:::danger
**Day Offs**
- None Yet
:::
:::success
**Goals**
- [x] [Paper for Final Report](https://www.overleaf.com/read/mqtrnqyqjkdr)
- [x] [Slide for Final Presentation](https://docs.google.com/presentation/d/1m_b2yn85AXvcsvRAchdXc9FgpcxvkVcpgwdzn9xvBdM/edit?usp=sharing)
- [x] [Experience Sharing Writing](https://hackmd.io/VEE4LNNDQ26th9QCAH2SDQ)
- [x] [Experience Sharing Video](https://drive.google.com/file/d/1FyBVeI1EpRzYseQRcryk7QcrHYA9asSv/view?usp=sharing)
\
**What I have learned**
- TBA
:::
### Week 14 : End of Intern - Final Week
- [Daily Logbook](https://hackmd.io/exq31SMdQN2N_uO7KRKm1w)
- Learning Computer Network Foundation ([2021/08/30-09/01](https://hackmd.io/CFIq8Zi7SeuUMDgL2Le6_w?view))
:::danger
**Day Offs**
- None Yet
:::
:::success
**Goals**
- [ ] [Understand Networking Fundamentals](https://hackmd.io/CFIq8Zi7SeuUMDgL2Le6_w?view)
- [x] [Final Presentation](https://docs.google.com/presentation/d/1m_b2yn85AXvcsvRAchdXc9FgpcxvkVcpgwdzn9xvBdM/edit?usp=sharing)
\
**What I have learned**
1. Computer Network = Computers connect to each other
2. Data transfer between computers are encapsulated using OSI model or TCP/IP model
2. Computer Networks can be based on wire/wireless
3. Repeater, Hub, Bridge, Switch & Routers are used to help networking
4. To send data from 1 computer to another is like sending a mail from person A to person C. We need the person's C home address
5. There are Layer 2 (MAC) & Layer 3 (IP) Addressing in Computer Networks
6. IP addressing is layer 3 addressing
7. There are IPv4 & IPv6
:::