diff --git a/src/core/ddsi/CMakeLists.txt b/src/core/ddsi/CMakeLists.txt index 077a422..74d2421 100644 --- a/src/core/ddsi/CMakeLists.txt +++ b/src/core/ddsi/CMakeLists.txt @@ -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 diff --git a/src/core/ddsi/include/ddsi/ddsi_vendor.h b/src/core/ddsi/include/ddsi/ddsi_vendor.h new file mode 100644 index 0000000..a8f9953 --- /dev/null +++ b/src/core/ddsi/include/ddsi/ddsi_vendor.h @@ -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 +#include + +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 */ diff --git a/src/core/ddsi/include/ddsi/q_misc.h b/src/core/ddsi/include/ddsi/q_misc.h index 37a44b3..912ccb0 100644 --- a/src/core/ddsi/include/ddsi/q_misc.h +++ b/src/core/ddsi/include/ddsi/q_misc.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) diff --git a/src/core/ddsi/include/ddsi/q_protocol.h b/src/core/ddsi/include/ddsi/q_protocol.h index 209719a..a29e19f 100644 --- a/src/core/ddsi/include/ddsi/q_protocol.h +++ b/src/core/ddsi/include/ddsi/q_protocol.h @@ -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 { diff --git a/src/core/ddsi/include/ddsi/q_rtps.h b/src/core/ddsi/include/ddsi/q_rtps.h index eea7cf9..561e284 100644 --- a/src/core/ddsi/include/ddsi/q_rtps.h +++ b/src/core/ddsi/include/ddsi/q_rtps.h @@ -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]; diff --git a/src/core/ddsi/src/ddsi_vendor.c b/src/core/ddsi/src/ddsi_vendor.c new file mode 100644 index 0000000..ddde0fd --- /dev/null +++ b/src/core/ddsi/src/ddsi_vendor.c @@ -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 + +#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); diff --git a/src/core/ddsi/src/q_ddsi_discovery.c b/src/core/ddsi/src/q_ddsi_discovery.c index d596422..f089142 100644 --- a/src/core/ddsi/src/q_ddsi_discovery.c +++ b/src/core/ddsi/src/q_ddsi_discovery.c @@ -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)); } diff --git a/src/core/ddsi/src/q_entity.c b/src/core/ddsi/src/q_entity.c index c78c486..755389b 100644 --- a/src/core/ddsi/src/q_entity.c +++ b/src/core/ddsi/src/q_entity.c @@ -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 diff --git a/src/core/ddsi/src/q_init.c b/src/core/ddsi/src/q_init.c index 4baddd2..892369d 100644 --- a/src/core/ddsi/src/q_init.c +++ b/src/core/ddsi/src/q_init.c @@ -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); diff --git a/src/core/ddsi/src/q_misc.c b/src/core/ddsi/src/q_misc.c index a689c5a..2412962 100644 --- a/src/core/ddsi/src/q_misc.c +++ b/src/core/ddsi/src/q_misc.c @@ -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) diff --git a/src/core/ddsi/src/q_plist.c b/src/core/ddsi/src/q_plist.c index 87938f0..f5277b8 100644 --- a/src/core/ddsi/src/q_plist.c +++ b/src/core/ddsi/src/q_plist.c @@ -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 diff --git a/src/core/ddsi/src/q_receive.c b/src/core/ddsi/src/q_receive.c index 7a2cd8f..8ce3321 100644 --- a/src/core/ddsi/src/q_receive.c +++ b/src/core/ddsi/src/q_receive.c @@ -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 diff --git a/src/core/ddsi/src/q_transmit.c b/src/core/ddsi/src/q_transmit.c index 28ebdc9..4d81d84 100644 --- a/src/core/ddsi/src/q_transmit.c +++ b/src/core/ddsi/src/q_transmit.c @@ -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); diff --git a/src/core/ddsi/src/q_xmsg.c b/src/core/ddsi/src/q_xmsg.c index 5d1e95c..9946ed3 100644 --- a/src/core/ddsi/src/q_xmsg.c +++ b/src/core/ddsi/src/q_xmsg.c @@ -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 */