diff options
author | Donald Sharp <sharpd@nvidia.com> | 2021-07-21 19:55:52 +0200 |
---|---|---|
committer | Donald Sharp <sharpd@nvidia.com> | 2021-07-21 20:04:36 +0200 |
commit | 06302ecb8808e1f59bdbd0daf41f48d6c2378adf (patch) | |
tree | 15a16f9c8a372ad8990b634057f7cce0d9482da4 /zebra/zserv.c | |
parent | Merge pull request #9094 from mjstapp/fix_pathd_pcep_localtime (diff) | |
download | frr-06302ecb8808e1f59bdbd0daf41f48d6c2378adf.tar.xz frr-06302ecb8808e1f59bdbd0daf41f48d6c2378adf.zip |
zebra: On client shutdown cleanup any vrf labels associated with it
When a vrf label is created by a client and the client disconnects
we should clean up any vrf labels associated with that client.
eva# show mpls table
Inbound Label Type Nexthop Outbound Label
-----------------------------------------------
1000 SHARP RED -
eva# exit
sharpd@eva ~/f/zebra (label_destruction)> ps -ef | grep frr
root 4017793 1 0 13:57 ? 00:00:00 /usr/lib/frr/watchfrr -d -F datacenter --log file:/var/log/frr/watchfrr.log --log-level debug zebra bgpd ospfd isisd pimd eigrpd sharpd staticd
frr 4017824 1 0 13:57 ? 00:00:00 /usr/lib/frr/zebra -d -F datacenter --log file:/tmp/zebra.log -r --graceful_restart 60 -A 127.0.0.1 -s 90000000
frr 4017829 1 0 13:57 ? 00:00:00 /usr/lib/frr/bgpd -d -F datacenter -M rpki -A 127.0.0.1
frr 4017836 1 0 13:57 ? 00:00:00 /usr/lib/frr/ospfd -d -F datacenter -A 127.0.0.1
frr 4017839 1 0 13:57 ? 00:00:00 /usr/lib/frr/isisd -d -F datacenter -A 127.0.0.1
frr 4017842 1 0 13:57 ? 00:00:00 /usr/lib/frr/pimd -d -F datacenter -A 127.0.0.1
frr 4017865 1 0 13:57 ? 00:00:00 /usr/lib/frr/eigrpd -d -F datacenter -A 127.0.0.1
frr 4017869 1 0 13:57 ? 00:00:00 /usr/lib/frr/sharpd -d -F datacenter -A 127.0.0.1
frr 4017888 1 0 13:57 ? 00:00:00 /usr/lib/frr/staticd -d -F datacenter -A 127.0.0.1
sharpd 4018624 3938423 0 14:02 pts/10 00:00:00 grep --color=auto frr
sharpd@eva ~/f/zebra (label_destruction)> sudo kill -9 4017869
sharpd@eva ~/f/zebra (label_destruction)> sudo vtysh -c "show mpls table"
sharpd@eva ~/f/zebra (label_destruction)>
Fixes: #1787
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Diffstat (limited to 'zebra/zserv.c')
-rw-r--r-- | zebra/zserv.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/zebra/zserv.c b/zebra/zserv.c index 1d94fcae6..e4a48093f 100644 --- a/zebra/zserv.c +++ b/zebra/zserv.c @@ -595,6 +595,8 @@ static void zserv_client_free(struct zserv *client) close(client->sock); if (DYNAMIC_CLIENT_GR_DISABLED(client)) { + zebra_mpls_client_cleanup_vrf_label(client->proto); + nroutes = rib_score_proto(client->proto, client->instance); zlog_notice( |