RTI Connext DDS Micro C API
Version 4.1.0
|
NETIO DGRAM Interface. More...
Data Structures | |
struct | NETIO_DGRAM_InterfaceMultiCastGroup |
<<eXtension>> <<cert>> . More... | |
struct | NETIO_DGRAM_InterfaceTableEntry |
<<eXtension>> <<cert>> . More... | |
struct | NETIO_DGRAM_InterfaceRouteEntry |
<<eXtension>> <<cert>> . More... | |
struct | NETIO_DGRAM_InterfaceTableEntrySeq |
A sequence of NETIO_DGRAMInterfaceTableEntry elements. More... | |
struct | NETIO_DGRAM_InterfaceI |
<<eXtension>> <<cert>> . More... |
Macros | |
#define | NETIO_DGRAM_INTERFACE_SHARED_PORT_FLAG (0x1U) |
Flag that indicates that an interface uses shared ports. | |
#define | NETIO_DGRAM_INTERFACE_MAX_INTERFACES (8) |
The maximum number of network interfaces a NETIO_DGRAM Transport instance can manage. | |
#define | NETIO_DGRAM_INTERFACE_MAX_ADDRESSES (8) |
The maximum number of addresses which can be returned in an address reservation request. | |
#define | NETIO_DGRAM_InterfaceMultiCastGroup_INITIALIZER |
Constant to initialize a NETIO_DGRAM_InterfaceMultiCastGroup attribute as empty. | |
#define | NETIO_DGRAM_InterfaceMultiCastGroup_Invalid |
Constant to initialize a NETIO_DGRAM_InterfaceMultiCastGroup attribute as invalid. | |
#define | NETIO_DGRAM_InterfaceMultiCastGroup_UDPv4 |
Constant to initialize a NETIO_DGRAM_InterfaceMultiCastGroup attribute as a UDPv4. | |
#define | NETIO_DGRAM_InterfaceMultiCastGroup_UDPv6 |
Constant to initialize a NETIO_DGRAM_InterfaceMultiCastGroup attribute as a UDPv6 multicast group. | |
#define | NETIO_DGRAM_InterfaceTableEntry_INITIALIZER |
Constant to initialize an NETIO_DGRAM_InterfaceTableEntry attribute as an empty entry. | |
#define | NETIO_DGRAM_InterfaceTableEntrySeq_INITIALIZER REDA_DEFINE_SEQUENCE_INITIALIZER(struct NETIO_DGRAM_InterfaceTableEntry) |
Constant to initialize a NETIO_DGRAM_InterfaceTableEntry as empty. |
Typedefs | |
typedef NETIO_Interface_T *(* | NETIO_DGRAM_Interface_createFunc )(NETIO_Interface_T *upstream, void *property) |
The NETIO_DGRAM create interface function required by NETIO_DGRAM_InterfaceI. | |
typedef RTI_BOOL(* | NETIO_DGRAMUserInterface_get_interface_listFunc )(NETIO_Interface_T *user_intf, struct NETIO_DGRAM_InterfaceTableEntrySeq *if_table) |
NETIO_DGRAM get interface list function required by NETIO_DGRAM_InterfaceI. | |
typedef RTI_BOOL(* | NETIO_DGRAMUserInterface_resolve_addressFunc )(NETIO_Interface_T *netio_intf, const struct NETIO_DGRAM_InterfaceTableEntry *if_entry, const char *address_string, struct NETIO_Address *address_value, RTI_BOOL *is_invalid) |
NETIO_DGRAM address resolve function. | |
typedef RTI_BOOL(* | NETIO_DGRAMUserInterface_bind_addressFunc )(NETIO_Interface_T *user_intf, struct NETIO_Address *source) |
NETIO_DGRAM bind address function. by NETIO_DGRAM_InterfaceI. | |
typedef void(* | NETIO_DGRAMUserInterface_deleteFunc )(NETIO_Interface_T *user_intf) |
The NETIO_DGRAM delete interface function. NOT in CERT. | |
typedef struct NETIO_DGRAM_InterfaceI | NETIO_DGRAM_InterfaceI |
<<eXtension>> <<cert>> . |
Functions | |
NETIO_DGRAMDllExport RTI_BOOL | NETIO_DGRAM_InterfaceFactory_register (RT_Registry_T *registry, const char *name, NETIO_DGRAM_InterfaceI *user_intf, void *user_property) |
Register the DGRAM interface. | |
NETIO_DGRAMDllExport RTI_BOOL | NETIO_DGRAM_InterfaceFactory_unregister (RT_Registry_T *registry, const char *name) |
Unregister the DGRAM interface. | |
NETIO_DGRAMDllExport RTI_BOOL | NETIO_DGRAM_Interface_add_route_to_seq (struct NETIO_AddressSeq *address_seq, struct NETIO_NetmaskSeq *netmask_seq, const struct NETIO_Address *address, const struct NETIO_Netmask *netmask) |
Adds the address and netmask to the respective sequences. | |
NETIO_DGRAMDllExport RTI_BOOL | NETIO_DGRAM_Interface_add_route_entry_to_seq (struct NETIO_AddressSeq *address_seq, struct NETIO_NetmaskSeq *netmask_seq, const struct NETIO_DGRAM_InterfaceRouteEntry *entry) |
Add a route entry to address and netmask sequence. |
Variables | |
struct NETIO_DGRAM_InterfaceRouteEntry | NETIO_ADDRESS_UDPv4_ANY_UNICAST_ROUTE |
Constant to initialize a UDPv4 unicast route. | |
struct NETIO_DGRAM_InterfaceRouteEntry | NETIO_ADDRESS_UDPv4_ANY_MULTICAST_ROUTE |
Constant to initialize UDPv4 multicast route. | |
struct NETIO_DGRAM_InterfaceRouteEntry | NETIO_ADDRESS_UDPv6_ANY_UNICAST_ROUTE |
Constant to initialize a UDPv6 unicast route. | |
struct NETIO_DGRAM_InterfaceRouteEntry | NETIO_ADDRESS_UDPv6_ANY_MULTICAST_ROUTE |
Constant to initialize UDPv6 multicast route. |
NETIO DGRAM Interface.
<<eXtension>> <<cert>> The NETIO DGRAM implements the RTI Connext DDS Micro NETIO interface and exposes a subset of the interface enabling users to write an integration with concrete network interface.
#define NETIO_DGRAM_INTERFACE_SHARED_PORT_FLAG (0x1U) |
Flag that indicates that an interface uses shared ports.
RTI Connext DDS Micro uses Locators to specify transport addresses to send and receive data. A Locator consists of a kind, port, and a transport address. The kind indicates the type of transport, such as UDPv4, the port is used to reach a DDS DomainParticipant, and the address is used to reach the destination transport. RTI Connext DDS Micro can work with two different types of transports, one that uses shared ports and one that does not.
When a transport uses shared ports, it does not matter which transport address a message was received on; only the port matters. For example, if a computer has two network interfaces A and B and is listening for messages on port P, it does not matter if the message is received on A or B. That is, as long as the message is received on any network interface capable of receiving on port P, the message is accepted.
When a transport does not use shared ports it means it does matter which transport address a message was received on. For example, if a computer has two network interfaces A and B and is listening for messages on port P, but has only specified that the A should receive on port P, then messages received on interface B and port P are ignored.
RTI Connext DDS Micro support this flag on per RTI Connext DDS Micro transport basis.
It is important to note that when a message is accepted, it is routed to all relevant DDS datareaders and datawriters. Thus, this feature cannot be used to control that some DDS topics should only be accepted when received on a specific transport interface. However, this feature could be useful to allow different DDS DomainParticipants to use the same port, but with different network interfaces.
#define NETIO_DGRAM_INTERFACE_MAX_INTERFACES (8) |
The maximum number of network interfaces a NETIO_DGRAM Transport instance can manage.
Each NETIO_DGRAM Transport instance is associated with network interface as returned by the NETIO_DGRAM_InterfaceTableEntrySeq. The maximum number of interfaces that can be managed by NETIO_DGRAM is NETIO_DGRAMINTERFACE_MAX_INTERFACES.
#define NETIO_DGRAM_INTERFACE_MAX_ADDRESSES (8) |
The maximum number of addresses which can be returned in an address reservation request.
Each NETIO_DGRAM Transport instance receives address reservation requests to reserve addresses to receive discovery and user data based on. The maximum number of addresses that can be reserved in a single request is NETIO_DGRAM_INTERFACE_MAX_ADDRESSES.
#define NETIO_DGRAM_InterfaceMultiCastGroup_INITIALIZER |
Constant to initialize a NETIO_DGRAM_InterfaceMultiCastGroup attribute as empty.
#define NETIO_DGRAM_InterfaceMultiCastGroup_Invalid |
Constant to initialize a NETIO_DGRAM_InterfaceMultiCastGroup attribute as invalid.
#define NETIO_DGRAM_InterfaceMultiCastGroup_UDPv4 |
Constant to initialize a NETIO_DGRAM_InterfaceMultiCastGroup attribute as a UDPv4.
#define NETIO_DGRAM_InterfaceMultiCastGroup_UDPv6 |
Constant to initialize a NETIO_DGRAM_InterfaceMultiCastGroup attribute as a UDPv6 multicast group.
#define NETIO_DGRAM_InterfaceTableEntry_INITIALIZER |
Constant to initialize an NETIO_DGRAM_InterfaceTableEntry attribute as an empty entry.
#define NETIO_DGRAM_InterfaceTableEntrySeq_INITIALIZER REDA_DEFINE_SEQUENCE_INITIALIZER(struct NETIO_DGRAM_InterfaceTableEntry) |
Constant to initialize a NETIO_DGRAM_InterfaceTableEntry as empty.
typedef NETIO_Interface_T*(* NETIO_DGRAM_Interface_createFunc)(NETIO_Interface_T *upstream, void *property) |
The NETIO_DGRAM create interface function required by NETIO_DGRAM_InterfaceI.
typedef RTI_BOOL(* NETIO_DGRAMUserInterface_get_interface_listFunc)(NETIO_Interface_T *user_intf, struct NETIO_DGRAM_InterfaceTableEntrySeq *if_table) |
NETIO_DGRAM get interface list function required by NETIO_DGRAM_InterfaceI.
typedef RTI_BOOL(* NETIO_DGRAMUserInterface_resolve_addressFunc)(NETIO_Interface_T *netio_intf, const struct NETIO_DGRAM_InterfaceTableEntry *if_entry, const char *address_string, struct NETIO_Address *address_value, RTI_BOOL *is_invalid) |
NETIO_DGRAM address resolve function.
typedef RTI_BOOL(* NETIO_DGRAMUserInterface_bind_addressFunc)(NETIO_Interface_T *user_intf, struct NETIO_Address *source) |
NETIO_DGRAM bind address function. by NETIO_DGRAM_InterfaceI.
typedef void(* NETIO_DGRAMUserInterface_deleteFunc)(NETIO_Interface_T *user_intf) |
The NETIO_DGRAM delete interface function. NOT in CERT.
typedef struct NETIO_DGRAM_InterfaceI NETIO_DGRAM_InterfaceI |
NETIO_DGRAMDllExport RTI_BOOL NETIO_DGRAM_InterfaceFactory_register | ( | RT_Registry_T * | registry, |
const char * | name, | ||
NETIO_DGRAM_InterfaceI * | user_intf, | ||
void * | user_property | ||
) |
Register the DGRAM interface.
Registers the DGRAM interface component factory, sets the interface name, sets the instance's properties, and the user interface operations.
The interface operations are the supporting network layer functions that the DGRAM uses for it's routing, binding, and communication with peer NETIO.
[in] | registry | Registry instance. |
[in] | name | Interface name to register. |
[in] | user_intf | User interface. |
[in] | user_property | User defined property. |
NETIO_DGRAMDllExport RTI_BOOL NETIO_DGRAM_InterfaceFactory_unregister | ( | RT_Registry_T * | registry, |
const char * | name | ||
) |
Unregister the DGRAM interface.
Unregister the DGRAM interface.
[in] | registry | Registry instance. |
[in] | name | Interface name to unregister. |
NETIO_DGRAMDllExport RTI_BOOL NETIO_DGRAM_Interface_add_route_to_seq | ( | struct NETIO_AddressSeq * | address_seq, |
struct NETIO_NetmaskSeq * | netmask_seq, | ||
const struct NETIO_Address * | address, | ||
const struct NETIO_Netmask * | netmask | ||
) |
Adds the address and netmask to the respective sequences.
Sets the address and netmask to the repsective sequence.
[in,out] | address_seq | The address sequence to add to. |
[in,out] | netmask_seq | The netmask sequence to add to. |
[in] | address | The address to add. |
[in] | netmask | The netmask to add. |
NETIO_DGRAMDllExport RTI_BOOL NETIO_DGRAM_Interface_add_route_entry_to_seq | ( | struct NETIO_AddressSeq * | address_seq, |
struct NETIO_NetmaskSeq * | netmask_seq, | ||
const struct NETIO_DGRAM_InterfaceRouteEntry * | entry | ||
) |
Add a route entry to address and netmask sequence.
Adds the address_value to the address and route sequence.
[in,out] | address_seq | The address sequence to add to. |
[in,out] | netmask_seq | The netmask sequence to add to. |
[in] | entry | Entry to add. |
struct NETIO_DGRAM_InterfaceRouteEntry NETIO_ADDRESS_UDPv4_ANY_UNICAST_ROUTE |
Constant to initialize a UDPv4 unicast route.
RTI Connext DDS Micro uses an internal route table to determine which RTI Connext DDS Micro transport to use to send outgoing messages on (refer to NETIO_TransportI.get_route_table for details). The NETIO_ADDRESS_UDPv4_ANY_UNICAST_ROUTE can be used to configure a transport as being able to send messages to any UDPv4 address.
struct NETIO_DGRAM_InterfaceRouteEntry NETIO_ADDRESS_UDPv4_ANY_MULTICAST_ROUTE |
Constant to initialize UDPv4 multicast route.
RTI Connext DDS Micro uses an internal route table to determine which RTI Connext DDS Micro transport to use to send outgoing messages on (refer to NETIO_TransportI.get_route_table for details). The NETIO_ADDRESS_UDPv4_ANY_MULTICAST_ROUTE can be used to configure a transport as being able to send messages to any UDPv4 multicast address.
struct NETIO_DGRAM_InterfaceRouteEntry NETIO_ADDRESS_UDPv6_ANY_UNICAST_ROUTE |
Constant to initialize a UDPv6 unicast route.
RTI Connext DDS Micro uses an internal route table to determine which RTI Connext DDS Micro transport to use to send outgoing messages on (refer to NETIO_TransportI.get_route_table for details). The NETIO_ADDRESS_UDPv6_ANY_UNICAST_ROUTE can be used to configure a transport as being able to send messages to any UDPv6 address.
struct NETIO_DGRAM_InterfaceRouteEntry NETIO_ADDRESS_UDPv6_ANY_MULTICAST_ROUTE |
Constant to initialize UDPv6 multicast route.
RTI Connext DDS Micro uses an internal route table to determine which RTI Connext DDS Micro transport to use to send outgoing messages on (refer to NETIO_TransportI.get_route_table for details). The NETIO_ADDRESS_UDPv6_ANY_MULTICAST_ROUTE can be used to configure a transport as being able to send messages to any UDPv6 multicast address.