docs: def copy(self):
          """Returns a deep copy of the instance."""
          clone = self.__class__()
          clone.fields = self.fields.copy()
          for k in clone.fields:
              clone.fields[k] = self.get_field(k).do_copy(clone.fields[k])
          clone.default_fields = self.default_fields.copy()
          clone.overloaded_fields = self.overloaded_fields.copy()
          clone.overload_fields = self.overload_fields.copy()
          clone.underlayer = self.underlayer
          clone.explicit = self.explicit
          clone.raw_packet_cache = self.raw_packet_cache
          clone.post_transforms = self.post_transforms[:]
          clone.__dict__["payload"] = self.payload.copy()
          clone.payload.add_underlayer(clone)
          clone.time = self.time
          clone.sent_time = self.sent_time
          return clone