Commit | Line | Data |
---|---|---|
2e804627 YH |
1 | #ifndef __LINUX_PIM_H |
2 | #define __LINUX_PIM_H | |
3 | ||
4 | #include <asm/byteorder.h> | |
5 | ||
80a9492a YH |
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 | ||
2e804627 YH |
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 |