Telematics SDK - API Reference
v1.63.4
|
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::BackhaulInfo |
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... | |
struct | telux::data::EthCapability |
class | telux::data::IDataLinkManager |
The Data Link Manager class provides APIs related to data communication links, for example, APIs to update the Ethernet link operating mode. More... | |
class | telux::data::IDataLinkListener |
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::DdsInfo |
struct | telux::data::BandInterferenceConfig |
class | telux::data::IDataSettingsManager |
Data Settings Manager class provides APIs related to the data subsystem settings. For example, ability to reset current network settings to factory settings, setting backhaul priority, and enabling roaming per PDN. More... | |
class | telux::data::IDataSettingsListener |
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::requestRoamingModeResponseCb = std::function< void(bool isRoamingEnabled, int profileId, telux::common::ErrorCode error)> |
using | telux::data::ApnTypes = std::bitset< 16 > |
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::EthModes = uint32_t |
using | telux::data::RequestBackhaulPrefResponseCb = std::function< void(const std::vector< BackhaulType > backhaulPref, telux::common::ErrorCode error)> |
using | telux::data::RequestBandInterferenceConfigResponseCb = std::function< void(bool isEnabled, std::shared_ptr< BandInterferenceConfig > config, telux::common::ErrorCode error)> |
using | telux::data::RequestMacSecSateResponseCb = std::function< void(bool enabled, telux::common::ErrorCode error)> |
using | telux::data::requestWwanConnectivityConfigResponseCb = std::function< void(SlotId slotId, bool isAllowed, telux::common::ErrorCode error)> |
using | telux::data::RequestCurrentDdsResponseCb = std::function< void(DdsInfo currentState, 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)> |
using | telux::data::RequestNrIconTypeResponseCb = std::function< void(NrIconType type, 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 |
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 |
Returns current initialization status of data connection manager.
|
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 following: Traffic from devices tethered to MDM via default network interfaces such as eth0, ecm0, and mhi0 will be directed to rmnet_data that was brought up with default profile. Traffic initiated within MDM or EAP that is destined for WAN network and is not bound to a WAN interface will be routed by default to WAN network corresponding to the default profile ID
On platforms with Access control enabled, Caller needs to have TELUX_DATA_SETTING permission to invoke this API successfully.
[in] | operationType | telux::data::OperationType |
[in] | profileId | Profile identifier to be set as default |
[in] | callback | optional callback to get the response setDefaultProfile |
|
pure virtual |
Get current default profile
[in] | operationType | telux::data::OperationType |
[in] | callback | callback to get the response getDefaultProfile |
|
pure virtual |
Enable roaming mode for profile id. If disabled, any client attempt to bring up data call on such profile id will be prevented by system when device is in roaming area. System will report NO_NETWORK_FOUND error in such scenario. If enabled, clients can bring up data call made on such profile id and slot id successfully even if device is in roaming area. For this API to work, the platform needs to be configured in tel.conf to allow roaming management, by setting data.manage_roaming_for_datacalls=TRUE. Configuration changes will be persistent across multiple boots.
On platforms with Access control enabled, Caller needs to have TELUX_DATA_SETTING permission to invoke this API successfully.
[in] | enable | enable/disable roaming mode (True: enable, False:disable). |
[in] | profileId | profile id on which roaming mode to be enabled/disabled. |
[in] | operationType | telux::data::OperationType |
[in] | callback | optional. Callback to get response for enableRoamingMode. |
|
pure virtual |
Request current roaming mode for profile id.
[in] | profileId | profile id on which roaming mode is requested. |
[in] | operationType | telux::data::OperationType |
[in] | callback | callback to get response for requestRoamingMode. |
|
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, IP family type, and operation type (local/remote). This is an asynchronous API. If telux::common::Status::SUCCESS is returned, client provided callback will be invoked at later time with error code and DataCall object associated with requested call. Clients might receive additional notification for the final data call status. For details see telux::data::DataCallResponseCb.
On platforms with Access control enabled, Caller needs to have TELUX_DATA_CALL_OPS permission to invoke this API successfully.
[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 unused |
|
pure virtual |
Tear down data call connection based on specified profile identifier, IP family type, and operation type (local/remote). This is an asynchronous API. If telux::common::Status::SUCCESS is returned, client provided callback will be invoked at later time with error code and DataCall object associated with requested call. Clients might receive additional notification for the final data call status. For details see telux::data::DataCallResponseCb.
This will tear down specific data call connection based on profile identifier.
On platforms with Access control enabled, Caller needs to have TELUX_DATA_CALL_OPS permission to invoke this API successfully.
[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 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 DataBearerTechnology | getCurrentBearerTech ()=0 |
|
virtual |
Destructor for IDataCall
|
pure virtual |
Get interface name associated with the 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.
On platforms with Access control enabled, Caller needs to have TELUX_DATA_CALL_PROPS permission to invoke this API successfully.
[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 |
|
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.
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 void | onWwanConnectivityConfigChange (SlotId slotId, bool isConnectivityAllowed) |
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. If reported state is ServiceState::INACTIVE: All existing data calls will take software acceleration path. If reported state is ServiceState::ACTIVE: All new data calls that are started after this API invocation will be H/w accelerated. Data calls that existed before this API was invoked will continue without h/w acceleration. Client could stop and re-start pre-existing data calls in order to use H/w acceleration.
[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 |
|
virtual |
This function is called when WWAN backhaul connectivity config changes.
[in] | slotId | - Slot Id for which connectivity has changed. |
[in] | isConnectivityAllowed | - Connectivity status allowed/disallowed. |
struct telux::data::DataRestrictMode |
Defines the supported powersave filtering mode and autoexit for the packet data session. DataRestrictModeType
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 |
ApnTypes | apnTypes |
APN Types ApnMaskType |
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::BackhaulInfo |
Encapsulate backhaul configuration parameters
Data Fields | ||
---|---|---|
BackhaulType | backhaul | |
SlotId | slotId |
Backhaul type to apply configuration on. |
int | profileId |
Slot Id which has sim that contains profile id Needed only for WWAN backhaul |
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 |
uint8_t | priority |
Vlan priority - A 3-bit field which refers to the IEEE 802.1p class of service to traffic priority level. Don't care = 0 |
struct telux::data::FlowDataRate |
struct telux::data::QosIPFlowInfo |
QOS Flow IP info
Data Fields | ||
---|---|---|
QosIPFlowMask | mask |
Valid parameters of QosIPFlowInfo QosIPFlowMaskType |
IpTrafficClassType | tfClass |
IP Traffic class type IpTrafficClassType |
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.
|
pure virtual |
Get Data Connection Manager
[in] | slotId | Unique identifier for the SIM slot |
[in] | clientCallback | Optional callback to get the initialization status of DataConnectionManager telux::common::InitResponseCb |
|
pure virtual |
Get Data Profile Manager
[in] | slotId | Unique identifier for the SIM slot |
[in] | clientCallback | Optional callback to get the initialization status of DataProfileManager telux::common::InitResponseCb |
|
pure virtual |
Get Serving System Manager
[in] | slotId | Unique identifier for the SIM slot |
[in] | clientCallback | Optional callback to get the initialization status of ServingSystemManager telux::common::InitResponseCb |
|
pure virtual |
Get Data Filter Manager instance
[in] | slotId | Unique identifier for the SIM slot |
[in] | clientCallback | Optional callback to get the initialization status of Serving System Manager telux::common::InitResponseCb |
|
pure virtual |
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 |
|
pure virtual |
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 |
|
pure virtual |
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 |
|
pure virtual |
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 |
|
pure virtual |
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 |
|
pure virtual |
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 |
|
pure virtual |
Get Software Bridge Manager
[in] | clientCallback | Optional callback to get the initialization status of Bridge manager telux::common::InitResponseCb |
|
pure virtual |
Get L2TP Manager
[in] | clientCallback | Optional callback to get the initialization status of L2TP manager telux::common::InitResponseCb |
|
pure virtual |
Get Data Settings Manager
[in] | oprType | Required operation type telux::data::OperationType |
[in] | clientCallback | Optional callback to get the initialization status of Data Settings manager telux::common::InitResponseCb |
|
pure virtual |
Get Data Link Manager For hypervisor-based platforms, IDataLinkManager is supported only in the primary/host VM.
[in] | clientCallback | Optional callback to get the initialization status of IDataLinkManager 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] | mode | - 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 |
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 for all active data calls. The mode setting will be reset to DataRestrictMode::DISABLE when all data calls are disconnected.
On platforms with Access control enabled, Caller needs to have TELUX_DATA_FILTER_OPS permission to invoke this API successfully.
[in] | mode | - Enable or disable the powersave filtering mode. |
[in] | callback | - Optional callback to get the response for the change in filter mode. |
|
pure virtual |
Get the current Data Powersave filter mode
[in] | callback | - callback function to get the result of API. |
|
pure virtual |
This API adds a filter rule for all active data calls. In case when DataRestrict mode is enabled, modem will filter all the incoming data packet and route them to application processor only if filter rules added via addDataRestrictFilter API matches the criteria, else they are dropped at the modem itself and not forwarded to application processor.
On platforms with Access control enabled, Caller needs to have TELUX_DATA_FILTER_OPS permission to invoke this API successfully.
[in] | filter | - Filter rule. |
[in] | callback | - Optional callback to get the response. |
|
pure virtual |
This API removes all the previously added powersave filter.
On platforms with Access control enabled, Caller needs to have TELUX_DATA_FILTER_OPS permission to invoke this API successfully.
[in] | callback | - Optional callback to get the response. |
|
pure virtual |
Get associated slot id for the Data Filter Manager.
|
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 |
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.
On platforms with Access control enabled, Caller needs to have TELUX_DATA_FILTER_OPS permission to invoke this API successfully.
[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.
On platforms with Access control enabled, Caller needs to have TELUX_DATA_FILTER_OPS permission to invoke this API successfully.
[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
On platforms with Access control enabled, Caller needs to have TELUX_DATA_FILTER_OPS permission to invoke this API successfully.
[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. |
struct telux::data::EthCapability |
Provides Ethernet link capability
Data Fields | ||
---|---|---|
EthModes | ethModes |
class telux::data::IDataLinkManager |
The Data Link Manager class provides APIs related to data communication links, for example, APIs to update the Ethernet link operating mode.
Under certain scenarios, like thermal mitigation, the local ETH module needs to change the link operating mode, e.g., downgrade it from EthModeType::USXGMII_10G to EthModeType::SGMII_1G. The ETH module requires that the client communicate and coordinate with the remote end of the link (called the peer) to transition to the new mode. The sequence in which the transition is initiated and completed is illustrated below:
If this code is running as part of an ECU (other end of ETH link) which needs to react to new ETH operating mode requests from NAD, then setLocalEthOperatingMode needs to be called.
For hypervisor-based platforms, IDataLinkManager is supported only in the primary/host VM.
Public Member Functions | |
virtual telux::common::ServiceStatus | getServiceStatus ()=0 |
virtual telux::common::Status | getEthCapability (EthCapability ðCapability)=0 |
virtual telux::common::Status | setPeerEthCapability (EthCapability ethCapability)=0 |
virtual telux::common::Status | setLocalEthOperatingMode (EthModeType ethModeType, telux::common::ResponseCallback callback=nullptr)=0 |
virtual telux::common::Status | setPeerModeChangeRequestStatus (LinkModeChangeStatus status)=0 |
virtual telux::common::Status | registerListener (std::weak_ptr< IDataLinkListener > listener)=0 |
virtual telux::common::Status | deregisterListener (std::weak_ptr< IDataLinkListener > listener)=0 |
|
pure virtual |
Checks the status of Data Link manager object and returns the result.
|
pure virtual |
Gets local ethernet link capability and provides the supported ethernet data rates and respective operating mode (MII variant) considered for thermal mitigation.
On platforms with access control enabled, the caller needs to have TELUX_DATA_LINK_INFO permission to successfully invoke this API.
[out] | ethCapability | Info with respect to ETH link capability |
|
pure virtual |
Informs the NAD about the modes supported by the ECU on the other end of the Ethernet link (peer). For instance, when the temperature of the NAD exceeds certain thresholds, the NAD downgrades the mode of the ETH Link to a low mode supported by the other end.
This info is not persistent over device reboot or sub-system restart (SSR) updated via IDataLinkListener::onServiceStatusChange()
On platforms with access control enabled, the caller needs to have TELUX_DATA_LINK_CONFIG permission to successfully invoke this API.
[in] | ethCapability | Bitmask containing EthModeType bits |
|
pure virtual |
Sets the local ethernet link operating mode. This API can be used to change the local device ethernet data rate and operating mode, for example, when the remote end of the Ethernet link requires a modified mode due to a thermal threshold being crossed this API should be used.
On platforms with access control enabled, the caller needs to have TELUX_DATA_LINK_CONFIG permission to successfully invoke this API.
[in] | ethModeType | Provides the suggested ethernet speed and operating mode (MII variant) |
[in] | callback | Optional callback to get the response for setLocalEthOperatingMode. |
|
pure virtual |
Allows the client to provide the acknowledgement status from the remote end to the NAD that made the link operating mode update request.
The new ethernet operating mode will be suggested via IDataLinkListener::onEthModeChangeRequest in scenarios like when the temperature crosses the expected limit. This suggestion needs to be accepted and processed by the other end of ethernet connection. To complete the transition this API needs to be called with proper LinkModeChangeStatus.
This API should be called when:
Any failure response interrupts updating the ETH mode, which was triggered via IDataLinkListener::onEthModeChangeRequest. In failure cases, the client needs to wait for the new ETH mode update request IDataLinkListener::onEthModeChangeRequest or, if needed, the user can use setLocalEthOperatingMode.
On platforms with access control enabled, the caller needs to have TELUX_DATA_LINK_CONFIG permission to successfully invoke this API.
status | Current status of ETH mode change request |
|
pure virtual |
Registers with the Data Link Manager as a listener for service statuses and other events.
[in] | listener | Pointer to the IDataLinkListener object that processes the notification |
|
pure virtual |
Removes a previously added listener.
[in] | listener | Pointer to the IDataLinkListener object that needs to be removed |
class telux::data::IDataLinkListener |
Interface for the Data Link listener object. Client needs to implement this interface to be notified of data link service notifications like onServiceStatusChange.
The listener methods can be invoked from multiple threads. The implementation should be thread safe.
Public Member Functions | |
virtual void | onServiceStatusChange (telux::common::ServiceStatus status) |
virtual void | onEthModeChangeRequest (EthModeType ethModeType) |
virtual void | onEthModeChangeTransactionStatus (EthModeType ethModeType, LinkModeChangeStatus status) |
virtual | ~IDataLinkListener () |
|
virtual |
Destructor for IDataLinkListener
|
virtual |
Called when the service status changes.
[in] | status | - ServiceStatus |
|
virtual |
Requests a change in ethernet speed and operating mode (MII variant).
This is invoked by the platform, possibly due to thermal mitigation. This API is invoked to request that the client helps coordinate a change in the ethernet speed and operating mode. When this API is called, the client is expected to inform the peer about this request and get an acknowledgement whether the peer is moving to the requested mode setPeerModeChangeRequestStatus.
Since the ETH link will be down after the onEthModeChangeRequest is invoked, the client should use an interconnect other than ETH to convey the new mode information to the peer and obtain acknowledgment. Once the peer has successfully transitioned to the desired mode and updated the local ETH module, successful acknowledgment via setPeerModeChangeRequestStatus will make the ETH link usable.
On platforms with access control enabled, the caller needs to have TELUX_DATA_LINK_CONFIG permission to successfully invoke this API.
[in] | ethModeType | Provides the suggested ethernet speed and operating mode (MII variant) |
|
virtual |
Informs about ethernet speed and operating mode (MII variant) status changes.
In case of a timeout or failure reported via this API, communication over ETH link would not be possible. A new ETH mode change request will be initiated via onEthModeChangeRequest when the temperature crosses the expected limit. However, to complete the transition to the new ETH mode, a successful acknowledgment within a certain time via setPeerModeChangeRequestStatus is required.
On platforms with access control enabled, the caller needs to have TELUX_DATA_LINK_INFO permission to successfully invoke this API.
[in] | EthModeType | Provides the updated ethernet speed and operating mode (MII variant) |
[in] | status | Current status of ETH mode change request |
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, ApnTypes apnTypes) | |
int | getId () |
std::string | getName () |
std::string | getApn () |
std::string | getUserName () |
std::string | getPassword () |
TechPreference | getTechPreference () |
AuthProtocolType | getAuthProtocolType () |
IpFamilyType | getIpFamilyType () |
ApnTypes | getApnTypes () |
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, | ||
ApnTypes | apnTypes | ||
) |
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.
On platforms with Access control enabled, Caller needs to have TELUX_DATA_PROFILE_OPS permission to invoke this API successfully.
[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.
On platforms with Access control enabled, Caller needs to have TELUX_DATA_PROFILE_OPS permission to invoke this API successfully.
[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.
On platforms with Access control enabled, Caller needs to have TELUX_DATA_PROFILE_OPS permission to invoke this API successfully.
[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::DdsInfo |
Specifies the DDS switch information.
Data Fields | ||
---|---|---|
DdsType | type | |
SlotId | slotId |
Specifies DDS switch type |
struct telux::data::BandInterferenceConfig |
N79 5G/Wlan 5GHz interference avoidance configuration
Data Fields | ||
---|---|---|
BandPriority | priority | |
uint32_t | wlanWaitTimeInSec |
Priority settings for N79/Wlan 5G |
uint32_t | n79WaitTimeInSec |
If Wlan 5GHz has higher priority and suffers signal drop, modem will wait for period of time specified here for Wlan signal to recover before enabeling N79 5G. |
class telux::data::IDataSettingsManager |
Data Settings Manager class provides APIs related to the data subsystem settings. For example, ability to reset current network settings to factory settings, setting backhaul priority, and enabling roaming per PDN.
|
pure virtual |
Checks the status of Data Settings manager object and returns the result.
|
pure virtual |
Resets current network settings to initial setting configured in factory. Factory settings are the initial network settings generated during manufacturing process. For the factory settings to take effect a reboot is required. Clients can choose if this API invocation should reboot the system or the client would take responsibility of rebooting it.
[in] | operationType | telux::data::OperationType |
[in] | callback | callback to get the response to restoreFactorySettings |
[in] | isRebootNeeded | true: System is automatically rebooted after reverting to factory settings false: System is not rebooted after successful reset |
|
pure virtual |
Set backhaul preference for bridge0 (default bridge) traffic. Bridge0 Traffic routing to backhaul will be attempted on first to least preferred. For instance if backhaul vector contains ETH, USB, and WWAN, bridge0 traffic routing will be attempted on ETH first, then USB and finally WWAN backhaul. Configuration changes will be persistent across reboots.
On platforms with Access control enabled, Caller needs to have TELUX_DATA_SETTING permission to invoke this API successfully.
[in] | backhaulPref | vector of telux::data::BackhaulType which contains the order of backhaul preference to be used when connecting to external network. First element is most preferred and last element is least preferred backhaul. |
[in] | callback | callback to get response for setBackhaulPreference. |
|
pure virtual |
Request current backhaul preference for bridge0 (default bridge) traffic.
[in] | callback | callback to get response for requestBackhaulPreference. |
|
pure virtual |
Configure N79 5G and Wlan 5GHz band priority. Sets priority for modem to use either 5GHz Wlan or N79 5G band when they are both available to avoid interference. In case N79 5G is configured as higher priority: If N79 5G becomes available while 5G Wlan is enabled, Wlan (AP/Sta) will be moved to 2.4 GHz. If N79 5G becomes unavailable for telux::data::BandInterferenceConfig::n79WaitTimeInSec time period, Wlan will be moved to 5GHz. In case Wlan 5GHz is configured as higher priority: If Wlan 5GHz (AP/Sta) becomes available while N79 5G is enabled, N79 5G will be disabled. If Wlan 5GHz becomes unavailable for telux::data::BandInterferenceConfig::wlanWaitTimeInSec period and N79 5G is available, N79 will be enabled.
On platforms with Access control enabled, Caller needs to have TELUX_DATA_SETTING permission to invoke this API successfully.
[in] | enable | True: enable interference management. False: disable interference management |
[in] | config | N79 5G /Wlan 5GHz band interference configuration telux::data::BandInterferenceConfig |
[in] | callback | callback to get response for setBandInterferenceConfig. |
|
pure virtual |
Request N79 5G and Wlan 5GHz band priority settings. Request the configurations set by telux::data::setBandInterferenceConfig
[in] | callback | callback to get response for requestBandInterferenceConfig. |
|
pure virtual |
Allows the client to perform the DDS switch. Client has the option to either select permanent or temporary switch.
[in] | request | Client has to provide the request telux::data::DdsInfo. |
[in] | callback | Callback to get response for requestDdsSwitch. Possible ErrorCode in telux::common::ResponseCallback:
|
|
pure virtual |
Request the current DDS slot information
[in] | callback | Callback to get response for requestCurrentDds. |
|
pure virtual |
Allow/Disallow WWAN connectivity. Controls whether system should allow/disallow WWAN connectivity to cellular network. Default setting is allow WWAN connectivity to cellular network.
On platforms with Access control enabled, Caller needs to have TELUX_DATA_SETTING permission to invoke this API successfully.
[in] | slotId | Slot id on which WWAN connectivity to be allowed/disallowed |
[in] | allow | True: allow connectivity, False: disallow connectivity |
[in] | callback | optional callback to get response for setWwanConnectivityConfig. |
|
pure virtual |
Request current WWAN connectivity Configuration.
[in] | slotId | Slot id for which WWAN connectivity to be reported. |
[in] | callback | callback to get response for requestWwanConnectivityConfig. |
|
pure virtual |
Allows the client to set the MacSec state.
[in] | enable | True: enable the MacSec, False: disable the MacSec. |
[in] | callback | Callback to get the setMacSecState response. |
|
pure virtual |
Requests the current MacSec state.
[in] | callback | callback to get response for requestMacSecState. |
|
pure virtual |
Switch backhaul to be used by traffic. Provides the ability to re-route clients traffic from one backhaul to another. Clients must call this API for each backhaul switch. For instance, if the default bridge (bridge0) and the on-demand bridge (bridges created by VLANs) need to be re-routed to WLAN, this API must be called twice for the default profile ID and the on-demand profile ID.. If destination backhaul is WLAN (WLAN in Station Mode):
[in] | source | Backhaul telux::data::BackhaulInfo to re-route traffic from |
[in] | dest | Backhaul telux::data::BackhaulType to re-route traffic to |
[in] | applyToAll | Traffic on all source backhauls will be routed to dest backhauls if the source backhaul type is telux::data::BackhaulType::WWAN, traffic on all WWAN backhauls (default and on-demand) will be routed to dest backhaul. if dest backhaul type is telux::data::BackhaulType::WWAN traffic on source backhaul will be routed to WWAN backhauls (default and on-demand) based on vlan-backhaul binding set by telux::data::net::IVlanManager::bindToBackhaul |
[in] | callback | Optional callback to get the response for switchBackHaul. |
|
pure virtual |
Register Data Settings Manager as listener for Data Service heath events like data service available or data service not available.
[in] | listener | pointer of IDataSettingsListener object that processes the notification |
|
pure virtual |
Removes a previously added listener.
[in] | listener | pointer of IDataSettingsListener object that needs to be removed |
class telux::data::IDataSettingsListener |
Interface for Data Settings listener object. Client needs to implement this interface to get access to Data Settings services notifications like onServiceStatusChange.
The methods in listener can be invoked from multiple different threads. The implementation should be thread safe.
Public Member Functions | |
virtual void | onServiceStatusChange (telux::common::ServiceStatus status) |
virtual void | onWwanConnectivityConfigChange (SlotId slotId, bool isConnectivityAllowed) |
virtual void | onDdsChange (DdsInfo currentState) |
virtual | ~IDataSettingsListener () |
|
virtual |
Destructor for IDataSettingsListener
|
virtual |
This function is called when service status changes.
[in] | status | - ServiceStatus |
|
virtual |
This function is called when WWAN backhaul connectivity config changes.
[in] | slotId | - Slot Id for which connectivity has changed. |
[in] | isConnectivityAllowed | - Connectivity status allowed/disallowed. |
|
virtual |
Provides the current DDS state and is called whenever a DDS switch occurs.
[in] | currentState | Provides the current DDS status.
|
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 | requestNrIconType (RequestNrIconTypeResponseCb callback)=0 |
virtual telux::common::Status | makeDormant (telux::common::ResponseCallback callback=nullptr)=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 |
Queries the NR icon type to be displayed based on the serving system that the device has acquired service on.
[in] | callback | callback to get response for requestNrIconType |
|
pure virtual |
Request modem switch to dormant state: Certain network operations can only be performed when modem is in dormant state. This API provides an ability for clients to request modem to immediately transition to dormant state for such scenarios.
Clients must ensure no data calls are in process of bring up/tear down and there is no traffic on any active data calls when this API is called.
[in] | callback | optional callback to get the response of makeDormancy |
On platforms with Access control enabled, Caller needs to have TELUX_DATA_SERVICE_MGMT permission to invoke this API successfully.
|
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. Note: Some APIs of this listener support an auto-suppress feature, where the invocation of the API will be suppressed, to prevent unnecessary wakeups and save power, when the system is in a suspended state, enabling the auto suppress feature is controlled using a platform configuration in tel.conf. If the platform is configured to suppress an API, that API will not be invoked during suspend. In this case, if a state change or event occurs in the modem, the client will not know about it via a listener indication. If the client is interested, it can get the latest state explicitly on resume.
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 void | onNrIconTypeChanged (NrIconType type) |
virtual | ~IServingSystemListener () |
|
virtual |
Destructor of IServingSystemListener
|
virtual |
This function is called when telux::common::ServiceStatus status changes. telux::common::ServiceStatus indicate whether this sub system ready to provide service.
[in] | status | - ServiceStatus |
|
virtual |
This function is called whenever Drb status is changed.
[in] | status | DrbStatus |
This API supports the auto-suppress feature.
|
virtual |
This function is called whenever telux::data:ServiceStatus state is changed. telux::data:ServiceStatus indicate packet switch domain network status.
[in] | status | ServiceStatus |
This API supports the auto-suppress feature.
|
virtual |
This function is called whenever roaming status is changed.
[in] | status | RoamingStatus |
This API supports the auto-suppress feature.
|
virtual |
This function is called whenever NR icon type is changed.
[in] | type | NrIconType |
This API supports the auto-suppress feature.
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:
Note: Telsdk broadcasts changes in any data call status to all available clients through the listener interface telux::data::IDataConnectionListener::onDataCallInfoChanged. Therefore, clients could get notification about data calls and their status changes that might not be relevent to the client. Client could also get successful connection notifications of data call client previously failed to connect. The notification could be a consequence of another client activity or system is set to automatically reconnect failed data calls.
[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. Returned dataStats will contain data call statistics telux::data::DataCallStats if reported error is telux::common::ErrorCode::SUCCESS. If error is reported, content of dataStats is don't care
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. Returned dataCallList will contain current active and connected DataCall objects if reported error is telux::common::ErrorCode::SUCCESS. If error detected, contents of dataCallList is don't care
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. Returned profileId is current default profile contained in slotId if reported error is telux::common::ErrorCode::SUCCESS. If error detected, content of profileId and slotId is don't care.
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. Returned bitRate will contain data call bit rates telux::data::BitRateInfo if reported error is telux::common::ErrorCode::SUCCESS. If error is reported, content of bitRate is don't care
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::requestRoamingModeResponseCb = typedef std::function<void(bool isRoamingEnabled, int profileId, telux::common::ErrorCode error)> |
This function is called in response to requestRoamingMode.
The callback can be invoked from multiple different threads. The implementation should be thread safe.
[in] | isRoamingEnabled | True - roaming mode enabled, False - roaming mode disabled. |
[in] | profileId | Profile Id on which roaming mode is enabled. |
[in] | error | Return code for whether the operation succeeded or failed. |
using telux::data::ApnTypes = typedef std::bitset<16> |
16 bit mask to set apn types paramater. ApnMaskType enum are used to set apn types.
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::EthModes = typedef uint32_t |
Bitmask containing EthModeType bits, e.g., a value of 0x3 represents that USXGMII 10G and 5G are supported.
using telux::data::RequestBackhaulPrefResponseCb = typedef std::function<void( const std::vector<BackhaulType> backhaulPref, telux::common::ErrorCode error)> |
This function is called with the response to requestBackhaulPreference API.
The callback can be invoked from multiple different threads. The implementation should be thread safe.
[in] | backhaulPref | vector of telux::data::BackhaulPref which contains the current order of backhaul preference First element is most preferred and last element is least preferred backhaul. |
[in] | error | Return code for whether the operation succeeded or failed. |
using telux::data::RequestBandInterferenceConfigResponseCb = typedef std::function<void(bool isEnabled, std::shared_ptr<BandInterferenceConfig> config, telux::common::ErrorCode error)> |
This function is called with the response to requestBandInterferenceConfig API.
The callback can be invoked from multiple different threads. The implementation should be thread safe.
[in] | isEnabled | True: interference management is enabled. False: interference management is disabled |
[in] | config | Current N79 5G /Wlan 5GHz band interference configuration Set to nullptr if interference management is disabled telux::data::BandInterferenceConfig |
[in] | error | Return code for whether the operation succeeded or failed. |
using telux::data::RequestMacSecSateResponseCb = typedef std::function<void(bool enabled, telux::common::ErrorCode error)> |
This function is called with the response to requestMacSecState API.
The callback can be invoked from multiple different threads. The implementation should be thread safe.
[in] | enabled | True: MacSec is enabled, False: MacSec is disabled. |
[in] | error | Return code for whether the operation succeeded or failed. |
using telux::data::requestWwanConnectivityConfigResponseCb = typedef std::function<void(SlotId slotId, bool isAllowed, telux::common::ErrorCode error)> |
This function is called with the response to requestWwanConnectivityConfig API.
The callback can be invoked from multiple different threads. The implementation should be thread safe.
[in] | slotId | Slot id for which wwan connectivity is reported. |
[in] | isAllowed | True: connectivity allowed, False: connectivity disallowed. |
[in] | error | Return code for whether the operation succeeded or failed. |
using telux::data::RequestCurrentDdsResponseCb = typedef std::function<void(DdsInfo currentState, telux::common::ErrorCode error)> |
This function is called in response to requestCurrentDds API.
The callback can be invoked from multiple different threads. The implementation should be thread safe.
[in] | currentState | Provides the current DDS status telux::data::DdsInfo. |
[in] | error | Return code for whether the operation succeeded or failed. |
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. |
using telux::data::RequestNrIconTypeResponseCb = typedef std::function<void(NrIconType type, telux::common::ErrorCode error)> |
This function is called in response to RequestNrIconType API.
The callback can be invoked from multiple different threads. The implementation should be thread safe.
[in] | type | Current NR icon type telux::data::NrIconType |
[in] | error | Return code for whether the operation succeeded or failed. |
|
strong |
|
strong |
|
strong |
|
strong |
Specifies APN types that can be set while creating or modifying a profile
|
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 |
Peripheral Interface type
|
strong |
|
strong |
|
strong |
|
strong |
Specifies the media-independent interface (MII) variant and data rate.
|
strong |
|
strong |
|
strong |
Possible DDS switch types.
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |