CTaps 0.3.0
A C implementation of the Transport Services API (RFC 9621 - 9623)
Loading...
Searching...
No Matches
Selection Properties

Preferences for protocol candidate selection and filtering. More...

Collaboration diagram for Selection Properties:

Enumerations

enum  ct_selection_preference_enum_t {
  PROHIBIT = -2 , AVOID , NO_PREFERENCE , PREFER ,
  REQUIRE
}
 Preference levels for transport selection properties. More...
 
enum  ct_direction_of_communication_enum_t { CT_DIRECTION_BIDIRECTIONAL , CT_DIRECTION_UNIDIRECTIONAL_SEND , CT_DIRECTION_UNIDIRECTIONAL_RECV }
 Direction of communication for a connection. More...
 
enum  ct_multipath_enum_t { CT_MULTIPATH_DISABLED , CT_MULTIPATH_ACTIVE , CT_MULTIPATH_PASSIVE }
 Multipath transport modes. More...
 

Functions

ct_selection_preference_enum_t ct_transport_properties_get_reliability (const ct_transport_properties_t *transport_props)
 
ct_selection_preference_enum_t ct_transport_properties_get_preserve_msg_boundaries (const ct_transport_properties_t *transport_props)
 
ct_selection_preference_enum_t ct_transport_properties_get_per_msg_reliability (const ct_transport_properties_t *transport_props)
 
ct_selection_preference_enum_t ct_transport_properties_get_preserve_order (const ct_transport_properties_t *transport_props)
 
ct_selection_preference_enum_t ct_transport_properties_get_zero_rtt_msg (const ct_transport_properties_t *transport_props)
 
ct_selection_preference_enum_t ct_transport_properties_get_multistreaming (const ct_transport_properties_t *transport_props)
 
ct_selection_preference_enum_t ct_transport_properties_get_full_checksum_send (const ct_transport_properties_t *transport_props)
 
ct_selection_preference_enum_t ct_transport_properties_get_full_checksum_recv (const ct_transport_properties_t *transport_props)
 
ct_selection_preference_enum_t ct_transport_properties_get_congestion_control (const ct_transport_properties_t *transport_props)
 
ct_selection_preference_enum_t ct_transport_properties_get_keep_alive (const ct_transport_properties_t *transport_props)
 
ct_selection_preference_enum_t ct_transport_properties_get_use_temporary_local_address (const ct_transport_properties_t *transport_props)
 
ct_multipath_enum_t ct_transport_properties_get_multipath (const ct_transport_properties_t *transport_props)
 
ct_selection_preference_enum_t ct_transport_properties_get_advertises_alt_address (const ct_transport_properties_t *transport_props)
 
ct_direction_of_communication_enum_t ct_transport_properties_get_direction (const ct_transport_properties_t *transport_props)
 
ct_selection_preference_enum_t ct_transport_properties_get_soft_error_notify (const ct_transport_properties_t *transport_props)
 
ct_selection_preference_enum_t ct_transport_properties_get_active_read_before_send (const ct_transport_properties_t *transport_props)
 
void ct_transport_properties_set_reliability (ct_transport_properties_t *transport_props, ct_selection_preference_enum_t val)
 
void ct_transport_properties_set_preserve_msg_boundaries (ct_transport_properties_t *transport_props, ct_selection_preference_enum_t val)
 
void ct_transport_properties_set_per_msg_reliability (ct_transport_properties_t *transport_props, ct_selection_preference_enum_t val)
 
void ct_transport_properties_set_preserve_order (ct_transport_properties_t *transport_props, ct_selection_preference_enum_t val)
 
void ct_transport_properties_set_zero_rtt_msg (ct_transport_properties_t *transport_props, ct_selection_preference_enum_t val)
 
void ct_transport_properties_set_multistreaming (ct_transport_properties_t *transport_props, ct_selection_preference_enum_t val)
 
void ct_transport_properties_set_full_checksum_send (ct_transport_properties_t *transport_props, ct_selection_preference_enum_t val)
 
void ct_transport_properties_set_full_checksum_recv (ct_transport_properties_t *transport_props, ct_selection_preference_enum_t val)
 
void ct_transport_properties_set_congestion_control (ct_transport_properties_t *transport_props, ct_selection_preference_enum_t val)
 
void ct_transport_properties_set_keep_alive (ct_transport_properties_t *transport_props, ct_selection_preference_enum_t val)
 
void ct_transport_properties_set_use_temporary_local_address (ct_transport_properties_t *transport_props, ct_selection_preference_enum_t val)
 
void ct_transport_properties_set_multipath (ct_transport_properties_t *transport_props, ct_multipath_enum_t val)
 
void ct_transport_properties_set_advertises_alt_address (ct_transport_properties_t *transport_props, ct_selection_preference_enum_t val)
 
void ct_transport_properties_set_direction (ct_transport_properties_t *transport_props, ct_direction_of_communication_enum_t val)
 
void ct_transport_properties_set_soft_error_notify (ct_transport_properties_t *transport_props, ct_selection_preference_enum_t val)
 
void ct_transport_properties_set_active_read_before_send (ct_transport_properties_t *transport_props, ct_selection_preference_enum_t val)
 
ct_selection_preference_enum_t ct_transport_properties_get_interface_preference (const ct_transport_properties_t *transport_props, const char *value)
 
ct_selection_preference_enum_t ct_transport_properties_get_pvd_preference (const ct_transport_properties_t *transport_props, const char *value)
 
int ct_transport_properties_add_interface_preference (ct_transport_properties_t *transport_props, const char *value, ct_selection_preference_enum_t preference)
 
int ct_transport_properties_add_pvd_preference (ct_transport_properties_t *transport_props, const char *value, ct_selection_preference_enum_t preference)
 

Detailed Description

Preferences for protocol candidate selection and filtering.

Enumeration Type Documentation

◆ ct_direction_of_communication_enum_t

Direction of communication for a connection.

Enumerator
CT_DIRECTION_BIDIRECTIONAL 

Two-way communication (send and receive)

CT_DIRECTION_UNIDIRECTIONAL_SEND 

One-way, send only.

CT_DIRECTION_UNIDIRECTIONAL_RECV 

One-way, receive only.

Definition at line 201 of file ctaps.h.

◆ ct_multipath_enum_t

Multipath transport modes.

Enumerator
CT_MULTIPATH_DISABLED 

Do not use multipath.

CT_MULTIPATH_ACTIVE 

Actively use multiple paths simultaneously.

CT_MULTIPATH_PASSIVE 

Will accept multipath used by peer.

Definition at line 211 of file ctaps.h.

◆ ct_selection_preference_enum_t

Preference levels for transport selection properties.

These values express how strongly a particular transport property is desired, ranging from PROHIBIT (must not have) to REQUIRE (must have).

If a candidate cannot fulfill a PROHIBIT or REQUIRE it is pruned completely.

If a candidate cannot fulfill an AVOID or PREFER it is placed later in the order of possible candidates to race.

Note
A missing PREFER is placed later than any missing avoids. even if a candidate cannot fulfill 10 AVOIDs, it will be placed before a candidate which is missing only a single PREFER
Enumerator
PROHIBIT 

Protocol MUST NOT have this property (eliminates candidates)

AVOID 

Prefer protocols without this property if possible.

NO_PREFERENCE 

No preference - property does not affect selection.

PREFER 

Prefer protocols with this property if available.

REQUIRE 

Protocol MUST have this property (eliminates candidates)

Definition at line 188 of file ctaps.h.

Function Documentation

◆ ct_transport_properties_add_interface_preference()

int ct_transport_properties_add_interface_preference ( ct_transport_properties_t transport_props,
const char *  value,
ct_selection_preference_enum_t  preference 
)

◆ ct_transport_properties_add_pvd_preference()

int ct_transport_properties_add_pvd_preference ( ct_transport_properties_t transport_props,
const char *  value,
ct_selection_preference_enum_t  preference 
)

◆ ct_transport_properties_get_active_read_before_send()

ct_selection_preference_enum_t ct_transport_properties_get_active_read_before_send ( const ct_transport_properties_t transport_props)

◆ ct_transport_properties_get_advertises_alt_address()

ct_selection_preference_enum_t ct_transport_properties_get_advertises_alt_address ( const ct_transport_properties_t transport_props)

◆ ct_transport_properties_get_congestion_control()

ct_selection_preference_enum_t ct_transport_properties_get_congestion_control ( const ct_transport_properties_t transport_props)

◆ ct_transport_properties_get_direction()

ct_direction_of_communication_enum_t ct_transport_properties_get_direction ( const ct_transport_properties_t transport_props)

◆ ct_transport_properties_get_full_checksum_recv()

ct_selection_preference_enum_t ct_transport_properties_get_full_checksum_recv ( const ct_transport_properties_t transport_props)

◆ ct_transport_properties_get_full_checksum_send()

ct_selection_preference_enum_t ct_transport_properties_get_full_checksum_send ( const ct_transport_properties_t transport_props)

◆ ct_transport_properties_get_interface_preference()

ct_selection_preference_enum_t ct_transport_properties_get_interface_preference ( const ct_transport_properties_t transport_props,
const char *  value 
)

◆ ct_transport_properties_get_keep_alive()

ct_selection_preference_enum_t ct_transport_properties_get_keep_alive ( const ct_transport_properties_t transport_props)

◆ ct_transport_properties_get_multipath()

ct_multipath_enum_t ct_transport_properties_get_multipath ( const ct_transport_properties_t transport_props)

