[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