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

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...
 
struct  telux::cv2x::Cv2xStatus
 
struct  telux::cv2x::SpsFlowInfo
 
struct  telux::cv2x::Cv2xRadioCapabilities
 
struct  telux::cv2x::MacDetails
 
class  telux::cv2x::ICv2xRxSubscription
 
class  telux::cv2x::ICv2xTxFlow
 

Enumerations

enum  telux::cv2x::TrafficCategory { telux::cv2x::TrafficCategory::SAFETY_TYPE, telux::cv2x::TrafficCategory::NON_SAFETY_TYPE }
 
enum  telux::cv2x::Cv2xStatusType { telux::cv2x::Cv2xStatusType::INACTIVE, telux::cv2x::Cv2xStatusType::ACTIVE, telux::cv2x::Cv2xStatusType::SUSPENDED, telux::cv2x::Cv2xStatusType::UNKNOWN }
 
enum  telux::cv2x::Cv2xCauseType { telux::cv2x::Cv2xCauseType::TIMING, telux::cv2x::Cv2xCauseType::CONFIG, telux::cv2x::Cv2xCauseType::UE_MODE, telux::cv2x::Cv2xCauseType::UNKNOWN }
 
enum  telux::cv2x::TrafficIpType { telux::cv2x::TrafficIpType::TRAFFIC_IP, telux::cv2x::TrafficIpType::TRAFFIC_NON_IP }
 
enum  telux::cv2x::RadioConcurrencyMode { telux::cv2x::RadioConcurrencyMode::WWAN_NONCONCURRENT, telux::cv2x::RadioConcurrencyMode::WWAN_CONCURRENT }
 
enum  telux::cv2x::Cv2xEvent { telux::cv2x::Cv2xEvent::CV2X_INACTIVE, telux::cv2x::Cv2xEvent::CV2X_ACTIVE, telux::cv2x::Cv2xEvent::TX_SUSPENDED, telux::cv2x::Cv2xEvent::TXRX_SUSPENDED }
 
enum  telux::cv2x::Priority {
  telux::cv2x::Priority::MOST_URGENT, telux::cv2x::Priority::PRIORITY_1, telux::cv2x::Priority::PRIORITY_2, telux::cv2x::Priority::PRIORITY_3,
  telux::cv2x::Priority::PRIORITY_4, telux::cv2x::Priority::PRIORITY_5, telux::cv2x::Priority::PRIORITY_6, telux::cv2x::Priority::PRIORITY_BACKGROUND,
  telux::cv2x::Priority::PRIORITY_UNKNOWN
}
 
enum  telux::cv2x::Periodicity {
  telux::cv2x::Periodicity::PERIODICITY_10MS, telux::cv2x::Periodicity::PERIODICITY_20MS, telux::cv2x::Periodicity::PERIODICITY_50MS, telux::cv2x::Periodicity::PERIODICITY_100MS,
  telux::cv2x::Periodicity::PERIODICITY_UNKNOWN
}
 

Detailed Description

This section contains 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 ()
 

Static Public Member Functions

static Cv2xFactorygetInstance ()
 

Member Function Documentation

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

Get Cv2xFactory instance

Returns
Reference to Cv2xFactory singleton.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
std::shared_ptr<ICv2xRadioManager> telux::cv2x::Cv2xFactory::getCv2xRadioManager ( )

Get Cv2xRadioManager instance.

Returns
shared pointer to Radio upon success. nullptr otherwise.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
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 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)=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 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 updateSrcL2Info (UpdateSrcL2InfoCallback cb)=0
 
virtual ~ICv2xRadio ()
 

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.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual bool telux::cv2x::ICv2xRadio::isReady ( ) const
pure virtual

Returns true if the radio interface has completed initialization.

Returns
True if ready. False otherwise.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
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.
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::registerListener ( std::weak_ptr< ICv2xRadioListener listener)
pure virtual

Registers a listener for this Cv2xRadio.

Parameters
[in]listener- Listener that implements Cv2xRadioListener interface.
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::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.
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::createRxSubscription ( TrafficIpType  ipType,
uint16_t  port,
CreateRxSubscriptionCallback  cb 
)
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.
Returns
SUCCESS on success. Error status otherwise.
Dependencies The interface must be pre-initialized with init().
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::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.
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::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.
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::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.
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::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.
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::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.
Returns
SUCCESS if no error occurred.
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::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.
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::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.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
class telux::cv2x::ICv2xRadioListener

Listeners for Cv2xRadio must implement this interface.

Public Member Functions

