Telematics SDK - Interface Specification  v1.42.0
 All Data Structures Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
CPP APIs

Data Structures

class  telux::cv2x::Cv2xFactory
 Cv2xFactory is the factory that creates the Cv2x Radio. More...
 
class  telux::cv2x::ICv2xRadio
 
class  telux::cv2x::ICv2xRadioListener
 Listeners for Cv2xRadio must implement this interface. More...
 
class  telux::cv2x::ICv2xRadioManager
 Cv2xRadioManager manages instances of Cv2xRadio. More...
 
class  telux::cv2x::ICv2xRxSubscription
 
class  telux::cv2x::ICv2xThrottleManagerListener
 Listener class for getting filter rate update notification. More...
 
class  telux::cv2x::ICv2xThrottleManager
 ThrottleManager provides throttle manager client interface. More...
 
class  telux::cv2x::ICv2xTxFlow
 

Typedefs

using telux::cv2x::setVerificationLoadCallback = std::function< void(telux::common::ErrorCode error)>
 

Detailed Description

This section contains C++ APIs related to Cellular-V2X operation.


Data Structure Documentation

class telux::cv2x::Cv2xFactory

Cv2xFactory is the factory that creates the Cv2x Radio.

Public Member Functions

std::shared_ptr
< ICv2xRadioManager
getCv2xRadioManager (telux::common::InitResponseCb cb=nullptr)
 
std::shared_ptr< ICv2xConfiggetCv2xConfig (telux::common::InitResponseCb cb=nullptr)
 
std::shared_ptr
< ICv2xThrottleManager
getCv2xThrottleManager ()
 

Static Public Member Functions

static Cv2xFactorygetInstance ()
 

Member Function Documentation

static Cv2xFactory& telux::cv2x::Cv2xFactory::getInstance ( )
static

Get Cv2xFactory instance

Returns
Reference to Cv2xFactory singleton.
std::shared_ptr<ICv2xRadioManager> telux::cv2x::Cv2xFactory::getCv2xRadioManager ( telux::common::InitResponseCb  cb = nullptr)

Get Cv2xRadioManager instance.

Parameters
[in]cb- Optional callback to get Cv2xRadioManager initialization status
Returns
shared pointer to Cv2x Radio Manager upon success. nullptr otherwise.
std::shared_ptr<ICv2xConfig> telux::cv2x::Cv2xFactory::getCv2xConfig ( telux::common::InitResponseCb  cb = nullptr)

Get Cv2xConfig instance.

Parameters
[in]cb- Optional callback to get Cv2xConfig initialization status
Returns
shared pointer to Cv2x Config upon success. nullptr otherwise.
std::shared_ptr<ICv2xThrottleManager> telux::cv2x::Cv2xFactory::getCv2xThrottleManager ( )

Get Cv2xThrottleManager instance.

Returns
shared pointer to Cv2x ThrottleManager upon success. nullptr otherwise.
class telux::cv2x::ICv2xRadio

This is class encapsulates a Cv2xRadio interface.

Returned from getCv2xRadio in Cv2xFactory

Public Member Functions

virtual Cv2xRadioCapabilities getCapabilities () const =0
 
virtual bool isReady () const =0
 
virtual bool isInitialized () const =0
 
virtual std::future
< telux::common::Status
onReady ()=0
 
virtual telux::common::Status registerListener (std::weak_ptr< ICv2xRadioListener > listener)=0
 
virtual telux::common::Status deregisterListener (std::weak_ptr< ICv2xRadioListener > listener)=0
 
virtual telux::common::Status createRxSubscription (TrafficIpType ipType, uint16_t port, CreateRxSubscriptionCallback cb, std::shared_ptr< std::vector< uint32_t >> idList=nullptr)=0
 
virtual telux::common::Status createTxSpsFlow (TrafficIpType ipType, uint32_t serviceId, const SpsFlowInfo &spsInfo, uint16_t spsSrcPort, bool eventSrcPortValid, uint16_t eventSrcPort, CreateTxSpsFlowCallback cb)=0
 
virtual telux::common::Status createTxEventFlow (TrafficIpType ipType, uint32_t serviceId, uint16_t eventSrcPort, CreateTxEventFlowCallback cb)=0
 
virtual telux::common::Status createTxEventFlow (TrafficIpType ipType, uint32_t serviceId, const EventFlowInfo &flowInfo, uint16_t eventSrcPort, CreateTxEventFlowCallback cb)=0
 
virtual telux::common::Status closeRxSubscription (std::shared_ptr< ICv2xRxSubscription > rxSub, CloseRxSubscriptionCallback cb)=0
 
