Final Presentation of TEEP (Taiwan Experience Education Program)@AsiaPlus 2019 at Broadband Multimedia and Wireless Research Laboratory, National Taiwan University of Science and Technology.
This presentation contains explanation about 5G FAPI specification in concept.
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
Study of 5G FAPI Specification
1. STUDY OF 5G FAPI SPESIFICATION
By : Imam Nur Bani Yusuf
Intern Period : 1 July – 29 August 2019
Supervisor : Prof. Ray-Guang Cheng
Mentor : Samuel Liu
4. Compatibility Challenge (1)
• Both hardware and software
must compatible to each other
• Ex: hardware from company A
must compatible with software
from company B
• But, HOW?
Company BCompany A
5. Compatibility Challenge (2)
• Small Cell Forum (SCF) has
made universal standard that
regulates how software (in
L2/L3) communicate with
hardware (in L1)
• This standard called FAPI
(Functional Application Platform
Interface)
7. FAPI Release (2)
• Purpose of new release: adjust with 5G new specification
• Brief review of 5G new specification (not all)
Specification 4G 5G
Spectrum Up to 6 GHz
Up to 6 GHz, ~28 GHz, ~39
GHz, other mm wave
bands (up to 52 GHz)
Bandwidth Max: 20 MHz
Max: 100 MHz (f < 6 GHz)
and 1 GHz ( f > 6 GHz)
Subcarrier
Spacing
15 kHz 15, 30, 60, 120, 240 kHz
8. Intern Goals
• Study about 5G FAPI features and functionality
• Explain main procedures in 5G FAPI new specification
• List different between 4G and 5G FAPI procedures
9. What is FAPI?
• FAPI is a standard API that links
between software in L2/L3 layer
with physical device/ PHY in L1
layer
• FAPI consists of:
• P5 procedure (PHY Control)
responsible to configure
physical device
• P7 procedure (MAC)
responsible for data plane
exchange
11. Summary of P5 Procedures
• To access my summary: check my Trello card (attached as .pdf file)
12. Example: Configuration Procedure (1)
• Goal: IDLE -> CONFIGURED -> RUNNING
• Configuration procedure has 3 stages:
• PARAM message exchange – get PHY parameter
• CONFIG message exchange – configure PHY
• START message exchange – run PHY
• Stages are executed sequentially
• PHY respond will depend on its own state
13. Example: Configuration Procedure (2)
Procedure Stage
Message sent by L2/L3
software
State of L1 Alternative Response by L1 Explanation
Configuration
PARAM message exchange PARAM.request
IDLE PARAM.response(MSG_OK)
L1 returns its current state and configuration
information
CONFIGURED PARAM.response(MSG_OK)
L1 cannot returns its current state and
configuration information
RUNNING PARAM.response(INVALID_STATE) L1 has failed to respond. It should be restarted
CONFIG message exchange CONFIG.request
IDLE
CONFIG.response(MSG_OK)
L1 has successfully configured and has moved to
CONFIGURED state
CONFIG.response(MSG_INVALID_STATE) L1 didn't contain all mandatory TLV
CONFIGURED
CONFIG.response(MSG_OK) L1 has successfully configured
CONFIG.response(MSG_INVALID_STATE) the information inside TLV message is invalid
RUNNING
CONFIG.response(MSG_OK) L1 has successfully configured
CONFIG.response(MSG_INVALID_STATE)
TLV is invalid. Not all TLV can be configured in
RUNNING state
START message exchange START.request
IDLE ERROR.indication() invalid state
CONFIGURED -
if START.request is successful, no response is
returned by L1
RUNNING ERROR.indication() invalid state
• For example:
• In IDLE and CONFIGURED state, PHY responds with PARAM.response(MSG_OK)
• In RUNNING state, PHY responds with PARAM.response(INVALID_STATE)
17. P7 Procedures Introduction
• P7 procedures responsible for
data exchange
• P7 procedures define:
• frame, subframe, and slot number
synchronization
Slot number = 5 Slot number = 6Slot number = 6
P7
18. P7 Procedures Introduction
• P7 procedures responsible for
data exchange
• P7 procedures define:
• frame, subframe, and slot number
synchronization
• how L2/L3 software instructs PHY
to transmit downlink signal Slot number = 6
P7
DL
Slot number = 6
19. P7 Procedures Introduction
• P7 procedures responsible for
data exchange
• P7 procedures define:
• frame, subframe, and slot number
synchronization
• how L2/L3 software instruct PHY
to transmit downlink signal
• how PHY and L2/L3 software
interacts to respond uplink signal
that comes from cell phone
P7
UL
UL
20. P7 Procedures
• Slot signal
• SFN/SF/SL Synchronization
• Downlink Transmission Signal
• BCH
• PCH
• DL-SCH
• Downlink reference signal
• Uplink Transmission Signal
• RACH
• UL-SCH
• SRS, CSI, and SR
• Uplink reference signal
Synchronization function
How to transmit downlink signal
How to respond uplink signal
21. Downlink Transmission Signal: PCH
DL_TTI.
request()
PHY state: RUNNING
Tell PHY that PDSCH and PDCCH channel will be used
using DL_TTI.request() message
Tell PHY that to transmit data via channels that are
already prepared
TX_Data.
request()
PHY transmit paging message to UE
Paging
message
22. What’s Inside the Message?
CONFIG.response
(MSG_OK)
Number of
message
Opaque
handle
PHY
message
Vendor
specific msg
Message
Type ID
Length of
msg
Message
Body
5G General Message Format
Each message has its own message body
structure
0x03 1
Message
Body
Error Code
Number of
TLV
TLV0x0 1 TLV
CONFIG.response message body
structure
23. TLV (Tag-Length-Value)
• TLV is a type of encoding scheme
• TLV consists of 3 fields:
• Tag – what parameter?
• Length – how long?
• Value – what is the value of the
parameter?
• Tag value is defined in 5G FAPI spec
• Why?
• Compact
• Simple
• Drawback?
• Not readable
For example:
• Parameter PHY state is encoded with 0x0002
• If 0x0002 has value
• 0, then PHY is in IDLE state
• 1, then PHY is in CONFIGURED
• 2, then PHY is in RUNNING
24. 5G FAPI vs 4G FAPI: General Message Format
5G 4G
Number of
message
Opaque handle PHY message
Vendor specific
msg
Message Type ID Length of msg Message Body
Message Type ID
Vendor Specific
Message Body
Length
Length of
Message Body
Message Body
Vendor specific
msg body
In this occasion, I would like to tell you an interesting story about my work in BMW Lab, Taiwan Tech. The title is STUDY OF 5G FAPI SPESIFICATION
My name is Imam Nur Bani Yusuf, I hope you can enjoy my presentation.
This is my presentation outline. Number 3-7 is the main point of my presentation.
The development of telecommunications technology is very fast. If we look from the business side, telecommunication industry has very good prospects.
This industry has many players, such as: hardware, software, service provide, system integrator, etc.
Because there are many players, telecommunication industry is facing problem called compatibility challenge.
For example: hardware from company A must compatible with software from company B
The question is, HOW? How it can be achieved?
To solve this problem, SCF has made universal standard that regulates how software communicate with hardware.
This standard called FAPI (Functional Application Platform Interface)
SCF released FAPI spec for 4G in May 2017
SCF released new document in June 2019.
The purpose of SCF releasing new document is to adjust with 5G new specification
Below is a brief review of 5G new specification, compared to 4G.
I have 3 goals in this interns, that is:
<look at slide>
P5 deal with physical device state
There are 3 states of physical device, that is: idle, configured, and running
P5 consists of 7 procedures, namely: <look at slide>
This table shows work result on P5 procedures. I won’t explain it one by one.
I will give one example to illustrate how FAPI work
If you want more detail explanation, you can access it on my Trello.
I will take Configuration procedure as an example
The purpose of this procedure is to change the state of physical device from IDLE to RUNNING through CONFIGURED state
<look at slide>
In this table, we can see that message sent by L2/L3 software when it does PARAM message exchange is PARAM.request.
The respond of PHY depends on its state, for example: in IDLE state and CONFIGURED state, PHY will respond with valid message. But, in RUNNING state, PHY will respond with invalid message because PARAM.request() only valid in IDLE and CONFIGURED state
I will illustrate how Configuration procedure is done. As I explained before, configuration procedure has 3 stages and it is executed sequentially.
The first stage is PARAM message exchange. The goal of this stage is to obtain the current parameter value in PHY
I assume that the state of PHY is IDLE. First, L2/L3 soft sends PARAM.request message.
Because the state is valid, PHY reply with PARAM.response(MSG_OK) containing its current parameter value
The next state is CONFIG message exchange. Goal of this stage is to move PHY state from IDLE to CONFIGURED
In this stage, L2/L3 software sends CONFIG.request() message to PHY containing new parameter value that want to be set
PHY replies with CONFIG..response(MSG_OK) informing that the PHY state changes to configured state
The last stage is START message exchange. Goal of this stage is to instruct PHY device to start transmitting signal as gNB
L2/L3 software sends START.request to PHY and PHY won’t respond anything. If it successful, It will change to RUNNING state.
I have classified P5 procedures into 2 classifications.
The first one is Basic procedures. It consists of CONFIGURATION, TERMINATION, and ERROR NOTIFICATION procedure
Some procedures can be formed by combining basic procedures.
I classified this procedures into advanced procedures. It consist of RESTART, RESET, RECONFIGURE, and QUERY procedures.
I will take restart procedure as an example. From this picture, we can know that RESTART procedure is formed from STOP message exchange in TERMINATION procedure and START message exchange in CONFIGURATION procedure.
Next, I will move to P7 procedures.
P7 procedures is responsible for data exchange
From my study, I conclude that P7 procedures has 3 main function:
The first one is to synchronize frame, subframe, and slot number. The number of frame, subframe, and slot number between PHY and L2/L3 software must match to each other.
This number will be used as basis timing for scheduling. It tells PHY when to transmit.
The second function is to describe how L2/L3 software instructs PHY to transmit downlink signal
Downlink signal is signal that is transmitted from gNB to UE or cell phone
The third function is to describe how L2/L3 software and PHY interacts to respond incoming uplink signal from UE
Uplink signal is the opposite of downlink signal, that is from UE to gNB.
This this P7 procedures.
It consists of slot signal, SFN/SF/SL synchronization, Downlink transmission signal and uplink transmission signal.
Each signal has its own function as I described in the screen.
I will illustrate how L2/L3 signal instructs gNB to transmit paging message. This message is described in Downlink Transmission Signal procedure.
First, L2/L3 software sends DL_TTI.request containing PDSCH and PDCCH PDU. The purpose of this message is to tell PHY to prepare the resource to transmit data
Next, L2/L3 software sends TX_Data.request containing MAC PDU. This message is the real data. When PHY transmit the data, It will use the resource that is prepared earlier.
Last, PHY sends paging message to UE
We have discussed about P5 and P7 procedures in 5G.
Before we compare it to 4G, we need to know what’s inside the message. So, let’s look closer when PHY is sending CONFIG.response() message to L2/L3 software.
This message has structure like this. This is 5G general message format. All messages follow this rule.
As we can see, there is PHY message. This message is unique for each procedure. For example, CONFIG.response message has different body structure compared to CONFIG.request message.
Message Type ID 0x03 tells L2/L3 software that this message is CONFIG.response message.
In this picture, we can see CONFIG.response message body structure.
In this example, 0x0 is code for MSG_OK.
There is TLV here.
<look at slide> jangan baca example
I have tried to compare 5g FAPI procedures and 4g FAPI procedures.
I found the first different is located on General Message Format part.
We can see in the screen, the general message format for 5G and 4G is different
Second different is data type in TLV
The last one is in its TLV. I take Release Capability parameter as an example. We can see here, the tag code and value is different.
This is my conclusion from comparing P5 procedures in 5G and 4G.
We see in the table, only some procedures in 5G have different with 4G procedures.
<look at slide>
You can check the detail of my comparation in my HackMD.
This is my conclusion from comparing P7 procedures in 5G and 4G.
We see in the table, all procedures in 5G is different compared to 4G procedures. This is because 5G support more advanced features
You can check the detail of my comparation in my HackMD.
This is my conclusion from comparing P7 procedures in 5G and 4G.
We see in the table, all procedures in 5G is different compared to 4G procedures. This is because 5G support more advanced features
You can check the detail of my comparation in my HackMD.