lin
2025-04-23 399353eb5dc7e9c1db94cc97c380dc7f66c51a4c
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