Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add F-TEID allocation support #840

Draft
wants to merge 18 commits into
base: main
Choose a base branch
from

Conversation

gruyaume
Copy link
Contributor

@gruyaume gruyaume commented Aug 5, 2024

Description

As of 3GPP Release 16, F-TEID allocation is done in the UPF instead of the SMF. This PR implements F-TEID allocation as well as the necessary PFCP communication changes.

Summary

  1. Addition of a enable_ftup configuration option that users can set to decide whether or not they want the UPF the allocate F-TEID's
  2. Based on the previous option, the UPF will set the FTUP feature flag in its PFCP Association Setup Response to the SMF
  3. The SMF must set the CHOOSE flag in its request to establishment a new PDR in the PFCP Session Establishment Request
  4. When this CHOOSE flag is set, the UPF allocates a F-TEID using a TEID generator
  5. The UPF sets
    the F-TEID in its PFCP Session Establishment Response

Changes in the SMF and UPF are intertwined

This change and the SMF are intertwined and have to be merged close together so that the network keeps on working on main:

After this PR is merged

[UPF] Reject PFCP Session Establishment Requests if the SMF allocated an F-TEID with the cause "Invalid F-TEID allocation option".

Reference

3GPP Release 16

Relevant information from the 3GPP Release 16 29.244 document:

F-TEID shall be only allocated by the UPF. The UPF shall set the FTUP feature flag in the UP Function Features IE and the SMF shall request the UPF to allocate the F-TEID. The UPF shall reject a request to establish a new PDR with
an F-TEID allocation in the SMF option, with the cause "Invalid F-TEID allocation option". As an exception, the
UPF shall accept the PFCP Session Establishment Request message with a PDR including an existing F-TEID
to re-establish a PFCP session during a restoration procedure.

The SMF shall request the UPF to allocate the F-TEID by setting the CHOOSE flag in the Local F-TEID. And if the PDR(s) is created successfully, the UPF shall return the F-TEID(s) it has assigned to the PDR(s) in the PFCP Session Establishment Response or PFCP Session Modification Response.

Signed-off-by: guillaume <guillaume.belanger27@gmail.com>
@omecproject
Copy link

Can one of the admins verify this patch?

@gruyaume gruyaume changed the title feat: return F-TEID in PFCP session establishment response feat: add f-teid allocation support Aug 5, 2024
Signed-off-by: guillaume <guillaume.belanger27@gmail.com>
@gruyaume gruyaume changed the title feat: add f-teid allocation support feat: add F-TEID allocation support Aug 5, 2024
Signed-off-by: guillaume <guillaume.belanger27@gmail.com>
Signed-off-by: guillaume <guillaume.belanger27@gmail.com>
Signed-off-by: guillaume <guillaume.belanger27@gmail.com>
Signed-off-by: guillaume <guillaume.belanger27@gmail.com>
Signed-off-by: guillaume <guillaume.belanger27@gmail.com>
@thakurajayL thakurajayL self-assigned this Oct 5, 2024
Signed-off-by: Guillaume Belanger <guillaume.belanger27@gmail.com>
Signed-off-by: Guillaume Belanger <guillaume.belanger27@gmail.com>
@gab-arrobo
Copy link
Collaborator

@gruyaume please rebase your PR.

@gab-arrobo
Copy link
Collaborator

@gruyaume,
FYI, the 2 GHAs that fail are because of the same reason:

=== RUN   TestUPFBasedUeIPAllocation
    basic_test.go:102: 
        	Error Trace:	/home/runner/work/upf/upf/test/integration/basic_test.go:102
        	Error:      	"[0xc000de20c0 0xc000de2180]" should have 1 item(s), but has 2
        	Test:       	TestUPFBasedUeIPAllocation
--- FAIL: TestUPFBasedUeIPAllocation (5.18s)

@gruyaume
Copy link
Contributor Author

@gruyaume, FYI, the 2 GHAs that fail are because of the same reason:

=== RUN   TestUPFBasedUeIPAllocation
    basic_test.go:102: 
        	Error Trace:	/home/runner/work/upf/upf/test/integration/basic_test.go:102
        	Error:      	"[0xc000de20c0 0xc000de2180]" should have 1 item(s), but has 2
        	Test:       	TestUPFBasedUeIPAllocation
--- FAIL: TestUPFBasedUeIPAllocation (5.18s)

Yeah this is still a draft, I'm trying to figure out why the Created PDR's aren't returned in the PFCP Session Establishment Response.

Signed-off-by: Guillaume Belanger <guillaume.belanger27@gmail.com>
Signed-off-by: Guillaume Belanger <guillaume.belanger27@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants