diff options
Diffstat (limited to 'include/linux/pim.h')
-rw-r--r-- | include/linux/pim.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/include/linux/pim.h b/include/linux/pim.h new file mode 100644 index 000000000000..236ffd317394 --- /dev/null +++ b/include/linux/pim.h | |||
@@ -0,0 +1,45 @@ | |||
1 | #ifndef __LINUX_PIM_H | ||
2 | #define __LINUX_PIM_H | ||
3 | |||
4 | #include <asm/byteorder.h> | ||
5 | |||
6 | #ifndef __KERNEL__ | ||
7 | struct pim { | ||
8 | #if defined(__LITTLE_ENDIAN_BITFIELD) | ||
9 | __u8 pim_type:4, /* PIM message type */ | ||
10 | pim_ver:4; /* PIM version */ | ||
11 | #elif defined(__BIG_ENDIAN_BITFIELD) | ||
12 | __u8 pim_ver:4; /* PIM version */ | ||
13 | pim_type:4; /* PIM message type */ | ||
14 | #endif | ||
15 | __u8 pim_rsv; /* Reserved */ | ||
16 | __be16 pim_cksum; /* Checksum */ | ||
17 | }; | ||
18 | |||
19 | #define PIM_MINLEN 8 | ||
20 | #endif | ||
21 | |||
22 | /* Message types - V1 */ | ||
23 | #define PIM_V1_VERSION __constant_htonl(0x10000000) | ||
24 | #define PIM_V1_REGISTER 1 | ||
25 | |||
26 | /* Message types - V2 */ | ||
27 | #define PIM_VERSION 2 | ||
28 | #define PIM_REGISTER 1 | ||
29 | |||
30 | #if defined(__KERNEL__) | ||
31 | #define PIM_NULL_REGISTER __constant_htonl(0x40000000) | ||
32 | |||
33 | /* PIMv2 register message header layout (ietf-draft-idmr-pimvsm-v2-00.ps */ | ||
34 | struct pimreghdr | ||
35 | { | ||
36 | __u8 type; | ||
37 | __u8 reserved; | ||
38 | __be16 csum; | ||
39 | __be32 flags; | ||
40 | }; | ||
41 | |||
42 | struct sk_buff; | ||
43 | extern int pim_rcv_v1(struct sk_buff *); | ||
44 | #endif | ||
45 | #endif | ||