Page MenuHomeFreeBSD

pf: remove DIOCGETSTATESNV
ClosedPublic

Authored by kp on Jul 7 2021, 7:52 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Apr 23, 1:13 AM
Unknown Object (File)
Mon, Apr 8, 1:57 AM
Unknown Object (File)
Jan 17 2024, 6:17 PM
Unknown Object (File)
Jan 17 2024, 8:13 AM
Unknown Object (File)
Dec 20 2023, 3:21 AM
Unknown Object (File)
Dec 12 2023, 5:22 PM
Unknown Object (File)
Nov 21 2023, 10:17 PM
Unknown Object (File)
Nov 21 2023, 6:50 PM

Details

Summary

While nvlists are very useful in maximising flexibility for future
extensions their performance is simply unacceptably bad for the
getstates feature, where we can easily want to export a million states
or more.

The DIOCGETSTATESNV call has been MFCd, but has not hit a release on any
branch, so we can still remove it everywhere.

MFC after: 1 week
Sponsored by: Rubicon Communications, LLC ("Netgate")

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

kp requested review of this revision.Jul 7 2021, 7:52 PM

I don't know if it can be straight up removed in stable branches. Normally the expectation is that userspace can work with newer kernel, which is now broken.

Assuming it's not too much trouble, I think the thing to do first is to extend pfctl to support both interfaces and prefer the new one. Said binary compat can be then removed after few weeks.

In D31099#699643, @mjg wrote:

I don't know if it can be straight up removed in stable branches. Normally the expectation is that userspace can work with newer kernel, which is now broken.

Assuming it's not too much trouble, I think the thing to do first is to extend pfctl to support both interfaces and prefer the new one. Said binary compat can be then removed after few weeks.

My plan was to push the preceding patches (i.e. adding and moving to the new call in libpfctl) first, and this one a week later. That'd give main and stable/X users some time to build a new kernel and userspace before we remove the old call. That achieves having the new kernel support old userspace, with a short transition period (so we don't end up with DIOCGETSTATESNV in a release and we have to support is forever).

This revision is now accepted and ready to land.Jul 7 2021, 8:33 PM
In D31099#699666, @kp wrote:

My plan was to push the preceding patches (i.e. adding and moving to the new call in libpfctl) first, and this one a week later. That'd give main and stable/X users some time to build a new kernel and userspace before we remove the old call. That achieves having the new kernel support old userspace, with a short transition period (so we don't end up with DIOCGETSTATESNV in a release and we have to support is forever).

A week is much to short for stable users.
Expect a month at least between updates.

In D31099#699666, @kp wrote:

My plan was to push the preceding patches (i.e. adding and moving to the new call in libpfctl) first, and this one a week later. That'd give main and stable/X users some time to build a new kernel and userspace before we remove the old call. That achieves having the new kernel support old userspace, with a short transition period (so we don't end up with DIOCGETSTATESNV in a release and we have to support is forever).

A week is much to short for stable users.
Expect a month at least between updates.

I'm happy to postpone this commit for a month. As long as it goes in prior to the next release.

This revision was automatically updated to reflect the committed changes.