RFC 3542 or RFC 2292 - Advanced Sockets Application Program Interface (API) for IPv6
Hello all, I'm working on a project at the moment that needs's access to the "type 0 routing header" in an IPv6 packet. RFC 2292 describes a nice API, which allows you access to the routing header, see http://tools.ietf.org/html/rfc2292#section-8.9 I see that JavaSE supports RFC 2553 Basic Socket Interface Extensions for IPv6, and from looking around it seems that Sun has no interest in implementing RFC 3542 or RFC 2292(RFC 3542 Obsoletes 2292). My first question is: Is there any one working on implementing RFC 3542 or RFC 2292 in the openJDK project? My second question: What are my options going forward? I am pretty new to working on such low level stuff so any advice on how I should proceed is welcome. I've done a bit of researching and here is a bit of a summary. I'm developing on windows XP, so its mostly around how I would provide this functionality on a windows enviornment, but in the end my application would have to work on other major platforms. Firstly as some of you may know "type 0 routing header" has caused a bit of controversy (see http://www.natisbad.org/ especially this presentation http://www.secdev.org/conf/IPv6_RH_security-csw07.pdf) and it seems that there is some security concerns. Does anyone have any comment on this? I see some people are not happy as applications have already been developed using this feature. Do you think "type 0 routing header" will be disabled by default in routers and hosts? Do you think a new method will be created to provide this routing functionality but more securly? So imagining that all is well with "type 0 routing header" and I will use it for my project, here are some of the solutions I have been looking at for implementing this on windows. 1. WinSock 2. Raw Socket on top Winsock 3. Winpcap 4.0 beta 3 supports IPv6 1. Winsock Winsock does not seem to support RFC 3542 or RFC 2292. As in there is no nice methods for adding routing headers as far as I can see. http://msdn2.microsoft.com/en-us/library/ms738649.aspx and http://msdn2.microsoft.com/en-us/library/ms738649.aspx 2. Raw Socket with Winsock Raw Socket as far as I can see gives you acess to the header and data parts of the packet. From my research this in theory seems to be possible with winsock see http://msdn2.microsoft.com/en-us/library/ms740506.aspx especially the IPV6_HDRINCL section. Windows XP SP2 seems to have limited the raw socket, see http://blogs.msdn.com/michael_howard/archive/2004/08/12/213611.aspx, but I think I should be sill OK as I'm working with UDP and I'm not trying to change the source address of anything. Does anyone have any advice on starting with raw socket programming? I have downloaded and am looking at Rock Saw at the moment(http://www.savarese.org/software/rocksaw/). Any other advice welcome. Does JavaSE or OpenJDK use raw sockets for its functionality, or does it do something else? I am going to start looking into this next. 3. Winpcap 4.0 beta 3 Haven't investigated much here. Does this run on top of winsock? Does anyone know can I send packets using winpcap? Network Packet generator (http://www.wikistc.org/wiki/Network_packet_generator) is built on winpcap, has anyone used this on windows? Thats my research for the moment. If you have any questions please get back to me. Thanks for reading, Cormac
Re: RFC 3542 or RFC 2292 - Advanced Sockets Application Program Interface (API) for IPv6
Hi Michael, I aggree it is quite specialised, but I think it would be good for java to support this. Yes I would love to use Linux or Solaris but I have to support windows. I am going to look at the internals of the openJDK now and see how it works. Thanks for your help so far and I will let you know how I get on. Best Regards, Cormac On Nov 22, 2007 1:56 PM, Michael McMahon <[EMAIL PROTECTED]> wrote: > Hi Cormac, > > I don't think it's likely that Java SE will support RFC3542 in the near > future. > I can't say however, whether anybody is actually doing any work on > trying to support it. > It seems like a fairly specialised requirement, that the majority of > IPv6 applications would > not use. > > Have you looked at Linux or Solaris? I think these operating systems > have good support > for the advanced Ipv6 socket APIs. > > Hth, > Michael. > > > cormac mullally wrote: > > Hello all, > > > > I'm working on a project at the moment that needs's access to the > > "type 0 routing header" in an IPv6 packet. RFC 2292 describes a nice > > API, which allows you access to the routing header, see > > http://tools.ietf.org/html/rfc2292#section-8.9 > > > > I see that JavaSE supports RFC 2553 Basic Socket Interface Extensions > > for IPv6, and from looking around it seems that Sun has no interest in > > implementing RFC 3542 or RFC 2292(RFC 3542 Obsoletes 2292). > > > > My first question is: > > Is there any one working on implementing RFC 3542 or RFC 2292 in the > > openJDK project? > > > > My second question: > > What are my options going forward? > > > > > > I am pretty new to working on such low level stuff so any advice on > > how I should proceed is welcome. > > > > I've done a bit of researching and here is a bit of a summary. I'm > > developing on windows XP, so its mostly around how I would provide > > this functionality on a windows enviornment, but in the end my > > application would have to work on other major platforms. > > > > Firstly as some of you may know "type 0 routing header" has caused a > > bit of controversy (see http://www.natisbad.org/ especially this > > presentation http://www.secdev.org/conf/IPv6_RH_security-csw07.pdf) > > and it seems that there is some security concerns. Does anyone have > > any comment on this? I see some people are not happy as applications > > have already been developed using this feature. Do you think "type 0 > > routing header" will be disabled by default in routers and hosts? Do > > you think a new method will be created to provide this routing > > functionality but more securly? > > > > So imagining that all is well with "type 0 routing header" and I will > > use it for my project, here are some of the solutions I have been > > looking at for implementing this on windows. > > 1. WinSock > > 2. Raw Socket on top Winsock > > 3. Winpcap 4.0 beta 3 supports IPv6 > > > > > > 1. Winsock > > Winsock does not seem to support RFC 3542 or RFC 2292. As in there is > > no nice methods for adding routing headers as far as I can see. > > http://msdn2.microsoft.com/en-us/library/ms738649.aspx and > > http://msdn2.microsoft.com/en-us/library/ms738649.aspx > > > > 2. Raw Socket with Winsock > > Raw Socket as far as I can see gives you acess to the header and data > > parts of the packet. From my research this in theory seems to be > > possible with winsock > > see http://msdn2.microsoft.com/en-us/library/ms740506.aspx especially > > the IPV6_HDRINCL section. > > Windows XP SP2 seems to have limited the raw socket, see > > http://blogs.msdn.com/michael_howard/archive/2004/08/12/213611.aspx, > > but I think I should be sill OK as I'm working with UDP and I'm not > > trying to change the source address of anything. > > Does anyone have any advice on starting with raw socket programming? I > > have downloaded and am looking at Rock Saw at the > > moment(http://www.savarese.org/software/rocksaw/). Any other advice > > welcome. > > Does JavaSE or OpenJDK use raw sockets for its functionality, or does > > it do something else? I am going to start looking into this next. > > > > 3. Winpcap 4.0 beta 3 > > Haven't investigated much here. Does this run on top of winsock? Does > > anyone know can I send packets using winpcap? Network Packet generator > > (http://www.wikistc.org/wiki/Network_packet_generator) is built on > > winpcap, has anyone used this on windows? > > > > Thats my research for the moment. If you have any questions please get > > back to me. > > > > Thanks for reading, > > Cormac > > > >
Re: RFC 3542 or RFC 2292 - Advanced Sockets Application Program Interface (API) for IPv6
Hi all, I had a quick look at openJDK and i see that on windows it uses winsock2 as is expected. I also see that in some paces it tries to use Raw Sockets, Inet4AddressImpl.c and Inet6AddressImpl.c . Do you think in theory it will be possible for me to create an IPv6 packet and header and send them over the raw socket using winsock2? All help appreciated, Cormac On Nov 22, 2007 2:42 PM, cormac mullally <[EMAIL PROTECTED]> wrote: > Hi Michael, > > I aggree it is quite specialised, but I think it would be good for > java to support this. Yes I would love to use Linux or Solaris but I > have to support windows. > > I am going to look at the internals of the openJDK now and see how it works. > > Thanks for your help so far and I will let you know how I get on. > > Best Regards, > Cormac > > > > > > On Nov 22, 2007 1:56 PM, Michael McMahon <[EMAIL PROTECTED]> wrote: > > Hi Cormac, > > > > I don't think it's likely that Java SE will support RFC3542 in the near > > future. > > I can't say however, whether anybody is actually doing any work on > > trying to support it. > > It seems like a fairly specialised requirement, that the majority of > > IPv6 applications would > > not use. > > > > Have you looked at Linux or Solaris? I think these operating systems > > have good support > > for the advanced Ipv6 socket APIs. > > > > Hth, > > Michael. > > > > > > cormac mullally wrote: > > > Hello all, > > > > > > I'm working on a project at the moment that needs's access to the > > > "type 0 routing header" in an IPv6 packet. RFC 2292 describes a nice > > > API, which allows you access to the routing header, see > > > http://tools.ietf.org/html/rfc2292#section-8.9 > > > > > > I see that JavaSE supports RFC 2553 Basic Socket Interface Extensions > > > for IPv6, and from looking around it seems that Sun has no interest in > > > implementing RFC 3542 or RFC 2292(RFC 3542 Obsoletes 2292). > > > > > > My first question is: > > > Is there any one working on implementing RFC 3542 or RFC 2292 in the > > > openJDK project? > > > > > > My second question: > > > What are my options going forward? > > > > > > > > > I am pretty new to working on such low level stuff so any advice on > > > how I should proceed is welcome. > > > > > > I've done a bit of researching and here is a bit of a summary. I'm > > > developing on windows XP, so its mostly around how I would provide > > > this functionality on a windows enviornment, but in the end my > > > application would have to work on other major platforms. > > > > > > Firstly as some of you may know "type 0 routing header" has caused a > > > bit of controversy (see http://www.natisbad.org/ especially this > > > presentation http://www.secdev.org/conf/IPv6_RH_security-csw07.pdf) > > > and it seems that there is some security concerns. Does anyone have > > > any comment on this? I see some people are not happy as applications > > > have already been developed using this feature. Do you think "type 0 > > > routing header" will be disabled by default in routers and hosts? Do > > > you think a new method will be created to provide this routing > > > functionality but more securly? > > > > > > So imagining that all is well with "type 0 routing header" and I will > > > use it for my project, here are some of the solutions I have been > > > looking at for implementing this on windows. > > > 1. WinSock > > > 2. Raw Socket on top Winsock > > > 3. Winpcap 4.0 beta 3 supports IPv6 > > > > > > > > > 1. Winsock > > > Winsock does not seem to support RFC 3542 or RFC 2292. As in there is > > > no nice methods for adding routing headers as far as I can see. > > > http://msdn2.microsoft.com/en-us/library/ms738649.aspx and > > > http://msdn2.microsoft.com/en-us/library/ms738649.aspx > > > > > > 2. Raw Socket with Winsock > > > Raw Socket as far as I can see gives you acess to the header and data > > > parts of the packet. From my research this in theory seems to be > > > possible with winsock > > > see http://msdn2.microsoft.com/en-us/library/ms740506.aspx especially > > > the IPV6_HDRINCL section. > > > Windows XP SP2 seems to have limited the raw socket, see > > > http://blogs.msdn.com/michael_howard/archive/2004/08/12/213611.aspx
Re: RFC 3542 or RFC 2292 - Advanced Sockets Application Program Interface (API) for IPv6
Hi all, I'm continuing to look at how java implements its sockets. Just had a look at how it works for solaris and linix. Can anyone give me any information on the function JVM_Socket, It is defined in the jvm.h file, but I can't find it implementation. Can someone confirm that is it built on the POSIX interfaces? Thanks, Cormac On Nov 23, 2007 4:22 PM, cormac mullally <[EMAIL PROTECTED]> wrote: > Hi all, > > I had a quick look at openJDK and i see that on windows it uses > winsock2 as is expected. > > I also see that in some paces it tries to use Raw Sockets, > Inet4AddressImpl.c and Inet6AddressImpl.c . > > Do you think in theory it will be possible for me to create an IPv6 > packet and header and send them over the raw socket using winsock2? > > All help appreciated, > Cormac > > > On Nov 22, 2007 2:42 PM, cormac mullally <[EMAIL PROTECTED]> wrote: > > Hi Michael, > > > > I aggree it is quite specialised, but I think it would be good for > > java to support this. Yes I would love to use Linux or Solaris but I > > have to support windows. > > > > I am going to look at the internals of the openJDK now and see how it works. > > > > Thanks for your help so far and I will let you know how I get on. > > > > Best Regards, > > Cormac > > > > > > > > > > > > On Nov 22, 2007 1:56 PM, Michael McMahon <[EMAIL PROTECTED]> wrote: > > > Hi Cormac, > > > > > > I don't think it's likely that Java SE will support RFC3542 in the near > > > future. > > > I can't say however, whether anybody is actually doing any work on > > > trying to support it. > > > It seems like a fairly specialised requirement, that the majority of > > > IPv6 applications would > > > not use. > > > > > > Have you looked at Linux or Solaris? I think these operating systems > > > have good support > > > for the advanced Ipv6 socket APIs. > > > > > > Hth, > > > Michael. > > > > > > > > > cormac mullally wrote: > > > > Hello all, > > > > > > > > I'm working on a project at the moment that needs's access to the > > > > "type 0 routing header" in an IPv6 packet. RFC 2292 describes a nice > > > > API, which allows you access to the routing header, see > > > > http://tools.ietf.org/html/rfc2292#section-8.9 > > > > > > > > I see that JavaSE supports RFC 2553 Basic Socket Interface Extensions > > > > for IPv6, and from looking around it seems that Sun has no interest in > > > > implementing RFC 3542 or RFC 2292(RFC 3542 Obsoletes 2292). > > > > > > > > My first question is: > > > > Is there any one working on implementing RFC 3542 or RFC 2292 in the > > > > openJDK project? > > > > > > > > My second question: > > > > What are my options going forward? > > > > > > > > > > > > I am pretty new to working on such low level stuff so any advice on > > > > how I should proceed is welcome. > > > > > > > > I've done a bit of researching and here is a bit of a summary. I'm > > > > developing on windows XP, so its mostly around how I would provide > > > > this functionality on a windows enviornment, but in the end my > > > > application would have to work on other major platforms. > > > > > > > > Firstly as some of you may know "type 0 routing header" has caused a > > > > bit of controversy (see http://www.natisbad.org/ especially this > > > > presentation http://www.secdev.org/conf/IPv6_RH_security-csw07.pdf) > > > > and it seems that there is some security concerns. Does anyone have > > > > any comment on this? I see some people are not happy as applications > > > > have already been developed using this feature. Do you think "type 0 > > > > routing header" will be disabled by default in routers and hosts? Do > > > > you think a new method will be created to provide this routing > > > > functionality but more securly? > > > > > > > > So imagining that all is well with "type 0 routing header" and I will > > > > use it for my project, here are some of the solutions I have been > > > > looking at for implementing this on windows. > > > > 1. WinSock > > > > 2. Raw Socket on top Winsock > > > > 3. Winpcap 4.0 beta 3 supports IPv6 > >
Re: RFC 3542 or RFC 2292 - Advanced Sockets Application Program Interface (API) for IPv6
Hello Max, Ok i found it, in C:\openjdk\hotspot\src\share\vm\prims\jvm.cpp JVM_LEAF(jint, JVM_Socket(jint domain, jint type, jint protocol)) JVMWrapper("JVM_Socket"); return hpi::socket(domain, type, protocol); JVM_END And then for linix i found C:\openjdk\hotspot\src\os\linux\vm\hpi_linux.hpp inline int hpi::socket(int domain, int type, int protocol) { return ::socket(domain, type, protocol); } So it uses Socket.h which is part of the POSIX interfaces, is this true? Thanks, Cormac On Nov 26, 2007 11:35 AM, Max (Weijun) Wang <[EMAIL PROTECTED]> wrote: > It's defined in the hotspot workspace. > > Max > > On Nov 26, 2007, at 6:23 PM, cormac mullally wrote: > > > JVM_Socket > >