virtual telux::common::Status closeTxFlow (std::shared_ptr< ICv2xTxFlow > txFlow, CloseTxFlowCallback cb)=0
 
virtual telux::common::Status changeSpsFlowInfo (std::shared_ptr< ICv2xTxFlow > txFlow, const SpsFlowInfo &spsInfo, ChangeSpsFlowInfoCallback cb)=0
 
virtual telux::common::Status requestSpsFlowInfo (std::shared_ptr< ICv2xTxFlow > txFlow, RequestSpsFlowInfoCallback cb)=0
 
virtual telux::common::Status changeEventFlowInfo (std::shared_ptr< ICv2xTxFlow > txFlow, const EventFlowInfo &flowInfo, ChangeEventFlowInfoCallback cb)=0
 
virtual telux::common::Status requestCapabilities (RequestCapabilitiesCallback cb)=0
 
virtual telux::common::Status requestDataSessionSettings (RequestDataSessionSettingsCallback cb)=0
 
virtual telux::common::Status updateSrcL2Info (UpdateSrcL2InfoCallback cb)=0
 
virtual telux::common::Status updateTrustedUEList (const TrustedUEInfoList &infoList, UpdateTrustedUEListCallback cb)=0
 
virtual ~ICv2xRadio ()
 
virtual std::string getIfaceNameFromIpType (TrafficIpType ipType)=0
 
virtual telux::common::Status createCv2xTcpSocket (const EventFlowInfo &eventInfo, const SocketInfo &sockInfo, CreateTcpSocketCallback cb)=0
 
virtual telux::common::Status closeCv2xTcpSocket (std::shared_ptr< ICv2xTxRxSocket > sock, CloseTcpSocketCallback cb)=0
 

Constructor & Destructor Documentation

virtual telux::cv2x::ICv2xRadio::~ICv2xRadio ( )
virtual

Destructor for ICv2xRadio

Member Function Documentation

virtual Cv2xRadioCapabilities telux::cv2x::ICv2xRadio::getCapabilities ( ) const
pure virtual

Get the capabilities of this Cv2xRadio.

Returns
Cv2xRadioCapabilities - Contains capabilities of this Cv2xRadio.
Deprecated:
Use requestCapabilities() API
virtual bool telux::cv2x::ICv2xRadio::isReady ( ) const
pure virtual

Returns true if the radio interface was successfully initialized.

Returns
True if ready. False otherwise.
virtual bool telux::cv2x::ICv2xRadio::isInitialized ( ) const
pure virtual

Returns true if the radio interface has completed initialization.

Returns
True if initialized. False otherwise.
virtual std::future<telux::common::Status> telux::cv2x::ICv2xRadio::onReady ( )
pure virtual

Returns a future that indicated if the radio interface is ready or if radio failed to initialize.

Returns
SUCCESS if Cv2xRadio initialization was successful. Otherwise it returns an Error Code.
virtual telux::common::Status telux::cv2x::ICv2xRadio::registerListener ( std::weak_ptr< ICv2xRadioListener listener)
pure virtual

Registers a listener for this Cv2xRadio.

Parameters
[in]listener- Listener that implements Cv2xRadioListener interface.
virtual telux::common::Status telux::cv2x::ICv2xRadio::deregisterListener ( std::weak_ptr< ICv2xRadioListener listener)
pure virtual

Deregisters a listener from this Cv2xRadio.

Parameters
[in]listener- Previously registered Cv2xRadioListener that is to be deregistered.
virtual telux::common::Status telux::cv2x::ICv2xRadio::createRxSubscription ( TrafficIpType  ipType,
uint16_t  port,
CreateRxSubscriptionCallback  cb,
std::shared_ptr< std::vector< uint32_t >>  idList = nullptr 
)
pure virtual

Creates and initializes a new Rx subscription which will be returned in the user-supplied callback.

Parameters
[in]ipType- IP traffic type (IP or NON-IP)
[in]port- Rx port number
[in]cb- Callback function that is invoked when socket creation is complete.
[in]idList- Service ID list to subscribe, optional parameter using nullptr by default. Subscribe wildcard if this parameter is set to nullptr.
Returns
SUCCESS on success. Error status otherwise.
Dependencies The interface must be pre-initialized with init().
virtual telux::common::Status telux::cv2x::ICv2xRadio::createTxSpsFlow ( TrafficIpType  ipType,
uint32_t  serviceId,
const SpsFlowInfo &  spsInfo,
uint16_t  spsSrcPort,
bool  eventSrcPortValid,
uint16_t  eventSrcPort,
CreateTxSpsFlowCallback  cb 
)
pure virtual

