Telematics SDK - Interface Specification  v1.26.3
Data Services

Data Structures

class  telux::data::IDataConnectionManager
 IDataConnectionManager is a primary interface for cellular connectivity This interface provides APIs for start and stop data call connections, get data call information and listener for monitoring data calls. More...
 
class  telux::data::IDataCall
 Represents single established data call on the device. More...
 
class  telux::data::IDataConnectionListener
 
struct  telux::data::DataRestrictMode
 
struct  telux::data::PortInfo
 
struct  telux::data::ProfileParams
 
struct  telux::data::DataCallStats
 
struct  telux::data::IpAddrInfo
 
struct  telux::data::DataCallEndReason
 
struct  telux::data::VlanConfig
 
class  telux::data::DataFactory
 DataFactory is the central factory to create all data classes. More...
 
class  telux::data::IDataFilterListener
 Listener class for listening to filtering mode notifications, like Data filtering mode change. Client need to implement these methods. The methods in listener can be invoked from multiple threads. So the client needs to make sure that the implementation is thread-safe. More...
 
class  telux::data::IDataFilterManager
 IDataFilterManager class provides interface to enable/disable the data restrict filters and register for data restrict filter. The filtering can be done at any time. One such use case is to do it when we want the AP to suspend so that we are not waking up the AP due to spurious incoming messages. Also to make sure the DataRestrict mode is enabled. More...
 
class  telux::data::DataProfile
 DataProfile class represents single data profile on the modem. More...
 
class  telux::data::IDataProfileListener
 Listener class for getting profile change notification. More...
 
class  telux::data::IDataProfileManager
 
class  telux::data::IDataCreateProfileCallback
 
class  telux::data::IDataProfileListCallback
 Interface for getting list of DataProfile using callback. Client needs to implement this interface to get single shot responses for commands like get profile list and query profile. More...
 
class  telux::data::IDataProfileCallback
 
union  telux::data::DataCallEndReason.__unnamed__
 

Macros

#define PROFILE_ID_MAX   0x7FFFFFFF
 
#define IP_PROT_UNKNOWN   0xFF
 

Typedefs

using telux::data::IpProtocol = uint8_t
 

Enumerations

enum  telux::data::IpFamilyType { telux::data::IpFamilyType::UNKNOWN = -1, telux::data::IpFamilyType::IPV4 = 0x04, telux::data::IpFamilyType::IPV6 = 0x06, telux::data::IpFamilyType::IPV4V6 = 0x0A }
 
enum  telux::data::TechPreference { telux::data::TechPreference::UNKNOWN = -1, telux::data::TechPreference::TP_3GPP, telux::data::TechPreference::TP_3GPP2, telux::data::TechPreference::TP_ANY }
 
enum  telux::data::AuthProtocolType { telux::data::AuthProtocolType::AUTH_NONE = 0, telux::data::AuthProtocolType::AUTH_PAP = 1, telux::data::AuthProtocolType::AUTH_CHAP = 2, telux::data::AuthProtocolType::AUTH_PAP_CHAP = 3 }
 
enum  telux::data::DataRestrictModeType { telux::data::DataRestrictModeType::UNKNOWN = -1, telux::data::DataRestrictModeType::DISABLE, telux::data::DataRestrictModeType::ENABLE }
 
enum  telux::data::DataCallStatus {
  telux::data::DataCallStatus::INVALID = 0x00, telux::data::DataCallStatus::NET_CONNECTED, telux::data::DataCallStatus::NET_NO_NET, telux::data::DataCallStatus::NET_IDLE,
  telux::data::DataCallStatus::NET_CONNECTING, telux::data::DataCallStatus::NET_DISCONNECTING, telux::data::DataCallStatus::NET_RECONFIGURED, telux::data::DataCallStatus::NET_NEWADDR,
  telux::data::DataCallStatus::NET_DELADDR
}
 
enum  telux::data::DataBearerTechnology {
  telux::data::DataBearerTechnology::UNKNOWN, telux::data::DataBearerTechnology::CDMA_1X, telux::data::DataBearerTechnology::EVDO_REV0, telux::data::DataBearerTechnology::EVDO_REVA,
  telux::data::DataBearerTechnology::EVDO_REVB, telux::data::DataBearerTechnology::EHRPD, telux::data::DataBearerTechnology::FMC, telux::data::DataBearerTechnology::HRPD,
  telux::data::DataBearerTechnology::BEARER_TECH_3GPP2_WLAN, telux::data::DataBearerTechnology::WCDMA, telux::data::DataBearerTechnology::GPRS, telux::data::DataBearerTechnology::HSDPA,
  telux::data::DataBearerTechnology::HSUPA, telux::data::DataBearerTechnology::EDGE, telux::data::DataBearerTechnology::LTE, telux::data::DataBearerTechnology::HSDPA_PLUS,
  telux::data::DataBearerTechnology::DC_HSDPA_PLUS, telux::data::DataBearerTechnology::HSPA, telux::data::DataBearerTechnology::BEARER_TECH_64_QAM, telux::data::DataBearerTechnology::TDSCDMA,
  telux::data::DataBearerTechnology::GSM, telux::data::DataBearerTechnology::BEARER_TECH_3GPP_WLAN
}
 
enum  telux::data::EndReasonType {
  telux::data::EndReasonType::CE_UNKNOWN = 0xFF, telux::data::EndReasonType::CE_MOBILE_IP = 0x01, telux::data::EndReasonType::CE_INTERNAL = 0x02, telux::data::EndReasonType::CE_CALL_MANAGER_DEFINED = 0x03,
  telux::data::EndReasonType::CE_3GPP_SPEC_DEFINED = 0x06, telux::data::EndReasonType::CE_PPP = 0x07, telux::data::EndReasonType::CE_EHRPD = 0x08, telux::data::EndReasonType::CE_IPV6 = 0x09,
  telux::data::EndReasonType::CE_HANDOFF = 0x0C
}
 
enum  telux::data::MobileIpReasonCode {
  telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_REASON_UNSPECIFIED = 64, telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_ADMINISTRATIVELY_PROHIBITED = 65, telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_INSUFFICIENT_RESOURCES = 66, telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_MOBILE_NODE_AUTHENTICATION_FAILURE = 67,
  telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_HA_AUTHENTICATION_FAILURE = 68, telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_REQUESTED_LIFETIME_TOO_LONG = 69, telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_MALFORMED_REQUEST = 70, telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_MALFORMED_REPLY = 71,
  telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_ENCAPSULATION_UNAVAILABLE = 72, telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_VJHC_UNAVAILABLE = 73, telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_REVERSE_TUNNEL_UNAVAILABLE = 74, telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_REVERSE_TUNNEL_IS_MANDATORY_AND_T_BIT_NOT_SET = 75,
  telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_DELIVERY_STYLE_NOT_SUPPORTED = 79, telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_MISSING_NAI = 97, telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_MISSING_HA = 98, telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_MISSING_HOME_ADDR = 99,
  telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_UNKNOWN_CHALLENGE = 104, telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_MISSING_CHALLENGE = 105, telux::data::MobileIpReasonCode::CE_MIP_FA_ERR_STALE_CHALLENGE = 106, telux::data::MobileIpReasonCode::CE_MIP_HA_ERR_REASON_UNSPECIFIED = 128,
  telux::data::MobileIpReasonCode::CE_MIP_HA_ERR_ADMINISTRATIVELY_PROHIBITED = 129, telux::data::MobileIpReasonCode::CE_MIP_HA_ERR_INSUFFICIENT_RESOURCES = 130, telux::data::MobileIpReasonCode::CE_MIP_HA_ERR_MOBILE_NODE_AUTHENTICATION_FAILURE = 131, telux::data::MobileIpReasonCode::CE_MIP_HA_ERR_FA_AUTHENTICATION_FAILURE = 132,
  telux::data::MobileIpReasonCode::CE_MIP_HA_ERR_REGISTRATION_ID_MISMATCH = 133, telux::data::MobileIpReasonCode::CE_MIP_HA_ERR_MALFORMED_REQUEST = 134, telux::data::MobileIpReasonCode::CE_MIP_HA_ERR_UNKNOWN_HA_ADDR = 136, telux::data::MobileIpReasonCode::CE_MIP_HA_ERR_REVERSE_TUNNEL_UNAVAILABLE = 137,
  telux::data::MobileIpReasonCode::CE_MIP_HA_ERR_REVERSE_TUNNEL_IS_MANDATORY_AND_T_BIT_NOT_SET = 138, telux::data::MobileIpReasonCode::CE_MIP_HA_ERR_ENCAPSULATION_UNAVAILABLE = 139, telux::data::MobileIpReasonCode::CE_MIP_ERR_REASON_UNKNOWN = -1
}
 
enum  telux::data::InternalReasonCode {
  telux::data::InternalReasonCode::CE_INTERNAL_ERROR = 201, telux::data::InternalReasonCode::CE_CALL_ENDED = 202, telux::data::InternalReasonCode::CE_INTERNAL_UNKNOWN_CAUSE_CODE = 203, telux::data::InternalReasonCode::CE_UNKNOWN_CAUSE_CODE = 204,
  telux::data::InternalReasonCode::CE_CLOSE_IN_PROGRESS = 205, telux::data::InternalReasonCode::CE_NW_INITIATED_TERMINATION = 206, telux::data::InternalReasonCode::CE_APP_PREEMPTED = 207, telux::data::InternalReasonCode::CE_ERR_PDN_IPV4_CALL_DISALLOWED = 208,
  telux::data::InternalReasonCode::CE_ERR_PDN_IPV4_CALL_THROTTLED = 209, telux::data::InternalReasonCode::CE_ERR_PDN_IPV6_CALL_DISALLOWED = 210, telux::data::InternalReasonCode::CE_ERR_PDN_IPV6_CALL_THROTTLED = 211, telux::data::InternalReasonCode::CE_MODEM_RESTART = 212,
  telux::data::InternalReasonCode::CE_PDP_PPP_NOT_SUPPORTED = 213, telux::data::InternalReasonCode::CE_UNPREFERRED_RAT = 214, telux::data::InternalReasonCode::CE_PHYS_LINK_CLOSE_IN_PROGRESS = 215, telux::data::InternalReasonCode::CE_APN_PENDING_HANDOVER = 216,
  telux::data::InternalReasonCode::CE_PROFILE_BEARER_INCOMPATIBLE = 217, telux::data::InternalReasonCode::CE_MMGSDI_CARD_EVT = 218, telux::data::InternalReasonCode::CE_LPM_OR_PWR_DOWN = 219, telux::data::InternalReasonCode::CE_APN_DISABLED = 220,
  telux::data::InternalReasonCode::CE_MPIT_EXPIRED = 221, telux::data::InternalReasonCode::CE_IPV6_ADDR_TRANSFER_FAILED = 222, telux::data::InternalReasonCode::CE_TRAT_SWAP_FAILED = 223, telux::data::InternalReasonCode::CE_EHRPD_TO_HRPD_FALLBACK = 224,
  telux::data::InternalReasonCode::CE_MANDATORY_APN_DISABLED = 225, telux::data::InternalReasonCode::CE_MIP_CONFIG_FAILURE = 226, telux::data::InternalReasonCode::CE_INTERNAL_PDN_INACTIVITY_TIMER_EXPIRED = 227, telux::data::InternalReasonCode::CE_MAX_V4_CONNECTIONS = 228,
  telux::data::InternalReasonCode::CE_MAX_V6_CONNECTIONS = 229, telux::data::InternalReasonCode::CE_APN_MISMATCH = 230, telux::data::InternalReasonCode::CE_IP_VERSION_MISMATCH = 231, telux::data::InternalReasonCode::CE_DUN_CALL_DISALLOWED = 232,
  telux::data::InternalReasonCode::CE_INVALID_PROFILE = 233, telux::data::InternalReasonCode::CE_INTERNAL_EPC_NONEPC_TRANSITION = 234, telux::data::InternalReasonCode::CE_INVALID_PROFILE_ID = 235, telux::data::InternalReasonCode::CE_INTERNAL_CALL_ALREADY_PRESENT = 236,
  telux::data::InternalReasonCode::CE_IFACE_IN_USE = 237, telux::data::InternalReasonCode::CE_IP_PDP_MISMATCH = 238, telux::data::InternalReasonCode::CE_APN_DISALLOWED_ON_ROAMING = 239, telux::data::InternalReasonCode::CE_APN_PARAM_CHANGE = 240,
  telux::data::InternalReasonCode::CE_IFACE_IN_USE_CFG_MATCH = 241, telux::data::InternalReasonCode::CE_NULL_APN_DISALLOWED = 242, telux::data::InternalReasonCode::CE_THERMAL_MITIGATION = 243, telux::data::InternalReasonCode::CE_SUBS_ID_MISMATCH = 244,
  telux::data::InternalReasonCode::CE_DATA_SETTINGS_DISABLED = 245, telux::data::InternalReasonCode::CE_DATA_ROAMING_SETTINGS_DISABLED = 246, telux::data::InternalReasonCode::CE_APN_FORMAT_INVALID = 247, telux::data::InternalReasonCode::CE_DDS_CALL_ABORT = 248,
  telux::data::InternalReasonCode::CE_VALIDATION_FAILURE = 249, telux::data::InternalReasonCode::CE_PROFILES_NOT_COMPATIBLE = 251, telux::data::InternalReasonCode::CE_NULL_RESOLVED_APN_NO_MATCH = 252, telux::data::InternalReasonCode::CE_INVALID_APN_NAME = 253
}
 
enum  telux::data::CallManagerReasonCode {
  telux::data::CallManagerReasonCode::CE_CDMA_LOCK = 500, telux::data::CallManagerReasonCode::CE_INTERCEPT = 501, telux::data::CallManagerReasonCode::CE_REORDER = 502, telux::data::CallManagerReasonCode::CE_REL_SO_REJ = 503,
  telux::data::CallManagerReasonCode::CE_INCOM_CALL = 504, telux::data::CallManagerReasonCode::CE_ALERT_STOP = 505, telux::data::CallManagerReasonCode::CE_ACTIVATION = 506, telux::data::CallManagerReasonCode::CE_MAX_ACCESS_PROBE = 507,
  telux::data::CallManagerReasonCode::CE_CCS_NOT_SUPPORTED_BY_BS = 508, telux::data::CallManagerReasonCode::CE_NO_RESPONSE_FROM_BS = 509, telux::data::CallManagerReasonCode::CE_REJECTED_BY_BS = 510, telux::data::CallManagerReasonCode::CE_INCOMPATIBLE = 511,
  telux::data::CallManagerReasonCode::CE_ALREADY_IN_TC = 512, telux::data::CallManagerReasonCode::CE_USER_CALL_ORIG_DURING_GPS = 513, telux::data::CallManagerReasonCode::CE_USER_CALL_ORIG_DURING_SMS = 514, telux::data::CallManagerReasonCode::CE_NO_CDMA_SRV = 515,
  telux::data::CallManagerReasonCode::CE_MC_ABORT = 516, telux::data::CallManagerReasonCode::CE_PSIST_NG = 517, telux::data::CallManagerReasonCode::CE_UIM_NOT_PRESENT = 518, telux::data::CallManagerReasonCode::CE_RETRY_ORDER = 519,
  telux::data::CallManagerReasonCode::CE_ACCESS_BLOCK = 520, telux::data::CallManagerReasonCode::CEACCESS_BLOCK_ALL = 521, telux::data::CallManagerReasonCode::CE_IS707B_MAX_ACC = 522, telux::data::CallManagerReasonCode::CE_THERMAL_EMERGENCY = 523,
  telux::data::CallManagerReasonCode::CE_CALL_ORIG_THROTTLED = 524, telux::data::CallManagerReasonCode::CE_USER_CALL_ORIG_DURING_VOICE_CALL = 535, telux::data::CallManagerReasonCode::CE_CONF_FAILED = 1000, telux::data::CallManagerReasonCode::CE_INCOM_REJ = 1001,
  telux::data::CallManagerReasonCode::CE_NEW_NO_GW_SRV = 1002, telux::data::CallManagerReasonCode::CE_NEW_NO_GPRS_CONTEXT = 1003, telux::data::CallManagerReasonCode::CE_NEW_ILLEGAL_MS = 1004, telux::data::CallManagerReasonCode::CE_NEW_ILLEGAL_ME = 1005,
  telux::data::CallManagerReasonCode::CE_NEW_GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 1006, telux::data::CallManagerReasonCode::CE_NEW_GPRS_SERVICES_NOT_ALLOWED = 1007, telux::data::CallManagerReasonCode::CE_NEW_MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK = 1008, telux::data::CallManagerReasonCode::CE_NEW_IMPLICITLY_DETACHED = 1009,
  telux::data::CallManagerReasonCode::CE_NEW_PLMN_NOT_ALLOWED = 1010, telux::data::CallManagerReasonCode::CE_NEW_LA_NOT_ALLOWED = 1011, telux::data::CallManagerReasonCode::CE_NEW_GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN = 1012, telux::data::CallManagerReasonCode::CE_NEW_PDP_DUPLICATE = 1013,
  telux::data::CallManagerReasonCode::CE_NEW_UE_RAT_CHANGE = 1014, telux::data::CallManagerReasonCode::CE_NEW_CONGESTION = 1015, telux::data::CallManagerReasonCode::CE_NEW_NO_PDP_CONTEXT_ACTIVATED = 1016, telux::data::CallManagerReasonCode::CE_NEW_ACCESS_CLASS_DSAC_REJECTION = 1017,
  telux::data::CallManagerReasonCode::CE_PDP_ACTIVATE_MAX_RETRY_FAILED = 1018, telux::data::CallManagerReasonCode::CE_RAB_FAILURE = 1019, telux::data::CallManagerReasonCode::CE_ESM_UNKNOWN_EPS_BEARER_CONTEXT = 1025, telux::data::CallManagerReasonCode::CE_DRB_RELEASED_AT_RRC = 1026,
  telux::data::CallManagerReasonCode::CE_NAS_SIG_CONN_RELEASED = 1027, telux::data::CallManagerReasonCode::CE_REASON_EMM_DETACHED = 1028, telux::data::CallManagerReasonCode::CE_EMM_ATTACH_FAILED = 1029, telux::data::CallManagerReasonCode::CE_EMM_ATTACH_STARTED = 1030,
  telux::data::CallManagerReasonCode::CE_LTE_NAS_SERVICE_REQ_FAILED = 1031, telux::data::CallManagerReasonCode::CE_ESM_ACTIVE_DEDICATED_BEARER_REACTIVATED_BY_NW = 1032, telux::data::CallManagerReasonCode::CE_ESM_LOWER_LAYER_FAILURE = 1033, telux::data::CallManagerReasonCode::CE_ESM_SYNC_UP_WITH_NW = 1034,
  telux::data::CallManagerReasonCode::CE_ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER = 1035, telux::data::CallManagerReasonCode::CE_ESM_BAD_OTA_MESSAGE = 1036, telux::data::CallManagerReasonCode::CE_ESM_DS_REJECTED_THE_CALL = 1037, telux::data::CallManagerReasonCode::CE_ESM_CONTEXT_TRANSFERED_DUE_TO_IRAT = 1038,
  telux::data::CallManagerReasonCode::CE_DS_EXPLICIT_DEACT = 1039, telux::data::CallManagerReasonCode::CE_ESM_LOCAL_CAUSE_NONE = 1040, telux::data::CallManagerReasonCode::CE_LTE_NAS_SERVICE_REQ_FAILED_NO_THROTTLE = 1041, telux::data::CallManagerReasonCode::CE_ACL_FAILURE = 1042,
  telux::data::CallManagerReasonCode::CE_LTE_NAS_SERVICE_REQ_FAILED_DS_DISALLOW = 1043, telux::data::CallManagerReasonCode::CE_EMM_T3417_EXPIRED = 1044, telux::data::CallManagerReasonCode::CE_EMM_T3417_EXT_EXPIRED = 1045, telux::data::CallManagerReasonCode::CE_LRRC_UL_DATA_CNF_FAILURE_TXN = 1046,
  telux::data::CallManagerReasonCode::CE_LRRC_UL_DATA_CNF_FAILURE_HO = 1047, telux::data::CallManagerReasonCode::CE_LRRC_UL_DATA_CNF_FAILURE_CONN_REL = 1048, telux::data::CallManagerReasonCode::CE_LRRC_UL_DATA_CNF_FAILURE_RLF = 1049, telux::data::CallManagerReasonCode::CE_LRRC_UL_DATA_CNF_FAILURE_CTRL_NOT_CONN = 1050,
  telux::data::CallManagerReasonCode::CE_LRRC_CONN_EST_FAILURE = 1051, telux::data::CallManagerReasonCode::CE_LRRC_CONN_EST_FAILURE_ABORTED = 1052, telux::data::CallManagerReasonCode::CE_LRRC_CONN_EST_FAILURE_ACCESS_BARRED = 1053, telux::data::CallManagerReasonCode::CE_LRRC_CONN_EST_FAILURE_CELL_RESEL = 1054,
  telux::data::CallManagerReasonCode::CE_LRRC_CONN_EST_FAILURE_CONFIG_FAILURE = 1055, telux::data::CallManagerReasonCode::CE_LRRC_CONN_EST_FAILURE_TIMER_EXPIRED = 1056, telux::data::CallManagerReasonCode::CE_LRRC_CONN_EST_FAILURE_LINK_FAILURE = 1057, telux::data::CallManagerReasonCode::CE_LRRC_CONN_EST_FAILURE_NOT_CAMPED = 1058,
  telux::data::CallManagerReasonCode::CE_LRRC_CONN_EST_FAILURE_SI_FAILURE = 1059, telux::data::CallManagerReasonCode::CE_LRRC_CONN_EST_FAILURE_CONN_REJECT = 1060, telux::data::CallManagerReasonCode::CE_LRRC_CONN_REL_NORMAL = 1061, telux::data::CallManagerReasonCode::CE_LRRC_CONN_REL_RLF = 1062,
  telux::data::CallManagerReasonCode::CE_LRRC_CONN_REL_CRE_FAILURE = 1063, telux::data::CallManagerReasonCode::CE_LRRC_CONN_REL_OOS_DURING_CRE = 1064, telux::data::CallManagerReasonCode::CE_LRRC_CONN_REL_ABORTED = 1065, telux::data::CallManagerReasonCode::CE_LRRC_CONN_REL_SIB_READ_ERROR = 1066,
  telux::data::CallManagerReasonCode::CE_DETACH_WITH_REATTACH_LTE_NW_DETACH = 1067, telux::data::CallManagerReasonCode::CE_DETACH_WITH_OUT_REATTACH_LTE_NW_DETACH = 1068, telux::data::CallManagerReasonCode::CE_ESM_PROC_TIME_OUT = 1069, telux::data::CallManagerReasonCode::CE_INVALID_CONNECTION_ID = 1070,
  telux::data::CallManagerReasonCode::CE_INVALID_NSAPI = 1071, telux::data::CallManagerReasonCode::CE_INVALID_PRI_NSAPI = 1072, telux::data::CallManagerReasonCode::CE_INVALID_FIELD = 1073, telux::data::CallManagerReasonCode::CE_RAB_SETUP_FAILURE = 1074,
  telux::data::CallManagerReasonCode::CE_PDP_ESTABLISH_MAX_TIMEOUT = 1075, telux::data::CallManagerReasonCode::CE_PDP_MODIFY_MAX_TIMEOUT = 1076, telux::data::CallManagerReasonCode::CE_PDP_INACTIVE_MAX_TIMEOUT = 1077, telux::data::CallManagerReasonCode::CE_PDP_LOWERLAYER_ERROR = 1078,
  telux::data::CallManagerReasonCode::CE_PPD_UNKNOWN_REASON = 1079, telux::data::CallManagerReasonCode::CE_PDP_MODIFY_COLLISION = 1080, telux::data::CallManagerReasonCode::CE_PDP_MBMS_REQUEST_COLLISION = 1081, telux::data::CallManagerReasonCode::CE_MBMS_DUPLICATE = 1082,
  telux::data::CallManagerReasonCode::CE_SM_PS_DETACHED = 1083, telux::data::CallManagerReasonCode::CE_SM_NO_RADIO_AVAILABLE = 1084, telux::data::CallManagerReasonCode::CE_SM_ABORT_SERVICE_NOT_AVAILABLE = 1085, telux::data::CallManagerReasonCode::CE_MESSAGE_EXCEED_MAX_L2_LIMIT = 1086,
  telux::data::CallManagerReasonCode::CE_SM_NAS_SRV_REQ_FAILURE = 1087, telux::data::CallManagerReasonCode::CE_RRC_CONN_EST_FAILURE_REQ_ERROR = 1088, telux::data::CallManagerReasonCode::CE_RRC_CONN_EST_FAILURE_TAI_CHANGE = 1089, telux::data::CallManagerReasonCode::CE_RRC_CONN_EST_FAILURE_RF_UNAVAILABLE = 1090,
  telux::data::CallManagerReasonCode::CE_RRC_CONN_REL_ABORTED_IRAT_SUCCESS = 1091, telux::data::CallManagerReasonCode::CE_RRC_CONN_REL_RLF_SEC_NOT_ACTIVE = 1092, telux::data::CallManagerReasonCode::CE_RRC_CONN_REL_IRAT_TO_LTE_ABORTED = 1093, telux::data::CallManagerReasonCode::CE_RRC_CONN_REL_IRAT_FROM_LTE_TO_G_CCO_SUCCESS = 1094,
  telux::data::CallManagerReasonCode::CE_RRC_CONN_REL_IRAT_FROM_LTE_TO_G_CCO_ABORTED = 1095, telux::data::CallManagerReasonCode::CE_IMSI_UNKNOWN_IN_HSS = 1096, telux::data::CallManagerReasonCode::CE_IMEI_NOT_ACCEPTED = 1097, telux::data::CallManagerReasonCode::CE_EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED = 1098,
  telux::data::CallManagerReasonCode::CE_EPS_SERVICES_NOT_ALLOWED_IN_PLMN = 1099, telux::data::CallManagerReasonCode::CE_MSC_TEMPORARILY_NOT_REACHABLE = 1100, telux::data::CallManagerReasonCode::CE_CS_DOMAIN_NOT_AVAILABLE = 1101, telux::data::CallManagerReasonCode::CE_ESM_FAILURE = 1102,
  telux::data::CallManagerReasonCode::CE_MAC_FAILURE = 1103, telux::data::CallManagerReasonCode::CE_SYNCH_FAILURE = 1104, telux::data::CallManagerReasonCode::CE_UE_SECURITY_CAPABILITIES_MISMATCH = 1105, telux::data::CallManagerReasonCode::CE_SECURITY_MODE_REJ_UNSPECIFIED = 1106,
  telux::data::CallManagerReasonCode::CE_NON_EPS_AUTH_UNACCEPTABLE = 1107, telux::data::CallManagerReasonCode::CE_CS_FALLBACK_CALL_EST_NOT_ALLOWED = 1108, telux::data::CallManagerReasonCode::CE_NO_EPS_BEARER_CONTEXT_ACTIVATED = 1109, telux::data::CallManagerReasonCode::CE_EMM_INVALID_STATE = 1110,
  telux::data::CallManagerReasonCode::CE_NAS_LAYER_FAILURE = 1111, telux::data::CallManagerReasonCode::CE_MULTI_PDN_NOT_ALLOWED = 1112, telux::data::CallManagerReasonCode::CE_EMBMS_NOT_ENABLED = 1113, telux::data::CallManagerReasonCode::CE_PENDING_REDIAL_CALL_CLEANUP = 1114,
  telux::data::CallManagerReasonCode::CE_EMBMS_REGULAR_DEACTIVATION = 1115, telux::data::CallManagerReasonCode::CE_TLB_REGULAR_DEACTIVATION = 1116, telux::data::CallManagerReasonCode::CE_LOWER_LAYER_REGISTRATION_FAILURE = 1117, telux::data::CallManagerReasonCode::CE_DETACH_EPS_SERVICES_NOT_ALLOWED = 1118,
  telux::data::CallManagerReasonCode::CE_SM_INTERNAL_PDP_DEACTIVATION = 1119, telux::data::CallManagerReasonCode::CE_UNSUPPORTED_1X_PREV = 1515, telux::data::CallManagerReasonCode::CE_CD_GEN_OR_BUSY = 1500, telux::data::CallManagerReasonCode::CE_CD_BILL_OR_AUTH = 1501,
  telux::data::CallManagerReasonCode::CE_CHG_HDR = 1502, telux::data::CallManagerReasonCode::CE_EXIT_HDR = 1503, telux::data::CallManagerReasonCode::CE_HDR_NO_SESSION = 1504, telux::data::CallManagerReasonCode::CE_HDR_ORIG_DURING_GPS_FIX = 1505,
  telux::data::CallManagerReasonCode::CE_HDR_CS_TIMEOUT = 1506, telux::data::CallManagerReasonCode::CE_HDR_RELEASED_BY_CM = 1507, telux::data::CallManagerReasonCode::CE_COLLOC_ACQ_FAIL = 1508, telux::data::CallManagerReasonCode::CE_OTASP_COMMIT_IN_PROG = 1509,
  telux::data::CallManagerReasonCode::CE_NO_HYBR_HDR_SRV = 1510, telux::data::CallManagerReasonCode::CE_HDR_NO_LOCK_GRANTED = 1511, telux::data::CallManagerReasonCode::CE_HOLD_OTHER_IN_PROG = 1512, telux::data::CallManagerReasonCode::CE_HDR_FADE = 1513,
  telux::data::CallManagerReasonCode::CE_HDR_ACC_FAIL = 1514, telux::data::CallManagerReasonCode::CE_CLIENT_END = 2000, telux::data::CallManagerReasonCode::CE_NO_SRV = 2001, telux::data::CallManagerReasonCode::CE_FADE = 2002,
  telux::data::CallManagerReasonCode::CE_REL_NORMAL = 2003, telux::data::CallManagerReasonCode::CE_ACC_IN_PROG = 2004, telux::data::CallManagerReasonCode::CE_ACC_FAIL = 2005, telux::data::CallManagerReasonCode::CE_REDIR_OR_HANDOFF = 2006,
  telux::data::CallManagerReasonCode::CE_CM_UNKNOWN_ERROR = 2007, telux::data::CallManagerReasonCode::CE_OFFLINE = 2500, telux::data::CallManagerReasonCode::CE_EMERGENCY_MODE = 2501, telux::data::CallManagerReasonCode::CE_PHONE_IN_USE = 2502,
  telux::data::CallManagerReasonCode::CE_INVALID_MODE = 2503, telux::data::CallManagerReasonCode::CE_INVALID_SIM_STATE = 2504, telux::data::CallManagerReasonCode::CE_NO_COLLOC_HDR = 2505, telux::data::CallManagerReasonCode::CE_CALL_CONTROL_REJECTED = 2506,
  telux::data::CallManagerReasonCode::CE_UNKNOWN = -1
}
 
