Created attachment 232735 [details] patch see: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=141023
After patch apply: 13:02:41.140090 00:00:5e:00:01:01 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.3 tell 192.168.1.1, length 28 13:02:41.140170 00:00:5e:00:01:01 > a8:a1:59:0e:1f:b6, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Reply 192.168.1.1 is-at 00:00:5e:00:01:01, length 28
any eta on when this will be merged and in which version this patch will be released?
The patch looks good, and I'd suggest to add a sysctl knob to turn this feature on.
this would be great, is there any guide on how to implement a sysctl or any other flag? Or maybe Ivan Rozhuk has time to implement it?
(In reply to Daniel from comment #4) There's an example https://reviews.freebsd.org/D39866 .
I do not see usecases where it should be disabled by sysctl.
(In reply to Ivan Rozhuk from comment #6) As @Gleb Smirnoff Has pointed out: > According to RFC826, which is current standard for ARP implementations, > the hardware address in the transmission layer does not need to match > the hardware addrees in the ARP reply packet itself. At least I can't > find any evidence in the RFC that it must or even should. Moreover, it > is mentioned in the RFC that: > "Ethernet transmission layer (not necessarily accessible to the user)" > So, RFC states that data in the Ethernet header isn't crucial for > the operation of address resolution protocol. This sysctl knob is for non-RFC-compliant devices and should be default off, so that the change will be a NOOP to existing (RFC-compliant) setups. The change is somewhat different than the original design of CARP protocol, until it is proven stable enough then let's change the sysctl knob to default on and eventually remove it.
This was answered in next message: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=141023#c5 :) RFC/nonRFC compliant in irrelevant. Patch fixes that broken in real world and does not broke anything. Patch does not broke RFC. I will add sysctl to control this.
(In reply to Ivan Rozhuk from comment #8) thanks!
Created attachment 244151 [details] patch_broken Zhenlei Huang, this builds only if "device carp" is present in kernel config file. I do not see any way how to keep knob in "net.inet.carp" and do not broke kernel build without "device carp". Can you suggest way to add sysctl knob?
(In reply to Ivan Rozhuk from comment #10) > Zhenlei Huang, this builds only if "device carp" is present in kernel config file. > I do not see any way how to keep knob in "net.inet.carp" and do not broke kernel > build without "device carp". > Can you suggest way to add sysctl knob? I'll look at this when available.