Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 2249766

Summary: Not able to configure multiple VLANs for bond interface and assign it to seperate ovs_bridge
Product: Red Hat OpenStack Reporter: Vijayalakshmi Candappa <vcandapp>
Component: os-net-configAssignee: Vijayalakshmi Candappa <vcandapp>
Status: CLOSED MIGRATED QA Contact: Eran Kuris <ekuris>
Severity: high Docs Contact:
Priority: medium    
Version: 17.1 (Wallaby)CC: bfournie, cfontain, hakhande, jslagle, mburns, njohnston
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-12-10 17:50:39 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Vijayalakshmi Candappa 2023-11-15 08:47:27 UTC
Description of problem:
While trying to create 2 different ovs_bridges with 2 vlan from the same PHY bond, os-net-config (with nmstate provider) failed with the following error message:

os_net_config.impl_nmstate:Overall rules\nroute-rules:\n  config: []\n\nDEBUG:os_net_config.impl_nmstate:----------------------------\nDEBUG:os_net_config.impl_nmstate:Overall DNS\ndns-resolver:\n  config:\n    search: []\n    server: []\n\nDEBUG:os_net_config.impl_nmstate:----------------------------\nDEBUG:os_net_config.impl_nmstate:Applying the config with nmstate\ndns-resolver:\n  config:\n    search: []\n    server: []\ninterfaces:\n- ethernet: {}\n  ipv4:\n    auto-dns: true\n    auto-gateway: true\n    auto-routes: true\n    dhcp: true\n    enabled: true\n  ipv6:\n    autoconf: false\n    dhcp: false\n    enabled: false\n  name: eno1\n  state: up\n  type: ethernet\n- ethernet: {}\n  ipv4:\n    address:\n    - ip: 192.168.91.18\n      prefix-length: 24\n    dhcp: false\n    enabled: true\n  ipv6:\n    autoconf: false\n    dhcp: false\n    enabled: false\n  name: eno2\n  state: up\n  type: ethernet\n- ethernet: {}\n  ipv4:\n    dhcp: false\n    enabled: false\n  ipv6:\n    autoconf: false\n    dhcp: false\n    enabled: false\n  name: eno3\n  state: up\n  type: ethernet\n- ethernet: {}\n  ipv4:\n    dhcp: false\n    enabled: false\n  ipv6:\n    autoconf: false\n    dhcp: false\n    enabled: false\n  name: eno4\n  state: up\n  type: ethernet\n- ipv4:\n    dhcp: false\n    enabled: false\n  ipv6:\n    autoconf: false\n    dhcp: false\n    enabled: false\n  name: br-tenant-1-p\n  state: up\n  type: ovs-interface\n- ipv4:\n    dhcp: false\n    enabled: false\n  ipv6:\n    autoconf: false\n    dhcp: false\n    enabled: false\n  link-aggregation:\n    mode: 802.3ad\n    port:\n    - eno3\n    - eno4\n  mtu: 9000\n  name: bond_erog\n  state: up\n  type: bond\n- ipv4:\n    dhcp: false\n    enabled: false\n  ipv6:\n    autoconf: false\n    dhcp: false\n    enabled: false\n  name: br-tenant-2-p\n  state: up\n  type: ovs-interface\n- bridge:\n    options:\n      fail-mode: standalone\n      mcast-snooping-enable: false\n      rstp: false\n      stp: false\n    port:\n    - name: bond_erog\n    - name: vlan508\n      vlan:\n        mode: access\n        tag: 508\n    - name: br-tenant-1-p\n  name: br-tenant-1\n  ovs-db:\n    external_ids: {}\n    other_config: {}\n  state: up\n  type: ovs-bridge\n- bridge:\n    options:\n      fail-mode: standalone\n      mcast-snooping-enable: false\n      rstp: false\n      stp: false\n    port:\n    - name: bond_erog\n    - name: vlan509\n      vlan:\n        mode: access\n        tag: 509\n    - name: br-tenant-2-p\n  name: br-tenant-2\n  ovs-db:\n    external_ids: {}\n    other_config: {}\n  state: up\n  type: ovs-bridge\n- ipv4:\n    address:\n    - ip: 152.50.32.41\n      prefix-length: 24\n    dhcp: false\n    enabled: true\n  ipv6:\n    autoconf: false\n    dhcp: false\n    enabled: false\n  name: vlan504\n  state: up\n  type: vlan\n  vlan:\n    base-iface: eno2\n    id: 504\n- ipv4:\n    address:\n    - ip: 152.50.16.188\n      prefix-length: 24\n    dhcp: false\n    enabled: true\n  ipv6:\n    autoconf: false\n    dhcp: false\n    enabled: false\n  name: vlan502\n  state: up\n  type: vlan\n  vlan:\n    base-iface: eno2\n    id: 502\n- ipv4:\n    address:\n    - ip: 192.168.160.13\n      prefix-length: 24\n    dhcp: false\n    enabled: true\n  ipv6:\n    autoconf: false\n    dhcp: false\n    enabled: false\n  name: vlan508\n  state: up\n  type: ovs-interface\n- ipv4:\n    address:\n    - ip: 192.178.170.13\n      prefix-length: 24\n    dhcp: false\n    enabled: true\n  ipv6:\n    autoconf: false\n    dhcp: false\n    enabled: false\n  name: vlan509\n  state: up\n  type: ovs-interface\nroute-rules:\n  config: []\nroutes:\n  config:\n  - destination: 169.254.169.254/32\n    next-hop-address: 192.168.91.18\n    next-hop-interface: eno2\n  - destination: 0.0.0.0/0\n    next-hop-address: 192.168.91.18\n    next-hop-interface: eno2\n\nWARNING:root:1699874684:nispor::query::ethtool:/builddir/.cargo/registry/src/github.com-1ecc6299db9ec823/nispor-1.2.14/query/ethtool.rs:480: WARN: Unsupported EthtoolCoalesceAttr Other(DefaultNla { kind: 24, value: [0] })\nWARNING:root:1699874684:nispor::query::ethtool:/builddir/.cargo/registry/src/github.com-1ecc6299db9ec823/nispor-1.2.14/query/ethtool.rs:480: WARN: Unsupported EthtoolCoalesceAttr Other(DefaultNla { kind: 25, value: [1] })\nWARNING:root:1699874684:nispor::query::ethtool:/builddir/.cargo/registry/src/github.com-1ecc6299db9ec823/nispor-1.2.14/query/ethtool.rs:480: WARN: Unsupported EthtoolCoalesceAttr Other(DefaultNla { kind: 24, value: [0] })\nWARNING:root:1699874684:nispor::query::ethtool:/builddir/.cargo/registry/src/github.com-1ecc6299db9ec823/nispor-1.2.14/query/ethtool.rs:480: WARN: Unsupported EthtoolCoalesceAttr Other(DefaultNla { kind: 25, value: [1] })\nWARNING:root:1699874684:nispor::query::ethtool:/builddir/.cargo/registry/src/github.com-1ecc6299db9ec823/nispor-1.2.14/query/ethtool.rs:523: WARN: Unsupported EthtoolRingAttr TcpDataSplit(1)\nWARNING:root:1699874684:nispor::query::ethtool:/builddir/.cargo/registry/src/github.com-1ecc6299db9ec823/nispor-1.2.14/query/ethtool.rs:523: WARN: Unsupported EthtoolRingAttr TcpDataSplit(1)\nERROR:root:1699874684:nmstate::ifaces::inter_ifaces_controller:src/lib/ifaces/inter_ifaces_controller.rs:23: InvalidArgument: Port bond_erog is overbooked by two controller: br-tenant-2, br-tenant-1\nTraceback (most recent call last):\n  File \"/bin/os-net-config\", line 10, in <module>\n    sys.exit(main())\n  File \"/usr/lib/python3.9/site-packages/os_net_config/cli.py\", line 346, in main\n    files_changed = provider.apply(cleanup=opts.cleanup,\n  File \"/usr/lib/python3.9/site-packages/os_net_config/impl_nmstate.py\", line 1619, in apply\n    self.nmstate_apply(apply_data, verify=True)\n  File \"/usr/lib/python3.9/site-packages/os_net_config/impl_nmstate.py\", line 490, in nmstate_apply\n    netapplier.apply(new_state, verify_change=verify)\n  File \"/usr/lib/python3.9/site-packages/libnmstate/netapplier.py\", line 29, in apply\n    return apply_net_state(\n  File \"/usr/lib/python3.9/site-packages/libnmstate/clib_wrapper.py\", line 127, in apply_net_state\n    raise map_error(err_kind, err_msg)\nlibnmstate.error.NmstateValueError: Port bond_erog is overbooked by two controller: br-tenant-2, br-tenant-1\n",


Version-Release number of selected component (if applicable):
(undercloud) [stack@undercloud-0 ~]$ cat core_puddle_version 
RHOS-17.1-RHEL-9-20230925.n.1(undercloud)

How reproducible:
Always

Steps to Reproduce:
1. Set "nmstate" as provider for os-net-config
2. Try to do node provision with following nic template:

- type: linux_bond
  name: bond_erog
  use_dhcp: false
  bonding_options: "mode=802.3ad"
  mtu: 9000
  members:
  - type: interface
    name: nic3
    primary: true
  - type: interface
    name: nic4

- type: ovs_bridge
  name: br-tenant-1
  mtu: 1350
  use_dhcp: false
  routes: []
  members:
  - type: interface
    name: bond_erog.508
    addresses:
    - ip_netmask: 163.162.31.101/28

- type: ovs_bridge
  name: br-tenant-2
  mtu: 1350
  use_dhcp: false
  members:
  - type: interface
    name: bond_erog.509
    addresses:
    - ip_netmask: 163.162.21.201/28

3. 

Actual results:
Node provision fails

Expected results:
Node provision should be successful 


Additional info: