From: Paul Vinciguerra Date: Mon, 27 Apr 2020 02:04:32 +0000 (-0400) Subject: papi: add method to retrieve field options X-Git-Tag: v21.10-rc0~527 X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commitdiff_plain;h=6531514569d8b08242c738c61d3453468a44f7ca papi: add method to retrieve field options Sample usage: cls.MEMIF_DEFAULT_BUFFER_SIZE = cls.vapi.vpp.get_field_options( 'memif_create', 'buffer_size')['default'] Type: improvement Change-Id: I298f4687623003a78c93a703d32f59a937e37bc2 Signed-off-by: Paul Vinciguerra --- diff --git a/src/vpp-api/python/vpp_papi/vpp_papi.py b/src/vpp-api/python/vpp_papi/vpp_papi.py index b5310a1f68a..86bf7cbee30 100644 --- a/src/vpp-api/python/vpp_papi/vpp_papi.py +++ b/src/vpp-api/python/vpp_papi/vpp_papi.py @@ -686,6 +686,15 @@ class VPPApiClient: n[1]['avg'], n[1]['max']) return s + def get_field_options(self, msg, fld_name): + # when there is an option, the msgdef has 3 elements. + # ['u32', 'ring_size', {'default': 1024}] + for _def in self.messages[msg].msgdef: + if isinstance(_def, list) and \ + len(_def) == 3 and \ + _def[1] == fld_name: + return _def[2] + def _call_vpp(self, i, msgdef, service, **kwargs): """Given a message, send the message and await a reply.