xref: /openbmc/linux/include/net/mip6.h (revision 7be96f76)
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