Creates a Tx SPS flow with the specified IP type, serviceId, and other parameters specified in reservation. Additionally, an option event flow will be created with the same IP type and serviceId. A Tx socket will be created and initialized for the SPS flow. A Tx socket will be created and initialized for the event flow if the optional event flow is specified.

Parameters
[in]ipType- IP traffic type (IP or NON-IP)
[in]serviceId- ID used for transmissions that will be mapped to an L2 destination address. Variable length 4-byte PSID or ITS_AID, or another service ID.
[in]spsInfo- SPS reservation parameters.
[in]spsPort- Requested source port number for the bandwidth reserved SPS transmissions.
[in]eventSrcPortValid- True if an optional event flow is desired. If this field is left false, the event flow will not be created.
[in]eventSrcPort- Requested source port number for the optional event flow.
[in]cb- Callback function that is invoked when socket creation is complete. This must not be null.
This caller is expected to identify two unused local port numbers
to use for binding: one for the event-driven flow and one for the SPS flow.
Returns
SUCCESS upon success. Error status otherwise.
virtual telux::common::Status telux::cv2x::ICv2xRadio::createTxEventFlow ( TrafficIpType  ipType,
uint32_t  serviceId,
uint16_t  eventSrcPort,
CreateTxEventFlowCallback  cb 
)
pure virtual

Creates an event flow. An associated Tx socket will be created and initialized.

Parameters
[in]ipType- IP traffic type (IP or NON-IP)
[in]serviceId- ID used for transmissions that will be mapped to an L2 destination address. Variable length 4-byte PSID or ITS_AID, or another service ID.
[in]eventSrcPort- Local port number to which the socket is bound. Used for transmissions of this ID.
[in]cb- Callback function that is invoked when socket creation is complete. This must not be null.
Detailed description This function is used only for TX when no periodicity is
available for the application type. If your transmit data periodicity is known, use createTxSpsFlow() instead.
These even-driven sockets pay attention to the QoS parameters in
the IP socket.
Returns
SUCCESS upon success. Error status otherwise.
virtual telux::common::Status telux::cv2x::ICv2xRadio::createTxEventFlow ( TrafficIpType  ipType,
uint32_t  serviceId,
const EventFlowInfo &  flowInfo,
uint16_t  eventSrcPort,
CreateTxEventFlowCallback  cb 
)
pure virtual

Creates an event flow. An associated Tx socket will be created and initialized.

Parameters
[in]ipType- IP traffic type (IP or NON-IP)
[in]serviceId- ID used for transmissions that will be mapped to an L2 destination address. Variable length 4-byte PSID or ITS_AID, or another service ID.
[in]flowInfo- Flow configuration parameters
[in]eventSrcPort- Local port number to which the socket is bound. Used for transmissions of this ID.
[in]cb- Callback function that is invoked when socket creation is complete. This must not be null.
Detailed description This function is used only for TX when no periodicity is
available for the application type. If your transmit data periodicity is known, use createTxSpsFlow() instead.
These even-driven sockets pay attention to the QoS parameters in
the IP socket.
Returns
SUCCESS upon success. Error status otherwise.
virtual telux::common::Status telux::cv2x::ICv2xRadio::closeRxSubscription ( std::shared_ptr< ICv2xRxSubscription rxSub,
CloseRxSubscriptionCallback  cb 
)
pure virtual

Closes the RxSubscription and frees resources (such as the Rx socket) associated with it.

Parameters
[in]rxSub- RxSubscription to close
[in]cb- Callback that is invoked when socket close is complete. This may be null.
Returns
SUCCESS if no error occurred.
virtual telux::common::Status telux::cv2x::ICv2xRadio::closeTxFlow ( std::shared_ptr< ICv2xTxFlow txFlow,
CloseTxFlowCallback  cb 
)
pure virtual

Closes the TxFlow and frees resources associated with it (such as reserved SPS bandwidth contracts and sockets). This function works on both SPS and event flows.

Parameters
[in]txFlow- Tx (SPS or event) flow to close.
[in]cb- Callback that is invoked when Tx flow close is complete. This may be null.
Returns
SUCCESS if no error occurred.
virtual telux::common::Status telux::cv2x::ICv2xRadio::changeSpsFlowInfo ( std::shared_ptr< ICv2xTxFlow txFlow,
const SpsFlowInfo &  spsInfo,
ChangeSpsFlowInfoCallback  cb 
)
pure virtual

Request to change TX SPS Flow reservation parameters.