virtual void onStatusChanged (Cv2xStatus status)
 
virtual void onL2AddrChanged (uint32_t newL2Address)
 
virtual void onSpsOffsetChanged (int spsId, MacDetails details)
 
virtual ~ICv2xRadioListener ()
 

Constructor & Destructor Documentation

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

Destructor for ICv2xRadioListener

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

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.
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::ICv2xRadioListener::onL2AddrChanged ( uint32_t  newL2Address)
virtual

Called when the L2 Address has changed.

Parameters
[in]newL2Address- The new L2 address.
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::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.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
class telux::cv2x::ICv2xRadioManager

Cv2xRadioManager manages instances of Cv2xRadio.

Public Member Functions

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 updateConfiguration (const std::string &configFilePath, UpdateConfigurationCallback cb)=0
 
virtual ~ICv2xRadioManager ()
 

Constructor & Destructor Documentation

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

Member Function Documentation

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.
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::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.
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::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.
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::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.
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::ICv2xRadioManager::updateConfiguration ( const std::string &  configFilePath,
UpdateConfigurationCallback  cb 
)
pure virtual

Updates CV2X configuration

Parameters
[in]configFilePath- Path to config file.
[in]cb- Callback that is invoked when the send is complete. This may be null.
struct telux::cv2x::Cv2xStatus

Encapsulates status of CV2X radio.

Used in Cv2xRadioManager:requestV2xStatus and Cv2xRadioListener.

Data Fields
Cv2xStatusType rxStatus

RX status

Cv2xStatusType txStatus

TX status

Cv2xCauseType rxCause

RX cause of failure

Cv2xCauseType txCause

TX cause of failure

uint8_t cbrValue

Channel Busy Ratio

bool cbrValueValid

CBR value is valid

struct telux::cv2x::SpsFlowInfo

Used to request the QoS bandwidth contract, implemented in PC5 3GPP V2X radio as a Semi Persistent Flow (SPS).

The underlying radio providing the interface might support periodicities of various granularity in 100ms integer multiples (e.g. 200ms, 300ms).

Used in txSpsCreateAndBindSock and changeSpsFlowInfo

Data Fields
Priority priority

Specifies one of the 3GPP levels of Priority for the traffic that is pre-reserved on the SPS flow. Default is PRIORITY_2.

Use getCapabilities() to discover the supported priority levels.

Periodicity periodicity

Bandwidth-reserved periodicity interval in interval in milliseconds.

There are limits on which intervals the underlying radio supports. Use getCapabilities() to discover minPeriodicityMultiplierMs and maximumPeriodicityMs.

uint32_t nbytesReserved

Number of bytes of TX bandwidth that are sent every periodicity interval.

bool autoRetransEnabledValid

Set to true if autoRetransEnabled field is specified. If false, the system will use the default setting.

bool autoRetransEnabled

Used to enable automatic-retransmissions.

bool peakTxPowerValid

Set to true if peakTxPower is used. If false, the system will use the default setting.

int32_t peakTxPower

Max Tx power setting.

bool mcsIndexValid

Set to true if mcsIndex is used. If false, the system will use its default setting.

uint8_t mcsIndex
struct telux::cv2x::Cv2xRadioCapabilities

Capabilities of the Cv2xRadio.

Returned from getCapabilities

Data Fields
uint32_t linkIpMtuBytes

Maximum data payload length (in bytes) of a packet supported by the IP Radio interface.

uint32_t linkNonIpMtuBytes

Maximum data payload length (in bytes) of a packet supported by the non-IP Radio interface.

RadioConcurrencyMode maxSupportedConcurrency

Indicates whether this interface supports concurrent WWAN with V2X (PC5).

uint16_t nonIpTxPayloadOffsetBytes

Byte offset in a non-IP Tx packet before the actual payload begins.

uint16_t nonIpRxPayloadOffsetBytes

Byte offset in a non-IP Rx packet before the actual payload begins.

bitset< 8 > periodicitiesSupported

Specifies the periodicities supported

uint8_t maxNumAutoRetransmissions

Least frequent bandwidth periodicity that is supported. Above this value, use event-driven periodic messages of a period larger than this value.

uint8_t layer2MacAddressSize

Size of the L2 MAC address.

Different Radio Access Technologies have different-sized L2 MAC addresses: 802.11 has 6 bytes, whereas 3GPP PC5 has only 3 bytes.

Because a randomized MAC address comes from an HSM with good pseudo random entropy, higher layers must know how many bytes of the MAC address to generate.

bitset< 8 > prioritiesSupported

