Re: git: 20d59403961d - main - kernel: deprecate Internet Class A/B/C
Date: Wed, 10 Nov 2021 06:40:05 UTC
Mike, On Tue, Nov 09, 2021 at 03:36:01PM +0000, Mike Karels wrote: M> commit 20d59403961d531467cfab22163f49c131cc8b55 M> Author: Mike Karels <karels@FreeBSD.org> M> AuthorDate: 2021-10-27 03:01:09 +0000 M> Commit: Mike Karels <karels@FreeBSD.org> M> CommitDate: 2021-11-09 15:32:38 +0000 M> M> kernel: deprecate Internet Class A/B/C M> M> Hide historical Class A/B/C macros unless IN_HISTORICAL_NETS is defined; M> define it for user level. Define IN_MULTICAST separately from IN_CLASSD, M> and use it in pf instead of IN_CLASSD. Stop using class for setting M> default masks when not specified; instead, define new default mask M> (24 bits). Warn when an Internet address is set without a mask. M> M> MFC after: 1 month M> Reviewed by: cy M> Differential Revision: https://reviews.freebsd.org/D32708 Just my 2 cents. I wasn't added as reviewer of D32708 and that's why totally missed it. IMHO, such reviews should have #network as reviewer. I'm convinced that the status of classful addressing that was left exactly 10 years go in b365d954cc9c39e9854eeb726a60ae812e0fb2fe was good enough. After that change the only place where classes exist is the mask autoguessing. It was absolutely backward compatible and not breaking any POLA. And had zero code maintainance burden! Nobody have ever had problems with classes since. Did existence of the small piece of code in in_aifaddr_ioctl() or class definitions in in.h created any conflicts with development of any new code? The new /24 default is no better than classes. The only difference that classes maintained POLA and new default doesn't. For example, in my home network I have default router 10.0.0.1 and since it is class A network on my VMs and test boxes I can type # ifconfig vtnet0 10.6.6.6 and that is going to work. With this change no longer. -- Gleb Smirnoff