12c8d7ca0SNoriaki TAKAMIYA /* 22c8d7ca0SNoriaki TAKAMIYA * Copyright (C)2003-2006 Helsinki University of Technology 32c8d7ca0SNoriaki TAKAMIYA * Copyright (C)2003-2006 USAGI/WIDE Project 42c8d7ca0SNoriaki TAKAMIYA * 52c8d7ca0SNoriaki TAKAMIYA * This program is free software; you can redistribute it and/or modify 62c8d7ca0SNoriaki TAKAMIYA * it under the terms of the GNU General Public License as published by 72c8d7ca0SNoriaki TAKAMIYA * the Free Software Foundation; either version 2 of the License, or 82c8d7ca0SNoriaki TAKAMIYA * (at your option) any later version. 92c8d7ca0SNoriaki TAKAMIYA * 102c8d7ca0SNoriaki TAKAMIYA * This program is distributed in the hope that it will be useful, 112c8d7ca0SNoriaki TAKAMIYA * but WITHOUT ANY WARRANTY; without even the implied warranty of 122c8d7ca0SNoriaki TAKAMIYA * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 132c8d7ca0SNoriaki TAKAMIYA * GNU General Public License for more details. 142c8d7ca0SNoriaki TAKAMIYA * 152c8d7ca0SNoriaki TAKAMIYA * You should have received a copy of the GNU General Public License 162c8d7ca0SNoriaki TAKAMIYA * along with this program; if not, write to the Free Software 172c8d7ca0SNoriaki TAKAMIYA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 182c8d7ca0SNoriaki TAKAMIYA */ 192c8d7ca0SNoriaki TAKAMIYA /* 202c8d7ca0SNoriaki TAKAMIYA * Authors: 212c8d7ca0SNoriaki TAKAMIYA * Noriaki TAKAMIYA @USAGI 222c8d7ca0SNoriaki TAKAMIYA * Masahide NAKAMURA @USAGI 232c8d7ca0SNoriaki TAKAMIYA * YOSHIFUJI Hideaki @USAGI 242c8d7ca0SNoriaki TAKAMIYA */ 252c8d7ca0SNoriaki TAKAMIYA #ifndef _NET_MIP6_H 262c8d7ca0SNoriaki TAKAMIYA #define _NET_MIP6_H 272c8d7ca0SNoriaki TAKAMIYA 287be96f76SMasahide NAKAMURA #include <linux/skbuff.h> 297be96f76SMasahide NAKAMURA #include <net/sock.h> 307be96f76SMasahide NAKAMURA 313d126890SNoriaki TAKAMIYA #define MIP6_OPT_PAD_1 0 323d126890SNoriaki TAKAMIYA #define MIP6_OPT_PAD_N 1 333d126890SNoriaki TAKAMIYA 342b741653SMasahide NAKAMURA /* 352b741653SMasahide NAKAMURA * Mobility Header 362b741653SMasahide NAKAMURA */ 372b741653SMasahide NAKAMURA struct ip6_mh { 382b741653SMasahide NAKAMURA __u8 ip6mh_proto; 392b741653SMasahide NAKAMURA __u8 ip6mh_hdrlen; 402b741653SMasahide NAKAMURA __u8 ip6mh_type; 412b741653SMasahide NAKAMURA __u8 ip6mh_reserved; 422b741653SMasahide NAKAMURA __u16 ip6mh_cksum; 432b741653SMasahide NAKAMURA /* Followed by type specific messages */ 442b741653SMasahide NAKAMURA __u8 data[0]; 452b741653SMasahide NAKAMURA } __attribute__ ((__packed__)); 462b741653SMasahide NAKAMURA 472b741653SMasahide NAKAMURA #define IP6_MH_TYPE_BRR 0 /* Binding Refresh Request */ 482b741653SMasahide NAKAMURA #define IP6_MH_TYPE_HOTI 1 /* HOTI Message */ 492b741653SMasahide NAKAMURA #define IP6_MH_TYPE_COTI 2 /* COTI Message */ 502b741653SMasahide NAKAMURA #define IP6_MH_TYPE_HOT 3 /* HOT Message */ 512b741653SMasahide NAKAMURA #define IP6_MH_TYPE_COT 4 /* COT Message */ 522b741653SMasahide NAKAMURA #define IP6_MH_TYPE_BU 5 /* Binding Update */ 532b741653SMasahide NAKAMURA #define IP6_MH_TYPE_BACK 6 /* Binding ACK */ 542b741653SMasahide NAKAMURA #define IP6_MH_TYPE_BERROR 7 /* Binding Error */ 552b741653SMasahide NAKAMURA #define IP6_MH_TYPE_MAX IP6_MH_TYPE_BERROR 562b741653SMasahide NAKAMURA 572c8d7ca0SNoriaki TAKAMIYA extern int mip6_init(void); 582c8d7ca0SNoriaki TAKAMIYA extern void mip6_fini(void); 597be96f76SMasahide NAKAMURA extern int mip6_mh_filter(struct sock *sk, struct sk_buff *skb); 602c8d7ca0SNoriaki TAKAMIYA 612c8d7ca0SNoriaki TAKAMIYA #endif 62