Module ocs_diameter_3gpp_s6a_application_cb

This diameter_app behaviour callback module handles diameter messages for the 3GPP DIAMETER S6a/S6d applications in the cse application.

Copyright © 2016 - 2026 SigScale Global Inc.

References

Description

This diameter_app behaviour callback module handles diameter messages for the 3GPP DIAMETER S6a/S6d applications in the cse application.

Data Types

capabilities()

capabilities() = #diameter_caps{}

message()

message() = tuple() | list()

packet()

packet() = #diameter_packet{}

peer()

peer() = {Peer_Ref::term(), Capabilities::capabilities()}

state()

state() = #state{}

Function Index

peer_up/3Invoked when the peer connection is available.
peer_down/3Invoked when the peer connection is not available.
pick_peer/5Invoked as a consequence of a call to diameter:call/4 to select a destination peer for an outgoing request.
prepare_request/4Invoked to return a request for encoding and transport.
prepare_retransmit/4Invoked to return a request for encoding and retransmission.
handle_answer/5Invoked when an answer message is received from a peer.
handle_error/5Invoked when an error occurs before an answer message is received in response to an outgoing request.
handle_request/3Invoked when a request message is received from the peer.
process_request/4*Process a received DIAMETER packet.
errors/4*Handle errors in requests.
sqn/1*Sequence Number (SQN).
autn/4*Network Authentication Token (AUTN).
sqn_ms/4*Retrieve concealed SQNms from AUTS.
dif/1*The DIF value represents the current difference between generated SEQ values for that user and the GLC.
kdf/5*Key Derivation Function (KDF).

Function Details

peer_up/3

peer_up(ServiceName, Peer, State) -> NewState

Invoked when the peer connection is available

peer_down/3

peer_down(ServiceName, Peer, State) -> NewState

Invoked when the peer connection is not available

pick_peer/5

pick_peer(LocalCandidates, RemoteCandidates, ServiceName, State, Fsm) -> Result

Invoked as a consequence of a call to diameter:call/4 to select a destination peer for an outgoing request.

prepare_request/4

prepare_request(Packet, ServiceName, Peer, Fsm) -> Action

Invoked to return a request for encoding and transport

prepare_retransmit/4

prepare_retransmit(Packet, ServiceName, Peer, Fsm) -> Action

Invoked to return a request for encoding and retransmission. In case of peer connection is lost alternate peer is selected.

handle_answer/5

handle_answer(Packet, Request, ServiceName, Peer, Fsm) -> Result

Invoked when an answer message is received from a peer.

handle_error/5

handle_error(Reason, Request, ServiceName, Peer, Fsm) -> Result

Invoked when an error occurs before an answer message is received in response to an outgoing request.

handle_request/3

handle_request(Packet, ServiceName, Peer) -> Action

Invoked when a request message is received from the peer.

process_request/4 *

process_request(ServiceName, Capabilities, Request, Client) -> Result

Process a received DIAMETER packet.

To do

errors/4 *

errors(ServiceName, Capabilities, Request, Errors) -> Action

Handle errors in requests.

sqn/1 *

sqn(DIF) -> SQN

Sequence Number (SQN).

3GPP RTS 33.102 Annex C.1.1.3.

autn/4 *

autn(SQN, AK, AMF, MAC) -> AUTN

Network Authentication Token (AUTN).

sqn_ms/4 *

sqn_ms(SQN, OPc, K, RAND) -> SQN

Retrieve concealed SQNms from AUTS.

dif/1 *

dif(SQN) -> DIF

The DIF value represents the current difference between generated SEQ values for that user and the GLC.

3GPP RTS 33.102 Annex C.1.1.3.

kdf/5 *

kdf(CK, IK, SN, SQN, AK) -> MSK

Key Derivation Function (KDF).

See 3GPP TS 33.402 Annex A, 3GPP TS 32.220 Annex B.


Generated by EDoc