|
EpcTools
An event based multi-threaded C++ development framework.
|
Classes | |
| class | ApplicationWorker |
| The application worker thread class. The various virtual methods should be overridden to implement application specific behavior. Any additional event handlers can be added to handle application specific (non PFCP) events. More... | |
| class | ApplicationWorkGroup |
| The PFCP application work group template. This template contains the common event queue for the application worker threads. More... | |
| class | ApplicationWorkGroupBase |
| class | AppMsg |
| Contains the base functionality for all aplication messages. More... | |
| class | AppMsgNodeReq |
| Represents a request application node message (not associated with a session). More... | |
| class | AppMsgNodeRsp |
| Represents a response application message. More... | |
| class | AppMsgReq |
| Represents a request application message. More... | |
| class | AppMsgRsp |
| Represents a response application message. More... | |
| class | AppMsgSessionReq |
| Represents a request application session message. More... | |
| class | AppMsgSessionRsp |
| Represents a response application message. More... | |
| class | Configuration |
| Contains all of the configuration values used in the PFCP stack. More... | |
| class | FqSeid |
| Represents a Fully Qualified SEID. This combines an IP address with a SEID. More... | |
| class | LocalNode |
| Represents the local PFCP node. More... | |
| class | LocalNodeStateChangeEvent |
| class | Node |
| Contains the basic Node functionality common to both a LocalNode and a RemoteNode. More... | |
| class | NodeSocket |
| Encapsulates the UDP Socket functionality used to communicate with a PFCP peer. More... | |
| class | RemoteNode |
| Represents a remote or peer PFCP node or host. More... | |
| class | RemoteNodeRestartEvent |
| class | RemoteNodeStateChangeEvent |
| class | SeidManager |
| Allocates and deallocates SEID's (PFCP session ID's). Each "slice" should have it's own instance of this object. More... | |
| class | SequenceManager |
| Allocates and deallocates sequence numbers used in PFCP request messages. Each "slice" should have it's own instance of this object. More... | |
| class | SessionBase |
| Represents a PFCP session. It is expected that a developer utilizing this library will derive their own specialized session object from this class. More... | |
| class | Translator |
| The PFCP Translator is used to encode and decode PFCP messages. This is a pure virtual base class that needs to be overridden to support each 3GPP PFCP release. More... | |
Typedefs | |
| typedef std::shared_ptr< SessionBase > | SessionBaseSPtr |
| typedef std::unordered_map< Seid, SessionBaseSPtr > | SessionBaseSPtrUMap |
| typedef std::shared_ptr< Node > | NodeSPtr |
| typedef std::unordered_map< EIpAddress, RemoteNodeSPtr > | RemoteNodeUMap |
| typedef std::pair< EIpAddress, RemoteNodeSPtr > | RemoteNodeUMapPair |
| typedef std::unordered_map< EIpAddress, LocalNodeSPtr > | LocalNodeUMap |
| typedef std::pair< EIpAddress, LocalNodeSPtr > | LocalNodeUMapEIpAddressPair |
| typedef std::pair< ULong, LocalNodeSPtr > | LocalNodeUMapULongPair |
| typedef AppMsg * | AppMsgPtr |
| typedef AppMsgReq * | AppMsgReqPtr |
| typedef AppMsgNodeReq * | AppMsgNodeReqPtr |
| typedef AppMsgSessionReq * | AppMsgSessionReqPtr |
| typedef AppMsgRsp * | AppMsgRspPtr |
| typedef AppMsgNodeRsp * | AppMsgNodeRspPtr |
| typedef AppMsgSessionRsp * | AppMsgSessionRspPtr |
Enumerations | |
| enum | ApplicationEvents : UInt { ApplicationEvents::RcvdReq = (APPLICATION_BASE_EVENT + 1), ApplicationEvents::RcvdRsp = (APPLICATION_BASE_EVENT + 2), ApplicationEvents::ReqTimeout = (APPLICATION_BASE_EVENT + 3), ApplicationEvents::LocalNodeStateChange = (APPLICATION_BASE_EVENT + 4), ApplicationEvents::RemoteNodeStateChange = (APPLICATION_BASE_EVENT + 5), ApplicationEvents::RemoteNodeRestart = (APPLICATION_BASE_EVENT + 6), ApplicationEvents::SndReqError = (APPLICATION_BASE_EVENT + 9), ApplicationEvents::SndRspError = (APPLICATION_BASE_EVENT + 8), ApplicationEvents::EncodeReqError = (APPLICATION_BASE_EVENT + 9), ApplicationEvents::EncodeRspError = (APPLICATION_BASE_EVENT + 10), ApplicationEvents::DecodeReqError = (APPLICATION_BASE_EVENT + 11), ApplicationEvents::DecodeRspError = (APPLICATION_BASE_EVENT + 12) } |
| The events that will be received by the application work group. More... | |
Functions | |
| Void | Initialize () |
| Initializes/starts the PFCP stack. This should be called after setting the initial configuration values. More... | |
| Void | Uninitialize () |
| Uninitializes/stops the PFCP stack. More... | |
| DECLARE_ERROR (SessionBase_LocalSeidAlreadySet) | |
| DECLARE_ERROR (SessionBase_RemoteSeidAlreadySet) | |
PFCP stack namespace.
| typedef AppMsgNodeReq* PFCP::AppMsgNodeReqPtr |
| typedef AppMsgNodeRsp* PFCP::AppMsgNodeRspPtr |
| typedef AppMsg* PFCP::AppMsgPtr |
| typedef AppMsgReq* PFCP::AppMsgReqPtr |
| typedef AppMsgRsp* PFCP::AppMsgRspPtr |
| typedef std::unordered_map<EIpAddress,LocalNodeSPtr> PFCP::LocalNodeUMap |
| typedef std::pair<EIpAddress,LocalNodeSPtr> PFCP::LocalNodeUMapEIpAddressPair |
| typedef std::pair<ULong,LocalNodeSPtr> PFCP::LocalNodeUMapULongPair |
| typedef std::shared_ptr<Node> PFCP::NodeSPtr |
| typedef std::unordered_map<EIpAddress,RemoteNodeSPtr> PFCP::RemoteNodeUMap |
| typedef std::pair<EIpAddress,RemoteNodeSPtr> PFCP::RemoteNodeUMapPair |
| typedef std::shared_ptr<SessionBase> PFCP::SessionBaseSPtr |
| typedef std::unordered_map<Seid,SessionBaseSPtr> PFCP::SessionBaseSPtrUMap |
|
strong |
The events that will be received by the application work group.
| Enumerator | |
|---|---|
| RcvdReq |
RcvdReq - TranslationThread –> ApplicationWorkGroup - AppMsgReqPtr. |
| RcvdRsp |
RcvdRsp - TranslationThread –> ApplicationWorkGroup - AppMsgRspPtr. |
| ReqTimeout |
ReqTimeout - CommunicationThread –> ApplicationWorkGroup - AppMsgReqPtr. |
| LocalNodeStateChange |
LocalNodeStateChange - CommunicationThread –> ApplicationWorkGroup - *LocalNodeStateChangeEvent. |
| RemoteNodeStateChange |
RemoteNodeStateChange - CommunicationThread –> ApplicationWorkGroup - *RemoteNodeStateChangeEvent. |
| RemoteNodeRestart |
RemoteNodeRestart - CommunicationThread –> ApplicationWorkGroup - *RemoteNodeRestartEvent. |
| SndReqError |
SndReqError - CommunicationThread –> ApplicationWorkGroup - SndReqExceptionDataPtr. |
| SndRspError |
SndRspError - CommunicationThread –> ApplicationWorkGroup - SndRspExceptionDataPtr. |
| EncodeReqError |
EncodeReqError - TranslationThread –> ApplicationWorkGroup - EncodeReqExceptionDataPtr. |
| EncodeRspError |
EncodeRspError - TranslationThread –> ApplicationWorkGroup - EncodeRspExceptionDataPtr. |
| DecodeReqError |
DecodeReqError - TranslationThread –> ApplicationWorkGroup - DecodeReqExceptionDataPtr. |
| DecodeRspError |
DecodeRspError - TranslationThread –> ApplicationWorkGroup - EncodeRspExceptionDataPtr. |
| PFCP::DECLARE_ERROR | ( | SessionBase_LocalSeidAlreadySet | ) |
| PFCP::DECLARE_ERROR | ( | SessionBase_RemoteSeidAlreadySet | ) |
| Void PFCP::Initialize | ( | ) |
Initializes/starts the PFCP stack. This should be called after setting the initial configuration values.
| Void PFCP::Uninitialize | ( | ) |
Uninitializes/stops the PFCP stack.
1.8.11