Parameters
[in]txFlow- Tx SPS flow
[in]spsInfo- Desired SPS reservation parameters
[in]cb- Callback that is invoked upon reservation change. This may be null.
Detailed description
This function does not update reservation priority
Returns
SUCCESS if no error occurred.
virtual telux::common::Status telux::cv2x::ICv2xRadio::requestSpsFlowInfo ( std::shared_ptr< ICv2xTxFlow txFlow,
RequestSpsFlowInfoCallback  cb 
)
pure virtual

Request SPS flow info.

Parameters
[in]sock- Tx SPS flow
[in]cb- Callback that will be invoked and returns the SPS info. Must not be null.
Returns
SUCCESS if no error occurred.
virtual telux::common::Status telux::cv2x::ICv2xRadio::changeEventFlowInfo ( std::shared_ptr< ICv2xTxFlow txFlow,
const EventFlowInfo &  flowInfo,
ChangeEventFlowInfoCallback  cb 
)
pure virtual

Request to change TX Event Flow reservation parameters.

Parameters
[in]txFlow- Tx Event flow
[in]flowInfo- Desired Event flow parameters
[in]cb- Callback that is invoked upon parameter change. This may be null.
Returns
SUCCESS if no error occurred.
virtual telux::common::Status telux::cv2x::ICv2xRadio::requestCapabilities ( RequestCapabilitiesCallback  cb)
pure virtual

Request modem Cv2x capability information.

Parameters
[in]cb- Callback that will be invoked and returns the capability info. Must not be null.
Returns
SUCCESS if no error occurred.
virtual telux::common::Status telux::cv2x::ICv2xRadio::requestDataSessionSettings ( RequestDataSessionSettingsCallback  cb)
pure virtual

Request data session settings currently in use.

Parameters
[in]cb- Callback that will be invoked and returns the data session settings. Must not be null.
Returns
SUCCESS if no error occurred.
virtual telux::common::Status telux::cv2x::ICv2xRadio::updateSrcL2Info ( UpdateSrcL2InfoCallback  cb)
pure virtual

Requests modem to change L2 info.

Parameters
[in]cb- Callback that will be invoked and returns status. Must not be null.
Returns
SUCCESS if no error occurred.
virtual telux::common::Status telux::cv2x::ICv2xRadio::updateTrustedUEList ( const TrustedUEInfoList &  infoList,
UpdateTrustedUEListCallback  cb 
)
pure virtual

Send request to modem to update the list of malicious UE source IDs and trusted UE source IDs with corresponding confidence information.

Parameters
[in]infoList- Trusted and malicious UE information list
[in]cb- Callback that will be invoked and returns status. Must not be null.
Returns
SUCCESS if no error occurred.
virtual std::string telux::cv2x::ICv2xRadio::getIfaceNameFromIpType ( TrafficIpType  ipType)
pure virtual

Get interface name based on ipType.

Parameters
ipType- IP traffic type (IP or NON-IP)
Returns
Interface name as a string
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::cv2x::ICv2xRadio::createCv2xTcpSocket ( const EventFlowInfo &  eventInfo,
const SocketInfo &  sockInfo,
CreateTcpSocketCallback  cb 
)
pure virtual

Creates a CV2X TCP socket with specified event flow information and TCP socket information. The TCP socket will be created and bound to the IPv6 address of local IP interface with specifed source port. Additionally, this API also registers a Tx event flow and subscribes Rx with specified service ID. If the created socket is expected to work as TCP client mode, the caller must connect the created socket to a destination using connect() and then use the socket for send() and recv() on successful connection. If the created socket is expected to work as TCP server mode, the caller must mark this socket as a listening socket using listen() and accept connections received from this listening socket using accept(), and then use the accepted sockets returned from accept() for send() or recv().

Parameters
[in]eventInfo- Information for the Event flow.
[in]sockInfo- Information for the TCP socket.
[in]cb- Callback function that is invoked when socket creation is complete. This must not be null.
The caller is expected to identify an unused local port number as the source
port number in structure SocketInfo to use for binding.
The caller must release the created socket and associated resources with
closeCv2xTcpSocket. Additionally, if the created socket is marked as a listening socket, the caller must close all the accepted sockets returned by accept() using close() first, and then release the listening socket and associated resources by calling closeCv2xTcpSocket.
Returns
SUCCESS upon success. Error status otherwise.
virtual telux::common::Status telux::cv2x::ICv2xRadio::closeCv2xTcpSocket ( std::shared_ptr< ICv2xTxRxSocket sock,
CloseTcpSocketCallback  cb 
)
pure virtual

Closes the CV2X TCP socket and frees resources associated with it (such as registered event Tx flow and subscribed Rx service ID and created TCP socket).

