Bug 2149451

Summary: RFE: document in detail all possible bridge options
Product: Red Hat Enterprise Linux 9 Reporter: Germano Veit Michel <gveitmic>
Component: NetworkManagerAssignee: NetworkManager Development Team <nm-team>
Status: CLOSED MIGRATED QA Contact: Desktop QE <desktop-qa-list>
Severity: low Docs Contact:
Priority: medium    
Version: 9.1CC: bgalvani, lrintel, rhel-docs, rkhan, sfaye, sukulkar, till, viyengar
Target Milestone: rcKeywords: FutureFeature, MigratedToJIRA, Triaged
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-08-17 12:22:25 UTC Type: Story
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Germano Veit Michel 2022-11-29 23:20:44 UTC
Document URL: 
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/configuring-a-network-bridge_configuring-and-managing-networking#doc-wrapper

Section Number and Name: 
Chapter 7. Configuring a network bridge

Describe the issue: 
A bridge has many options that can be set. The documentation currently briefly shows/explains a few of them, scattered across the examples.

Some options are shown in the docs, some appear in nm-settings man page or the bridge man page, and some in the kernel bridge documentation. It's all spread across multiple places with no complete single source. We should aim to present a single comprehensive page to your customers in our RHEL docs.

https://people.freedesktop.org/~lkundrak/nm-docs/nm-settings.html
https://wiki.linuxfoundation.org/networking/bridge

The RHV documentation has a good explanation of some of the keys and can be used as a starting point for this improvement, but we are missing the details of what values can be set.
https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.4/html/administration_guide/appe-custom_network_properties#Explanation_of_bridge_opts_Parameters

Suggestions for improvement: 
Aim to document all bridge configuration options, detailed not just the key description, but also possible values (minimum, maximum, default) and for values that are bitmasks (i.e. group_fwd_mask) let's try to document the protocols that each represents.

Ideally document all these:

% grep DEVICE_ATTR_RW net/bridge/br_sysfs_br.c
static DEVICE_ATTR_RW(forward_delay);
static DEVICE_ATTR_RW(hello_time);
static DEVICE_ATTR_RW(max_age);
static DEVICE_ATTR_RW(ageing_time);
static DEVICE_ATTR_RW(stp_state);
static DEVICE_ATTR_RW(group_fwd_mask);
static DEVICE_ATTR_RW(priority);
static DEVICE_ATTR_RW(group_addr);
static DEVICE_ATTR_RW(multicast_router);
static DEVICE_ATTR_RW(multicast_snooping);
static DEVICE_ATTR_RW(multicast_query_use_ifaddr);
static DEVICE_ATTR_RW(multicast_querier);
static DEVICE_ATTR_RW(hash_elasticity);
static DEVICE_ATTR_RW(hash_max);
static DEVICE_ATTR_RW(multicast_igmp_version);
static DEVICE_ATTR_RW(multicast_last_member_count);
static DEVICE_ATTR_RW(multicast_startup_query_count);
static DEVICE_ATTR_RW(multicast_last_member_interval);
static DEVICE_ATTR_RW(multicast_membership_interval);
static DEVICE_ATTR_RW(multicast_querier_interval);
static DEVICE_ATTR_RW(multicast_query_interval);
static DEVICE_ATTR_RW(multicast_query_response_interval);
static DEVICE_ATTR_RW(multicast_startup_query_interval);
static DEVICE_ATTR_RW(multicast_stats_enabled);
static DEVICE_ATTR_RW(multicast_mld_version);
static DEVICE_ATTR_RW(nf_call_iptables);
static DEVICE_ATTR_RW(nf_call_ip6tables);
static DEVICE_ATTR_RW(nf_call_arptables);
static DEVICE_ATTR_RW(vlan_filtering);
static DEVICE_ATTR_RW(vlan_protocol);
static DEVICE_ATTR_RW(default_pvid);
static DEVICE_ATTR_RW(vlan_stats_enabled);
static DEVICE_ATTR_RW(vlan_stats_per_port);

Having all this well documented in a single place would be better, and RHV can then just link the RHEL docs for a complete explanation, along with any other layered product that makes use of this.

Comment 2 Marc Muehlfeld 2022-12-01 16:03:27 UTC
I checked the nm-settings-nmcli(5) man page:

* The following settings mentioned in #c0 have a man page entry (the value after the colon is the NetworkManager attribute name):
forward_delay: forward-delay
hello_time: hello-time
max_age: max-age
ageing_time: ageing-time
stp_state: stp
group_fwd_mask: group-forward-mask
priority: priority
group_addr: group-address
multicast_router: multicast-router
multicast_snooping: multicast-snooping
multicast_query_use_ifaddr: multicast-query-use-ifaddr
multicast_querier: multicast-querier
hash_max: multicast-hash-max
multicast_last_member_count: multicast-last-member-count
multicast_startup_query_count: multicast-startup-query-count
multicast_last_member_interval: multicast-last-member-interval
multicast_membership_interval: multicast-membership-interval
multicast_querier_interval: multicast-querier-interval
multicast_query_interval: multicast-query-interval
multicast_query_response_interval: multicast-query-response-interval
multicast_startup_query_interval: multicast-startup-query-interval
vlan_filtering: vlan-filtering
vlan_protocol: vlan-protocol
default_pvid: vlan-default-pvid
vlan_stats_enabled: vlan-stats-enabled

* The following settings from #c0 seem not to be mentioned in the man page (maybe NM doesn't support these settings):
hash_elasticity
multicast_igmp_version
multicast_stats_enabled
multicast_mld_version
nf_call_iptables
nf_call_ip6tables
nf_call_arptables
vlan_stats_per_port

Comment 5 Vidya 2022-12-02 06:35:15 UTC
Agree with Marc. +1 to improving the man page content, instead of adding the details in the configuring network doc.

Comment 7 sfaye 2022-12-08 14:37:23 UTC
+1 to convert this to a NetworkManager ticket to improve the man page content. Thank you

Comment 8 Till Maas 2023-03-01 19:47:35 UTC
I would like to see the bond option documentation moved to a common kernel bond option man page (can we maybe use something modern to write it that can also become a web page) with nm-settings-nmcli referencing it and mentioning the "_" to "-" conversion rule. Then this common man page/web page can also be used by other tools such as nmstate and the network system role.