papi: prevent message_table inconsistencies 66/20366/2
authorVratko Polak <vrpolak@cisco.com>
Wed, 26 Jun 2019 15:24:56 +0000 (17:24 +0200)
committerPaul Vinciguerra <pvinci@vinciconsulting.com>
Wed, 26 Jun 2019 19:45:43 +0000 (19:45 +0000)
Socket transport is maintaining message_table to map
message name to index. After disconnect and re-connect,
the VPP may have been restarted with different set of plugins,
so message_table has to be wiped.

+ Edited MAINTAINERS to recognize "papi" as a separate component.

Type: fix
Change-Id: I1f16ad7ee0886e03bbc6a17bcddbfcaa322354e5
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
MAINTAINERS
src/vpp-api/python/vpp_papi/vpp_transport_socket.py

index d2af18a..ad13219 100644 (file)
@@ -79,13 +79,13 @@ M:  Damjan Marion <damarion@cisco.com>
 F:     src/vnet/devices/
 
 VNET TAP Drivers
-I:      tap
-M:      Damjan Marion <damarion@cisco.com>
-M:      Steven Luong <sluong@cisco.com>
-M:      Mohsin Kazmi <sykazmi@cisco.com>
-F:      src/vnet/devices/tap/
-F:      src/vnet/devices/virtio/node.c
-F:      src/vnet/devices/virtio/device.c
+I:     tap
+M:     Damjan Marion <damarion@cisco.com>
+M:     Steven Luong <sluong@cisco.com>
+M:     Mohsin Kazmi <sykazmi@cisco.com>
+F:     src/vnet/devices/tap/
+F:     src/vnet/devices/virtio/node.c
+F:     src/vnet/devices/virtio/device.c
 
 VNET Feature Arcs
 I:     feature
@@ -426,6 +426,12 @@ M: Aloys Augustin <aloaugus@cisco.com>
 M:     Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
 F:     src/plugins/hs_apps/
 
+Python binding for the VPP API
+I:     papi
+M:     Ole Troan <ot@cisco.com>
+M:     Paul Vinciguerra <pvinci@vinciconsulting.com>
+F:     src/vpp-api/python
+
 THE REST
 I:     misc
 C:     Contact vpp-dev Mailing List <vpp-dev@fd.io>
index ee14258..6c06791 100644 (file)
@@ -152,6 +152,8 @@ class VppTransport(object):
         if self.message_thread is not None and self.message_thread.is_alive():
             # Allow additional connect() calls.
             self.message_thread.join()
+        # Wipe message table, VPP can be restarted with different plugins.
+        self.message_table = {}
         # Collect garbage.
         self.message_thread = None
         self.socket = None