at v2.6.26 921 B view raw
1#ifndef __LINUX_PIM_H 2#define __LINUX_PIM_H 3 4#include <asm/byteorder.h> 5 6#ifndef __KERNEL__ 7struct 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 */ 34struct pimreghdr 35{ 36 __u8 type; 37 __u8 reserved; 38 __be16 csum; 39 __be32 flags; 40}; 41 42struct sk_buff; 43extern int pim_rcv_v1(struct sk_buff *); 44#endif 45#endif