RTI Connext Micro C++ API Version 4.2.0
Loading...
Searching...
No Matches
NETIO DGRAM API

NETIO DGRAM Interface. More...

Classes

struct  NETIO_DGRAM_InterfaceMultiCastGroup
 <<eXtension>> Definition of a valid multicast group address range. More...
 
struct  NETIO_DGRAM_InterfaceTableEntry
 <<eXtension>> Definition of an interface. More...
 
struct  NETIO_DGRAM_InterfaceRouteEntry
 <<eXtension>> Definition of a route entry. More...
 
struct  NETIO_DGRAM_InterfaceTableEntrySeq
 A sequence of NETIO_DGRAMInterfaceTableEntry elements. More...
 
struct  NETIO_DGRAM_InterfaceI
 <<eXtension>> Definition of the NETIO_DGRAM Interface. 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>> Definition of the NETIO_DGRAM Interface.
 

Functions

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.
 

Variables

const struct NETIO_DGRAM_InterfaceRouteEntry NETIO_ADDRESS_UDPv4_ANY_UNICAST_ROUTE
 Constant to initialize a UDPv4 unicast route.
 
const struct NETIO_DGRAM_InterfaceRouteEntry NETIO_ADDRESS_UDPv4_ANY_MULTICAST_ROUTE
 Constant to initialize UDPv4 multicast route.
 
const struct NETIO_DGRAM_InterfaceRouteEntry NETIO_ADDRESS_UDPv6_ANY_UNICAST_ROUTE
 Constant to initialize a UDPv6 unicast route.
 
const struct NETIO_DGRAM_InterfaceRouteEntry NETIO_ADDRESS_UDPv6_ANY_MULTICAST_ROUTE
 Constant to initialize UDPv6 multicast route.
 

Detailed Description

NETIO DGRAM Interface.

<<eXtension>> 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.

Macro Definition Documentation

◆ NETIO_DGRAM_INTERFACE_SHARED_PORT_FLAG

#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.

◆ NETIO_DGRAM_INTERFACE_MAX_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.

◆ NETIO_DGRAM_INTERFACE_MAX_ADDRESSES

#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.

◆ NETIO_DGRAM_InterfaceMultiCastGroup_INITIALIZER

#define NETIO_DGRAM_InterfaceMultiCastGroup_INITIALIZER
Value:
{\
}
#define NETIO_Address_INITIALIZER
<<eXtension>> Initialize a NETIO_Address.
Definition netio_address.h:479
#define NETIO_Netmask_INITIALIZER
<<eXtension>> Initialize a NETIO_Netmask.
Definition netio_address.h:412

Constant to initialize a NETIO_DGRAM_InterfaceMultiCastGroup attribute as empty.

◆ NETIO_DGRAM_InterfaceMultiCastGroup_Invalid

#define NETIO_DGRAM_InterfaceMultiCastGroup_Invalid
Value:
{\
{-1,0,{{0,0,0,0}},{0}},\
{-1,0,{{0,0,0,0}},{0}},\
{0,{0,0,0,0}} \
}

Constant to initialize a NETIO_DGRAM_InterfaceMultiCastGroup attribute as invalid.

◆ NETIO_DGRAM_InterfaceMultiCastGroup_UDPv4

#define NETIO_DGRAM_InterfaceMultiCastGroup_UDPv4
Value:
{\
{NETIO_ADDRESS_KIND_UDPv4,0,{{NETIO_htonl(0xe0000000),0,0,0}},{0}},\
{NETIO_ADDRESS_KIND_UDPv4,0,{{NETIO_htonl(0xefffffff),0,0,0}},{0}},\
{4,{0,0,0,0}} \
}
#define NETIO_ADDRESS_KIND_UDPv4
<<eXtension>> The UDPv4 NETIO Address.
Definition netio_address.h:79

Constant to initialize a NETIO_DGRAM_InterfaceMultiCastGroup attribute as a UDPv4.

