Giter Club home page Giter Club logo

go-upf's Introduction

free5GC

Release License Forum CodeFactor Go Report Card PRs Welcome

What is free5GC

The free5GC is an open-source project for 5th generation (5G) mobile core networks. The ultimate goal of this project is to implement the 5G core network (5GC) defined in 3GPP Release 15 (R15) and beyond.

For more information, please refer to free5GC official site.

Documentation

For document, please refer to free5gc.org/guide/.

Discussion

For questions and support please use the official forum. The issue list of this repo is exclusively for bug reports and feature requests.

Contributing

We welcome you for contribution via GitHub Pull Request.

Release Note

Detailed changes for each release are documented in the release notes. Detailed changes for each release are documented in the release notes.

License

free5GC is now under Apache 2.0 license.

go-upf's People

Contributors

andy89923 avatar avinash041 avatar brianchennn avatar chen042531 avatar dependabot[bot] avatar free5gc-org avatar hanhongchen avatar ian-cs12-nycu avatar ianchen0119 avatar khirono avatar kishiguro avatar mahmoodgh avatar q-p-mayo avatar roy-hu avatar shouheinishi avatar tim-ywliu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

go-upf's Issues

No CreatedPDR in SessionEstablishmentResponse?

Hi free5gc,
It seems that there is no CreatedPDR IE when sending SessionEstablishmentResponse back to the SMF. The spec 29244 says that if the SMF request to allocate a local F-TEID then the UPF shall allocate a local F-TEID and send back to SMF in a CreatedPDR IE.
Many SMF will ask the UPF to allocate TEID.
Am i correct about this behavior? why is there no CreatedPDR in SessionEstablishmentResponse in go-upf?

Why go-upf ?

Hi,

I would like to know why go-upf implementation ?
Is it run only in user space without interaction of the kernel ?

Thanks.

Separate N3 and N9 interfaces do not work if listed separately

In my environment, the UPF is expected to use separate network interfaces for N3 and N9 interfaces.
The example UPF config allows two methods to write the configuration:

If there are multiple connection, set addr to 0.0.0.0 or list all the addresses

In the first method, I can write as:

gtpu:
  forwarder: 'gtp5g'
  ifList:
    - addr: '0.0.0.0'
      type: 'N3'

In the second method, I can write as:

gtpu:
  forwarder: 'gtp5g'
  ifList:
    - addr: '172.25.194.6'
      type: 'N3'
    - addr: '172.25.196.6'
      type: 'N9'

As tested, only the first method works.
This is caused by forwarder.NewDriver only listens on the first configured IP address, and ignores other addresses in ifList:

for _, ifInfo := range cfgGtpu.IfList {
mtu = ifInfo.MTU
gtpuAddr = fmt.Sprintf("%s:%d", ifInfo.Addr, factory.UpfGtpDefaultPort)
logger.MainLog.Infof("GTP Address: %q", gtpuAddr)
break
}

Suggested solution is updating the example config, asking user to take the first method only.

use-after-free error in utlt_test.c

./free5gc/src/upf/lib/utlt/src/utlt_test.c: In function 'TestTerminate':
./free5gc/src/upf/lib/utlt/src/utlt_test.c:23:67: error: pointer 'it' used after 'free' [-Werror=use-after-free]
   23 |     for (TestNode *it = ListFirst(&testSelf.node); it != NULL; it = ListNext(it)) {
./free5gc/src/upf/lib/utlt/src/utlt_test.c:25:9: note: call to 'free' here
   25 |         free(it);
      |         ^~~~~~~~

I'm on kernel 5.4 and have successfully compiled the gtp5g-0.7.0 kernel module.

This error seems related to free5gc/free5gc#365 (unsolved)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.