On 2015/05/28 10:25, Tetsuya Mukawa wrote: > On 2015/05/26 21:52, Eric Blake wrote: >> On 05/25/2015 10:29 PM, Tetsuya Mukawa wrote: >> >>>>>> { 'struct': 'NetdevTapOptions', >>>>>> @@ -2259,7 +2261,8 @@ >>>>>> '*vhostfd': 'str', >>>>>> '*vhostfds': 'str', >>>>>> '*vhostforce': 'bool', >>>>>> - '*queues': 'uint32'} } >>>>>> + '*queues': 'uint32', >>>>>> + '*backend_features':'uint64'} } >>>>> Ewww. Making users figure out what integers to pass is NOT user >>>>> friendly. Better would be an enum type, and make the parameter an >>>>> optional array of enum values. >>>> Thanks for your comments. >>>> I guess below may be good example. Is this same as your suggestion? >>>> >>>> >>>> virtio-net-pci,netdev=hostnet3,id=net3,gso=off,guest_tso4=off,guest_tso6=off >>>> >>>> So I will improve 'backend-features' like below. >>>> >>>> backend-features=gso=off,guest_tso4=off,guest_tso6=off >>>> >>>> Also I will fix 'qapi-schema.json' to work like above. >>> I seems it's impossible to implement like above. >>> I may need to implement like below. >>> >>> virtio-net-pci,netdev=hostnet3,id=net3,backend_gso=on,backend_guest_tso4=on,backend_guest_tso6=on >> Or even: >> >> virtio-net-pci,netdev=hostnet3,id=net3,backend.gso=on,backend.guest_tso4=on,backend.guest_tso6=on >> >> Look at -device for how to set up nested structs using '.' for a nice >> hierarchy of options all belonging to a common substruct. >> > I appreciate for your suggestion. > I will check '-device' option, and implement like above in v2 patch.
I've checked '-device' option and DeviceClass, and found I may not be able to use above nice hierarchy with '-net' option. Probably it is because '-net' option isn't for describing device itself, so there is no DeviceClass. And without DeviceClass I guess I cannot use '.' infrastructure. I may be able to describe vhost-user backend features in '-device virtio-net-pci,.....', but I guess it's not good. Probably describing in '-net vhost-user,....' will be good. As described above, I implemented like below in next patch. -chardev socket,id=chr0,path=/tmp/sock,reconnect=3 \ -device virtio-net-pci,netdev=net0 \ -netdev vhost-user,id=net0,chardev=chr0,vhostforce,backend_gso=on,backend_guest_ecn=on BTW, '-device' option has already had options like below. - guest_csum - guest_tso4 ..... So I used '_' like below - backend_guest_csum - backend_guest_tso4 ...... Regards, Tetsuya