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