Bit set of different priority levels supported by this Cv2xRadio. Refer to Priority

uint16_t maxNumSpsFlows

Maximum number of supported SPS reservations.

uint16_t maxNumNonSpsFlows

Maximum number of supported event flows (non-SPS ports).

struct telux::cv2x::MacDetails

Contains MAC information that is reported from the actual MAC SPS in the radio. The offsets can periodically change on any given transmission report.

Data Fields
uint32_t periodicityInUseNs

Actual transmission interval period (in nanoseconds) scheduled relative to 1PP 0:00.00 time

uint16_t currentlyReservedPeriodicBytes

Actual number of bytes currently reserved at the MAC layer. This number can be slightly larger than original request.

uint32_t txReservationOffsetNs

Actual offset, from a 1PPS pulse and TX flow periodicity, that the MAC selected and is using for the transmit reservation. If the data goes to the radio with enough time, it can be transmitted on the medium in the next immediately scheduled slot.

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 ~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
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
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)
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual int telux::cv2x::ICv2xRxSubscription::getSock ( ) const
pure virtual

Accessor for the socket file descriptor

Returns
The Rx subscriptions's socket fd.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual struct sockaddr_in6 telux::cv2x::ICv2xRxSubscription::getSockAddr ( ) const
pure virtual

Accessor for the socket address description

Returns
The Rx subscriptions's socket address
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual uint16_t telux::cv2x::ICv2xRxSubscription::getPortNum ( ) const
pure virtual

Accessor for the subscriptions's port number

Returns
The Rx subscriptions's port num
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
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
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)
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual uint32_t telux::cv2x::ICv2xTxFlow::getServiceId ( ) const
pure virtual

Accessor for service ID

Returns
The flow's Service ID.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual int telux::cv2x::ICv2xTxFlow::getSock ( ) const
pure virtual

Accessor for the socket file descriptor

Returns
The flow's socket fd.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual struct sockaddr_in6 telux::cv2x::ICv2xTxFlow::getSockAddr ( ) const
pure virtual

Accessor for the socket address description

Returns
The flow's socket address
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
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
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.

Enumeration Type Documentation

Defines CV2X Traffic Types.

Used in Cv2xRadioManager::getCv2xRadio

Enumerator
SAFETY_TYPE 

Safety message traffic category

NON_SAFETY_TYPE 

Non-safety message traffic category

Defines possible values for CV2X radio RX/TX status.

Used in Cv2xStatus

Enumerator
INACTIVE 

RX/TX is inactive

ACTIVE 

RX/TX is active

SUSPENDED 

RX/TX is suspended

UNKNOWN 

RX/TX status unknown

Defines possible values for cause of CV2X radio failure.

Used in Cv2xStatus

Enumerator
TIMING 

Timing is invalid

CONFIG 

Config is invalid

UE_MODE 

UE Mode is invalid

UNKNOWN 

Cause is unknown

Defines CV2X traffic type in terms of IP or NON-IP.

Used in createRxSock, createTxSpsSock, and createTxEventSock

Enumerator
TRAFFIC_IP 

IP message traffic

TRAFFIC_NON_IP 

NON-IP message traffic

Defines CV2X modes of concurrency with cellular WWAN.

Used in Cv2xRadioCapabilities

Enumerator
WWAN_NONCONCURRENT 

No simultaneous WWAN + CV2X on this interface

WWAN_CONCURRENT 

Interface supports requests for concurrent WWAN + CV2X connections.

Defines CV2X status change events. The state can change in response to the loss of timing precision or a geofencing change.

Used in onStatusChanged in ICv2xRadioListener

Enumerator
CV2X_INACTIVE 
CV2X_ACTIVE 
TX_SUSPENDED 
TXRX_SUSPENDED 
enum telux::cv2x::Priority
strong

Range of supported priority levels, where a lower number means a higher priority. For example, 8 is the current 3GPP standard.

Used in Cv2xRadioCapabilities and SpsFlowInfo

Enumerator
MOST_URGENT 
PRIORITY_1 
PRIORITY_2 
PRIORITY_3 
PRIORITY_4 
PRIORITY_5 
PRIORITY_6 
PRIORITY_BACKGROUND 
PRIORITY_UNKNOWN 

Range of supported periodicities in milliseconds.

Used in Cv2xRadioCapabilities and SpsFlowInfo

Enumerator
PERIODICITY_10MS 
PERIODICITY_20MS 
PERIODICITY_50MS 
PERIODICITY_100MS 
PERIODICITY_UNKNOWN