+class VppDiedError(Exception):
+ """ exception for reporting that the subprocess has died."""
+
+ signals_by_value = {v: k for k, v in signal.__dict__.items() if
+ k.startswith('SIG') and not k.startswith('SIG_')}
+
+ def __init__(self, rv=None):
+ self.rv = rv
+ self.signal_name = None
+ try:
+ self.signal_name = VppDiedError.signals_by_value[-rv]
+ except KeyError:
+ pass
+
+ msg = "VPP subprocess died unexpectedly with return code: %d%s." % (
+ self.rv,
+ ' [%s]' % self.signal_name if
+ self.signal_name is not None else '')
+ super(VppDiedError, self).__init__(msg)
+
+