enum  telux::data::SpecReasonCode {
  telux::data::SpecReasonCode::CE_OPERATOR_DETERMINED_BARRING = 8, telux::data::SpecReasonCode::CE_NAS_SIGNALLING_ERROR = 14, telux::data::SpecReasonCode::CE_LLC_SNDCP_FAILURE = 25, telux::data::SpecReasonCode::CE_INSUFFICIENT_RESOURCES = 26,
  telux::data::SpecReasonCode::CE_UNKNOWN_APN = 27, telux::data::SpecReasonCode::CE_UNKNOWN_PDP = 28, telux::data::SpecReasonCode::CE_AUTH_FAILED = 29, telux::data::SpecReasonCode::CE_GGSN_REJECT = 30,
  telux::data::SpecReasonCode::CE_ACTIVATION_REJECT = 31, telux::data::SpecReasonCode::CE_OPTION_NOT_SUPPORTED = 32, telux::data::SpecReasonCode::CE_OPTION_UNSUBSCRIBED = 33, telux::data::SpecReasonCode::CE_OPTION_TEMP_OOO = 34,
  telux::data::SpecReasonCode::CE_NSAPI_ALREADY_USED = 35, telux::data::SpecReasonCode::CE_REGULAR_DEACTIVATION = 36, telux::data::SpecReasonCode::CE_QOS_NOT_ACCEPTED = 37, telux::data::SpecReasonCode::CE_NETWORK_FAILURE = 38,
  telux::data::SpecReasonCode::CE_UMTS_REACTIVATION_REQ = 39, telux::data::SpecReasonCode::CE_FEATURE_NOT_SUPPORTED = 40, telux::data::SpecReasonCode::CE_TFT_SEMANTIC_ERROR = 41, telux::data::SpecReasonCode::CE_TFT_SYNTAX_ERROR = 42,
  telux::data::SpecReasonCode::CE_UNKNOWN_PDP_CONTEXT = 43, telux::data::SpecReasonCode::CE_FILTER_SEMANTIC_ERROR = 44, telux::data::SpecReasonCode::CE_FILTER_SYNTAX_ERROR = 45, telux::data::SpecReasonCode::CE_PDP_WITHOUT_ACTIVE_TFT = 46,
  telux::data::SpecReasonCode::CE_IP_V4_ONLY_ALLOWED = 50, telux::data::SpecReasonCode::CE_IP_V6_ONLY_ALLOWED = 51, telux::data::SpecReasonCode::CE_SINGLE_ADDR_BEARER_ONLY = 52, telux::data::SpecReasonCode::CE_ESM_INFO_NOT_RECEIVED = 53,
  telux::data::SpecReasonCode::CE_PDN_CONN_DOES_NOT_EXIST = 54, telux::data::SpecReasonCode::CE_MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED = 55, telux::data::SpecReasonCode::CE_MAX_ACTIVE_PDP_CONTEXT_REACHED = 65, telux::data::SpecReasonCode::CE_UNSUPPORTED_APN_IN_CURRENT_PLMN = 66,
  telux::data::SpecReasonCode::CE_INVALID_TRANSACTION_ID = 81, telux::data::SpecReasonCode::CE_MESSAGE_INCORRECT_SEMANTIC = 95, telux::data::SpecReasonCode::CE_INVALID_MANDATORY_INFO = 96, telux::data::SpecReasonCode::CE_MESSAGE_TYPE_UNSUPPORTED = 97,
  telux::data::SpecReasonCode::CE_MSG_TYPE_NONCOMPATIBLE_STATE = 98, telux::data::SpecReasonCode::CE_UNKNOWN_INFO_ELEMENT = 99, telux::data::SpecReasonCode::CE_CONDITIONAL_IE_ERROR = 100, telux::data::SpecReasonCode::CE_MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE = 101,
  telux::data::SpecReasonCode::CE_PROTOCOL_ERROR = 111, telux::data::SpecReasonCode::CE_APN_TYPE_CONFLICT = 112, telux::data::SpecReasonCode::CE_INVALID_PCSCF_ADDRESS = 113, telux::data::SpecReasonCode::CE_INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN = 114,
  telux::data::SpecReasonCode::CE_EMM_ACCESS_BARRED = 115, telux::data::SpecReasonCode::CE_EMERGENCY_IFACE_ONLY = 116, telux::data::SpecReasonCode::CE_IFACE_MISMATCH = 117, telux::data::SpecReasonCode::CE_COMPANION_IFACE_IN_USE = 118,
  telux::data::SpecReasonCode::CE_IP_ADDRESS_MISMATCH = 119, telux::data::SpecReasonCode::CE_IFACE_AND_POL_FAMILY_MISMATCH = 120, telux::data::SpecReasonCode::CE_EMM_ACCESS_BARRED_INFINITE_RETRY = 121, telux::data::SpecReasonCode::CE_AUTH_FAILURE_ON_EMERGENCY_CALL = 122,
  telux::data::SpecReasonCode::CE_INVALID_DNS_ADDR = 123, telux::data::SpecReasonCode::CE_INVALID_PCSCF_DNS_ADDR = 124, telux::data::SpecReasonCode::CE_TEST_LOOPBACK_MODE_A_OR_B_ENABLED = 125, telux::data::SpecReasonCode::CE_UNKNOWN = -1
}
 
enum  telux::data::PPPReasonCode {
  telux::data::PPPReasonCode::CE_PPP_TIMEOUT = 1, telux::data::PPPReasonCode::CE_PPP_AUTH_FAILURE = 2, telux::data::PPPReasonCode::CE_PPP_OPTION_MISMATCH = 3, telux::data::PPPReasonCode::CE_PPP_PAP_FAILURE = 31,
  telux::data::PPPReasonCode::CE_PPP_CHAP_FAILURE = 32, telux::data::PPPReasonCode::CE_PPP_CLOSE_IN_PROGRESS = 33, telux::data::PPPReasonCode::CE_PPP_NV_REFRESH_IN_PROGRESS = 34, telux::data::PPPReasonCode::CE_PPP_UNKNOWN = -1
}
 
