Drop os-ken dependency

* Switch to python-docker library to start containers
* Switch to FRR image
* Improve bgp output parsing by using json
* Allow to run tests on multinode environment.
* Allow to run tests from tesmest running in container.
* Move base tests to ipv4 tests.

Related-Prod: PRODX-31417
Change-Id: Ic78a3b5d092aa9a6fd8343a856ef188dafe70b49
diff --git a/neutron_tempest_plugin/config.py b/neutron_tempest_plugin/config.py
index e5d7eb7..af75385 100644
--- a/neutron_tempest_plugin/config.py
+++ b/neutron_tempest_plugin/config.py
@@ -207,6 +207,47 @@
 CONF.register_group(bgpvpn_group)
 CONF.register_opts(BgpvpnGroup, group="bgpvpn")
 
+
+DynamicRoutingGroup = [
+    cfg.StrOpt('frr_docker_image',
+               default='quay.io/frrouting/frr:8.5.0',
+               help=("Docker image with frr.")),
+    cfg.ListOpt('frr_provider_ipv4_ips',
+                default=["10.11.12.71/24", "10.11.12.72/24", "10.11.12.73/24",
+                         "10.11.12.74/24", "10.11.12.75/24", "10.11.12.76/24"],
+                help=('List of ip addresses to bind frr containers. Require '
+                     'at least 3 items per class to run tests simulteniously. '
+                     'The addresses should be assigned on interface with '
+                     'tempest node.')),
+    cfg.ListOpt('frr_provider_ipv6_ips',
+                default=["2001:db8:a000::7001/64", "2001:db8:a000::7002/64",
+                         "2001:db8:a000::7003/64", "2001:db8:a000::7004/64",
+                         "2001:db8:a000::7005/64", "2001:db8:a000::7006/64"],
+                help=('List of ip addresses to bind frr containers. Require '
+                     'at least 3 items per class to run tests simulteniously. '
+                     'The addresses should be assigned on interface with '
+                     'tempest node.')),
+    cfg.BoolOpt('frr_bgp_ipv6_enabled',
+                default=False,
+                help=("Run dynamic routing ipv6 tests.")),
+    cfg.IntOpt('frr_bgp_timeout',
+               default=600,
+               help=('Timeout for bgp operation like setup neighborship '
+                    'or route update.')),
+    cfg.StrOpt('frr_bgp_ipv4_control_cidr',
+               default='10.0.0.0/8',
+               help=("CIDR for bgp control network on gateway nodes. Is "
+                     "used as allowed range for dynamic neighbors.")),
+    cfg.StrOpt('frr_bgp_ipv6_control_cidr',
+               default='2001:db8::/32',
+               help=("CIDR for bgp control network on gateway nodes. Is "
+                     "used as allowed range for dynamic neighbors.")),
+]
+dynamic_routing_group = cfg.OptGroup(name="dynamic_routing",
+                                     title=("Networking-DNR Service Options"))
+CONF.register_group(dynamic_routing_group)
+CONF.register_opts(DynamicRoutingGroup, group="dynamic_routing")
+
 # TODO(slaweq): This config option is added to avoid running fwaas tests twice
 # on stable branches till stable/stein. We need to remove this config option
 # once stable/stein is EOL. Fwaas tempest plugin has been merged into