◆ ct_transport_properties_get_multistreaming()

ct_selection_preference_enum_t ct_transport_properties_get_multistreaming ( const ct_transport_properties_t transport_props)

◆ ct_transport_properties_get_per_msg_reliability()

ct_selection_preference_enum_t ct_transport_properties_get_per_msg_reliability ( const ct_transport_properties_t transport_props)

◆ ct_transport_properties_get_preserve_msg_boundaries()

ct_selection_preference_enum_t ct_transport_properties_get_preserve_msg_boundaries ( const ct_transport_properties_t transport_props)

◆ ct_transport_properties_get_preserve_order()

ct_selection_preference_enum_t ct_transport_properties_get_preserve_order ( const ct_transport_properties_t transport_props)

◆ ct_transport_properties_get_pvd_preference()

ct_selection_preference_enum_t ct_transport_properties_get_pvd_preference ( const ct_transport_properties_t transport_props,
const char *  value 
)

◆ ct_transport_properties_get_reliability()

ct_selection_preference_enum_t ct_transport_properties_get_reliability ( const ct_transport_properties_t transport_props)

◆ ct_transport_properties_get_soft_error_notify()

ct_selection_preference_enum_t ct_transport_properties_get_soft_error_notify ( const ct_transport_properties_t transport_props)

◆ ct_transport_properties_get_use_temporary_local_address()

ct_selection_preference_enum_t ct_transport_properties_get_use_temporary_local_address ( const ct_transport_properties_t transport_props)

◆ ct_transport_properties_get_zero_rtt_msg()

ct_selection_preference_enum_t ct_transport_properties_get_zero_rtt_msg ( const ct_transport_properties_t transport_props)

◆ ct_transport_properties_set_active_read_before_send()

void ct_transport_properties_set_active_read_before_send ( ct_transport_properties_t transport_props,
ct_selection_preference_enum_t  val 
)

◆ ct_transport_properties_set_advertises_alt_address()

void ct_transport_properties_set_advertises_alt_address ( ct_transport_properties_t transport_props,
ct_selection_preference_enum_t  val 
)

◆ ct_transport_properties_set_congestion_control()

void ct_transport_properties_set_congestion_control ( ct_transport_properties_t transport_props,
ct_selection_preference_enum_t  val 
)

◆ ct_transport_properties_set_direction()

void ct_transport_properties_set_direction ( ct_transport_properties_t transport_props,
ct_direction_of_communication_enum_t  val 
)

◆ ct_transport_properties_set_full_checksum_recv()

void ct_transport_properties_set_full_checksum_recv ( ct_transport_properties_t transport_props,
ct_selection_preference_enum_t  val 
)

◆ ct_transport_properties_set_full_checksum_send()

void ct_transport_properties_set_full_checksum_send ( ct_transport_properties_t transport_props,
ct_selection_preference_enum_t  val 
)

◆ ct_transport_properties_set_keep_alive()

void ct_transport_properties_set_keep_alive ( ct_transport_properties_t transport_props,
ct_selection_preference_enum_t  val 
)

◆ ct_transport_properties_set_multipath()

void ct_transport_properties_set_multipath ( ct_transport_properties_t transport_props,
ct_multipath_enum_t  val 
)

◆ ct_transport_properties_set_multistreaming()

void ct_transport_properties_set_multistreaming ( ct_transport_properties_t transport_props,
ct_selection_preference_enum_t  val 
)

◆ ct_transport_properties_set_per_msg_reliability()

void ct_transport_properties_set_per_msg_reliability ( ct_transport_properties_t transport_props,
ct_selection_preference_enum_t  val 
)

◆ ct_transport_properties_set_preserve_msg_boundaries()

void ct_transport_properties_set_preserve_msg_boundaries ( ct_transport_properties_t transport_props,
ct_selection_preference_enum_t  val 
)

◆ ct_transport_properties_set_preserve_order()

void ct_transport_properties_set_preserve_order ( ct_transport_properties_t transport_props,
ct_selection_preference_enum_t  val 
)

◆ ct_transport_properties_set_reliability()

void ct_transport_properties_set_reliability ( ct_transport_properties_t transport_props,
ct_selection_preference_enum_t  val 
)

◆ ct_transport_properties_set_soft_error_notify()

void ct_transport_properties_set_soft_error_notify ( ct_transport_properties_t transport_props,
ct_selection_preference_enum_t  val 
)

◆ ct_transport_properties_set_use_temporary_local_address()

void ct_transport_properties_set_use_temporary_local_address ( ct_transport_properties_t transport_props,
ct_selection_preference_enum_t  val 
)

◆ ct_transport_properties_set_zero_rtt_msg()

void ct_transport_properties_set_zero_rtt_msg ( ct_transport_properties_t transport_props,
ct_selection_preference_enum_t  val 
)