Skip to content

prabinakpattnaik/n4-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# Introduction

N4-GO is Go implementation of N4 interface, used between control plane and data plane in the 5GCore architecture. The protocol is defined in 3GPP TS 29.244 v15.5.8.
N4 protocol has defined many Information Elements (IE) which will be included in protocol messages (i.e. Packet Forwarding Control Protocol (PFCP)) 

# Done

## Information Element

- Cause 
- Source Interface 
- F-TEID 
- Network Instance 
- SDF Filter 
- Gate Status 
- MBR 
- GBR 
- Precedence 
- Volume Threshold 
- Time Threshold 
- Monitoring Time 
- Inactivity Detection Time 
- Reporting Triggers 
- Report Type 
- Offending IE 
- Destination Interface 
- Apply Action 
- Sequence Number 
- Packet Detection Rule ID (PDR ID)
- F-SEID 
- Node ID 
- PFD Contents 
- Measurement Method 
- Usage Report  Trigger
- Measurement Period 
- Volume Measurement 
- Duration Measurement 
- Time of First Packet 
- Time of Last Packet 
- Dropped DL Traffic Threshold
- Volume Quota 
- Time Quota 
- Start Time 
- End Time 
- URR ID 
- Outer Header Creation 
- BAR ID 
- Usage Information 
- Flow Information 
- UE IP Address 
- Outer Header Removal 
- Recovery Time Stamp 
- Measurement Information 
- Node Report Type 
- UR-SEQN 
- FAR ID 
- QER ID 
- OCI Flags 
- PFCP Association Release Request
- PDN Type 
- User Plane IP Resource Information
- User Plane Inactivity Timer 
- QFI 

## PFCP Messages
PFCP message header is created and tested.

- Heartbeat-Request
- Heartbeat-Response
- Association-Setup-Request
- Association-Setup-Response
- Session-Establishment-Request
- Session-Establishment-Response
- Session-Modification-Request
- Session-Modification-Response
- Session-Deletion-Request
- Session-Deleteion-Respone
- Session-Report-Request
- Session-Report-Response

## Call Flow
SMF entity bahaves as client entity and UPF behaves as server. The client should make an association setup request and get association setup response(see section 6.2.6.2). In the association setup response, UP can provide IP resources. Then, client sends session estblishment request and gets a response.
By default, TEID allocation/release is mandatory for the control plane. Therefore, FTUP bit in UP Function Features should not be set.
In this case, TEID allocation/release is not managed by the data plane.

Session establishment includes uplink and downlink traffic in IPv4. It supports Packet Detection Rules(PDR) and Forwarding Action Rules(FAR).


# TODO

## Information Element
All necesarry IEs listed in ie.go file and needed to be implemented by order.

## PFCP Messages

- Association-Update-Request
- Association-Update-Response
- Association-Release-Request
- Association-Release-Response
- PFD-Management-Request
- PFD-Management-Response
- Node-Report-Request
- Node-Report-Response

- Length of PFCP messages are not calculated by Len(). In stead, it returns sum of length value and header size. Better, it should be calculated itself.    

## Missing Features

N4 supports many features. Initial PoC considers only PFCP association setup and session establishment.The following features are considered for later release. 

- support of load/overload control
- Ethernet PDU session
- handling of ARP and IPv6 Neighbour Solicitation Response


# Compile

make install [Compile and build the go packages]
make [Compile, run the UT, build the go packages]
make test [Run the unit test]
make cover [Show the coverity report of UT]







About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published