Bug 1969941

Summary: Drop slave/master support from Nmstate
Product: Red Hat Enterprise Linux 9 Reporter: Fernando F. Mancera <ferferna>
Component: nmstateAssignee: Fernando F. Mancera <ferferna>
Status: CLOSED CURRENTRELEASE QA Contact: Mingyu Shi <mshi>
Severity: unspecified Docs Contact: Marc Muehlfeld <mmuehlfe>
Priority: unspecified    
Version: 9.0CC: ferferna, fge, jiji, jishi, jklech, network-qe, till
Target Milestone: betaKeywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: nmstate-2.0.0-0.2.alpha2.el9 Doc Type: Enhancement
Doc Text:
.Making Nmstate more inclusive Red Hat is committed to using conscious language. See details about this initiative in xref:making-open-source-more-inclusive[]. Therefore the `slave` term in the `nmstate` API has been replaced by the term `port`.
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-12-07 22:04:56 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:

Description Fernando F. Mancera 2021-06-09 13:49:36 UTC
Description of problem:

Nmstate will drop the "slave" and "master" support from the API and schema.

Expected results:

"slave" and "master" is not supported anymore.

Comment 1 Mingyu Shi 2021-06-10 02:30:16 UTC
Does it mean the obsoleted `slaves` for bond in a yaml file will cause an error?

