docs: def command(self):
          """
          Returns a string representing the command you have to type to
          obtain the same packet
          """
          f = []
          for fn, fv in six.iteritems(self.fields):
              fld = self.get_field(fn)
              if isinstance(fv, (list, dict, set)) and len(fv) == 0:
                  continue
              if isinstance(fv, Packet):
                  fv = fv.command()
              elif fld.islist and fld.holds_packets and isinstance(fv, list):
                  fv = "[%s]" % ",".join(map(Packet.command, fv))
              elif isinstance(fld, FlagsField):
                  fv = int(fv)
              else:
                  fv = repr(fv)
              f.append("%s=%s" % (fn, fv))
          c = "%s(%s)" % (self.__class__.__name__, ", ".join(f))
          pc = self.payload.command()
          if pc:
              c += "/" + pc
          return c