1 #ifndef __LINUX_PIM_H 2 #define __LINUX_PIM_H 3 4 #include <asm/byteorder.h> 5 6 /* Message types - V1 */ 7 #define PIM_V1_VERSION cpu_to_be32(0x10000000) 8 #define PIM_V1_REGISTER 1 9 10 /* Message types - V2 */ 11 #define PIM_VERSION 2 12 #define PIM_REGISTER 1 13 14 #define PIM_NULL_REGISTER cpu_to_be32(0x40000000) 15 ipmr_pimsm_enabled(void)16static inline bool ipmr_pimsm_enabled(void) 17 { 18 return IS_BUILTIN(CONFIG_IP_PIMSM_V1) || IS_BUILTIN(CONFIG_IP_PIMSM_V2); 19 } 20 21 /* PIMv2 register message header layout (ietf-draft-idmr-pimvsm-v2-00.ps */ 22 struct pimreghdr 23 { 24 __u8 type; 25 __u8 reserved; 26 __be16 csum; 27 __be32 flags; 28 }; 29 30 struct sk_buff; 31 extern int pim_rcv_v1(struct sk_buff *); 32 #endif 33