enum  telux::data::EHRPDReasonCode {
  telux::data::EHRPDReasonCode::CE_EHRPD_SUBS_LIMITED_TO_V4 = 1, telux::data::EHRPDReasonCode::CE_EHRPD_SUBS_LIMITED_TO_V6 = 2, telux::data::EHRPDReasonCode::CE_EHRPD_VSNCP_TIMEOUT = 4, telux::data::EHRPDReasonCode::CE_EHRPD_VSNCP_FAILURE = 5,
  telux::data::EHRPDReasonCode::CE_EHRPD_VSNCP_3GPP2I_GEN_ERROR = 6, telux::data::EHRPDReasonCode::CE_EHRPD_VSNCP_3GPP2I_UNAUTH_APN = 7, telux::data::EHRPDReasonCode::CE_EHRPD_VSNCP_3GPP2I_PDN_LIMIT_EXCEED = 8, telux::data::EHRPDReasonCode::CE_EHRPD_VSNCP_3GPP2I_NO_PDN_GW = 9,
  telux::data::EHRPDReasonCode::CE_EHRPD_VSNCP_3GPP2I_PDN_GW_UNREACH = 10, telux::data::EHRPDReasonCode::CE_EHRPD_VSNCP_3GPP2I_PDN_GW_REJ = 11, telux::data::EHRPDReasonCode::CE_EHRPD_VSNCP_3GPP2I_INSUFF_PARAM = 12, telux::data::EHRPDReasonCode::CE_EHRPD_VSNCP_3GPP2I_RESOURCE_UNAVAIL = 13,
  telux::data::EHRPDReasonCode::CE_EHRPD_VSNCP_3GPP2I_ADMIN_PROHIBIT = 14, telux::data::EHRPDReasonCode::CE_EHRPD_VSNCP_3GPP2I_PDN_ID_IN_USE = 15, telux::data::EHRPDReasonCode::CE_EHRPD_VSNCP_3GPP2I_SUBSCR_LIMITATION = 16, telux::data::EHRPDReasonCode::CE_EHRPD_VSNCP_3GPP2I_PDN_EXISTS_FOR_THIS_APN = 17,
  telux::data::EHRPDReasonCode::CE_EHRPD_VSNCP_3GPP2I_RECONNECT_NOT_ALLOWED = 19, telux::data::EHRPDReasonCode::CE_EHRPD_UNKNOWN = -1
}
 
enum  telux::data::Ipv6ReasonCode { telux::data::Ipv6ReasonCode::CE_PREFIX_UNAVAILABLE = 1, telux::data::Ipv6ReasonCode::CE_IPV6_ERR_HRPD_IPV6_DISABLED = 2, telux::data::Ipv6ReasonCode::CE_IPV6_DISABLED = 3 }
 
enum  telux::data::HandoffReasonCode { telux::data::HandoffReasonCode::CE_VCER_HANDOFF_PREF_SYS_BACK_TO_SRAT = 1 }
 
enum  telux::data::ProfileChangeEvent { telux::data::ProfileChangeEvent::CREATE_PROFILE_EVENT = 1, telux::data::ProfileChangeEvent::DELETE_PROFILE_EVENT, telux::data::ProfileChangeEvent::MODIFY_PROFILE_EVENT }
 
enum  telux::data::OperationType { telux::data::OperationType::DATA_LOCAL = 0, telux::data::OperationType::DATA_REMOTE }
 
enum  telux::data::Direction { telux::data::Direction::UPLINK = 1, telux::data::Direction::DOWNLINK = 2 }
 
enum  telux::data::InterfaceType {
  telux::data::InterfaceType::UNKNOWN = 0, telux::data::InterfaceType::WLAN = 1, telux::data::InterfaceType::ETH = 2, telux::data::InterfaceType::ECM = 3,
  telux::data::InterfaceType::RNDIS = 4, telux::data::InterfaceType::MHI = 5
}
 

Detailed Description

This section contains APIs related to Cellular Data Services.


Data Structure Documentation

class telux::data::IDataConnectionManager

IDataConnectionManager is a primary interface for cellular connectivity This interface provides APIs for start and stop data call connections, get data call information and listener for monitoring data calls.

Public Member Functions

virtual bool isSubsystemReady ()=0
 
virtual std::future< bool > onSubsystemReady ()=0
 
virtual telux::common::Status startDataCall (int profileId, IpFamilyType ipFamilyType=IpFamilyType::IPV4V6, DataCallResponseCb callback=nullptr, OperationType operationType=OperationType::DATA_LOCAL, std::string apn="")=0
 
virtual telux::common::Status stopDataCall (int profileId, IpFamilyType ipFamilyType=IpFamilyType::IPV4V6, DataCallResponseCb callback=nullptr, OperationType operationType=OperationType::DATA_LOCAL, std::string apn="")=0
 
virtual telux::common::Status registerListener (std::weak_ptr< IDataConnectionListener > listener)=0
 
virtual telux::common::Status deregisterListener (std::weak_ptr< IDataConnectionListener > listener)=0
 
virtual int getSlotId ()=0
 
virtual telux::common::Status requestDataCallList (OperationType type, DataCallListResponseCb callback)=0
 
virtual ~IDataConnectionManager ()
 

Constructor & Destructor Documentation

virtual telux::data::IDataConnectionManager::~IDataConnectionManager ( )
virtual

Destructor for IDataConnectionManager

Member Function Documentation

virtual bool telux::data::IDataConnectionManager::isSubsystemReady ( )
pure virtual

Checks if the data subsystem is ready.

Returns
True if Data Connection Manager is ready for service, otherwise returns false.
virtual std::future<bool> telux::data::IDataConnectionManager::onSubsystemReady ( )
pure virtual

Wait for data subsystem to be ready.

Returns
A future that caller can wait on to be notified when card manager is ready.
virtual telux::common::Status telux::data::IDataConnectionManager::startDataCall ( int  profileId,
IpFamilyType  ipFamilyType = IpFamilyType::IPV4V6,
DataCallResponseCb  callback = nullptr,
OperationType  operationType = OperationType::DATA_LOCAL,
std::string  apn = "" 
)
pure virtual

Starts a data call corresponding to default or specified profile identifier.

This will bring up data call connection based on specified profile identifier. This is an asynchronous API, client receives notification indicating the data call establishment or failure in callback.

Note
if application starts data call on IPV4V6 then it's expected to stop the data call on same ip family type (i.e IPV4V6).
Parameters
[in]profileIdProfile identifier corresponding to which data call bring up will be done. Use IDataProfileManager::requestProfileList to get list of available profiles.
[in]ipFamilyTypeIdentifies IP family type
[out]callbackOptional callback to get the response of start data call.
[in]operationTypeOptional telux::data::OperationType
[in]apnOptional access point name
Returns
Immediate status of startDataCall() request sent i.e. success or suitable status code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::data::IDataConnectionManager::stopDataCall ( int  profileId,
IpFamilyType  ipFamilyType = IpFamilyType::IPV4V6,
DataCallResponseCb  callback = nullptr,
OperationType  operationType = OperationType::DATA_LOCAL,
std::string  apn = "" 
)
pure virtual

Stops a data call corresponding to default or specified profile identifier.

This will tear down specific data call connection based on profile identifier.

Note
if application starts data call on IPV4V6 then it's expected to stop the data call on same ip family type (i.e IPV4V6).
Parameters
[in]profileIdProfile identifier corresponding to which data call tear down will be done. Use data profile manager to get the list of available profiles.
[in]ipFamilyTypeIdentifies IP family type
[out]callbackOptional callback to get the response of stop data call
[in]operationTypeOptional telux::data::OperationType
[in]apnOptional access point name
Returns
Immediate status of stopDataCall() request sent i.e. success or suitable status code. The client receives asynchronous notifications indicating the data call tear-down.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::data::IDataConnectionManager::registerListener ( std::weak_ptr< IDataConnectionListener listener)
pure virtual

Register a listener for specific events in the Connection Manager like establishment of new data call, data call info change and call failure.

Parameters
[in]listenerpointer of IDataConnectionListener object that processes the notification
Returns
Status of registerListener success or suitable status code
virtual telux::common::Status telux::data::IDataConnectionManager::deregisterListener ( std::weak_ptr< IDataConnectionListener listener)
pure virtual

Removes a previously added listener.

Parameters
[in]listenerpointer of IDataConnectionListener object that needs to be removed
Returns
Status of deregisterListener success or suitable status code
virtual int telux::data::IDataConnectionManager::getSlotId ( )
pure virtual

Get associated slot id for the Data Connection Manager.

Returns
SlotId
virtual telux::common::Status telux::data::IDataConnectionManager::requestDataCallList ( OperationType  type,
DataCallListResponseCb  callback 
)
pure virtual

Request list of data calls available in the system

Parameters
[out]OperationTypetelux::data::OperationType
[out]callbackCallback with list of supported data calls
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
class telux::data::IDataCall

Represents single established data call on the device.

Public Member Functions

virtual const std::string & getInterfaceName ()=0
 
virtual DataBearerTechnology getCurrentBearerTech ()=0
 
virtual DataCallEndReason getDataCallEndReason ()=0
 
virtual DataCallStatus getDataCallStatus ()=0
 
virtual TechPreference getTechPreference ()=0
 
virtual std::list< IpAddrInfogetIpAddressInfo ()=0
 
virtual IpFamilyType getIpFamilyType ()=0
 
virtual int getProfileId ()=0
 
virtual OperationType getOperationType ()=0
 
virtual telux::common::Status requestDataCallStatistics (StatisticsResponseCb callback=nullptr)=0
 
virtual telux::common::Status resetDataCallStatistics (telux::common::ResponseCallback callback=nullptr)=0
 
virtual ~IDataCall ()
 

Constructor & Destructor Documentation

virtual telux::data::IDataCall::~IDataCall ( )
virtual

Destructor for IDataCall

Member Function Documentation

virtual const std::string& telux::data::IDataCall::getInterfaceName ( )
pure virtual

Get interface name for the data call associated.

Returns
Interface Name.
virtual DataBearerTechnology telux::data::IDataCall::getCurrentBearerTech ( )
pure virtual

Get the bearer technology on which earlier data call was brought up like LTE, WCDMA and etc. This is synchronous API called by client to get bearer technology corresponding to data call.

Returns
DataBearerTechnology
virtual DataCallEndReason telux::data::IDataCall::getDataCallEndReason ( )
pure virtual

Get failure reason for the data call.

Returns
DataCallFailReason.
virtual DataCallStatus telux::data::IDataCall::getDataCallStatus ( )
pure virtual

Get data call status like connected, disconnected and IP address changes.

Returns
DataCallStatus.
virtual TechPreference telux::data::IDataCall::getTechPreference ( )
pure virtual

Get the technology on which the call was brought up.

Returns
TechPreference.
virtual std::list<IpAddrInfo> telux::data::IDataCall::getIpAddressInfo ( )
pure virtual

Get list of IP address information.

Returns
List of IP address details.
virtual IpFamilyType telux::data::IDataCall::getIpFamilyType ( )
pure virtual

Get IP Family Type i.e. IPv4, IPv6 or Both

Returns
IpFamilyType.
virtual int telux::data::IDataCall::getProfileId ( )
pure virtual

Get Profile Id

Returns
Profile Identifier.
virtual OperationType telux::data::IDataCall::getOperationType ( )
pure virtual

Get data operation used for the DataCall.

Returns
OperationType
virtual telux::common::Status telux::data::IDataCall::requestDataCallStatistics ( StatisticsResponseCb  callback = nullptr)
pure virtual

Request the data transfer statistics for data call corresponding to specified profile identifier.

Parameters
[in]callbackOptional callback to get the response of request Data Call Statistics
Returns
Status of getDataCallStatistics i.e. success or suitable status code.
virtual telux::common::Status telux::data::IDataCall::resetDataCallStatistics ( telux::common::ResponseCallback  callback = nullptr)
pure virtual

Reset data transfer statistics for data call corresponding to specified profile identifier.

Parameters
[in]callbackoptional callback to get the response of reset Data call statistics
Returns
Status of resetDataCallStatistics i.e. success or suitable status code.
class telux::data::IDataConnectionListener

Interface for Data call listener object. Client needs to implement this interface to get access to data services notifications like onNewDataCall, onDataCallStatusChanged and onDataCallFailure.

The methods in listener can be invoked from multiple different threads. The implementation should be thread safe.

Public Member Functions

virtual void onDataCallInfoChanged (const std::shared_ptr< IDataCall > &dataCall)
 
virtual ~IDataConnectionListener ()
 
