Subject: Re: [PATCH 2/2] [IPV6] RAW: Add checksum default defines for mobility header.

From: Masahide NAKAMURA <[email-masked]>
Date: Wed, 27 Dec 2006 13:57:23 +0900

YOSHIFUJI Hideaki / ???? wrote:
> If it is okay to defer the checksumming after checking the next header
> protocol, we can omit the checksumming in mip6_mh_filter(), and
> leave it to rawv6_rcv() and rawv6_recvmsg().
> 
> 
> Anyway, we have 4 options.
> 
> 1. IPV6_CHECKSUM default for IPPROTO_MH == 4
>    omit checksumming in mip6_mh_filter()
> 2. IPV6_CHECKSUM default for IPPROTO_MH == -1
>    omit checksumming in mip6_mh_filter()
> 3. IPV6_CHECKSUM for IPPROTO_MH == 4
>    always perform checksumming in mip6_mh_filter()
> 4. IPV6_CHECKSUM default for IPPROTO_MH == -1
>    always perform checksumming in mip6_mh_filter()
> 
> Current behavior is 4, but it is not appropriate.
> I guess 1 is the way to go.

I would like to have 1, too.

> Another question may arise; is it okay to change the default if the
> raw socket for Mobility Header is NOT for user-space daemon? or,

For such application (if any), it has used setsockopt = 4 or hasn't used it
for inbound checksum. Those code should work with the kernel change then I
can not find any issue here. Do you have anything else to be discussed?

> is it okay to have two different default value depending on CONFIG_IPV6_MIP6?
> If we take these question seriously, we should take 2.

We have a solution here, to remove "ifdef CONFIG_IPV6_MIP6" from
rawv6_init_sk() to have the same default value = 4 for IPPROTO_MH
regardless user config.

BTW ICMPv6 default is on and offset = 2. It is better idea for me
to have the similar design for both MH and ICMPv6 as raw socket stuff
than you pointed.

Regards,

-- 
Masahide NAKAMURA