• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)16 static 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