Telematics SDK - Interface Specification
v1.46.10
|
Modules | |
net | |
Data Structures | |
struct | telux::data::IpFamilyInfo |
struct | telux::data::QosFilterRule |
struct | telux::data::TrafficFlowTemplate |
struct | telux::data::TftChangeInfo |
struct | telux::data::BitRateInfo |
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. It also provides interface to Subsystem Restart events by registering as listener. Notifications will be received when modem is ready/not ready. 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 |
struct | telux::data::FlowDataRate |
struct | telux::data::QosIPFlowInfo |
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 |
struct | telux::data::IPv4Info |
struct | telux::data::IPv6Info |
struct | telux::data::UdpInfo |
struct | telux::data::TcpInfo |
struct | telux::data::IcmpInfo |
struct | telux::data::EspInfo |
class | telux::data::IIpFilter |
A IP filter class to add specific filters like what data will be allowed from the modem to the application processor. Only data packets that match the filter will be sent to the apps processor. Also used to configure Firewall rules. More... | |
class | telux::data::IUdpFilter |
This class represents a IP Filter for the UDP, get the new instance from telux::data::DataFactory. More... | |
class | telux::data::ITcpFilter |
This class represents a IP Filter for the TCP, get the new instance from telux::data::DataFactory. More... | |
class | telux::data::IIcmpFilter |
This class represents a IP Filter for the ICMP, get the new instance from telux::data::DataFactory. More... | |
class | telux::data::IEspFilter |
This class represents a IP Filter for the ESP, get the new instance from telux::data::DataFactory. More... | |
struct | telux::data::RoamingStatus |
Roaming Status. More... | |
struct | telux::data::ServiceStatus |
Data Service Status Info. More... | |
class | telux::data::IServingSystemManager |
Serving System Manager class provides APIs related to the serving system for data functionality. For example, ability to query or be notified about the state of the platform's WWAN PS data serving information. More... | |
class | telux::data::IServingSystemListener |
Listener class for data serving system change notification. More... | |
union | telux::data::DataCallEndReason.__unnamed__ |
Macros | |
#define | PROFILE_ID_MAX 0x7FFFFFFF |
#define | MAX_QOS_FILTERS 16 |
#define | IP_PROT_UNKNOWN 0xFF |
Typedefs | |
using | telux::data::DataCallResponseCb = std::function< void(const std::shared_ptr< IDataCall > &dataCall, telux::common::ErrorCode error)> |
using | telux::data::StatisticsResponseCb = std::function< void(const DataCallStats dataStats, telux::common::ErrorCode error)> |
using | telux::data::DataCallListResponseCb = std::function< void(const std::vector< std::shared_ptr< IDataCall >> &dataCallList, telux::common::ErrorCode error)> |
using | telux::data::DefaultProfileIdResponseCb = std::function< void(int profileId, SlotId slotId, telux::common::ErrorCode error)> |
using | telux::data::TrafficFlowTemplateCb = std::function< void(const std::vector< std::shared_ptr< TrafficFlowTemplate >> &tft, telux::common::ErrorCode error)> |
using | telux::data::requestDataCallBitRateResponseCb = std::function< void(BitRateInfo &bitRate, telux::common::ErrorCode error)> |
using | telux::data::IpProtocol = uint8_t |
using | telux::data::QosFlowId = uint32_t |
using | telux::data::QosIPFlowMask = std::bitset< 16 > |
using | telux::data::QosFlowMask = std::bitset< 16 > |
using | telux::data::DataRestrictModeCb = std::function< void(DataRestrictMode mode, telux::common::ErrorCode error)> |
using | telux::data::TypeOfService = uint8_t |
using | telux::data::TrafficClass = uint8_t |
using | telux::data::FlowLabel = uint32_t |
using | telux::data::RequestServiceStatusResponseCb = std::function< void(ServiceStatus serviceStatus, telux::common::ErrorCode error)> |
using | telux::data::RequestRoamingStatusResponseCb = std::function< void(RoamingStatus roamingStatus, telux::common::ErrorCode error)> |
This section contains APIs related to Cellular Data Services.
struct telux::data::IpFamilyInfo |
IP Family related Info
Data Fields | ||
---|---|---|
DataCallStatus | status | |
IpAddrInfo | addr |
struct telux::data::QosFilterRule |
struct telux::data::TrafficFlowTemplate |
QOS TFT Flow info
Data Fields | ||
---|---|---|
QosFlowId | qosId |
Mandatory defines current flow id |
QosFlowStateChangeEvent | stateChange |
Flow state change event |
QosFlowMask | mask |
bitmask to denote which of the optional fields in TrafficFlowTemplate are valid |
QosIPFlowInfo | txGrantedFlow |
Optional |
QosIPFlowInfo | rxGrantedFlow | |
uint32_t | txFiltersLength | |
QosFilterRule | txFilters[MAX_QOS_FILTERS] | |
uint32_t | rxFiltersLength | |
QosFilterRule | rxFilters[MAX_QOS_FILTERS] |
struct telux::data::TftChangeInfo |
QOS TFT flow change info
Data Fields | ||
---|---|---|
shared_ptr< TrafficFlowTemplate > | tft |
TFT flow info TrafficFlowTemplate |
QosFlowStateChangeEvent | stateChange |
Flow state change event |
struct telux::data::BitRateInfo |
Data call bit rate info
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. It also provides interface to Subsystem Restart events by registering as listener. Notifications will be received when modem is ready/not ready.
|
virtual |
Destructor for IDataConnectionManager
|
pure virtual |
Checks the status of data connection manager and returns the result.
|
pure virtual |
Checks if the data subsystem is ready.
|
pure virtual |
Wait for data subsystem to be ready.
|
pure virtual |
Set a profile as default which results in the following:.
[in] | operationType | telux::data::OperationType |
[in] | profileId | Profile identifier to be associated with default handler |
[in] | callback | optional callback to get the response setDefaultProfile |
|
pure virtual |
Get current default profile to which associated network traffic is routed through bridge 0 and default system routes.
[in] | operationType | telux::data::OperationType |
[in] | callback | callback to get the response getDefaultProfile |
|
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.
[in] | profileId | Profile identifier corresponding to which data call bring up will be done. Use IDataProfileManager::requestProfileList to get list of available profiles. |
[in] | ipFamilyType | Identifies IP family type |
[out] | callback | Optional callback to get the response of start data call. |
[in] | operationType | Optional telux::data::OperationType |
[in] | apn | Deprecated and currently unsued |
|
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.
[in] | profileId | Profile identifier corresponding to which data call tear down will be done. Use data profile manager to get the list of available profiles. |
[in] | ipFamilyType | Identifies IP family type |
[out] | callback | Optional callback to get the response of stop data call |
[in] | operationType | Optional telux::data::OperationType |
[in] | apn | Deprecated and currently unused |
|
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.
[in] | listener | pointer of IDataConnectionListener object that processes the notification |
|
pure virtual |
Removes a previously added listener.
[in] | listener | pointer of IDataConnectionListener object that needs to be removed |
|
pure virtual |
Get associated slot id for the Data Connection Manager.
|
pure virtual |
Request list of data calls available in the system
[out] | OperationType | telux::data::OperationType |
[out] | callback | Callback with list of supported data calls |
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 IpFamilyInfo | getIpv4Info ()=0 |
virtual IpFamilyInfo | getIpv6Info ()=0 |
virtual TechPreference | getTechPreference ()=0 |
virtual std::list< IpAddrInfo > | getIpAddressInfo ()=0 |
virtual IpFamilyType | getIpFamilyType ()=0 |
virtual int | getProfileId ()=0 |
virtual SlotId | getSlotId ()=0 |
virtual OperationType | getOperationType ()=0 |
virtual telux::common::Status | requestTrafficFlowTemplate (IpFamilyType ipFamilyType, TrafficFlowTemplateCb callback)=0 |
virtual telux::common::Status | requestDataCallStatistics (StatisticsResponseCb callback=nullptr)=0 |
virtual telux::common::Status | resetDataCallStatistics (telux::common::ResponseCallback callback=nullptr)=0 |
virtual telux::common::Status | requestDataCallBitRate (requestDataCallBitRateResponseCb callback)=0 |
virtual | ~IDataCall () |
|
virtual |
Destructor for IDataCall
|
pure virtual |
Get interface name for the data call associated.
|
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.
|
pure virtual |
Get failure reason for the data call.
|
pure virtual |
Get data call status like connected, disconnected and IP address changes.
|
pure virtual |
Get IPv4 Family info like connected, disconnected and IP address changes.
|
pure virtual |
Get IPv6 Family info like connected, disconnected and IP address changes.
|
pure virtual |
Get the technology on which the call was brought up.
|
pure virtual |
Get list of IP address information.
|
pure virtual |
Get IP Family Type i.e. IPv4, IPv6 or Both
|
pure virtual |
Get Profile Id
|
pure virtual |
Get Slot Id
|
pure virtual |
Get data operation used for the DataCall.
|
pure virtual |
Get the current installed QOS Traffic flow template information.
[in] | ipFamilyType | - IP Family type IpFamilyType. TFT's are installed per IP Family. |
[in] | callback | - callback function to get the result of API. |
|
pure virtual |
Request the data transfer statistics for data call corresponding to specified profile identifier.
[in] | callback | Optional callback to get the response of request Data Call Statistics |
|
pure virtual |
Reset data transfer statistics for data call corresponding to specified profile identifier.
[in] | callback | optional callback to get the response of reset Data call statistics |
|
pure virtual |
Request data call bit rate in (bits/sec).
[out] | callback | callback to be called with bit rate results requestDataCallBitRateResponseCb |
class telux::data::IDataConnectionListener |
Interface for Data connection 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.
The notification delivery mechanism uses the same thread to deliver all the queued notifications to ensure they are delivered in order. Considering this, the thread on which the notifications are delivered should not be blocked for longer operations since this would result in delay in delivery of further notifications that are in the queue waiting to be dispatched.
Public Member Functions | |
virtual void | onDataCallInfoChanged (const std::shared_ptr< IDataCall > &dataCall) |
virtual void | onHwAccelerationChanged (const ServiceState state) |
virtual void | onTrafficFlowTemplateChange (const std::shared_ptr< IDataCall > &dataCall, const std::vector< std::shared_ptr< TftChangeInfo >> &tft) |
virtual | ~IDataConnectionListener () |
Public Member Functions inherited from telux::common::IServiceStatusListener | |
virtual void | onServiceStatusChange (ServiceStatus status) |
virtual | ~IServiceStatusListener () |
|
virtual |
Destructor for IDataConnectionListener
|
virtual |
This function is called when there is a change in the data call.
[in] | dataCall | Pointer to IDataCall |
|
virtual |
This function is called when a change occur in hardware acceleration service.
[in] | state | New state of hardware Acceleration service (Active/Inactive) |
|
virtual |
This function is called when the TFT's parameters are changed for a packet data session.
[in] | dataCall | Pointer to IDataCall |
[in] | tft | vector of TftChangeInfo TftChangeInfo |
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 |
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.
struct telux::data::IpAddrInfo |
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 |
struct telux::data::FlowDataRate |
struct telux::data::QosIPFlowInfo |
QOS Flow IP info
Data Fields | ||
---|---|---|
QosIPFlowMask | mask |
Valid parameters of QosIPFlowInfo ref |
IpTrafficClassType | tfClass |
IP Traffic class type IpFamilyType |
FlowDataRate | dataRate |
Flow data rate FlowDataRate |
class telux::data::DataFactory |
DataFactory is the central factory to create all data classes.
|
static |
Get Data Factory instance.
std::shared_ptr<IDataConnectionManager> telux::data::DataFactory::getDataConnectionManager | ( | SlotId | slotId = DEFAULT_SLOT_ID , |
telux::common::InitResponseCb | clientCallback = nullptr |
||
) |
Get Data Connection Manager
[in] | slotId | Unique identifier for the SIM slot |
[in] | clientCallback | Optional callback to get the initialization status of DataConnectionManager telux::data::DataInitSlotIdResponseCb. |
std::shared_ptr<IDataProfileManager> telux::data::DataFactory::getDataProfileManager | ( | SlotId | slotId = DEFAULT_SLOT_ID , |
telux::common::InitResponseCb | clientCallback = nullptr |
||
) |
Get Data Profile Manager
[in] | slotId | Unique identifier for the SIM slot |
[in] | clientCallback | Optional callback to get the initialization status of DataProfileManager telux::data::DataInitSlotIdResponseCb. |
std::shared_ptr<IServingSystemManager> telux::data::DataFactory::getServingSystemManager | ( | SlotId | slotId = DEFAULT_SLOT_ID , |
telux::common::InitResponseCb | clientCallback = nullptr |
||
) |
Get Serving System Manager
[in] | slotId | Unique identifier for the SIM slot |
[in] | clientCallback | Callback to be called with initialization result |
std::shared_ptr<IDataFilterManager> telux::data::DataFactory::getDataFilterManager | ( | SlotId | slotId = DEFAULT_SLOT_ID , |
telux::common::InitResponseCb | clientCallback = nullptr |
||
) |
Get Data Filter Manager instance
[in] | slotId | Unique identifier for the SIM slot |
[in] | clientCallback | Callback to be called with initialization result |
std::shared_ptr<telux::data::net::INatManager> telux::data::DataFactory::getNatManager | ( | telux::data::OperationType | oprType, |
telux::common::InitResponseCb | clientCallback = nullptr |
||
) |
Get Network Address Translation(NAT) Manager
[in] | oprType | Required operation type telux::data::OperationType |
[in] | clientCallback | Optional callback to get the initialization status of NAT manager telux::common::InitResponseCb |
std::shared_ptr<telux::data::net::IFirewallManager> telux::data::DataFactory::getFirewallManager | ( | telux::data::OperationType | oprType, |
telux::common::InitResponseCb | clientCallback = nullptr |
||
) |
Get Firewall Manager
[in] | oprType | Required operation type telux::data::OperationType |
[in] | clientCallback | Optional callback to get the initialization status of Firewall manager telux::common::InitResponseCb |
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)
[in] | proto | telux::data::IpProtocol |
[in] | direction | telux::data::Direction |
[in] | ipFamilyType | Identifies IP family type telux::data::IpFamilyType |
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
[in] | proto | telux::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 |
std::shared_ptr<telux::data::net::IVlanManager> telux::data::DataFactory::getVlanManager | ( | telux::data::OperationType | oprType, |
telux::common::InitResponseCb | clientCallback = nullptr |
||
) |
Get VLAN Manager
[in] | oprType | Required operation type telux::data::OperationType |
[in] | clientCallback | Optional callback to get the initialization status of Vlan manager telux::common::InitResponseCb |
std::shared_ptr<telux::data::net::ISocksManager> telux::data::DataFactory::getSocksManager | ( | telux::data::OperationType | oprType, |
telux::common::InitResponseCb | clientCallback = nullptr |
||
) |
Get Socks Manager
[in] | oprType | Required operation type telux::data::OperationType |
[in] | clientCallback | Optional callback to get the initialization status of Socks manager telux::common::InitResponseCb |
std::shared_ptr<telux::data::net::IBridgeManager> telux::data::DataFactory::getBridgeManager | ( | telux::common::InitResponseCb | clientCallback = nullptr | ) |
Get Software Bridge Manager
[in] | clientCallback | Optional callback to get the initialization status of Bridge manager telux::common::InitResponseCb |
std::shared_ptr<telux::data::net::IL2tpManager> telux::data::DataFactory::getL2tpManager | ( | telux::common::InitResponseCb | clientCallback = nullptr | ) |
Get L2TP Manager
[in] | clientCallback | Optional callback to get the initialization status of L2TP manager telux::common::InitResponseCb |
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.
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 () |
|
virtual |
Destructor of IDataFilterListener
|
virtual |
This function is called when the data filtering mode is changed for the packet data session.
[in] | state | the current data filter mode |
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.
|
virtual |
Destructor of IDataFilterManager
|
pure virtual |
Checks the status of data filter manager and returns the result.
|
pure virtual |
Checks the status of Data Filter Service and if the other APIs are ready for use, and returns the result.
|
pure virtual |
Wait for Data Filter Service to be ready.
|
pure virtual |
Register a listener for powersave filtering mode notifications.
[in] | listener | - Pointer of IDataFilterListener object that processes the notification |
|
pure virtual |
Remove a previously registered listener.
[in] | listener | - Previously registered IDataFilterListener that needs to be removed |
|
pure virtual |
Changes the Data Powersave filter mode and auto exit feature.
This API enables or disables the powersave filtering mode of the running packet data session. If a data connection is torn down and brought up again, then previous filter mode setting does not persist for that data call session, and requires to be enabled again.
[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. |
|
pure virtual |
Get the current Data Powersave filter mode
[in] | ifaceName | - Interface name for data connection. Note: For global pdn , ifaceName must be empty, as global restrict mode is reported. Per-pdn requests are not supported. |
[in] | callback | - callback function to get the result of API. |
|
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.
[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. |
|
pure virtual |
This API removes all the previous added powersave filter for a packet data session
[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. |
|
pure virtual |
Get associated slot id for the Data Filter Manager.
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 () |
Static Public Attributes | |
static constexpr int | PROFILE_ID_INVALID = -1 |
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 | ||
) |
int telux::data::DataProfile::getId | ( | ) |
Get profile identifier.
std::string telux::data::DataProfile::getName | ( | ) |
Get profile name.
std::string telux::data::DataProfile::getApn | ( | ) |
Get Access Point Name (APN) name.
std::string telux::data::DataProfile::getUserName | ( | ) |
Get profile user name.
std::string telux::data::DataProfile::getPassword | ( | ) |
Get profile password.
TechPreference telux::data::DataProfile::getTechPreference | ( | ) |
Get technology preference.
AuthProtocolType telux::data::DataProfile::getAuthProtocolType | ( | ) |
Get authentication preference.
IpFamilyType telux::data::DataProfile::getIpFamilyType | ( | ) |
Get IP Family type.
std::string telux::data::DataProfile::toString | ( | ) |
Get the text related informative representation of this object.
|
static |
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.
Public Member Functions | |
virtual void | onServiceStatusChange (telux::common::ServiceStatus status) |
virtual void | onProfileUpdate (int profileId, TechPreference techPreference, ProfileChangeEvent event) |
virtual | ~IDataProfileListener () |
|
virtual |
Destructor of IDataProfileListener
|
virtual |
This function is called when service status changes.
[in] | status | - ServiceStatus |
|
virtual |
This function is called when profile change happens.
[in] | profileId | - ID of the updated profile. |
[in] | techPreference | - TechPreference. |
[in] | event | - Event that caused the change in profile. |
class telux::data::IDataProfileManager |
IDataProfileManager is a primary interface for profile management.
|
virtual |
Destructor for IDataProfileManager
|
pure virtual |
Checks the status of Data profile manager and returns the result.
|
pure virtual |
Checks if the data profile manager is ready.
|
pure virtual |
Waits for data profile subsystem to be ready.
|
pure virtual |
Request list of profiles supported by the device.
[in,out] | callback | Callback pointer to get the response. |
|
pure virtual |
Create profile based on data profile params.
[in] | profileParams | profileParams configuration to be passed for creating profile either for 3GPP or 3GPP2 |
[in,out] | callback | Callback pointer to get the result of create profile |
|
pure virtual |
Delete profile corresponding to profile identifier.
The deletion of a profile does not affect profile index assignments.
[in] | profileId | Profile identifier |
[in] | techPreference | Technology Preference like 3GPP / 3GPP2 |
[in] | callback | Callback pointer to get the result of delete profile |
|
pure virtual |
Modify existing profile with new profile params.
[in] | profileId | Profile identifier of profile to be modified |
[in] | profileParams | New profileParams configuration passed for updating existing profile |
[in] | callback | Callback pointer to get the result of modify profile |
|
pure virtual |
Lookup modem profile/s based on given profile params.
[in] | profileParams | ProfileParams configuration to be passed |
[in] | callback | Callback pointer to get the result of query profile |
|
pure virtual |
Get data profile corresponding to profile identifier.
[in] | profileId | Profile identifier |
[in] | techPreference | Technology preference |
[in] | callback | Callback pointer to get the result of get profile by ID |
|
pure virtual |
Get associated slot id for the Data Profile Manager.
|
pure virtual |
Listen for create, delete and modify profile events.
[in] | listener | - Listener that processes the notification. |
|
pure virtual |
De-register listener.
[in] | listener | - Listener to be de-registered. |
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 () |
|
virtual |
This function is called with the response to IDataProfileManager::createProfile API.
[in] | profileId | created profile Id for the response. Use IDataProfileManager::requestProfile to get the data profile |
[in] | error | telux::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 () |
|
virtual |
This function is called with the response to requestProfileList API or queryProfile API.
[in] | profiles | List of profiles supported by the device |
[in] | error | telux::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 () |
|
virtual |
This function is called with the response to IDataProfileManager::requestProfile API.
[in] | profile | Response of data profile |
[in] | error | telux::common::ErrorCode |
struct telux::data::IPv4Info |
IPv4 header info
Data Fields | ||
---|---|---|
string | srcAddr |
address of the device that sends the packet. |
string | srcSubnetMask | |
string | destAddr |
address of receiving end |
string | destSubnetMask | |
TypeOfService | value |
level of throughput, reliability, and delay |
TypeOfService | mask | |
IpProtocol | nextProtoId |
Protocol ID (i.e TCP, UDP or ICMP ) |
struct telux::data::IPv6Info |
IPv6 header info
Data Fields | ||
---|---|---|
string | srcAddr |
address of the device that sends the packet. |
uint8_t | srcPrefixLen |
source prefix length used to create subnet |
string | destAddr |
address of receiving end |
uint8_t | dstPrefixLen |
destination prefix length used to create subnet |
IpProtocol | nextProtoId |
Protocol ID (i.e TCP, UDP or ICMP ) |
TrafficClass | val |
indicates the class or priority of the IPv6 packet, enables the ability to track specific traffic flows at the network layer. |
TrafficClass | mask | |
FlowLabel | flowLabel |
Indicates that this packet belongs to a specific sequence of packets between a source and destination, requiring special handling by intermediate IPv6 routers. |
uint8_t | natEnabled |
struct telux::data::UdpInfo |
struct telux::data::TcpInfo |
struct telux::data::IcmpInfo |
struct telux::data::EspInfo |
class telux::data::IIpFilter |
A IP filter class to add specific filters like what data will be allowed from the modem to the application processor. Only data packets that match the filter will be sent to the apps processor. Also used to configure Firewall rules.
Public Member Functions | |
virtual IPv4Info | getIPv4Info ()=0 |
virtual telux::common::Status | setIPv4Info (const IPv4Info &ipv4Info)=0 |
virtual IPv6Info | getIPv6Info ()=0 |
virtual telux::common::Status | setIPv6Info (const IPv6Info &ipv6Info)=0 |
virtual IpProtocol | getIpProtocol ()=0 |
virtual IpFamilyType | getIpFamily ()=0 |
virtual | ~IIpFilter () |
|
virtual |
Destructor for IIpFilter
|
pure virtual |
Get the IPv4 header info
|
pure virtual |
sets the IPv4 header info
[in] | ipv4Info | IPv4 structure telux::data::IPv4Info |
|
pure virtual |
Get the IPv6 header info
|
pure virtual |
sets the IPv6 header info
[in] | ipv6Info | IPv6 structure telux::data::IPv6Info |
|
pure virtual |
Get the IpProtocol Number
|
pure virtual |
Get the IP family type
class telux::data::IUdpFilter |
This class represents a IP Filter for the UDP, get the new instance from telux::data::DataFactory.
Public Member Functions | |
virtual UdpInfo | getUdpInfo ()=0 |
virtual telux::common::Status | setUdpInfo (const UdpInfo &udpInfo)=0 |
virtual | ~IUdpFilter () |
Public Member Functions inherited from telux::data::IIpFilter | |
virtual IPv4Info | getIPv4Info ()=0 |
virtual telux::common::Status | setIPv4Info (const IPv4Info &ipv4Info)=0 |
virtual IPv6Info | getIPv6Info ()=0 |
virtual telux::common::Status | setIPv6Info (const IPv6Info &ipv6Info)=0 |
virtual IpProtocol | getIpProtocol ()=0 |
virtual IpFamilyType | getIpFamily ()=0 |
virtual | ~IIpFilter () |
|
virtual |
Destructor for IUdpFilter
|
pure virtual |
Get the UDP header info
|
pure virtual |
sets the UDP header info
[in] | udpInfo | UdpInfo structure telux::data::UdpInfo |
class telux::data::ITcpFilter |
This class represents a IP Filter for the TCP, get the new instance from telux::data::DataFactory.
Public Member Functions | |
virtual TcpInfo | getTcpInfo ()=0 |
virtual telux::common::Status | setTcpInfo (const TcpInfo &tcpInfo)=0 |
virtual | ~ITcpFilter () |
Public Member Functions inherited from telux::data::IIpFilter | |
virtual IPv4Info | getIPv4Info ()=0 |
virtual telux::common::Status | setIPv4Info (const IPv4Info &ipv4Info)=0 |
virtual IPv6Info | getIPv6Info ()=0 |
virtual telux::common::Status | setIPv6Info (const IPv6Info &ipv6Info)=0 |
virtual IpProtocol | getIpProtocol ()=0 |
virtual IpFamilyType | getIpFamily ()=0 |
virtual | ~IIpFilter () |
|
virtual |
Destructor for ITcpFilter
|
pure virtual |
Get the TCP header info
|
pure virtual |
sets the TCP header info
[in] | tcpInfo | TcpInfo structure telux::data::TcpInfo |
class telux::data::IIcmpFilter |
This class represents a IP Filter for the ICMP, get the new instance from telux::data::DataFactory.
Public Member Functions | |
virtual IcmpInfo | getIcmpInfo ()=0 |
virtual telux::common::Status | setIcmpInfo (const IcmpInfo &icmpInfo)=0 |
virtual | ~IIcmpFilter () |
Public Member Functions inherited from telux::data::IIpFilter | |
virtual IPv4Info | getIPv4Info ()=0 |
virtual telux::common::Status | setIPv4Info (const IPv4Info &ipv4Info)=0 |
virtual IPv6Info | getIPv6Info ()=0 |
virtual telux::common::Status | setIPv6Info (const IPv6Info &ipv6Info)=0 |
virtual IpProtocol | getIpProtocol ()=0 |
virtual IpFamilyType | getIpFamily ()=0 |
virtual | ~IIpFilter () |
|
virtual |
Destructor for IIcmpFilter
|
pure virtual |
Get the ICMP header info
|
pure virtual |
sets the ICMP header info
[in] | icmpInfo | TcpInfo structure telux::data::IcmpInfo |
class telux::data::IEspFilter |
This class represents a IP Filter for the ESP, get the new instance from telux::data::DataFactory.
Public Member Functions | |
virtual EspInfo | getEspInfo ()=0 |
virtual telux::common::Status | setEspInfo (const EspInfo &espInfo)=0 |
virtual | ~IEspFilter () |
Public Member Functions inherited from telux::data::IIpFilter | |
virtual IPv4Info | getIPv4Info ()=0 |
virtual telux::common::Status | setIPv4Info (const IPv4Info &ipv4Info)=0 |
virtual IPv6Info | getIPv6Info ()=0 |
virtual telux::common::Status | setIPv6Info (const IPv6Info &ipv6Info)=0 |
virtual IpProtocol | getIpProtocol ()=0 |
virtual IpFamilyType | getIpFamily ()=0 |
virtual | ~IIpFilter () |
|
virtual |
Destructor for IEspFilter
|
pure virtual |
Get the ESP header info
|
pure virtual |
sets the ICMP header info
[in] | espInfo | EspInfo structure telux::data::EspInfo |
struct telux::data::RoamingStatus |
Roaming Status.
Data Fields | ||
---|---|---|
bool | isRoaming |
True: Roaming on, False: Roaming off |
RoamingType | type |
International/Domestic. Valid only if roaming is on |
struct telux::data::ServiceStatus |
Data Service Status Info.
Data Fields | ||
---|---|---|
DataServiceState | serviceState | |
NetworkRat | networkRat |
class telux::data::IServingSystemManager |
Serving System Manager class provides APIs related to the serving system for data functionality. For example, ability to query or be notified about the state of the platform's WWAN PS data serving information.
Public Member Functions | |
virtual telux::common::ServiceStatus | getServiceStatus ()=0 |
virtual DrbStatus | getDrbStatus ()=0 |
virtual telux::common::Status | requestServiceStatus (RequestServiceStatusResponseCb callback)=0 |
virtual telux::common::Status | requestRoamingStatus (RequestRoamingStatusResponseCb callback)=0 |
virtual telux::common::Status | registerListener (std::weak_ptr< IServingSystemListener > listener)=0 |
virtual telux::common::Status | deregisterListener (std::weak_ptr< IServingSystemListener > listener)=0 |
virtual SlotId | getSlotId ()=0 |
virtual | ~IServingSystemManager () |
|
virtual |
Destructor of IServingSystemManager
|
pure virtual |
Checks the status of serving manager object and returns the result.
|
pure virtual |
Get the dedicated radio bearer (DRB) status
|
pure virtual |
Queries the current serving network status
[in] | callback | callback to get response for requestServiceStatus |
|
pure virtual |
Queries the current roaming status
[in] | callback | callback to get response for requestRoamingStatus |
|
pure virtual |
Register a listener for specific updates from serving system.
[in] | listener | Pointer of IServingSystemListener object that processes the notification |
|
pure virtual |
Deregister the previously added listener.
[in] | listener | Previously registered IServingSystemListener that needs to be removed |
|
pure virtual |
Get associated slot id for the Serving System Manager.
class telux::data::IServingSystemListener |
Listener class for data serving system change notification.
The listener method can be invoked from multiple different threads. Client needs to make sure that implementation is thread-safe.
Public Member Functions | |
virtual void | onServiceStatusChange (telux::common::ServiceStatus status) |
virtual void | onDrbStatusChanged (DrbStatus status) |
virtual void | onServiceStateChanged (ServiceStatus status) |
virtual void | onRoamingStatusChanged (RoamingStatus status) |
virtual | ~IServingSystemListener () |
|
virtual |
Destructor of IServingSystemListener
|
virtual |
This function is called when service status changes.
[in] | status | - ServiceStatus |
|
virtual |
This function is called whenever Drb status is changed.
[in] | status | DrbStatus |
|
virtual |
This function is called whenever service state is changed.
[in] | status | ServiceStatus |
|
virtual |
This function is called whenever roaming status is changed.
[in] | status | RoamingStatus |
union telux::data::DataCallEndReason.__unnamed__ |
Data Fields | ||
---|---|---|
MobileIpReasonCode | IpCode | |
InternalReasonCode | internalCode | |
CallManagerReasonCode | cmCode | |
SpecReasonCode | specCode | |
PPPReasonCode | pppCode | |
EHRPDReasonCode | ehrpdCode | |
Ipv6ReasonCode | ipv6Code | |
HandoffReasonCode | handOffCode |
#define PROFILE_ID_MAX 0x7FFFFFFF |
Default data profile id.
#define MAX_QOS_FILTERS 16 |
Max filters in one flow
#define IP_PROT_UNKNOWN 0xFF |
Default IP Protocol number in IPv4 or IPv6 headers.
using telux::data::DataCallResponseCb = typedef std::function<void( const std::shared_ptr<IDataCall> &dataCall, telux::common::ErrorCode error)> |
This function is called with the response to startDataCall / stopDataCall API.
The callback can be invoked from multiple different threads. The implementation should be thread safe.
When callback is used with startDataCall, expected behavior is as following:
When callback is used with stopDataCall, expected behavior is as following:
[in] | dataCall | Pointer to IDataCall |
[in] | error | Return code for whether the operation succeeded or failed |
using telux::data::StatisticsResponseCb = typedef std::function<void(const DataCallStats dataStats, telux::common::ErrorCode error)> |
This function is called with the response to requestDataCallStatistics API.
The callback can be invoked from multiple different threads. The implementation should be thread safe.
[in] | dataStats | Data Call statistics |
[in] | error | Return code for whether the operation succeeded or failed |
using telux::data::DataCallListResponseCb = typedef std::function<void( const std::vector<std::shared_ptr<IDataCall>> &dataCallList, telux::common::ErrorCode error)> |
This function is called with the response to requestDataCallList API.
The callback can be invoked from multiple different threads. The implementation should be thread safe.
[in] | dataCall | vector of of IDataCall list |
[in] | error | Return code for whether the operation succeeded or failed |
using telux::data::DefaultProfileIdResponseCb = typedef std::function<void(int profileId, SlotId slotId, telux::common::ErrorCode error)> |
This function is called with the response to getDefaultProfile API.
The callback can be invoked from multiple different threads. The implementation should be thread safe.
[in] | profileId | Current default profile id |
[in] | slotId | Slot id that contains current default profile id |
[in] | error | Return code for whether the operation succeeded or failed |
using telux::data::TrafficFlowTemplateCb = typedef std::function<void(const std::vector<std::shared_ptr<TrafficFlowTemplate>> &tft, telux::common::ErrorCode error)> |
This function is called in the response to requestTrafficFlowTemplate().
[in] | tft | Vector of TFT flow info. TrafficFlowTemplate |
[in] | error | Code which indicates whether the operation succeeded or not. ErrorCode. |
using telux::data::requestDataCallBitRateResponseCb = typedef std::function<void(BitRateInfo& bitRate, telux::common::ErrorCode error)> |
This function is called in response to requestDataCallBitRate.
The callback can be invoked from multiple different threads. The implementation should be thread safe.
[in] | bitRate | Bit Rate Info for requested data call |
[in] | error | Return code for whether the operation succeeded or failed |
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)
using telux::data::QosFlowId = typedef uint32_t |
QOS Flow identifier
using telux::data::QosIPFlowMask = typedef std::bitset<16> |
16 bit mask that denotes which of the flow paramaters defined in QosIPFlowMaskType enum are used for TFT .
using telux::data::QosFlowMask = typedef std::bitset<16> |
16 bit mask that denotes which of the flow paramaters defined in QosFlowMaskType enum are used for TFT .
using telux::data::DataRestrictModeCb = typedef std::function<void(DataRestrictMode mode, telux::common::ErrorCode error)> |
This function is called in the response to requestDataRestrictMode().
[in] | mode | Return current data restrict mode. |
[in] | error | Return code which indicates whether the operation succeeded or not. ErrorCode. |
using telux::data::TypeOfService = typedef uint8_t |
using telux::data::TrafficClass = typedef uint8_t |
using telux::data::FlowLabel = typedef uint32_t |
using telux::data::RequestServiceStatusResponseCb = typedef std::function<void(ServiceStatus serviceStatus, telux::common::ErrorCode error)> |
This function is called in response to requestServiceStatus API.
The callback can be invoked from multiple different threads. The implementation should be thread safe.
[in] | serviceStatus | Current service status telux::data::ServiceStatus |
[in] | error | Return code for whether the operation succeeded or failed. |
using telux::data::RequestRoamingStatusResponseCb = typedef std::function<void(RoamingStatus roamingStatus, telux::common::ErrorCode error)> |
This function is called in response to requestRoamingStatus API.
The callback can be invoked from multiple different threads. The implementation should be thread safe.
[in] | roamingStatus | Current roaming status telux::data::RoamingStatus |
[in] | error | Return code for whether the operation succeeded or failed. |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
Data call event status
|
strong |
Bearer technology types (returned with getCurrentBearerTech).
|
strong |
|
strong |
Data call end/termination reason code for EndReasonType::CE_MOBILE_IP
|
strong |
Data call end/termination reason code for EndReasonType::CE_INTERNAL
|
strong |
Data call end/termination reason code for EndReasonType::CE_CALL_MANAGER_DEFINED
|
strong |
Data call end/termination reason code for EndReasonType::CE_3GPP_SPEC_DEFINED
|
strong |
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 |
|
strong |
Data call end/termination reason code for EndReasonType::CE_EHRPD
|
strong |
Data call end/termination reason code for EndReasonType::CE_IPV6
Enumerator | |
---|---|
CE_PREFIX_UNAVAILABLE | |
CE_IPV6_ERR_HRPD_IPV6_DISABLED | |
CE_IPV6_DISABLED |
|
strong |
Data call end/termination reason code for EndReasonType::CE_HANDOFF
Enumerator | |
---|---|
CE_VCER_HANDOFF_PREF_SYS_BACK_TO_SRAT |
|
strong |
|
strong |
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. |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |