2002-10-01 16:27:01

by Steve G

[permalink] [raw]
Subject: 2.4.18+IPv6+IPV6_ADDRFORM

Hello,

I am using a 2.4.18 kernel and ran across something I
thought was odd and need to understand better. I'm
writing a test suite to verify xinetd and I'm trying
to check a socket via getsockopt() to see if the
IPV6_ADDRFORM socket option has been set. I cannot
find IPV6_ADDRFORM in the Single Unix Standard or man
pages, so I am going by what is in Richard Steven's
book, Network Programming vol 1.

According to it, calling getsockopt() with level
IPPROTO_IPV6 and option IPV6_ADDRFORM should get the
option value. However, I get a socket error. I changed
the level to IPPROTO_IP and the call goes through, but
Richard Stevens' book states that AF_INET or AF_INET6
should be returned rather than 0 or 1.

1) should the level really be IPPROTO_IPV6?
2) do other platforms use IPPROTO_IP to retrieve this
option or said another way, is the behavior observed
in Linux portable?
3) should the returned value be 0 & 1 or AF_INET &
AF_INET6?
4) Is this a deprecated option and likely to be
dropped?

Also, the Sus v3, states there is a socket option:
level IPPROTO_IPV6, option IPV6_V6ONLY...will this be
supported in 2.4 or 2.6? A grep -r doesn't get any
hits from /usr/include.

Thanks,
Steve Grubb

__________________________________________________
Do you Yahoo!?
New DSL Internet Access from SBC & Yahoo!
http://sbc.yahoo.com


Subject: Re: 2.4.18+IPv6+IPV6_ADDRFORM

In article <[email protected]> (at Tue, 1 Oct 2002 09:32:21 -0700 (PDT)), Steve G <[email protected]> says:

> According to it, calling getsockopt() with level
> IPPROTO_IPV6 and option IPV6_ADDRFORM should get the
> option value. However, I get a socket error. I changed
> the level to IPPROTO_IP and the call goes through, but
> Richard Stevens' book states that AF_INET or AF_INET6
> should be returned rather than 0 or 1.
>
> 1) should the level really be IPPROTO_IPV6?
> 2) do other platforms use IPPROTO_IP to retrieve this
> option or said another way, is the behavior observed
> in Linux portable?
> 3) should the returned value be 0 & 1 or AF_INET &
> AF_INET6?
> 4) Is this a deprecated option and likely to be
> dropped?

IPV6_ADDRFORM is deprecated.
I believe that it should be removed.


> Also, the Sus v3, states there is a socket option:
> level IPPROTO_IPV6, option IPV6_V6ONLY...will this be
> supported in 2.4 or 2.6? A grep -r doesn't get any
> hits from /usr/include.

We, USAGI Project, have implementation for it,
and we are about to contribute it here.

--
Hideaki YOSHIFUJI @ USAGI Project <[email protected]>
GPG FP: 9022 65EB 1ECF 3AD1 0BDF 80D8 4807 F894 E062 0EEA

2002-10-02 12:31:47

by Steve G

[permalink] [raw]
Subject: Re: 2.4.18+IPv6+IPV6_ADDRFORM

>IPV6_ADDRFORM is deprecated.
>I believe that it should be removed.

Shouldn't we correct it in 2.4 and drop it in 2.5 ?

If the above assumption is correct...

>1) should the level really be IPPROTO_IPV6?
>2) do other platforms use IPPROTO_IP to retrieve this
>option or said another way, is the behavior observed
>in Linux portable?
>3) should the returned value be 0 & 1 or AF_INET &
>AF_INET6?

>>Also, the Sus v3, states there is a socket option:
>>level IPPROTO_IPV6, option IPV6_V6ONLY.
>
>We, USAGI Project, have implementation for it,
>and we are about to contribute it here.

Great.

Thanks,
Steve Grubb


__________________________________________________
Do you Yahoo!?
New DSL Internet Access from SBC & Yahoo!
http://sbc.yahoo.com