]> git.proxmox.com Git - mirror_frr.git/blob - pimd/pim_register.h
Merge pull request #12798 from donaldsharp/rib_match_multicast
[mirror_frr.git] / pimd / pim_register.h
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3 * PIM for Quagga
4 * Copyright (C) 2015 Cumulus Networks, Inc.
5 * Donald Sharp
6 */
7 #ifndef PIM_REGISTER_H
8 #define PIM_REGISTER_H
9
10 #include <zebra.h>
11
12 #include "if.h"
13
14 #define PIM_REGISTER_BORDER_BIT 0x80000000
15 #define PIM_REGISTER_NR_BIT 0x40000000
16
17 #define PIM_MSG_REGISTER_LEN (8)
18 #define PIM_MSG_REGISTER_STOP_LEN (4)
19
20 int pim_register_stop_recv(struct interface *ifp, uint8_t *buf, int buf_size);
21
22 int pim_register_recv(struct interface *ifp, pim_addr dest_addr,
23 pim_addr src_addr, uint8_t *tlv_buf, int tlv_buf_size);
24 #if PIM_IPV == 6
25 struct in6_addr pim_register_get_unicast_v6_addr(struct pim_interface *p_ifp);
26 #endif
27 void pim_register_send(const uint8_t *buf, int buf_size, pim_addr src,
28 struct pim_rpf *rpg, int null_register,
29 struct pim_upstream *up);
30 void pim_register_stop_send(struct interface *ifp, pim_sgaddr *sg, pim_addr src,
31 pim_addr originator);
32 void pim_register_join(struct pim_upstream *up);
33 void pim_null_register_send(struct pim_upstream *up);
34 void pim_reg_del_on_couldreg_fail(struct interface *ifp);
35
36 #endif