EpcTools
An event based multi-threaded C++ development framework.
Classes | Namespaces | Macros | Enumerations | Functions
pfcpr15.h File Reference
#include "epfcp.h"
#include "eostring.h"
#include "ememory.h"
#include "pfcp_messages.h"
#include "pfcp_messages_encoder.h"
#include "pfcp_messages_decoder.h"

Go to the source code of this file.

Classes

class  PFCP_R15::LengthCalculator
 
class  PFCP_R15::IEHeader
 
struct  PFCP_R15::_CauseIE
 
class  PFCP_R15::CauseIE
 
class  PFCP_R15::SourceInterfaceIE
 
class  PFCP_R15::FTeidIE
 
class  PFCP_R15::NetworkInstanceIE
 
class  PFCP_R15::SdfFilterIE
 
class  PFCP_R15::ApplicationIdIE
 
class  PFCP_R15::GateStatusIE
 
class  PFCP_R15::MbrIE
 
class  PFCP_R15::GbrIE
 
class  PFCP_R15::QerCorrelationIdIE
 
class  PFCP_R15::PrecedenceIE
 
class  PFCP_R15::TransportLevelMarkingIE
 
class  PFCP_R15::VolumeThresholdIE
 
class  PFCP_R15::TimeThresholdIE
 
class  PFCP_R15::MonitoringTimeIE
 
class  PFCP_R15::SubsequentVolumeThresholdIE
 
class  PFCP_R15::SubsequentTimeThresholdIE
 
class  PFCP_R15::InactivityDetectionTimeIE
 
class  PFCP_R15::ReportingTriggersIE
 
class  PFCP_R15::RedirectInformationIE
 
class  PFCP_R15::ReportTypeIE
 
class  PFCP_R15::OffendingIeIE
 
class  PFCP_R15::ForwardingPolicyIE
 
class  PFCP_R15::DestinationInterfaceIE
 
class  PFCP_R15::UpFunctionFeaturesIE
 
class  PFCP_R15::ApplyActionIE
 
class  PFCP_R15::DownlinkDataServiceInformationIE
 
class  PFCP_R15::DownlinkDataNotificationDelayIE
 
class  PFCP_R15::DlBufferingDurationIE
 
class  PFCP_R15::DlBufferingSuggestedPacketCountIE
 
class  PFCP_R15::PfcpSmReqFlagsIE
 
class  PFCP_R15::PfcpSrRspFlagsIE
 
class  PFCP_R15::SequenceNumberIE
 
class  PFCP_R15::MetricIE
 
class  PFCP_R15::TimerIE
 
class  PFCP_R15::PdrIdIE
 
class  PFCP_R15::FSeidIE
 
class  PFCP_R15::NodeIdIE
 
class  PFCP_R15::PfdContentsIE
 
class  PFCP_R15::MeasurementMethodIE
 
class  PFCP_R15::UsageReportTriggerIE
 
class  PFCP_R15::MeasurementPeriodIE
 
class  PFCP_R15::FqCsidIE
 
class  PFCP_R15::VolumeMeasurementIE
 
class  PFCP_R15::DurationMeasurementIE
 
class  PFCP_R15::TimeOfFirstPacketIE
 
class  PFCP_R15::TimeOfLastPacketIE
 
class  PFCP_R15::QuotaHoldingTimeIE
 
class  PFCP_R15::DroppedDlTrafficThresholdIE
 
class  PFCP_R15::VolumeQuotaIE
 
class  PFCP_R15::TimeQuotaIE
 
class  PFCP_R15::StartTimeIE
 
class  PFCP_R15::EndTimeIE
 
class  PFCP_R15::UrrIdIE
 
class  PFCP_R15::LinkedUrrIdIE
 
class  PFCP_R15::OuterHeaderCreationIE
 
class  PFCP_R15::BarIdIE
 
class  PFCP_R15::CpFunctionFeaturesIE
 
class  PFCP_R15::UsageInformationIE
 
class  PFCP_R15::ApplicationInstanceIdIE
 
