As I recall, our ultimate configuration at Columbia was one machine 
(CU20B) with a CI and NI, three machines with just a CI (CU20A, CU20C 
and CU20D).  CU20B routed IP and DECnet to the other three nodes.  
However, this was about 1985, so I could be completely, totally, 
thoroughly, and utterly wrong.
That being said, it appears that the monitor will definitely do DECnet 
over the CI.  CIDLL (CI Data Link Layer) is the module which implements 
this.  I had thought that the only way to change your CI hardware 
address is to plug into a different slot in the STAR connector, but I 
wouldn't swear to it at this point.
I would really love to get my hands on a CI implementation for klh10.  
There is a lot of cool code that does stuff with the CI.
On 5/16/24 6:13 PM, Johnny Billquist wrote:
  Hi.
 On 2024-05-16 23:56, Thomas DeBellis wrote:
  As far as I am aware, the NI will not handle
having multiple 
 simultaneous MAC addresses.  I don't recall there being any 
 production code to put the transceiver into promiscuous mode, 
 sniffing packets and changing the MAC address on a transmit.  In 
 theory, it would appear to be possible in that the NI would do this. 
 That is not what I said. The NI (any of the DEC ones) will not 
 allow/handle having multiple MAC addresses simultaneously. But every 
 NI have a MAC address from manufacture. DECnet have a fixed MAC 
 addresses expected for any DECnet node. So a machine running DECnet 
 have to change the MAC address. So in fact, the MAC address the NI 
 uses is not the one programmed at manufacture, but one that is set by 
 the software on the NI.
 As for promiscuous mode, and so on. That's a question for each OS if 
 possible, and how you would do it and so on. All controllers I've ever 
 seen have the capability of doing that in the hardware.
  If you are not running DECnet, you can change the
MAC address to 
 whatever you want while the machine is up and you just have to wait 
 for ARP caches to catch up.  There is some support for multi-homing, 
 but I had thought that this required separate hardware interfaces, 
 such as an IMP interface or CI, in addition to an NI.
 If you do have DECnet, and you change the MAC address after SETSPD 
 has set the machine's DECnet address, DECnet won't work. Changing the 
 DECnet address to correspond to the new MAC address won't work; you 
 have to reboot.  I don't really quite remember, but I had thought 
 that youcan't change your CI's hardware address at all as this is 
 based on where you plug into the STAR connector. 
 I don't remember how CI works. Not even sure if you can run DECnet 
 over CI, but it seems likely it would be possible. But usually, as a 
 part of the whole starting of DECnet on a node, the MAC address of the 
 NI is changed at that point, since only then and there will you be 
 able to know what the MAC address should be.
  I run a separate, dedicated Ethernet interface on
a per-KLH10 
 instance. I did have both the host and the 20 sharing the same 
 interface and this will work as long as you use the MAC address that 
 the 20 wants you to. I ran into trouble with that (I don't remember 
 what, this was 20 years ago), so I bought an additional NIC for the 
 20 and never looked back. 
 I've not used KLH, so I can't really comment on that one.
 But with E11, as well as simh, you can run both the host machine, and 
 the emulator on the same NI, usually (it do depend on the ethernet 
 controller being a bit flexible). And that without changing the host 
 NI MAC address at all. If I talk this through in a simh context, what 
 it does is that it places the interface in promiscuous mode. Ethernet 
 traffic to either the host or the simulator both comes in on the NI, 
 and if not meant for either machine, the network stacks discard the 
 packets. Which also means that DECnet will work, since simh will use 
 the programmed MAC address of the guest OS, no matter what MAC address 
 you might have placed in the configuration for simh. Just as with real 
 hardware.
 And outgoing packets gets set the correct source MAC address as well. 
 But this do require that you can send packets out where you setup the 
 full packet yourself, and not have the NI forcibly fill some bits in.
 But that is working right on anything that I've tried in the last 20 
 years.
 One more thing - using a bridge might help, since there otherwise is 
 usually a bit of a problem that the outgoing packets from simh are not 
 looped back in to the host system, so you have a problem talking over 
 the network between the simulator and host specifically. Towards 
 everything else, things work fine.
  I don't know enough about tap interfaces to
have an informed opinion. 
 tap is basically just a virtual ethernet interface. With those, you 
 can create a network bridge, where each virtual network interface has 
 its own MAC address, and if you also bridge this with the real 
 ethernet inferface, it appears as if they are all on the same ethernet 
 segments, but each with their own ethernet interface connected to it.
 Which is better than what I described above, which is basically just 
 directly connecting simh to the actual ethernet interface. But it's 
 also a bit more work than just connecting directly to the ethernet 
 interface.
   Johnny
 
 On 5/16/24 4:47 PM, Johnny Billquist wrote:
> DECnet addresses are AA-00-04-00-xx-yy, which I'm sure most people 
> are aware of. As such, as long as each machine has it's own DECnet 
> address, they will also have their own MAC address. The question is, 
> though, if KLH handles this completely transparent to you, or if you 
> need to do some things yourself here. For other simulators, it 
> sortof depends on the host system and your setup, and so on, since 
> there is no standardized API under Unix (or Windows, I believe) to 
> set the MAC address on an interface. But there sometimes do exist an 
> API for it.
>
> For real hardware, the network interfaces do have a MAC from the 
> factory, but it's also stated in the standards that ethernet 
> interfaces should support software changing the MAC address of the 
> interface. And that is what DECnet normally does, and all DEC 
> ethernet interfaces certainly allows this to be changed. And that 
> means any emulator/simulator also gets informed about the MAC 
> address change, since the OS running on the emulator will poke at 
> the controller for it to change the MAC address to whatever DECnet 
> needs it to be.
> The question is then, what does the emulator/simulator do when this 
> happens?
>
>   Johnny
>
> On 2024-05-16 22:41, Thomas DeBellis wrote:
>> On a KL emulation running Tops-20, if you want to run Phase IV, you 
>> have a choice of the CI or NI.  In order to not implement ARP for 
>> DECnet, they came up with the idea of a certain range of 48 bit MAC 
>> address having a direct mapping.
>>
>> For the CI, this is built off of the CI interface number and there 
>> is no getting around that, as I recall.  For the NI, it wants to 
>> pick the MAC address.  You can get around this by knowing what MAC 
>> address it will pick and configuring that. It's sometimes easier to 
>> just spend the $15 and get another USB interface and dedicate it to 
>> the engine.
>>
>> Otherwise, if you have three separate klh10's, they will insist on 
>> having their own separate MAC address.
>>
>> I wasn't sure how you could do that except maybe with virtual 
>> machines and some kind of hypervisor.
>>
>> ------------------------------------------------------------------------ 
>>
>>
>>
>> On 5/16/24 4:17 PM, Johnny Billquist wrote:
>>> Oh. One more thing - tap2 and tap3 are for KLH, right? Is there 
>>> some trickery you need to do in order to get the DECnet correct 
>>> MAC address on things here? Also applies for the PyDECnet instance 
>>> perhaps...
>>>
>>>   Johnny
>>>
>>> On 2024-05-16 20:30, Anders Andersson wrote:
>>>> Thank you foryourfeedback Yes,the KLH10istancesall run on thsame 
>>>> Linux Mint
>>>> host that runs the apydecanet router calledKSKAL,and I haveno 
>>>> additioal
>>>> hardware on that internal segment which lookslike this now:
>>>>
>>>> oot@kaskal:/home/andersa# brctl show
>>>> bridge name    bridge id       STP enabled    interfaces
>>>> bridge0        8000.26d039e4c0f4    no        tap1
>>>>                              tap2
>>>>                              tap3
>>>>
>>>> If that doesn't indicate that thethreetap interfaceshavbeen addedto
>>>> the bridge,I don't know what does. Are there any other 
>>>> diagnostics you
>>>> want me to check? I dont know whether the following add anything 
>>>> relevant:
>>>>
>>>> root@kaskal:/home/andersa# ifconfig bridge0
>>>> bridge0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
>>>>          inet 192.168.9.78  netmask 255.255.255.0 broadcast 
>>>> 192.168.9.255
>>>>          inet6 fe80::4cf6:1fff:fe01:f257  prefixlen 64 scopeid 
>>>> 0x20<link>
>>>>          ether 26:d0:39:e4:c0:f4 txqueuelen 1000 (Ethernet)
>>>>          RX packets 557072  bytes 143985475 (143.9 MB)
>>>>          RX errors 0  dropped 450854  overruns 0  frame 0
>>>>          TX packets 106193  bytes 4586565 (4.5 MB)
>>>>          TX errors 0  dropped 0overruns 0  carrier 0 collisions 0
>>>>
>>>> root@kaskal:/home/andersa# ifconfig tap1
>>>> tap1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
>>>>          inet6 fe80::6032:eff:fedb:7b94  prefixlen 64 scopeid 
>>>> 0x20<link>
>>>>          ether 62:32:0e:db:7b:94 txqueuelen 1000 (Ethernet)
>>>>          RX packets 176227  bytes 46414104 (46.4 MB)
>>>>          RX errors 0  dropped 0  overruns 0  frame 0
>>>>          TX packets 318825  bytes 90356527 (90.3 MB)
>>>>          TX errors 0  dropped 0overruns 0  carrier 0 collisions 0
>>>>
>>>> root@kaskal:/home/andersa# ip tuntap show
>>>> tap0: tap persist
>>>> tap1: tap
>>>> tap2: tap
>>>> tap3: tap
>>>>
>>>> The threeTOPS-20 hosts arealso awareof and can communicate with each
>>>> other. When I run tcpdump -i bridge0 I do see DECnet, DEC LAT and 
>>>> TCP/IP
>>>> ARP traffic to or from the three TOPS-20 hosts pass by,according 
>>>> to the
>>>> ethertype code as well as decoding done by tcpdump.
>>>>
>>>> The KLH10 instances obtain their tap interfaces as part of their
>>>> startup configuration, so I have to restart them whenever I have 
>>>> reset
>>>> the bridge which I haven't done in a few days now. This is a 
>>>> sample net
>>>> device onfiguration line from one host:
>>>>
>>>> devdef ni0  564   ni20 dedic=true ifc=tap2 ifmeth=tap+bridge 
>>>> ipaddr=192.168.9.72
>>>>   dpdelay=3
>>>>
>>>>
>>>> The number of the interface specified with ifc= doesn't seem to 
>>>> matter the machine
>>>> still gets assigned the next unassiged tap interface in order.And 
>>>> it did work previously.
>>>>
>>>> Eventually I hope to put all the bridge and pydecnet 
>>>> configuration intoa
>>>> hecnet.service file andstart it from systemd.
>>>>
>>>> Now I plan to restartpydecnet while logging bridg0 traffic using 
>>>> tcpdmpto see
>>>> what comes up.
>>>>
>>>>   /AndersAndersson
>>>>
>>>>
>>>> _______________________________________________
>>>> HECnet mailing list -- hecnet(a)lists.dfupdate.se
>>>> To unsubscribe send an email to hecnet-leave(a)lists.dfupdate.se
>>>
>>
>> _______________________________________________
>> HECnet mailing list -- hecnet(a)lists.dfupdate.se
>> To unsubscribe send an email to hecnet-leave(a)lists.dfupdate.se
>