Hello:

In order to avoid the RPC warning messages, please set "rpc_workers=0" [1]. With ML2/OVN there is no need for RPC communication (unless you have baremetal ports and DHCP agents). OVN has a builtin DHCP server.

"ovn-router" and "neutron.services.ovn_l3.plugin.OVNL3RouterPlugin" is the same service, please remove one from your configuration.

Please open a Launchpad bug and provide the logs in DEBUG mode to check what is happening in your environment. If I'm not wrong, you have changed the host name in the ERROR message. Check that the name you have in your local OVS Open vSwitch register is the same as the Neutron name for this node:
root@u22ovn:/etc/neutron# ovs-vsctl list open . | grep external_ids
external_ids        : {hostname=u22ovn, ovn-bridge=br-int, ...}

Regards.

[1]https://review.opendev.org/c/openstack/neutron/+/823637

On Tue, Jan 23, 2024 at 8:57 PM Dmitriy Rabotyagov <noonedeadpunk@gmail.com> wrote:
Hey,

Not sure what specifically is wrong at this point (as not really great expert about ovn at the moment), but would like to ask some more questions which might be relevant.

1. In openstack_user_config how have you defined network-northd_hosts / network-gateway_hosts ?

2. I do see couple of plugins that are not compatible with ovn at least not on existing stable releases, including vpnaas, fwaas, and not sure about neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin since another project intends to provide same functionality:
https://opendev.org/openstack/ovn-bgp-agent

And that one does not work out of the box right now - I was about to check on what's needed to get it working and land support for the upcoming release.

3. I'm also not sure about provided mappings, since it seems you wanna have both flat and vlan network, while providing only 1 mapping.
In ovs at least (I think ovn is same here) if you have only 1 interface for both cases (flat and vlan) - the only way to have both is map "flat" network as tagged vlan. As interface is added to the bridge and then can't be re-used as other "provider" type.

On Tue, Jan 23, 2024, 20:17 jjjamesg <jjjamesg@proton.me> wrote:
I can't for the life of me get external connectivity working, openstack itself works i just cant get external connectivity working, 

I can see ovs has created br-ex with bond1 attached.
ovs-vsctl get open . external_ids:ovn-bridge-mapping shows: "physnst1:br-ex"

I have tried creating the network with both:

openstack network create  --share --external --provider-physical-network physnet1 --provider-network-type vlan --provider-segment 233 public
openstack network create  --share --external --provider-physical-network physnet1 --provider-network-type flat publicnet-flat

Only errors i can see is in the neutron container when i try and either create an instance on said network or attach a fip is is:
(similar errors from a vlan type network this is just the error i pulled at the time)

ERROR neutron.plugins.ml2.managers [req-de7f1cb8-ac8e-4dd6-ad2a-e14afdb152b5 req-c6a2aaff-ccf9-4ef3-9ef
7-1a8e4c7a1e41 9c27de6bdc4449abbbbcd5e5c4951bb9 2fced1ff77f5428eb2b63879bdd608cc - - default default] Failed to bind port 03cc1708-d4a2-4b11-bca2-40ebe0acff60 on host 02 for vnic_type normal using segments [{'id': '2ef64682-b5ff-472b-935d-a3c2b615d70f', 'network_type': 'flat', 'physical_network': 'physnet1', 'segmentation_id': None, 'network_id': '52b4f4e9-47f3-431b-8c45-ec8cc17f561d'}]

 WARNING neutron.scheduler.dhcp_agent_scheduler [None req-aafa81d9-479c-4f56-be6f-54d4ab3b42aa 1b29a
2297a224cdcaaba84e0eac30205 bafabcf2414d4adf98cab165c3f3de12 - - default default] No more DHCP agents            

 WARNING neutron.api.rpc.agentnotifiers.dhcp_rpc_agent_api [None req-aafa81d9-479c-4f56-be6f-54d4ab3
b42aa 1b29a2297a224cdcaaba84e0eac30205 bafabcf2414d4adf98cab165c3f3de12 - - default default] Unable to schedule network 5fa049f5-0ed4-4287-9c63-dd753c853c35: no agents available; will retry on subsequent port and subnet creation events.

I just cant figure out WHY this isn't working..

Below is my config:

#############
### /etc/network/interfaces:
#############

auto bond1
iface bond1 inet manual
    bond-slaves eno2 eno4
    bond-mode 802.3ad
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200
    bond-lacp-rate 1
    mtu 9000

auto bond1.30
iface bond1.30 inet manual
    vlan-raw-device bond1

## (br-pubv is for my public vip)
auto bond1.232
iface bond1.232 inet manual
    vlan-raw-device bond1

auto br-overlay
iface br-overlay inet static
    bridge_stp off
    bridge_waitport 0
    bridge_fd 0
    bridge_ports bond1.30
    address
auto br-pubv
iface br-pubv inet static
    address
    gateway
    bridge_stp off
    bridge_waitport 0
    bridge_fd 0
    bridge_ports bond1.232


#############
### openstack_user_config.yml:
#############

    - network:
        container_bridge: "br-ex"
        network_interface: "bond1"
        type: "vlan"
        range: "232:332"
        net_name: "physnet1"
        group_binds:
          - neutron_ovn_controller

#############
###  user_variables.yml
#############

neutron_plugin_type: ml2.ovn
neutron_plugin_base:
  - ovn-router
  - qos
  - neutron.services.ovn_l3.plugin.OVNL3RouterPlugin
  - neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin
  - vpnaas
  - metering
  - firewall_v2
neutron_ml2_drivers_type: "vlan,local,geneve,flat"

neutron_provider_networks:
  network_types: "geneve"
  network_geneve_ranges: "1:1000"
  network_vlan_ranges: "physnet1"
  network_mappings: "physnet1:br-ex"
  network_interface_mappings: "br-ex:bond1"

Bond1 is a trunk port (no native vlan), that has access to both overlay vlan and the 232:332 vlan range which both work when setting either network as a bridge on bond1 so connectivity is there.

I have network-northd/gateway_hosts defined as well as:

neutron_neutron_conf_overrides:
  ovn:
    enable_distributed_floating_ip: True

openstack_host_specific_kernel_modules:
  - name: "openvswitch"
    pattern: "CONFIG_OPENVSWITCH"

This should by all accounts just work, but for some reason for me it's not, what steps have i missed?