RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 2020255 - Nmstate rust should support linux bridge interface
Summary: Nmstate rust should support linux bridge interface
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: nmstate
Version: 8.5
Hardware: x86_64
OS: Linux
high
high
Target Milestone: rc
: ---
Assignee: Gris Ge
QA Contact: Mingyu Shi
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-11-04 13:21 UTC by Gris Ge
Modified: 2022-10-19 16:45 UTC (History)
5 users (show)

Fixed In Version: nmstate-1.2.0-0.1.alpha2.el8
Doc Type: No Doc Update
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-05-10 13:34:48 UTC
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github nmstate nmstate pull 1736 0 None Merged rust: linux bridge 2021-11-25 13:08:38 UTC
Red Hat Issue Tracker RHELPLAN-101752 0 None None None 2021-11-04 13:22:15 UTC
Red Hat Product Errata RHEA-2022:1772 0 None None None 2022-05-10 13:35:11 UTC

Description Gris Ge 2021-11-04 13:21:34 UTC
Description of problem:

Nmstate rust command line tool `ncl` should provide identical feature support for linux bridge as `nmstatectl` did.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Fernando F. Mancera 2021-12-01 11:58:26 UTC
I have tested this patch. It is working as expected. In addition, integration tests are passing!

Comment 5 Mingyu Shi 2022-01-10 11:40:41 UTC
Verified with versions:
nmstate-1.2.0-1.el8.x86_64
nispor-1.2.2-1.el8.x86_64
NetworkManager-1.36.0-0.3.el8.x86_64

[19:34:11@mshi860 ~/repo-nmstate/linux-bridge]0# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:9c:f9:3f brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:47:d8:48 brd ff:ff:ff:ff:ff:ff
96: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 66:00:44:5d:10:de brd ff:ff:ff:ff:ff:ff
[19:34:19@mshi860 ~/repo-nmstate/linux-bridge]0# nmstatectl-rust apply br0_default_options.yaml
---
interfaces:
  - name: br0
    type: linux-bridge
    state: up
    mac-address: "2E:34:06:69:F5:8A"
    mtu: 1500
    ipv4:
      enabled: false
    ipv6:
      enabled: false
    bridge:
      options:
        group-addr: "01:80:C2:00:00:00"
        group-forward-mask: 0
        group-fwd-mask: 0
        hash-max: 4096
        mac-ageing-time: 300
        multicast-last-member-count: 2
        multicast-last-member-interval: 100
        multicast-membership-interval: 26000
        multicast-querier: false
        multicast-querier-interval: 25500
        multicast-query-interval: 12500
        multicast-query-response-interval: 1000
        multicast-query-use-ifaddr: false
        multicast-router: auto
        multicast-snooping: true
        multicast-startup-query-count: 2
        multicast-startup-query-interval: 3125
        stp:
          enabled: true
          forward-delay: 15
          hello-time: 2
          max-age: 20
          priority: 32768
      port:
        - name: dummy0
          stp-hairpin-mode: false
          stp-path-cost: 100
          stp-priority: 32

[19:34:27@mshi860 ~/repo-nmstate/linux-bridge]0# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:9c:f9:3f brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:47:d8:48 brd ff:ff:ff:ff:ff:ff
96: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 66:00:44:5d:10:de brd ff:ff:ff:ff:ff:ff
97: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/ether 2e:34:06:69:f5:8a brd ff:ff:ff:ff:ff:ff
[19:34:32@mshi860 ~/repo-nmstate/linux-bridge]0# nmstatectl-rust show br0,dummy0
---
interfaces: []
dns-resolver: {}
routes: {}
route-rules: {}

[19:34:45@mshi860 ~/repo-nmstate/linux-bridge]0# nmstatectl-rust show br0
---
interfaces:
  - name: br0
    type: linux-bridge
    state: up
    mac-address: "2E:34:06:69:F5:8A"
    mtu: 1500
    ipv4:
      enabled: false
    ipv6:
      enabled: false
    bridge:
      options:
        gc-timer: 27839
        group-addr: "01:80:C2:00:00:00"
        group-forward-mask: 0
        group-fwd-mask: 0
        hash-max: 4096
        hello-timer: 67
        mac-ageing-time: 300
        multicast-last-member-count: 2
        multicast-last-member-interval: 100
        multicast-membership-interval: 26000
        multicast-querier: false
        multicast-querier-interval: 25500
        multicast-query-interval: 12500
        multicast-query-response-interval: 1000
        multicast-query-use-ifaddr: false
        multicast-router: auto
        multicast-snooping: true
        multicast-startup-query-count: 2
        multicast-startup-query-interval: 3125
        stp:
          enabled: true
          forward-delay: 15
          hello-time: 2
          max-age: 20
          priority: 32768
      port:
        - name: dummy0
          stp-hairpin-mode: false
          stp-path-cost: 100
          stp-priority: 32
dns-resolver: {}
routes: {}
route-rules: {}

[19:34:48@mshi860 ~/repo-nmstate/linux-bridge]0# nmstatectl show br0
---
dns-resolver:
  config: {}
  running:
    search:
    - nay.redhat.com
    - redhat.com
    server:
    - 192.168.122.1
    - 10.72.17.5
    - 10.68.5.26
route-rules:
  config: []
routes:
  config: []
  running: []
interfaces:
- name: br0
  type: linux-bridge
  state: up
  accept-all-mac-addresses: false
  bridge:
    options:
      gc-timer: 27248
      group-addr: 01:80:C2:00:00:00
      group-forward-mask: 0
      hash-max: 4096
      hello-timer: 76
      mac-ageing-time: 300
      multicast-last-member-count: 2
      multicast-last-member-interval: 100
      multicast-querier: false
      multicast-querier-interval: 25500
      multicast-query-interval: 12500
      multicast-query-response-interval: 1000
      multicast-query-use-ifaddr: false
      multicast-router: 1
      multicast-snooping: true
      multicast-startup-query-count: 2
      multicast-startup-query-interval: 3125
      stp:
        enabled: true
        forward-delay: 15
        hello-time: 2
        max-age: 20
        priority: 32768
    port:
    - name: dummy0
      stp-hairpin-mode: false
      stp-path-cost: 100
      stp-priority: 32
  ethtool:
    feature:
      highdma: true
      rx-gro: true
      rx-gro-list: false
      rx-udp-gro-forwarding: false
      tx-checksum-ip-generic: true
      tx-esp-segmentation: true
      tx-fcoe-segmentation: false
      tx-generic-segmentation: true
      tx-gre-csum-segmentation: true
      tx-gre-segmentation: true
      tx-gso-list: false
      tx-gso-partial: true
      tx-gso-robust: false
      tx-ipxip4-segmentation: true
      tx-ipxip6-segmentation: true
      tx-nocache-copy: false
      tx-scatter-gather-fraglist: true
      tx-sctp-segmentation: false
      tx-tcp-ecn-segmentation: true
      tx-tcp-mangleid-segmentation: true
      tx-tcp-segmentation: true
      tx-tcp6-segmentation: true
      tx-tunnel-remcsum-segmentation: true
      tx-udp-segmentation: false
      tx-udp_tnl-csum-segmentation: true
      tx-udp_tnl-segmentation: true
      tx-vlan-hw-insert: true
      tx-vlan-stag-hw-insert: true
  ipv4:
    enabled: false
    address: []
    dhcp: false
  ipv6:
    enabled: false
    address: []
    autoconf: false
    dhcp: false
  lldp:
    enabled: false
  mac-address: 2E:34:06:69:F5:8A
  mtu: 1500
ovs-db:
  external_ids:
    hostname: mshi-rhel-860-202110163
    rundir: /var/run/openvswitch
    system-id: 32e8951d-5f9b-42f8-8d61-70d106538df6
  other_config: {}

nmstate-rust works well for common bridge configuration, but there some issues when changing some options:
serde_yaml::Error: invalid type: integer `1`, expected string or map

I'm investigating, will open a new bug if any problems.

Comment 7 errata-xmlrpc 2022-05-10 13:34:48 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (nmstate bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2022:1772


Note You need to log in before you can comment on or make changes to this bug.