@Override
    @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
    public final void createLowerTransportControlPDU(@NonNull final ControlMessage message) {
        switch (message.getPduType()) {
            case MeshManagerApi.PDU_TYPE_PROXY_CONFIGURATION:
                final SparseArray<byte[]> lowerTransportControlPduArray = new SparseArray<>();
                lowerTransportControlPduArray.put(0, message.getTransportControlPdu());
                message.setLowerTransportControlPdu(lowerTransportControlPduArray);
                break;
            case MeshManagerApi.PDU_TYPE_NETWORK:
                final byte[] transportControlPdu = message.getTransportControlPdu();
                if (transportControlPdu.length <= MAX_UNSEGMENTED_CONTROL_PAYLOAD_LENGTH) {
                    MeshLogger.verbose(TAG, "Creating unsegmented transport control");
                    createUnsegmentedControlMessage(message);
                } else {
                    MeshLogger.verbose(TAG, "Creating segmented transport control");
                    createSegmentedControlMessage(message);
                }
        }
    }
Creates the network layer pdu

@param message message with underlying data
@return Complete pdu message that is ready to be sent
mesh/src/main/java/no/nordicsemi/android/mesh/transport/LowerTransportLayer.java