Short suggestion: try tossing the dedic=true and ifmeth=tap+bridge from that configuration line.

Background: I did the something similar maybe 5 or six years ago.  Perhaps this will be useful for you:

I was getting deep into the guts of some things in Tops-20 that was going to require me to have 'the system' (I.E., TOMMYT:: on HECnet) standalone while I debugged.  But that caused some outages that I didn't want, so I got another system and rebuilt KLH10 for 64 bit.  That HECnet system is VENTI2::.

For 64 bit execution on Ubuntu, I had to fix the memory locking code which had gotten broken somehow.  I only use separate dedicated NIC's, and had to write some code to put the adapter into AllMulti mode as DECnet will not work without this.  I may have done something else, I forget.

I never got into tap devices as that would have involved spending too much time learning and doing Unix work, which wasn't what I was interested in at the time.  If you use a separate NIC, then it is conceptually simpler to restrict the area of trouble-shooting to Tops-20.

Recall from dpni20.c that the network interface can only be in one of two modes, shared or dedicated and certain parameters are applicable, depending on the mode.  Regarding your line, dedic=true means that the 20 has complete control of what is specified by ifc.  In this mode, ipaddr and enaddr will get ignored.  I don't have ifmeth in my sources (which are probably old klh20 2.0h).  Here is what I have:

    devdef ni0 564 ni20 DEDIC=TRUE IFC=enx8cae4ce9446b

Simple, eh?  You also have to do some stuff to tell Ubuntu to not run anything on that interface.  For example,

    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1

Ditto for ip4.


On 12/13/23 11:04 AM, Keith Halewood wrote:

Hi,

 

I’ve been running the Panda distribution of TOPS-20 on the KLH10 simulator on a Raspberry Pi 4 for some years now. It’s WALACH on HECnet. The version of the Pi’s OS had been the 32 bit implementation but as some of these were being replaced by 8Gb versions, I recently took the plunge and updated (by re-imaging) everything to the current 64 bit Raspberry Pi OS.

 

In rebuilding SIMH and KLH10, I sync’d with the latest sources. With SIMH, there were no issues but the KLH10 updates, seemingly post ~2021 have broken networking. The line in my klt20.ini file is:

 

devdef ni0 564 ni20 dedic=true ifc=tapX ifmeth=tap+bridge ipaddr=192.168.2.46 enaddr=aa:00:04:00:6c:74

 

With the dpni20 executable running as root, the ‘old’ behaviour causes it to use the default bridge name ‘bridge0’  and create a tap device ‘tap0’ (it disregards the ifc=tapX part of the line).

The new behaviour results in a whole load of IOCTL errors while attempting to create the tap device.

I avoided the problem by restoring the original version of the KLH10 simulator sources and compiling.

 

The whole thing has reminded me that I wanted to fix the code a while back so that it would make use of an existing tap device, created via /etc/network/interfaces, with full control granted to the non-privileged user the rest of KLH10 runs under, then dpni20 would not need to be privileged. Once I’ve finished with the upgrades I might have a go…. along with all of the other half-done/half-forgotten projects in this area.

 

Keith


_______________________________________________
HECnet mailing list -- hecnet@lists.dfupdate.se
To unsubscribe send an email to hecnet-leave@lists.dfupdate.se