>>>>> On Mon, 17 Sep 2001 21:06:23 +0200 (CEST),
>>>>> Erik Nordmark <[EMAIL PROTECTED]> said:
>> For RAW sockets, an application can use any procotol for IPv4. In IPv6, I
>> imagine there are problems if a RAW application opens a socket and uses a
>> known IPv6 extension header number as the protocol since now the IP layer
>> will expect that next header field to be an extension header. Therefore,
>> is it a restriction now that an IPv6 RAW application cannot use an known
>> IPv6 extension header as the protocol on the socket call?
> Good question.
> I suspect this is implementation dependent since the Advanced API is
> silent on the issue.
I think so, too.
> What do different implementations do?
KAME (perhaps unintentionally) does not allow applications to specify
a next header ID for an extension header as a socket protocol. The
implementation has protocol switch structures for the extension header
types with specifying NULL as the corresponding user request
functions. As a result, the kernel routing for the socket(2) call
fails, with the EPROTONOSUPPORT error, when the protocol value is one
of the extension header types.
I've checked this behavior with a tiny test program. If you're
interested, you may be able to do the same test for your own
implementation by:
- grab the latest version at
http://orange.kame.net/dev/cvsweb.cgi/kame/kame/kame/advapitest/
- compile the "accept" command in the test kit.
- execute "accept -P ipv6-opts" etc.
(I don't know if the test kit is portable enough, though.)
JINMEI, Tatuya
Communication Platform Lab.
Corporate R&D Center, Toshiba Corp.
[EMAIL PROTECTED]
--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page: http://playground.sun.com/ipng
FTP archive: ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [EMAIL PROTECTED]
--------------------------------------------------------------------