Comment 2 Fernando F. Mancera 2021-06-25 10:09:27 UTC
(In reply to Mingyu Shi from comment #1)
> Does it mean the obsoleted `slaves` for bond in a yaml file will cause an
> error?

Hi Mingyu, yes it would mean that. "slaves" will be an unrecognized parameter.

Upstream patch: https://github.com/nmstate/nmstate/pull/1655/commits/e18e042ba355dd834b9c527024ff193746c2f659

Comment 5 Mingyu Shi 2021-07-11 08:46:41 UTC
Hi Fernando,

"slaves" in a yaml file is still usable here, can you take a look please? The version is nmstate-2.0.0-0.1.alpha1.el9.noarch
[16:42:49@hp-dl380-gen9-4 ~]0# \nmstatectl set bond.yaml 
/usr/lib/python3.9/site-packages/nmstatectl/nmstatectl.py:323: UserWarning: Using 'set' is deprecated, use 'apply' instead.
  warnings.warn("Using 'set' is deprecated, use 'apply' instead.")
2021-07-11 16:42:59,516 root         DEBUG    Nmstate version: 2.0.0
2021-07-11 16:42:59,517 root         DEBUG    Applying desire state: {'interfaces': [{'name': 'bond0', 'type': 'bond', 'state': 'up', 'link-aggregation': {'mode': 'balance-rr', 'slaves': ['veth0']}}]}
2021-07-11 16:42:59,566 root         DEBUG    NetworkManager version 1.32.0
2021-07-11 16:42:59,570 root         DEBUG    Async action: Retrieve applied config: ethernet eno1 started
2021-07-11 16:42:59,570 root         DEBUG    Async action: Retrieve applied config: ethernet veth0_ep started
2021-07-11 16:42:59,572 root         DEBUG    Async action: Retrieve applied config: ethernet eno1 finished
2021-07-11 16:42:59,573 root         DEBUG    Async action: Retrieve applied config: ethernet veth0_ep finished
2021-07-11 16:42:59,576 root         DEBUG    Interface ethernet.eno1 found. Merging the interface information.
2021-07-11 16:42:59,576 root         DEBUG    Interface ethernet.eno2 found. Merging the interface information.
2021-07-11 16:42:59,576 root         DEBUG    Interface ethernet.eno3 found. Merging the interface information.
2021-07-11 16:42:59,576 root         DEBUG    Interface ethernet.eno4 found. Merging the interface information.
2021-07-11 16:42:59,576 root         DEBUG    Interface ethernet.veth0 found. Merging the interface information.
2021-07-11 16:42:59,576 root         DEBUG    Interface ethernet.veth0_ep found. Merging the interface information.
/usr/lib/python3.9/site-packages/libnmstate/ifaces/bond.py:141: UserWarning: Using 'slaves' is deprecated, use 'port' instead.
  warnings.warn("Using 'slaves' is deprecated, use 'port' instead.")
2021-07-11 16:42:59,593 root         DEBUG    Interface lo is type unknown and will be ignored during the activation
2021-07-11 16:42:59,594 root         DEBUG    Async action: Create checkpoint started
2021-07-11 16:42:59,596 root         DEBUG    Checkpoint /org/freedesktop/NetworkManager/Checkpoint/4 created for all devices
2021-07-11 16:42:59,597 root         DEBUG    Async action: Create checkpoint finished
2021-07-11 16:42:59,599 root         DEBUG    Nispor: current network state {'ifaces': {'lo': {'name': 'lo', 'iface_type': 'loopback', 'state': 'unknown', 'mtu': 65536, 'flags': ['loopback', 'lower_up', 'running', 'up'], 'ipv4': {'addresses': [{'address': '127.0.0.1', 'prefix_len': 8, 'valid_lft': 'forever', 'preferred_lft': 'forever'}]}, 'ipv6': {'addresses': [{'address': '::1', 'prefix_len': 128, 'valid_lft': 'forever', 'preferred_lft': 'forever'}]}, 'mac_address': '00:00:00:00:00:00', 'ethtool': {'features': {'fixed': {'esp-hw-offload': False, 'esp-tx-csum-hw-offload': False, 'fcoe-mtu': False, 'highdma': True, 'hsr-dup-offload': False, 'hsr-fwd-offload': False, 'hsr-tag-ins-offload': False, 'hsr-tag-rm-offload': False, 'hw-tc-offload': False, 'l2-fwd-offload': False, 'loopback': True, 'macsec-hw-offload': False, 'netns-local': True, 'rx-all': False, 'rx-checksum': True, 'rx-fcs': False, 'rx-gro-hw': False, 'rx-hashing': False, 'rx-lro': False, 'rx-ntuple-filter': False, 'rx-udp_tunnel-port-offload': False, 'rx-vlan-filter': False, 'rx-vlan-hw-parse': False, 'rx-vlan-stag-filter': False, 'rx-vlan-stag-hw-parse': False, 'tls-hw-record': False, 'tls-hw-rx-offload': False, 'tls-hw-tx-offload': False, 'tx-checksum-fcoe-crc': False, 'tx-checksum-ip-generic': True, 'tx-checksum-ipv4': False, 'tx-checksum-ipv6': False, 'tx-checksum-sctp': True, 'tx-esp-segmentation': False, 'tx-fcoe-segmentation': False, 'tx-gre-csum-segmentation': False, 'tx-gre-segmentation': False, 'tx-gso-partial': False, 'tx-gso-robust': False, 'tx-ipxip4-segmentation': False, 'tx-ipxip6-segmentation': False, 'tx-lockless': True, 'tx-nocache-copy': False, 'tx-scatter-gather-fraglist': True, 'tx-tunnel-remcsum-segmentation': False, 'tx-udp_tnl-csum-segmentation': False, 'tx-udp_tnl-segmentation': False, 'tx-vlan-hw-insert': False, 'tx-vlan-stag-hw-insert': False, 'vlan-challenged': True}, 'changeable': {'rx-gro': True, 'rx-gro-list': False, 'rx-udp-gro-forwarding': False, 'tx-generic-segmentation': True, 'tx-gso-list': True, 'tx-sctp-segmentation': True, 'tx-tcp-ecn-segmentation': True, 'tx-tcp-mangleid-segmentation': True, 'tx-tcp-segmentation': True, 'tx-tcp6-segmentation': True, 'tx-udp-segmentation': True}}}}, 'eno3': {'name': 'eno3', 'iface_type': 'ethernet', 'state': 'down', 'mtu': 1500, 'flags': ['broadcast', 'multicast', 'up'], 'mac_address': '3c:a8:2a:23:d8:5e', 'permanent_mac_address': '3c:a8:2a:23:d8:5e', 'ethtool': {'pause': {'rx': True, 'tx': True, 'auto_negotiate': True}, 'features': {'fixed': {'esp-hw-offload': False, 'esp-tx-csum-hw-offload': False, 'fcoe-mtu': False, 'hsr-dup-offload': False, 'hsr-fwd-offload': False, 'hsr-tag-ins-offload': False, 'hsr-tag-rm-offload': False, 'hw-tc-offload': False, 'l2-fwd-offload': False, 'loopback': False, 'macsec-hw-offload': False, 'netns-local': False, 'rx-all': False, 'rx-fcs': False, 'rx-gro-hw': False, 'rx-hashing': False, 'rx-lro': False, 'rx-ntuple-filter': False, 'rx-udp_tunnel-port-offload': False, 'rx-vlan-filter': False, 'rx-vlan-hw-parse': True, 'rx-vlan-stag-filter': False, 'rx-vlan-stag-hw-parse': False, 'tls-hw-record': False, 'tls-hw-rx-offload': False, 'tls-hw-tx-offload': False, 'tx-checksum-fcoe-crc': False, 'tx-checksum-ip-generic': False, 'tx-checksum-sctp': False, 'tx-esp-segmentation': False, 'tx-fcoe-segmentation': False, 'tx-gre-csum-segmentation': False, 'tx-gre-segmentation': False, 'tx-gso-list': False, 'tx-gso-partial': False, 'tx-gso-robust': False, 'tx-ipxip4-segmentation': False, 'tx-ipxip6-segmentation': False, 'tx-lockless': False, 'tx-scatter-gather-fraglist': False, 'tx-sctp-segmentation': False, 'tx-tunnel-remcsum-segmentation': False, 'tx-udp-segmentation': False, 'tx-udp_tnl-csum-segmentation': False, 'tx-udp_tnl-segmentation': False, 'tx-vlan-hw-insert': True, 'tx-vlan-stag-hw-insert': False, 'vlan-challenged': False}, 'changeable': {'highdma': True, 'rx-checksum': True, 'rx-gro': True, 'rx-gro-list': False, 'rx-udp-gro-forwarding': False, 'tx-checksum-ipv4': True, 'tx-checksum-ipv6': True, 'tx-generic-segmentation': True, 'tx-nocache-copy': False, 'tx-tcp-ecn-segmentation': True, 'tx-tcp-mangleid-segmentation': False, 'tx-tcp-segmentation': True, 'tx-tcp6-segmentation': True}}, 'coalesce': {'rx_max_frames': 5, 'rx_max_frames_irq': 5, 'rx_usecs': 20, 'rx_usecs_irq': 0, 'stats_block_usecs': 0, 'tx_max_frames': 53, 'tx_max_frames_irq': 5, 'tx_usecs': 72, 'tx_usecs_irq': 0}, 'ring': {'rx': 200, 'rx_max': 2047, 'tx': 511, 'tx_max': 511}, 'link_mode': {'auto_negotiate': True, 'ours': ['10baseT/Half', '10baseT/Full', '100baseT/Half', '100baseT/Full', '1000baseT/Half', '1000baseT/Full', 'Autoneg', 'TP'], 'speed': 0, 'duplex': 'unknown'}}}, 'eno4': {'name': 'eno4', 'iface_type': 'ethernet', 'state': 'down', 'mtu': 1500, 'flags': ['broadcast', 'multicast', 'up'], 'mac_address': '3c:a8:2a:23:d8:5f', 'permanent_mac_address': '3c:a8:2a:23:d8:5f', 'ethtool': {'pause': {'rx': True, 'tx': True, 'auto_negotiate': True}, 'features': {'fixed': {'esp-hw-offload': False, 'esp-tx-csum-hw-offload': False, 'fcoe-mtu': False, 'hsr-dup-offload': False, 'hsr-fwd-offload': False, 'hsr-tag-ins-offload': False, 'hsr-tag-rm-offload': False, 'hw-tc-offload': False, 'l2-fwd-offload': False, 'loopback': False, 'macsec-hw-offload': False, 'netns-local': False, 'rx-all': False, 'rx-fcs': False, 'rx-gro-hw': False, 'rx-hashing': False, 'rx-lro': False, 'rx-ntuple-filter': False, 'rx-udp_tunnel-port-offload': False, 'rx-vlan-filter': False, 'rx-vlan-hw-parse': True, 'rx-vlan-stag-filter': False, 'rx-vlan-stag-hw-parse': False, 'tls-hw-record': False, 'tls-hw-rx-offload': False, 'tls-hw-tx-offload': False, 'tx-checksum-fcoe-crc': False, 'tx-checksum-ip-generic': False, 'tx-checksum-sctp': False, 'tx-esp-segmentation': False, 'tx-fcoe-segmentation': False, 'tx-gre-csum-segmentation': False, 'tx-gre-segmentation': False, 'tx-gso-list': False, 'tx-gso-partial': False, 'tx-gso-robust': False, 'tx-ipxip4-segmentation': False, 'tx-ipxip6-segmentation': False, 'tx-lockless': False, 'tx-scatter-gather-fraglist': False, 'tx-sctp-segmentation': False, 'tx-tunnel-remcsum-segmentation': False, 'tx-udp-segmentation': False, 'tx-udp_tnl-csum-segmentation': False, 'tx-udp_tnl-segmentation': False, 'tx-vlan-hw-insert': True, 'tx-vlan-stag-hw-insert': False, 'vlan-challenged': False}, 'changeable': {'highdma': True, 'rx-checksum': True, 'rx-gro': True, 'rx-gro-list': False, 'rx-udp-gro-forwarding': False, 'tx-checksum-ipv4': True, 'tx-checksum-ipv6': True, 'tx-generic-segmentation': True, 'tx-nocache-copy': False, 'tx-tcp-ecn-segmentation': True, 'tx-tcp-mangleid-segmentation': False, 'tx-tcp-segmentation': True, 'tx-tcp6-segmentation': True}}, 'coalesce': {'rx_max_frames': 5, 'rx_max_frames_irq': 5, 'rx_usecs': 20, 'rx_usecs_irq': 0, 'stats_block_usecs': 0, 'tx_max_frames': 53, 'tx_max_frames_irq': 5, 'tx_usecs': 72, 'tx_usecs_irq': 0}, 'ring': {'rx': 200, 'rx_max': 2047, 'tx': 511, 'tx_max': 511}, 'link_mode': {'auto_negotiate': True, 'ours': ['10baseT/Half', '10baseT/Full', '100baseT/Half', '100baseT/Full', '1000baseT/Half', '1000baseT/Full', 'Autoneg', 'TP'], 'speed': 0, 'duplex': 'unknown'}}}, 'veth0': {'name': 'veth0', 'iface_type': 'veth', 'state': 'up', 'mtu': 1500, 'flags': ['broadcast', 'lower_up', 'multicast', 'running', 'up'], 'mac_address': 'e6:65:04:de:dc:aa', 'ethtool': {'features': {'fixed': {'esp-hw-offload': False, 'esp-tx-csum-hw-offload': False, 'fcoe-mtu': False, 'hsr-dup-offload': False, 'hsr-fwd-offload': False, 'hsr-tag-ins-offload': False, 'hsr-tag-rm-offload': False, 'hw-tc-offload': False, 'l2-fwd-offload': False, 'loopback': False, 'macsec-hw-offload': False, 'netns-local': False, 'rx-all': False, 'rx-fcs': False, 'rx-gro-hw': False, 'rx-hashing': False, 'rx-lro': False, 'rx-ntuple-filter': False, 'rx-udp_tunnel-port-offload': False, 'rx-vlan-filter': False, 'rx-vlan-stag-filter': False, 'tls-hw-record': False, 'tls-hw-rx-offload': False, 'tls-hw-tx-offload': False, 'tx-checksum-fcoe-crc': False, 'tx-checksum-ipv4': False, 'tx-checksum-ipv6': False, 'tx-esp-segmentation': False, 'tx-fcoe-segmentation': False, 'tx-gso-partial': False, 'tx-gso-robust': False, 'tx-lockless': True, 'tx-tunnel-remcsum-segmentation': False, 'vlan-challenged': False}, 'changeable': {'highdma': True, 'rx-checksum': True, 'rx-gro': False, 'rx-gro-list': False, 'rx-udp-gro-forwarding': False, 'rx-vlan-hw-parse': True, 'rx-vlan-stag-hw-parse': True, 'tx-checksum-ip-generic': True, 'tx-checksum-sctp': True, 'tx-generic-segmentation': True, 'tx-gre-csum-segmentation': True, 'tx-gre-segmentation': True, 'tx-gso-list': True, 'tx-ipxip4-segmentation': True, 'tx-ipxip6-segmentation': True, 'tx-nocache-copy': False, 'tx-scatter-gather-fraglist': True, 'tx-sctp-segmentation': True, 'tx-tcp-ecn-segmentation': True, 'tx-tcp-mangleid-segmentation': True, 'tx-tcp-segmentation': True, 'tx-tcp6-segmentation': True, 'tx-udp-segmentation': True, 'tx-udp_tnl-csum-segmentation': True, 'tx-udp_tnl-segmentation': True, 'tx-vlan-hw-insert': True, 'tx-vlan-stag-hw-insert': True}}, 'link_mode': {'auto_negotiate': False, 'ours': [], 'speed': 10000, 'duplex': 'full'}}, 'veth': {'peer': 'veth0_ep'}}, 'veth0_ep': {'name': 'veth0_ep', 'iface_type': 'veth', 'state': 'up', 'mtu': 1500, 'flags': ['broadcast', 'lower_up', 'multicast', 'running', 'up'], 'ipv6': {'addresses': [{'address': 'fe80::f1bf:da2a:5f1e:b5d0', 'prefix_len': 64, 'valid_lft': 'forever', 'preferred_lft': 'forever'}]}, 'mac_address': '8e:ae:88:b1:ef:05', 'ethtool': {'features': {'fixed': {'esp-hw-offload': False, 'esp-tx-csum-hw-offload': False, 'fcoe-mtu': False, 'hsr-dup-offload': False, 'hsr-fwd-offload': False, 'hsr-tag-ins-offload': False, 'hsr-tag-rm-offload': False, 'hw-tc-offload': False, 'l2-fwd-offload': False, 'loopback': False, 'macsec-hw-offload': False, 'netns-local': False, 'rx-all': False, 'rx-fcs': False, 'rx-gro-hw': False, 'rx-hashing': False, 'rx-lro': False, 'rx-ntuple-filter': False, 'rx-udp_tunnel-port-offload': False, 'rx-vlan-filter': False, 'rx-vlan-stag-filter': False, 'tls-hw-record': False, 'tls-hw-rx-offload': False, 'tls-hw-tx-offload': False, 'tx-checksum-fcoe-crc': False, 'tx-checksum-ipv4': False, 'tx-checksum-ipv6': False, 'tx-esp-segmentation': False, 'tx-fcoe-segmentation': False, 'tx-gso-partial': False, 'tx-gso-robust': False, 'tx-lockless': True, 'tx-tunnel-remcsum-segmentation': False, 'vlan-challenged': False}, 'changeable': {'highdma': True, 'rx-checksum': True, 'rx-gro': False, 'rx-gro-list': False, 'rx-udp-gro-forwarding': False, 'rx-vlan-hw-parse': True, 'rx-vlan-stag-hw-parse': True, 'tx-checksum-ip-generic': True, 'tx-checksum-sctp': True, 'tx-generic-segmentation': True, 'tx-gre-csum-segmentation': True, 'tx-gre-segmentation': True, 'tx-gso-list': True, 'tx-ipxip4-segmentation': True, 'tx-ipxip6-segmentation': True, 'tx-nocache-copy': False, 'tx-scatter-gather-fraglist': True, 'tx-sctp-segmentation': True, 'tx-tcp-ecn-segmentation': True, 'tx-tcp-mangleid-segmentation': True, 'tx-tcp-segmentation': True, 'tx-tcp6-segmentation': True, 'tx-udp-segmentation': True, 'tx-udp_tnl-csum-segmentation': True, 'tx-udp_tnl-segmentation': True, 'tx-vlan-hw-insert': True, 'tx-vlan-stag-hw-insert': True}}, 'link_mode': {'auto_negotiate': False, 'ours': [], 'speed': 10000, 'duplex': 'full'}}, 'veth': {'peer': 'veth0'}}, 'eno2': {'name': 'eno2', 'iface_type': 'ethernet', 'state': 'down', 'mtu': 1500, 'flags': ['broadcast', 'multicast', 'up'], 'mac_address': '3c:a8:2a:23:d8:5d', 'permanent_mac_address': '3c:a8:2a:23:d8:5d', 'ethtool': {'pause': {'rx': True, 'tx': True, 'auto_negotiate': True}, 'features': {'fixed': {'esp-hw-offload': False, 'esp-tx-csum-hw-offload': False, 'fcoe-mtu': False, 'hsr-dup-offload': False, 'hsr-fwd-offload': False, 'hsr-tag-ins-offload': False, 'hsr-tag-rm-offload': False, 'hw-tc-offload': False, 'l2-fwd-offload': False, 'loopback': False, 'macsec-hw-offload': False, 'netns-local': False, 'rx-all': False, 'rx-fcs': False, 'rx-gro-hw': False, 'rx-hashing': False, 'rx-lro': False, 'rx-ntuple-filter': False, 'rx-udp_tunnel-port-offload': False, 'rx-vlan-filter': False, 'rx-vlan-hw-parse': True, 'rx-vlan-stag-filter': False, 'rx-vlan-stag-hw-parse': False, 'tls-hw-record': False, 'tls-hw-rx-offload': False, 'tls-hw-tx-offload': False, 'tx-checksum-fcoe-crc': False, 'tx-checksum-ip-generic': False, 'tx-checksum-sctp': False, 'tx-esp-segmentation': False, 'tx-fcoe-segmentation': False, 'tx-gre-csum-segmentation': False, 'tx-gre-segmentation': False, 'tx-gso-list': False, 'tx-gso-partial': False, 'tx-gso-robust': False, 'tx-ipxip4-segmentation': False, 'tx-ipxip6-segmentation': False, 'tx-lockless': False, 'tx-scatter-gather-fraglist': False, 'tx-sctp-segmentation': False, 'tx-tunnel-remcsum-segmentation': False, 'tx-udp-segmentation': False, 'tx-udp_tnl-csum-segmentation': False, 'tx-udp_tnl-segmentation': False, 'tx-vlan-hw-insert': True, 'tx-vlan-stag-hw-insert': False, 'vlan-challenged': False}, 'changeable': {'highdma': True, 'rx-checksum': True, 'rx-gro': True, 'rx-gro-list': False, 'rx-udp-gro-forwarding': False, 'tx-checksum-ipv4': True, 'tx-checksum-ipv6': True, 'tx-generic-segmentation': True, 'tx-nocache-copy': False, 'tx-tcp-ecn-segmentation': True, 'tx-tcp-mangleid-segmentation': False, 'tx-tcp-segmentation': True, 'tx-tcp6-segmentation': True}}, 'coalesce': {'rx_max_frames': 5, 'rx_max_frames_irq': 5, 'rx_usecs': 20, 'rx_usecs_irq': 0, 'stats_block_usecs': 0, 'tx_max_frames': 53, 'tx_max_frames_irq': 5, 'tx_usecs': 72, 'tx_usecs_irq': 0}, 'ring': {'rx': 200, 'rx_max': 2047, 'tx': 511, 'tx_max': 511}, 'link_mode': {'auto_negotiate': True, 'ours': ['10baseT/Half', '10baseT/Full', '100baseT/Half', '100baseT/Full', '1000baseT/Half', '1000baseT/Full', 'Autoneg', 'TP'], 'speed': 0, 'duplex': 'unknown'}}}, 'eno1': {'name': 'eno1', 'iface_type': 'ethernet', 'state': 'up', 'mtu': 1500, 'flags': ['broadcast', 'lower_up', 'multicast', 'running', 'up'], 'ipv4': {'addresses': [{'address': '10.10.180.166', 'prefix_len': 21, 'valid_lft': '30539sec', 'preferred_lft': '30539sec'}]}, 'ipv6': {'addresses': [{'address': '2620:52:0:ab0:3ea8:2aff:fe23:d85c', 'prefix_len': 64, 'valid_lft': '2591667sec', 'preferred_lft': '604467sec'}, {'address': 'fda7:e6ee:2e09:0:3ea8:2aff:fe23:d85c', 'prefix_len': 64, 'valid_lft': '2592001sec', 'preferred_lft': '604801sec'}, {'address': 'fe80::3ea8:2aff:fe23:d85c', 'prefix_len': 64, 'valid_lft': 'forever', 'preferred_lft': 'forever'}]}, 'mac_address': '3c:a8:2a:23:d8:5c', 'permanent_mac_address': '3c:a8:2a:23:d8:5c', 'ethtool': {'pause': {'rx': True, 'tx': True, 'auto_negotiate': True}, 'features': {'fixed': {'esp-hw-offload': False, 'esp-tx-csum-hw-offload': False, 'fcoe-mtu': False, 'hsr-dup-offload': False, 'hsr-fwd-offload': False, 'hsr-tag-ins-offload': False, 'hsr-tag-rm-offload': False, 'hw-tc-offload': False, 'l2-fwd-offload': False, 'loopback': False, 'macsec-hw-offload': False, 'netns-local': False, 'rx-all': False, 'rx-fcs': False, 'rx-gro-hw': False, 'rx-hashing': False, 'rx-lro': False, 'rx-ntuple-filter': False, 'rx-udp_tunnel-port-offload': False, 'rx-vlan-filter': False, 'rx-vlan-hw-parse': True, 'rx-vlan-stag-filter': False, 'rx-vlan-stag-hw-parse': False, 'tls-hw-record': False, 'tls-hw-rx-offload': False, 'tls-hw-tx-offload': False, 'tx-checksum-fcoe-crc': False, 'tx-checksum-ip-generic': False, 'tx-checksum-sctp': False, 'tx-esp-segmentation': False, 'tx-fcoe-segmentation': False, 'tx-gre-csum-segmentation': False, 'tx-gre-segmentation': False, 'tx-gso-list': False, 'tx-gso-partial': False, 'tx-gso-robust': False, 'tx-ipxip4-segmentation': False, 'tx-ipxip6-segmentation': False, 'tx-lockless': False, 'tx-scatter-gather-fraglist': False, 'tx-sctp-segmentation': False, 'tx-tunnel-remcsum-segmentation': False, 'tx-udp-segmentation': False, 'tx-udp_tnl-csum-segmentation': False, 'tx-udp_tnl-segmentation': False, 'tx-vlan-hw-insert': True, 'tx-vlan-stag-hw-insert': False, 'vlan-challenged': False}, 'changeable': {'highdma': True, 'rx-checksum': True, 'rx-gro': True, 'rx-gro-list': False, 'rx-udp-gro-forwarding': False, 'tx-checksum-ipv4': True, 'tx-checksum-ipv6': True, 'tx-generic-segmentation': True, 'tx-nocache-copy': False, 'tx-tcp-ecn-segmentation': True, 'tx-tcp-mangleid-segmentation': False, 'tx-tcp-segmentation': True, 'tx-tcp6-segmentation': True}}, 'coalesce': {'rx_max_frames': 5, 'rx_max_frames_irq': 5, 'rx_usecs': 20, 'rx_usecs_irq': 0, 'stats_block_usecs': 0, 'tx_max_frames': 53, 'tx_max_frames_irq': 5, 'tx_usecs': 72, 'tx_usecs_irq': 0}, 'ring': {'rx': 200, 'rx_max': 2047, 'tx': 511, 'tx_max': 511}, 'link_mode': {'auto_negotiate': True, 'ours': ['10baseT/Half', '10baseT/Full', '100baseT/Half', '100baseT/Full', '1000baseT/Half', '1000baseT/Full', 'Autoneg', 'TP'], 'peer': ['10baseT/Half', '10baseT/Full', '100baseT/Half', '100baseT/Full', '1000baseT/Full', 'Autoneg', 'Pause'], 'speed': 1000, 'duplex': 'full'}}}}, 'routes': [{'address_family': 'ipv6', 'tos': 0, 'table': 254, 'protocol': 'kernel', 'scope': 'universe', 'route_type': 'unicast', 'flags': 0, 'dst': '::1/128', 'oif': 'lo', 'cache_clntref': 0, 'cache_last_use': 0, 'cache_expires': 0, 'cache_error': 0, 'cache_used': 0, 'cache_id': 0, 'cache_ts': 0, 'cache_ts_age': 0, 'metric': 256, 'perf': 0}, {'address_family': 'ipv6', 'tos': 0, 'table': 254, 'protocol': 'ra', 'scope': 'universe', 'route_type': 'unicast', 'flags': 0, 'dst': '2620:52:0:ab0::/64', 'oif': 'eno1', 'cache_clntref': 0, 'cache_last_use': 0, 'cache_expires': 0, 'cache_error': 0, 'cache_used': 0, 'cache_id': 0, 'cache_ts': 0, 'cache_ts_age': 0, 'metric': 100, 'perf': 0}, {'address_family': 'ipv6', 'tos': 0, 'table': 254, 'protocol': 'ra', 'scope': 'universe', 'route_type': 'unicast', 'flags': 0, 'dst': 'fda7:e6ee:2e09::/64', 'oif': 'eno1', 'cache_clntref': 0, 'cache_last_use': 0, 'cache_expires': 0, 'cache_error': 0, 'cache_used': 0, 'cache_id': 0, 'cache_ts': 0, 'cache_ts_age': 0, 'metric': 100, 'perf': 0}, {'address_family': 'ipv6', 'tos': 0, 'table': 254, 'protocol': 'kernel', 'scope': 'universe', 'route_type': 'unicast', 'flags': 0, 'dst': 'fe80::/64', 'oif': 'eno1', 'cache_clntref': 0, 'cache_last_use': 0, 'cache_expires': 0, 'cache_error': 0, 'cache_used': 0, 'cache_id': 0, 'cache_ts': 0, 'cache_ts_age': 0, 'metric': 100, 'perf': 0}, {'address_family': 'ipv6', 'tos': 0, 'table': 254, 'protocol': 'kernel', 'scope': 'universe', 'route_type': 'unicast', 'flags': 0, 'dst': 'fe80::/64', 'oif': 'veth0_ep', 'cache_clntref': 0, 'cache_last_use': 0, 'cache_expires': 0, 'cache_error': 0, 'cache_used': 0, 'cache_id': 0, 'cache_ts': 0, 'cache_ts_age': 0, 'metric': 101, 'perf': 0}, {'address_family': 'ipv6', 'tos': 0, 'table': 254, 'protocol': 'ra', 'scope': 'universe', 'route_type': 'unicast', 'flags': 0, 'oif': 'eno1', 'gateway': 'fe80::3e8a:b0ff:fe10:43c1', 'cache_clntref': 0, 'cache_last_use': 0, 'cache_expires': 0, 'cache_error': 0, 'cache_used': 0, 'cache_id': 0, 'cache_ts': 0, 'cache_ts_age': 0, 'metric': 100, 'perf': 0}, {'address_family': 'ipv6', 'tos': 0, 'table': 255, 'protocol': 'kernel', 'scope': 'universe', 'route_type': 'local', 'flags': 0, 'dst': '::1/128', 'oif': 'lo', 'cache_clntref': 0, 'cache_last_use': 0, 'cache_expires': 0, 'cache_error': 0, 'cache_used': 0, 'cache_id': 0, 'cache_ts': 0, 'cache_ts_age': 0, 'metric': 0, 'perf': 0}, {'address_family': 'ipv6', 'tos': 0, 'table': 255, 'protocol': 'kernel', 'scope': 'universe', 'route_type': 'local', 'flags': 0, 'dst': '2620:52:0:ab0:3ea8:2aff:fe23:d85c/128', 'oif': 'eno1', 'cache_clntref': 0, 'cache_last_use': 0, 'cache_expires': 0, 'cache_error': 0, 'cache_used': 0, 'cache_id': 0, 'cache_ts': 0, 'cache_ts_age': 0, 'metric': 0, 'perf': 0}, {'address_family': 'ipv6', 'tos': 0, 'table': 255, 'protocol': 'kernel', 'scope': 'universe', 'route_type': 'local', 'flags': 0, 'dst': 'fda7:e6ee:2e09:0:3ea8:2aff:fe23:d85c/128', 'oif': 'eno1', 'cache_clntref': 0, 'cache_last_use': 0, 'cache_expires': 0, 'cache_error': 0, 'cache_used': 0, 'cache_id': 0, 'cache_ts': 0, 'cache_ts_age': 0, 'metric': 0, 'perf': 0}, {'address_family': 'ipv6', 'tos': 0, 'table': 255, 'protocol': 'kernel', 'scope': 'universe', 'route_type': 'local', 'flags': 0, 'dst': 'fe80::3ea8:2aff:fe23:d85c/128', 'oif': 'eno1', 'cache_clntref': 0, 'cache_last_use': 0, 'cache_expires': 0, 'cache_error': 0, 'cache_used': 0, 'cache_id': 0, 'cache_ts': 0, 'cache_ts_age': 0, 'metric': 0, 'perf': 0}, {'address_family': 'ipv6', 'tos': 0, 'table': 255, 'protocol': 'kernel', 'scope': 'universe', 'route_type': 'local', 'flags': 0, 'dst': 'fe80::f1bf:da2a:5f1e:b5d0/128', 'oif': 'veth0_ep', 'cache_clntref': 0, 'cache_last_use': 0, 'cache_expires': 0, 'cache_error': 0, 'cache_used': 0, 'cache_id': 0, 'cache_ts': 0, 'cache_ts_age': 0, 'metric': 0, 'perf': 0}, {'address_family': 'ipv6', 'tos': 0, 'table': 255, 'protocol': 'kernel', 'scope': 'universe', 'route_type': 'multicast', 'flags': 0, 'dst': 'ff00::/8', 'oif': 'eno1', 'cache_clntref': 0, 'cache_last_use': 0, 'cache_expires': 0, 'cache_error': 0, 'cache_used': 0, 'cache_id': 0, 'cache_ts': 0, 'cache_ts_age': 0, 'metric': 256, 'perf': 0}, {'address_family': 'ipv6', 'tos': 0, 'table': 255, 'protocol': 'kernel', 'scope': 'universe', 'route_type': 'multicast', 'flags': 0, 'dst': 'ff00::/8', 'oif': 'veth0', 'cache_clntref': 0, 'cache_last_use': 0, 'cache_expires': 0, 'cache_error': 0, 'cache_used': 0, 'cache_id': 0, 'cache_ts': 0, 'cache_ts_age': 0, 'metric': 256, 'perf': 0}, {'address_family': 'ipv6', 'tos': 0, 'table': 255, 'protocol': 'kernel', 'scope': 'universe', 'route_type': 'multicast', 'flags': 0, 'dst': 'ff00::/8', 'oif': 'veth0_ep', 'cache_clntref': 0, 'cache_last_use': 0, 'cache_expires': 0, 'cache_error': 0, 'cache_used': 0, 'cache_id': 0, 'cache_ts': 0, 'cache_ts_age': 0, 'metric': 256, 'perf': 0}, {'address_family': 'ipv4', 'tos': 0, 'table': 254, 'protocol': 'dhcp', 'scope': 'universe', 'route_type': 'unicast', 'flags': 0, 'oif': 'eno1', 'gateway': '10.10.183.254', 'metric': 100}, {'address_family': 'ipv4', 'tos': 0, 'table': 254, 'protocol': 'kernel', 'scope': 'link', 'route_type': 'unicast', 'flags': 0, 'dst': '10.10.176.0/21', 'oif': 'eno1', 'prefered_src': '10.10.180.166', 'metric': 100}, {'address_family': 'ipv4', 'tos': 0, 'table': 255, 'protocol': 'kernel', 'scope': 'link', 'route_type': 'broadcast', 'flags': 0, 'dst': '10.10.176.0/32', 'oif': 'eno1', 'prefered_src': '10.10.180.166'}, {'address_family': 'ipv4', 'tos': 0, 'table': 255, 'protocol': 'kernel', 'scope': 'host', 'route_type': 'local', 'flags': 0, 'dst': '10.10.180.166/32', 'oif': 'eno1', 'prefered_src': '10.10.180.166'}, {'address_family': 'ipv4', 'tos': 0, 'table': 255, 'protocol': 'kernel', 'scope': 'link', 'route_type': 'broadcast', 'flags': 0, 'dst': '10.10.183.255/32', 'oif': 'eno1', 'prefered_src': '10.10.180.166'}, {'address_family': 'ipv4', 'tos': 0, 'table': 255, 'protocol': 'kernel', 'scope': 'link', 'route_type': 'broadcast', 'flags': 0, 'dst': '127.0.0.0/32', 'oif': 'lo', 'prefered_src': '127.0.0.1'}, {'address_family': 'ipv4', 'tos': 0, 'table': 255, 'protocol': 'kernel', 'scope': 'host', 'route_type': 'local', 'flags': 0, 'dst': '127.0.0.0/8', 'oif': 'lo', 'prefered_src': '127.0.0.1'}, {'address_family': 'ipv4', 'tos': 0, 'table': 255, 'protocol': 'kernel', 'scope': 'host', 'route_type': 'local', 'flags': 0, 'dst': '127.0.0.1/32', 'oif': 'lo', 'prefered_src': '127.0.0.1'}, {'address_family': 'ipv4', 'tos': 0, 'table': 255, 'protocol': 'kernel', 'scope': 'link', 'route_type': 'broadcast', 'flags': 0, 'dst': '127.255.255.255/32', 'oif': 'lo', 'prefered_src': '127.0.0.1'}], 'rules': [{'action': 'table', 'address_family': 'ipv6', 'flags': 0, 'tos': 0, 'table': 255, 'protocol': 'kernel'}, {'action': 'table', 'address_family': 'ipv6', 'flags': 0, 'tos': 0, 'table': 254, 'priority': 32766, 'protocol': 'kernel'}, {'action': 'table', 'address_family': 'ipv4', 'flags': 0, 'tos': 0, 'table': 255, 'protocol': 'kernel'}, {'action': 'table', 'address_family': 'ipv4', 'flags': 0, 'tos': 0, 'table': 254, 'priority': 32766, 'protocol': 'kernel'}, {'action': 'table', 'address_family': 'ipv4', 'flags': 0, 'tos': 0, 'table': 253, 'priority': 32767, 'protocol': 'kernel'}]}
2021-07-11 16:42:59,599 root         DEBUG    Nispor: changed network state {'name': 'veth0', 'type': 'ethernet', 'state': 'up', 'ipv4': {'enabled': False}, 'ipv6': {'enabled': False}, 'lldp': {'enabled': False}, 'mac-address': 'E6:65:04:DE:DC:AA', 'accept-all-mac-addresses': False, 'mtu': 1500, 'ethtool': {'feature': {'highdma': True, 'rx-checksum': True, 'rx-gro': False, 'rx-gro-list': False, 'rx-udp-gro-forwarding': False, 'rx-vlan-hw-parse': True, 'rx-vlan-stag-hw-parse': True, 'tx-checksum-ip-generic': True, 'tx-checksum-sctp': True, 'tx-generic-segmentation': True, 'tx-gre-csum-segmentation': True, 'tx-gre-segmentation': True, 'tx-gso-list': True, 'tx-ipxip4-segmentation': True, 'tx-ipxip6-segmentation': True, 'tx-nocache-copy': False, 'tx-scatter-gather-fraglist': True, 'tx-sctp-segmentation': True, 'tx-tcp-ecn-segmentation': True, 'tx-tcp-mangleid-segmentation': True, 'tx-tcp-segmentation': True, 'tx-tcp6-segmentation': True, 'tx-udp-segmentation': True, 'tx-udp_tnl-csum-segmentation': True, 'tx-udp_tnl-segmentation': True, 'tx-vlan-hw-insert': True, 'tx-vlan-stag-hw-insert': True}}, 'veth': {'peer': 'veth0_ep'}, '_controller': 'bond0', '_controller_type': 'bond'}
2021-07-11 16:42:59,599 root         DEBUG    Nispor: desired network state {'name': 'bond0', 'type': 'bond', 'state': 'up', 'link-aggregation': {'mode': 'balance-rr', 'port': ['veth0']}, 'ipv6': {'enabled': False}}
2021-07-11 16:42:59,602 root         DEBUG    Async action: Add profile: aeee8b12-b1d1-4009-955e-017f52aabd7c, iface:bond0, type:bond started
2021-07-11 16:42:59,603 root         DEBUG    Async action: Add profile: a7b9ba15-2ed5-4c41-a2aa-fa6516d6a825, iface:veth0, type:ethernet started
2021-07-11 16:42:59,611 root         DEBUG    Async action: Add profile: aeee8b12-b1d1-4009-955e-017f52aabd7c, iface:bond0, type:bond finished
2021-07-11 16:42:59,611 root         DEBUG    Async action: Add profile: a7b9ba15-2ed5-4c41-a2aa-fa6516d6a825, iface:veth0, type:ethernet finished
2021-07-11 16:42:59,611 root         DEBUG    Async action: Activate profile uuid:aeee8b12-b1d1-4009-955e-017f52aabd7c iface:bond0 type: bond started
2021-07-11 16:42:59,620 root         DEBUG    Connection activation initiated: iface=bond0 type=bond con-state=<enum NM_ACTIVE_CONNECTION_STATE_ACTIVATING of type NM.ActiveConnectionState>
2021-07-11 16:42:59,625 root         DEBUG    Connection activation succeeded: iface=bond0, type=bond, con_state=<enum NM_ACTIVE_CONNECTION_STATE_ACTIVATING of type NM.ActiveConnectionState>, dev_state=<enum NM_DEVICE_STATE_IP_CONFIG of type NM.DeviceState>, state_flags=<flags NM_ACTIVATION_STATE_FLAG_IS_MASTER | NM_ACTIVATION_STATE_FLAG_LAYER2_READY | NM_ACTIVATION_STATE_FLAG_MASTER_HAS_SLAVES of type NM.ActivationStateFlags>
2021-07-11 16:42:59,625 root         DEBUG    Async action: Activate profile uuid:aeee8b12-b1d1-4009-955e-017f52aabd7c iface:bond0 type: bond finished
2021-07-11 16:42:59,625 root         DEBUG    Async action: Activate profile uuid:a7b9ba15-2ed5-4c41-a2aa-fa6516d6a825 iface:veth0 type: ethernet started
2021-07-11 16:42:59,734 root         DEBUG    Connection activation initiated: iface=veth0 type=ethernet con-state=<enum NM_ACTIVE_CONNECTION_STATE_ACTIVATING of type NM.ActiveConnectionState>
2021-07-11 16:42:59,779 root         DEBUG    Connection activation succeeded: iface=veth0, type=ethernet, con_state=<enum NM_ACTIVE_CONNECTION_STATE_ACTIVATED of type NM.ActiveConnectionState>, dev_state=<enum NM_DEVICE_STATE_ACTIVATED of type NM.DeviceState>, state_flags=<flags NM_ACTIVATION_STATE_FLAG_IS_SLAVE | NM_ACTIVATION_STATE_FLAG_LAYER2_READY | NM_ACTIVATION_STATE_FLAG_IP4_READY | NM_ACTIVATION_STATE_FLAG_IP6_READY of type NM.ActivationStateFlags>
2021-07-11 16:42:59,779 root         DEBUG    Async action: Activate profile uuid:a7b9ba15-2ed5-4c41-a2aa-fa6516d6a825 iface:veth0 type: ethernet finished
2021-07-11 16:42:59,787 root         DEBUG    Async action: Retrieve applied config: ethernet eno1 started
2021-07-11 16:42:59,787 root         DEBUG    Async action: Retrieve applied config: ethernet veth0_ep started
2021-07-11 16:42:59,788 root         DEBUG    Async action: Retrieve applied config: ethernet veth0 started
2021-07-11 16:42:59,788 root         DEBUG    Async action: Retrieve applied config: bond bond0 started
2021-07-11 16:42:59,802 root         DEBUG    Async action: Retrieve applied config: ethernet eno1 finished
2021-07-11 16:42:59,804 root         DEBUG    Async action: Retrieve applied config: ethernet veth0_ep finished
2021-07-11 16:42:59,804 root         DEBUG    Async action: Retrieve applied config: ethernet veth0 finished
2021-07-11 16:42:59,805 root         DEBUG    Async action: Retrieve applied config: bond bond0 finished
2021-07-11 16:42:59,806 root         DEBUG    Interface bond.bond0 found. Merging the interface information.
2021-07-11 16:42:59,806 root         DEBUG    Interface ethernet.eno1 found. Merging the interface information.
2021-07-11 16:42:59,807 root         DEBUG    Interface ethernet.eno2 found. Merging the interface information.
2021-07-11 16:42:59,807 root         DEBUG    Interface ethernet.eno3 found. Merging the interface information.
2021-07-11 16:42:59,807 root         DEBUG    Interface ethernet.eno4 found. Merging the interface information.
2021-07-11 16:42:59,807 root         DEBUG    Interface ethernet.veth0 found. Merging the interface information.
2021-07-11 16:42:59,807 root         DEBUG    Interface ethernet.veth0_ep found. Merging the interface information.
2021-07-11 16:42:59,841 root         DEBUG    Async action: Destroy checkpoint /org/freedesktop/NetworkManager/Checkpoint/4 started
2021-07-11 16:42:59,843 root         DEBUG    Checkpoint /org/freedesktop/NetworkManager/Checkpoint/4 destroyed
2021-07-11 16:42:59,843 root         DEBUG    Async action: Destroy checkpoint /org/freedesktop/NetworkManager/Checkpoint/4 finished
Desired state applied: 
---
interfaces:
- name: bond0
  type: bond
  state: up
  link-aggregation:
    mode: balance-rr
    slaves:
    - veth0
[16:42:59@hp-dl380-gen9-4 ~]0# cat bond.yaml 
interfaces:
- name: bond0
  type: bond
  state: up
  link-aggregation:
    mode: balance-rr
    slaves:
    - veth0

Comment 6 Fernando F. Mancera 2021-07-12 08:20:55 UTC
Hi Mingyu, thanks for pointing this. I've fixed it in the following PR: https://github.com/nmstate/nmstate/pull/1672

Comment 7 Mingyu Shi 2021-07-20 03:10:51 UTC
Verified with nmstate-2.0.0-0.2.alpha2.el9.noarch

Using 'slaves' got error at verification.

Comment 9 Marc Muehlfeld 2021-08-31 12:41:18 UTC
Lenka, master/slave has been replaced in our docs right when the aliases were added. Therefore, no content changes are needed.