On Wed, 4 Mar 2020 12:11:05 +0500 Muhammad Ahmad <muhammad.ah...@emumba.com> wrote:
> Hi, > I have observed that the dpdk-devbind.py is an interactive tool and > not quite useful for automated testing in CI/CD. We are planning to > create “dpdk-usertools-server” for making it streamlined. > The idea is to create a separate application, which provides REST interface > to: > - Query the current status of devices and drivers > - Bind and unbind devices to different drivers > > Future extensions will be to make dpdk-pmdinfo.py, cpu_layout.py and > dpdk-setup.sh more automation friendly. > =================Details of API==================== > -Query Status of devices: > Fetch the status of all devices or of a given group, supported > groups are: network, crypto, event and mempool devices. > URL: /devices > Method:GET > URL Params: type=[all|net|baseband|crypto|event|mempool|compress] > Sample call: curl http://127.0.0.1:5000/devices?type=crypto&type=net > Success Response: > HTTP response code: 200 > Content: > [ > { > "pci":"0000:b7:00.3", > "type":"net", > "infoString":"Ethernet Connection X722 for 10GbE SFP+ 37d0", > "interface":"eno8", > "driver":"i40e", > "unusedDriver":"igb_uio", > "active":false > } > ] > Error response: > HTTP Code: 400 BAD REQUEST > Content: > { > "code": 1, > "message": "invalid type" > } > > > -Bind/Unbind device with a driver: > Bind the PCI devices to the given driver or “none” to unbind > URL:/devices/<pci> > Method: PUT > URL Prams: PCI=[PCI address] > Sample call: curl http://127.0.0.1:5000/devices/0000:b7:00.3 > --header "Content-Type: application/json" --request PUT --data > '{driver:"igb_uio", force: false}' > Success Response: > HTTP response code: 200 > Content: > { > "pci":"0000:b7:00.3", > "type":"net", > "infoString":"Ethernet Connection X722 for 10GbE SFP+ 37d0", > "interface":"", > "driver":"igb_uio", > "unusedDriver":"i40e", > "active":false > } > Error response: > Code: 400 BAD REQUEST > Content: > { > "code": 1, > "message": "invalid id" > } > > OR > Code: 400 BAD REQUEST > Content: > { > "code": 2, > "message": "invalid driver" > } > > OR > Code: 405 METHOD NOT ALLOWED > Content: > { > "code": 3, > "message": "PCI Device active run with force=TRUE" > } > > =================++++++++==================== > > Signed-off-by: Muhammad Ahmad <muhammad.ah...@emumba.com> There already is a better generic tool driverctl https://gitlab.com/driverctl/driverctl It is already in many distributions I would recommend using that instead of extending the limited DPDK tool.