+/* UUIDs will be passed around as *non-terminated* strings in their
+ * canonical form (e.g., 550e8400-e29b-41d4-a716-446655440000).
+ */
+#define OFMP_UUID_LEN 36
+
+/* Resource TLV for XenServer UUIDs associated with this datapath. */
+struct ofmptsr_dp_uuid {
+ uint16_t type; /* OFMPTSR_DP_UUID. */
+ uint16_t len; /* Length. */
+ uint8_t pad[4];
+ uint64_t dp_id; /* Datapath ID. */
+ uint8_t uuid_list[0]; /* List of UUIDs associated with
+ * this datapath. */
+};
+OFP_ASSERT(sizeof(struct ofmptsr_dp_uuid) == 16);
+
+/* Resource TLV for XenServer UUID associated with this managment
+ * instance.
+ */
+struct ofmptsr_mgmt_uuid {
+ uint16_t type; /* OFMPTSR_MGMT_UUID. */
+ uint16_t len; /* 52. */
+ uint8_t pad[4];
+ uint64_t mgmt_id; /* Management ID. */
+ uint8_t uuid[OFMP_UUID_LEN]; /* System UUID. */
+ uint8_t pad2[4]; /* Pad for 64-bit systems. */
+};
+OFP_ASSERT(sizeof(struct ofmptsr_mgmt_uuid) == 56);
+
+/* Resource TLV for details about this XenServer vif. */
+struct ofmptsr_vif {
+ uint16_t type; /* OFMPTSR_VIF. */
+ uint16_t len; /* 136. */
+ uint8_t name[OFP_MAX_PORT_NAME_LEN]; /* Null-terminated name. */
+ uint8_t vif_uuid[OFMP_UUID_LEN]; /* VIF UUID. */
+ uint8_t vm_uuid[OFMP_UUID_LEN]; /* VM UUID. */
+ uint8_t net_uuid[OFMP_UUID_LEN]; /* Network UUID. */
+ uint64_t vif_mac; /* Management ID. */
+};
+OFP_ASSERT(sizeof(struct ofmptsr_vif) == 136);
+