From 2eaf2d26fd844dc9e589069e587069756e2d1883 Mon Sep 17 00:00:00 2001
From: Ole Troan <ot@cisco.com>
Date: Thu, 25 Jan 2018 09:53:31 +0100
Subject: VPP-1144: PAPI Import leads to duplicate type definition.

Change-Id: I54c147004fd93681a6a9cf30fa5277c1dabce67c
Signed-off-by: Ole Troan <ot@cisco.com>
---
 src/vpp-api/python/vpp_papi.py | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

(limited to 'src/vpp-api/python')

diff --git a/src/vpp-api/python/vpp_papi.py b/src/vpp-api/python/vpp_papi.py
index 4d39d5f88ef..1d92a41a504 100644
--- a/src/vpp-api/python/vpp_papi.py
+++ b/src/vpp-api/python/vpp_papi.py
@@ -515,8 +515,23 @@ class VPP():
             return self.messages[name]['return_tuple']
         return None
 
+    def duplicate_check_ok(self, name, msgdef):
+        crc = None
+        for c in msgdef:
+            if type(c) is dict and 'crc' in c:
+                crc = c['crc']
+                break
+        if crc:
+            # We can get duplicates because of imports
+            if crc == self.messages[name]['crc']:
+                return True
+        return False
+
     def add_message(self, name, msgdef, typeonly=False):
         if name in self.messages:
+            if typeonly:
+                if self.duplicate_check_ok(name, msgdef):
+                    return
             raise ValueError('Duplicate message name: ' + name)
 
         args = collections.OrderedDict()
-- 
cgit