diff --git a/testing/exabgp/APKBUILD b/testing/exabgp/APKBUILD
index e3cff821b3c2bf63795fc8c1ad36d9325ccc0cac..145a709a2b86866d87270f848d312848a2d7ab0c 100644
--- a/testing/exabgp/APKBUILD
+++ b/testing/exabgp/APKBUILD
@@ -1,7 +1,7 @@
 # Contributor: Sean McAvoy <seanmcavoy@gmail.com>
 # Maintainer: Sean McAvoy <seanmcavoy@gmail.com>
 pkgname=exabgp
-pkgver=4.2.22
+pkgver=4.2.24
 pkgrel=0
 pkgdesc="BGP swiss army knife of networking"
 url="https://github.com/Exa-Networks/exabgp"
@@ -47,8 +47,8 @@ package() {
 }
 
 sha512sums="
-40536a20dc245bd8442d05d1ff19adfa6ed3113383e0f413c2e11f05fdb52d5fec8ee0d643ed3da32a47400af54975c64d0ae14b12ef6db0e07589ffc11c91bb  exabgp-4.2.22.tar.gz
+c3d861a05e14157da72de17cd65a1a31ab5e08f3022a9fb0f845b6a255cbeffb1cc4994c697ff5a8793c3ca8cd642b043bb3ce3e6885c997a0907b3cacfb6027  exabgp-4.2.24.tar.gz
 0a6ee4116632d1d869216804d6ace385238347a871cf243b29cf3a77ed04366395ef4fdc28e749daf8f28f048e6eb8fd80bc82e74ad1e5f80b782548d7746a34  exabgp.initd
 32d54bfd02f13d75c5d544141a4e3569ae873ab1ea77cb697a4475f18329c5b4e15a59ab0345b77a20bdfbe60e8322eb373af1f8530f96d5be07f4fb69ccba80  exabgp.confd
-7b5d3b1a446e32c358472de2711fa8d0eff46651fb91fa5eceebbb8625d3ea6fea8446df8aefd2665c7ce29ceaa030eef5b198933c9d9f63a8131baaecd0dde2  unvendor.patch
+5d2f387d065a85cf7c4b8e745ce6513c654f9d9863382809e85e4ebd23ad4eea6ea70ddb991afc05f7c48d15f3af22dee03f0b9fded431c577c5e4b4558862b9  unvendor.patch
 "
diff --git a/testing/exabgp/unvendor.patch b/testing/exabgp/unvendor.patch
index 71dfa74fc89ab34d90d0cff95e509f6386f09a87..fbaa531fd2bb5a5d5b49db91f9d6aa3b2618723e 100644
--- a/testing/exabgp/unvendor.patch
+++ b/testing/exabgp/unvendor.patch
@@ -1,8 +1,7 @@
-diff --git a/dev/profile/pyprof2calltree.py b/dev/profile/pyprof2calltree.py
-index fc73a1d..668e602 100755
---- a/dev/profile/pyprof2calltree.py
-+++ b/dev/profile/pyprof2calltree.py
-@@ -36,7 +36,7 @@ import os
+diff -u -r exabgp-4.2.24/dev/profile/pyprof2calltree.py Aexabgp-4.2.24/dev/profile/pyprof2calltree.py
+--- a/dev/profile/pyprof2calltree.py	2025-03-10 17:54:24.000000000 -0400
++++ b/dev/profile/pyprof2calltree.py	2025-03-15 14:26:19.802319215 -0400
+@@ -36,7 +36,7 @@
  import sys
  import tempfile
  
@@ -11,11 +10,10 @@ index fc73a1d..668e602 100755
  
  __all__ = ['convert', 'visualize', 'CalltreeConverter']
  
-diff --git a/lib/exabgp/application/bgp.py b/lib/exabgp/application/bgp.py
-index 0780b47..275bc5c 100755
---- a/lib/exabgp/application/bgp.py
-+++ b/lib/exabgp/application/bgp.py
-@@ -22,7 +22,7 @@ from exabgp.version import version
+diff -u -r exabgp-4.2.24/lib/exabgp/application/bgp.py Aexabgp-4.2.24/lib/exabgp/application/bgp.py
+--- a/lib/exabgp/application/bgp.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/application/bgp.py	2025-03-15 14:26:19.732319365 -0400
+@@ -23,7 +23,7 @@
  # import before the fork to improve copy on write memory savings
  from exabgp.reactor.loop import Reactor
  
@@ -24,7 +22,7 @@ index 0780b47..275bc5c 100755
  
  from exabgp.configuration.usage import usage
  
-@@ -37,7 +37,7 @@ def is_bgp(s):
+@@ -38,7 +38,7 @@
  
  def __exit(memory, code):
      if memory:
@@ -33,7 +31,7 @@ index 0780b47..275bc5c 100755
  
          sys.stdout.write('memory utilisation\n\n')
          sys.stdout.write(objgraph.show_most_common_types(limit=20))