- Public Member Functions inherited from telux::common::IServiceStatusListener
virtual void onServiceStatusChange (ServiceStatus status)
 
virtual ~IServiceStatusListener ()
 

Constructor & Destructor Documentation

virtual telux::data::IDataConnectionListener::~IDataConnectionListener ( )
virtual

Destructor for IDataConnectionListener

Member Function Documentation

virtual void telux::data::IDataConnectionListener::onDataCallInfoChanged ( const std::shared_ptr< IDataCall > &  dataCall)
virtual

This function is called when there is a change in the data call.

Parameters
[in]statusData Call Status
[in]dataCallPointer to IDataCall
struct telux::data::DataRestrictMode

Defines the supported powersave filtering mode and autoexit for the packet data session. DataRestrictFilter

Data Fields
DataRestrictModeType filterMode

Disable or enable data filter mode. When disabled all the data packets will be forwarded from modem to the apps. When enabled only the data matching the filters will be forwarded from modem to the apps.

DataRestrictModeType filterAutoExit

Disable or enable autoexit feature. When enabled, once an incoming packet matching the filter is received, filter mode will we disable automatically and any packet will be allowed to be forwarded from modem to apps.

struct telux::data::PortInfo

Used to define the Port number and range (number of ports following port value) Ex- for ports ranging from 1000-3000 port = 1000 and range= 2000

for single port 5000 port = 5000 and range= 0

Data Fields
uint16_t port

Port.

uint16_t range

Range.

struct telux::data::ProfileParams

Profile Parameters used for profile creation, query and modify

Data Fields
string profileName

Profile Name

string apn

APN name

string userName

APN user name (if any)

string password

APN password (if any)

TechPreference techPref

Technology preference, default is TechPreference::UNKNOWN

AuthProtocolType authType

Authentication protocol type, default is AuthProtocolType::AUTH_NONE

IpFamilyType ipFamilyType

Preferred IP family for the call, default is IpFamilyType::UNKNOWN

struct telux::data::DataCallStats

Data transfer statistics structure.

Data Fields
unsigned long packetsTx

Number of packets transmitted

unsigned long packetsRx

Number of packets received

long long bytesTx

Number of bytes transmitted

long long bytesRx

Number of bytes received

unsigned long packetsDroppedTx

Number of transmit packets dropped

unsigned long packetsDroppedRx

Number of receive packets dropped

struct telux::data::IpAddrInfo

IP address information structure

Data Fields
string ifAddress

Interface IP address.

unsigned int ifMask

Subnet mask.

string gwAddress

Gateway IP address.

unsigned int gwMask

Subnet mask.

string primaryDnsAddress

Primary DNS address.

string secondaryDnsAddress

Secondary DNS address.

struct telux::data::DataCallEndReason

Structure represents data call failure reason type and code.

Data Fields
EndReasonType type

Data call terminated due to reason type, default is CE_UNKNOWN

union DataCallEndReason __unnamed__
struct telux::data::VlanConfig

Structure for vlan configuration

Data Fields
InterfaceType iface

PHY interfaces (i.e. ETH, ECM and RNDIS)

int16_t vlanId

Vlan identifier (i.e 1-4094)

bool isAccelerated

is acceleration allowed

class telux::data::DataFactory

DataFactory is the central factory to create all data classes.

Public Member Functions

std::shared_ptr< IDataConnectionManagergetDataConnectionManager (int slotId=DEFAULT_SLOT_ID)
 
std::shared_ptr< IDataProfileManagergetDataProfileManager (int slotId=DEFAULT_SLOT_ID)
 
std::shared_ptr< IDataFilterManagergetDataFilterManager (int slotId=DEFAULT_SLOT_ID)
 
std::shared_ptr< telux::data::net::INatManagergetNatManager (telux::data::OperationType oprType)
 
std::shared_ptr< telux::data::net::IFirewallManagergetFirewallManager (telux::data::OperationType oprType)
 
std::shared_ptr< telux::data::net::IFirewallEntrygetNewFirewallEntry (IpProtocol proto, Direction direction, IpFamilyType ipFamilyType)
 
std::shared_ptr< IIpFiltergetNewIpFilter (IpProtocol proto)
 
std::shared_ptr< telux::data::net::IVlanManagergetVlanManager (telux::data::OperationType oprType)
 

Static Public Member Functions

static DataFactorygetInstance ()
 

Member Function Documentation

static DataFactory& telux::data::DataFactory::getInstance ( )
static

Get Data Factory instance.

std::shared_ptr<IDataConnectionManager> telux::data::DataFactory::getDataConnectionManager ( int  slotId = DEFAULT_SLOT_ID)

Get Data Connection Manager

Parameters
[in]slotIdUnique identifier for the SIM slot
Returns
instance of IDataConnectionManager
std::shared_ptr<IDataProfileManager> telux::data::DataFactory::getDataProfileManager ( int  slotId = DEFAULT_SLOT_ID)

Get Data Profile Manager

Parameters
[in]slotIdUnique identifier for the SIM slot
Returns
instance of IDataProfileManager
std::shared_ptr<IDataFilterManager> telux::data::DataFactory::getDataFilterManager ( int  slotId = DEFAULT_SLOT_ID)

Get Data Filter Manager instance

Parameters
[in]slotIdUnique identifier for the SIM slot
Returns
instance of IDataFilterManager.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
std::shared_ptr<telux::data::net::INatManager> telux::data::DataFactory::getNatManager ( telux::data::OperationType  oprType)

Get Network Address Translation(NAT) Manager

Parameters
[in]oprTypeRequired operation type telux::data::OperationType
Returns
instance of INatManager
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
std::shared_ptr<telux::data::net::IFirewallManager> telux::data::DataFactory::getFirewallManager ( telux::data::OperationType  oprType)

Get Firewall Manager

Parameters
[in]oprTypeRequired operation type telux::data::OperationType
Returns
instance of IFirewallManager
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
std::shared_ptr<telux::data::net::IFirewallEntry> telux::data::DataFactory::getNewFirewallEntry ( IpProtocol  proto,
Direction  direction,
IpFamilyType  ipFamilyType 
)

Get Firewall entry based on IP protocol and set respective filter (i.e. TCP or UDP)

Parameters
[in]prototelux::data::IpProtocol
[in]directiontelux::data::Direction
[in]ipFamilyTypeIdentifies IP family type telux::data::IpFamilyType
Returns
instance of IFirewallEntry
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
std::shared_ptr<IIpFilter> telux::data::DataFactory::getNewIpFilter ( IpProtocol  proto)

Get IIpFilter instance based on IP Protocol, This can be used in Firewall Manager and Data Filter Manager

Parameters
[in]prototelux::data::IpProtocol Some sample protocol values are ICMP = 1 # Internet Control Message Protocol - RFC 792 IGMP = 2 # Internet Group Management Protocol - RFC 1112 TCP = 6 # Transmission Control Protocol - RFC 793 UDP = 17 # User Datagram Protocol - RFC 768 ESP = 50 # Encapsulating Security Payload - RFC 4303
Returns
instance of IIpFilter based on IpProtocol filter (i.e TCP, UDP)
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
std::shared_ptr<telux::data::net::IVlanManager> telux::data::DataFactory::getVlanManager ( telux::data::OperationType  oprType)

Get VLAN Manager

Parameters
[in]oprTypeRequired operation type telux::data::OperationType
Returns
instance of IVlanManager
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
class telux::data::IDataFilterListener

Listener class for listening to filtering mode notifications, like Data filtering mode change. Client need to implement these methods. The methods in listener can be invoked from multiple threads. So the client needs to make sure that the implementation is thread-safe.

Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

Public Member Functions

virtual void onDataRestrictModeChange (DataRestrictMode mode)
 
virtual ~IDataFilterListener ()
 
- Public Member Functions inherited from telux::common::IServiceStatusListener
virtual void onServiceStatusChange (ServiceStatus status)
 
virtual ~IServiceStatusListener ()
 

Constructor & Destructor Documentation

virtual telux::data::IDataFilterListener::~IDataFilterListener ( )
virtual

Destructor of IDataFilterListener

Member Function Documentation

virtual void telux::data::IDataFilterListener::onDataRestrictModeChange ( DataRestrictMode  mode)
virtual

This function is called when the data filtering mode is changed for the packet data session.

Parameters
[in]statethe current data filter mode
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
class telux::data::IDataFilterManager

IDataFilterManager class provides interface to enable/disable the data restrict filters and register for data restrict filter. The filtering can be done at any time. One such use case is to do it when we want the AP to suspend so that we are not waking up the AP due to spurious incoming messages. Also to make sure the DataRestrict mode is enabled.

In contrary to when DataRestrict mode is disabled, modem will forward all the incoming data packets to AP and might wake up AP unnecessarily.

Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

Public Member Functions

virtual bool isReady ()=0
 
virtual std::future< bool > onReady ()=0
 
virtual telux::common::Status registerListener (std::weak_ptr< IDataFilterListener > listener)=0
 
virtual telux::common::Status deregisterListener (std::weak_ptr< IDataFilterListener > listener)=0
 
virtual telux::common::Status setDataRestrictMode (DataRestrictMode mode, telux::common::ResponseCallback callback=nullptr, int profileId=PROFILE_ID_MAX, IpFamilyType ipFamilyType=IpFamilyType::UNKNOWN)=0
 
virtual telux::common::Status requestDataRestrictMode (std::string ifaceName, DataRestrictModeCb callback)=0
 
virtual telux::common::Status addDataRestrictFilter (std::shared_ptr< IIpFilter > &filter, telux::common::ResponseCallback callback=nullptr, int profileId=PROFILE_ID_MAX, IpFamilyType ipFamilyType=IpFamilyType::UNKNOWN)=0
 
virtual telux::common::Status removeAllDataRestrictFilters (telux::common::ResponseCallback callback=nullptr, int profileId=PROFILE_ID_MAX, IpFamilyType ipFamilyType=IpFamilyType::UNKNOWN)=0
 
virtual int getSlotId ()=0
 
virtual ~IDataFilterManager ()
 

Constructor & Destructor Documentation

virtual telux::data::IDataFilterManager::~IDataFilterManager ( )
virtual

Destructor of IDataFilterManager

Member Function Documentation

virtual bool telux::data::IDataFilterManager::isReady ( )
pure virtual

Checks the status of Data Filter Service and if the other APIs are ready for use, and returns the result.

Returns
True if the services are ready otherwise false.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual std::future<bool> telux::data::IDataFilterManager::onReady ( )
pure virtual

Wait for Data Filter Service to be ready.

Returns
A future that caller can wait on to be notified when Data Filter Service are ready.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::data::IDataFilterManager::registerListener ( std::weak_ptr< IDataFilterListener listener)
pure virtual

Register a listener for powersave filtering mode notifications.

Parameters
[in]listener- Pointer of IDataFilterListener object that processes the notification
Returns
Status of registerListener i.e success or suitable status code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::data::IDataFilterManager::deregisterListener ( std::weak_ptr< IDataFilterListener listener)
pure virtual

Remove a previously registered listener.

Parameters
[in]listener- Previously registered IDataFilterListener that needs to be removed
Returns
Status of deregisterListener, success or suitable status code
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::data::IDataFilterManager::setDataRestrictMode ( DataRestrictMode  mode,
telux::common::ResponseCallback  callback = nullptr,
int  profileId = PROFILE_ID_MAX,
IpFamilyType  ipFamilyType = IpFamilyType::UNKNOWN 
)
pure virtual

Changes the Data Powersave filter mode and auto exit feature.

This API enables or disables the powersave filtering mode of the packet data session..

Parameters
[in]mode- Enable or disable the powersave filtering mode.
[in]callback- Optional callback to get the response for the change in filter mode.
[in]profileId- Optional Profile ID for data connection. If user does not specify the profile id, then the API applies to all the currently running data connection. If user wants to apply the changes to any specific data connection, then its profile id can be specified as input.
[in]ipFamilyType- Optional IP Family type IpFamilyType. If user does not specify the ip family type, then the API applies to all the currently running data connection. If user wants to apply the changes to any specific data connection, then its ip family type can be specified as input.
Returns
Status of setDataRestrictMode i.e. success or suitable status code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::data::IDataFilterManager::requestDataRestrictMode ( std::string  ifaceName,
DataRestrictModeCb  callback 
)
pure virtual

Get the current Data Powersave filter mode