Parameters
[in]sock- CV2X TCP socket to close.
[in]cb- Callback that is invoked when CV2X TCP socket close is complete. This may be null.
Returns
SUCCESS if no error occurred.
class telux::cv2x::ICv2xRadioListener

Listeners for Cv2xRadio must implement this interface.

Public Member Functions

virtual void onStatusChanged (Cv2xStatus status)
 
virtual void onStatusChanged (Cv2xStatusEx status)
 
virtual void onL2AddrChanged (uint32_t newL2Address)
 
virtual void onSpsOffsetChanged (int spsId, MacDetails details)
 
virtual void onSpsSchedulingChanged (const SpsSchedulingInfo &schedulingInfo)
 
virtual void onCapabilitiesChanged (const Cv2xRadioCapabilities &capabilities)
 
virtual ~ICv2xRadioListener ()
 

Constructor & Destructor Documentation

virtual telux::cv2x::ICv2xRadioListener::~ICv2xRadioListener ( )
virtual

Destructor for ICv2xRadioListener

Member Function Documentation

virtual void telux::cv2x::ICv2xRadioListener::onStatusChanged ( Cv2xStatus  status)
virtual

Called when the status of the CV2X radio has changed.

Parameters
[in]status- CV2X radio status.
Deprecated:
use onStatusChanged in Cv2xListener
virtual void telux::cv2x::ICv2xRadioListener::onStatusChanged ( Cv2xStatusEx  status)
virtual

Called when the status of the CV2X radio has changed.

Parameters
[in]status- CV2X radio status.
Deprecated:
use onStatusChanged in Cv2xListener
virtual void telux::cv2x::ICv2xRadioListener::onL2AddrChanged ( uint32_t  newL2Address)
virtual

Called when the L2 Address has changed.

Parameters
[in]newL2Address- The new L2 address.
virtual void telux::cv2x::ICv2xRadioListener::onSpsOffsetChanged ( int  spsId,
MacDetails  details 
)
virtual

Called when SPS offset has changed.

Parameters
[in]spsId- SPS Id of the SPS flow
[in]details- new SPS MAC PHY details.
Deprecated:
use onSpsSchedulingChanged
virtual void telux::cv2x::ICv2xRadioListener::onSpsSchedulingChanged ( const SpsSchedulingInfo &  schedulingInfo)
virtual

Called when SPS scheduling has changed.

Parameters
[in]schedulingInfo- SPS scheduling information .
virtual void telux::cv2x::ICv2xRadioListener::onCapabilitiesChanged ( const Cv2xRadioCapabilities &  capabilities)
virtual

Called when Cv2x radio capabilities have changed.

Parameters
[in]capabilities- Capabilities of the CV2X radio .
class telux::cv2x::ICv2xRadioManager

Cv2xRadioManager manages instances of Cv2xRadio.

Public Member Functions

virtual bool isReady ()=0
 
virtual std::future< bool > onReady ()=0
 
virtual
telux::common::ServiceStatus 
getServiceStatus ()=0
 
virtual std::shared_ptr
< ICv2xRadio
getCv2xRadio (TrafficCategory category)=0
 
virtual telux::common::Status startCv2x (StartCv2xCallback cb)=0
 
virtual telux::common::Status stopCv2x (StopCv2xCallback cb)=0
 
virtual telux::common::Status requestCv2xStatus (RequestCv2xStatusCallback cb)=0
 
virtual telux::common::Status requestCv2xStatus (RequestCv2xStatusCallbackEx cb)=0
 
virtual telux::common::Status registerListener (std::weak_ptr< ICv2xListener > listener)=0
 
virtual telux::common::Status deregisterListener (std::weak_ptr< ICv2xListener > listener)=0
 
virtual telux::common::Status updateConfiguration (const std::string &configFilePath, UpdateConfigurationCallback cb)=0
 
virtual telux::common::Status setPeakTxPower (int8_t txPower, common::ResponseCallback cb)=0
 
virtual telux::common::Status setL2Filters (const std::vector< L2FilterInfo > &filterList, common::ResponseCallback cb)=0
 
virtual telux::common::Status removeL2Filters (const std::vector< uint32_t > &l2IdList, common::ResponseCallback cb)=0
 
virtual ~ICv2xRadioManager ()
 

Constructor & Destructor Documentation

virtual telux::cv2x::ICv2xRadioManager::~ICv2xRadioManager ( )
virtual

Member Function Documentation

virtual bool telux::cv2x::ICv2xRadioManager::isReady ( )
pure virtual

Checks if the Cv2x Radio Manager is ready.

