netifd vxlan bug

Paul D newtwen at gmail.com
Fri Oct 25 05:33:04 PDT 2024


Setting the learning flag to 1 for a vxlan does nothing more than the kernel default already does.

Did anyone ever test VXLAN learning usage? See learning flag:


# ip -6 link add vxlan100 type vxlan id 100 dstport 4789 local 2001:db8:1::1 learning

# ip -d a
===
9: vxlan100: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether aa:84:74:b0:4e:1f brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 65535
    vxlan id 100 local 2001:db8:1::1 srcport 0 0 dstport 4789 ttl auto ageing 300 udpcsum noudp6zerocsumtx noudp6zerocsumrx numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
===

learning nowhere to be seen, because... it's enabled by default. 



https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/net/vxlan/vxlan_core.c?h=v6.11.5#n4136



Remove vxlan
# ip link d vxlan100

Make one with nolearning

# ip -6 link add vxlan100 type vxlan id 100 dstport 4789 local 2001:db8:1::1 nolearning

# ip -d a
===
10: vxlan100: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 86:82:c0:14:18:57 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 65535
    vxlan id 100 local 2001:db8:1::1 srcport 0 0 dstport 4789 nolearning ttl auto ageing 300 udpcsum noudp6zerocsumtx noudp6zerocsumrx numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
===

nolearning flag present.

Remove vxlan
# ip link d vxlan100



TL:DR: netifd has a useless learning flag. It should be nolearning to DISABLE learning...?



If I send a patch - what is the recommended way forward? Leave learning and deprecate it? Replace it with nolearning?



More information about the openwrt-devel mailing list