blob: e1d756f813487eed56cd86f974e8e5a08e2cb0a3 [file] [log] [blame]
YOSHIFUJI Hideaki2e804622008-04-03 09:22:09 +09001#ifndef __LINUX_PIM_H
2#define __LINUX_PIM_H
3
4#include <asm/byteorder.h>
5
YOSHIFUJI Hideaki2e804622008-04-03 09:22:09 +09006/* Message types - V1 */
Harvey Harrisonf3a7c662009-02-14 22:58:35 -08007#define PIM_V1_VERSION cpu_to_be32(0x10000000)
YOSHIFUJI Hideaki2e804622008-04-03 09:22:09 +09008#define PIM_V1_REGISTER 1
9
10/* Message types - V2 */
11#define PIM_VERSION 2
12#define PIM_REGISTER 1
13
Harvey Harrisonf3a7c662009-02-14 22:58:35 -080014#define PIM_NULL_REGISTER cpu_to_be32(0x40000000)
YOSHIFUJI Hideaki2e804622008-04-03 09:22:09 +090015
Nikolay Aleksandrov1973a4e2015-11-26 15:23:48 +010016static inline bool ipmr_pimsm_enabled(void)
17{
18 return IS_BUILTIN(CONFIG_IP_PIMSM_V1) || IS_BUILTIN(CONFIG_IP_PIMSM_V2);
19}
20
YOSHIFUJI Hideaki2e804622008-04-03 09:22:09 +090021/* PIMv2 register message header layout (ietf-draft-idmr-pimvsm-v2-00.ps */
22struct pimreghdr
23{
24 __u8 type;
25 __u8 reserved;
26 __be16 csum;
27 __be32 flags;
28};
29
30struct sk_buff;
31extern int pim_rcv_v1(struct sk_buff *);
32#endif