[XFRM] STATE: Add Mobile IPv6 route optimization protocols to netlink interface.
authorMasahide NAKAMURA <nakam@linux-ipv6.org>
Thu, 24 Aug 2006 03:33:28 +0000 (20:33 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Fri, 22 Sep 2006 22:06:59 +0000 (15:06 -0700)
Add Mobile IPv6 route optimization protocols to netlink interface.
Route optimization states carry care-of address.
Based on MIPL2 kernel patch.

Signed-off-by: Masahide NAKAMURA <nakam@linux-ipv6.org>
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/xfrm/xfrm_user.c

index 3a83c59..770bd24 100644 (file)
@@ -28,6 +28,9 @@
 #include <net/xfrm.h>
 #include <net/netlink.h>
 #include <asm/uaccess.h>
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
+#include <linux/in6.h>
+#endif
 
 static int verify_one_alg(struct rtattr **xfrma, enum xfrm_attr_type_t type)
 {
@@ -173,6 +176,19 @@ static int verify_newsa_info(struct xfrm_usersa_info *p,
                        goto out;
                break;
 
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
+       case IPPROTO_DSTOPTS:
+       case IPPROTO_ROUTING:
+               if (xfrma[XFRMA_ALG_COMP-1]     ||
+                   xfrma[XFRMA_ALG_AUTH-1]     ||
+                   xfrma[XFRMA_ALG_CRYPT-1]    ||
+                   xfrma[XFRMA_ENCAP-1]        ||
+                   xfrma[XFRMA_SEC_CTX-1]      ||
+                   !xfrma[XFRMA_COADDR-1])
+                       goto out;
+               break;
+#endif
+
        default:
                goto out;
        };