start using the DDSI vendor id code for the Eclipse Foundation
Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
parent
92fca549cb
commit
98465035e6
14 changed files with 189 additions and 186 deletions
|
@ -25,6 +25,7 @@ PREPEND(srcs_ddsi "${CMAKE_CURRENT_LIST_DIR}/src"
|
|||
ddsi_rhc_plugin.c
|
||||
ddsi_iid.c
|
||||
ddsi_tkmap.c
|
||||
ddsi_vendor.c
|
||||
q_addrset.c
|
||||
q_bitset_inlines.c
|
||||
q_bswap.c
|
||||
|
@ -77,6 +78,7 @@ PREPEND(hdrs_private_ddsi "${CMAKE_CURRENT_LIST_DIR}/include/ddsi"
|
|||
ddsi_rhc_plugin.h
|
||||
ddsi_iid.h
|
||||
ddsi_tkmap.h
|
||||
ddsi_vendor.h
|
||||
probes-constants.h
|
||||
q_addrset.h
|
||||
q_bitset.h
|
||||
|
|
84
src/core/ddsi/include/ddsi/ddsi_vendor.h
Normal file
84
src/core/ddsi/include/ddsi/ddsi_vendor.h
Normal file
|
@ -0,0 +1,84 @@
|
|||
/*
|
||||
* Copyright(c) 2019 ADLINK Technology Limited and others
|
||||
*
|
||||
* This program and the accompanying materials are made available under the
|
||||
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||
* v. 1.0 which is available at
|
||||
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||
*/
|
||||
#ifndef DDSI_VENDOR_H
|
||||
#define DDSI_VENDOR_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
typedef struct {
|
||||
uint8_t id[2];
|
||||
} nn_vendorid_t;
|
||||
|
||||
/* All existing vendor codes have the major part equal to 1 (and this will probably be true for a long, long time) */
|
||||
#define NN_VENDORID_MINOR_RTI 0x01
|
||||
#define NN_VENDORID_MINOR_PRISMTECH_OSPL 0x02
|
||||
#define NN_VENDORID_MINOR_OCI 0x03
|
||||
#define NN_VENDORID_MINOR_MILSOFT 0x04
|
||||
#define NN_VENDORID_MINOR_KONGSBERG 0x05
|
||||
#define NN_VENDORID_MINOR_TWINOAKS 0x06
|
||||
#define NN_VENDORID_MINOR_LAKOTA 0x07
|
||||
#define NN_VENDORID_MINOR_ICOUP 0x08
|
||||
#define NN_VENDORID_MINOR_ETRI 0x09
|
||||
#define NN_VENDORID_MINOR_RTI_MICRO 0x0a
|
||||
#define NN_VENDORID_MINOR_PRISMTECH_JAVA 0x0b
|
||||
#define NN_VENDORID_MINOR_PRISMTECH_GATEWAY 0x0c
|
||||
#define NN_VENDORID_MINOR_PRISMTECH_LITE 0x0d
|
||||
#define NN_VENDORID_MINOR_TECHNICOLOR 0x0e
|
||||
#define NN_VENDORID_MINOR_EPROSIMA 0x0f
|
||||
#define NN_VENDORID_MINOR_ECLIPSE 0x10
|
||||
#define NN_VENDORID_MINOR_PRISMTECH_CLOUD 0x20
|
||||
|
||||
#define NN_VENDORID_UNKNOWN ((nn_vendorid_t) {{ 0x00, 0x00 }})
|
||||
#define NN_VENDORID_ECLIPSE ((nn_vendorid_t) {{ 0x01, 0x10 }})
|
||||
|
||||
#if defined (__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
inline bool vendor_equals (nn_vendorid_t a, nn_vendorid_t b) {
|
||||
return ((a.id[0] << 8) | a.id[1]) == ((b.id[0] << 8) | b.id[1]);
|
||||
}
|
||||
inline bool vendor_is_eclipse (nn_vendorid_t vendor) {
|
||||
return vendor_equals (vendor, NN_VENDORID_ECLIPSE);
|
||||
}
|
||||
inline bool vendor_is_rti (nn_vendorid_t vendor) {
|
||||
return vendor_equals (vendor, (nn_vendorid_t) { 0x01, NN_VENDORID_MINOR_RTI });
|
||||
}
|
||||
inline bool vendor_is_opensplice (nn_vendorid_t vendor) {
|
||||
return vendor_equals (vendor, (nn_vendorid_t) { 0x01, NN_VENDORID_MINOR_PRISMTECH_OSPL });
|
||||
}
|
||||
inline bool vendor_is_twinoaks (nn_vendorid_t vendor) {
|
||||
return vendor_equals (vendor, (nn_vendorid_t) { 0x01, NN_VENDORID_MINOR_TWINOAKS });
|
||||
}
|
||||
inline bool vendor_is_cloud (nn_vendorid_t vendor) {
|
||||
return vendor_equals (vendor, (nn_vendorid_t) { 0x01, NN_VENDORID_MINOR_PRISMTECH_CLOUD });
|
||||
}
|
||||
inline bool vendor_is_eclipse_or_opensplice (nn_vendorid_t vendor) {
|
||||
return vendor_is_eclipse (vendor) | vendor_is_opensplice (vendor);
|
||||
}
|
||||
inline bool vendor_is_prismtech (nn_vendorid_t vendor) {
|
||||
return (vendor_equals (vendor, (nn_vendorid_t) { 0x01, NN_VENDORID_MINOR_PRISMTECH_OSPL }) ||
|
||||
vendor_equals (vendor, (nn_vendorid_t) { 0x01, NN_VENDORID_MINOR_PRISMTECH_LITE }) ||
|
||||
vendor_equals (vendor, (nn_vendorid_t) { 0x01, NN_VENDORID_MINOR_PRISMTECH_GATEWAY }) ||
|
||||
vendor_equals (vendor, (nn_vendorid_t) { 0x01, NN_VENDORID_MINOR_PRISMTECH_JAVA }) ||
|
||||
vendor_equals (vendor, (nn_vendorid_t) { 0x01, NN_VENDORID_MINOR_PRISMTECH_CLOUD }));
|
||||
}
|
||||
inline bool vendor_is_eclipse_or_prismtech (nn_vendorid_t vendor) {
|
||||
return vendor_is_eclipse (vendor) || vendor_is_prismtech (vendor);
|
||||
}
|
||||
|
||||
#if defined (__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* DDSI_VENDOR_H */
|
|
@ -18,27 +18,25 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct nn_guid;
|
||||
inline seqno_t fromSN (const nn_sequence_number_t sn) {
|
||||
return ((seqno_t) sn.high << 32) | sn.low;
|
||||
}
|
||||
|
||||
inline nn_sequence_number_t toSN (seqno_t n) {
|
||||
nn_sequence_number_t x;
|
||||
x.high = (int) (n >> 32);
|
||||
x.low = (unsigned) n;
|
||||
return x;
|
||||
}
|
||||
|
||||
int vendor_is_lite (nn_vendorid_t vendor);
|
||||
int vendor_is_opensplice (nn_vendorid_t vid);
|
||||
int vendor_is_rti (nn_vendorid_t vendor);
|
||||
int vendor_is_twinoaks (nn_vendorid_t vendor);
|
||||
int vendor_is_prismtech (nn_vendorid_t vendor);
|
||||
int vendor_is_cloud (nn_vendorid_t vendor);
|
||||
int is_own_vendor (nn_vendorid_t vendor);
|
||||
unsigned char normalize_data_datafrag_flags (const SubmessageHeader_t *smhdr, int datafrag_as_data);
|
||||
|
||||
seqno_t fromSN (const nn_sequence_number_t sn);
|
||||
nn_sequence_number_t toSN (seqno_t);
|
||||
|
||||
#ifdef DDSI_INCLUDE_NETWORK_PARTITIONS
|
||||
int WildcardOverlap(char * p1, char * p2);
|
||||
#endif
|
||||
|
||||
int ddsi2_patmatch (const char *pat, const char *str);
|
||||
|
||||
|
||||
uint32_t crc32_calc (const void *buf, size_t length);
|
||||
|
||||
#if defined (__cplusplus)
|
||||
|
|
|
@ -123,27 +123,6 @@ struct cdrstring {
|
|||
#define NN_LOCATOR_KIND_UDPv4MCGEN 0x4fff0000
|
||||
#define NN_LOCATOR_PORT_INVALID 0
|
||||
|
||||
#define NN_VENDORID_UNKNOWN {{ 0x00, 0x00 }}
|
||||
#define NN_VENDORID_RTI {{ 0x01, 0x01 }}
|
||||
#define NN_VENDORID_PRISMTECH_OSPL {{ 0x01, 0x02 }}
|
||||
#define NN_VENDORID_OCI {{ 0x01, 0x03 }}
|
||||
#define NN_VENDORID_MILSOFT {{ 0x01, 0x04 }}
|
||||
#define NN_VENDORID_KONGSBERG {{ 0x01, 0x05 }}
|
||||
#define NN_VENDORID_TWINOAKS {{ 0x01, 0x06 }}
|
||||
#define NN_VENDORID_LAKOTA {{ 0x01, 0x07 }}
|
||||
#define NN_VENDORID_ICOUP {{ 0x01, 0x08 }}
|
||||
#define NN_VENDORID_ETRI {{ 0x01, 0x09 }}
|
||||
#define NN_VENDORID_RTI_MICRO {{ 0x01, 0x0a }}
|
||||
#define NN_VENDORID_PRISMTECH_JAVA {{ 0x01, 0x0b }}
|
||||
#define NN_VENDORID_PRISMTECH_GATEWAY {{ 0x01, 0x0c }}
|
||||
#define NN_VENDORID_PRISMTECH_LITE {{ 0x01, 0x0d }}
|
||||
#define NN_VENDORID_TECHNICOLOR {{ 0x01, 0x0e }}
|
||||
#define NN_VENDORID_EPROSIMA {{ 0x01, 0x0f }}
|
||||
#define NN_VENDORID_PRISMTECH_CLOUD {{ 0x01, 0x20 }}
|
||||
#define NN_VENDORID_ECLIPSE_CYCLONEDDS {{ 0x01, 0x0d }} // Since CYCLONEDDS has no owner yet, it uses the same VENDORID as LITE
|
||||
|
||||
#define MY_VENDOR_ID NN_VENDORID_ECLIPSE_CYCLONEDDS
|
||||
|
||||
/* Only one specific version is grokked */
|
||||
#define RTPS_MAJOR 2
|
||||
#define RTPS_MINOR 1
|
||||
|
@ -155,15 +134,11 @@ typedef struct Header {
|
|||
nn_vendorid_t vendorid;
|
||||
nn_guid_prefix_t guid_prefix;
|
||||
} Header_t;
|
||||
#define NN_PROTOCOLID_INITIALIZER {{ 'R','T','P','S' }}
|
||||
#if PLATFORM_IS_LITTLE_ENDIAN
|
||||
#define NN_PROTOCOLID_AS_UINT32 (((uint32_t)'R' << 0) | ((uint32_t)'T' << 8) | ((uint32_t)'P' << 16) | ((uint32_t)'S' << 24))
|
||||
#else
|
||||
#define NN_PROTOCOLID_AS_UINT32 (((uint32_t)'R' << 24) | ((uint32_t)'T' << 16) | ((uint32_t)'P' << 8) | ((uint32_t)'S' << 0))
|
||||
#endif
|
||||
#define NN_PROTOCOL_VERSION_INITIALIZER { RTPS_MAJOR, RTPS_MINOR }
|
||||
#define NN_VENDORID_INITIALIER MY_VENDOR_ID
|
||||
#define NN_HEADER_INITIALIZER { NN_PROTOCOLID_INITIALIZER, NN_PROTOCOL_VERSION_INITIALIZER, NN_VENDORID_INITIALIER, NN_GUID_PREFIX_UNKNOWN_INITIALIZER }
|
||||
#define RTPS_MESSAGE_HEADER_SIZE (sizeof (Header_t))
|
||||
|
||||
typedef struct SubmessageHeader {
|
||||
|
|
|
@ -13,16 +13,14 @@
|
|||
#define NN_RTPS_H
|
||||
|
||||
#include "os/os_defs.h"
|
||||
#include "ddsi/ddsi_vendor.h"
|
||||
|
||||
#if defined (__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
unsigned char id[2];
|
||||
} nn_vendorid_t;
|
||||
typedef struct {
|
||||
unsigned char major, minor;
|
||||
uint8_t major, minor;
|
||||
} nn_protocol_version_t;
|
||||
typedef union nn_guid_prefix {
|
||||
unsigned char s[12];
|
||||
|
|
24
src/core/ddsi/src/ddsi_vendor.c
Normal file
24
src/core/ddsi/src/ddsi_vendor.c
Normal file
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
* Copyright(c) 2019 ADLINK Technology Limited and others
|
||||
*
|
||||
* This program and the accompanying materials are made available under the
|
||||
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||
* v. 1.0 which is available at
|
||||
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||
*/
|
||||
#include <string.h>
|
||||
|
||||
#include "ddsi/ddsi_vendor.h"
|
||||
|
||||
extern inline bool vendor_equals (nn_vendorid_t a, nn_vendorid_t b);
|
||||
extern inline bool vendor_is_rti (nn_vendorid_t vendor);
|
||||
extern inline bool vendor_is_twinoaks (nn_vendorid_t vendor);
|
||||
extern inline bool vendor_is_prismtech (nn_vendorid_t vendor);
|
||||
extern inline bool vendor_is_opensplice (nn_vendorid_t vendor);
|
||||
extern inline bool vendor_is_cloud (nn_vendorid_t vendor);
|
||||
extern inline bool vendor_is_eclipse (nn_vendorid_t vendor);
|
||||
extern inline bool vendor_is_eclipse_or_opensplice (nn_vendorid_t vendor);
|
||||
extern inline bool vendor_is_eclipse_or_prismtech (nn_vendorid_t vendor);
|
|
@ -41,8 +41,6 @@
|
|||
#include "ddsi/q_md5.h"
|
||||
#include "ddsi/q_feature_check.h"
|
||||
|
||||
static const nn_vendorid_t ownvendorid = MY_VENDOR_ID;
|
||||
|
||||
static int get_locator (nn_locator_t *loc, const nn_locators_t *locs, int uc_same_subnet)
|
||||
{
|
||||
struct nn_locators_one *l;
|
||||
|
@ -182,7 +180,6 @@ static int write_mpayload (struct writer *wr, int alive, nn_parameterid_t keypar
|
|||
|
||||
int spdp_write (struct participant *pp)
|
||||
{
|
||||
static const nn_vendorid_t myvendorid = MY_VENDOR_ID;
|
||||
struct nn_xmsg *mpayload;
|
||||
struct nn_locators_one def_uni_loc_one, def_multi_loc_one, meta_uni_loc_one, meta_multi_loc_one;
|
||||
nn_plist_t ps;
|
||||
|
@ -220,7 +217,7 @@ int spdp_write (struct participant *pp)
|
|||
ps.builtin_endpoint_set = pp->bes;
|
||||
ps.protocol_version.major = RTPS_MAJOR;
|
||||
ps.protocol_version.minor = RTPS_MINOR;
|
||||
ps.vendorid = myvendorid;
|
||||
ps.vendorid = NN_VENDORID_ECLIPSE;
|
||||
if (pp->prismtech_bes)
|
||||
{
|
||||
ps.present |= PP_PRISMTECH_BUILTIN_ENDPOINT_SET;
|
||||
|
@ -460,7 +457,7 @@ static struct proxy_participant *find_ddsi2_proxy_participant (const nn_guid_t *
|
|||
ephash_enum_proxy_participant_init (&it);
|
||||
while ((pp = ephash_enum_proxy_participant_next (&it)) != NULL)
|
||||
{
|
||||
if (vendor_is_opensplice (pp->vendor) && pp->e.guid.prefix.u[0] == ppguid->prefix.u[0] && pp->is_ddsi2_pp)
|
||||
if (vendor_is_eclipse_or_opensplice (pp->vendor) && pp->e.guid.prefix.u[0] == ppguid->prefix.u[0] && pp->is_ddsi2_pp)
|
||||
break;
|
||||
}
|
||||
ephash_enum_proxy_participant_fini (&it);
|
||||
|
@ -478,7 +475,7 @@ static void make_participants_dependent_on_ddsi2 (const nn_guid_t *ddsi2guid, nn
|
|||
ephash_enum_proxy_participant_init (&it);
|
||||
while ((pp = ephash_enum_proxy_participant_next (&it)) != NULL)
|
||||
{
|
||||
if (vendor_is_opensplice (pp->vendor) && pp->e.guid.prefix.u[0] == ddsi2guid->prefix.u[0] && !pp->is_ddsi2_pp)
|
||||
if (vendor_is_eclipse_or_opensplice (pp->vendor) && pp->e.guid.prefix.u[0] == ddsi2guid->prefix.u[0] && !pp->is_ddsi2_pp)
|
||||
{
|
||||
DDS_TRACE("proxy participant %x:%x:%x:%x depends on ddsi2 %x:%x:%x:%x", PGUID (pp->e.guid), PGUID (*ddsi2guid));
|
||||
os_mutexLock (&pp->e.lock);
|
||||
|
@ -647,7 +644,7 @@ static int handle_SPDP_alive (const struct receiver_state *rst, nn_wctime_t time
|
|||
until the "privileged" one expires anyway */
|
||||
lease_duration = nn_to_ddsi_duration (T_NEVER);
|
||||
}
|
||||
else if (vendor_is_opensplice (rst->vendor) && !(custom_flags & CF_PARTICIPANT_IS_DDSI2))
|
||||
else if (vendor_is_eclipse_or_opensplice (rst->vendor) && !(custom_flags & CF_PARTICIPANT_IS_DDSI2))
|
||||
{
|
||||
/* Non-DDSI2 participants are made dependent on DDSI2 (but DDSI2
|
||||
itself need not be discovered yet) */
|
||||
|
@ -868,7 +865,6 @@ static int sedp_write_endpoint
|
|||
const nn_xqos_t *xqos, struct addrset *as)
|
||||
{
|
||||
const nn_xqos_t *defqos = is_writer_entityid (epguid->entityid) ? &gv.default_xqos_wr : &gv.default_xqos_rd;
|
||||
const nn_vendorid_t my_vendor_id = MY_VENDOR_ID;
|
||||
struct nn_xmsg *mpayload;
|
||||
uint64_t qosdiff;
|
||||
nn_plist_t ps;
|
||||
|
@ -898,7 +894,7 @@ static int sedp_write_endpoint
|
|||
ps.present |= PP_PROTOCOL_VERSION | PP_VENDORID;
|
||||
ps.protocol_version.major = RTPS_MAJOR;
|
||||
ps.protocol_version.minor = RTPS_MINOR;
|
||||
ps.vendorid = my_vendor_id;
|
||||
ps.vendorid = NN_VENDORID_ECLIPSE;
|
||||
|
||||
if (epcommon->group_guid.entityid.u != 0)
|
||||
{
|
||||
|
@ -959,7 +955,7 @@ static struct writer *get_sedp_writer (const struct participant *pp, unsigned en
|
|||
|
||||
int sedp_write_writer (struct writer *wr)
|
||||
{
|
||||
if ((!is_builtin_entityid(wr->e.guid.entityid, ownvendorid)) && (!wr->e.onlylocal))
|
||||
if ((!is_builtin_entityid(wr->e.guid.entityid, NN_VENDORID_ECLIPSE)) && (!wr->e.onlylocal))
|
||||
{
|
||||
struct writer *sedp_wr = get_sedp_writer (wr->c.pp, NN_ENTITYID_SEDP_BUILTIN_PUBLICATIONS_WRITER);
|
||||
#ifdef DDSI_INCLUDE_SSM
|
||||
|
@ -974,7 +970,7 @@ int sedp_write_writer (struct writer *wr)
|
|||
|
||||
int sedp_write_reader (struct reader *rd)
|
||||
{
|
||||
if ((!is_builtin_entityid (rd->e.guid.entityid, ownvendorid)) && (!rd->e.onlylocal))
|
||||
if ((!is_builtin_entityid (rd->e.guid.entityid, NN_VENDORID_ECLIPSE)) && (!rd->e.onlylocal))
|
||||
{
|
||||
struct writer *sedp_wr = get_sedp_writer (rd->c.pp, NN_ENTITYID_SEDP_BUILTIN_SUBSCRIPTIONS_WRITER);
|
||||
#ifdef DDSI_INCLUDE_NETWORK_PARTITIONS
|
||||
|
@ -989,7 +985,7 @@ int sedp_write_reader (struct reader *rd)
|
|||
|
||||
int sedp_dispose_unregister_writer (struct writer *wr)
|
||||
{
|
||||
if ((!is_builtin_entityid(wr->e.guid.entityid, ownvendorid)) && (!wr->e.onlylocal))
|
||||
if ((!is_builtin_entityid(wr->e.guid.entityid, NN_VENDORID_ECLIPSE)) && (!wr->e.onlylocal))
|
||||
{
|
||||
struct writer *sedp_wr = get_sedp_writer (wr->c.pp, NN_ENTITYID_SEDP_BUILTIN_PUBLICATIONS_WRITER);
|
||||
return sedp_write_endpoint (sedp_wr, 0, &wr->e.guid, NULL, NULL, NULL, NULL);
|
||||
|
@ -999,7 +995,7 @@ int sedp_dispose_unregister_writer (struct writer *wr)
|
|||
|
||||
int sedp_dispose_unregister_reader (struct reader *rd)
|
||||
{
|
||||
if ((!is_builtin_entityid(rd->e.guid.entityid, ownvendorid)) && (!rd->e.onlylocal))
|
||||
if ((!is_builtin_entityid(rd->e.guid.entityid, NN_VENDORID_ECLIPSE)) && (!rd->e.onlylocal))
|
||||
{
|
||||
struct writer *sedp_wr = get_sedp_writer (rd->c.pp, NN_ENTITYID_SEDP_BUILTIN_SUBSCRIPTIONS_WRITER);
|
||||
return sedp_write_endpoint (sedp_wr, 0, &rd->e.guid, NULL, NULL, NULL, NULL);
|
||||
|
@ -1058,7 +1054,7 @@ static struct proxy_participant *implicitly_create_proxypp (const nn_guid_t *ppg
|
|||
actual_vendorid = (datap->present & PP_VENDORID) ? datap->vendorid : vendorid;
|
||||
new_proxy_participant(ppguid, 0, 0, &privguid, new_addrset(), new_addrset(), &pp_plist, T_NEVER, actual_vendorid, CF_IMPLICITLY_CREATED_PROXYPP, timestamp);
|
||||
}
|
||||
else if (ppguid->prefix.u[0] == src_guid_prefix->u[0] && vendor_is_opensplice (vendorid))
|
||||
else if (ppguid->prefix.u[0] == src_guid_prefix->u[0] && vendor_is_eclipse_or_opensplice (vendorid))
|
||||
{
|
||||
/* FIXME: requires address sets to be those of ddsi2, no built-in
|
||||
readers or writers, only if remote ddsi2 is provably running
|
||||
|
@ -1148,7 +1144,7 @@ static void handle_SEDP_alive (const struct receiver_state *rst, nn_plist_t *dat
|
|||
is_writer = is_writer_entityid (datap->endpoint_guid.entityid);
|
||||
if (!is_writer)
|
||||
nn_xqos_mergein_missing (xqos, &gv.default_xqos_rd);
|
||||
else if (vendor_is_prismtech(vendorid))
|
||||
else if (vendor_is_eclipse_or_prismtech(vendorid))
|
||||
nn_xqos_mergein_missing (xqos, &gv.default_xqos_wr);
|
||||
else
|
||||
nn_xqos_mergein_missing (xqos, &gv.default_xqos_wr_nad);
|
||||
|
@ -1251,7 +1247,7 @@ static void handle_SEDP_alive (const struct receiver_state *rst, nn_plist_t *dat
|
|||
nn_log_xqos(DDS_LC_DISCOVERY, xqos);
|
||||
DDS_LOG(DDS_LC_DISCOVERY, "}\n");
|
||||
|
||||
if ((datap->endpoint_guid.entityid.u & NN_ENTITYID_SOURCE_MASK) == NN_ENTITYID_SOURCE_VENDOR && !vendor_is_prismtech (vendorid))
|
||||
if ((datap->endpoint_guid.entityid.u & NN_ENTITYID_SOURCE_MASK) == NN_ENTITYID_SOURCE_VENDOR && !vendor_is_eclipse_or_prismtech (vendorid))
|
||||
{
|
||||
DDS_LOG(DDS_LC_DISCOVERY, "ignoring vendor-specific endpoint %x:%x:%x:%x\n", PGUID (datap->endpoint_guid));
|
||||
}
|
||||
|
|
|
@ -53,7 +53,6 @@ struct deleted_participant {
|
|||
|
||||
static os_mutex deleted_participants_lock;
|
||||
static ut_avlTree_t deleted_participants;
|
||||
static const nn_vendorid_t ownvendorid = MY_VENDOR_ID;
|
||||
|
||||
static int compare_guid (const void *va, const void *vb);
|
||||
static void augment_wr_prd_match (void *vnode, const void *vleft, const void *vright);
|
||||
|
@ -140,7 +139,7 @@ int is_builtin_entityid (nn_entityid_t id, nn_vendorid_t vendorid)
|
|||
return 1;
|
||||
else if ((id.u & NN_ENTITYID_SOURCE_MASK) != NN_ENTITYID_SOURCE_VENDOR)
|
||||
return 0;
|
||||
else if (!vendor_is_prismtech (vendorid))
|
||||
else if (!vendor_is_eclipse_or_prismtech (vendorid))
|
||||
return 0;
|
||||
else
|
||||
{
|
||||
|
@ -157,7 +156,7 @@ int is_builtin_endpoint (nn_entityid_t id, nn_vendorid_t vendorid)
|
|||
bool is_local_orphan_endpoint (const struct entity_common *e)
|
||||
{
|
||||
return (e->guid.prefix.u[0] == 0 && e->guid.prefix.u[1] == 0 && e->guid.prefix.u[2] == 0 &&
|
||||
is_builtin_endpoint (e->guid.entityid, ownvendorid));
|
||||
is_builtin_endpoint (e->guid.entityid, NN_VENDORID_ECLIPSE));
|
||||
}
|
||||
|
||||
static void entity_common_init (struct entity_common *e, const struct nn_guid *guid, const char *name, enum entity_kind kind, nn_wctime_t tcreate, nn_vendorid_t vendorid, bool onlylocal)
|
||||
|
@ -247,7 +246,7 @@ nn_vendorid_t get_entity_vendorid (const struct entity_common *e)
|
|||
case EK_PARTICIPANT:
|
||||
case EK_READER:
|
||||
case EK_WRITER:
|
||||
return (nn_vendorid_t) MY_VENDOR_ID;
|
||||
return NN_VENDORID_ECLIPSE;
|
||||
case EK_PROXY_PARTICIPANT:
|
||||
return ((const struct proxy_participant *) e)->vendor;
|
||||
case EK_PROXY_READER:
|
||||
|
@ -256,7 +255,7 @@ nn_vendorid_t get_entity_vendorid (const struct entity_common *e)
|
|||
return ((const struct proxy_writer *) e)->c.vendor;
|
||||
}
|
||||
assert (0);
|
||||
return (nn_vendorid_t) NN_VENDORID_UNKNOWN;
|
||||
return NN_VENDORID_UNKNOWN;
|
||||
}
|
||||
|
||||
/* DELETED PARTICIPANTS --------------------------------------------- */
|
||||
|
@ -437,7 +436,7 @@ int new_participant_guid (const nn_guid_t *ppguid, unsigned flags, const nn_plis
|
|||
|
||||
pp = os_malloc (sizeof (*pp));
|
||||
|
||||
entity_common_init (&pp->e, ppguid, "", EK_PARTICIPANT, now (), ownvendorid, ((flags & RTPS_PF_ONLY_LOCAL) != 0));
|
||||
entity_common_init (&pp->e, ppguid, "", EK_PARTICIPANT, now (), NN_VENDORID_ECLIPSE, ((flags & RTPS_PF_ONLY_LOCAL) != 0));
|
||||
pp->user_refc = 1;
|
||||
pp->builtin_refc = 0;
|
||||
pp->builtins_deleted = 0;
|
||||
|
@ -669,7 +668,7 @@ static void delete_builtin_endpoint (const struct nn_guid *ppguid, unsigned enti
|
|||
nn_guid_t guid;
|
||||
guid.prefix = ppguid->prefix;
|
||||
guid.entityid.u = entityid;
|
||||
assert (is_builtin_entityid (to_entityid (entityid), ownvendorid));
|
||||
assert (is_builtin_entityid (to_entityid (entityid), NN_VENDORID_ECLIPSE));
|
||||
if (is_writer_entityid (to_entityid (entityid)))
|
||||
delete_writer_nolinger (&guid);
|
||||
else
|
||||
|
@ -680,7 +679,7 @@ static struct participant *ref_participant (struct participant *pp, const struct
|
|||
{
|
||||
nn_guid_t stguid;
|
||||
os_mutexLock (&pp->refc_lock);
|
||||
if (guid_of_refing_entity && is_builtin_endpoint (guid_of_refing_entity->entityid, ownvendorid))
|
||||
if (guid_of_refing_entity && is_builtin_endpoint (guid_of_refing_entity->entityid, NN_VENDORID_ECLIPSE))
|
||||
pp->builtin_refc++;
|
||||
else
|
||||
pp->user_refc++;
|
||||
|
@ -719,7 +718,7 @@ static void unref_participant (struct participant *pp, const struct nn_guid *gui
|
|||
nn_guid_t stguid;
|
||||
|
||||
os_mutexLock (&pp->refc_lock);
|
||||
if (guid_of_refing_entity && is_builtin_endpoint (guid_of_refing_entity->entityid, ownvendorid))
|
||||
if (guid_of_refing_entity && is_builtin_endpoint (guid_of_refing_entity->entityid, NN_VENDORID_ECLIPSE))
|
||||
pp->builtin_refc--;
|
||||
else
|
||||
pp->user_refc--;
|
||||
|
@ -1817,7 +1816,7 @@ static void proxy_writer_add_connection (struct proxy_writer *pwr, struct reader
|
|||
{
|
||||
m->in_sync = PRMSS_SYNC;
|
||||
}
|
||||
else if (!config.conservative_builtin_reader_startup && is_builtin_entityid (rd->e.guid.entityid, ownvendorid) && !ut_avlIsEmpty (&pwr->readers))
|
||||
else if (!config.conservative_builtin_reader_startup && is_builtin_entityid (rd->e.guid.entityid, NN_VENDORID_ECLIPSE) && !ut_avlIsEmpty (&pwr->readers))
|
||||
{
|
||||
/* builtins really don't care about multiple copies */
|
||||
m->in_sync = PRMSS_SYNC;
|
||||
|
@ -2023,7 +2022,7 @@ static void reader_qos_mismatch (struct reader * rd, uint32_t reason)
|
|||
|
||||
static void connect_writer_with_proxy_reader (struct writer *wr, struct proxy_reader *prd, nn_mtime_t tnow)
|
||||
{
|
||||
const int isb0 = (is_builtin_entityid (wr->e.guid.entityid, ownvendorid) != 0);
|
||||
const int isb0 = (is_builtin_entityid (wr->e.guid.entityid, NN_VENDORID_ECLIPSE) != 0);
|
||||
const int isb1 = (is_builtin_entityid (prd->e.guid.entityid, prd->c.vendor) != 0);
|
||||
int32_t reason;
|
||||
OS_UNUSED_ARG(tnow);
|
||||
|
@ -2043,7 +2042,7 @@ static void connect_writer_with_proxy_reader (struct writer *wr, struct proxy_re
|
|||
static void connect_proxy_writer_with_reader (struct proxy_writer *pwr, struct reader *rd, nn_mtime_t tnow)
|
||||
{
|
||||
const int isb0 = (is_builtin_entityid (pwr->e.guid.entityid, pwr->c.vendor) != 0);
|
||||
const int isb1 = (is_builtin_entityid (rd->e.guid.entityid, ownvendorid) != 0);
|
||||
const int isb1 = (is_builtin_entityid (rd->e.guid.entityid, NN_VENDORID_ECLIPSE) != 0);
|
||||
int32_t reason;
|
||||
nn_count_t init_count;
|
||||
if (isb0 != isb1)
|
||||
|
@ -2063,7 +2062,7 @@ static void connect_writer_with_reader (struct writer *wr, struct reader *rd, nn
|
|||
{
|
||||
int32_t reason;
|
||||
(void)tnow;
|
||||
if (!is_local_orphan_endpoint (&wr->e) && (is_builtin_entityid (wr->e.guid.entityid, ownvendorid) || is_builtin_entityid (rd->e.guid.entityid, ownvendorid)))
|
||||
if (!is_local_orphan_endpoint (&wr->e) && (is_builtin_entityid (wr->e.guid.entityid, NN_VENDORID_ECLIPSE) || is_builtin_entityid (rd->e.guid.entityid, NN_VENDORID_ECLIPSE)))
|
||||
return;
|
||||
if ((reason = qos_match_p (rd->xqos, wr->xqos)) >= 0)
|
||||
{
|
||||
|
@ -2231,7 +2230,7 @@ static void generic_do_match (struct entity_common *e, nn_mtime_t tnow)
|
|||
struct ephash_enum est;
|
||||
struct entity_common *em;
|
||||
enum entity_kind mkind = generic_do_match_mkind(e->kind);
|
||||
if (!is_builtin_entityid (e->guid.entityid, ownvendorid))
|
||||
if (!is_builtin_entityid (e->guid.entityid, NN_VENDORID_ECLIPSE))
|
||||
{
|
||||
DDS_LOG(DDS_LC_DISCOVERY, "match_%s_with_%ss(%s %x:%x:%x:%x) scanning all %ss\n",
|
||||
generic_do_match_kindstr_us (e->kind), generic_do_match_kindstr_us (mkind),
|
||||
|
@ -2281,7 +2280,7 @@ static void generic_do_local_match (struct entity_common *e, nn_mtime_t tnow)
|
|||
struct ephash_enum est;
|
||||
struct entity_common *em;
|
||||
enum entity_kind mkind;
|
||||
if (is_builtin_entityid (e->guid.entityid, ownvendorid) && !is_local_orphan_endpoint (e))
|
||||
if (is_builtin_entityid (e->guid.entityid, NN_VENDORID_ECLIPSE) && !is_local_orphan_endpoint (e))
|
||||
/* never a need for local matches on discovery endpoints */
|
||||
return;
|
||||
mkind = generic_do_local_match_mkind(e->kind);
|
||||
|
@ -2338,8 +2337,8 @@ static void new_reader_writer_common (const struct nn_guid *guid, const struct d
|
|||
{
|
||||
const char *partition = "(default)";
|
||||
const char *partition_suffix = "";
|
||||
assert (is_builtin_entityid (guid->entityid, ownvendorid) ? (topic == NULL) : (topic != NULL));
|
||||
if (is_builtin_entityid (guid->entityid, ownvendorid))
|
||||
assert (is_builtin_entityid (guid->entityid, NN_VENDORID_ECLIPSE) ? (topic == NULL) : (topic != NULL));
|
||||
if (is_builtin_entityid (guid->entityid, NN_VENDORID_ECLIPSE))
|
||||
{
|
||||
/* continue printing it as not being in a partition, the actual
|
||||
value doesn't matter because it is never matched based on QoS
|
||||
|
@ -2362,7 +2361,7 @@ static void new_reader_writer_common (const struct nn_guid *guid, const struct d
|
|||
|
||||
static void endpoint_common_init (struct entity_common *e, struct endpoint_common *c, enum entity_kind kind, const struct nn_guid *guid, const struct nn_guid *group_guid, struct participant *pp)
|
||||
{
|
||||
entity_common_init (e, guid, NULL, kind, now (), ownvendorid, pp->e.onlylocal);
|
||||
entity_common_init (e, guid, NULL, kind, now (), NN_VENDORID_ECLIPSE, pp->e.onlylocal);
|
||||
c->pp = ref_participant (pp, &e->guid);
|
||||
if (group_guid)
|
||||
c->group_guid = *group_guid;
|
||||
|
@ -2372,7 +2371,7 @@ static void endpoint_common_init (struct entity_common *e, struct endpoint_commo
|
|||
|
||||
static void endpoint_common_fini (struct entity_common *e, struct endpoint_common *c)
|
||||
{
|
||||
if (!is_builtin_entityid(e->guid.entityid, ownvendorid))
|
||||
if (!is_builtin_entityid(e->guid.entityid, NN_VENDORID_ECLIPSE))
|
||||
pp_release_entityid(c->pp, e->guid.entityid);
|
||||
if (c->pp)
|
||||
unref_participant (c->pp, &e->guid);
|
||||
|
@ -2627,7 +2626,7 @@ static void new_writer_guid_common_init (struct writer *wr, const struct ddsi_se
|
|||
assert (wr->xqos->present & QP_RELIABILITY);
|
||||
wr->reliable = (wr->xqos->reliability.kind != NN_BEST_EFFORT_RELIABILITY_QOS);
|
||||
assert (wr->xqos->present & QP_DURABILITY);
|
||||
if (is_builtin_entityid (wr->e.guid.entityid, ownvendorid))
|
||||
if (is_builtin_entityid (wr->e.guid.entityid, NN_VENDORID_ECLIPSE))
|
||||
{
|
||||
assert (wr->xqos->history.kind == NN_KEEP_LAST_HISTORY_QOS);
|
||||
assert (wr->xqos->durability.kind == NN_TRANSIENT_LOCAL_DURABILITY_QOS);
|
||||
|
@ -2771,7 +2770,7 @@ static void new_writer_guid_common_init (struct writer *wr, const struct ddsi_se
|
|||
wr->whc_low = config.whc_lowwater_mark;
|
||||
wr->whc_high = config.whc_init_highwater_mark.value;
|
||||
}
|
||||
assert (!is_builtin_entityid(wr->e.guid.entityid, ownvendorid) || (wr->whc_low == wr->whc_high && wr->whc_low == INT32_MAX));
|
||||
assert (!is_builtin_entityid(wr->e.guid.entityid, NN_VENDORID_ECLIPSE) || (wr->whc_low == wr->whc_high && wr->whc_low == INT32_MAX));
|
||||
|
||||
/* Connection admin */
|
||||
ut_avlInit (&wr_readers_treedef, &wr->readers);
|
||||
|
@ -2859,7 +2858,7 @@ struct local_orphan_writer *new_local_orphan_writer (nn_entityid_t entityid, str
|
|||
|
||||
memset (&guid.prefix, 0, sizeof (guid.prefix));
|
||||
guid.entityid = entityid;
|
||||
entity_common_init (&wr->e, &guid, NULL, EK_WRITER, now (), ownvendorid, true);
|
||||
entity_common_init (&wr->e, &guid, NULL, EK_WRITER, now (), NN_VENDORID_ECLIPSE, true);
|
||||
wr->c.pp = NULL;
|
||||
memset (&wr->c.group_guid, 0, sizeof (wr->c.group_guid));
|
||||
new_writer_guid_common_init (wr, topic, xqos, whc, 0, NULL);
|
||||
|
@ -2905,7 +2904,7 @@ static void gc_delete_writer (struct gcreq *gcreq)
|
|||
}
|
||||
|
||||
/* Do last gasp on SEDP and free writer. */
|
||||
if (!is_builtin_entityid (wr->e.guid.entityid, ownvendorid))
|
||||
if (!is_builtin_entityid (wr->e.guid.entityid, NN_VENDORID_ECLIPSE))
|
||||
sedp_dispose_unregister_writer (wr);
|
||||
if (wr->status_cb)
|
||||
{
|
||||
|
@ -3223,7 +3222,7 @@ static struct reader * new_reader_guid
|
|||
#endif
|
||||
if (topic == NULL)
|
||||
{
|
||||
assert (is_builtin_entityid (rd->e.guid.entityid, ownvendorid));
|
||||
assert (is_builtin_entityid (rd->e.guid.entityid, NN_VENDORID_ECLIPSE));
|
||||
}
|
||||
rd->status_cb = status_cb;
|
||||
rd->status_cb_entity = status_entity;
|
||||
|
@ -3353,7 +3352,7 @@ static void gc_delete_reader (struct gcreq *gcreq)
|
|||
free_rd_wr_match (m);
|
||||
}
|
||||
|
||||
if (!is_builtin_entityid (rd->e.guid.entityid, ownvendorid))
|
||||
if (!is_builtin_entityid (rd->e.guid.entityid, NN_VENDORID_ECLIPSE))
|
||||
sedp_dispose_unregister_reader (rd);
|
||||
#ifdef DDSI_INCLUDE_NETWORK_PARTITIONS
|
||||
addrset_forall (rd->as, leave_mcast_helper, gv.data_conn_mc);
|
||||
|
@ -3542,7 +3541,7 @@ void new_proxy_participant
|
|||
/* Non-PrismTech doesn't implement the PT extensions and therefore won't generate
|
||||
a CMParticipant; if a PT peer does not implement a CMParticipant writer, then it
|
||||
presumably also is a handicapped implementation (perhaps simply an old one) */
|
||||
if (!vendor_is_prismtech(proxypp->vendor) ||
|
||||
if (!vendor_is_eclipse_or_prismtech(proxypp->vendor) ||
|
||||
(proxypp->bes != 0 && !(proxypp->prismtech_bes & NN_DISC_BUILTIN_ENDPOINT_CM_PARTICIPANT_WRITER)))
|
||||
proxypp->proxypp_have_cm = 1;
|
||||
else
|
||||
|
|
|
@ -1499,7 +1499,6 @@ void rtps_stop (void)
|
|||
}
|
||||
|
||||
{
|
||||
const nn_vendorid_t ownvendorid = MY_VENDOR_ID;
|
||||
struct ephash_enum_writer est_wr;
|
||||
struct ephash_enum_reader est_rd;
|
||||
struct ephash_enum_participant est_pp;
|
||||
|
@ -1515,7 +1514,7 @@ void rtps_stop (void)
|
|||
ephash_enum_writer_init (&est_wr);
|
||||
while ((wr = ephash_enum_writer_next (&est_wr)) != NULL)
|
||||
{
|
||||
if (!is_builtin_entityid (wr->e.guid.entityid, ownvendorid))
|
||||
if (!is_builtin_entityid (wr->e.guid.entityid, NN_VENDORID_ECLIPSE))
|
||||
delete_writer_nolinger (&wr->e.guid);
|
||||
}
|
||||
ephash_enum_writer_fini (&est_wr);
|
||||
|
@ -1523,7 +1522,7 @@ void rtps_stop (void)
|
|||
ephash_enum_reader_init (&est_rd);
|
||||
while ((rd = ephash_enum_reader_next (&est_rd)) != NULL)
|
||||
{
|
||||
if (!is_builtin_entityid (rd->e.guid.entityid, ownvendorid))
|
||||
if (!is_builtin_entityid (rd->e.guid.entityid, NN_VENDORID_ECLIPSE))
|
||||
(void)delete_reader (&rd->e.guid);
|
||||
}
|
||||
ephash_enum_reader_fini (&est_rd);
|
||||
|
|
|
@ -15,71 +15,8 @@
|
|||
#include "ddsi/q_bswap.h"
|
||||
#include "ddsi/q_md5.h"
|
||||
|
||||
int vendor_is_rti (nn_vendorid_t vendor)
|
||||
{
|
||||
const nn_vendorid_t rti = NN_VENDORID_RTI;
|
||||
return vendor.id[0] == rti.id[0] && vendor.id[1] == rti.id[1];
|
||||
}
|
||||
|
||||
int vendor_is_twinoaks (nn_vendorid_t vendor)
|
||||
{
|
||||
const nn_vendorid_t twinoaks = NN_VENDORID_TWINOAKS;
|
||||
return vendor.id[0] == twinoaks.id[0] && vendor.id[1] == twinoaks.id[1];
|
||||
}
|
||||
|
||||
int vendor_is_cloud (nn_vendorid_t vendor)
|
||||
{
|
||||
const nn_vendorid_t cloud = NN_VENDORID_PRISMTECH_CLOUD;
|
||||
return vendor.id[0] == cloud.id[0] && vendor.id[1] == cloud.id[1];
|
||||
}
|
||||
|
||||
int vendor_is_prismtech (nn_vendorid_t vid)
|
||||
{
|
||||
const nn_vendorid_t pt1 = NN_VENDORID_PRISMTECH_OSPL;
|
||||
const nn_vendorid_t pt2 = NN_VENDORID_PRISMTECH_LITE;
|
||||
const nn_vendorid_t pt3 = NN_VENDORID_PRISMTECH_GATEWAY;
|
||||
const nn_vendorid_t pt4 = NN_VENDORID_PRISMTECH_JAVA;
|
||||
const nn_vendorid_t pt5 = NN_VENDORID_PRISMTECH_CLOUD;
|
||||
const nn_vendorid_t pt6 = NN_VENDORID_ECLIPSE_CYCLONEDDS;
|
||||
|
||||
return
|
||||
(vid.id[0] == pt1.id[0]) &&
|
||||
((vid.id[1] == pt1.id[1]) || (vid.id[1] == pt2.id[1])
|
||||
|| (vid.id[1] == pt3.id[1]) || (vid.id[1] == pt4.id[1])
|
||||
|| (vid.id[1] == pt5.id[1]) || (vid.id[1] == pt6.id[1]));
|
||||
}
|
||||
|
||||
int vendor_is_opensplice (nn_vendorid_t vid)
|
||||
{
|
||||
const nn_vendorid_t pt1 = NN_VENDORID_PRISMTECH_OSPL;
|
||||
return (vid.id[0] == pt1.id[0] && vid.id[1] == pt1.id[1]);
|
||||
}
|
||||
|
||||
int vendor_is_lite (nn_vendorid_t vid)
|
||||
{
|
||||
const nn_vendorid_t pt1 = NN_VENDORID_PRISMTECH_LITE;
|
||||
return (vid.id[0] == pt1.id[0] && vid.id[1] == pt1.id[1]);
|
||||
}
|
||||
|
||||
int is_own_vendor (nn_vendorid_t vendor)
|
||||
{
|
||||
const nn_vendorid_t ownid = MY_VENDOR_ID;
|
||||
return vendor.id[0] == ownid.id[0] && vendor.id[1] == ownid.id[1];
|
||||
}
|
||||
|
||||
|
||||
seqno_t fromSN (const nn_sequence_number_t sn)
|
||||
{
|
||||
return ((seqno_t) sn.high << 32) | sn.low;
|
||||
}
|
||||
|
||||
nn_sequence_number_t toSN (seqno_t n)
|
||||
{
|
||||
nn_sequence_number_t x;
|
||||
x.high = (int) (n >> 32);
|
||||
x.low = (unsigned) n;
|
||||
return x;
|
||||
}
|
||||
extern inline seqno_t fromSN (const nn_sequence_number_t sn);
|
||||
extern inline nn_sequence_number_t toSN (seqno_t n);
|
||||
|
||||
#ifdef DDSI_INCLUDE_NETWORK_PARTITIONS
|
||||
int WildcardOverlap(char * p1, char * p2)
|
||||
|
|
|
@ -82,8 +82,7 @@ static size_t align4u (size_t x)
|
|||
|
||||
static int protocol_version_is_newer (nn_protocol_version_t pv)
|
||||
{
|
||||
const nn_protocol_version_t mv = NN_PROTOCOL_VERSION_INITIALIZER;
|
||||
return (pv.major < mv.major) ? 0 : (pv.major > mv.major) ? 1 : (pv.minor > mv.minor);
|
||||
return (pv.major < RTPS_MAJOR) ? 0 : (pv.major > RTPS_MAJOR) ? 1 : (pv.minor > RTPS_MINOR);
|
||||
}
|
||||
|
||||
static int validate_string (const struct dd *dd, size_t *len)
|
||||
|
@ -1819,10 +1818,7 @@ static int valid_endpoint_guid (const nn_guid_t *g, const struct dd *dd)
|
|||
}
|
||||
}
|
||||
case NN_ENTITYID_SOURCE_VENDOR:
|
||||
/* vendor specific: always ok, unless vendor is PrismTech, 'cos
|
||||
we don't do that! (FIXME, might be worthwhile to be less
|
||||
strict, or add an implementation version number here) */
|
||||
if (!is_own_vendor (dd->vendorid) || protocol_version_is_newer (dd->protocol_version))
|
||||
if (!vendor_is_eclipse (dd->vendorid))
|
||||
return 0;
|
||||
else
|
||||
{
|
||||
|
@ -1840,7 +1836,7 @@ static int valid_endpoint_guid (const nn_guid_t *g, const struct dd *dd)
|
|||
return 0;
|
||||
else
|
||||
{
|
||||
DDS_TRACE("plist/valid_endpoint_guid[src=VENDOR,proto=%u.%u]: invalid entityid (%x)\n",
|
||||
DDS_TRACE("plist/valid_endpoint_guid[src=VENDOR,proto=%u.%u]: unexpected entityid (%x)\n",
|
||||
dd->protocol_version.major, dd->protocol_version.minor, g->entityid.u);
|
||||
return 0;
|
||||
}
|
||||
|
@ -1891,7 +1887,7 @@ static void bswap_prismtech_participant_version_info (nn_prismtech_participant_v
|
|||
|
||||
static int do_prismtech_participant_version_info (nn_prismtech_participant_version_info_t *pvi, uint64_t *present, uint64_t *aliased, const struct dd *dd)
|
||||
{
|
||||
if (!vendor_is_prismtech (dd->vendorid))
|
||||
if (!vendor_is_eclipse_or_prismtech (dd->vendorid))
|
||||
return 0;
|
||||
else if (dd->bufsz < NN_PRISMTECH_PARTICIPANT_VERSION_INFO_FIXED_CDRSIZE)
|
||||
{
|
||||
|
@ -2230,7 +2226,7 @@ static int init_one_parameter
|
|||
case PID_PRISMTECH_READER_DATA_LIFECYCLE: /* PrismTech specific */
|
||||
{
|
||||
int ret;
|
||||
if (!vendor_is_prismtech (dd->vendorid))
|
||||
if (!vendor_is_eclipse_or_prismtech (dd->vendorid))
|
||||
return 0;
|
||||
if (dd->bufsz >= sizeof (nn_reader_data_lifecycle_qospolicy_t))
|
||||
ret = do_reader_data_lifecycle_v1 (&dest->qos.reader_data_lifecycle, dd);
|
||||
|
@ -2246,7 +2242,7 @@ static int init_one_parameter
|
|||
return ret;
|
||||
}
|
||||
case PID_PRISMTECH_WRITER_DATA_LIFECYCLE: /* PrismTech specific */
|
||||
if (!vendor_is_prismtech (dd->vendorid))
|
||||
if (!vendor_is_eclipse_or_prismtech (dd->vendorid))
|
||||
return 0;
|
||||
else
|
||||
{
|
||||
|
@ -2288,7 +2284,7 @@ static int init_one_parameter
|
|||
}
|
||||
|
||||
case PID_PRISMTECH_RELAXED_QOS_MATCHING:
|
||||
if (!vendor_is_prismtech (dd->vendorid))
|
||||
if (!vendor_is_eclipse_or_prismtech (dd->vendorid))
|
||||
return 0;
|
||||
else if (dd->bufsz < sizeof (dest->qos.relaxed_qos_matching))
|
||||
{
|
||||
|
@ -2309,7 +2305,7 @@ static int init_one_parameter
|
|||
}
|
||||
|
||||
case PID_PRISMTECH_SYNCHRONOUS_ENDPOINT: /* PrismTech specific */
|
||||
if (!vendor_is_prismtech (dd->vendorid))
|
||||
if (!vendor_is_eclipse_or_prismtech (dd->vendorid))
|
||||
return 0;
|
||||
else if (dd->bufsz < sizeof (dest->qos.synchronous_endpoint))
|
||||
{
|
||||
|
@ -2492,7 +2488,7 @@ static int init_one_parameter
|
|||
return 0;
|
||||
|
||||
case PID_PRISMTECH_BUILTIN_ENDPOINT_SET:
|
||||
if (!vendor_is_prismtech (dd->vendorid))
|
||||
if (!vendor_is_eclipse_or_prismtech (dd->vendorid))
|
||||
return 0;
|
||||
else if (dd->bufsz < sizeof (dest->prismtech_builtin_endpoint_set))
|
||||
{
|
||||
|
@ -2545,7 +2541,7 @@ static int init_one_parameter
|
|||
}
|
||||
/* Clear all bits we don't understand, then add the extended bits if present */
|
||||
dest->statusinfo &= NN_STATUSINFO_STANDARDIZED;
|
||||
if (dd->bufsz >= 2 * sizeof (dest->statusinfo) && vendor_is_opensplice(dd->vendorid))
|
||||
if (dd->bufsz >= 2 * sizeof (dest->statusinfo) && vendor_is_eclipse_or_opensplice(dd->vendorid))
|
||||
{
|
||||
uint32_t statusinfox;
|
||||
Q_STATIC_ASSERT_CODE (sizeof(statusinfox) == sizeof(dest->statusinfo));
|
||||
|
@ -2603,7 +2599,7 @@ static int init_one_parameter
|
|||
return do_guid (&dest->endpoint_guid, &dest->present, PP_ENDPOINT_GUID, valid_endpoint_guid, dd);
|
||||
|
||||
case PID_PRISMTECH_ENDPOINT_GUID: /* case PID_RTI_TYPECODE: */
|
||||
if (vendor_is_prismtech (dd->vendorid))
|
||||
if (vendor_is_eclipse_or_prismtech (dd->vendorid))
|
||||
{
|
||||
/* PrismTech specific variant of ENDPOINT_GUID, for strict compliancy */
|
||||
return do_guid (&dest->endpoint_guid, &dest->present, PP_ENDPOINT_GUID, valid_endpoint_guid, dd);
|
||||
|
@ -2624,33 +2620,33 @@ static int init_one_parameter
|
|||
return do_prismtech_participant_version_info(&dest->prismtech_participant_version_info, &dest->present, &dest->aliased, dd);
|
||||
|
||||
case PID_PRISMTECH_SUBSCRIPTION_KEYS:
|
||||
if (!vendor_is_prismtech (dd->vendorid))
|
||||
if (!vendor_is_eclipse_or_prismtech (dd->vendorid))
|
||||
return 0;
|
||||
return do_subscription_keys_qospolicy (&dest->qos.subscription_keys, &dest->qos.present, &dest->qos.aliased, QP_PRISMTECH_SUBSCRIPTION_KEYS, dd);
|
||||
|
||||
case PID_PRISMTECH_READER_LIFESPAN:
|
||||
if (!vendor_is_prismtech (dd->vendorid))
|
||||
if (!vendor_is_eclipse_or_prismtech (dd->vendorid))
|
||||
return 0;
|
||||
return do_reader_lifespan_qospolicy (&dest->qos.reader_lifespan, &dest->qos.present, QP_PRISMTECH_READER_LIFESPAN, dd);
|
||||
|
||||
|
||||
case PID_PRISMTECH_ENTITY_FACTORY:
|
||||
if (!vendor_is_prismtech (dd->vendorid))
|
||||
if (!vendor_is_eclipse_or_prismtech (dd->vendorid))
|
||||
return 0;
|
||||
return do_entity_factory_qospolicy (&dest->qos.entity_factory, &dest->qos.present, QP_PRISMTECH_ENTITY_FACTORY, dd);
|
||||
|
||||
case PID_PRISMTECH_NODE_NAME:
|
||||
if (!vendor_is_prismtech (dd->vendorid))
|
||||
if (!vendor_is_eclipse_or_prismtech (dd->vendorid))
|
||||
return 0;
|
||||
return do_string (&dest->node_name, &dest->present, &dest->aliased, pwanted, PP_PRISMTECH_NODE_NAME, dd);
|
||||
|
||||
case PID_PRISMTECH_EXEC_NAME:
|
||||
if (!vendor_is_prismtech (dd->vendorid))
|
||||
if (!vendor_is_eclipse_or_prismtech (dd->vendorid))
|
||||
return 0;
|
||||
return do_string (&dest->exec_name, &dest->present, &dest->aliased, pwanted, PP_PRISMTECH_EXEC_NAME, dd);
|
||||
|
||||
case PID_PRISMTECH_SERVICE_TYPE:
|
||||
if (!vendor_is_prismtech (dd->vendorid))
|
||||
if (!vendor_is_eclipse_or_prismtech (dd->vendorid))
|
||||
return 0;
|
||||
if (dd->bufsz < sizeof (dest->service_type))
|
||||
{
|
||||
|
@ -2664,7 +2660,7 @@ static int init_one_parameter
|
|||
return 0;
|
||||
|
||||
case PID_PRISMTECH_PROCESS_ID:
|
||||
if (!vendor_is_prismtech (dd->vendorid))
|
||||
if (!vendor_is_eclipse_or_prismtech (dd->vendorid))
|
||||
return 0;
|
||||
if (dd->bufsz < sizeof (dest->process_id))
|
||||
{
|
||||
|
@ -2678,12 +2674,12 @@ static int init_one_parameter
|
|||
return 0;
|
||||
|
||||
case PID_PRISMTECH_TYPE_DESCRIPTION:
|
||||
if (!vendor_is_prismtech (dd->vendorid))
|
||||
if (!vendor_is_eclipse_or_prismtech (dd->vendorid))
|
||||
return 0;
|
||||
return do_string (&dest->type_description, &dest->present, &dest->aliased, pwanted, PP_PRISMTECH_TYPE_DESCRIPTION, dd);
|
||||
|
||||
case PID_PRISMTECH_EOTINFO:
|
||||
if (!vendor_is_opensplice (dd->vendorid))
|
||||
if (!vendor_is_eclipse_or_opensplice (dd->vendorid))
|
||||
return 0;
|
||||
else if (dd->bufsz < 2*sizeof (uint32_t))
|
||||
{
|
||||
|
@ -3135,7 +3131,7 @@ unsigned char *nn_plist_quickscan (struct nn_rsample_info *dest, const struct nn
|
|||
else
|
||||
{
|
||||
unsigned stinfo = fromBE4u (*((unsigned *) pl));
|
||||
unsigned stinfox = (length < 8 || !vendor_is_opensplice(src->vendorid)) ? 0 : fromBE4u (*((unsigned *) pl + 1));
|
||||
unsigned stinfox = (length < 8 || !vendor_is_eclipse_or_opensplice(src->vendorid)) ? 0 : fromBE4u (*((unsigned *) pl + 1));
|
||||
#if (NN_STATUSINFO_DISPOSE | NN_STATUSINFO_UNREGISTER) != 3
|
||||
#error "expected dispose/unregister to be in lowest 2 bits"
|
||||
#endif
|
||||
|
|
|
@ -2837,7 +2837,7 @@ static int handle_submsg_sequence
|
|||
break;
|
||||
|
||||
case SMID_PT_INFO_CONTAINER:
|
||||
if (is_own_vendor (rst->vendor) || vendor_is_lite(rst->vendor))
|
||||
if (vendor_is_eclipse_or_prismtech (rst->vendor))
|
||||
{
|
||||
state = "parse:pt_info_container";
|
||||
DDS_TRACE("PT_INFO_CONTAINER(");
|
||||
|
@ -2898,7 +2898,7 @@ static int handle_submsg_sequence
|
|||
rst->protocol_version.minor < RTPS_MINOR_MINIMUM))
|
||||
goto malformed;
|
||||
}
|
||||
else if (is_own_vendor (rst->vendor))
|
||||
else if (vendor_is_eclipse (rst->vendor))
|
||||
{
|
||||
/* One wouldn't expect undefined stuff from ourselves,
|
||||
except that we need to be up- and backwards compatible
|
||||
|
|
|
@ -953,13 +953,10 @@ static os_result throttle_writer (struct nn_xpack *xp, struct writer *wr)
|
|||
whc_get_state(wr->whc, &whcst);
|
||||
|
||||
{
|
||||
#ifndef NDEBUG
|
||||
nn_vendorid_t ownvendorid = MY_VENDOR_ID;
|
||||
#endif
|
||||
ASSERT_MUTEX_HELD (&wr->e.lock);
|
||||
assert (wr->throttling == 0);
|
||||
assert (vtime_awake_p (lookup_thread_state ()->vtime));
|
||||
assert (!is_builtin_entityid(wr->e.guid.entityid, ownvendorid));
|
||||
assert (!is_builtin_entityid(wr->e.guid.entityid, NN_VENDORID_ECLIPSE));
|
||||
}
|
||||
|
||||
DDS_LOG(DDS_LC_THROTTLE, "writer %x:%x:%x:%x waiting for whc to shrink below low-water mark (whc %"PRIuSIZE" low=%u high=%u)\n", PGUID (wr->e.guid), whcst.unacked_bytes, wr->whc_low, wr->whc_high);
|
||||
|
|
|
@ -288,7 +288,6 @@ static void nn_xmsg_reinit (struct nn_xmsg *m, enum nn_xmsg_kind kind)
|
|||
|
||||
static struct nn_xmsg *nn_xmsg_allocnew (struct nn_xmsgpool *pool, size_t expected_size, enum nn_xmsg_kind kind)
|
||||
{
|
||||
const nn_vendorid_t myvendorid = MY_VENDOR_ID;
|
||||
struct nn_xmsg *m;
|
||||
struct nn_xmsg_data *d;
|
||||
|
||||
|
@ -312,7 +311,7 @@ static struct nn_xmsg *nn_xmsg_allocnew (struct nn_xmsgpool *pool, size_t expect
|
|||
d->src.unused = 0;
|
||||
d->src.version.major = RTPS_MAJOR;
|
||||
d->src.version.minor = RTPS_MINOR;
|
||||
d->src.vendorid = myvendorid;
|
||||
d->src.vendorid = NN_VENDORID_ECLIPSE;
|
||||
d->dst.smhdr.submessageId = SMID_INFO_DST;
|
||||
d->dst.smhdr.flags = (PLATFORM_IS_LITTLE_ENDIAN ? SMFLAG_ENDIANNESS : 0);
|
||||
d->dst.smhdr.octetsToNextHeader = sizeof (d->dst.guid_prefix);
|
||||
|
@ -1239,7 +1238,6 @@ static void nn_xpack_reinit (struct nn_xpack *xp)
|
|||
|
||||
struct nn_xpack * nn_xpack_new (ddsi_tran_conn_t conn, uint32_t bw_limit, bool async_mode)
|
||||
{
|
||||
const nn_vendorid_t myvendorid = MY_VENDOR_ID;
|
||||
struct nn_xpack *xp;
|
||||
|
||||
/* Disallow setting async_mode if not configured to enable async mode: this way we
|
||||
|
@ -1257,7 +1255,7 @@ struct nn_xpack * nn_xpack_new (ddsi_tran_conn_t conn, uint32_t bw_limit, bool a
|
|||
xp->hdr.protocol.id[3] = 'S';
|
||||
xp->hdr.version.major = RTPS_MAJOR;
|
||||
xp->hdr.version.minor = RTPS_MINOR;
|
||||
xp->hdr.vendorid = myvendorid;
|
||||
xp->hdr.vendorid = NN_VENDORID_ECLIPSE;
|
||||
|
||||
/* MSG_LEN first sub message for stream based connections */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue