Telematics SDK - Interface Specification
v1.41.0
|
Data Structures | |
struct | trusted_ue_info_t |
struct | tx_pool_id_info_t |
struct | v2x_iface_capabilities_t |
struct | v2x_tx_bandwidth_reservation_t |
struct | v2x_chan_meas_params_t |
struct | v2x_chan_measurements_t |
struct | v2x_radio_calls_t |
struct | v2x_sps_mac_details_t |
struct | v2x_per_sps_reservation_calls_t |
struct | v2x_tx_flow_info_t |
struct | v2x_sock_info_t |
struct | v2x_sid_list_t |
struct | v2x_tx_sps_flow_info_t |
struct | socket_info_t |
Macros | |
#define | V2X_RADIO_HANDLE_BAD (-1) |
#define | V2X_MAX_RADIO_SESSIONS (10) |
#define | V2X_RX_WILDCARD_PORTNUM (9000) |
#define | MAX_POOL_IDS_LIST_LEN (20) |
#define | MAX_MALICIOUS_IDS_LIST_LEN (50) |
#define | MAX_TRUSTED_IDS_LIST_LEN (50) |
#define | MAX_SUBSCRIBE_SIDS_LIST_LEN (10) |
#define | MAX_FILTER_IDS_LIST_LEN (50) |
Typedefs | |
typedef int | v2x_radio_handle_t |
typedef traffic_ip_type_t | traffic_ip_type |
Enumerations | |
enum | v2x_concurrency_sel_t { V2X_WWAN_NONCONCURRENT = 0, V2X_WWAN_CONCURRENT = 1 } |
enum | v2x_event_t { V2X_INACTIVE = 0, V2X_ACTIVE, V2X_TX_SUSPENDED, V2X_RX_SUSPENDED, V2X_TXRX_SUSPENDED } |
enum | v2x_priority_et { V2X_PRIO_MOST_URGENT = 0, V2X_PRIO_1 = 1, V2X_PRIO_2 = 2, V2X_PRIO_3 = 3, V2X_PRIO_4 = 4, V2X_PRIO_5 = 5, V2X_PRIO_6 = 6, V2X_PRIO_BACKGROUND = 7 } |
enum | v2x_service_status_t { SERVICE_UNAVAILABLE = 0, SERVICE_AVAILABLE = 1 } |
enum | v2x_auto_retransmit_policy_t { V2X_AUTO_RETRANSMIT_DISABLED = 0, V2X_AUTO_RETRANSMIT_ENABLED = 1, V2X_AUTO_RETRANSMIT_DONT_CARE = 2 } |
enum | traffic_ip_type_t { TRAFFIC_IP = 0, TRAFFIC_NON_IP = 1 } |
Functions | |
uint16_t | v2x_convert_priority_to_traffic_class (v2x_priority_et priority) |
v2x_priority_et | v2x_convert_traffic_class_to_priority (uint16_t traffic_class) |
This section contains C Radio APIs related to Cellular-V2X operation. For any new CV2x development, it is recommended to use the C++ telux::cv2x::* APIs
Abstraction of the radio driver parameters for a V2X broadcast socket interface, including 3GPP CV2X QoS bandwidth contracts.
struct trusted_ue_info_t |
Contains time confidence, position confidence, and propagation delay for a trusted UE.
struct tx_pool_id_info_t |
Contains minimum and maximum frequencies for a Tx pool ID. This struct is used in v2x_iface_capabilities_t.
Data Fields | ||
---|---|---|
uint8_t | pool_id |
ID of the Tx pool. |
uint16_t | min_freq |
Minimum frequency in MHz. |
uint16_t | max_freq |
Maximum frequency in MHz. |
struct v2x_iface_capabilities_t |
Contains information on the capabilities of a Radio interface.
Data Fields | ||
---|---|---|
int | link_ip_MTU_bytes |
Maximum data payload length (in bytes) of a packet supported by the IP Radio interface. |
int | link_non_ip_MTU_bytes |
Maximum data payload length (in bytes) of a packet supported by the non-IP Radio interface. |
v2x_concurrency_sel_t | max_supported_concurrency |
Indicates whether this interface supports concurrent WWAN with V2X (PC5). |
uint16_t | non_ip_tx_payload_offset_bytes |
Byte offset in a non-IP Tx packet before the actual payload begins. In 3GPP CV2X, the first byte after the offset is the 1-byte V2X Family ID. This offset is to the left for a per-packet Tx header that includes Tx information that might be inserted in front of the packet payload (in subsequent releases). An example of Tx information is MAC/Phy parameters (power, rate, retransmissions policy, and so on). Currently, this value is expected to be 0. But it is reserved to support possible per-packet Tx/Rx headers that might be added in future releases of this API. |
uint16_t | non_ip_rx_payload_offset_bytes |
Byte offset in a non-IP Rx packet before the actual payload begins. Initially, this value is zero. But it allows for later insertion of per-packet Rx information (sometimes called metadata) to be added to the front of the data payload. An example of Rx information is MAC/Phy measurements (receive signal strength, timestamps, and so on). The V2X Family ID is considered as part of the payload in the 3GPP CV2X. Higher layers (applications that are clients to this API) must remove or advance past that 1 byte to get to the more familiar actual WSMP/Geonetworking payload. |
uint16_t | int_min_periodicity_multiplier_ms |
Lowest number of milliseconds requested for a bandwidth. This value is also the basis for all possible bandwidth reservation periods. For example, if this multiplier=100 ms, applications can only reserve bandwidths of 100 ms, 200 ms, up to 1000 ms. |
uint16_t | int_maximum_periodicity_ms |
Least frequent bandwidth periodicity that is supported. Above this value, use event-driven periodic messages of a period larger than this value. |
unsigned | supports_10ms_periodicity: 1 |
Indicates whether n*10 ms periodicities are supported. [block]Supported values:
|
unsigned | supports_20ms_periodicity: 1 |
Indicates whether an n*20 ms bandwidth reservation is supported. [block]Supported values:
|
unsigned | supports_50ms_periodicity: 1 |
Indicates whether 50 ms periodicity is supported. [block]Supported values:
|
unsigned | supports_100ms_periodicity: 1 |
Indicates whether the basic minimum periodicity of 100 ms is supported. [block]Supported values:
|
unsigned | max_quantity_of_auto_retrans: 4 |
Maximum number automatic retransmissions. [block]Supported values: 0 through 15 |
unsigned | size_of_layer2_mac_address: 4 |
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. |
uint16_t | v2x_number_of_priority_levels |
Number of different priority levels supported. For example, 8 is the current 3GPP standard (where a lower number means a higher priority). |
uint16_t | highest_priority_value |
Least urgent priority number supported by this radio. Higher numbers are lower priority, so if the full range is supported, this value is V2X_PRIO_BACKGROUND. |
uint16_t | lowest_priority_value |
Highest priority value (most urgent traffic). Lower numbers are higher priority, so if the highest level supported this value is V2X_PRIO_MOST_URGENT. |
uint16_t | max_qty_SPS_flows |
Maximum number of supported SPS reservations. |
uint16_t | max_qty_non_SPS_flows |
Maximum number of supported event flows (non-SPS ports). |
int32_t | max_tx_pwr |
Maximum supported transmission power in dBm. |
int32_t | min_tx_pwr |
Minimum supported transmission power in dBm. |
uint32_t | tx_pool_ids_supported_len |
Length of the tx_pool_ids_supported array. |
tx_pool_id_info_t | tx_pool_ids_supported[MAX_POOL_IDS_LIST_LEN] |
Array of Tx pool IDs and their associated minimum and maximum frequencies. |
struct v2x_tx_bandwidth_reservation_t |
Used when requesting a QoS bandwidth contract, which is implemented in PC5 3GPP V2-X radio as a Semi Persistent Flow (SPS).
The underlying radio providing the interface might support periodicities of various granularity in 100 ms integer multiples (such as 200 ms, 300 ms, and 400 ms).
The reservation is also used internally as a handle.
Data Fields | ||
---|---|---|
int | v2xid |
Variable length 4-byte PSID or ITS_AID, or another application ID. |
v2x_priority_et | priority |
Specifies one of the 3GPP levels of priority for the traffic that is pre-reserved on the SPS flow. Use v2x_radio_query_parameters() to get the exact number of supported priority levels. |
int | period_interval_ms |
Bandwidth-reserved periodicity interval in milliseconds. There are limits on which intervals the underlying radio supports. Use the capabilities query method to discover the int_min_periodicity_multiplier_ms and int_maximum_periodicity_ms supported intervals. |
int | tx_reservation_size_bytes |
Number of Tx bandwidth bytes that are sent every periodicity interval. |
struct v2x_chan_meas_params_t |
Contains the measurement parameters for configuring the MAC/Phy radio channel measurements (such as CBR utilization).
The radio chip contains requests on radio measurement parameters that API clients can use to specify the following:
struct v2x_chan_measurements_t |
Periodically returned by the radio with all measurements about the radio channel, such as the amount of noise and bandwidth saturation (channel_busy_percentage, or CBR).
struct v2x_radio_calls_t |
Contains callback functions used in a v2x_radio_init() and v2x_radio_init_v2 call.
The radio interface uses these callback functions for events such as completion of initialization, a Layer-02 MAC address change, or a status event (loss of sufficient GPS time precision to transmit).
These callbacks are related to a specific radio interface, and its MAC/Phy parameters, such as transmit power, bandwidth utilization, and changes in radio status.
Data Fields | |
void(* | v2x_radio_init_complete )(v2x_status_enum_type status, void *context) |
void(* | v2x_radio_status_listener )(v2x_event_t event, void *context) |
void(* | v2x_radio_chan_meas_listener )(v2x_chan_measurements_t *measurements, void *context) |
void(* | v2x_radio_l2_addr_changed_listener )(int new_l2_address, void *context) |
void(* | v2x_radio_macphy_change_complete_cb )(void *context) |
void(* | v2x_radio_capabilities_listener )(v2x_iface_capabilities_t *caps, void *context) |
void(* | v2x_service_status_listener )(v2x_service_status_t status, void *context) |
struct v2x_sps_mac_details_t |
Contains MAC information that is reported from the actual MAC SPS in the radio. The offsets can periodically change on any given transmission report.
struct v2x_per_sps_reservation_calls_t |
Callback functions used in v2x_radio_tx_sps_sock_create_and_bind() calls.
Data Fields | |
void(* | v2x_radio_l2_reservation_change_complete_cb )(void *context, v2x_sps_mac_details_t *details) |
void(* | v2x_radio_sps_offset_changed )(void *context, v2x_sps_mac_details_t *details) |
struct v2x_tx_flow_info_t |
Advanced parameters that can be specified for Tx SPS and event-driven flows.
Data Fields | ||
---|---|---|
v2x_auto_retransmit_policy_t | retransmit_policy |
V2X retransmit policy. |
uint8_t | default_tx_power_valid |
Indicates whether the default Tx power is specified. [block]Supported values:
|
int32_t | default_tx_power |
Default power used for transmission. |
uint8_t | mcs_index_valid |
Indicates whether the MCS index is specified. [block]Supported values:
|
uint8_t | mcs_index |
MCS index number |
uint8_t | tx_pool_id_valid |
Indicates whether the Tx pool ID is valid. [block]Supported values:
|
uint8_t | tx_pool_id |
ID of the Tx pool. |
uint8_t | is_unicast_valid |
Indicates whether is_unicast is specified. [block]Supported values:
|
uint8_t | is_unicast |
Non zero if requested flow is unicast. Note: Unicast flows ignore subscribed Service Ids |
struct v2x_sock_info_t |
struct v2x_sid_list_t |
Parameters to identify a service ID list.
Data Fields | ||
---|---|---|
int | length |
number of services IDs included in the array of sid. |
uint32_t | sid[MAX_SUBSCRIBE_SIDS_LIST_LEN] |
array of service IDs. |
struct v2x_tx_sps_flow_info_t |
Advanced parameters that can be specified for Tx SPS flows.
Data Fields | ||
---|---|---|
v2x_tx_bandwidth_reservation_t | reservation |
Transmit reservation information. |
v2x_tx_flow_info_t | flow_info |
Transmit resource information about the SPS Tx flow. |
struct socket_info_t |
#define V2X_RADIO_HANDLE_BAD (-1) |
Invalid handle returned by v2x_radio_init() and v2x_radio_init_v2() upon an error.
#define V2X_MAX_RADIO_SESSIONS (10) |
Limit on the number of simultaneous RmNet Radio interfaces this library can have open at once.
Typically, there are only a few actual radios. On the same radio however, one interface can be for IP traffic, and another interface can be for non-IP traffic.
#define V2X_RX_WILDCARD_PORTNUM (9000) |
Wildcard value for a port number. When the wildcard is used, all V2X received traffic is routed.
#define MAX_POOL_IDS_LIST_LEN (20) |
Maximum length of the pool ID list that is returned in v2x_iface_capabilities_t.
#define MAX_MALICIOUS_IDS_LIST_LEN (50) |
Maximum length of the malicious ID list that can be passed in v2x_radio_update_trusted_ue_list().
#define MAX_TRUSTED_IDS_LIST_LEN (50) |
Maximum length of the trusted ID list that can be passed in v2x_radio_update_trusted_ue_list().
#define MAX_SUBSCRIBE_SIDS_LIST_LEN (10) |
Maximum length for the subscribed service ID list that can be passed in v2x_radio_rx_sock_create_and_bind_v2().
#define MAX_FILTER_IDS_LIST_LEN (50) |
Maximum length for the L2 ID list that can be passed in v2x_set_l2_filters() and v2x_cancel_l2_filters.
typedef int v2x_radio_handle_t |
Radio data handle to the interface.
typedef traffic_ip_type_t traffic_ip_type |
Describes whether the radio chip modem should attempt or support concurrent 3GPP CV2X operation with a WWAN 4G/5G data call.
Some chips are only capable of operating on CV2X. In this case:
Enumerator | |
---|---|
V2X_WWAN_NONCONCURRENT |
No simultaneous WWAN + CV2X on this interface. |
V2X_WWAN_CONCURRENT |
Interface allows requests for concurrent support of WWAN + CV2X connections. |
enum v2x_event_t |
Event indications sent asynchronously from the radio via callbacks that indicate the state of the radio. The state can change in response to the loss of timing precision or a geofencing change.
enum v2x_priority_et |
enum v2x_service_status_t |
enum traffic_ip_type_t |
uint16_t v2x_convert_priority_to_traffic_class | ( | v2x_priority_et | priority | ) |
Converts a traffic priority to one of the 255 IPv6 traffic class bytes that are used in the data plane to indicate per-packet priority on non-SPS (event driven) data ports.
[in] | priority | Packet priority that is to be converted to an IPv6 traffic class. This priority is between the lowest and highest priority values returned in v2x_iface_capabilities_t. |
v2x_priority_et v2x_convert_traffic_class_to_priority | ( | uint16_t | traffic_class | ) |
Maps an IPv6 traffic class to a V2X priority value.
[in] | traffic_class | IPv6 traffic classification that came in a packet from the radio. |
uint32_t trusted_ue_info_t::source_l2_id |
L2 ID of the trusted source
float trusted_ue_info_t::time_uncertainty |
Time uncertainty in milliseconds.
uint16_t trusted_ue_info_t::time_confidence_level |
Deprecated. Use time_uncertainty instead.
Confidence level of the time period.
[block]Supported values: 0 through 127, where 0 is invalid or unavailable and 127 is the most confidentuint16_t trusted_ue_info_t::position_confidence_level |
Confidence level of the position.
[block]Supported values: 0 through 127, where 0 is invalid or unavailable and 127 is the most confidentuint32_t trusted_ue_info_t::propagation_delay |
Propagation delay in microseconds.
uint8_t tx_pool_id_info_t::pool_id |
ID of the Tx pool.
uint16_t tx_pool_id_info_t::min_freq |
Minimum frequency in MHz.
uint16_t tx_pool_id_info_t::max_freq |
Maximum frequency in MHz.
int v2x_iface_capabilities_t::link_ip_MTU_bytes |
Maximum data payload length (in bytes) of a packet supported by the IP Radio interface.
int v2x_iface_capabilities_t::link_non_ip_MTU_bytes |
Maximum data payload length (in bytes) of a packet supported by the non-IP Radio interface.
v2x_concurrency_sel_t v2x_iface_capabilities_t::max_supported_concurrency |
Indicates whether this interface supports concurrent WWAN with V2X (PC5).
uint16_t v2x_iface_capabilities_t::non_ip_tx_payload_offset_bytes |
Byte offset in a non-IP Tx packet before the actual payload begins. In 3GPP CV2X, the first byte after the offset is the 1-byte V2X Family ID.
This offset is to the left for a per-packet Tx header that includes Tx information that might be inserted in front of the packet payload (in subsequent releases).
An example of Tx information is MAC/Phy parameters (power, rate, retransmissions policy, and so on).
Currently, this value is expected to be 0. But it is reserved to support possible per-packet Tx/Rx headers that might be added in future releases of this API.
uint16_t v2x_iface_capabilities_t::non_ip_rx_payload_offset_bytes |
Byte offset in a non-IP Rx packet before the actual payload begins.
Initially, this value is zero. But it allows for later insertion of per-packet Rx information (sometimes called metadata) to be added to the front of the data payload. An example of Rx information is MAC/Phy measurements (receive signal strength, timestamps, and so on).
The V2X Family ID is considered as part of the payload in the 3GPP CV2X. Higher layers (applications that are clients to this API) must remove or advance past that 1 byte to get to the more familiar actual WSMP/Geonetworking payload.
uint16_t v2x_iface_capabilities_t::int_min_periodicity_multiplier_ms |
Lowest number of milliseconds requested for a bandwidth.
This value is also the basis for all possible bandwidth reservation periods. For example, if this multiplier=100 ms, applications can only reserve bandwidths of 100 ms, 200 ms, up to 1000 ms.
uint16_t v2x_iface_capabilities_t::int_maximum_periodicity_ms |
Least frequent bandwidth periodicity that is supported. Above this value, use event-driven periodic messages of a period larger than this value.
unsigned v2x_iface_capabilities_t::supports_10ms_periodicity |
Indicates whether n*10 ms periodicities are supported.
[block]Supported values:unsigned v2x_iface_capabilities_t::supports_20ms_periodicity |
Indicates whether an n*20 ms bandwidth reservation is supported.
[block]Supported values:unsigned v2x_iface_capabilities_t::supports_50ms_periodicity |
Indicates whether 50 ms periodicity is supported.
[block]Supported values:unsigned v2x_iface_capabilities_t::supports_100ms_periodicity |
Indicates whether the basic minimum periodicity of 100 ms is supported.
[block]Supported values:unsigned v2x_iface_capabilities_t::max_quantity_of_auto_retrans |
Maximum number automatic retransmissions.
[block]Supported values: 0 through 15unsigned v2x_iface_capabilities_t::size_of_layer2_mac_address |
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.
uint16_t v2x_iface_capabilities_t::v2x_number_of_priority_levels |
Number of different priority levels supported. For example, 8 is the current 3GPP standard (where a lower number means a higher priority).
uint16_t v2x_iface_capabilities_t::highest_priority_value |
Least urgent priority number supported by this radio.
Higher numbers are lower priority, so if the full range is supported, this value is V2X_PRIO_BACKGROUND.
uint16_t v2x_iface_capabilities_t::lowest_priority_value |
Highest priority value (most urgent traffic).
Lower numbers are higher priority, so if the highest level supported this value is V2X_PRIO_MOST_URGENT.
uint16_t v2x_iface_capabilities_t::max_qty_SPS_flows |
Maximum number of supported SPS reservations.
uint16_t v2x_iface_capabilities_t::max_qty_non_SPS_flows |
Maximum number of supported event flows (non-SPS ports).
int32_t v2x_iface_capabilities_t::max_tx_pwr |
Maximum supported transmission power in dBm.
int32_t v2x_iface_capabilities_t::min_tx_pwr |
Minimum supported transmission power in dBm.
uint32_t v2x_iface_capabilities_t::tx_pool_ids_supported_len |
Length of the tx_pool_ids_supported array.
tx_pool_id_info_t v2x_iface_capabilities_t::tx_pool_ids_supported[MAX_POOL_IDS_LIST_LEN] |
Array of Tx pool IDs and their associated minimum and maximum frequencies.
int v2x_radio_macphy_params_t::channel_center_khz |
Channel center frequency in kHz.
int v2x_radio_macphy_params_t::channel_bandwidth_mhz |
Channel bandwidth in MHz, such as 5 MHz, 10 MHz, and 20 MHz.
int v2x_radio_macphy_params_t::tx_power_limit_decidbm |
Limit on the transmit power in tenths of a dBm.
Examples of how this field is used:
int v2x_radio_macphy_params_t::qty_auto_retrans |
Used to request the number of automatic-retransmissions. The maximum supported number is defined in v2x_iface_capabilities_t.
uint8_t v2x_radio_macphy_params_t::l2_source_addr_length_bytes |
Length of the L2 MAC address that is supplied to the radio.
uint8_t* v2x_radio_macphy_params_t::l2_source_addr_p |
Pointer to l2_source_addr_length_bytes, which contains the L2 SRC address that the application layer selected for the radio.
int v2x_tx_bandwidth_reservation_t::v2xid |
Variable length 4-byte PSID or ITS_AID, or another application ID.
v2x_priority_et v2x_tx_bandwidth_reservation_t::priority |
Specifies one of the 3GPP levels of priority for the traffic that is pre-reserved on the SPS flow.
Use v2x_radio_query_parameters() to get the exact number of supported priority levels.
int v2x_tx_bandwidth_reservation_t::period_interval_ms |
Bandwidth-reserved periodicity interval in milliseconds.
There are limits on which intervals the underlying radio supports. Use the capabilities query method to discover the int_min_periodicity_multiplier_ms and int_maximum_periodicity_ms supported intervals.
int v2x_tx_bandwidth_reservation_t::tx_reservation_size_bytes |
Number of Tx bandwidth bytes that are sent every periodicity interval.
int v2x_chan_meas_params_t::channel_measurement_interval_us |
Duration in microseconds of the sliding window size.
int v2x_chan_meas_params_t::rs_threshold_decidbm |
Parameter to the radio CBR measurement that is used for determining how busy the channel is.
Signals weaker than the specified receive strength (RSRP, or RSSI) are not considered to be in use (busy).
float v2x_chan_measurements_t::channel_busy_percentage |
No measurement parameters are supplied.
float v2x_chan_measurements_t::noise_floor |
Measurement of the background noise for a quiet channel.
float v2x_chan_measurements_t::time_uncertainty |
V2X time uncertainty in milliseconds.
void(* v2x_radio_calls_t::v2x_radio_init_complete)(v2x_status_enum_type status, void *context) |
Callback that indicates initialization is complete.
[in] | status | Updated current radio status that indicates whether transmit and receive are ready. |
[in] | context | Pointer to the context that was supplied during initial registration. |
void(* v2x_radio_calls_t::v2x_radio_status_listener)(v2x_event_t event, void *context) |
Callback made when the status in the radio changes. For example, in response to a fault when there is a loss of GPS timing accuracy.
[in] | event | Delivery of the event that just occurred, such losing the ability to transmit. |
[in] | context | Pointer to the context of the caller who originally registered for this callback. |
void(* v2x_radio_calls_t::v2x_radio_chan_meas_listener)(v2x_chan_measurements_t *measurements, void *context) |
Callback made from lower layers when periodic radio measurements are prepared.
[in] | measurements | Pointer to the periodic measurements. |
[in] | context | Pointer to the context of the caller who originally registered for this callback. |
void(* v2x_radio_calls_t::v2x_radio_l2_addr_changed_listener)(int new_l2_address, void *context) |
Callback made by the platform SDK when the MAC address (L2 SRC address) changes.
[in] | new_l2_address | New L2 source address as an integer (because the L2 address is 3 bytes). |
[in] | context | Pointer to the context of the caller who originally registered for this callback. |
void(* v2x_radio_calls_t::v2x_radio_macphy_change_complete_cb)(void *context) |
Callback made to indicate that the requested radio MAC/Phy change (such as channel/frequency and power) has completed.
[in] | context | Pointer to the context of the caller who originally registered for this callback. |
void(* v2x_radio_calls_t::v2x_radio_capabilities_listener)(v2x_iface_capabilities_t *caps, void *context) |
Callback made when V2X capabilities change.
[in] | caps | Pointer to the capabilities of this interface. |
[in] | context | Pointer to the context of the caller who originally registered for this callback. |
void(* v2x_radio_calls_t::v2x_service_status_listener)(v2x_service_status_t status, void *context) |
Callback made when the service status changes.
[in] | status | Service status. |
[in] | context | Pointer to the context of the caller who originally registered for this callback. |
uint32_t v2x_sps_mac_details_t::periodicity_in_use_ns |
Actual transmission interval period (in nanoseconds) scheduled relative to 1PP 0:00.00 time.
uint16_t v2x_sps_mac_details_t::currently_reserved_periodic_bytes |
Actual number of bytes currently reserved at the MAC layer. This number can be slightly larger than original request.
uint32_t v2x_sps_mac_details_t::tx_reservation_offset_ns |
Actual offset, from a 1PPS pulse and Tx flow periodicity, that the MAC selected and is using for the transmit reservation.
If data goes to the radio with enough time, it can be transmitted on the medium in the next immediately scheduled slot.
uint64_t v2x_sps_mac_details_t::utc_time_ns |
Absolute UTC start time of next selected grant, in nanoseconds.
void(* v2x_per_sps_reservation_calls_t::v2x_radio_l2_reservation_change_complete_cb)(void *context, v2x_sps_mac_details_t *details) |
Callback made upon completion of a reservation change that a v2x_radio_tx_reservation_change() call initiated for a MAC/Phy contention.
The current SPS offset and reservation parameter are passed in the details structure returned by the pointer details.
[in] | context | Pointer to the application context. |
[in] | details | Pointer to the MAC information. |
void(* v2x_per_sps_reservation_calls_t::v2x_radio_sps_offset_changed)(void *context, v2x_sps_mac_details_t *details) |
Callback periodically made when the MAC SPS timeslot changes. The new reservation offset is in the details structure returned by pointer details.
[in] | measurements | Pointer to the channel measurements. |
[in] | context | Pointer to the context. |
v2x_auto_retransmit_policy_t v2x_tx_flow_info_t::retransmit_policy |
V2X retransmit policy.
uint8_t v2x_tx_flow_info_t::default_tx_power_valid |
Indicates whether the default Tx power is specified.
[block]Supported values:int32_t v2x_tx_flow_info_t::default_tx_power |
Default power used for transmission.
uint8_t v2x_tx_flow_info_t::mcs_index_valid |
Indicates whether the MCS index is specified.
[block]Supported values:uint8_t v2x_tx_flow_info_t::mcs_index |
MCS index number
uint8_t v2x_tx_flow_info_t::tx_pool_id_valid |
Indicates whether the Tx pool ID is valid.
[block]Supported values:uint8_t v2x_tx_flow_info_t::tx_pool_id |
ID of the Tx pool.
uint8_t v2x_tx_flow_info_t::is_unicast_valid |
Indicates whether is_unicast is specified.
[block]Supported values:uint8_t v2x_tx_flow_info_t::is_unicast |
Non zero if requested flow is unicast. Note: Unicast flows ignore subscribed Service Ids
int v2x_sock_info_t::sock |
Pointer to the file descriptor for the socket.
struct sockaddr_in6 v2x_sock_info_t::sockaddr |
IPv6 socket address. The sockaddr_in6 buffer is initialized with the IPv6 source address and source port that are used for the bind() function.
int v2x_sid_list_t::length |
number of services IDs included in the array of sid.
uint32_t v2x_sid_list_t::sid[MAX_SUBSCRIBE_SIDS_LIST_LEN] |
array of service IDs.
v2x_tx_bandwidth_reservation_t v2x_tx_sps_flow_info_t::reservation |
Transmit reservation information.
v2x_tx_flow_info_t v2x_tx_sps_flow_info_t::flow_info |
Transmit resource information about the SPS Tx flow.
uint32_t socket_info_t::service_id |
V2X service ID bound to the CV2X socket.
uint16_t socket_info_t::local_port |
Local port number of the CV2X socket used for binding.