Returns
True if Cv2x Radio Manager is ready for service, otherwise returns false.
Deprecated:
use getServiceStatus instead
virtual std::future<bool> telux::cv2x::ICv2xRadioManager::onReady ( )
pure virtual

Wait for Cv2x Radio Manager to be ready.

Returns
A future that caller can wait on to be notified when Cv2x Radio Manager is ready.
Deprecated:
the readiness can be notified via the callback passed to Cv2xFactory::getCv2xRadioManager.
virtual telux::common::ServiceStatus telux::cv2x::ICv2xRadioManager::getServiceStatus ( )
pure virtual

This status indicates whether the Cv2xRadioManager is in a usable state.

Returns
SERVICE_AVAILABLE - If cv2x radio manager is ready for service. SERVICE_UNAVAILABLE - If cv2x radio manager is temporarily unavailable. SERVICE_FAILED - If cv2x radio manager encountered an irrecoverable failure.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual std::shared_ptr<ICv2xRadio> telux::cv2x::ICv2xRadioManager::getCv2xRadio ( TrafficCategory  category)
pure virtual

Get Cv2xRadio instance

Parameters
[in]category- Specifies the category of the client application. This field is currently unused.
Returns
Reference to Cv2xRadio interface that corresponds to the Cv2x Traffic Category specified.
virtual telux::common::Status telux::cv2x::ICv2xRadioManager::startCv2x ( StartCv2xCallback  cb)
pure virtual

Put modem into CV2X mode.

Parameters
[in]cb- Callback that is invoked when Cv2x mode is started
Returns
SUCCESS on success. Error status otherwise.
virtual telux::common::Status telux::cv2x::ICv2xRadioManager::stopCv2x ( StopCv2xCallback  cb)
pure virtual

Take modem outo of CV2X mode

Parameters
[in]cb- Callback that is invoked when Cv2x mode is stopped
Returns
SUCCESS on success. Error status otherwise.
virtual telux::common::Status telux::cv2x::ICv2xRadioManager::requestCv2xStatus ( RequestCv2xStatusCallback  cb)
pure virtual

request CV2X status from modem

Parameters
[in]cb- Callback that is invoked when Cv2x status is retrieved
Returns
SUCCESS on success. Error status otherwise.
Deprecated:
use requestCv2xStatus(RequestCv2xCalbackEx)
virtual telux::common::Status telux::cv2x::ICv2xRadioManager::requestCv2xStatus ( RequestCv2xStatusCallbackEx  cb)
pure virtual

request CV2X status from modem

Parameters
[in]cb- Callback that is invoked when Cv2x status is retrieved
Returns
SUCCESS on success. Error status otherwise.
virtual telux::common::Status telux::cv2x::ICv2xRadioManager::registerListener ( std::weak_ptr< ICv2xListener listener)
pure virtual

Registers a listener for this manager.

Parameters
[in]listener- Listener that implements Cv2xListener interface.
virtual telux::common::Status telux::cv2x::ICv2xRadioManager::deregisterListener ( std::weak_ptr< ICv2xListener listener)
pure virtual

Deregisters a Cv2xListener for this manager.

Parameters
[in]listener- Previously registered CvListener that is to be deregistered.
virtual telux::common::Status telux::cv2x::ICv2xRadioManager::updateConfiguration ( const std::string &  configFilePath,
UpdateConfigurationCallback  cb 
)
pure virtual

Updates CV2X configuration. Requires CV2X TX/RX radio status be Inactive. If CV2X radio status is Active or Suspended, call stopCv2x before updateConfiguration.

Parameters
[in]configFilePath- Path to config file.
[in]cb- Callback that is invoked when the send is complete. This may be null.
Deprecated:
Use ICv2xConfig instead
virtual telux::common::Status telux::cv2x::ICv2xRadioManager::setPeakTxPower ( int8_t  txPower,
common::ResponseCallback  cb 
)
pure virtual

Set RF peak cv2x transmit power. This affects the power for all existing flows and for any flow created int the future

Parameters
[in]txPower- Desired global Cv2x peak tx power in dbm
[in]cb- Callback that is invoked when Cv2x peak tx power is set
Returns
SUCCESS on success. Error status otherwise.
virtual telux::common::Status telux::cv2x::ICv2xRadioManager::setL2Filters ( const std::vector< L2FilterInfo > &  filterList,
common::ResponseCallback  cb 
)
pure virtual

Request to install remote UE src L2 filters. This affects receiving of the UEs' packets in specified period with specified PPPP