Parameters
[in]ifaceName- Interface name for data connection.
[in]callback- callback function to get the result of API.
Returns
Status of requestDataRestrictMode i.e. success or suitable status code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::data::IDataFilterManager::addDataRestrictFilter ( std::shared_ptr< IIpFilter > &  filter,
telux::common::ResponseCallback  callback = nullptr,
int  profileId = PROFILE_ID_MAX,
IpFamilyType  ipFamilyType = IpFamilyType::UNKNOWN 
)
pure virtual

This API adds a filter rules for a packet data session to achieve power savings. In case when DataRestrict mode is enabled and AP is in suspended state, Modem will filter all the incoming data packet and route them to AP only if filter rules added via addDataRestrictFilter API matches the criteria, else they are queued at Modem itself and not forwarded to AP, until filter mode is disabled.

Parameters
[in]filter- Filter rule.
[in]callback- Optional callback to get the response.
[in]profileId- Optional Profile ID for data connection. If user does not specify the profile id, then the API applies to all the currently running data connection. If user wants to apply the changes to any specific data connection, then its profile id can be specified as input.
[in]ipFamilyType- Optional IP Family type IpFamilyType. If user does not specify the ip family type, then the API applies to all the currently running data connection. If user wants to apply the changes to any specific data connection, then its ip family type can be specified as input.
Returns
Status of addDataRestrictFilter i.e. success or suitable status code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::data::IDataFilterManager::removeAllDataRestrictFilters ( telux::common::ResponseCallback  callback = nullptr,
int  profileId = PROFILE_ID_MAX,
IpFamilyType  ipFamilyType = IpFamilyType::UNKNOWN 
)
pure virtual

This API removes all the previous added powersave filter for a packet data session

Parameters
[in]callback- Optional callback to get the response.
[in]profileId- Optional Profile ID for data connection. If user does not specify the profile id, then the API applies to all the currently running data connection. If user wants to apply the changes to any specific data connection, then its profile id can be specified as input.
[in]ipFamilyType- Optional IP Family type IpFamilyType. If user does not specify the ip family type, then the API applies to all the currently running data connection. If user wants to apply the changes to any specific data connection, then its ip family type can be specified as input.
Returns
Status of removeAllDataRestrictFilters i.e. success or suitable status code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual int telux::data::IDataFilterManager::getSlotId ( )
pure virtual

Get associated slot id for the Data Filter Manager.

Returns
SlotId
class telux::data::DataProfile

DataProfile class represents single data profile on the modem.

Public Member Functions

 DataProfile (int id, const std::string &name, const std::string &apn, const std::string &username, const std::string &password, IpFamilyType ipFamilyType, TechPreference techPref, AuthProtocolType authType)
 
int getId ()
 
std::string getName ()
 
std::string getApn ()
 
std::string getUserName ()
 
std::string getPassword ()
 
TechPreference getTechPreference ()
 
AuthProtocolType getAuthProtocolType ()
 
IpFamilyType getIpFamilyType ()
 
std::string toString ()
 

Constructor & Destructor Documentation

telux::data::DataProfile::DataProfile ( int  id,
const std::string &  name,
const std::string &  apn,
const std::string &  username,
const std::string &  password,
IpFamilyType  ipFamilyType,
TechPreference  techPref,
AuthProtocolType  authType 
)

Member Function Documentation

int telux::data::DataProfile::getId ( )

Get profile identifier.

Returns
profile id
std::string telux::data::DataProfile::getName ( )

Get profile name.

Returns
profile name
std::string telux::data::DataProfile::getApn ( )

Get Access Point Name (APN) name.

Returns
APN name
std::string telux::data::DataProfile::getUserName ( )

Get profile user name.

Returns
user name
std::string telux::data::DataProfile::getPassword ( )

Get profile password.

Returns
profile password
TechPreference telux::data::DataProfile::getTechPreference ( )

Get technology preference.

Returns
TechPreference TechPreference
AuthProtocolType telux::data::DataProfile::getAuthProtocolType ( )

Get authentication preference.

Returns
AuthProtocolType AuthProtocolType
IpFamilyType telux::data::DataProfile::getIpFamilyType ( )

Get IP Family type.

Returns
IpFamilyType IpFamilyType
std::string telux::data::DataProfile::toString ( )

Get the text related informative representation of this object.

Returns
String containing informative string.
class telux::data::IDataProfileListener

Listener class for getting profile change notification.

The methods in the listener can be invoked from multiple threads. It is client's responsibility to make sure the implementation is thread safe.

Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.

Public Member Functions

virtual void onProfileUpdate (int profileId, TechPreference techPreference, ProfileChangeEvent event)
 
virtual ~IDataProfileListener ()
 

Constructor & Destructor Documentation

virtual telux::data::IDataProfileListener::~IDataProfileListener ( )
virtual

Destructor of IDataProfileListener

Member Function Documentation

virtual void telux::data::IDataProfileListener::onProfileUpdate ( int  profileId,
TechPreference  techPreference,
ProfileChangeEvent  event 
)
virtual

This function is called when profile change happens.

Parameters
[in]profileId- ID of the updated profile.
[in]techPreference- TechPreference.
[in]event- Event that caused the change in profile.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
class telux::data::IDataProfileManager

IDataProfileManager is a primary interface for profile management.

Public Member Functions

virtual bool isSubsystemReady ()=0
 
virtual std::future< bool > onSubsystemReady ()=0
 
virtual telux::common::Status requestProfileList (std::shared_ptr< IDataProfileListCallback > callback=nullptr)=0
 
virtual telux::common::Status createProfile (const ProfileParams &profileParams, std::shared_ptr< IDataCreateProfileCallback > callback=nullptr)=0
 