class  PFCP_R15::FlowInformationIE
 
class  PFCP_R15::UeIpAddressIE
 
class  PFCP_R15::PacketRateIE
 
class  PFCP_R15::OuterHeaderRemovalIE
 
class  PFCP_R15::RecoveryTimeStampIE
 
class  PFCP_R15::DlFlowLevelMarkingIE
 
class  PFCP_R15::HeaderEnrichmentIE
 
class  PFCP_R15::MeasurementInformationIE
 
class  PFCP_R15::NodeReportTypeIE
 
class  PFCP_R15::RemoteGTPUPeerIE
 
class  PFCP_R15::UrSeqnIE
 
class  PFCP_R15::ActivatePredefinedRulesIE
 
class  PFCP_R15::DeactivatePredefinedRulesIE
 
class  PFCP_R15::FarIdIE
 
class  PFCP_R15::QerIdIE
 
class  PFCP_R15::OciFlagsIE
 
class  PFCP_R15::AssociationReleaseRequestIE
 
class  PFCP_R15::GracefulReleasePeriodIE
 
class  PFCP_R15::PdnTypeIE
 
class  PFCP_R15::FailedRuleIdIE
 
class  PFCP_R15::TimeQuotaMechanismIE
 
class  PFCP_R15::UserPlaneIpResourceInformationIE
 
class  PFCP_R15::UserPlaneInactivityTimerIE
 
class  PFCP_R15::MultiplierIE
 
class  PFCP_R15::AggregatedUrrIdIE
 
class  PFCP_R15::SubsequentVolumeQuotaIE
 
class  PFCP_R15::SubsequentTimeQuotaIE
 
class  PFCP_R15::RqiIE
 
class  PFCP_R15::QfiIE
 
class  PFCP_R15::QueryUrrReferenceIE
 
class  PFCP_R15::AdditionalUsageReportsInformationIE
 
class  PFCP_R15::TrafficEndpointIdIE
 
class  PFCP_R15::MacAddressIE
 
class  PFCP_R15::CTagIE
 
class  PFCP_R15::STagIE
 
class  PFCP_R15::EthertypeIE
 
class  PFCP_R15::ProxyingIE
 
class  PFCP_R15::EthernetFilterIdIE
 
class  PFCP_R15::EthernetFilterPropertiesIE
 
class  PFCP_R15::SuggestedBufferingPacketsCountIE
 
class  PFCP_R15::UserIdIE
 
class  PFCP_R15::EthernetPduSessionInformationIE
 
class  PFCP_R15::MacAddressesDetectedIE
 
class  PFCP_R15::MacAddressesRemovedIE
 
class  PFCP_R15::EthernetInactivityTimerIE
 
class  PFCP_R15::SubsequentEventQuotaIE
 
class  PFCP_R15::SubsequentEventThresholdIE
 
class  PFCP_R15::TraceInformationIE
 
class  PFCP_R15::FramedRouteIE
 
class  PFCP_R15::FramedRoutingIE
 
class  PFCP_R15::FramedIpv6RouteIE
 
class  PFCP_R15::EventQuotaIE
 
class  PFCP_R15::EventThresholdIE
 
class  PFCP_R15::EventTimeStampIE
 
class  PFCP_R15::AveragingWindowIE
 
class  PFCP_R15::PagingPolicyIndicatorIE
 
class  PFCP_R15::ApnDnnIE
 
class  PFCP_R15::TgppInterfaceTypeIE
 
class  PFCP_R15::PfdContextIE
 
class  PFCP_R15::ApplicationIdsPfdsIE
 
class  PFCP_R15::CreateTrafficEndpointIE
 
class  PFCP_R15::CreateBarIE
 
class  PFCP_R15::CreateQerIE
 
class  PFCP_R15::AdditionalMonitoringTimeIE
 
class  PFCP_R15::AggregatedUrrsIE
 
class  PFCP_R15::CreateUrrIE
 
class  PFCP_R15::DuplicatingParametersIE
 
