EpcTools
An event based multi-threaded C++ development framework.
Classes | Namespaces | Typedefs | Enumerations
epcdns.h File Reference

Classes and macros to support DNS functions defined in TS 29.303. More...

#include <stdio.h>
#include <algorithm>
#include <string>
#include <sstream>
#include <list>
#include <vector>
#include "estring.h"
#include "dnscache.h"

Go to the source code of this file.

Classes

class  EPCDNS::Utility
 Provides several utilities for manipulating names, services and protocols. More...
 
class  EPCDNS::CanonicalNodeName
 Canonical node name. More...
 
class  EPCDNS::UsageTypeList
 Represents a list of usage types. More...
 
class  EPCDNS::NetworkCapabilityList
 Represents a list of network capabilities. More...
 
class  EPCDNS::StringVector
 Represents a vector (array) of strings. More...
 
class  EPCDNS::AppProtocol
 Application protocol object. More...
 
class  EPCDNS::AppProtocolList
 Manages a list of application protocols. More...
 
class  EPCDNS::AppService
 The application service object. More...
 
class  EPCDNS::NodeSelectorResult
 Contains the node selector results. More...
 
class  EPCDNS::NodeSelectorResultList
 A list of node selector result objects. More...
 
class  EPCDNS::NodeSelector
 contains the information to select a node. More...
 
class  EPCDNS::ColocatedCandidate
 Represents a colocated candidate. More...
 
class  EPCDNS::ColocatedCandidateList
 A list of colocated candidates. More...
 
class  EPCDNS::MMENodeSelector
 A MME node selector. More...
 
class  EPCDNS::PGWNodeSelector
 A PGW node selector. More...
 
class  EPCDNS::PGWUPFNodeSelector
 A PGW user plane node selector. More...
 
class  EPCDNS::SGWNodeSelector
 A SGW node selector. More...
 
class  EPCDNS::SGWUPFNodeSelector
 A SGW user plane node selector. More...
 
class  EPCDNS::ENodeBUPFNodeSelector
 An eNodeB user plane node selector. More...
 
class  EPCDNS::EpcNodeSelector
 A EPC node selector. More...
 
class  EPCDNS::DiameterNaptr
 Diameter name pointer (NAPTR) object. More...
 
class  EPCDNS::DiameterHost
 Represents a diameter host. More...
 
class  EPCDNS::DiameterSrv
 Represents a Diameter server. More...
 
class  EPCDNS::DiameterSrvVector
 Represents a vector (array) of Diameter servers. More...
 
class  EPCDNS::DiameterNaptrA
 A Diameter NAPTR A record object. More...
 
class  EPCDNS::DiameterNaptrS
 A Diameter NAPTR S record object. More...
 
class  EPCDNS::DiameterNaptrList
 A list of Diameter NAPTR objects. More...
 
class  EPCDNS::DiameterSelector
 Represents a Diameter selector. More...
 

Namespaces

 EPCDNS
 The namespace for the TS 29.303 related DNS functions.
 

Typedefs

typedef Void(* EPCDNS::AsyncNodeSelectorCallback) (NodeSelector &ns, cpVoid data)
 

Enumerations

enum  EPCDNS::AppServiceEnum {
  EPCDNS::x_3gpp_unknown, EPCDNS::x_3gpp_any, EPCDNS::x_3gpp_pgw, EPCDNS::x_3gpp_sgw,
  EPCDNS::x_3gpp_ggsn, EPCDNS::x_3gpp_sgsn, EPCDNS::x_3gpp_mme, EPCDNS::x_3gpp_msc,
  EPCDNS::x_3gpp_upf, EPCDNS::x_3gpp_amf
}
 Service names defined in 23.003 v15.5.0, table 19.4.3.1. More...
 
enum  EPCDNS::AppProtocolEnum {
  EPCDNS::x_unknown, EPCDNS::x_gn, EPCDNS::x_gp, EPCDNS::x_n2,
  EPCDNS::x_nq, EPCDNS::x_nqprime, EPCDNS::x_s1_mme, EPCDNS::x_s1_u,
  EPCDNS::x_s10, EPCDNS::x_s11, EPCDNS::x_s12, EPCDNS::x_s16,
  EPCDNS::x_s2a_gtp, EPCDNS::x_s2a_mipv4, EPCDNS::x_s2a_pmip, EPCDNS::x_s2b_gtp,
  EPCDNS::x_s2b_pmip, EPCDNS::x_s2c_dsmip, EPCDNS::x_s3, EPCDNS::x_s4,
  EPCDNS::x_s5_gtp, EPCDNS::x_s5_pmip, EPCDNS::x_s6a, EPCDNS::x_s8_gtp,
  EPCDNS::x_s8_pmip, EPCDNS::x_sv, EPCDNS::x_sxa, EPCDNS::x_sxb,
  EPCDNS::x_sxc
}
 3GPP protocols defined in 23.003 v15.5.0, table 19.4.3.1. More...
 
