Page MenuHomeFreeBSD

genet: pullup minimum header amount for IPv4
ClosedPublic

Authored by karels on Jun 20 2021, 6:00 PM.

Details

Summary

The genet driver (RPi4 Ethernet) had code to pull headers into the
first mbuf if there was only an Ethernet header there. This was
originally needed for ICMPv6 replies, then for forwarded IPv6/TCP.
Now a situation has been found where it is needed for IPv4, when
using NAT with IPFW. Generalize to do this for all protocols.
Rather than using an IPv6-related definition for the length, move
the length to a variable that can be set with sysctl
(hw.genet.tx_hdr_min). Move an old tunable to a new RDTUN variable
with a better name.

PR: 25607

Test Plan

tested by users that reported the problems

Diff Detail

Repository
rG FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

sys/arm64/broadcom/genet/if_genet.c
106

Maybe something like "maximum number of mbufs to pass per call to if_input" or something like that?

"send" implied the TX direction on my first read

Fix text according to Ed's suggestion.

karels added inline comments.
sys/arm64/broadcom/genet/if_genet.c
106

Good suggestion, thanks.

Any other comments? Anyone able to approve?

This revision is now accepted and ready to land.Jun 22 2021, 11:05 PM
This revision was automatically updated to reflect the committed changes.