2023-02-08 13:17:09 +01:00
|
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
2015-06-12 01:29:02 +02:00
|
|
|
/*
|
2017-05-13 10:25:29 +02:00
|
|
|
* PIM for Quagga: add the ability to configure multicast static routes
|
|
|
|
* Copyright (C) 2014 Nathan Bahr, ATCorp
|
|
|
|
*/
|
2015-06-12 01:29:02 +02:00
|
|
|
|
|
|
|
#ifndef PIM_STATIC_H_
|
|
|
|
#define PIM_STATIC_H_
|
|
|
|
|
|
|
|
#include <zebra.h>
|
|
|
|
#include "pim_mroute.h"
|
2022-05-06 12:36:51 +02:00
|
|
|
#include "pim_oil.h"
|
2015-06-12 01:29:02 +02:00
|
|
|
#include "if.h"
|
|
|
|
|
|
|
|
struct static_route {
|
|
|
|
/* Each static route is unique by these pair of addresses */
|
2022-01-18 15:07:38 +01:00
|
|
|
pim_addr group;
|
|
|
|
pim_addr source;
|
2015-06-12 01:29:02 +02:00
|
|
|
|
2016-07-12 21:09:25 +02:00
|
|
|
struct channel_oil c_oil;
|
2016-01-18 11:12:10 +01:00
|
|
|
ifindex_t iif;
|
2015-06-12 01:29:02 +02:00
|
|
|
unsigned char oif_ttls[MAXVIFS];
|
|
|
|
};
|
|
|
|
|
|
|
|
void pim_static_route_free(struct static_route *s_route);
|
|
|
|
|
2017-05-19 01:56:10 +02:00
|
|
|
int pim_static_add(struct pim_instance *pim, struct interface *iif,
|
2022-01-18 15:07:38 +01:00
|
|
|
struct interface *oif, pim_addr group, pim_addr source);
|
2017-05-19 01:56:10 +02:00
|
|
|
int pim_static_del(struct pim_instance *pim, struct interface *iif,
|
2022-01-18 15:07:38 +01:00
|
|
|
struct interface *oif, pim_addr group, pim_addr source);
|
2017-06-29 16:45:38 +02:00
|
|
|
int pim_static_write_mroute(struct pim_instance *pim, struct vty *vty,
|
2017-05-19 01:56:10 +02:00
|
|
|
struct interface *ifp);
|
2015-06-12 01:29:02 +02:00
|
|
|
|
|
|
|
#endif /* PIM_STATIC_H_ */
|