NFPCF is a caching proxy for the NRF (Network Repository Function) in 5G core networks. It caches NF profiles to reduce load on the backend NRF and improve discovery performance.
- NF Registration: Transparent pass-through to backend NRF with caching
- NF Discovery: Cache-first lookup with NRF fallback
- NF Deregistration: Cache invalidation with NRF pass-through
- NF Update: Cache invalidation with NRF pass-through
- TTL-based Cache: Automatic expiration of stale entries
- Type Indexing: Fast lookup by NF type
┌──────────────┐
│ NF Clients │
│ (AMF/SMF/...) │
└──────┬───────┘
│
▼
┌──────────────────┐
│ NFPCF │
│ ┌────────────┐ │
│ │ Cache │ │
│ └────────────┘ │
└──────┬───────────┘
│
▼
┌──────────────────┐
│ NRF │
└──────────────────┘
make buildmake runOr manually:
./bin/nfpcf -c ./config/nfpcfcfg.yamlEdit config/nfpcfcfg.yaml:
server:
bindAddr: 0.0.0.0:8000
nrf:
url: http://nrf:8000
cache:
ttl: 300000000000 # 5 minutes in nanoseconds
logger:
level: infoBuild:
docker build -t nfpcf:latest .Run:
docker run -p 8000:8000 \
-e NRF_URL=http://nrf:8000 \
nfpcf:latestPUT /nnrf-nfm/v1/nf-instances/:nfInstanceID- Register NFGET /nnrf-nfm/v1/nf-instances/:nfInstanceID- Get NF profileDELETE /nnrf-nfm/v1/nf-instances/:nfInstanceID- Deregister NFPATCH /nnrf-nfm/v1/nf-instances/:nfInstanceID- Update NF
GET /nnrf-disc/v1/nf-instances?target-nf-type=...- Discover NFs
Point your NF clients to NFPCF instead of NRF:
# In AMF/SMF config
nrfUri: http://nfpcf:8000Same as free5GC project