File: pim.h

package info (click to toggle)
linux-2.6 2.6.26-29
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 354,000 kB
  • ctags: 1,042,991
  • sloc: ansic: 5,706,178; asm: 218,136; makefile: 15,275; perl: 8,298; cpp: 3,242; yacc: 2,919; sh: 2,757; python: 2,550; lex: 1,825; lisp: 218; pascal: 116; awk: 96
file content (45 lines) | stat: -rw-r--r-- 921 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#ifndef __LINUX_PIM_H
#define __LINUX_PIM_H

#include <asm/byteorder.h>

#ifndef __KERNEL__
struct pim {
#if defined(__LITTLE_ENDIAN_BITFIELD)
	__u8	pim_type:4,		/* PIM message type */
		pim_ver:4;		/* PIM version */
#elif defined(__BIG_ENDIAN_BITFIELD)
	__u8	pim_ver:4;		/* PIM version */
		pim_type:4;		/* PIM message type */
#endif
	__u8	pim_rsv;		/* Reserved */
	__be16	pim_cksum;		/* Checksum */
};

#define PIM_MINLEN		8
#endif

/* Message types - V1 */
#define PIM_V1_VERSION		__constant_htonl(0x10000000)
#define PIM_V1_REGISTER		1

/* Message types - V2 */
#define PIM_VERSION		2
#define PIM_REGISTER		1

#if defined(__KERNEL__)
#define PIM_NULL_REGISTER	__constant_htonl(0x40000000)

/* PIMv2 register message header layout (ietf-draft-idmr-pimvsm-v2-00.ps */
struct pimreghdr
{
	__u8	type;
	__u8	reserved;
	__be16	csum;
	__be32	flags;
};

struct sk_buff;
extern int pim_rcv_v1(struct sk_buff *);
#endif
#endif