Fixed IPv6 handler to ignore original-broadcast when regiistered as a foreign-device (#898)

This commit is contained in:
Steve Karg
2025-01-29 15:28:35 -06:00
committed by GitHub
parent d4a32171b7
commit 4d0c626c1d
+10 -3
View File
@@ -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) {