2016-09-13 20:58, Yuanhan Liu: > rte_virtio_net.h is the header file will be exported for applications. > Every change there would mean either an API or ABI breakage. Thus, we > should try to avoid touching it. Don't even to say you added yet another > header file, rte_virtio_dev.h. > > I confess that the rte_virtio_net.h filename isn't that right: it sticks > to virtio-net so tightly. We may could rename it to rte_vhost.h, but I > doubt it's worthwhile: as said, it breaks the API. > > The fortunate thing about this file is that, the context is actually not > sticking to virtio-net too much. I mean, all the APIs are using the "vid", > which is just a number. Well, except the virtio_net_device_ops() structure, > which also should be renamed to vhost_device_ops(). Besides that, the > three ops, "new_device", "destroy_device" and "vring_state_changed", are > actually not limited to virtio-net device. > > That is to say, we could have two options here: > > - rename the header file and the structure properly, to not limited to > virtio-net > > - live with it, let it be a legacy issue, and document it at somewhere, > say, "due to history reason, that virtio-net is the first one supported > in DPDK, we kept the header filename as rte_virtio_net.h, but not ..." > > I personally would prefer the later one, which saves us from breaking > applications again. I don't have strong objection to the first one though. > > Thomas, any comments?
I don't think keeping broken names for historical reasons is a good long term maintenance. It could be a FIXME comment that we would fix when we have other reasons to break the API. However, in this case, it is easy to keep the compatibility, I think, by including rte_virtio.h in rte_virtio_net.h. Note: renames can also generally be managed with symlinks. I also don't really understand why this file name is rte_virtio_net.h and not rte_vhost_net.h.