On 24/04/2023 18:46, Ido Schimmel wrote: > On Mon, Apr 24, 2023 at 05:25:08PM +0800, Hangbin Liu wrote: >> Hi, >> >> Maybe someone already has asked. The only official Linux bridge document I >> got is a very ancient wiki page[1] or the ip link man page[2][3]. As there are >> many bridge stp/vlan/multicast paramegers. Should we add a detailed kernel >> document about each parameter? The parameter showed in ip link page seems >> a little brief. > > I suggest improving the man pages instead of adding kernel > documentation. The man pages are the most up to date resource and > therefore the one users probably refer to the most. Also, it's already > quite annoying to patch both "ip-link" and "bridge" man pages when > adding bridge port options. Adding a third document and making sure all > three resources are patched would be a nightmare... > >> >> I'd like to help do this work. But apparently neither my English nor my >> understanding of the code is good enough. Anyway, if you want, I can help >> write a draft version first and you (bridge maintainers) keep working on this. > > I can help reviewing man page patches if you want. I'm going to send > some soon. Will copy you. > >> >> [1] https://wiki.linuxfoundation.org/networking/bridge >> [2] https://man7.org/linux/man-pages/man8/bridge.8.html >> [3] https://man7.org/linux/man-pages/man8/ip-link.8.html >> >> Thanks >> Hangbin Always +1 for keeping the man pages up-to-date, but I tend to agree with Jakub as well that it'd be nice to have an in-kernel doc which explains the uapi and potentially at least some more obscure internals (if not all), we can insist on updating it for new changes I'd be happy to help fill such doc, but at the moment I don't have the time to write the basis for it. As Hangbin nicely offered, I think we can start there. For a start it'd be nice to make an initial outline of the different sections and go on filling them from there. E.g. as a starter something like (feel free to edit): Introduction Bridge internals (fdb, timers, MTU handling, fwding decisions, ports, synchronization) STP (mst, rstp, timers, user-space stp etc) Multicast (mdb, igmp, eht, vlan-mcast etc) VLAN (filtering, options, tunnel...) Switchdev Netfilter MRP/CFM (?) FAQ Each of these having uapi sections with descriptions. We can include references to the iproute2 docs for cmd explanations and examples, but in this doc we'll have the uapi descriptions and maybe some helpful information about internal implementation that would save future contributors time. At the very least we can do the uapi part for each section so options are described and uapi nl attribute structures are explained. Cheers, Nik