docs: def svgdump(self, filename=None, **kargs):
          """
          svgdump(filename=None, layer_shift=0, rebuild=1)
  
          Creates an SVG file describing a packet. If filename is not provided a
          temporary file is created and gs is called.
  
          :param filename: the file's filename
          """
          from scapy.config import conf
          from scapy.utils import get_temp_file, ContextManagerSubprocess
          canvas = self.canvas_dump(**kargs)
          if filename is None:
              fname = get_temp_file(autoext=kargs.get("suffix", ".svg"))
              canvas.writeSVGfile(fname)
              if WINDOWS and conf.prog.svgreader is None:
                  os.startfile(fname)
              else:
                  with ContextManagerSubprocess("svgdump()",
                                                conf.prog.svgreader):
                      subprocess.Popen([conf.prog.svgreader, fname])
          else:
              canvas.writeSVGfile(filename)
          print()