Skip to content
Success

Changes

Summary

  1. Introduce hashtable to look up session in endpoint by UP SEID (details)
  2. up_peer: Increase up/cp seid hashtable sizes (details)
  3. Increase per PDR (F-TEID) hashtable size (details)
Commit 68c0e96a811a75f176edb35ed5edbe12f9b1c884 by Pau Espin Pedrol
Introduce hashtable to look up session in endpoint by UP SEID

This is used every time a new PFCP session was being allocated.
It allows looking up if a given UP SEID exists in any of the peers.
Before this patch, iterating over tens/hundreds of UP peers on every
session creation took 38% of a full CPU.

Change-Id: I617b405e59a3435a1c4912bf4161bc9e036754b4
The file was modifiedsrc/osmo-upf/up_endpoint.c
The file was modifiedinclude/osmocom/upf/up_endpoint.h
The file was modifiedinclude/osmocom/upf/up_session.h
The file was modifiedsrc/osmo-upf/up_session.c
Commit d2241da833efc3f1eead433801871a226566f47a by Pau Espin Pedrol
up_peer: Increase up/cp seid hashtable sizes

During a 200K session setup, this can still take quite a noticeable
amount of time (20% of a full CPU) during session creation.

Change-Id: I424778a4c75000fb67ba4725a6a3e3e91a80fc76
The file was modifiedinclude/osmocom/upf/up_peer.h
Commit a2289c073036817196e858bd496dc5e6b7ab9994 by Pau Espin Pedrol
Increase per PDR (F-TEID) hashtable size

In tunmap scenario there's usually 2 PDRs/local-F-TEIDs per session,
hence it makes sense to at least double the hashtable size with respect
to session hashtable. In here we actually multiply it by 2 twice since
this is actually global and not per peer, hence we account for multiple
peers.

Change-Id: I7ee3e875020d707c05e13ee70952174ca4daad30
The file was modifiedinclude/osmocom/upf/upf.h