papi: add method to retrieve field options 02/26702/8
authorPaul Vinciguerra <pvinci@vinciconsulting.com>
Mon, 27 Apr 2020 02:04:32 +0000 (22:04 -0400)
committerOle Tr�an <otroan@employees.org>
Mon, 15 Feb 2021 17:28:25 +0000 (17:28 +0000)
  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 <pvinci@vinciconsulting.com>
src/vpp-api/python/vpp_papi/vpp_papi.py

index b5310a1..86bf7cb 100644 (file)
@@ -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.