[HECnet] DECnet for Linux Bug Fixes

Supratim Sanyal supratim at riseup.net
Tue Jun 30 07:12:37 PDT 2020


On 6/29/2020 20:45, John Forecast wrote:
> Recently I have found, and fixed, a number of bugs in the DECnet for 
> Linux kernel module. Some of
> these bugs may be relevant for members of this mailing list who are 
> using DECnet for Linux,
> especially on a Raspberry Pi.

John - how about making our pandemic and politician-stressed lives a bit 
easier and uploading a microSD image somewhere relieving us from having 
to go through the hoops?

https://github.com/JohnForecast/RaspbianDECnet/blob/master/README.Raspbian 
is fantastic, BTW.

:)

Regards
Supratim


















> Major bugs fixed:
>
> - Ethernet Listen Timer was not implemented
>
> In addition, the check for an address change for the designated router 
> (DR) was missing
> although there was a check if the DR’s priority had changed.
>
> Note: this code changes the format of /proc/net/decnet_dev to include 
> the listen timer value.
>         nml/nml2 needs to be rebuilt to understand the changed format.
>
> - System panic when using the loopback device (lo)
>
> The DECnet code was missing a destructor routine which is used to 
> avoid data copying.
>
> - The neighbour (adjacent node) code could be broken by kernel changes
>
> The code made use of a now deprecated feature (zero length array at 
> the end of a structure)
> in order to access data in a surrounding structure. This happened to 
> work “by chance”
> until kernel 5.4.42 on 32-bit processors.
>
> - Interrupt message flow control was broken
>
> The flow control was a mixture of using the SEND/DONTSEND status of 
> the data
> subchannel and a message count. This seems to work between Linux 
> systems but is broken
> when communicating with other systems - during the life of a logical 
> link, the remote system
> could only send a single interrupt message while the Linux system 
> could pretty much send
> as many interrupts as it wanted possibly overrunning the remote 
> systems buffers.
>
> - Optional data on received connect confirm message was corrupted
>
> The code was getting the optional data from the wrong offset in the 
> message.
>
> - Next hop cache problem
>
> 30 seconds after a logical link was taken down, the next hop cache 
> entry was deleted. As
> part of this deletion, the link was taken “down” which caused a 
> neighbour entry to be
> created for the same node address but accessed via the loopback 
> device. Sometimes this
> would cause the designated router to become accessible via the 
> loopback device and
> subsequent connections would fail.
>
> - Intra-ethernet bit ignored
>
> The intra-ethernet bit in the routing flags is ignored on inbound 
> traffic. If there was a neighbour
> entry for the remote node at connection time, everything would work 
> correctly. If there wad no
> entry, all outbound  traffic would be sent through the designated 
> router for the duration of
> the logical link.
>
> - Promiscuous mode alters DECnet behaviour
>
> If the ethernet NIC used for DECnet had promiscuous mode enabled (e.g. 
> using tcpdump
> for traffic tracing), the DECnet code would start seeing endnode 
> hello’s, populating
> neighbour structures and causing the problems described above for the 
> intra-ethernet bit
> to go away.
>
> New programs:
>
> DECnet Test Send and DECnet Test Receiver (DTS/DTR)
>
> Test programs created via reverse engineering the protocol exchanges. 
> Used to find a
> number of the bugs described above.
>
> NML2
>
> New implementation of the Network Management Listener. Supports 
> SUMMARY, STATUS
> and CHARACTERISTICS for NODES, CIRCUITS and AREAS. It does not support 
> LINKS
> and OBJECTS which were in the old version but are system specific 
> operations which
> were only visible from DECnet-VMS systems.
>
> The old version is still the default during installation. The new 
> version can be installed by:
>
> cd dnprogs/nml2
> make
> sudo make install
>
> which will overwrite the installed executable and man page.
>
> OS Support:
>
> As of 06/29/2020 the code has been tested with:
>
> Raspbian 2020-05-27 release with kernels 4.19.126 and 5.4.44 (32-bit only)
>
> Pi OS 2020-05-27 32-bit release with kernel 4.19.126 and 5.4.44
>
> pI OS 2020-05-27 (fully updated on 06/26/2020) with kernel 5.4.49
>
>
> The source code and installation instructions are available at:
>
> <https://github.com/JohnForecast/RaspbianDECnet>
>
>   John.
>
-- 
Supratim Sanyal, W1XMT
39.19151 N, 77.23432 W
QCOCAL::SANYAL via HECnet

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sonic.net/pipermail/hecnet-list/attachments/20200630/bf28b5fb/attachment-0001.html>


More information about the Hecnet-list mailing list