code: def generate(self):
          
          tar_bytes = BytesIO()
          tar = tarfile.open(fileobj=tar_bytes, mode='w')
          self._generate_contents(tar)
          self._process_files(tar)
          tar.close()
          tar_bytes.seek(0)  # set pointer to beginning of stream
          # `mtime` parameter of gzip file must be 0, otherwise any checksum operation
          # would return a different digest even when content is the same.
          # to achieve this we must use the python `gzip` library because the `tarfile`
          # library does not seem to offer the possibility to modify the gzip `mtime`.
          gzip_bytes = BytesIO()
          gz = gzip.GzipFile(fileobj=gzip_bytes, mode='wb', mtime=0)
          gz.write(tar_bytes.getvalue())
          gz.close()
          gzip_bytes.seek(0)  # set pointer to beginning of stream
          return gzip_bytes
docs: Returns a ``BytesIO`` instance representing an in-memory tar.gz archive
          containing the native router configuration.
  
          :returns: in-memory tar.gz archive, instance of ``BytesIO``