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