Add netlink support to if_gre
Details
I also wrote tests for gre, since it doesn't have it before.
# kyua test -k /usr/tests/sys/netlink/Kyuafile test_rtnl_gre:test_rtnl_gre test_rtnl_gre:test_rtnl_gre -> passed [0.002s] Results file id is usr_tests_sys_netlink.20260101-180800-774463 Results saved to /root/.kyua/store/results.usr_tests_sys_netlink.20260101-180800-774463.db 1/1 passed (0 failed)
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 70395 Build 67278: arc lint + arc unit
Event Timeline
There're three tasks in this change,
- Migrate to new if_clone KPI
- Refactor some ioctls, say GRESKEY
- Add netlink support
The first two are simple and easy to review, I expect them can be landed quickly. I'd support you to split the change.
I understand your perspective, however, migrating directly to the new if_clone_addreq_v2 without netlink support is not possible.
I could migrate to if_clone_addreq without netlink support first, but then transition to v2 to support netlink would ultimately be redundant.
The same reasoning applies to the GRESKEY ioctl.
Refactoring that ioctl is intended to reuse those configuration functions through netlink.
Therefore, without netlink support, refactoring the ioctl interface is pointless.
- Add types in if_gre.h to fix world build
- Add copyright to test_rtnl_gre.c
- Rebase to main and fix cleanup in test_rtnl_gre.
@glebius done.
Approved, but please address comment in the module event switch statement.
| sys/net/if_gre.c | ||
|---|---|---|
| 1146 | See note about /* FALLTHROUGH */ in style(9). This actually is not only about style. Some linters may complain on this function unless this special comment is added. Adding break; instead will also work. So add either of them, depending on how would you expect gremodevent() change in the future. IMHO, break; is more likely to stay here in future. | |