virtual telux::common::Status deleteProfile (uint8_t profileId, TechPreference techPreference, std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual telux::common::Status modifyProfile (uint8_t profileId, const ProfileParams &profileParams, std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual telux::common::Status queryProfile (const ProfileParams &profileParams, std::shared_ptr< IDataProfileListCallback > callback=nullptr)=0
 
virtual telux::common::Status requestProfile (uint8_t profileId, TechPreference techPreference, std::shared_ptr< IDataProfileCallback > callback=nullptr)=0
 
virtual int getSlotId ()=0
 
virtual telux::common::Status registerListener (std::weak_ptr< telux::data::IDataProfileListener > listener)=0
 
virtual telux::common::Status deregisterListener (std::weak_ptr< telux::data::IDataProfileListener > listener)=0
 
virtual ~IDataProfileManager ()
 

Constructor & Destructor Documentation

virtual telux::data::IDataProfileManager::~IDataProfileManager ( )
virtual

Destructor for IDataProfileManager

Member Function Documentation

virtual bool telux::data::IDataProfileManager::isSubsystemReady ( )
pure virtual

Checks if the data profile manager is ready.

Returns
True if data profile subsystem is ready for service otherwise false.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual std::future<bool> telux::data::IDataProfileManager::onSubsystemReady ( )
pure virtual

Waits for data profile subsystem to be ready.

Returns
A future that caller can wait on to be notified when data profile subsystem is ready.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::data::IDataProfileManager::requestProfileList ( std::shared_ptr< IDataProfileListCallback callback = nullptr)
pure virtual

Request list of profiles supported by the device.

Parameters
[in,out]callbackCallback pointer to get the response.
Returns
Status of request profile i.e. success or suitable error code.
virtual telux::common::Status telux::data::IDataProfileManager::createProfile ( const ProfileParams profileParams,
std::shared_ptr< IDataCreateProfileCallback callback = nullptr 
)
pure virtual

Create profile based on data profile params.

Parameters
[in]profileParamsprofileParams configuration to be passed for creating profile either for 3GPP or 3GPP2
[in,out]callbackCallback pointer to get the result of create profile
Returns
Status of create profile i.e. success or suitable error code.
virtual telux::common::Status telux::data::IDataProfileManager::deleteProfile ( uint8_t  profileId,
TechPreference  techPreference,
std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr 
)
pure virtual

Delete profile corresponding to profile identifier.

The deletion of a profile does not affect profile index assignments.

Parameters
[in]profileIdProfile identifier
[in]techPreferenceTechnology Preference like 3GPP / 3GPP2
[in]callbackCallback pointer to get the result of delete profile
Returns
Status of delete profile i.e. success or suitable error code.
virtual telux::common::Status telux::data::IDataProfileManager::modifyProfile ( uint8_t  profileId,
const ProfileParams profileParams,
std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr 
)
pure virtual

Modify existing profile with new profile params.

Parameters
[in]profileIdProfile identifier of profile to be modified
[in]profileParamsNew profileParams configuration passed for updating existing profile
[in]callbackCallback pointer to get the result of modify profile
Returns
Status of modify profile i.e. success or suitable error code.
virtual telux::common::Status telux::data::IDataProfileManager::queryProfile ( const ProfileParams profileParams,
std::shared_ptr< IDataProfileListCallback callback = nullptr 
)
pure virtual

Lookup modem profile/s based on given profile params.

Parameters
[in]profileParamsProfileParams configuration to be passed
[in]callbackCallback pointer to get the result of query profile
Returns
Status of query profile i.e. success or suitable error code.
virtual telux::common::Status telux::data::IDataProfileManager::requestProfile ( uint8_t  profileId,
TechPreference  techPreference,
std::shared_ptr< IDataProfileCallback callback = nullptr 
)
pure virtual

Get data profile corresponding to profile identifier.

Parameters
[in]profileIdProfile identifier
[in]techPreferenceTechnology preference
[in]callbackCallback pointer to get the result of get profile by ID
Returns
Status of requestProfile i.e. success or suitable error code.
virtual int telux::data::IDataProfileManager::getSlotId ( )
pure virtual

Get associated slot id for the Data Profile Manager.

Returns
SlotId
virtual telux::common::Status telux::data::IDataProfileManager::registerListener ( std::weak_ptr< telux::data::IDataProfileListener listener)
pure virtual

Listen for create, delete and modify profile events.

Parameters
[in]listener- Listener that processes the notification.
Returns
Status.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::data::IDataProfileManager::deregisterListener ( std::weak_ptr< telux::data::IDataProfileListener listener)
pure virtual

De-register listener.

Parameters
[in]listener- Listener to be de-registered.
Returns
Status.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
class telux::data::IDataCreateProfileCallback

Interface for create profile callback object. Client needs to implement this interface to get single shot responses for command like create profile.

The methods in callback can be invoked from multiple different threads. The implementation should be thread safe.

Public Member Functions

virtual void onResponse (int profileId, telux::common::ErrorCode error)
 
- Public Member Functions inherited from telux::common::ICommandCallback
virtual ~ICommandCallback ()
 

Member Function Documentation

virtual void telux::data::IDataCreateProfileCallback::onResponse ( int  profileId,
telux::common::ErrorCode  error 
)
virtual

This function is called with the response to IDataProfileManager::createProfile API.

Parameters
[in]profileIdcreated profile Id for the response. Use IDataProfileManager::requestProfile to get the data profile
[in]errortelux::common::ErrorCode
class telux::data::IDataProfileListCallback

Interface for getting list of DataProfile using callback. Client needs to implement this interface to get single shot responses for commands like get profile list and query profile.

The methods in callback can be invoked from different threads. The implementation should be thread safe.

Public Member Functions

virtual void onProfileListResponse (const std::vector< std::shared_ptr< DataProfile >> &profiles, telux::common::ErrorCode error)
 
- Public Member Functions inherited from telux::common::ICommandCallback
virtual ~ICommandCallback ()
 

Member Function Documentation

virtual void telux::data::IDataProfileListCallback::onProfileListResponse ( const std::vector< std::shared_ptr< DataProfile >> &  profiles,
telux::common::ErrorCode  error 
)
virtual

This function is called with the response to requestProfileList API or queryProfile API.

Parameters
[in]profilesList of profiles supported by the device
[in]errortelux::common::ErrorCode
class telux::data::IDataProfileCallback

Interface for getting DataProfile using callback. Client needs to implement this interface to get single shot responses for command like create profile.

The methods in callback can be invoked from multiple different threads. The implementation should be thread safe.

Public Member Functions

virtual void onResponse (const std::shared_ptr< DataProfile > &profile, telux::common::ErrorCode error)
 
- Public Member Functions inherited from telux::common::ICommandCallback
virtual ~ICommandCallback ()
 

Member Function Documentation

virtual void telux::data::IDataProfileCallback::onResponse ( const std::shared_ptr< DataProfile > &  profile,
telux::common::ErrorCode  error 
)
virtual

This function is called with the response to IDataProfileManager::requestProfile API.

Parameters
[in]profileResponse of data profile
[in]errortelux::common::ErrorCode
union telux::data::DataCallEndReason.__unnamed__
Data Fields
MobileIpReasonCode IpCode
InternalReasonCode internalCode
CallManagerReasonCode cmCode
SpecReasonCode specCode
PPPReasonCode pppCode
EHRPDReasonCode ehrpdCode
Ipv6ReasonCode ipv6Code
HandoffReasonCode handOffCode

Macro Definition Documentation

#define PROFILE_ID_MAX   0x7FFFFFFF

Default data profile id.

#define IP_PROT_UNKNOWN   0xFF

Default IP Protocol number in IPv4 or IPv6 headers.

Typedef Documentation

using telux::data::IpProtocol = typedef uint8_t

Internet (IP) protocol numbers found in IPv4 or IPv6 headers the protocol numbers are defined by Internet Assigned Numbers Authority (IANA)

Enumeration Type Documentation

Preferred IP family for the connection

Enumerator
UNKNOWN 
IPV4 

IPv4 data connection

IPV6 

IPv6 data connection

IPV4V6 

IPv4 and IPv6 data connection

Technology Preference

Enumerator
UNKNOWN 
TP_3GPP 

UMTS, LTE

TP_3GPP2 

CDMA

TP_ANY 

ANY (3GPP or 3GPP2)

Authentication protocol preference type to be used for PDP context.

Enumerator
AUTH_NONE 
AUTH_PAP 

Password Authentication Protocol

AUTH_CHAP 

Challenge Handshake Authentication Protocol

AUTH_PAP_CHAP 

Defines the supported filtering mode of the packet data session. DataRestrictFilter

Enumerator
UNKNOWN 
DISABLE 
ENABLE 

Data call event status

Enumerator
INVALID 

Invalid

NET_CONNECTED 

Call is connected

NET_NO_NET 

Call is disconnected

NET_IDLE 

Call is in idle state

NET_CONNECTING 

Call is in connecting state

NET_DISCONNECTING 

Call is in disconnecting state

NET_RECONFIGURED 

Interface is reconfigured, IP Address got changed

NET_NEWADDR 

A new IP address was added on an existing call

NET_DELADDR 

An IP address was removed from the existing interface

Bearer technology types (returned with getCurrentBearerTech).

Enumerator
UNKNOWN 

Unknown bearer.

CDMA_1X 

1X technology.

EVDO_REV0 

CDMA Rev 0.

EVDO_REVA 

CDMA Rev A.

EVDO_REVB 

CDMA Rev B.

EHRPD 

EHRPD.

FMC 

Fixed mobile convergence.

HRPD 

HRPD

BEARER_TECH_3GPP2_WLAN 

IWLAN

WCDMA 

WCDMA.

GPRS 

GPRS.

HSDPA 

HSDPA.

HSUPA 

HSUPA.

EDGE 

EDGE.

LTE 

LTE.

HSDPA_PLUS 

HSDPA+.

DC_HSDPA_PLUS 

DC HSDPA+.

HSPA 

HSPA

BEARER_TECH_64_QAM 

64 QAM.

TDSCDMA 

TD-SCDMA.

GSM 

GSM

BEARER_TECH_3GPP_WLAN 

IWLAN

Data call end/termination due to reason type.

Enumerator
CE_UNKNOWN 
CE_MOBILE_IP 
CE_INTERNAL 
CE_CALL_MANAGER_DEFINED 
CE_3GPP_SPEC_DEFINED 
CE_PPP 
CE_EHRPD 
CE_IPV6 
CE_HANDOFF 

Data call end/termination reason code for EndReasonType::CE_MOBILE_IP

Enumerator
CE_MIP_FA_ERR_REASON_UNSPECIFIED 
CE_MIP_FA_ERR_ADMINISTRATIVELY_PROHIBITED 
CE_MIP_FA_ERR_INSUFFICIENT_RESOURCES 
CE_MIP_FA_ERR_MOBILE_NODE_AUTHENTICATION_FAILURE 
CE_MIP_FA_ERR_HA_AUTHENTICATION_FAILURE 
CE_MIP_FA_ERR_REQUESTED_LIFETIME_TOO_LONG 
CE_MIP_FA_ERR_MALFORMED_REQUEST 
CE_MIP_FA_ERR_MALFORMED_REPLY 
CE_MIP_FA_ERR_ENCAPSULATION_UNAVAILABLE 
CE_MIP_FA_ERR_VJHC_UNAVAILABLE 
CE_MIP_FA_ERR_REVERSE_TUNNEL_UNAVAILABLE 
CE_MIP_FA_ERR_REVERSE_TUNNEL_IS_MANDATORY_AND_T_BIT_NOT_SET 
CE_MIP_FA_ERR_DELIVERY_STYLE_NOT_SUPPORTED 
CE_MIP_FA_ERR_MISSING_NAI 
CE_MIP_FA_ERR_MISSING_HA 
CE_MIP_FA_ERR_MISSING_HOME_ADDR 
CE_MIP_FA_ERR_UNKNOWN_CHALLENGE 
CE_MIP_FA_ERR_MISSING_CHALLENGE 
CE_MIP_FA_ERR_STALE_CHALLENGE 
CE_MIP_HA_ERR_REASON_UNSPECIFIED 
CE_MIP_HA_ERR_ADMINISTRATIVELY_PROHIBITED 
CE_MIP_HA_ERR_INSUFFICIENT_RESOURCES 
CE_MIP_HA_ERR_MOBILE_NODE_AUTHENTICATION_FAILURE 
CE_MIP_HA_ERR_FA_AUTHENTICATION_FAILURE 
CE_MIP_HA_ERR_REGISTRATION_ID_MISMATCH 
CE_MIP_HA_ERR_MALFORMED_REQUEST 
CE_MIP_HA_ERR_UNKNOWN_HA_ADDR 
CE_MIP_HA_ERR_REVERSE_TUNNEL_UNAVAILABLE 
CE_MIP_HA_ERR_REVERSE_TUNNEL_IS_MANDATORY_AND_T_BIT_NOT_SET 
CE_MIP_HA_ERR_ENCAPSULATION_UNAVAILABLE 
CE_MIP_ERR_REASON_UNKNOWN 

Data call end/termination reason code for EndReasonType::CE_INTERNAL

Enumerator
CE_INTERNAL_ERROR 
CE_CALL_ENDED 
CE_INTERNAL_UNKNOWN_CAUSE_CODE 
CE_UNKNOWN_CAUSE_CODE 
CE_CLOSE_IN_PROGRESS 
CE_NW_INITIATED_TERMINATION 
CE_APP_PREEMPTED 
CE_ERR_PDN_IPV4_CALL_DISALLOWED 
CE_ERR_PDN_IPV4_CALL_THROTTLED 
CE_ERR_PDN_IPV6_CALL_DISALLOWED 
CE_ERR_PDN_IPV6_CALL_THROTTLED 
CE_MODEM_RESTART 
CE_PDP_PPP_NOT_SUPPORTED 
CE_UNPREFERRED_RAT 
CE_PHYS_LINK_CLOSE_IN_PROGRESS 
CE_APN_PENDING_HANDOVER 
CE_PROFILE_BEARER_INCOMPATIBLE 
CE_MMGSDI_CARD_EVT 
CE_LPM_OR_PWR_DOWN 
CE_APN_DISABLED 
CE_MPIT_EXPIRED 
CE_IPV6_ADDR_TRANSFER_FAILED 
CE_TRAT_SWAP_FAILED 
CE_EHRPD_TO_HRPD_FALLBACK 
CE_MANDATORY_APN_DISABLED 
CE_MIP_CONFIG_FAILURE 
CE_INTERNAL_PDN_INACTIVITY_TIMER_EXPIRED 
CE_MAX_V4_CONNECTIONS 
CE_MAX_V6_CONNECTIONS 
CE_APN_MISMATCH 
CE_IP_VERSION_MISMATCH 
CE_DUN_CALL_DISALLOWED 
CE_INVALID_PROFILE 
CE_INTERNAL_EPC_NONEPC_TRANSITION 
CE_INVALID_PROFILE_ID 
CE_INTERNAL_CALL_ALREADY_PRESENT 
CE_IFACE_IN_USE 
CE_IP_PDP_MISMATCH 
CE_APN_DISALLOWED_ON_ROAMING 
CE_APN_PARAM_CHANGE 
CE_IFACE_IN_USE_CFG_MATCH 
CE_NULL_APN_DISALLOWED 
CE_THERMAL_MITIGATION 
CE_SUBS_ID_MISMATCH 
CE_DATA_SETTINGS_DISABLED 
CE_DATA_ROAMING_SETTINGS_DISABLED 
CE_APN_FORMAT_INVALID 
CE_DDS_CALL_ABORT 
CE_VALIDATION_FAILURE 
CE_PROFILES_NOT_COMPATIBLE 
CE_NULL_RESOLVED_APN_NO_MATCH 
CE_INVALID_APN_NAME 

Data call end/termination reason code for EndReasonType::CE_CALL_MANAGER_DEFINED

Enumerator
CE_CDMA_LOCK 
CE_INTERCEPT 
CE_REORDER 
CE_REL_SO_REJ 
CE_INCOM_CALL 
CE_ALERT_STOP 
CE_ACTIVATION 
CE_MAX_ACCESS_PROBE 
CE_CCS_NOT_SUPPORTED_BY_BS 
CE_NO_RESPONSE_FROM_BS 
CE_REJECTED_BY_BS 
CE_INCOMPATIBLE 
CE_ALREADY_IN_TC 
CE_USER_CALL_ORIG_DURING_GPS 
CE_USER_CALL_ORIG_DURING_SMS 
CE_NO_CDMA_SRV 
CE_MC_ABORT 
CE_PSIST_NG 
CE_UIM_NOT_PRESENT 
CE_RETRY_ORDER 
CE_ACCESS_BLOCK 
CEACCESS_BLOCK_ALL 
CE_IS707B_MAX_ACC 
CE_THERMAL_EMERGENCY 
CE_CALL_ORIG_THROTTLED 
CE_USER_CALL_ORIG_DURING_VOICE_CALL 
CE_CONF_FAILED 
CE_INCOM_REJ 
CE_NEW_NO_GW_SRV 
CE_NEW_NO_GPRS_CONTEXT 
CE_NEW_ILLEGAL_MS 
CE_NEW_ILLEGAL_ME 
CE_NEW_GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED 
CE_NEW_GPRS_SERVICES_NOT_ALLOWED 
CE_NEW_MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK 
CE_NEW_IMPLICITLY_DETACHED 
CE_NEW_PLMN_NOT_ALLOWED 
CE_NEW_LA_NOT_ALLOWED 
CE_NEW_GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN 
CE_NEW_PDP_DUPLICATE 
CE_NEW_UE_RAT_CHANGE 
CE_NEW_CONGESTION 
CE_NEW_NO_PDP_CONTEXT_ACTIVATED 
CE_NEW_ACCESS_CLASS_DSAC_REJECTION 
CE_PDP_ACTIVATE_MAX_RETRY_FAILED 
CE_RAB_FAILURE 
CE_ESM_UNKNOWN_EPS_BEARER_CONTEXT 
CE_DRB_RELEASED_AT_RRC 
CE_NAS_SIG_CONN_RELEASED 
CE_REASON_EMM_DETACHED 
CE_EMM_ATTACH_FAILED 
CE_EMM_ATTACH_STARTED 
CE_LTE_NAS_SERVICE_REQ_FAILED 
CE_ESM_ACTIVE_DEDICATED_BEARER_REACTIVATED_BY_NW 
CE_ESM_LOWER_LAYER_FAILURE 
CE_ESM_SYNC_UP_WITH_NW 
CE_ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER 
CE_ESM_BAD_OTA_MESSAGE 
CE_ESM_DS_REJECTED_THE_CALL 
CE_ESM_CONTEXT_TRANSFERED_DUE_TO_IRAT 
CE_DS_EXPLICIT_DEACT 
CE_ESM_LOCAL_CAUSE_NONE 
CE_LTE_NAS_SERVICE_REQ_FAILED_NO_THROTTLE 
CE_ACL_FAILURE 
CE_LTE_NAS_SERVICE_REQ_FAILED_DS_DISALLOW 
CE_EMM_T3417_EXPIRED 
CE_EMM_T3417_EXT_EXPIRED 
CE_LRRC_UL_DATA_CNF_FAILURE_TXN 
CE_LRRC_UL_DATA_CNF_FAILURE_HO 
CE_LRRC_UL_DATA_CNF_FAILURE_CONN_REL 
CE_LRRC_UL_DATA_CNF_FAILURE_RLF 
CE_LRRC_UL_DATA_CNF_FAILURE_CTRL_NOT_CONN 
CE_LRRC_CONN_EST_FAILURE 
CE_LRRC_CONN_EST_FAILURE_ABORTED 
CE_LRRC_CONN_EST_FAILURE_ACCESS_BARRED 
CE_LRRC_CONN_EST_FAILURE_CELL_RESEL 
CE_LRRC_CONN_EST_FAILURE_CONFIG_FAILURE 
CE_LRRC_CONN_EST_FAILURE_TIMER_EXPIRED 
CE_LRRC_CONN_EST_FAILURE_LINK_FAILURE 
CE_LRRC_CONN_EST_FAILURE_NOT_CAMPED 
CE_LRRC_CONN_EST_FAILURE_SI_FAILURE 
CE_LRRC_CONN_EST_FAILURE_CONN_REJECT 
CE_LRRC_CONN_REL_NORMAL 
CE_LRRC_CONN_REL_RLF 
CE_LRRC_CONN_REL_CRE_FAILURE 
CE_LRRC_CONN_REL_OOS_DURING_CRE 
CE_LRRC_CONN_REL_ABORTED 
CE_LRRC_CONN_REL_SIB_READ_ERROR 
CE_DETACH_WITH_REATTACH_LTE_NW_DETACH 
CE_DETACH_WITH_OUT_REATTACH_LTE_NW_DETACH 
CE_ESM_PROC_TIME_OUT 
CE_INVALID_CONNECTION_ID 
CE_INVALID_NSAPI 
CE_INVALID_PRI_NSAPI 
CE_INVALID_FIELD 
CE_RAB_SETUP_FAILURE 
CE_PDP_ESTABLISH_MAX_TIMEOUT 
CE_PDP_MODIFY_MAX_TIMEOUT 
CE_PDP_INACTIVE_MAX_TIMEOUT 
CE_PDP_LOWERLAYER_ERROR 
CE_PPD_UNKNOWN_REASON 
CE_PDP_MODIFY_COLLISION 
CE_PDP_MBMS_REQUEST_COLLISION 
CE_MBMS_DUPLICATE 
CE_SM_PS_DETACHED 
CE_SM_NO_RADIO_AVAILABLE 
CE_SM_ABORT_SERVICE_NOT_AVAILABLE 
CE_MESSAGE_EXCEED_MAX_L2_LIMIT 
CE_SM_NAS_SRV_REQ_FAILURE 
CE_RRC_CONN_EST_FAILURE_REQ_ERROR 
CE_RRC_CONN_EST_FAILURE_TAI_CHANGE 
CE_RRC_CONN_EST_FAILURE_RF_UNAVAILABLE 
CE_RRC_CONN_REL_ABORTED_IRAT_SUCCESS 
CE_RRC_CONN_REL_RLF_SEC_NOT_ACTIVE 
CE_RRC_CONN_REL_IRAT_TO_LTE_ABORTED 
CE_RRC_CONN_REL_IRAT_FROM_LTE_TO_G_CCO_SUCCESS 
CE_RRC_CONN_REL_IRAT_FROM_LTE_TO_G_CCO_ABORTED 
CE_IMSI_UNKNOWN_IN_HSS 
CE_IMEI_NOT_ACCEPTED 
CE_EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED 
CE_EPS_SERVICES_NOT_ALLOWED_IN_PLMN 
CE_MSC_TEMPORARILY_NOT_REACHABLE 
CE_CS_DOMAIN_NOT_AVAILABLE 
CE_ESM_FAILURE 
CE_MAC_FAILURE 
CE_SYNCH_FAILURE 
CE_UE_SECURITY_CAPABILITIES_MISMATCH 
CE_SECURITY_MODE_REJ_UNSPECIFIED 
CE_NON_EPS_AUTH_UNACCEPTABLE 
CE_CS_FALLBACK_CALL_EST_NOT_ALLOWED 
CE_NO_EPS_BEARER_CONTEXT_ACTIVATED 
CE_EMM_INVALID_STATE 
CE_NAS_LAYER_FAILURE 
CE_MULTI_PDN_NOT_ALLOWED 
CE_EMBMS_NOT_ENABLED 
CE_PENDING_REDIAL_CALL_CLEANUP 
CE_EMBMS_REGULAR_DEACTIVATION 
CE_TLB_REGULAR_DEACTIVATION 
CE_LOWER_LAYER_REGISTRATION_FAILURE 
CE_DETACH_EPS_SERVICES_NOT_ALLOWED 
CE_SM_INTERNAL_PDP_DEACTIVATION 
CE_UNSUPPORTED_1X_PREV 
CE_CD_GEN_OR_BUSY 
CE_CD_BILL_OR_AUTH 
CE_CHG_HDR 
CE_EXIT_HDR 
CE_HDR_NO_SESSION 
CE_HDR_ORIG_DURING_GPS_FIX 
CE_HDR_CS_TIMEOUT 
CE_HDR_RELEASED_BY_CM 
CE_COLLOC_ACQ_FAIL 
CE_OTASP_COMMIT_IN_PROG 
CE_NO_HYBR_HDR_SRV 
CE_HDR_NO_LOCK_GRANTED 
CE_HOLD_OTHER_IN_PROG 
CE_HDR_FADE 
CE_HDR_ACC_FAIL 
CE_CLIENT_END 
CE_NO_SRV 
CE_FADE 
CE_REL_NORMAL 
CE_ACC_IN_PROG 
CE_ACC_FAIL 
CE_REDIR_OR_HANDOFF 
CE_CM_UNKNOWN_ERROR 
CE_OFFLINE 
CE_EMERGENCY_MODE 
CE_PHONE_IN_USE 
CE_INVALID_MODE 
CE_INVALID_SIM_STATE 
CE_NO_COLLOC_HDR 
CE_CALL_CONTROL_REJECTED 
CE_UNKNOWN 

Data call end/termination reason code for EndReasonType::CE_3GPP_SPEC_DEFINED

Enumerator
CE_OPERATOR_DETERMINED_BARRING 
CE_NAS_SIGNALLING_ERROR 
CE_LLC_SNDCP_FAILURE 
CE_INSUFFICIENT_RESOURCES 
CE_UNKNOWN_APN 
CE_UNKNOWN_PDP 
CE_AUTH_FAILED 
CE_GGSN_REJECT 
CE_ACTIVATION_REJECT 
CE_OPTION_NOT_SUPPORTED 
CE_OPTION_UNSUBSCRIBED 
CE_OPTION_TEMP_OOO 
CE_NSAPI_ALREADY_USED 
CE_REGULAR_DEACTIVATION 
CE_QOS_NOT_ACCEPTED 
CE_NETWORK_FAILURE 
CE_UMTS_REACTIVATION_REQ 
CE_FEATURE_NOT_SUPPORTED 
CE_TFT_SEMANTIC_ERROR 
CE_TFT_SYNTAX_ERROR 
CE_UNKNOWN_PDP_CONTEXT 
CE_FILTER_SEMANTIC_ERROR 
CE_FILTER_SYNTAX_ERROR 
CE_PDP_WITHOUT_ACTIVE_TFT 
CE_IP_V4_ONLY_ALLOWED 
CE_IP_V6_ONLY_ALLOWED 
CE_SINGLE_ADDR_BEARER_ONLY 
CE_ESM_INFO_NOT_RECEIVED 
CE_PDN_CONN_DOES_NOT_EXIST 
CE_MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED 
CE_MAX_ACTIVE_PDP_CONTEXT_REACHED 
CE_UNSUPPORTED_APN_IN_CURRENT_PLMN 
CE_INVALID_TRANSACTION_ID 
CE_MESSAGE_INCORRECT_SEMANTIC 
CE_INVALID_MANDATORY_INFO 
CE_MESSAGE_TYPE_UNSUPPORTED 
CE_MSG_TYPE_NONCOMPATIBLE_STATE 
CE_UNKNOWN_INFO_ELEMENT 
CE_CONDITIONAL_IE_ERROR 
CE_MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE 
CE_PROTOCOL_ERROR 
CE_APN_TYPE_CONFLICT 
CE_INVALID_PCSCF_ADDRESS 
CE_INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN 
CE_EMM_ACCESS_BARRED 
CE_EMERGENCY_IFACE_ONLY 
CE_IFACE_MISMATCH 
CE_COMPANION_IFACE_IN_USE 
CE_IP_ADDRESS_MISMATCH 
CE_IFACE_AND_POL_FAMILY_MISMATCH 
CE_EMM_ACCESS_BARRED_INFINITE_RETRY 
CE_AUTH_FAILURE_ON_EMERGENCY_CALL 
CE_INVALID_DNS_ADDR 
CE_INVALID_PCSCF_DNS_ADDR 
CE_TEST_LOOPBACK_MODE_A_OR_B_ENABLED 
CE_UNKNOWN 

Data call end/termination reason code for EndReasonType::CE_PPP

Enumerator
CE_PPP_TIMEOUT 
CE_PPP_AUTH_FAILURE 
CE_PPP_OPTION_MISMATCH 
CE_PPP_PAP_FAILURE 
CE_PPP_CHAP_FAILURE 
CE_PPP_CLOSE_IN_PROGRESS 
CE_PPP_NV_REFRESH_IN_PROGRESS 
CE_PPP_UNKNOWN 

Data call end/termination reason code for EndReasonType::CE_EHRPD

Enumerator
CE_EHRPD_SUBS_LIMITED_TO_V4 
CE_EHRPD_SUBS_LIMITED_TO_V6 
CE_EHRPD_VSNCP_TIMEOUT 
CE_EHRPD_VSNCP_FAILURE 
CE_EHRPD_VSNCP_3GPP2I_GEN_ERROR 
CE_EHRPD_VSNCP_3GPP2I_UNAUTH_APN 
CE_EHRPD_VSNCP_3GPP2I_PDN_LIMIT_EXCEED 
CE_EHRPD_VSNCP_3GPP2I_NO_PDN_GW 
CE_EHRPD_VSNCP_3GPP2I_PDN_GW_UNREACH 
CE_EHRPD_VSNCP_3GPP2I_PDN_GW_REJ 
CE_EHRPD_VSNCP_3GPP2I_INSUFF_PARAM 
CE_EHRPD_VSNCP_3GPP2I_RESOURCE_UNAVAIL 
CE_EHRPD_VSNCP_3GPP2I_ADMIN_PROHIBIT 
CE_EHRPD_VSNCP_3GPP2I_PDN_ID_IN_USE 
CE_EHRPD_VSNCP_3GPP2I_SUBSCR_LIMITATION 
CE_EHRPD_VSNCP_3GPP2I_PDN_EXISTS_FOR_THIS_APN 
CE_EHRPD_VSNCP_3GPP2I_RECONNECT_NOT_ALLOWED 
CE_EHRPD_UNKNOWN 

Data call end/termination reason code for EndReasonType::CE_IPV6

Enumerator
CE_PREFIX_UNAVAILABLE 
CE_IPV6_ERR_HRPD_IPV6_DISABLED 
CE_IPV6_DISABLED 

Data call end/termination reason code for EndReasonType::CE_HANDOFF

Enumerator
CE_VCER_HANDOFF_PREF_SYS_BACK_TO_SRAT 

Event due to which change in profile happened.

Enumerator
CREATE_PROFILE_EVENT 

Profile was created

DELETE_PROFILE_EVENT 

Profile was deleted

MODIFY_PROFILE_EVENT 

Profile was modified

This applies in architectures where the modem is attached to an External Application Processor(EAP). An API, like start/stop data call, INatManager, IFirewallManager can be invoked from the EAP or from the modems Internal Application Processor (IAP). This type specifies where the operation should be carried out.

Enumerator
DATA_LOCAL 

Perform the operation on the processor where the API is invoked.

DATA_REMOTE 

Perform the operation on the application processor other than where the API is invoked.

Direction of firewall rule

Enumerator
UPLINK 

Uplink Direction

DOWNLINK 

Downlink Direction

Peripheral Interface type

Enumerator
UNKNOWN 

UNKNOWN interface

WLAN 

Wireless Local Area Network (WLAN)

ETH 

Ethernet (ETH)

ECM 

Ethernet Control Model (ECM)

RNDIS 

Remote Network Driver Interface Specification (RNDIS)

MHI 

Modem Host Interface (MHI)