Welcome, Guest. Please login or register.

Author Topic: uIP  (Read 1743 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline TrevTopic starter

  • Hero Member
  • *****
  • Join Date: May 2003
  • Posts: 1550
  • Country: 00
    • Show only replies by Trev
uIP
« on: October 22, 2007, 01:18:04 AM »
I ported uIP to MS-DOS (using the PC/TCP Packet Driver Specification), and I was wondering if there's any interest in seeing uIP ported to Amiga OS on top of SANA-II? The initial port would be simple--uIP is intended to be embedded in the application--but I don't think it would be difficult to put it in a library with the eventual goal of bsdsocket compatibility.

In my DOS implementation, which is essentially a quick port of the UNIX sample, performance is primarily driven by how often the application loops and calls uIP's periodic bits. lwIP is probably a better choice for a general purpose stack, but porting uIP is a snap and the lessons learned from building a bsdsocket compatibility layer can be applied to future lwIP work.

Thoughts? Folks have mentioned porting uIP and/or lwIP to Amiga before, but I haven't seen any code.

Trev
 

Offline weirdami

  • Hero Member
  • *****
  • Join Date: Jan 2003
  • Posts: 3776
    • Show only replies by weirdami
    • Http://Bindingpolymer.com
Re: uIP
« Reply #1 on: October 22, 2007, 04:04:16 AM »
Are you rockin' a retro project with that MSDOS work, or is it for fun, practice, and experience for future job opportunities?
----
Binding Polymer: Keeping you together since 1892.
 

Offline Colani1200

  • Hero Member
  • *****
  • Join Date: Jul 2006
  • Posts: 707
    • Show only replies by Colani1200
Re: uIP
« Reply #2 on: October 22, 2007, 06:29:47 AM »
Well, there are a few stacks out there already, yet the only one that is available for free is the ancient AmiTCP demo (AFAIK). So I am sure folks would give it a try if there is an alternative. Maybe you could also focus on an implementation that can properly run on a low spec Amiga (e.g. unexpanded A600), because I feel that's kind of missing somehow. Tried to run AmiTCP on it, and was hoping to be able to transfer some ADFs via ftp, but all you could do was "ping" without running out of memory. :lol:

So... I'd say give it a shot. If you need a beta tester, drop me a line...  ;-)
 

Offline SteveSMS

  • Jr. Member
  • **
  • Join Date: Jan 2006
  • Posts: 97
    • Show only replies by SteveSMS
Re: uIP
« Reply #3 on: October 22, 2007, 08:46:39 AM »


It would rock. Srsly.
... Who says the sky is really green? Maybe we\\\'re all just colorblind...
A1200 6GB HDD
A3000, building in progress
A2000, building in progress
A500
 

Offline TrevTopic starter

  • Hero Member
  • *****
  • Join Date: May 2003
  • Posts: 1550
  • Country: 00
    • Show only replies by Trev
Re: uIP
« Reply #4 on: October 22, 2007, 05:51:00 PM »
@weirdami

Yeah, I do a bit of DOS hacking. I've spent quite a bit of time sorting out DOS file system interfaces and correcting bits that Undocumented DOS and other sources have got wrong. It's good fun. The impetus was a previous employer's deision to disable LAN Manager authentication throughout the corporation. Obviously, that limits what you can do with Microsoft's DOS network clients, and I started thinking about a replacment. Anyhow, I don't have anything solid sitting around. Just lots of notes, disassembled software, and C and assembly toys.

@all

uIP is designed for extremely resource limited systems, but it's not really intended to be a general purpose stack. Still, it's used in lots of place, and it's fun to work with. I'll be cleaning up and towering my Amiga mess over the next couple weeks. Sounds like uIP will be project number one.

Trev
 

Offline Colani1200

  • Hero Member
  • *****
  • Join Date: Jul 2006
  • Posts: 707
    • Show only replies by Colani1200
Re: uIP
« Reply #5 on: October 22, 2007, 06:06:16 PM »
Keep us updated. Looking forward to the first version.  :-)
 

Offline TrevTopic starter

  • Hero Member
  • *****
  • Join Date: May 2003
  • Posts: 1550
  • Country: 00
    • Show only replies by Trev
Re: uIP
« Reply #6 on: November 04, 2007, 05:17:09 AM »
So the uIP port is done, but it needs to be properly tested and debugged. I also need to add some command-line options. Wouldn't be too useful as a demonstration if it only worked on one device. ;-) Anyhow, my proper Amiga is still waiting for a few parts. I'm thinking Thursday or Friday for delivery, so I should be able to finish up next weekend. My birthday is next week, though, so it may be tough to fit everything in. Anyhow, soon, but hopefully not in the Amiga, Inc. sense of the word. :-P

Trev
 

Offline TrevTopic starter

  • Hero Member
  • *****
  • Join Date: May 2003
  • Posts: 1550
  • Country: 00
    • Show only replies by Trev
Re: uIP
« Reply #7 on: November 05, 2007, 10:38:19 PM »
gcc (as compiled by/distributed with AmiDevCpp) is compiling the code in such a why that changes to global variables are not visible cross-module. Optimization is disabled, and volatile doesn't work regardless. Still, I can hack it into working by accessing the variable in some other way--printf for example. This all points to a volatile-like issue, but I haven't looked at a listing yet. Anyhow, ARP and ICMP work.

It's my view that cross-platform code should stay cross-platform, so I'm attempting to stay out of the uIP code itself unless its necessary to fix an IP-related issue. I'd also like to be able to just drop in future uIP releases with minimal changes to Amiga-specific code.

If all goes well, I'll have a little demo ready tonight. As I've said, uIP is not a general purpose stack, but it could be used an embedded or fallback stack for small applcations, e.g. Amiga Explorer. (Note that Cloanto would have to modify Amiga Explorer for that to work.) Still, wrapping a bsdsocket.library interface around uIP is possible.

Anyhow, onto lwIP after this.

Trev