I don't quite follow what this is doing.
That's for the session negotiation so we can reset state when the
guest agent restarts. The sequence is:
guest -> host
{ "_xport_event": "guest_init", "_xport_arg_sid": <random session id> }
host -> guest
{ "_xport_event": "host_ack", "_xport_arg_sid": <received session id> }
Guest will ignore anything it gets until it sees an ack with the
proper session id, host will cancel outstanding requests when it
receives a guest init. If there's already an event waiting to be sent
we clobber it since for the above exchange only the most recent event
we sent matters.
We send them as json objects, but they get handled at transport level
and terminate there.