It seems that bagpipe-bgp service can't start when "peers" config option has IPv6 address configured.
We are trying to add ipv6 only neutron-tempest-plugin job for stadium projects [1] and it's failing due to that:
Dec 12 01:22:03.596425 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon [-] Error while starting BGP daemon: oslo_config.cfg.ConfigFileValueError: Value for option peers from LocationInfo(location=<Locations.user: (4, True)>, detail='') is not valid: [2001:4801:7828:104:be76:4eff:fe10:2d8b] is not a valid host address
Dec 12 01:22:03.596425 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon Traceback (most recent call last):
Dec 12 01:22:03.596425 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/oslo_config/types.py", line 844, in __call__
Dec 12 01:22:03.596425 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon value = self.ip_address(value)
Dec 12 01:22:03.596425 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/oslo_config/types.py", line 730, in __call__
Dec 12 01:22:03.596425 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon self.version_checker(value)
Dec 12 01:22:03.596425 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/oslo_config/types.py", line 741, in _check_ipv4
Dec 12 01:22:03.596425 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon raise ValueError("%s is not an IPv4 address" % address)
Dec 12 01:22:03.596425 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon ValueError: [2001:4801:7828:104:be76:4eff:fe10:2d8b] is not an IPv4 address
Dec 12 01:22:03.596425 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon
Dec 12 01:22:03.596425 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon During handling of the above exception, another exception occurred:
Dec 12 01:22:03.596425 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon
Dec 12 01:22:03.596425 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon Traceback (most recent call last):
Dec 12 01:22:03.596425 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/oslo_config/types.py", line 847, in __call__
Dec 12 01:22:03.596425 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon value = self.hostname(value)
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/oslo_config/types.py", line 800, in __call__
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon raise ValueError("%s is an invalid hostname" % value)
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon ValueError: [2001:4801:7828:104:be76:4eff:fe10:2d8b] is an invalid hostname
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon During handling of the above exception, another exception occurred:
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon Traceback (most recent call last):
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/oslo_config/cfg.py", line 2689, in _do_get
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon return (convert(val), alt_loc)
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/oslo_config/cfg.py", line 2660, in convert
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon self._substitute(value, group, namespace), opt)
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/oslo_config/cfg.py", line 2782, in _convert_value
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon return opt.type(value)
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/oslo_config/types.py", line 515, in __call__
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon raise first_error
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/oslo_config/types.py", line 509, in __call__
Dec 12 01:22:03.598757 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon validated_value = self.item_type(value.strip())
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/oslo_config/types.py", line 849, in __call__
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon raise ValueError("%s is not a valid host address" % (value,))
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon ValueError: [2001:4801:7828:104:be76:4eff:fe10:2d8b] is not a valid host address
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon During handling of the above exception, another exception occurred:
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon Traceback (most recent call last):
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/opt/stack/networking-bagpipe/networking_bagpipe/bagpipe_bgp/bgp_daemon.py", line 98, in daemon_main
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon pecan_api = api.PecanAPI()
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/opt/stack/networking-bagpipe/networking_bagpipe/bagpipe_bgp/api/api.py", line 58, in __init__
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon app = setup_app()
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/opt/stack/networking-bagpipe/networking_bagpipe/bagpipe_bgp/api/api.py", line 43, in setup_app
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon guess_content_type_from_ext=True
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/pecan/__init__.py", line 86, in make_app
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon app = Pecan(root, **kw)
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/pecan/core.py", line 832, in __init__
Dec 12 01:22:03.601193 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon super(Pecan, self).__init__(*args, **kw)
Dec 12 01:22:03.603483 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/pecan/core.py", line 240, in __init__
Dec 12 01:22:03.603483 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon root = self.__translate_root__(root)
Dec 12 01:22:03.603483 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/pecan/core.py", line 275, in __translate_root__
Dec 12 01:22:03.603483 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon module = __import__(name, fromlist=fromlist)
Dec 12 01:22:03.603483 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/opt/stack/networking-bagpipe/networking_bagpipe/bagpipe_bgp/api/controllers.py", line 349, in <module>
Dec 12 01:22:03.603483 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon class RootController(object):
Dec 12 01:22:03.603483 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/opt/stack/networking-bagpipe/networking_bagpipe/bagpipe_bgp/api/controllers.py", line 362, in RootController
Dec 12 01:22:03.603483 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon attach_localport = AttachController()
Dec 12 01:22:03.603483 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/opt/stack/networking-bagpipe/networking_bagpipe/bagpipe_bgp/api/controllers.py", line 67, in __init__
Dec 12 01:22:03.603483 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon self.manager = vpn_manager.VPNManager.get_instance()
Dec 12 01:22:03.603483 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/opt/stack/networking-bagpipe/networking_bagpipe/bagpipe_bgp/vpn/manager.py", line 495, in get_instance
Dec 12 01:22:03.603483 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon cls._create_instance()
Dec 12 01:22:03.603483 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/oslo_concurrency/lockutils.py", line 359, in inner
Dec 12 01:22:03.603483 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon return f(*args, **kwargs)
Dec 12 01:22:03.603483 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/opt/stack/networking-bagpipe/networking_bagpipe/bagpipe_bgp/vpn/manager.py", line 481, in _create_instance
Dec 12 01:22:03.605629 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon cls._instance = cls()
Dec 12 01:22:03.605629 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/opt/stack/networking-bagpipe/networking_bagpipe/bagpipe_bgp/common/log_decorator.py", line 39, in wrapper
Dec 12 01:22:03.605629 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon return method(*args, **kwargs)
Dec 12 01:22:03.605629 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/opt/stack/networking-bagpipe/networking_bagpipe/bagpipe_bgp/vpn/manager.py", line 69, in __init__
Dec 12 01:22:03.605629 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon self.bgp_manager = bgp_manager.Manager()
Dec 12 01:22:03.605629 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/opt/stack/networking-bagpipe/networking_bagpipe/bagpipe_bgp/engine/bgp_manager.py", line 60, in __init__
Dec 12 01:22:03.605629 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon if cfg.CONF.BGP.peers:
Dec 12 01:22:03.605629 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/oslo_config/cfg.py", line 3130, in __getattr__
Dec 12 01:22:03.605629 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon return self._conf._get(name, self._group)
Dec 12 01:22:03.605629 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/oslo_config/cfg.py", line 2627, in _get
Dec 12 01:22:03.605629 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon value, loc = self._do_get(name, group, namespace)
Dec 12 01:22:03.605629 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon File "/usr/local/lib/python3.6/dist-packages/oslo_config/cfg.py", line 2701, in _do_get
Dec 12 01:22:03.605629 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon raise ConfigFileValueError(message)
Dec 12 01:22:03.605629 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon oslo_config.cfg.ConfigFileValueError: Value for option peers from LocationInfo(location=<Locations.user: (4, True)>, detail='') is not valid: [2001:4801:7828:104:be76:4eff:fe10:2d8b] is not a valid host address
Dec 12 01:22:03.605629 ubuntu-bionic-rax-ord-0013344842 bagpipe-bgp[31822]: ERROR networking_bagpipe.bagpipe_bgp.bgp_daemon
[1] https://review.opendev.org/#/c/686043/
This is as much a design limitation than a bug: bagpipe-bgp has not at this point seen anywork to make it work with IPv6, nor for BGP peerings or inside BGP VPNs.