I'm not sure a full-fledged feature negotiation system is needed. The
ivshmem protocol is local to the host and all participants are under
control of the administrator.
I suggested a protocol version to protect against misconfiguration. For
example, building QEMU from source but talking to an outdated ivhsmem
server that is still running from before.
Remember that ivshmem-server and QEMU are shipped together by the
distro. So in 99% of the cases they will have the same version anyway.
But we want to protect against rare misconfiguration that break things
(user mixing and matching incompatible software).