class  PFCP_R15::ForwardingParametersIE
 
class  PFCP_R15::CreateFarIE
 
class  PFCP_R15::EthernetPacketFilterIE
 
class  PFCP_R15::PdiIE
 
class  PFCP_R15::CreatePdrIE
 
class  PFCP_R15::CreatedTrafficEndpointIE
 
class  PFCP_R15::OverloadControlInformationIE
 
class  PFCP_R15::LoadControlInformationIE
 
class  PFCP_R15::CreatedPdrIE
 
class  PFCP_R15::UserPlanePathFailureReportIE
 
class  PFCP_R15::RemoveTrafficEndpointIE
 
class  PFCP_R15::UpdateTrafficEndpointIE
 
class  PFCP_R15::RemoveBarIE
 
class  PFCP_R15::UpdateBarSessionModificationReqIE
 
class  PFCP_R15::QueryUrrIE
 
class  PFCP_R15::RemoveQerIE
 
class  PFCP_R15::RemoveUrrIE
 
class  PFCP_R15::RemoveFarIE
 
class  PFCP_R15::RemovePdrIE
 
class  PFCP_R15::UpdateQerIE
 
class  PFCP_R15::UpdateUrrIE
 
class  PFCP_R15::UpdateDuplicatingParametersIE
 
class  PFCP_R15::UpdateForwardingParametersIE
 
class  PFCP_R15::UpdateFarIE
 
class  PFCP_R15::UpdatePdrIE
 
class  PFCP_R15::EthernetTrafficInformationIE
 
class  PFCP_R15::UsageReportSessionModificationRspIE
 
class  PFCP_R15::UsageReportSessionDeletionRspIE
 
class  PFCP_R15::ErrorIndicationReportIE
 
class  PFCP_R15::ApplicationDetectionInformationIE
 
class  PFCP_R15::UsageReportSessionReportReqIE
 
class  PFCP_R15::DownlinkDataReportIE
 
class  PFCP_R15::UpdateBarSessionReportRspIE
 
class  PFCP_R15::HeartbeatReq
 
class  PFCP_R15::HeartbeatRsp
 
class  PFCP_R15::PfdMgmtReq
 
class  PFCP_R15::PfdMgmtRsp
 
class  PFCP_R15::AssnSetupReq
 
class  PFCP_R15::AssnSetupRsp
 
class  PFCP_R15::AssnUpdateReq
 
class  PFCP_R15::AssnUpdateRsp
 
class  PFCP_R15::AssnReleaseReq
 
class  PFCP_R15::AssnReleaseRsp
 
class  PFCP_R15::VersionNotSupportedRsp
 
class  PFCP_R15::NodeReportReq
 
class  PFCP_R15::NodeReportRsp
 
class  PFCP_R15::SessionSetDeletionReq
 
class  PFCP_R15::SessionSetDeletionRsp
 
class  PFCP_R15::SessionEstablishmentReq
 
class  PFCP_R15::SessionEstablishmentRsp
 
class  PFCP_R15::SessionModificationReq
 
class  PFCP_R15::SessionModificationRsp
 
class  PFCP_R15::SessionDeletionReq
 
class  PFCP_R15::SessionDeletionRsp
 
class  PFCP_R15::SessionReportReq
 
class  PFCP_R15::SessionReportRsp
 
class  PFCP_R15::Translator
 

Namespaces

 PFCP_R15
 Contains the class definitions for the PFCP release 15 messages and information elements.
 

Macros

#define OVERLOADED_NEW_DELETE
 
#define CLASS_NAME
 
#define PFCP_VERSION_NOT_SUPPORTED   (11)
 

Enumerations