Parameters
[in]filterList- remote UE src L2 Id, filter duration and PPPP list, max size 50
[in]cb- Callback that is invoked when the request is sent
Returns
SUCCESS on success. Error status otherwise.
virtual telux::common::Status telux::cv2x::ICv2xRadioManager::removeL2Filters ( const std::vector< uint32_t > &  l2IdList,
common::ResponseCallback  cb 
)
pure virtual

Remove the previously installed filters matching src L2 address list. Hence forth this would allow reception of packets from specified UE's

Parameters
[in]l2IdList- remote UE src L2 Id list, max size 50
[in]cb- Callback that is invoked when the request is sent
Returns
SUCCESS on success. Error status otherwise.
class telux::cv2x::ICv2xRxSubscription

This class encapsulates a Cv2xRadio Rx Subscription. It contains the Rx socket associated with the subscription from which client applications can read data. This class is referenced in Cv2xRadio::createRxSubscription and Cv2xRadio::closeRxSubscription.

Public Member Functions

virtual uint32_t getSubscriptionId () const =0
 
virtual TrafficIpType getIpType () const =0
 
virtual int getSock () const =0
 
virtual struct sockaddr_in6 getSockAddr () const =0
 
virtual uint16_t getPortNum () const =0
 
virtual std::shared_ptr
< std::vector< uint32_t > > 
getServiceIDList () const =0
 
virtual void setServiceIDList (const std::shared_ptr< std::vector< uint32_t >> idList)=0
 
virtual ~ICv2xRxSubscription ()
 

Constructor & Destructor Documentation

virtual telux::cv2x::ICv2xRxSubscription::~ICv2xRxSubscription ( )
virtual

Member Function Documentation

virtual uint32_t telux::cv2x::ICv2xRxSubscription::getSubscriptionId ( ) const
pure virtual

Accessor for Rx subscription ID

Returns
subscription ID
virtual TrafficIpType telux::cv2x::ICv2xRxSubscription::getIpType ( ) const
pure virtual

Accessor for IP traffic type

Returns
The Rx subscriptions's IP traffic type (IP or NON-IP)
virtual int telux::cv2x::ICv2xRxSubscription::getSock ( ) const
pure virtual

Accessor for the socket file descriptor

Returns
The Rx subscriptions's socket fd.
virtual struct sockaddr_in6 telux::cv2x::ICv2xRxSubscription::getSockAddr ( ) const
pure virtual

Accessor for the socket address description

Returns
The Rx subscriptions's socket address
virtual uint16_t telux::cv2x::ICv2xRxSubscription::getPortNum ( ) const
pure virtual

Accessor for the subscriptions's port number

Returns
The Rx subscriptions's port num
virtual std::shared_ptr<std::vector<uint32_t> > telux::cv2x::ICv2xRxSubscription::getServiceIDList ( ) const
pure virtual

Get subscriptions's service ID list

Returns
The Rx subscriptions's service ID list
virtual void telux::cv2x::ICv2xRxSubscription::setServiceIDList ( const std::shared_ptr< std::vector< uint32_t >>  idList)
pure virtual

Set subscriptions's service ID list

Parameters
[in]idList- the subscriptions's service ID list
class telux::cv2x::ICv2xThrottleManagerListener

Listener class for getting filter rate update notification.

Public Member Functions

virtual void onFilterRateAdjustment (int rate)
 
virtual void onServiceStatusChange (telux::common::ServiceStatus status)
 
virtual ~ICv2xThrottleManagerListener ()
 

Constructor & Destructor Documentation

virtual telux::cv2x::ICv2xThrottleManagerListener::~ICv2xThrottleManagerListener ( )
virtual

Member Function Documentation

virtual void telux::cv2x::ICv2xThrottleManagerListener::onFilterRateAdjustment ( int  rate)
virtual

This API is invoked to advise the client to adjust the incoming message filtering rate by rate messages/second. If the rate is positive, it indicates the client to filter rate more messages/second If the rate is negative, it indicates the client to filter rate less messages/second

Parameters
[in]ratethe reported filter rate adjustment value.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual void telux::cv2x::ICv2xThrottleManagerListener::onServiceStatusChange ( telux::common::ServiceStatus  status)
virtual

This API is invoked when the service status changes for example when a subsytem restart (SSR) occurs

Parameters
[in]status- ServiceStatus
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
class telux::cv2x::ICv2xThrottleManager

ThrottleManager provides throttle manager client interface.

ThrottleManager provides APIs that allows applications to specify the incoming verification load on the system. This is used to make decisions on how to optimally use the resources available in the system. The API also provides feedback to clients on the suggested filtering that needs to be done when the incoming message verification rate exceeds the instantaneous system capacity.