◆ NETIO_DGRAM_InterfaceMultiCastGroup_UDPv6

#define NETIO_DGRAM_InterfaceMultiCastGroup_UDPv6
Value:
{\
{NETIO_ADDRESS_KIND_UDPv6,0,{{NETIO_htonl(0xff000000),0,0,0}},{0}},\
{NETIO_ADDRESS_KIND_UDPv6,0,{{0xffffffff,0xffffffff,0xffffffff,0xffffffff}},{0}},\
{8,{0,0,0,0}} \
}
#define NETIO_ADDRESS_KIND_UDPv6
<<eXtension>> The UDPv6 NETIO Address.
Definition netio_address.h:83

Constant to initialize a NETIO_DGRAM_InterfaceMultiCastGroup attribute as a UDPv6 multicast group.

◆ NETIO_DGRAM_InterfaceTableEntry_INITIALIZER

#define NETIO_DGRAM_InterfaceTableEntry_INITIALIZER
Value:
{\
0U,\
0U,\
0U,\
NULL\
}
#define NETIO_DGRAM_InterfaceMultiCastGroup_INITIALIZER
Constant to initialize a NETIO_DGRAM_InterfaceMultiCastGroup attribute as empty.
Definition netio_dgram.h:112

Constant to initialize an NETIO_DGRAM_InterfaceTableEntry attribute as an empty entry.

◆ NETIO_DGRAM_InterfaceTableEntrySeq_INITIALIZER

#define NETIO_DGRAM_InterfaceTableEntrySeq_INITIALIZER    REDA_DEFINE_SEQUENCE_INITIALIZER(struct NETIO_DGRAM_InterfaceTableEntry)

Constant to initialize a NETIO_DGRAM_InterfaceTableEntry as empty.

Typedef Documentation

◆ NETIO_DGRAM_Interface_createFunc

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.

◆ NETIO_DGRAMUserInterface_get_interface_listFunc

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.

◆ NETIO_DGRAMUserInterface_resolve_addressFunc

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.

◆ NETIO_DGRAMUserInterface_bind_addressFunc

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.

◆ NETIO_DGRAMUserInterface_deleteFunc

typedef void(* NETIO_DGRAMUserInterface_deleteFunc) (NETIO_Interface_T *user_intf)

The NETIO_DGRAM delete interface function. NOT in CERT.

◆ NETIO_DGRAM_InterfaceI

typedef struct NETIO_DGRAM_InterfaceI NETIO_DGRAM_InterfaceI

<<eXtension>> Definition of the NETIO_DGRAM Interface.

Function Documentation

◆ NETIO_DGRAM_InterfaceFactory_register()

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.

Parameters
[in]registryRegistry instance.
[in]nameInterface name to register.
[in]user_intfUser interface.
[in]user_propertyUser defined property.
Returns
RTI_TRUE on success, RTI_FALSE on failure.
MT Safety:
This operation is not thread safe.

Variable Documentation

◆ NETIO_ADDRESS_UDPv4_ANY_UNICAST_ROUTE

const struct NETIO_DGRAM_InterfaceRouteEntry NETIO_ADDRESS_UDPv4_ANY_UNICAST_ROUTE
extern

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.

◆ NETIO_ADDRESS_UDPv4_ANY_MULTICAST_ROUTE

const struct NETIO_DGRAM_InterfaceRouteEntry NETIO_ADDRESS_UDPv4_ANY_MULTICAST_ROUTE
extern

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.

◆ NETIO_ADDRESS_UDPv6_ANY_UNICAST_ROUTE

const struct NETIO_DGRAM_InterfaceRouteEntry NETIO_ADDRESS_UDPv6_ANY_UNICAST_ROUTE
extern

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.

◆ NETIO_ADDRESS_UDPv6_ANY_MULTICAST_ROUTE

const struct NETIO_DGRAM_InterfaceRouteEntry NETIO_ADDRESS_UDPv6_ANY_MULTICAST_ROUTE
extern

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.