doc: announce API changes for vhost refactoring
authorYuanhan Liu <yuanhan.liu@linux.intel.com>
Wed, 6 Apr 2016 06:53:55 +0000 (14:53 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Sun, 10 Apr 2016 10:07:57 +0000 (12:07 +0200)
commitf4f136c8c4a29b4f5797bd9c558421d17d72aba7
treed5fe186f264804c75755487c20cc8d46830e2ed0
parentfcd5106cf14833892cd96412179987ad9ee437ba
doc: announce API changes for vhost refactoring

We currently exposed way too many fields (or even structures) than
necessary. For example, vhost_virtqueue struct should NOT be exposed
to user at all: application just need to tell the right queue id to
locate a specific queue, and that's all. Instead, the structure should
be defined in an internal header file. With that, we could do any changes
to it we want, without worrying about that we may offense the painful
ABI rules.

Similar changes could be done to virtio_net struct as well, just exposing
very few fields that are necessary and moving all others to an internal
structure.

Huawei then suggested a more radical yet much cleaner one: just exposing
a virtio_net handle to application, just like the way kernel exposes an
fd to user for locating a specific file, and exposing some new functions
to access those old fields, such as flags, virt_qp_nb.

With this change, we're likely to be free from ABI violations forever
(well, except when we have to extend the virtio_net_device_ops struct).
For example, following nice cleanup would not be a blocking one then:

    http://dpdk.org/ml/archives/dev/2016-February/033528.html

Suggested-by: Huawei Xie <huawei.xie@intel.com>
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Acked-by: Panu Matilainen <pmatilai@redhat.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
doc/guides/rel_notes/deprecation.rst