Public Member Functions

virtual
telux::common::ServiceStatus 
getServiceStatus ()=0
 
virtual std::future< bool > onSubsystemReady ()=0
 
virtual telux::common::Status registerListener (std::weak_ptr< ICv2xThrottleManagerListener > listener)=0
 
virtual telux::common::Status deregisterListener (std::weak_ptr< ICv2xThrottleManagerListener > listener)=0
 
virtual telux::common::Status setVerificationLoad (int load, setVerificationLoadCallback cb)=0
 
virtual ~ICv2xThrottleManager ()
 

Constructor & Destructor Documentation

virtual telux::cv2x::ICv2xThrottleManager::~ICv2xThrottleManager ( )
virtual

Member Function Documentation

virtual telux::common::ServiceStatus telux::cv2x::ICv2xThrottleManager::getServiceStatus ( )
pure virtual

This status indicates whether the object is in a usable state.

Returns
SERVICE_AVAILABLE - If location manager is ready for service. SERVICE_UNAVAILABLE - If location manager is temporarily unavailable. SERVICE_FAILED - If location manager encountered an irrecoverable failure.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual std::future<bool> telux::cv2x::ICv2xThrottleManager::onSubsystemReady ( )
pure virtual

Wait for Cv2x throttle manager client to be ready.

Returns
A future that caller can wait on to be notified when Cv2x throttle manager client become ready.
virtual telux::common::Status telux::cv2x::ICv2xThrottleManager::registerListener ( std::weak_ptr< ICv2xThrottleManagerListener listener)
pure virtual

Registers a listener to receive the updated filer rate adjustment data.

Parameters
[in]listner- Listener that implement ICv2xThrottleManagerListener interface.
virtual telux::common::Status telux::cv2x::ICv2xThrottleManager::deregisterListener ( std::weak_ptr< ICv2xThrottleManagerListener listener)
pure virtual

Deregister a ICv2xThrottleManagerListener.

Parameters
[in]listener- Previously registered Cv2xThrottleManagerListener that is deregistered.
virtual telux::common::Status telux::cv2x::ICv2xThrottleManager::setVerificationLoad ( int  load,
setVerificationLoadCallback  cb 
)
pure virtual

Set current measured/average verification load.

Parameters
[in]load- current measured verification load(verification/second).
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
class telux::cv2x::ICv2xTxFlow

This is class encapsulates a Cv2xRadio Tx flows. It contains the Tx socket associated with the flow through which client applications can send data. This class is referenced in Cv2xRadio::createTxSpsFlow, Cv2xRadio::createTxEventFlow, and Cv2xRadio::closeTxFlow

Public Member Functions

virtual uint32_t getFlowId () const =0
 
virtual TrafficIpType getIpType () const =0
 
virtual uint32_t getServiceId () const =0
 
virtual int getSock () const =0
 
virtual struct sockaddr_in6 getSockAddr () const =0
 
virtual uint16_t getPortNum () const =0
 
virtual ~ICv2xTxFlow ()
 

Constructor & Destructor Documentation

virtual telux::cv2x::ICv2xTxFlow::~ICv2xTxFlow ( )
virtual

Member Function Documentation

virtual uint32_t telux::cv2x::ICv2xTxFlow::getFlowId ( ) const
pure virtual

Accessor for flow ID. The flow ID should be unique within a process but will not be unique between processes.

Returns
flow ID
virtual TrafficIpType telux::cv2x::ICv2xTxFlow::getIpType ( ) const
pure virtual

Accessor for IP traffic type

Returns
The flow's IP traffic type (IP or NON-IP)
virtual uint32_t telux::cv2x::ICv2xTxFlow::getServiceId ( ) const
pure virtual

Accessor for service ID

Returns
The flow's Service ID.
virtual int telux::cv2x::ICv2xTxFlow::getSock ( ) const
pure virtual

Accessor for the socket file descriptor

Returns
The flow's socket fd.
virtual struct sockaddr_in6 telux::cv2x::ICv2xTxFlow::getSockAddr ( ) const
pure virtual

Accessor for the socket address description

Returns
The flow's socket address
virtual uint16_t telux::cv2x::ICv2xTxFlow::getPortNum ( ) const
pure virtual

Accessor for the flow's source port number

Returns
The flow's source port num

Typedef Documentation

using telux::cv2x::setVerificationLoadCallback = typedef std::function<void (telux::common::ErrorCode error)>

This function is called as a response to setVerificationLoad

Parameters
[in]error- SUCCESS if verification load was set successfully
  • SUCCESS
  • GENERIC_FAILURE