Closed larsbrinkhoff closed 2 years ago
What more precisely do you mean? I thought this already works?
This is a wishlist item for the Unix supdup. It only works with TCP/IP.
Why would you want to do this? If an ITS can be reached by UDP, it should also be reachable by TCP? Would you want the supdup client to become a Chaosnet node in itself? Seems a bit messy? I don't think I understand.
But if you have a Chaosnet implementation in e.g. Linux, I agree that Supdup should be able to use it.
Some simulators might have Chaosnet but not IMP support. Or, an ITS admin might elect not to expose TCP/IP ports, just Chaosnet.
I have no idea what the implementation would look like. I have the impression that Chaosnet is quite simple, so that what ever is needed could go into supdup itself. It's just a vague idea at this point.
Something like what David Conroy did with telnet:
A simple version of TELNET, modified to include a user-mode implementation of the CHAOSNET protocol using raw sockets, was used to debug the new code in ITS. The bulk of the debugging time was spent figuring out how the W5300 works (the chip actually works quite well, but the data sheet does not describe the tricky bits clearly, if it describes them at all). The fact that the user-mode impementation of the CHAOSNET protocol uses raw sockets means that TELNET needs to be run as the super-user, which is a bit of a nuisence (now that I really understand how the W5300 works it is clear that UDP and a fixed port would have worked, and I will probably change to doing this soon).
I have a supdup client that should be able to talk Chaosnet. It is the same stuff I use for MIT CADR — either socket or Chaos over Ethernet should work. Might need porting to UNIX (and from NUXI?). I’ll upload it in a few hours/days.
Great, thanks!
So here we go, it is a big ugly:
https://github.com/LM-3/chaos/tree/ams/next
The original tarballs I found where not of the same origin as the stuff used in MIT CADR's Chaos implementation. I merged it back more or less as how it looks in my Subversion tree. The thing you will want to fix up is https://github.com/LM-3/chaos/blob/ams/next/cmd/chsupdup.c . The kernel code or socket doesn't work as such, but I have patches somewhere. As soon as this gets stable to use with MIT CADR it should be merged back into master.
It should be noted that this is the old MIT Chaosnet for UNIX code -- with hacks for working as a Linux driver, and as a semi-portable socket implementation.
I'm trying to bring up a few nodes connected to a locally running chaosnet-bridge. It would be nice to be able to type something like, say, supdup -U localhost:42042 -c 3116
to i.e. supdup to Chaosnet host 3116 through a bridge/router at chudp localhost:42042. Or something like that.
I'm not sure what you really want to do? If you use supdup (compiled with chaosnet support), and you convince it you are connecting to a chaosnet host (e.g. by giving an octal address or a hostname with CH class address data), it tries to connect to your locally running chaosnet bridge through its chaos_stream socket (typically in the /tmp directory).
Your example could give the impression that you want to use Chaos-over-UDP to connect to the chaosnet bridge, which would mean that supdup itself would need to implement large parts of a full host, including connection management, window handling etc. I don't see why you would want to do that, when it's all packaged up in the chaosnet bridge?
I just forgot you already added this: #23. So this can now be closed.
Make supdup talk over Chaosnet, tunneled in UDP. (In addition to existing TCP/IP.)
@bictorv is the leading expert.