enum  PFCP_R15::CauseEnum : uint8_t {
  PFCP_R15::CauseEnum::Reserved = 0, PFCP_R15::CauseEnum::RequestAccepted = 1, PFCP_R15::CauseEnum::RequestRejected = 64, PFCP_R15::CauseEnum::SessionContextNotFound = 65,
  PFCP_R15::CauseEnum::MandatoryIeMissing = 66, PFCP_R15::CauseEnum::ConditionalIeMissing = 67, PFCP_R15::CauseEnum::InvalidLength = 68, PFCP_R15::CauseEnum::MandatoryIeIncorrect = 69,
  PFCP_R15::CauseEnum::InvalidForwardingPolicy = 70, PFCP_R15::CauseEnum::InvalidFTeidAllocationOption = 71, PFCP_R15::CauseEnum::NoEstablishedPfcpAssociation = 72, PFCP_R15::CauseEnum::RuleCreationModificationFailure = 73,
  PFCP_R15::CauseEnum::PfcpEntityInCongestion = 74, PFCP_R15::CauseEnum::NoResourcesAvailable = 75, PFCP_R15::CauseEnum::ServiceNotSupported = 76, PFCP_R15::CauseEnum::SystemFailure = 77
}
 
enum  PFCP_R15::SourceInterfaceEnum : uint8_t { PFCP_R15::SourceInterfaceEnum::Access = 0, PFCP_R15::SourceInterfaceEnum::Core = 1, PFCP_R15::SourceInterfaceEnum::SGILanN6Lan = 2, PFCP_R15::SourceInterfaceEnum::CPFunction = 3 }
 
enum  PFCP_R15::DownlinkGateEnum : uint8_t { PFCP_R15::DownlinkGateEnum::Open = 0, PFCP_R15::DownlinkGateEnum::Closed = 1, PFCP_R15::DownlinkGateEnum::Future1 = 2, PFCP_R15::DownlinkGateEnum::Future2 = 3 }
 
enum  PFCP_R15::UplinkGateEnum : uint8_t { PFCP_R15::UplinkGateEnum::Open = 0, PFCP_R15::UplinkGateEnum::Closed = 1, PFCP_R15::UplinkGateEnum::Future1 = 2, PFCP_R15::UplinkGateEnum::Future2 = 3 }
 
enum  PFCP_R15::RedirectAddressTypeEnum : uint8_t {
  PFCP_R15::RedirectAddressTypeEnum::ipv4_address = 0, PFCP_R15::RedirectAddressTypeEnum::ipv6_address = 1, PFCP_R15::RedirectAddressTypeEnum::url = 2, PFCP_R15::RedirectAddressTypeEnum::sip_uri = 3,
  PFCP_R15::RedirectAddressTypeEnum::ipv4_and_ipv6_address = 4
}
 
enum  PFCP_R15::DestinationInterfaceEnum : uint8_t {
  PFCP_R15::DestinationInterfaceEnum::access = 0, PFCP_R15::DestinationInterfaceEnum::core = 1, PFCP_R15::DestinationInterfaceEnum::sgi_lan_n6_lan = 2, PFCP_R15::DestinationInterfaceEnum::cp_function = 3,
  PFCP_R15::DestinationInterfaceEnum::li_function = 4
}
 
enum  PFCP_R15::DlBufferingDurationTimerUnitEnum : uint8_t {
  PFCP_R15::DlBufferingDurationTimerUnitEnum::two_seconds = 0, PFCP_R15::DlBufferingDurationTimerUnitEnum::one_minute = 1, PFCP_R15::DlBufferingDurationTimerUnitEnum::ten_minutes = 2, PFCP_R15::DlBufferingDurationTimerUnitEnum::one_hour = 3,
  PFCP_R15::DlBufferingDurationTimerUnitEnum::ten_hours = 4, PFCP_R15::DlBufferingDurationTimerUnitEnum::infinite = 7
}
 
enum  PFCP_R15::TimerTimerUnitEnum : uint8_t {
  PFCP_R15::TimerTimerUnitEnum::two_seconds = 0, PFCP_R15::TimerTimerUnitEnum::one_minute = 1, PFCP_R15::TimerTimerUnitEnum::ten_minutes = 2, PFCP_R15::TimerTimerUnitEnum::one_hour = 3,
  PFCP_R15::TimerTimerUnitEnum::ten_hours = 4, PFCP_R15::TimerTimerUnitEnum::infinite = 7
}
 