-@@ -420,7 +420,7 @@ def run(env, comment, configurations, root, validate, pid=0):
+@@ -421,7 +421,7 @@
              exit_code = Reactor.Exit.unknown
              raise
          finally:
@@ -42,11 +40,10 @@ index 0780b47..275bc5c 100755
  
              profiler.disable()
              kprofile = lsprofcalltree.KCacheGrind(profiler)
-diff --git a/lib/exabgp/application/cli.py b/lib/exabgp/application/cli.py
-index ab5a10d..e0ba811 100644
---- a/lib/exabgp/application/cli.py
-+++ b/lib/exabgp/application/cli.py
-@@ -24,7 +24,7 @@ from exabgp.application.control import check_fifo
+diff -u -r exabgp-4.2.24/lib/exabgp/application/cli.py Aexabgp-4.2.24/lib/exabgp/application/cli.py
+--- a/lib/exabgp/application/cli.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/application/cli.py	2025-03-15 14:26:19.728986039 -0400
+@@ -24,7 +24,7 @@
  from exabgp.reactor.network.error import error
  from exabgp.reactor.api.response.answer import Answer
  
@@ -55,11 +52,10 @@ index ab5a10d..e0ba811 100644
  
  errno_block = set(
      (
-diff --git a/lib/exabgp/application/healthcheck.py b/lib/exabgp/application/healthcheck.py
-index 7736cf4..8c265a2 100644
---- a/lib/exabgp/application/healthcheck.py
-+++ b/lib/exabgp/application/healthcheck.py
-@@ -57,8 +57,8 @@ import collections
+diff -u -r exabgp-4.2.24/lib/exabgp/application/healthcheck.py Aexabgp-4.2.24/lib/exabgp/application/healthcheck.py
+--- a/lib/exabgp/application/healthcheck.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/application/healthcheck.py	2025-03-15 14:26:19.728986039 -0400
+@@ -57,8 +57,8 @@
  logger = logging.getLogger("healthcheck")
  
  # Python 3.3+ or backport
@@ -70,11 +66,10 @@ index 7736cf4..8c265a2 100644
  
  
  def fix(f):
-diff --git a/lib/exabgp/bgp/message/open/capability/capabilities.py b/lib/exabgp/bgp/message/open/capability/capabilities.py
-index 210542c..1a7962d 100644
---- a/lib/exabgp/bgp/message/open/capability/capabilities.py
-+++ b/lib/exabgp/bgp/message/open/capability/capabilities.py
-@@ -7,7 +7,7 @@ Copyright (c) 2009-2017 Exa Networks. All rights reserved.
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/open/capability/capabilities.py Aexabgp-4.2.24/lib/exabgp/bgp/message/open/capability/capabilities.py
+--- a/lib/exabgp/bgp/message/open/capability/capabilities.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/open/capability/capabilities.py	2025-03-15 14:26:19.795652562 -0400
+@@ -7,7 +7,7 @@
  License: 3-clause BSD. (See the COPYRIGHT file)
  """
  
@@ -83,11 +78,10 @@ index 210542c..1a7962d 100644
  
  from exabgp.protocol.family import AFI
  from exabgp.protocol.family import SAFI
-diff --git a/lib/exabgp/bgp/message/open/capability/graceful.py b/lib/exabgp/bgp/message/open/capability/graceful.py
-index 8f87693..2950ff1 100644
---- a/lib/exabgp/bgp/message/open/capability/graceful.py
-+++ b/lib/exabgp/bgp/message/open/capability/graceful.py
-@@ -10,7 +10,7 @@ License: 3-clause BSD. (See the COPYRIGHT file)
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/open/capability/graceful.py Aexabgp-4.2.24/lib/exabgp/bgp/message/open/capability/graceful.py
+--- a/lib/exabgp/bgp/message/open/capability/graceful.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/open/capability/graceful.py	2025-03-15 14:26:19.795652562 -0400
+@@ -10,7 +10,7 @@
  from struct import pack
  from struct import unpack
  
@@ -96,11 +90,10 @@ index 8f87693..2950ff1 100644
  
  from exabgp.util import character
  from exabgp.util import ordinal
-diff --git a/lib/exabgp/bgp/message/update/attribute/attributes.py b/lib/exabgp/bgp/message/update/attribute/attributes.py
-index d0f1a80..04c56e0 100644
---- a/lib/exabgp/bgp/message/update/attribute/attributes.py
-+++ b/lib/exabgp/bgp/message/update/attribute/attributes.py
-@@ -30,7 +30,7 @@ from exabgp.util import ordinal
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/attributes.py Aexabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/attributes.py
+--- a/lib/exabgp/bgp/message/update/attribute/attributes.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/update/attribute/attributes.py	2025-03-15 14:26:19.782319257 -0400
+@@ -30,7 +30,7 @@
  from exabgp.logger import Logger
  from exabgp.logger import LazyAttribute
  
@@ -109,11 +102,10 @@ index d0f1a80..04c56e0 100644
  
  
  class _NOTHING(object):
-diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/link/admingroup.py b/lib/exabgp/bgp/message/update/attribute/bgpls/link/admingroup.py
-index c21b570..49bfc86 100644
---- a/lib/exabgp/bgp/message/update/attribute/bgpls/link/admingroup.py
-+++ b/lib/exabgp/bgp/message/update/attribute/bgpls/link/admingroup.py
-@@ -6,7 +6,7 @@ Created by Evelio Vila on 2016-12-01.
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/link/admingroup.py Aexabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/link/admingroup.py
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/link/admingroup.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/link/admingroup.py	2025-03-15 14:26:19.792319236 -0400
+@@ -6,7 +6,7 @@
  Copyright (c) 2014-2017 Exa Networks. All rights reserved.
  """
  
@@ -122,11 +114,10 @@ index c21b570..49bfc86 100644
  from exabgp.bgp.message.notification import Notify
  from exabgp.bgp.message.update.attribute.bgpls.linkstate import LINKSTATE
  
-diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/link/igpmetric.py b/lib/exabgp/bgp/message/update/attribute/bgpls/link/igpmetric.py
-index c57ba19..0fe5ba1 100644
---- a/lib/exabgp/bgp/message/update/attribute/bgpls/link/igpmetric.py
-+++ b/lib/exabgp/bgp/message/update/attribute/bgpls/link/igpmetric.py
-@@ -7,9 +7,9 @@ Copyright (c) 2014-2017 Exa Networks. All rights reserved.
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/link/igpmetric.py Aexabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/link/igpmetric.py
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/link/igpmetric.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/link/igpmetric.py	2025-03-15 14:26:19.792319236 -0400
+@@ -7,9 +7,9 @@
  """
  
  from struct import unpack
@@ -138,11 +129,10 @@ index c57ba19..0fe5ba1 100644
  from exabgp.bgp.message.notification import Notify
  
  from exabgp.bgp.message.update.attribute.bgpls.linkstate import LINKSTATE
-diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradj.py b/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradj.py
-index b6dc588..2276a09 100644
---- a/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradj.py
-+++ b/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradj.py
-@@ -8,10 +8,10 @@ Copyright (c) 2014-2017 Exa Networks. All rights reserved.
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradj.py Aexabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradj.py
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradj.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradj.py	2025-03-15 14:26:19.792319236 -0400
+@@ -8,10 +8,10 @@
  
  import json
  from struct import unpack
@@ -155,11 +145,10 @@ index b6dc588..2276a09 100644
  from exabgp.bgp.message.update.attribute.bgpls.linkstate import LINKSTATE, LsGenericFlags
  
  #    draft-gredler-idr-bgp-ls-segment-routing-ext-03
-diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradjlan.py b/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradjlan.py
-index 4ec1b82..0d6255a 100644
---- a/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradjlan.py
-+++ b/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradjlan.py
-@@ -8,10 +8,10 @@ Copyright (c) 2014-2017 Exa Networks. All rights reserved.
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradjlan.py Aexabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradjlan.py
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradjlan.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradjlan.py	2025-03-15 14:26:19.792319236 -0400
+@@ -8,10 +8,10 @@
  
  import json
  from struct import unpack
@@ -172,11 +161,10 @@ index 4ec1b82..0d6255a 100644
  from exabgp.protocol.iso import ISO
  from exabgp.bgp.message.update.attribute.bgpls.linkstate import LINKSTATE, LsGenericFlags
  from exabgp.bgp.message.notification import Notify
-diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/linkstate.py b/lib/exabgp/bgp/message/update/attribute/bgpls/linkstate.py
-index c1ae183..d596a76 100644
---- a/lib/exabgp/bgp/message/update/attribute/bgpls/linkstate.py
-+++ b/lib/exabgp/bgp/message/update/attribute/bgpls/linkstate.py
-@@ -11,7 +11,7 @@ import itertools
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/linkstate.py Aexabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/linkstate.py
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/linkstate.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/linkstate.py	2025-03-15 14:26:19.792319236 -0400
+@@ -11,7 +11,7 @@
  from struct import unpack
  
  from exabgp.util import concat_strs
@@ -185,11 +173,10 @@ index c1ae183..d596a76 100644
  from exabgp.bgp.message.notification import Notify
  from exabgp.bgp.message.update.attribute.attribute import Attribute
  
-diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/node/isisarea.py b/lib/exabgp/bgp/message/update/attribute/bgpls/node/isisarea.py
-index 7644105..f4ba7d4 100644
---- a/lib/exabgp/bgp/message/update/attribute/bgpls/node/isisarea.py
-+++ b/lib/exabgp/bgp/message/update/attribute/bgpls/node/isisarea.py
-@@ -6,7 +6,7 @@ Created by Evelio Vila on 2016-12-01.
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/node/isisarea.py Aexabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/node/isisarea.py
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/node/isisarea.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/node/isisarea.py	2025-03-15 14:26:19.792319236 -0400
+@@ -6,7 +6,7 @@
  Copyright (c) 2014-2017 Exa Networks. All rights reserved.
  """
  
@@ -198,11 +185,10 @@ index 7644105..f4ba7d4 100644
  
  from exabgp.bgp.message.notification import Notify
  
-diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/node/sralgo.py b/lib/exabgp/bgp/message/update/attribute/bgpls/node/sralgo.py
-index 0afe8f5..572fd15 100644
---- a/lib/exabgp/bgp/message/update/attribute/bgpls/node/sralgo.py
-+++ b/lib/exabgp/bgp/message/update/attribute/bgpls/node/sralgo.py
-@@ -8,7 +8,7 @@ Copyright (c) 2014-2017 Exa Networks. All rights reserved.
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/node/sralgo.py Aexabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/node/sralgo.py
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/node/sralgo.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/node/sralgo.py	2025-03-15 14:26:19.788985910 -0400
+@@ -8,7 +8,7 @@
  
  import json
  from struct import unpack
@@ -211,11 +197,10 @@ index 0afe8f5..572fd15 100644
  
  from exabgp.bgp.message.update.attribute.bgpls.linkstate import LINKSTATE
  
-diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/node/srcap.py b/lib/exabgp/bgp/message/update/attribute/bgpls/node/srcap.py
-index c5ef17c..ab8662c 100644
---- a/lib/exabgp/bgp/message/update/attribute/bgpls/node/srcap.py
-+++ b/lib/exabgp/bgp/message/update/attribute/bgpls/node/srcap.py
-@@ -9,7 +9,7 @@ Copyright (c) 2014-2017 Exa Networks. All rights reserved.
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/node/srcap.py Aexabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/node/srcap.py
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/node/srcap.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/node/srcap.py	2025-03-15 14:26:19.788985910 -0400
+@@ -9,7 +9,7 @@
  import json
  from struct import unpack
  
@@ -224,11 +209,10 @@ index c5ef17c..ab8662c 100644
  from exabgp.bgp.message.update.attribute.bgpls.linkstate import LINKSTATE, LsGenericFlags
  from exabgp.bgp.message.notification import Notify
  
-diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/prefixmetric.py b/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/prefixmetric.py
-index be76423..686c009 100644
---- a/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/prefixmetric.py
-+++ b/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/prefixmetric.py
-@@ -8,7 +8,7 @@ Copyright (c) 2014-2017 Exa Networks. All rights reserved.
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/prefixmetric.py Aexabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/prefixmetric.py
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/prefixmetric.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/prefixmetric.py	2025-03-15 14:26:19.795652562 -0400
+@@ -8,7 +8,7 @@
  
  from struct import unpack
  
@@ -237,11 +221,10 @@ index be76423..686c009 100644
  from exabgp.bgp.message.notification import Notify
  
  from exabgp.bgp.message.update.attribute.bgpls.linkstate import LINKSTATE
-diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/srprefix.py b/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/srprefix.py
-index bb991e5..7f791dc 100644
---- a/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/srprefix.py
-+++ b/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/srprefix.py
-@@ -8,10 +8,10 @@ Copyright (c) 2014-2017 Exa Networks. All rights reserved.
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/srprefix.py Aexabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/srprefix.py
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/srprefix.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/srprefix.py	2025-03-15 14:26:19.795652562 -0400
+@@ -8,10 +8,10 @@
  
  import json
  from struct import unpack
@@ -254,11 +237,10 @@ index bb991e5..7f791dc 100644
  from exabgp.bgp.message.notification import Notify
  from exabgp.bgp.message.update.attribute.bgpls.linkstate import LINKSTATE, LsGenericFlags
  
-diff --git a/lib/exabgp/bgp/message/update/attribute/mprnlri.py b/lib/exabgp/bgp/message/update/attribute/mprnlri.py
-index 95b8da1..871f8a8 100644
---- a/lib/exabgp/bgp/message/update/attribute/mprnlri.py
-+++ b/lib/exabgp/bgp/message/update/attribute/mprnlri.py
-@@ -9,7 +9,7 @@ License: 3-clause BSD. (See the COPYRIGHT file)
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/mprnlri.py Aexabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/mprnlri.py
+--- a/lib/exabgp/bgp/message/update/attribute/mprnlri.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/update/attribute/mprnlri.py	2025-03-15 14:26:19.785652584 -0400
+@@ -9,7 +9,7 @@
  
  from struct import unpack
  
@@ -267,11 +249,10 @@ index 95b8da1..871f8a8 100644
  from exabgp.util import concat_bytes
  from exabgp.util import concat_bytes_i
  
-diff --git a/lib/exabgp/bgp/message/update/attribute/sr/prefixsid.py b/lib/exabgp/bgp/message/update/attribute/sr/prefixsid.py
-index 9d7c5a6..b529f2c 100644
---- a/lib/exabgp/bgp/message/update/attribute/sr/prefixsid.py
-+++ b/lib/exabgp/bgp/message/update/attribute/sr/prefixsid.py
-@@ -8,7 +8,7 @@ Copyright (c) 2009-2017 Exa Networks. All rights reserved.
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/sr/prefixsid.py Aexabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/sr/prefixsid.py
+--- a/lib/exabgp/bgp/message/update/attribute/sr/prefixsid.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/update/attribute/sr/prefixsid.py	2025-03-15 14:26:19.785652584 -0400
+@@ -8,7 +8,7 @@
  
  import binascii
  from struct import unpack
@@ -280,11 +261,10 @@ index 9d7c5a6..b529f2c 100644
  
  from exabgp.util import concat_bytes_i
  from exabgp.bgp.message.update.attribute.attribute import Attribute
-diff --git a/lib/exabgp/bgp/message/update/attribute/sr/srgb.py b/lib/exabgp/bgp/message/update/attribute/sr/srgb.py
-index 540d23e..c56ea59 100644
---- a/lib/exabgp/bgp/message/update/attribute/sr/srgb.py
-+++ b/lib/exabgp/bgp/message/update/attribute/sr/srgb.py
-@@ -9,7 +9,7 @@ import json
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/sr/srgb.py Aexabgp-4.2.24/lib/exabgp/bgp/message/update/attribute/sr/srgb.py
+--- a/lib/exabgp/bgp/message/update/attribute/sr/srgb.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/update/attribute/sr/srgb.py	2025-03-15 14:26:19.785652584 -0400
+@@ -9,7 +9,7 @@
  from struct import pack
  
  from exabgp.util import concat_bytes
@@ -293,11 +273,10 @@ index 540d23e..c56ea59 100644
  from exabgp.bgp.message.notification import Notify
  from exabgp.bgp.message.update.attribute.sr.prefixsid import PrefixSid
  
-diff --git a/lib/exabgp/bgp/message/update/nlri/bgpls/tlvs/ipreach.py b/lib/exabgp/bgp/message/update/nlri/bgpls/tlvs/ipreach.py
-index 706fe86..23d62b3 100644
---- a/lib/exabgp/bgp/message/update/nlri/bgpls/tlvs/ipreach.py
-+++ b/lib/exabgp/bgp/message/update/nlri/bgpls/tlvs/ipreach.py
-@@ -10,7 +10,7 @@ License: 3-clause BSD. (See the COPYRIGHT file)
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/update/nlri/bgpls/tlvs/ipreach.py Aexabgp-4.2.24/lib/exabgp/bgp/message/update/nlri/bgpls/tlvs/ipreach.py
+--- a/lib/exabgp/bgp/message/update/nlri/bgpls/tlvs/ipreach.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/update/nlri/bgpls/tlvs/ipreach.py	2025-03-15 14:26:19.778985932 -0400
+@@ -10,7 +10,7 @@
  from __future__ import division
  from struct import unpack
  import math
@@ -306,11 +285,10 @@ index 706fe86..23d62b3 100644
  
  from exabgp.protocol.ip import IP
  from exabgp.util import ordinal
-diff --git a/lib/exabgp/bgp/message/update/nlri/vpls.py b/lib/exabgp/bgp/message/update/nlri/vpls.py
-index 0c9e329..033d254 100644
---- a/lib/exabgp/bgp/message/update/nlri/vpls.py
-+++ b/lib/exabgp/bgp/message/update/nlri/vpls.py
-@@ -10,7 +10,7 @@ License: 3-clause BSD. (See the COPYRIGHT file)
+diff -u -r exabgp-4.2.24/lib/exabgp/bgp/message/update/nlri/vpls.py Aexabgp-4.2.24/lib/exabgp/bgp/message/update/nlri/vpls.py
+--- a/lib/exabgp/bgp/message/update/nlri/vpls.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/bgp/message/update/nlri/vpls.py	2025-03-15 14:26:19.775652605 -0400
+@@ -10,7 +10,7 @@
  
  from struct import unpack
  from struct import pack
@@ -319,24 +297,10 @@ index 0c9e329..033d254 100644
  from exabgp.util import concat_bytes
  from exabgp.protocol.ip import IP
  from exabgp.protocol.family import AFI
-diff --git a/lib/exabgp/bgp/neighbor.py b/lib/exabgp/bgp/neighbor.py
-index f73ef19..c5d73d6 100644
---- a/lib/exabgp/bgp/neighbor.py
-+++ b/lib/exabgp/bgp/neighbor.py
-@@ -15,7 +15,7 @@ from collections import deque
- try:
-     from collections import Counter
- except ImportError:
--    from exabgp.vendoring.counter import Counter
-+    from counter import Counter
- 
- from exabgp.protocol.family import AFI
- 
-diff --git a/lib/exabgp/configuration/configuration.py b/lib/exabgp/configuration/configuration.py
-index ee4ae8c..75dc46f 100644
---- a/lib/exabgp/configuration/configuration.py
-+++ b/lib/exabgp/configuration/configuration.py
-@@ -10,7 +10,7 @@ License: 3-clause BSD. (See the COPYRIGHT file)
+diff -u -r exabgp-4.2.24/lib/exabgp/configuration/configuration.py Aexabgp-4.2.24/lib/exabgp/configuration/configuration.py
+--- a/lib/exabgp/configuration/configuration.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/configuration/configuration.py	2025-03-15 14:26:19.715652734 -0400
+@@ -10,7 +10,7 @@
  import os
  import sys
  
@@ -345,11 +309,10 @@ index ee4ae8c..75dc46f 100644
  
  from exabgp.logger import Logger
  
-diff --git a/lib/exabgp/configuration/core/scope.py b/lib/exabgp/configuration/core/scope.py
-index 70352b8..cb2aed7 100644
---- a/lib/exabgp/configuration/core/scope.py
-+++ b/lib/exabgp/configuration/core/scope.py
-@@ -11,7 +11,7 @@ import sys
+diff -u -r exabgp-4.2.24/lib/exabgp/configuration/core/scope.py Aexabgp-4.2.24/lib/exabgp/configuration/core/scope.py
+--- a/lib/exabgp/configuration/core/scope.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/configuration/core/scope.py	2025-03-15 14:26:19.718986060 -0400
+@@ -11,7 +11,7 @@
  import pprint
  
  # from copy import deepcopy
@@ -358,11 +321,10 @@ index 70352b8..cb2aed7 100644
  from exabgp.protocol.ip import IP
  from exabgp.configuration.core.error import Error
  
-diff --git a/lib/exabgp/configuration/core/tokeniser.py b/lib/exabgp/configuration/core/tokeniser.py
-index 9164bba..90273c7 100644
---- a/lib/exabgp/configuration/core/tokeniser.py
-+++ b/lib/exabgp/configuration/core/tokeniser.py
-@@ -10,7 +10,7 @@ License: 3-clause BSD. (See the COPYRIGHT file)
+diff -u -r exabgp-4.2.24/lib/exabgp/configuration/core/tokeniser.py Aexabgp-4.2.24/lib/exabgp/configuration/core/tokeniser.py
+--- a/lib/exabgp/configuration/core/tokeniser.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/configuration/core/tokeniser.py	2025-03-15 14:26:19.718986060 -0400
+@@ -10,7 +10,7 @@
  from exabgp.configuration.core.format import tokens
  from exabgp.protocol.family import AFI
  from collections import deque
@@ -371,11 +333,10 @@ index 9164bba..90273c7 100644
  
  
  class Tokeniser(object):
-diff --git a/lib/exabgp/configuration/environment.py b/lib/exabgp/configuration/environment.py
-index 20e98d3..cde47fb 100644
---- a/lib/exabgp/configuration/environment.py
-+++ b/lib/exabgp/configuration/environment.py
-@@ -315,7 +315,7 @@ class environment(object):
+diff -u -r exabgp-4.2.24/lib/exabgp/configuration/environment.py Aexabgp-4.2.24/lib/exabgp/configuration/environment.py
+--- a/lib/exabgp/configuration/environment.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/configuration/environment.py	2025-03-15 14:26:19.722319386 -0400
+@@ -315,7 +315,7 @@
  # ========================================================================= _env
  #
  
@@ -384,11 +345,10 @@ index 20e98d3..cde47fb 100644
  from exabgp.util.hashtable import HashTable
  
  
-diff --git a/lib/exabgp/protocol/iso/__init__.py b/lib/exabgp/protocol/iso/__init__.py
-index fb483d3..fa6a5f2 100644
---- a/lib/exabgp/protocol/iso/__init__.py
-+++ b/lib/exabgp/protocol/iso/__init__.py
-@@ -10,7 +10,7 @@ Copyright (c) 2009-2017 Exa Networks. All rights reserved.
+diff -u -r exabgp-4.2.24/lib/exabgp/protocol/iso/__init__.py Aexabgp-4.2.24/lib/exabgp/protocol/iso/__init__.py
+--- a/lib/exabgp/protocol/iso/__init__.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/protocol/iso/__init__.py	2025-03-15 14:26:19.765652627 -0400
+@@ -10,7 +10,7 @@
  # =========================================================================== ISO
  #
  
@@ -397,11 +357,10 @@ index fb483d3..fa6a5f2 100644
  
  
  class ISO(object):
-diff --git a/lib/exabgp/reactor/api/response/json.py b/lib/exabgp/reactor/api/response/json.py
-index a1fb6e5..6467fa2 100755
---- a/lib/exabgp/reactor/api/response/json.py
-+++ b/lib/exabgp/reactor/api/response/json.py
-@@ -14,7 +14,7 @@ import sys
+diff -u -r exabgp-4.2.24/lib/exabgp/reactor/api/response/json.py Aexabgp-4.2.24/lib/exabgp/reactor/api/response/json.py
+--- a/lib/exabgp/reactor/api/response/json.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/reactor/api/response/json.py	2025-03-15 14:26:19.738986017 -0400
+@@ -14,7 +14,7 @@
  import time
  import signal
  
@@ -410,11 +369,10 @@ index a1fb6e5..6467fa2 100755
  
  from exabgp.util import hexstring
  
-diff --git a/lib/exabgp/reactor/asynchronous.py b/lib/exabgp/reactor/asynchronous.py
-index 837a4ff..6f5bcc2 100644
---- a/lib/exabgp/reactor/asynchronous.py
-+++ b/lib/exabgp/reactor/asynchronous.py
-@@ -10,7 +10,7 @@ License: 3-clause BSD. (See the COPYRIGHT file)
+diff -u -r exabgp-4.2.24/lib/exabgp/reactor/asynchronous.py Aexabgp-4.2.24/lib/exabgp/reactor/asynchronous.py
+--- a/lib/exabgp/reactor/asynchronous.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/reactor/asynchronous.py	2025-03-15 14:26:19.735652691 -0400
+@@ -10,7 +10,7 @@
  from collections import deque
  
  from exabgp.logger import Logger
@@ -423,11 +381,10 @@ index 837a4ff..6f5bcc2 100644
  
  
  class ASYNC(object):
-diff --git a/lib/exabgp/reactor/keepalive.py b/lib/exabgp/reactor/keepalive.py
-index 3ad9937..f986e9a 100644
---- a/lib/exabgp/reactor/keepalive.py
-+++ b/lib/exabgp/reactor/keepalive.py
-@@ -6,7 +6,7 @@ Created by Thomas Mangin on 2009-08-25.
+diff -u -r exabgp-4.2.24/lib/exabgp/reactor/keepalive.py Aexabgp-4.2.24/lib/exabgp/reactor/keepalive.py
+--- a/lib/exabgp/reactor/keepalive.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/reactor/keepalive.py	2025-03-15 14:26:19.735652691 -0400
+@@ -6,7 +6,7 @@
  Copyright (c) 2017-2017 Exa Networks. All rights reserved.
  """
  
@@ -436,10 +393,9 @@ index 3ad9937..f986e9a 100644
  
  from exabgp.bgp.timer import SendTimer
  from exabgp.bgp.message import Notify
-diff --git a/lib/exabgp/reactor/network/outgoing.py b/lib/exabgp/reactor/network/outgoing.py
-index 892342d..94d9180 100644
---- a/lib/exabgp/reactor/network/outgoing.py
-+++ b/lib/exabgp/reactor/network/outgoing.py
+diff -u -r exabgp-4.2.24/lib/exabgp/reactor/network/outgoing.py Aexabgp-4.2.24/lib/exabgp/reactor/network/outgoing.py
+--- a/lib/exabgp/reactor/network/outgoing.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/reactor/network/outgoing.py	2025-03-15 14:26:19.732319365 -0400
 @@ -1,6 +1,6 @@
  import time
  
@@ -448,11 +404,10 @@ index 892342d..94d9180 100644
  
  from exabgp.protocol.family import AFI
  from .connection import Connection
-diff --git a/lib/exabgp/reactor/peer.py b/lib/exabgp/reactor/peer.py
-index 6cd6cb1..3670f51 100644
---- a/lib/exabgp/reactor/peer.py
-+++ b/lib/exabgp/reactor/peer.py
-@@ -11,7 +11,7 @@ import time
+diff -u -r exabgp-4.2.24/lib/exabgp/reactor/peer.py Aexabgp-4.2.24/lib/exabgp/reactor/peer.py
+--- a/lib/exabgp/reactor/peer.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/reactor/peer.py	2025-03-15 14:26:19.735652691 -0400
+@@ -11,7 +11,7 @@
  from collections import defaultdict
  
  # import traceback
@@ -461,11 +416,10 @@ index 6cd6cb1..3670f51 100644
  from exabgp.util import ordinal
  from exabgp.bgp.timer import ReceiveTimer
  from exabgp.bgp.message import Message
-diff --git a/lib/exabgp/reactor/protocol.py b/lib/exabgp/reactor/protocol.py
-index 1c4b038..fef51ad 100644
---- a/lib/exabgp/reactor/protocol.py
-+++ b/lib/exabgp/reactor/protocol.py
-@@ -9,7 +9,7 @@ License: 3-clause BSD. (See the COPYRIGHT file)
+diff -u -r exabgp-4.2.24/lib/exabgp/reactor/protocol.py Aexabgp-4.2.24/lib/exabgp/reactor/protocol.py
+--- a/lib/exabgp/reactor/protocol.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/reactor/protocol.py	2025-03-15 14:26:19.745652670 -0400
+@@ -9,7 +9,7 @@
  
  import os
  
@@ -474,11 +428,10 @@ index 1c4b038..fef51ad 100644
  import traceback
  
  # ================================================================ Registration
-diff --git a/lib/exabgp/rib/outgoing.py b/lib/exabgp/rib/outgoing.py
-index 00b2495..a7907cc 100644
---- a/lib/exabgp/rib/outgoing.py
-+++ b/lib/exabgp/rib/outgoing.py
-@@ -21,7 +21,7 @@ from exabgp.rib.cache import Cache
+diff -u -r exabgp-4.2.24/lib/exabgp/rib/outgoing.py Aexabgp-4.2.24/lib/exabgp/rib/outgoing.py
+--- a/lib/exabgp/rib/outgoing.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/rib/outgoing.py	2025-03-15 14:26:19.772319279 -0400
+@@ -21,7 +21,7 @@
  if sys.version_info[0] >= 3 and sys.version_info[1] >= 6:
      RIBdict = dict
  else:
@@ -487,11 +440,10 @@ index 00b2495..a7907cc 100644
  
  
  class OutgoingRIB(Cache):
-diff --git a/lib/exabgp/util/coroutine.py b/lib/exabgp/util/coroutine.py
-index a54b0bd..7e6bbbb 100644
---- a/lib/exabgp/util/coroutine.py
-+++ b/lib/exabgp/util/coroutine.py
-@@ -8,7 +8,7 @@ License: 3-clause BSD. (See the COPYRIGHT file)
+diff -u -r exabgp-4.2.24/lib/exabgp/util/coroutine.py Aexabgp-4.2.24/lib/exabgp/util/coroutine.py
+--- a/lib/exabgp/util/coroutine.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/util/coroutine.py	2025-03-15 14:26:19.745652670 -0400
+@@ -8,7 +8,7 @@
  """
  
  from functools import wraps
@@ -500,11 +452,10 @@ index a54b0bd..7e6bbbb 100644
  
  
  def each(function):
-diff --git a/lib/exabgp/util/trace.py b/lib/exabgp/util/trace.py
-index a5a3a91..f23acb2 100644
---- a/lib/exabgp/util/trace.py
-+++ b/lib/exabgp/util/trace.py
-@@ -9,7 +9,7 @@ License: 3-clause BSD. (See the COPYRIGHT file)
+diff -u -r exabgp-4.2.24/lib/exabgp/util/trace.py Aexabgp-4.2.24/lib/exabgp/util/trace.py
+--- a/lib/exabgp/util/trace.py	2025-03-10 17:54:24.000000000 -0400
++++ b/lib/exabgp/util/trace.py	2025-03-15 14:26:19.745652670 -0400
+@@ -9,7 +9,7 @@
  
  import traceback
  
@@ -513,28 +464,10 @@ index a5a3a91..f23acb2 100644
  
  
  def trace():
-diff --git a/lib/exabgp/vendoring/cmd2.py b/lib/exabgp/vendoring/cmd2.py
-index 9b179ec..d7e5c38 100644
---- a/lib/exabgp/vendoring/cmd2.py
-+++ b/lib/exabgp/vendoring/cmd2.py
-@@ -38,10 +38,10 @@ import glob
- import traceback
- import platform
- import copy
--from exabgp.vendoring import six
-+import six
- from code import InteractiveConsole, InteractiveInterpreter
- from optparse import make_option
--from exabgp.vendoring import pyparsing
-+import pyparsing
- 
- __version__ = '0.6.8'
- 
-diff --git a/qa/tests/cache_test.py b/qa/tests/cache_test.py
-index 3a8dc94..721f85c 100755
---- a/qa/tests/cache_test.py
-+++ b/qa/tests/cache_test.py
-@@ -12,9 +12,9 @@ import unittest
+diff -u -r exabgp-4.2.24/qa/tests/cache_test.py Aexabgp-4.2.24/qa/tests/cache_test.py
+--- a/qa/tests/cache_test.py	2025-03-10 17:54:24.000000000 -0400
++++ b/qa/tests/cache_test.py	2025-03-15 14:26:19.708986082 -0400
+@@ -12,9 +12,9 @@
  
  import time
  from exabgp.util.cache import Cache
@@ -546,11 +479,10 @@ index 3a8dc94..721f85c 100755
  
  
  class TestCache(unittest.TestCase):
-diff --git a/qa/tests/connection.py b/qa/tests/connection.py
-index 1586daf..8092ea5 100755
---- a/qa/tests/connection.py
-+++ b/qa/tests/connection.py
-@@ -15,7 +15,7 @@ import cProfile
+diff -u -r exabgp-4.2.24/qa/tests/connection.py Aexabgp-4.2.24/qa/tests/connection.py
+--- a/qa/tests/connection.py	2025-03-10 17:54:24.000000000 -0400
++++ b/qa/tests/connection.py	2025-03-15 14:26:19.708986082 -0400
+@@ -15,7 +15,7 @@
  import unittest
  
  from exabgp.util.od import od
@@ -559,11 +491,10 @@ index 1586daf..8092ea5 100755
  
  
  def test():
-diff --git a/qa/tests/protocol.py b/qa/tests/protocol.py
-index 67e8e21..31c8a03 100755
---- a/qa/tests/protocol.py
-+++ b/qa/tests/protocol.py
-@@ -23,8 +23,8 @@ from exabgp.bgp.message.update import Attributes
+diff -u -r exabgp-4.2.24/qa/tests/protocol.py Aexabgp-4.2.24/qa/tests/protocol.py
+--- a/qa/tests/protocol.py	2025-03-10 17:54:24.000000000 -0400
++++ b/qa/tests/protocol.py	2025-03-15 14:26:19.708986082 -0400
+@@ -23,8 +23,8 @@
  from exabgp.reactor.protocol import Protocol
  from exabgp.bgp.neighbor import Neighbor