Difference between revisions of "VPP/Python API"
From fd.io
< VPP
Line 4: | Line 4: | ||
The vpp-papi.py module in vpp-api-test/papi provides a Python 3 binding to the VPP API. | The vpp-papi.py module in vpp-api-test/papi provides a Python 3 binding to the VPP API. | ||
+ | === Example === | ||
+ | <nowiki> | ||
+ | #!/usr/bin/env python3 | ||
+ | |||
+ | import vpp_papi | ||
+ | r = vpp_papi.connect("test_papi") | ||
+ | |||
+ | t = vpp_papi.show_version() | ||
+ | print('VPP version:', t.version.decode()) | ||
+ | |||
+ | t = vpp_papi.sw_interface_dump(0, b'ignored') | ||
+ | |||
+ | if t: | ||
+ | print('List of interfaces') | ||
+ | for interface in t: | ||
+ | if interface.vlmsgid == vpp_papi.VL_API_SW_INTERFACE_DETAILS: | ||
+ | print(interface.interfacename.decode()) | ||
+ | r = vpp_papi.disconnect() | ||
+ | </nowiki> | ||
+ | |||
+ | === API generation === | ||
The Python binding is automatically generated from the API definition in vpp/api/vpe.api. See figure below. | The Python binding is automatically generated from the API definition in vpp/api/vpe.api. See figure below. | ||
[[File:papi.png|600px]] | [[File:papi.png|600px]] |
Revision as of 10:28, 30 March 2016
Python binding for the VPP API
The vpp-papi.py module in vpp-api-test/papi provides a Python 3 binding to the VPP API.
Example
#!/usr/bin/env python3 import vpp_papi r = vpp_papi.connect("test_papi") t = vpp_papi.show_version() print('VPP version:', t.version.decode()) t = vpp_papi.sw_interface_dump(0, b'ignored') if t: print('List of interfaces') for interface in t: if interface.vlmsgid == vpp_papi.VL_API_SW_INTERFACE_DETAILS: print(interface.interfacename.decode()) r = vpp_papi.disconnect()
API generation
The Python binding is automatically generated from the API definition in vpp/api/vpe.api. See figure below.