- && a->ofproto == b->ofproto
- && flow_tnl_equal(a->metadata.tunnel, b->metadata.tunnel)
- && !memcmp(&a->metadata.metadata, &b->metadata.metadata,
- sizeof a->metadata - sizeof a->metadata.tunnel)
- && (((!a->stack || !a->stack->size) &&
- (!b->stack || !b->stack->size))
- || (a->stack && b->stack && ofpbuf_equal(a->stack, b->stack)))
+ && uuid_equals(&a->ofproto_uuid, &b->ofproto_uuid)
+ && !memcmp(&a->metadata, &b->metadata, sizeof a->metadata)
+ && a->stack_size == b->stack_size
+ && !memcmp(a->stack, b->stack, a->stack_size)