1 //==========================================================================
3 // include/netinet6/pim6.h
5 //==========================================================================
6 //####BSDCOPYRIGHTBEGIN####
8 // -------------------------------------------
10 // Portions of this software may have been derived from OpenBSD,
11 // FreeBSD or other sources, and are covered by the appropriate
12 // copyright disclaimers included herein.
14 // Portions created by Red Hat are
15 // Copyright (C) 2002 Red Hat, Inc. All Rights Reserved.
17 // -------------------------------------------
19 //####BSDCOPYRIGHTEND####
20 //==========================================================================
22 /* $KAME: pim6.h,v 1.3 2000/03/25 07:23:58 sumikawa Exp $ */
25 * Copyright (C) 1998 WIDE Project.
26 * All rights reserved.
28 * Redistribution and use in source and binary forms, with or without
29 * modification, are permitted provided that the following conditions
31 * 1. Redistributions of source code must retain the above copyright
32 * notice, this list of conditions and the following disclaimer.
33 * 2. Redistributions in binary form must reproduce the above copyright
34 * notice, this list of conditions and the following disclaimer in the
35 * documentation and/or other materials provided with the distribution.
36 * 3. Neither the name of the project nor the names of its contributors
37 * may be used to endorse or promote products derived from this software
38 * without specific prior written permission.
40 * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
41 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
43 * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
44 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
45 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
46 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
48 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
49 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
53 * Protocol Independent Multicast (PIM) definitions
55 * Written by Ahmed Helmy, SGI, July 1996
65 #if defined(BYTE_ORDER) && (BYTE_ORDER == LITTLE_ENDIAN)
66 u_char pim_type:4, /* the PIM message type, currently they are:
67 * Hello, Register, Register-Stop, Join/Prune,
68 * Bootstrap, Assert, Graft (PIM-DM only),
69 * Graft-Ack (PIM-DM only), C-RP-Adv
71 pim_ver:4; /* PIM version number; 2 for PIMv2 */
73 u_char pim_ver:4, /* PIM version */
74 pim_type:4; /* PIM type */
76 u_char pim_rsv; /* Reserved */
77 u_short pim_cksum; /* IP style check sum */
80 #define PIM_MINLEN 8 /* The header min. length is 8 */
81 #define PIM6_REG_MINLEN (PIM_MINLEN+40) /* Register message + inner IP6 header */
86 #define PIM_REGISTER 1 /* PIM Register type is 1 */
88 /* second bit in reg_head is the null bit */
89 #define PIM_NULL_REGISTER 0x40000000