CHF Proxy

CHF Proxy is a MATRIXX component that routes PCF/SMF 5G network traffic to 5G charging interfaces.

CHF Proxy can publish 5G messages to:
  • Third-party 5G converged charging systems (CCS).
  • Third-party Diameter online charging systems, through CHF Diameter Adapter.
  • MATRIXX Charging Server, through SBA Gateway.
  • CHF Proxy can also publish network Charging Data Records (CDRs) to Apache Kafka.
CHF Proxy can be configured to publish network CDRs to multiple destinations. For example, you can publish CDRs to a third-party CCS while MATRIXX components such as SBA Gateway continue to publish CDRs as usual.

CHF Proxy receives 5G messages in JSON format and can be configured (with YAML) to route N28 (PCF)/N40 (SMF) messages based on fields in the messages. N40 data such as the following can be used to configure rules for CCS selection:

  • DNN ranges
  • Charging characteristics
  • Charging ID
  • Slice ID (S-NSSAI – SST/SD)

For N28, routing selection is based primarily on the SUPI range. For example, you can configure CHF Proxy to route all N28 messages with one Mobile Country Code (MCC) to a third-party 5G CCS and all messages with a different MCC to SBA Gateway.

Sometimes a value must be parsed before it can be used in routing rules. For example, the SUPI typically needs an imsi- or nai prefix removed before using it for numerical range comparison. You can also extract URLs, HTTP headers, and query string parameters from the JSON message. Extracted values are compared sequentially with a list of configurable routing rules to determine where to forward the message. The first match determines the selection.

Routing rules are constructed from comparison operators, such as EQUALS, BETWEEN, and NOT_IN, which compare extracted values with static values defined in the rules. A routing rule is associated with a configured charging function route.

Unreadable JSON messages are rejected and an HTTP 400 (Bad Request) error is reported. If no rule match is found for a message, a rejection is returned or the message is passed to a default routing location, depending on configuration. For more information, see the discussion about configuring routing properties.

CHF Proxy includes a client-side load balancer. When routing traffic to a CHF in the same cluster, use a Kubernetes headless service with the CHF Proxy load balancer enabled to ensure that traffic is distributed correctly. For more information, see the discussion about configuration properties of the client-side load balancer.