about IPv6

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

about IPv6

Philippe Marschall
Hi

Browsing in the vm SVN repository I found some hints to IPv6 support
(at least on UNIX). What's the status of this? IIRC the OLPC guys once
said they'd probably gonna need it? Is an IPv6 address modeled as a
ByteArray of size 16?

Cheers
Philippe

Reply | Threaded
Open this post in threaded view
|

Re: about IPv6

Michael Rueger-4
Philippe Marschall wrote:
> Hi
>
> Browsing in the vm SVN repository I found some hints to IPv6 support
> (at least on UNIX). What's the status of this? IIRC the OLPC guys once
> said they'd probably gonna need it? Is an IPv6 address modeled as a
> ByteArray of size 16?

IPv6 support was added for the OLPC (Unix) VMs, the smalltalk support
code is in the OLPC image.
Ian did the new plugin, Bert and I did the image side work. Right now it
falls back on the old network code, if the ipv6 plugin isn't present.

IIRC Ian had planned to officially release and announce the plugin once
it is stable so other platform maintainers could catch up. Ian?

Michael

Reply | Threaded
Open this post in threaded view
|

Re: about IPv6

Ian Piumarta-2
On Aug 14, 2007, at 12:12 AM, Michael Rueger wrote:

> IIRC Ian had planned to officially release and announce the plugin  
> once it is stable so other platform maintainers could catch up. Ian?

Harvest away: the attached adds the necessary stuff to SocketPlugin.  
The result should be completely backward compatible.

The platform code for Unix is in SVN.  For MacOS I guess John will  
just copy and paste as usual (and the result should work: I have  
tested the Unix code under Darwin).

To test after adding platform support code you'll need to grab at  
least SocketAddress, SocketAddressInformation (assuming Mike didn't  
change the names) and the new primitive methods in Socket from the  
OLPC image.  (If anyone wants the lightweight versions of these that  
I originally sent to Mike, which are sufficient to test basic TCP and  
UDP over IP6 provided your machine's IP stack supports v6, then just  
let me know.)

There might still be a problem with some illegal arguments not being  
caught.  If/when this stuff looks like moving into the mainstream  
I'll happily investigate further and harden the checks.

(I thought about x-posting to vm-dev but all the relevant people read  
this list anyway.)

Cheers,
Ian




SocketPlugin-IPv6-ikp.1.cs.gz (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: about IPv6

Andreas.Raab
Ian Piumarta wrote:
> To test after adding platform support code you'll need to grab at least
> SocketAddress, SocketAddressInformation (assuming Mike didn't change the
> names) and the new primitive methods in Socket from the OLPC image.  (If
> anyone wants the lightweight versions of these that I originally sent to
> Mike, which are sufficient to test basic TCP and UDP over IP6 provided
> your machine's IP stack supports v6, then just let me know.)

Please do. I'll need something to test against.

Cheers,
   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: about IPv6

Michael Rueger-4
Andreas Raab wrote:

> Ian Piumarta wrote:
>> To test after adding platform support code you'll need to grab at
>> least SocketAddress, SocketAddressInformation (assuming Mike didn't
>> change the names) and the new primitive methods in Socket from the
>> OLPC image.  (If anyone wants the lightweight versions of these that I
>> originally sent to Mike, which are sufficient to test basic TCP and
>> UDP over IP6 provided your machine's IP stack supports v6, then just
>> let me know.)
>
> Please do. I'll need something to test against.
Attached the OLPC change sets and a file-out of the network category.

Michael



1462networkFix-mir-bf.1.zip (77K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: about IPv6

johnmci
In reply to this post by Ian Piumarta-2

On Aug 14, 2007, at 4:58 PM, Ian Piumarta wrote:

> The platform code for Unix is in SVN.  For MacOS I guess John will  
> just copy and paste as usual (and the result should work: I have  
> tested the Unix code under Darwin).

I just use the unix socket code from the SVN tree since os-x drawin  
is unix after all.

I have some changes related to EINTR (attached) for the old socket  
code, but have not anyone tested it.

So for example  socketReadable()
invokes recv() to see if the socket is readable.
If that got a EINTR the original code would return (-1)  EOF
This likely is the wrong answer since you might expect back  (1)  
meaning data, or (0) meaning would block.

Thus something like sqSocketReceiveDataAvailable() does this below so  
it *could* get a EINTR which would set the socket to
OtherEndClosed, which in fact is wrong.

   if (SOCKETSTATE(s) == Connected)
     {
       int fd= SOCKET(s);
       int n=  socketReadable(fd);
       if (n > 0)
        {
          FPRINTF((stderr, "receiveDataAvailable(%d) -> true\n", fd));
          return true;
        }
       else if (n < 0)
        {
          FPRINTF((stderr, "receiveDataAvailable(%d): other end closed\n",  
fd));
          SOCKETSTATE(s)= OtherEndClosed;
        }


--
========================================================================
===
John M. McIntosh <[hidden email]>
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
========================================================================
===






sqUnixSocket.c.zip (15K) Download Attachment