mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 10:22:07 +00:00
zebra: Add the zvrf pointer to the 'struct static_route'
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
2f03bc8f72
commit
cbb0dbf6bd
@ -155,7 +155,7 @@ void static_install_route(afi_t afi, safi_t safi, struct prefix *p,
|
|||||||
re->metric = 0;
|
re->metric = 0;
|
||||||
re->mtu = 0;
|
re->mtu = 0;
|
||||||
re->vrf_id = si->vrf_id;
|
re->vrf_id = si->vrf_id;
|
||||||
re->nh_vrf_id = si->vrf_id;
|
re->nh_vrf_id = si->nh_vrf_id;
|
||||||
re->table =
|
re->table =
|
||||||
si->vrf_id
|
si->vrf_id
|
||||||
? (zebra_vrf_lookup_by_id(si->vrf_id))->table_id
|
? (zebra_vrf_lookup_by_id(si->vrf_id))->table_id
|
||||||
@ -379,6 +379,7 @@ int static_add_route(afi_t afi, safi_t safi, u_char type, struct prefix *p,
|
|||||||
struct prefix_ipv6 *src_p, union g_addr *gate,
|
struct prefix_ipv6 *src_p, union g_addr *gate,
|
||||||
const char *ifname, enum static_blackhole_type bh_type,
|
const char *ifname, enum static_blackhole_type bh_type,
|
||||||
route_tag_t tag, u_char distance, struct zebra_vrf *zvrf,
|
route_tag_t tag, u_char distance, struct zebra_vrf *zvrf,
|
||||||
|
struct zebra_vrf *nh_zvrf,
|
||||||
struct static_nh_label *snh_label)
|
struct static_nh_label *snh_label)
|
||||||
{
|
{
|
||||||
struct route_node *rn;
|
struct route_node *rn;
|
||||||
@ -440,6 +441,8 @@ int static_add_route(afi_t afi, safi_t safi, u_char type, struct prefix *p,
|
|||||||
si->bh_type = bh_type;
|
si->bh_type = bh_type;
|
||||||
si->tag = tag;
|
si->tag = tag;
|
||||||
si->vrf_id = zvrf_id(zvrf);
|
si->vrf_id = zvrf_id(zvrf);
|
||||||
|
si->nh_vrf_id = zvrf_id(nh_zvrf);
|
||||||
|
|
||||||
if (ifname)
|
if (ifname)
|
||||||
strlcpy(si->ifname, ifname, sizeof(si->ifname));
|
strlcpy(si->ifname, ifname, sizeof(si->ifname));
|
||||||
si->ifindex = IFINDEX_INTERNAL;
|
si->ifindex = IFINDEX_INTERNAL;
|
||||||
@ -494,7 +497,7 @@ int static_add_route(afi_t afi, safi_t safi, u_char type, struct prefix *p,
|
|||||||
else {
|
else {
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
|
|
||||||
ifp = if_lookup_by_name(ifname, zvrf_id(zvrf));
|
ifp = if_lookup_by_name(ifname, zvrf_id(nh_zvrf));
|
||||||
if (ifp && ifp->ifindex != IFINDEX_INTERNAL) {
|
if (ifp && ifp->ifindex != IFINDEX_INTERNAL) {
|
||||||
si->ifindex = ifp->ifindex;
|
si->ifindex = ifp->ifindex;
|
||||||
static_install_route(afi, safi, p, src_p, si);
|
static_install_route(afi, safi, p, src_p, si);
|
||||||
|
@ -54,6 +54,7 @@ struct static_route {
|
|||||||
|
|
||||||
/* VRF identifier. */
|
/* VRF identifier. */
|
||||||
vrf_id_t vrf_id;
|
vrf_id_t vrf_id;
|
||||||
|
vrf_id_t nh_vrf_id;
|
||||||
|
|
||||||
/* Administrative distance. */
|
/* Administrative distance. */
|
||||||
u_char distance;
|
u_char distance;
|
||||||
@ -89,6 +90,7 @@ extern int static_add_route(afi_t, safi_t safi, u_char type, struct prefix *p,
|
|||||||
const char *ifname,
|
const char *ifname,
|
||||||
enum static_blackhole_type bh_type, route_tag_t tag,
|
enum static_blackhole_type bh_type, route_tag_t tag,
|
||||||
u_char distance, struct zebra_vrf *zvrf,
|
u_char distance, struct zebra_vrf *zvrf,
|
||||||
|
struct zebra_vrf *nh_zvrf,
|
||||||
struct static_nh_label *snh_label);
|
struct static_nh_label *snh_label);
|
||||||
|
|
||||||
extern int static_delete_route(afi_t, safi_t safi, u_char type,
|
extern int static_delete_route(afi_t, safi_t safi, u_char type,
|
||||||
|
@ -233,7 +233,8 @@ static int zebra_static_route_leak(struct vty *vty,
|
|||||||
|
|
||||||
if (!negate)
|
if (!negate)
|
||||||
static_add_route(afi, safi, type, &p, src_p, gatep, ifname,
|
static_add_route(afi, safi, type, &p, src_p, gatep, ifname,
|
||||||
bh_type, tag, distance, zvrf, &snh_label);
|
bh_type, tag, distance, zvrf, nh_zvrf,
|
||||||
|
&snh_label);
|
||||||
else
|
else
|
||||||
static_delete_route(afi, safi, type, &p, src_p, gatep, ifname,
|
static_delete_route(afi, safi, type, &p, src_p, gatep, ifname,
|
||||||
tag, distance, zvrf, &snh_label);
|
tag, distance, zvrf, &snh_label);
|
||||||
|
Loading…
Reference in New Issue
Block a user