+GNUNET_NETWORK_STRUCT_BEGIN
+
+/**
+ * Message sent between peers asking for FS-content.
+ */
+struct GetMessage
+{
+
+ /**
+ * Message type will be GNUNET_MESSAGE_TYPE_FS_GET.
+ */
+ struct GNUNET_MessageHeader header;
+
+ /**
+ * Type of the query (block type).
+ */
+ uint32_t type GNUNET_PACKED;
+
+ /**
+ * How important is this request (network byte order)
+ */
+ uint32_t priority GNUNET_PACKED;
+
+ /**
+ * Relative time to live in MILLISECONDS (network byte order)
+ */
+ int32_t ttl GNUNET_PACKED;
+
+ /**
+ * The content hash should be mutated using this value
+ * before checking against the bloomfilter (used to
+ * get many different filters for the same hash codes).
+ * The number should be in big-endian format when used
+ * for mingling.
+ */
+ uint32_t filter_mutator GNUNET_PACKED;
+
+ /**
+ * Which of the optional hash codes are present at the end of the
+ * message? See GET_MESSAGE_BIT_xx constants. For each bit that is
+ * set, an additional struct GNUNET_HashCode with the respective content
+ * (in order of the bits) will be appended to the end of the GET
+ * message.
+ */
+ uint32_t hash_bitmap GNUNET_PACKED;
+
+ /**
+ * Hashcodes of the file(s) we're looking for.
+ * Details depend on the query type.
+ */
+ struct GNUNET_HashCode query;
+
+ /* this is followed by hash codes as specified in the "hash_bitmap";
+ * after that, an optional bloomfilter (with bits set for replies
+ * that should be suppressed) can be present */
+};
+
+
+/**
+ * Message send by a peer that wants to be excluded
+ * from migration for a while.
+ */
+struct MigrationStopMessage
+{
+ /**
+ * Message type will be
+ * GNUNET_MESSAGE_TYPE_FS_MIGRATION_STOP.
+ */
+ struct GNUNET_MessageHeader header;
+
+ /**
+ * Always zero.
+ */
+ uint32_t reserved GNUNET_PACKED;
+
+ /**
+ * How long should the block last?
+ */
+ struct GNUNET_TIME_RelativeNBO duration;
+
+};
+GNUNET_NETWORK_STRUCT_END