From 4d0c626c1dd4c2e05bfec3b9564ae2da222ac660 Mon Sep 17 00:00:00 2001 From: Steve Karg Date: Wed, 29 Jan 2025 15:28:35 -0600 Subject: [PATCH] Fixed IPv6 handler to ignore original-broadcast when regiistered as a foreign-device (#898) --- src/bacnet/basic/bbmd6/h_bbmd6.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/bacnet/basic/bbmd6/h_bbmd6.c b/src/bacnet/basic/bbmd6/h_bbmd6.c index cfa5fd40..c9931e4b 100644 --- a/src/bacnet/basic/bbmd6/h_bbmd6.c +++ b/src/bacnet/basic/bbmd6/h_bbmd6.c @@ -735,9 +735,11 @@ int bvlc6_bbmd_disabled_handler( break; case BVLC6_ORIGINAL_BROADCAST_NPDU: PRINTF("BIP6: Received Original-Broadcast-NPDU.\n"); - if (bbmd6_address_match_self(addr)) { - /* ignore messages from my IPv6 address */ - PRINTF("BIP6: Original-Broadcast-NPDU is me!\n"); + if (Remote_BBMD.port) { + PRINTF("BIP6: Ignore Original-Broadcast-NPDU when " + "registered as a foreign device.\n"); + } else if (bbmd6_address_match_self(addr)) { + PRINTF("BIP6: Ignore Original-Broadcast-NPDU from self!\n"); } else { function_len = bvlc6_decode_original_broadcast( pdu, pdu_len, &vmac_src, NULL, 0, &npdu_len); @@ -912,6 +914,11 @@ int bvlc6_bbmd_enabled_handler( break; case BVLC6_ORIGINAL_BROADCAST_NPDU: PRINTF("BIP6: Received Original-Broadcast-NPDU.\n"); + if (Remote_BBMD.port) { + PRINTF("BIP6: Ignore Original-Broadcast-NPDU when " + "registered as a foreign device.\n"); + break; + } function_len = bvlc6_decode_original_broadcast( pdu, pdu_len, &vmac_src, NULL, 0, &npdu_len); if (function_len) {