enum  PFCP_R15::NodeIdTypeEnum : uint8_t { PFCP_R15::NodeIdTypeEnum::ipv4_address = 0, PFCP_R15::NodeIdTypeEnum::ipv6_address = 1, PFCP_R15::NodeIdTypeEnum::FQDN = 2 }
 
enum  PFCP_R15::FqCsidNodeIdTypeEnum : uint8_t { PFCP_R15::FqCsidNodeIdTypeEnum::ipv4 = 0, PFCP_R15::FqCsidNodeIdTypeEnum::ipv6 = 1, PFCP_R15::FqCsidNodeIdTypeEnum::mcc_mnc_id = 2 }
 
enum  PFCP_R15::InternetProtocolEnum { PFCP_R15::InternetProtocolEnum::TCP = 6, PFCP_R15::InternetProtocolEnum::UDP = 17 }
 
enum  PFCP_R15::FlowDirectionEnum : uint8_t { PFCP_R15::FlowDirectionEnum::unspecified = 0, PFCP_R15::FlowDirectionEnum::downlink = 1, PFCP_R15::FlowDirectionEnum::uplink = 2, PFCP_R15::FlowDirectionEnum::bidirectional = 3 }
 
enum  PFCP_R15::UplinkDownlinkTimeUnitEnum : uint8_t {
  PFCP_R15::UplinkDownlinkTimeUnitEnum::minute = 0, PFCP_R15::UplinkDownlinkTimeUnitEnum::six_minutes = 1, PFCP_R15::UplinkDownlinkTimeUnitEnum::hour = 2, PFCP_R15::UplinkDownlinkTimeUnitEnum::day = 3,
  PFCP_R15::UplinkDownlinkTimeUnitEnum::week = 4
}
 
enum  PFCP_R15::OuterHeaderRemovalEnum : uint8_t {
  PFCP_R15::OuterHeaderRemovalEnum::gtpu_udp_ipv4 = 0, PFCP_R15::OuterHeaderRemovalEnum::gtpu_udp_ipv6 = 1, PFCP_R15::OuterHeaderRemovalEnum::udp_ipv4 = 2, PFCP_R15::OuterHeaderRemovalEnum::udp_ipv6 = 3,
  PFCP_R15::OuterHeaderRemovalEnum::ipv4 = 4, PFCP_R15::OuterHeaderRemovalEnum::ipv6 = 5, PFCP_R15::OuterHeaderRemovalEnum::gtpu_udp_ip = 6, PFCP_R15::OuterHeaderRemovalEnum::stag = 7,
  PFCP_R15::OuterHeaderRemovalEnum::stag_ctag = 8
}
 
enum  PFCP_R15::HeaderTypeEnum : uint8_t { PFCP_R15::HeaderTypeEnum::http = 0 }
 
enum  PFCP_R15::GracefulReleasePeriodTimerUnitEnum : uint8_t {
  PFCP_R15::GracefulReleasePeriodTimerUnitEnum::two_seconds = 0, PFCP_R15::GracefulReleasePeriodTimerUnitEnum::one_minute = 1, PFCP_R15::GracefulReleasePeriodTimerUnitEnum::ten_minutes = 2, PFCP_R15::GracefulReleasePeriodTimerUnitEnum::one_hour = 3,
  PFCP_R15::GracefulReleasePeriodTimerUnitEnum::ten_hours = 4, PFCP_R15::GracefulReleasePeriodTimerUnitEnum::infinite = 7
}
 
enum  PFCP_R15::PdnTypeEnum : uint8_t {
  PFCP_R15::PdnTypeEnum::ipv4 = 1, PFCP_R15::PdnTypeEnum::ipv6 = 2, PFCP_R15::PdnTypeEnum::ipv4v6 = 3, PFCP_R15::PdnTypeEnum::nonip = 4,
  PFCP_R15::PdnTypeEnum::ethernet = 5
}
 
enum  PFCP_R15::RuleIdTypeEnum : uint8_t {
  PFCP_R15::RuleIdTypeEnum::pdr = 0, PFCP_R15::RuleIdTypeEnum::far = 1, PFCP_R15::RuleIdTypeEnum::qer = 2, PFCP_R15::RuleIdTypeEnum::urr = 3,
  PFCP_R15::RuleIdTypeEnum::bar = 4
}
 
enum  PFCP_R15::BaseTimeIntervalTypeEnum : uint8_t { PFCP_R15::BaseTimeIntervalTypeEnum::ctp = 0, PFCP_R15::BaseTimeIntervalTypeEnum::dtp = 1 }
 
enum  PFCP_R15::FramedRoutingEnum : uint32_t { PFCP_R15::FramedRoutingEnum::none = 0, PFCP_R15::FramedRoutingEnum::send_routing_packets = 1, PFCP_R15::FramedRoutingEnum::listen_for_routing_packets = 2, PFCP_R15::FramedRoutingEnum::send_and_listen = 3 }
 
enum  PFCP_R15::TgppInterfaceTypeEnum : uint8_t {
  PFCP_R15::TgppInterfaceTypeEnum::S1U = 0, PFCP_R15::TgppInterfaceTypeEnum::S5S8U = 1, PFCP_R15::TgppInterfaceTypeEnum::S4u = 2, PFCP_R15::TgppInterfaceTypeEnum::S11U = 3,
  PFCP_R15::TgppInterfaceTypeEnum::S12U = 4, PFCP_R15::TgppInterfaceTypeEnum::GnGpU = 5, PFCP_R15::TgppInterfaceTypeEnum::S2aU = 6, PFCP_R15::TgppInterfaceTypeEnum::S2bU = 7,
  PFCP_R15::TgppInterfaceTypeEnum::eNodeB_GTPU_interface_for_DL_data_forwarding = 8, PFCP_R15::TgppInterfaceTypeEnum::eNodeB_GTPU_interface_for_UL_data_forwarding = 9, PFCP_R15::TgppInterfaceTypeEnum::SGW_UPF_GTPU_interface_for_DL_data_forwarding = 10, PFCP_R15::TgppInterfaceTypeEnum::N3_3GPP_Access = 11,
  PFCP_R15::TgppInterfaceTypeEnum::N3_Trusted_Non_3GPP_Access = 12, PFCP_R15::TgppInterfaceTypeEnum::N3_Untrusted_Non_3GPP_Access = 13, PFCP_R15::TgppInterfaceTypeEnum::N3_for_data_forwarding = 14, PFCP_R15::TgppInterfaceTypeEnum::N9 = 15
}
 

Functions

 DECLARE_ERROR (RequestedSizeTooLarge)
 
 PFCP_R15::DECLARE_ERROR_ADVANCED2 (NodeIdException_UnrecognizedNodeIdType)
 
 PFCP_R15::DECLARE_ERROR (NodeIdException_NodeIdTypeLengthMismatch)
 
struct PFCP_R15::__attribute ((__may_alias__)) _HeartbeatReq
 

Macro Definition Documentation

#define CLASS_NAME
Value:
public: \
EString &className() override \
{ \
static EString cn_ = ::__CLASS_NAME__; \
return cn_; \
}
String class.
Definition: estring.h:31
#define OVERLOADED_NEW_DELETE
Value:
public: \
static void* operator new(size_t sz) \
{ \
if (sz > pool_->allocSize()) \
throw RequestedSizeTooLarge(); \
return pool_->allocate(); \
} \
static void operator delete(void* m) \
{ \
pool_->deallocate(m); \
} \
static Void setMemoryPool(EMemory::Pool &pool) \
{ \
pool_ = &pool; \
} \
private: \
static EMemory::Pool *pool_;
Definition: ememory.h:92
#define PFCP_VERSION_NOT_SUPPORTED   (11)

Function Documentation

DECLARE_ERROR ( RequestedSizeTooLarge  )