Monday, May 31, 2010

Update - 31.05.2010



This update will be short. In last week I was able to work on GSoC only for one day due to various reasons. One being that in Saturday we had to work after Monday's work schedule, as everyone in Latvia, because of "moved" days due to national holidays at beginning of May.

What I have done so far:
- modified ifconfig program to support ipv6 addresses
- copied kernel/network/protocols/ipv4/ to kernel/network/protocols/ipv6/ and started editing those files. There is going to be gIPv6Module and gIpv6AddressModule.

The biggest problem that crept out so far is the fact hat there can be only one address per struct net_interface. Don't know if it is bad, but it seems to be, because at first look net_interfaces are supposed to have unique names. In ipv4 the interface naming problem is solved by creating aliases. But in ipv6 world:
1) multiple IP addresses per link is a much more frequent situation;
2) in any case, there can be both ipv4 and ipv6 address for a link! (Probably solved by having multiple net_domains.)

Is it better to take ip6_hdr from system headers and use it, or to define my own "struct ipv6_header" in ipv6.cpp (like struct ipv4_header is defined in ipv4.cpp)? I will go with system headers for now.




I also got the IPv6 book from Amazon (pictured). It was delivered in 24th May, precisely at the first day of GSoC. Have been using the book as a bedtime reading, and learning about the KAME software. At this point it's probably ridiculous to criticize other IPv6 implementations, but I jotted a quick notes to myself about "what could be done better than KAME did":
1) C++ vs. C. It's no secret that C++ does provide better and easier data structure interface. All these "list_next" fields in structures.. We can get rid of the in C++ and avoid mixing low level implementation details and functionality.
2) The hack with storing scope id's inside link local addresses. Just. Ugly. Good thing we don't have to keep "historical compatibility".
3) mbuf's - BSD network memory buffers. Hope that Haiku buffer management feels better. I know that Linux does.

1 comment:

  1. Great work so far!

    We are looking forward to what you are attempting to bring to the Haiku operating system.

    I am mentioning this post in the Haiku irc chans in-case someone can introduce some wisdom on those system header questions.

    ReplyDelete