In stack code: (STM32Cube_FW_WL_V1.2.0 based on LoRaMac-node)
if (mcpsIndication->Multicast == 1) {
// Message received on a multicast address
// Check McGroupBitMask
uint8_t groupId = LoRaMacMcChannelGetGroupId(mcpsIndication->DevAddress);
if ((groupId == 0xFF) ||
((FragSessionData[fragIndex].FragGroupData.FragSession.Fields.McGroupBitMask & (1 << groupId)) == 0)) {
// Ignore message
cmdIndex = mcpsIndication->BufferSize;
break;
}
}
My groupId was 0 but apparently required a bit to be set in McGroupBitMask. To make it work for my case, I added McGroupBitMask to the fragmentation session setup in fuota.go.
FragSession: fragmentation.FragSessionSetupReqPayloadFragSession{
FragIndex: d.opts.FragmentationSessionIndex,
McGroupBitMask: [4]bool{true, false, false, false}, // assume groupId to be 0 :)
},
In stack code: (STM32Cube_FW_WL_V1.2.0 based on LoRaMac-node)
My groupId was 0 but apparently required a bit to be set in McGroupBitMask. To make it work for my case, I added McGroupBitMask to the fragmentation session setup in fuota.go.