Overview
Domain Proxy is an application whose purpose is to communicate eNodeBs with SAS, send requests to SAS on behalf of them, and maintain their desired state.
Motivation
Vendor neutral Domain Proxy serves as a single point of contact for eNB-SAS communication for private networks using Magma as the Operator Core.
Without a vendor neutral Domain Proxy an eNB has to request for SAS Spectrums / Grants on its own. This requires the eNB to speak the same protocol as SAS (JSON over HTTPS), have the intelligence to send specific requests required by SAS, and adhere to the sequence in which they need to be sent. Radios capable of doing this have their own (usually internal) proprietary domain proxy.
One of the primary goals of Domain Proxy is to keep the validity of the grant obtained by a radio from SAS even in case of intermittent network failures. This happens thanks to heartbeat requests being sent to SAS on behalf of the radio for up to 4 hours (by default) of radio's inactivity.
Implementation
Backend
DP is a microservice application written in Python and Go. Internally components communicate with each other using **
gRPC** calls. In addition to the application, which is deployed as a separate entity, there is a DP service within the
Orchestrator, written in Go, acting as an API backend for the currently developed UI NMS portal.
Frontend
NMS UI page for Domain Proxy management is currently under development.
Big Picture
The picture below gives a very general look at the Domain Proxy as a proxy service between radios and SAS
