* [RFC] Mobile IPv6 introduction @ 2006-07-29 9:23 Masahide NAKAMURA 2006-07-29 9:28 ` [PATCH 0/23][XFRM] MIPv6 CN introduction (part A) (Re: [RFC] Mobile IPv6 introduction) Masahide NAKAMURA 2006-07-29 14:12 ` [RFC] Mobile IPv6 introduction Hugo Santos 0 siblings, 2 replies; 16+ messages in thread From: Masahide NAKAMURA @ 2006-07-29 9:23 UTC (permalink / raw) To: davem; +Cc: yoshfuji, anttit, vnuorval, netdev, usagi-core Hello, Let me introduce Mobile IPv6(RFC3775) patch and its outline. We USAGI project and HUT Go/Core project have developed for Mobile IPv6(MIPv6) stack on 2.6 tree as MIPL2 for several years. Our aim is to make kernel patch smaller (than MIPL1 which is for 2.4 kernel). We find out we have 4 categories for the patch: 1. IPv6 policy routing 2. IPsec MIGRATE 3. Advanced XFRM for Correspondent Node(CN) 4. MISC 3, 4 are MIPv6 specific feature but 1, 2 are not. It can be discussed in parallel about 1, 2, 3 because they don't depend on others. 1. IPv6 policy routing Thomas and Yoshifuji have already started to discuss and work for it. This is required by Mobile Node(MN) and used by Home Agent(HA). 2. IPsec MIGRATE This is an interface to update IPsec end-point address of SAD/SPD. (there is an IETF draft: draft-sugimoto-mip6-pfkey-migrate-XX) This is required by MN and HA to use IPsec tunnel. 3. Advanced XFRM for CN "Route optimization" defined MIPv6 specification is designed as XFRM extension. IPv6 extension headers handling is included, too. This feature is required by all MIPv6 nodes(CN, MN, HA) then it can be said MIPv6 platform. 4. MISC This is a set of small patches but works with the above categories since they are finally confirmed as the MIPv6 node behavior; e.g. home addressing for MN, proxy forwarding for HA. At first I'll send patches about category "3" very soon, just for review. Can you check them? Thanks, -- Masahide NAKAMURA ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 0/23][XFRM] MIPv6 CN introduction (part A) (Re: [RFC] Mobile IPv6 introduction) 2006-07-29 9:23 [RFC] Mobile IPv6 introduction Masahide NAKAMURA @ 2006-07-29 9:28 ` Masahide NAKAMURA 2006-07-29 9:37 ` [PATCH 0/20][IPV6/XFRM] MIPv6 CN (part B) Masahide NAKAMURA 2006-07-29 14:12 ` [RFC] Mobile IPv6 introduction Hugo Santos 1 sibling, 1 reply; 16+ messages in thread From: Masahide NAKAMURA @ 2006-07-29 9:28 UTC (permalink / raw) To: davem; +Cc: yoshfuji, anttit, vnuorval, netdev, usagi-core Please see patches about "Avanced XFRM for CN", following this mail. These are just for review, and it is against 2.6.17. "Avanced XFRM for CN" tree is consists of: A. XFRM extension for route optimization B. IPv6 extension headers: new type (2) of routing header new TLV option for destination options header: home address option new header for signaling: mobility header Part B patches depend on A. Let me start part A first. Part A is also available as mip6cn-20060716-review branch at: git://git.skbuff.net:9419/gitroot/nakam/linux-2.6-mip6cn-xfrm > 3. Advanced XFRM for CN > "Route optimization" defined MIPv6 specification > is designed as XFRM extension. IPv6 extension headers > handling is included, too. > This feature is required by all MIPv6 nodes(CN, MN, HA) then it can > be said MIPv6 platform. -- Masahide NAKAMURA ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 0/20][IPV6/XFRM] MIPv6 CN (part B) 2006-07-29 9:28 ` [PATCH 0/23][XFRM] MIPv6 CN introduction (part A) (Re: [RFC] Mobile IPv6 introduction) Masahide NAKAMURA @ 2006-07-29 9:37 ` Masahide NAKAMURA 2006-08-02 0:30 ` David Miller 0 siblings, 1 reply; 16+ messages in thread From: Masahide NAKAMURA @ 2006-07-29 9:37 UTC (permalink / raw) To: davem; +Cc: yoshfuji, anttit, vnuorval, netdev, usagi-core Here is Part B patches, following this mail. Part B is also available as mip6cn-20060716-review branch at: git://git.skbuff.net:9419/gitroot/nakam/linux-2.6-mip6cn This tree includes part A, then it has all patches about "Advanced XFRM for CN". > Please see patches about "Avanced XFRM for CN", following this mail. > These are just for review, and it is against 2.6.17. > > "Avanced XFRM for CN" tree is consists of: > > A. XFRM extension for route optimization > B. IPv6 extension headers: > new type (2) of routing header > new TLV option for destination options header: home address option > new header for signaling: mobility header > [snip] >> 3. Advanced XFRM for CN >> "Route optimization" defined MIPv6 specification >> is designed as XFRM extension. IPv6 extension headers >> handling is included, too. >> This feature is required by all MIPv6 nodes(CN, MN, HA) then it can >> be said MIPv6 platform. Thanks, -- Masahide NAKAMURA ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 0/20][IPV6/XFRM] MIPv6 CN (part B) 2006-07-29 9:37 ` [PATCH 0/20][IPV6/XFRM] MIPv6 CN (part B) Masahide NAKAMURA @ 2006-08-02 0:30 ` David Miller 2006-08-02 8:26 ` Masahide NAKAMURA 0 siblings, 1 reply; 16+ messages in thread From: David Miller @ 2006-08-02 0:30 UTC (permalink / raw) To: nakam; +Cc: yoshfuji, anttit, vnuorval, netdev, usagi-core From: Masahide NAKAMURA <nakam@linux-ipv6.org> Date: Sat, 29 Jul 2006 18:37:04 +0900 > Here is Part B patches, following this mail. > > Part B is also available as mip6cn-20060716-review branch at: > > git://git.skbuff.net:9419/gitroot/nakam/linux-2.6-mip6cn > > This tree includes part A, then it has all patches about > "Advanced XFRM for CN". These patches mainly deal with the specifics of ipv6 mobility processing, they look mostly fine to me and I could not spot any obvious errors. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 0/20][IPV6/XFRM] MIPv6 CN (part B) 2006-08-02 0:30 ` David Miller @ 2006-08-02 8:26 ` Masahide NAKAMURA 0 siblings, 0 replies; 16+ messages in thread From: Masahide NAKAMURA @ 2006-08-02 8:26 UTC (permalink / raw) To: David Miller; +Cc: yoshfuji, anttit, vnuorval, netdev, usagi-core David Miller wrote: > From: Masahide NAKAMURA <nakam@linux-ipv6.org> > Date: Sat, 29 Jul 2006 18:37:04 +0900 > >> Here is Part B patches, following this mail. >> >> Part B is also available as mip6cn-20060716-review branch at: >> >> git://git.skbuff.net:9419/gitroot/nakam/linux-2.6-mip6cn >> >> This tree includes part A, then it has all patches about >> "Advanced XFRM for CN". > > These patches mainly deal with the specifics of ipv6 > mobility processing, they look mostly fine to me and > I could not spot any obvious errors. Thank you for reviewing. Next time I prepare the patch for the latest tree with fixes about comments. Thanks, -- Masahide NAKAMURA ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFC] Mobile IPv6 introduction 2006-07-29 9:23 [RFC] Mobile IPv6 introduction Masahide NAKAMURA 2006-07-29 9:28 ` [PATCH 0/23][XFRM] MIPv6 CN introduction (part A) (Re: [RFC] Mobile IPv6 introduction) Masahide NAKAMURA @ 2006-07-29 14:12 ` Hugo Santos 2006-08-02 0:35 ` David Miller 2006-08-02 3:24 ` Masahide NAKAMURA 1 sibling, 2 replies; 16+ messages in thread From: Hugo Santos @ 2006-07-29 14:12 UTC (permalink / raw) To: Masahide NAKAMURA; +Cc: davem, yoshfuji, anttit, vnuorval, netdev, usagi-core [-- Attachment #1: Type: text/plain, Size: 4320 bytes --] Hi, First of all and to be fair let me introduce my bias -- i'm also developing a mobility framework, which although not MIPv6-specific, does support it (we'll be running a large set of tests during the following month, hopefully culminating in an initial public release in september). In general, i'm all for integrating mobility required code into the kernel, however i have some comments regarding your approaches. Due to the large amount of small patches which are difficult to comment (please send an e-mail with a list of them next time please) i'll just leave a couple of high level comments: - In general, lot's of places in the IPv6 stack don't take the source address into consideration and generically only use destination as key, i think this is a major setback that should be approached individually. - I don't like having the individual MIPv6-specific messages checking in the kernel because feature-wise this is not scalable. Only data-path specific processing should be done in the kernel IMO (RT2 hdr processing, HOA DSTopt processing with address swapping, etc) Introducing new mobility header message type would involve modify- ing the kernel when there would be no other reason to do so (you would then need NEMO-specific code in the kernel, FMIPv6-specific code, etc). Taking the error reporting as an example, what i would prefer would be a way of either signaling the kernel ICMPv6 component to send ParamProb or other types of errors (difficult to support), or instead introducing a new datagram control message that would enable the control application to retrieve the original network headers (although possibly modified) and send the ICMPv6 message itself (which was my choice). - Maybe others disagree, but i don't like having a "Route optimization" mode in XFRM. From my POV, "Route optimization" is one kind of transformation specific to MIPv6. Other protocols require other kind of transformations. I think XFRM should be instead extended to support generic transformations, where the Mobile IPv6-specific one would implement a RO transform in order to support it's binding cache. Also, these new modes are not "advanced" but instead "Mobile IPv6 specific". Best regards, Hugo On Sat, Jul 29, 2006 at 06:23:32PM +0900, Masahide NAKAMURA wrote: > Hello, > > Let me introduce Mobile IPv6(RFC3775) patch and its outline. > > We USAGI project and HUT Go/Core project have developed > for Mobile IPv6(MIPv6) stack on 2.6 tree as MIPL2 for several years. > Our aim is to make kernel patch smaller (than MIPL1 which is for > 2.4 kernel). > > We find out we have 4 categories for the patch: > > 1. IPv6 policy routing > 2. IPsec MIGRATE > 3. Advanced XFRM for Correspondent Node(CN) > 4. MISC > > 3, 4 are MIPv6 specific feature but 1, 2 are not. > It can be discussed in parallel about 1, 2, 3 because they > don't depend on others. > > > 1. IPv6 policy routing > Thomas and Yoshifuji have already started to discuss and work for it. > This is required by Mobile Node(MN) and used by Home Agent(HA). > > 2. IPsec MIGRATE > This is an interface to update IPsec end-point address of SAD/SPD. > (there is an IETF draft: draft-sugimoto-mip6-pfkey-migrate-XX) > This is required by MN and HA to use IPsec tunnel. > > 3. Advanced XFRM for CN > "Route optimization" defined MIPv6 specification > is designed as XFRM extension. IPv6 extension headers > handling is included, too. > This feature is required by all MIPv6 nodes(CN, MN, HA) then it can > be said MIPv6 platform. > > 4. MISC > This is a set of small patches but works with the above categories > since they are finally confirmed as the MIPv6 node behavior; > e.g. home addressing for MN, proxy forwarding for HA. > > > At first I'll send patches about category "3" very soon, just for review. > Can you check them? > > Thanks, > > -- > Masahide NAKAMURA > > > > > > > - > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFC] Mobile IPv6 introduction 2006-07-29 14:12 ` [RFC] Mobile IPv6 introduction Hugo Santos @ 2006-08-02 0:35 ` David Miller 2006-08-02 0:58 ` Hugo Santos 2006-08-02 3:24 ` Masahide NAKAMURA 1 sibling, 1 reply; 16+ messages in thread From: David Miller @ 2006-08-02 0:35 UTC (permalink / raw) To: hsantos; +Cc: nakam, yoshfuji, anttit, vnuorval, netdev, usagi-core From: Hugo Santos <hsantos@av.it.pt> Date: Sat, 29 Jul 2006 15:12:44 +0100 > - In general, lot's of places in the IPv6 stack don't take the source > address into consideration and generically only use destination as > key, i think this is a major setback that should be approached > individually. This is partly why the multiple routing table code is being added as the initial infrastrucutre, so that source based things are possible. > support), or instead introducing a new datagram control message > that would enable the control application to retrieve the original > network headers (although possibly modified) and send the ICMPv6 > message itself (which was my choice). Such a scheme would need provisions for handling the case where the user eats the message, but never tells us what to do. In such a case we'd need to emit some kind of ICMPv6 message, even if it would be just a timeout generated parameter problem. > - Maybe others disagree, but i don't like having a "Route > optimization" mode in XFRM. From my POV, "Route optimization" is > one kind of transformation specific to MIPv6. Other protocols > require other kind of transformations. I think XFRM should be > instead extended to support generic transformations, where the > Mobile IPv6-specific one would implement a RO transform in order to > support it's binding cache. Also, these new modes are not > "advanced" but instead "Mobile IPv6 specific". Such a layer would be needed if we ever put some kernel level components of Mobile IPv4 into the tree, which I see no reason not to, since it has this route optimization as well. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFC] Mobile IPv6 introduction 2006-08-02 0:35 ` David Miller @ 2006-08-02 0:58 ` Hugo Santos 2006-08-02 1:04 ` David Miller ` (2 more replies) 0 siblings, 3 replies; 16+ messages in thread From: Hugo Santos @ 2006-08-02 0:58 UTC (permalink / raw) To: David Miller; +Cc: nakam, yoshfuji, anttit, vnuorval, netdev, usagi-core [-- Attachment #1: Type: text/plain, Size: 2017 bytes --] David, On Tue, Aug 01, 2006 at 05:35:35PM -0700, David Miller wrote: > This is partly why the multiple routing table code is being > added as the initial infrastrucutre, so that source based > things are possible. There have been other approaches for partial source-based stuff. For instance, in my tree i brought Subtrees back to a point of being usable. But what i was refering to was route-caching (some places only check cookies based on dst because we "don't support source routing"), APIs, etc. A few mails back you pointed the extension of a public structure to include a "source" attribute -- this is the kind of stuff we must add and that i think it's an independent work (read: even if the rest isn't merged, this should). Still regarding Subtrees, is there any interest in revitalizing that code? I have a couple patches that i could submit. > Such a scheme would need provisions for handling the case where > the user eats the message, but never tells us what to do. > In such a case we'd need to emit some kind of ICMPv6 message, > even if it would be just a timeout generated parameter problem. As i see it, the moment there is a raw socket open for dealing with a particular protocol, whoever opened that socket (handling the protocol) is responsible of generating any error messages associated with the protocol running. Which is the case, the kernel shouldn't need to know whether any of the Mobile IPv6 specific messages have problems. The particular patch i was refering to does partial MIPv6 message processing inside the kernel before handing it to the socket as you only have access to the full received headers there. > Such a layer would be needed if we ever put some kernel level > components of Mobile IPv4 into the tree, which I see no reason > not to, since it has this route optimization as well. Yes, the functionality is needed. My only problem is with exposing MODE_ROUTEOPTIMIZATION, it isn't modular. But it's something i can live with. Hugo [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFC] Mobile IPv6 introduction 2006-08-02 0:58 ` Hugo Santos @ 2006-08-02 1:04 ` David Miller 2006-08-02 1:52 ` YOSHIFUJI Hideaki / 吉藤英明 2006-08-02 7:58 ` Ville Nuorvala 2 siblings, 0 replies; 16+ messages in thread From: David Miller @ 2006-08-02 1:04 UTC (permalink / raw) To: hsantos; +Cc: nakam, yoshfuji, anttit, vnuorval, netdev, usagi-core From: Hugo Santos <hsantos@av.it.pt> Date: Wed, 2 Aug 2006 01:58:49 +0100 > Still regarding Subtrees, is there any interest in revitalizing that > code? I have a couple patches that i could submit. I'm not sure. If we implement a routing cache front end for the ipv6 FIB, which is very likely, the backend data structures aren't so important any longer. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFC] Mobile IPv6 introduction 2006-08-02 0:58 ` Hugo Santos 2006-08-02 1:04 ` David Miller @ 2006-08-02 1:52 ` YOSHIFUJI Hideaki / 吉藤英明 2006-08-02 7:58 ` Ville Nuorvala 2 siblings, 0 replies; 16+ messages in thread From: YOSHIFUJI Hideaki / 吉藤英明 @ 2006-08-02 1:52 UTC (permalink / raw) To: hsantos; +Cc: davem, nakam, anttit, yoshfuji, vnuorval, netdev, usagi-core In article <20060802005849.GK8334@innerghost.net> (at Wed, 2 Aug 2006 01:58:49 +0100), Hugo Santos <hsantos@av.it.pt> says: > Still regarding Subtrees, is there any interest in revitalizing that > code? I have a couple patches that i could submit. I also have several patches which are being sent. --yoshfuji ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFC] Mobile IPv6 introduction 2006-08-02 0:58 ` Hugo Santos 2006-08-02 1:04 ` David Miller 2006-08-02 1:52 ` YOSHIFUJI Hideaki / 吉藤英明 @ 2006-08-02 7:58 ` Ville Nuorvala 2006-08-02 11:03 ` Hugo Santos 2 siblings, 1 reply; 16+ messages in thread From: Ville Nuorvala @ 2006-08-02 7:58 UTC (permalink / raw) To: Hugo Santos Cc: David S. Miller, YOSHIFUJI Hideaki / 吉藤英明, netdev Hugo Santos wrote: > David, > > On Tue, Aug 01, 2006 at 05:35:35PM -0700, David Miller wrote: >> This is partly why the multiple routing table code is being >> added as the initial infrastrucutre, so that source based >> things are possible. > > There have been other approaches for partial source-based stuff. For > instance, in my tree i brought Subtrees back to a point of being > usable. But what i was refering to was route-caching (some places only > check cookies based on dst because we "don't support source routing"), > APIs, etc. A few mails back you pointed the extension of a public > structure to include a "source" attribute -- this is the kind of stuff > we must add and that i think it's an independent work (read: even if > the rest isn't merged, this should). > > Still regarding Subtrees, is there any interest in revitalizing that > code? I have a couple patches that i could submit. Hi Hugo, I don't want to be dismissive towards your patches, but I've been working with the subtree routing stuff for several years now. And let me tell you: it has provided us with some nasty little surprises every now and then. I'm only saying it's surprisingly difficult to get right on the first try. To name just one issue: the chicken and egg problem of source address selection and source address based routing. I solved this problem by letting policy rules (with a source prefix) add additional constraints to the address selection. This did however mean the source address selection had to be moved inside the routing code. This is just one example; trust me, there are several more. My latest incarnation of source address routing is against my previous version of policy routing, which luckily isn't that different from current the version by Thomas. Unless Yoshifuji-san has already ported my code to Thomas'es policy routing code, I'll start working on it. >> Such a scheme would need provisions for handling the case where >> the user eats the message, but never tells us what to do. >> In such a case we'd need to emit some kind of ICMPv6 message, >> even if it would be just a timeout generated parameter problem. > > As i see it, the moment there is a raw socket open for dealing with a > particular protocol, whoever opened that socket (handling the protocol) > is responsible of generating any error messages associated with the > protocol running. Which is the case, the kernel shouldn't need to know > whether any of the Mobile IPv6 specific messages have problems. The > particular patch i was refering to does partial MIPv6 message > processing inside the kernel before handing it to the socket as you > only have access to the full received headers there. > >> Such a layer would be needed if we ever put some kernel level >> components of Mobile IPv4 into the tree, which I see no reason >> not to, since it has this route optimization as well. > > Yes, the functionality is needed. My only problem is with exposing > MODE_ROUTEOPTIMIZATION, it isn't modular. But it's something i can live > with. But route optimization is just one form of packet transform; it just adds a Routing Header type 2 and/or Home Address Option Destination Header to the outgoing packet. Isn't xfrm just the right place for this? You are right that we (HUT and USAGI) have mostly just looked at the xfrm framework from a MIPv6+IPsec perspective, but even this has helped us pinpoint several shortcomings in the current only IPsec specific framework. IMO, this doesn't hinder, but rather helps change xfrm into the generic packet transform framework it was originally envisioned to be. Regards, Ville ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFC] Mobile IPv6 introduction 2006-08-02 7:58 ` Ville Nuorvala @ 2006-08-02 11:03 ` Hugo Santos 0 siblings, 0 replies; 16+ messages in thread From: Hugo Santos @ 2006-08-02 11:03 UTC (permalink / raw) To: Ville Nuorvala; +Cc: David S. Miller, YOSHIFUJI Hideaki / ????????????, netdev [-- Attachment #1: Type: text/plain, Size: 2261 bytes --] Hi Ville, On Wed, Aug 02, 2006 at 10:58:49AM +0300, Ville Nuorvala wrote: > To name just one issue: the chicken and egg problem of source address > selection and source address based routing. I solved this problem by > letting policy rules (with a source prefix) add additional constraints > to the address selection. This did however mean the source address > selection had to be moved inside the routing code. To tell you the truth i don't know what MIPL does in terms of policy management. In my implementation, all routing policies go into Subtrees without any kind of extra routing tables. I also had the problem you describe, but i opted for what i think is a simpler solution: - Access router default routes are installed with a source-address, the address that was generated from the announced prefix (which to be fair degenerates to several entries if a single router announces multiple prefixes). This is based on the assumption that access routers do perform source-based ingress filtering so you may only use a particular access router for global connectivity using a particular address. - The default home route is installed without a source-address for the "default" Home address (i may have several). This means Linux's source address selection works without modifications: if no address is specified, it will pick the default home route and then the Home address (which has a preference as well). In this sense, subtrees have worked fine for me. > But route optimization is just one form of packet transform; it just > adds a Routing Header type 2 and/or Home Address Option Destination > Header to the outgoing packet. Isn't xfrm just the right place for this? > > You are right that we (HUT and USAGI) have mostly just looked at the > xfrm framework from a MIPv6+IPsec perspective, but even this has helped > us pinpoint several shortcomings in the current only IPsec specific > framework. XFRM is indeed the right place for this; i just would rather not have the mode exposed and prefer wrapping any mode-specific stuff into optional callbacks. It might not be as performant but would allow adding new modes more easily. Hugo [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFC] Mobile IPv6 introduction 2006-07-29 14:12 ` [RFC] Mobile IPv6 introduction Hugo Santos 2006-08-02 0:35 ` David Miller @ 2006-08-02 3:24 ` Masahide NAKAMURA 2006-08-02 10:47 ` Hugo Santos 1 sibling, 1 reply; 16+ messages in thread From: Masahide NAKAMURA @ 2006-08-02 3:24 UTC (permalink / raw) To: hsantos; +Cc: davem, yoshfuji, anttit, vnuorval, netdev, usagi-core Hi Hugo, Please fine my comment inline: Hugo Santos wrote: [snip] > - In general, lot's of places in the IPv6 stack don't take the source > address into consideration and generically only use destination as > key, i think this is a major setback that should be approached > individually. As David answered, the policy routing is it. > - I don't like having the individual MIPv6-specific messages checking > in the kernel because feature-wise this is not scalable. Only > data-path specific processing should be done in the kernel IMO (RT2 > hdr processing, HOA DSTopt processing with address swapping, etc) > Introducing new mobility header message type would involve modify- > ing the kernel when there would be no other reason to do so (you > would then need NEMO-specific code in the kernel, FMIPv6-specific > code, etc). Taking the error reporting as an example, what i would > prefer would be a way of either signaling the kernel ICMPv6 > component to send ParamProb or other types of errors (difficult to > support), or instead introducing a new datagram control message > that would enable the control application to retrieve the original > network headers (although possibly modified) and send the ICMPv6 > message itself (which was my choice). Our patch is similar as you said. Our design is that kernel does nothing as possible about validation which can be done by user-space. As you mentioned ICMPv6 error is hard to be sent by user-space because it carries original packet causing error. MIPv6 RFC says when mobility header length is too short ICMPv6 error (parameter problem) is sent. We also discussed about design like your choice. but we have not taken it because ICMPv6 sending mechanism is already in kernel then it is reasonable to use it. We MIPL developers concluded that kernel should know mobility header types and their minimum length at least. I guess when we would support NEMO and FMIPv6, we just add their defines at that time. (Actually, their implementations based on MIPL2 exists.) If somebody would feel that such defines should be removed from kernel we have another idea to make new socket interface like ICMP filter to store mobility header type and its minimum length to kernel by user-space. > - Maybe others disagree, but i don't like having a "Route > optimization" mode in XFRM. From my POV, "Route optimization" is > one kind of transformation specific to MIPv6. Other protocols > require other kind of transformations. I think XFRM should be > instead extended to support generic transformations, where the > Mobile IPv6-specific one would implement a RO transform in order to > support it's binding cache. Also, these new modes are not > "advanced" but instead "Mobile IPv6 specific". I agree XFRM should be generic transformation. XFRM_ADVANCED will be removed from my patch because some comments are sent. -- Masahide NAKAMURA ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFC] Mobile IPv6 introduction 2006-08-02 3:24 ` Masahide NAKAMURA @ 2006-08-02 10:47 ` Hugo Santos 2006-08-02 13:03 ` Masahide NAKAMURA 0 siblings, 1 reply; 16+ messages in thread From: Hugo Santos @ 2006-08-02 10:47 UTC (permalink / raw) To: Masahide NAKAMURA; +Cc: davem, yoshfuji, anttit, vnuorval, netdev, usagi-core [-- Attachment #1: Type: text/plain, Size: 2161 bytes --] Hi, Thanks for the reply, however: On Wed, Aug 02, 2006 at 12:24:30PM +0900, Masahide NAKAMURA wrote: > Our patch is similar as you said. Our design is that kernel does nothing > as possible about validation which can be done by user-space. > As you mentioned ICMPv6 error is hard to be sent by user-space because it carries > original packet causing error. MIPv6 RFC says when mobility header length is too short > ICMPv6 error (parameter problem) is sent. We also discussed about design like your choice. > but we have not taken it because ICMPv6 sending mechanism is already in kernel > then it is reasonable to use it. We MIPL developers concluded that kernel should > know mobility header types and their minimum length at least. I guess when we would > support NEMO and FMIPv6, we just add their defines at that time. > (Actually, their implementations based on MIPL2 exists.) > If somebody would feel that such defines should be removed from kernel we have another > idea to make new socket interface like ICMP filter to store mobility header type and its > minimum length to kernel by user-space. Although the ICMP-filter approach would be better, it is not flexible enough to handle this situation. We must also send ICMPv6 Parameter Problems when ip6mh_proto isn't IPPROTO_NONE. I don't think it is too much of a burthen to handle ICMPv6 in the control daemon because you should already do so to react to ICMPv6 error messages from peers concerning MIPv6 signalling. I'm strongly against doing these checks in the kernel for the simple reason that it is not easily extendable. You wouldn't be able to deploy a new daemon version over an existing kernel with these changes if it supported a new control protocol with new messages. I think we should follow a different path here and i propose either have a hdrinc=1 mode (for reception only) for protocol raw sockets, possibly adding with control on reception which specifies the offset of the UPL header; or have a control message to obtain the network headers. For instance: put_cmsg(msg, SOL_IPV6, ..., (skb->h.raw - skb->nh.raw), skb->nh.raw); Hugo [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFC] Mobile IPv6 introduction 2006-08-02 10:47 ` Hugo Santos @ 2006-08-02 13:03 ` Masahide NAKAMURA 2006-08-02 21:14 ` David Miller 0 siblings, 1 reply; 16+ messages in thread From: Masahide NAKAMURA @ 2006-08-02 13:03 UTC (permalink / raw) To: Hugo Santos Cc: Masahide NAKAMURA, davem, yoshfuji, anttit, vnuorval, netdev, usagi-core Hugo Santos wrote: > Although the ICMP-filter approach would be better, it is not flexible > enough to handle this situation. We must also send ICMPv6 Parameter > Problems when ip6mh_proto isn't IPPROTO_NONE. I don't think it is too I don't think IPPROTO_NONE case is a suitable example here (it is also supported by our kernel patch). We don't have any problem about who checks next header field since its offset of mobility header never changes then its value can be checked as the same way for all type number. But anyway, > much of a burthen to handle ICMPv6 in the control daemon because you > should already do so to react to ICMPv6 error messages from peers > concerning MIPv6 signalling. I'm strongly against doing these checks in > the kernel for the simple reason that it is not easily extendable. You > wouldn't be able to deploy a new daemon version over an existing kernel > with these changes if it supported a new control protocol with new > messages. I think we should follow a different path here and i propose > either have a hdrinc=1 mode (for reception only) for protocol raw > sockets, possibly adding with control on reception which specifies the > offset of the UPL header; or have a control message to obtain the > network headers. For instance: > > put_cmsg(msg, SOL_IPV6, ..., (skb->h.raw - skb->nh.raw), > skb->nh.raw); I can agree such suggestion as new kernel feature but I'm not sure MIPv6 stuff should depend on it just for new message type to extend later. On our design MIPv6 signaling itself is almost done by user-space daemon. When developer wants to add new or original type number, it is enough for kernel to be added the number and its length. All other things can be modified at user-space application. If there is much requirement to add new type number without any modification of kernel code at all I would support ICMPv6 filter approach, too. -- Masahide NAKAMURA ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFC] Mobile IPv6 introduction 2006-08-02 13:03 ` Masahide NAKAMURA @ 2006-08-02 21:14 ` David Miller 0 siblings, 0 replies; 16+ messages in thread From: David Miller @ 2006-08-02 21:14 UTC (permalink / raw) To: nakam; +Cc: hsantos, yoshfuji, anttit, vnuorval, netdev, usagi-core From: Masahide NAKAMURA <nakam@linux-ipv6.org> Date: Wed, 02 Aug 2006 22:03:16 +0900 > If there is much requirement to add new type number without any > modification of kernel code at all I would support ICMPv6 filter > approach, too. There is no such requirement, please just continue to prepare your current patches for inclusion. There is a limit to how much nit-picking we can do for such a large body of work, and we should thus take evolutionary approach to this work. We can make all kinds of refinements later to improve the implementation. ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2006-08-02 21:13 UTC | newest] Thread overview: 16+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-07-29 9:23 [RFC] Mobile IPv6 introduction Masahide NAKAMURA 2006-07-29 9:28 ` [PATCH 0/23][XFRM] MIPv6 CN introduction (part A) (Re: [RFC] Mobile IPv6 introduction) Masahide NAKAMURA 2006-07-29 9:37 ` [PATCH 0/20][IPV6/XFRM] MIPv6 CN (part B) Masahide NAKAMURA 2006-08-02 0:30 ` David Miller 2006-08-02 8:26 ` Masahide NAKAMURA 2006-07-29 14:12 ` [RFC] Mobile IPv6 introduction Hugo Santos 2006-08-02 0:35 ` David Miller 2006-08-02 0:58 ` Hugo Santos 2006-08-02 1:04 ` David Miller 2006-08-02 1:52 ` YOSHIFUJI Hideaki / 吉藤英明 2006-08-02 7:58 ` Ville Nuorvala 2006-08-02 11:03 ` Hugo Santos 2006-08-02 3:24 ` Masahide NAKAMURA 2006-08-02 10:47 ` Hugo Santos 2006-08-02 13:03 ` Masahide NAKAMURA 2006-08-02 21:14 ` David Miller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).