Linux may soon lose support for the DECnet protocol
- Reference: 1659542411
- News link: https://www.theregister.co.uk/2022/08/03/linux_may_soon_lose_support/
- Source link:
Microsoft software engineer [1]Stephen Hemminger has [2]proposed removing the DECnet protocol handling code from the Linux kernel. The timing is ironic, as this comes just two weeks after VMS Software Inc [3]announced that OpenVMS 9.2 was really ready this time…
That announcement, of course, came some months after the first time it [4]announced [PDF] version 9.2, as we [5]covered in The Reg in May .
[6]
The last maintainer of the [7]DECnet code was Red Hat's Christine Caulfield, who [8]flagged the code as orphaned in 2010. The change is unlikely to vastly inconvenience many people: VMS is the last even slightly mainstream OS that used DECnet, and VMS has [9]supported TCP/IP for a long time. Indeed, for decades, the oldest email in this reporter's "sent" folder was a 1993 enquiry about the freeware CMUIP stack for VMS.
[10]
[11]
One of the easier ways to bootstrap VMS on an elderly VAX these days is to install it on the [12]SimH VAX hardware simulator, and then net-boot the real VAX from the simulated one. Anyone keen enough to do that will be competent to run an older version of Linux just for the purpose.
Although their existence is rapidly being forgotten today, TCP/IP is not the only network protocol around, and as late as the mid-1990s it wasn't even the dominant one.
[13]
The Linux kernel used to support multiple network protocols, but they are disappearing fast. In 2018, the same Mr Hemminger [14]removed the last vestiges of Novell's IPX protocol from the kernel, joining its partner SPX, [15]eliminated in 2002. The IPX/SPX stack was how Novell Netware servers communicated with its client machines, and in 1993 it was one of the default protocols in both Windows for Workgroups 3.11 and Windows NT 3.1. TCP/IP was just an optional extra.
[16]When management went nuclear on an innocent software engineer
[17]Like Ubuntu, just a bit less hassle: Linux Mint 21 'Vanessa'
[18]US cop goes war-driving to find stolen gear by MAC address
[19]Linus Torvalds releases Linux 5.19 – using Asahi on an Arm-powered Mac
For now, Linux still [20]supports AppleTalk, the native network language of classic MacOS. AppleTalk was [21]dropped from Mac OS X since 10.6 [22]"Snow Leopard" , so it's bound to go soon.
For a long time, DECnet was a significant network protocol. DEC supplied a client stack called PathWorks to let DOS, Windows and Mac clients connect to VAX servers, not only for file and print, but also terminal connections and X.11. Whole worldwide WANs ran over DECnet, and as a teenage student, your correspondent enjoyed exploring them.
The [23]protocol wars are finally over. ®
Get our [24]Tech Resources
[1] https://www.linkedin.com/in/networkplumber/
[2] https://lore.kernel.org/lkml/20220731190646.97039-1-stephen@networkplumber.org/
[3] https://vmssoftware.com/about/news/2022-07-14-openvms-v92-for-x86-announced/
[4] https://vmssoftware.com/docs/VSI_X86V91A_RN.pdf
[5] https://www.theregister.com/2022/05/10/openvms_92/
[6] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_onprem/networks&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YurwFme5kEkuz8Hsq18tiwAAAAE&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[7] https://sourceforge.net/projects/linux-decnet/
[8] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f8b55f251012e104093e105483c45c5d85ad3040
[9] http://odl.sysworks.biz/disk$axpdocmar982/network/tcpipv42/manage/6526pro.html
[10] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_onprem/networks&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YurwFme5kEkuz8Hsq18tiwAAAAE&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[11] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_onprem/networks&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YurwFme5kEkuz8Hsq18tiwAAAAE&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[12] http://simh.trailing-edge.com/
[13] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_onprem/networks&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YurwFme5kEkuz8Hsq18tiwAAAAE&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[14] https://lore.kernel.org/netdev/20181115192613.24166-1-sthemmin@microsoft.com/T/
[15] https://lwn.net/Articles/7208/
[16] https://www.theregister.com/2022/05/27/on_call/
[17] https://www.theregister.com/2022/08/02/linux_mint_21_vanessa_released/
[18] https://www.theregister.com/2015/09/09/us_police_search_stolen_kit_by_mac_address/
[19] https://www.theregister.com/2022/07/31/linux_5_19/
[20] https://cateee.net/lkddb/web-lkddb/ATALK.html
[21] https://web.archive.org/web/20090831102318/http://support.apple.com/kb/HT3771
[22] https://lowendmac.com/roundtable/12rt/022-appleshare-anniversary.html
[23] https://www.computerhistory.org/revolution/networking/19/376
[24] https://whitepapers.theregister.com/
The protocol wars were over years ago. What we are doing now is cleaning up the battlefield of any leftover debris.
Sadly, too much of that debris is still festering away and often mutating into new types zombies that are hard to kill off.
Except there are some people looking to replace tcp inside data centres, coz it's too slow...
Absolutely.
Early in my career I specialised in Lotus Notes. Which had network drivers for all kinds - TCP, NetBIOS, SPX, Banyan VINES, serial connections... I don't specifically recall DECnet being in there, but that's probably because VAX was one of the few server options Notes never had...
I met Notes back in 1996. I think I only ever had one production server that used SPX - a Notes server running as an NLM on a Novell Netware server. Very very rapidly everything went to TCP/IP. A decade later, those drivers were already a historical curiosity for 99% of computer professionals working with Notes.
They got removed from later versions shortly after that.
(Yes, there were later versions of Lotus Notes, no matter what it might have seemed like. Companies just took their own sweet time deploying them...)
I'd say that TCP/IP had won by the year 2000. Everything since then has been mopping up operations...
Banyan VINES? Christ... that's a ghost from the past.
Lotus Notes .... you mean VAXNotes++. ... though the "++" is debatable :-)
There are still a few laggards running IPv4, I hear.
I'm rather uncomfortable that an individual from Microsoft has taken it upon himself to remove multiple protocols from the Linux kernel. Particularly as many seem to have been used by former Microsoft competitors.
If there's one company that knows about the clutter that backwards compatibility wreaks on an OS, it's Microsoft (reserved A: drive? Still? Really?).
I have no problem with them suggesting unmaintained and unused drivers that can be removed from the kernel. Keep in mind that, while they are there, these drivers need to be tested with each release, adding to the burden of the kernel maintainers.
Whilst I am not particularly attached to a DECnet card, it would be good if rather than removing it from the kernel and putting it in the bin (or in the depths of Git repo), if it could be isolated into a single .h and .c file and made portable and easy to maintain / re-integrate for those interested.
Yes, there is more to it than just a driver, there is much plumbing (especially for older GPUs too which is where my main thoughts are). However it could be quite a unique feature of Linux to deprecate and remove things in a less "breakful" manner.
It might not be possible, then fair enough but honestly I feel open-source operating systems are the only ones that could get close to achieving this.
Why would a network protocol require "much plumbing (especially for older GPUs"?
WTF does a GPU have to do with networking? Especially a network protocol that predates the GPU by a couple of decades.
Perhaps read my post again and you will see that I was talking about drivers in general by that point. My whole post was about seeing if drivers can be put into long term storage rather than destroyed.
Most drivers need plumbling. Network drivers need the i.e TCP/IP stack, GPU drivers need i.e the DRM/DRI stack.
As the article mentions there was no maintainer for the protocol for over a decade I'd say it was already in 'long term storage' for 10+ years.
The proposal to remove it mentions that most changes done to it were attempts to clean up.
This shows having the code in the kernel does create additional effort for the kernel programmers.
When nobody is able and willing to maintain it and nobody steps forward to say he's still using it the logical thing is to remove it to get rid of effort necessary to maintain the code in future kernel versions.
The only time I was involved with DECNet the Ethernet addresses assumed that the NIC was made by DEC and hardcoded the DEC-specific part of the MAC. If you wanted to use DECNet on some non-DEC kit you have to overwrite the MAC. How is this handled these days when the NICs are anything but DEC?
We were using HP-PA hardware and first turned on the DECNet stack in the middle of the working day. This meant that all nodes using the HP server now had invalid addresses in their caches... The clamour from the users died down as their PCs re-synchronized.
"TIf you wanted to use DECNet on some non-DEC kit you have to overwrite the MAC. How is this handled these days when the NICs are anything but DEC?"
Who gives a shit? DECNet is dead, dead, dead. Even those overseeing the everything-but-the-kitchen-sink approach of the Linux kernel recognise this. Just kill the DECnet kernel code. Kill it with fire.
I thought the underlying point with Linux was that you added whatever drivers to your installation that you wanted yourself, just like RMLoading a module on RISC OS. After all, I wouldn't expect the operating system I bought to come with a driver for my JayEx LED display board (what's that? exactly!), I'd load the driver myself when I needed it, or as /my/ default build.
If you really want to you can still build a DECnet kernel module and load that, the kernel infrastructure to do that is there.
DECnet protocol support will just no longer come out of the box with the vanilla kernel.
Did you miss reading the bit that said VMS is still alive? I doubt those maintaining it consider DECNet dead.
The NIC hardware address still has to be overwritten. DECnet uses a NIC address of AA-00-04-00-xx-yy where xx-yy are the six bits of the area address followed by the 10 bits of the node address within the area.
This (at the time elegant) fudge allowed easy DECnet routing on an Ethernet without needing dedicated routing hardware or software.
Note at the time that DECnet Phase 4 was developed 10Mbit/sec Ethernet over thick coax cable was high speed networking and the majority of the PDP-11s in use could not manage even 1 Mip - saving processor overhead was important.
It's probably worth elaborating that a little further.
There was no fundamental architectural reason to change the MAC address: endnodes sent out periodic "hello" messages that could have been used to map the 16-bit node address to a 48-bit MAC address. However, given that 1000 endnodes were permitted on a single LAN segment, it would have meant routers reserving potentially at least 6KB of space for the mapping - which is a big chunk of a 64K address space being used for other kernel things - and that endnodes (which may well be CPU-constrained) might have to look up a 48-bit key to find the associated 10-bit DECnet local area address. Fixing 32 bits of the MAC address got rid of those problems.
Interestingly, the first Phase V routers were faced with a different constraint: the change from routing vectors to link state routing made it very difficult for contemporary hardware to find room for the routing database which led to some considerable arguments in the organisation.
Also worth pointing out that DECnet made much more use of Ethernet architectural features: it used different multicast addresses to segregate endnode (host) traffic and Level 1 and Level 2 routing traffic and used different protocol types for discreet functional operations (like remote booting).
While DECnet's day has clearly gone, I do regret that accessing those Ethernet architectural features is still rather more trouble than it needs to be on Unix/Linux: there's an implicit assumption that the network is there for IP and convincing the network driver otherwise requires some effort. And, indeed, privilege/capability.
IIRC, and I'm probably wrong since it's been about 3 decades, the "AA-00-04-00-xx-yy" address was rewritten to "yy-xx-00-40-00-AA" as the MAC. That way, in hardware it would do a bit compare. First mismatch and it bailed because it was for a different address.
How is this handled these days when the NICs are anything but DEC?
In fact all Ethernet NICs can change their MAC address upon command. That's how you get "random MAC address" options as a security feature on phones or PCs.
In DECnet, the feature allows to send a packet directly to the node in question since the necessary MAC address is a calculated number.
Contrast IP over Ethernet where designers added the ARP protocol to answer the question "what is the MAC address for 192.168.111.222?" Once you have that answer you can then send a packet directly.
I used to love DECnet
I joined DEC back in 1986 and was one of the first to show PATHworks to customers (anyone remember the Vaxmate?). I was friends with the USA development teamteam (I pointed out a Netbios bug and showed what the fix would be) and used DECnet for DOS all over the place. DECnet itself was pretty good - and as the article says, could be accessed all over the world. They were good days back then - shame it's all just TCP these days.
Alan
Re: I used to love DECnet
The VAXmate .... the Oztralian version along with the DECMate ....
Reminds me of the related phrase...
How does a Decnet network work?
;-)
Not much to worry about.
If you need a FOSS solution for DECNet, I rather suspect that FreeBSD will support it until roughly the heat death of the Universe.
Why remove?
I can't imagine that it adds much payload to a distro, and I don't imagine it needs much maintenance...
Why not leave it?
(Genuine question, and applicable to the other old stuff)
Re: Why remove?
I think it's a case of removing unused code which may hold the potential of creating unintended interactions - given that it's also unmaintained, such a problem would not be solved that quickly. Best to park it completely, also makes the code tighter yet again.
AFAIK it'll still hang around in the archives anyway, and if anyone really wants it they're advised to put some resource into it.
Good by PDP11
I feel that there should be a funeral. Many hours of this man's life has gone silently into the night
Re: Good by PDP11
True. Digressing slightly, OTOH, I like the silence - there's nothing I find more annoying than Windows' default habit of pinging, bleeping and making other noises during the day like a child that is desperate for attention. In other OS I can at least control what makes noise so I can limit it to things that actually matter, but in Windows I eventually resort to just killing the sound altogether.
But yes, let's not forget the gear and code that got us started. I support a two computer musea exactly for that purpose, but there isn't really a software museum now, is there?
The protocol wars were over years ago. What we are doing now is cleaning up the battlefield of any leftover debris.