 inline bool decodeAndHandleSecureFrame(volatile const uint8_t * const msg)
 {
     // Create a workspace for large stack consuming items ahead of time, in order to improve stack usage visibility.
-    constexpr size_t workspaceSize = OTAESGCM::OTAES128GCMGenericWithWorkspace<>::workspaceRequiredDec + 16 + 58;
-    uint8_t workspace[workspaceSize];
-    OTV0P2BASE::ScratchSpaceL sW(workspace, sizeof(workspace));
+    OTV0P2BASE::ScratchSpaceL sW(globalWorkSpace.decode, sizeof(globalWorkSpace.decode));
     // Temporarily suspend PrimaryRadio interrupts to avoid stack collisions.
     PrimaryRadio.pauseInterrupts(true);
     const bool success = OTRadioLink::decodeAndHandleOTSecureOFrameWithWorkspace<

  }


/**
 * @brief   Wrapper function for secure frame decode/handle callback.
 * @param   msg: Raw RXed message. msgLen should be stored in the byte before

                                    decodeAndHandleSecureFrame, OTRadioLink::decodeAndHandleDummyFrame  // only interested in single frame type.
                                   > messageQueue;


// Do bare stats transmission.
// Output should be filtered for items appropriate
// to current channel security and sensitivity level.