enum  EPCDNS::PGWAppProtocolEnum {
  EPCDNS::pgw_x_gn, EPCDNS::pgw_x_gp, EPCDNS::pgw_x_s2a_gtp, EPCDNS::pgw_x_s2a_mipv4,
  EPCDNS::pgw_x_s2a_pmip, EPCDNS::pgw_x_s2b_gtp, EPCDNS::pgw_x_s2b_pmip, EPCDNS::pgw_x_s2c_dsmip,
  EPCDNS::pgw_x_s5_gtp, EPCDNS::pgw_x_s5_pmip, EPCDNS::pgw_x_s8_gtp, EPCDNS::pgw_x_s8_pmip
}
 the PGW related protocols. More...
 
enum  EPCDNS::SGWAppProtocolEnum {
  EPCDNS::sgw_x_s1_u, EPCDNS::sgw_x_s11, EPCDNS::sgw_x_s12, EPCDNS::sgw_x_s2a_pmip,
  EPCDNS::sgw_x_s2b_pmip, EPCDNS::sgw_x_s4, EPCDNS::sgw_x_s5_gtp, EPCDNS::sgw_x_s5_pmip,
  EPCDNS::sgw_x_s8_gtp, EPCDNS::sgw_x_s8_pmip
}
 the SGW related protocols. More...
 
enum  EPCDNS::GGSNAppProtocolEnum { EPCDNS::ggsn_x_gn, EPCDNS::ggsn_x_gp }
 the GGSN related protocols. More...
 
enum  EPCDNS::SGSNAppProtocolEnum {
  EPCDNS::sgsn_x_gn, EPCDNS::sgsn_x_gp, EPCDNS::sgsn_x_nqprime, EPCDNS::sgsn_x_s16,
  EPCDNS::sgsn_x_s3, EPCDNS::sgsn_x_s4, EPCDNS::sgsn_x_sv
}
 the SGSN related protocols. More...
 
enum  EPCDNS::MMEAppProtocolEnum {
  EPCDNS::mme_x_gn, EPCDNS::mme_x_gp, EPCDNS::mme_x_nq, EPCDNS::mme_x_s10,
  EPCDNS::mme_x_s11, EPCDNS::mme_x_s1_mme, EPCDNS::mme_x_s3, EPCDNS::mme_x_s6a,
  EPCDNS::mme_x_sv
}
 the SGSN related protocols. More...
 
enum  EPCDNS::MSCAppProtocolEnum { EPCDNS::msc_x_sv }
 the MSC related protocols. More...
 
enum  EPCDNS::UPFAppProtocolEnum { EPCDNS::upf_x_sxa, EPCDNS::upf_x_sxb, EPCDNS::upf_x_sxc }
 the UPF related protocols. More...
 
enum  EPCDNS::AMFAppProtocolEnum { EPCDNS::amf_x_n2 }
 the AMF related protocols. More...
 
enum  EPCDNS::DiameterApplicationEnum {
  EPCDNS::dia_app_unknown, EPCDNS::dia_app_nasreq, EPCDNS::dia_app_mobile_ipv4, EPCDNS::dia_app_base_accounting,
  EPCDNS::dia_app_credit_control, EPCDNS::dia_app_eap, EPCDNS::dia_app_sip6, EPCDNS::dia_app_mobile_ipv6_ike,
  EPCDNS::dia_app_mobile_ipv6_auth, EPCDNS::dia_app_qos, EPCDNS::dia_app_relay, EPCDNS::dia_app_3gpp_sta,
  EPCDNS::dia_app_3gpp_s6a, EPCDNS::dia_app_3gpp_swm, EPCDNS::dia_app_3gpp_s9, EPCDNS::dia_app_wimax_wnaaada,
  EPCDNS::dia_app_wimax_wnada, EPCDNS::dia_app_wimax_wm4da, EPCDNS::dia_app_wimax_wm6da, EPCDNS::dia_app_wimax_wdda,
  EPCDNS::dia_app_wimax_wlaada, EPCDNS::dia_app_wimax_pcc_r3_p, EPCDNS::dia_app_wimax_pcc_r3_ofc, EPCDNS::dia_app_wimax_pcc_r3_ofc_prime,
  EPCDNS::dia_app_wimax_pcc_r3_oc
}
 the Diameter application ID's. More...
 
enum  EPCDNS::DiameterProtocolEnum { EPCDNS::dia_protocol_unknown, EPCDNS::dia_protocol_tcp, EPCDNS::dia_protocol_sctp, EPCDNS::dia_protocol_tls_tcp }
 The Diameter transport protocols. More...
 
enum  EPCDNS::DiameterNaptrTypeEnum { EPCDNS::dnt_unknown, EPCDNS::dnt_hostname, EPCDNS::dnt_service }
 Diameter name pointer (NAPTR) type. More...
 

Detailed Description

Classes and macros to support DNS functions defined in TS 29.303.