forked from Mirror/frr
sharpd: Add ability to turn off watching of redistribution
Wanted to do some testing of redistribute without having to restart sharpd over and over. Added ability to turn off the `sharp watch redistribute XX` functionality. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
This commit is contained in:
parent
d48b99ad4f
commit
3d97d2679f
|
@ -54,7 +54,8 @@ DEFPY(watch_neighbor, watch_neighbor_cmd,
|
||||||
|
|
||||||
|
|
||||||
DEFPY(watch_redistribute, watch_redistribute_cmd,
|
DEFPY(watch_redistribute, watch_redistribute_cmd,
|
||||||
"sharp watch [vrf NAME$vrf_name] redistribute " FRR_REDIST_STR_SHARPD,
|
"[no] sharp watch [vrf NAME$vrf_name] redistribute " FRR_REDIST_STR_SHARPD,
|
||||||
|
NO_STR
|
||||||
"Sharp routing Protocol\n"
|
"Sharp routing Protocol\n"
|
||||||
"Watch for changes\n"
|
"Watch for changes\n"
|
||||||
"The vrf we would like to watch if non-default\n"
|
"The vrf we would like to watch if non-default\n"
|
||||||
|
@ -75,7 +76,7 @@ DEFPY(watch_redistribute, watch_redistribute_cmd,
|
||||||
}
|
}
|
||||||
|
|
||||||
source = proto_redistnum(AFI_IP, argv[argc-1]->text);
|
source = proto_redistnum(AFI_IP, argv[argc-1]->text);
|
||||||
sharp_redistribute_vrf(vrf, source);
|
sharp_redistribute_vrf(vrf, source, !no);
|
||||||
|
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -704,10 +704,11 @@ static int sharp_redistribute_route(ZAPI_CALLBACK_ARGS)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sharp_redistribute_vrf(struct vrf *vrf, int type)
|
void sharp_redistribute_vrf(struct vrf *vrf, int type, bool turn_on)
|
||||||
{
|
{
|
||||||
zebra_redistribute_send(ZEBRA_REDISTRIBUTE_ADD, zclient, AFI_IP, type,
|
zebra_redistribute_send(turn_on ? ZEBRA_REDISTRIBUTE_ADD
|
||||||
0, vrf->vrf_id);
|
: ZEBRA_REDISTRIBUTE_DELETE,
|
||||||
|
zclient, AFI_IP, type, 0, vrf->vrf_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
static zclient_handler *const sharp_opaque_handlers[] = {
|
static zclient_handler *const sharp_opaque_handlers[] = {
|
||||||
|
|
|
@ -55,7 +55,7 @@ extern void sharp_zebra_send_arp(const struct interface *ifp,
|
||||||
/* Register Link State Opaque messages */
|
/* Register Link State Opaque messages */
|
||||||
extern void sharp_zebra_register_te(void);
|
extern void sharp_zebra_register_te(void);
|
||||||
|
|
||||||
extern void sharp_redistribute_vrf(struct vrf *vrf, int source);
|
extern void sharp_redistribute_vrf(struct vrf *vrf, int source, bool turn_on);
|
||||||
|
|
||||||
extern int sharp_zebra_srv6_manager_get_locator_chunk(const char *lname);
|
extern int sharp_zebra_srv6_manager_get_locator_chunk(const char *lname);
|
||||||
extern int sharp_zebra_srv6_manager_release_locator_chunk(const char *lname);
|
extern int sharp_zebra_srv6_manager_release_locator_chunk(const char *lname);
|
||||||
|
|
Loading…
Reference in a new issue