docs: def _show_or_dump(self, dump=False, indent=3,
                        lvl="", label_lvl="", first_call=True):
          """ Reproduced from packet.py """
          ct = AnsiColorTheme() if dump else conf.color_theme
          s = "%s%s %s %s \n" % (label_lvl, ct.punct("###["),
                                 ct.layer_name(self.name), ct.punct("]###"))
          for f in self.fields_desc[:-1]:
              ncol = ct.field_name
              vcol = ct.field_value
              fvalue = self.getfieldval(f.name)
              begn = "%s  %-10s%s " % (label_lvl + lvl, ncol(f.name),
                                       ct.punct("="),)
              reprval = f.i2repr(self, fvalue)
              if isinstance(reprval, str):
                  reprval = reprval.replace("\n", "\n" + " " * (len(label_lvl) +
                                                                len(lvl) +
                                                                len(f.name) +
                                                                4))
              s += "%s%s\n" % (begn, vcol(reprval))
          f = self.fields_desc[-1]
          ncol = ct.field_name
          vcol = ct.field_value
          fvalue = self.getfieldval(f.name)
          begn = "%s  %-10s%s " % (label_lvl + lvl, ncol(f.name), ct.punct("="),)
          reprval = f.i2repr(self, fvalue)
          if isinstance(reprval, str):
              reprval = reprval.replace("\n", "\n" + " " * (len(label_lvl) +
                                                            len(lvl) +
                                                            len(f.name) +
                                                            4))
          s += "%s%s\n" % (begn, vcol(reprval))
          if self.payload:
              s += self.payload._show_or_dump(dump=dump, indent=indent,
                                              lvl=lvl + (" " * indent * self.show_indent),  # noqa: E501
                                              label_lvl=label_lvl, first_call=False)  # noqa: E501
  
          if first_call and not dump:
              print(s)
          else:
              return s