summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sharpd/sharp_main.c1
-rw-r--r--sharpd/sharp_nht.c5
-rw-r--r--sharpd/sharp_nht.h1
3 files changed, 7 insertions, 0 deletions
diff --git a/sharpd/sharp_main.c b/sharpd/sharp_main.c
index 0cbed5579d..1eba9037ae 100644
--- a/sharpd/sharp_main.c
+++ b/sharpd/sharp_main.c
@@ -60,6 +60,7 @@ static void sharp_global_init(void)
{
memset(&sg, 0, sizeof(sg));
sg.nhs = list_new();
+ sg.nhs->del = (void (*)(void *))sharp_nh_tracker_free;
sg.ted = NULL;
sg.srv6_locators = list_new();
}
diff --git a/sharpd/sharp_nht.c b/sharpd/sharp_nht.c
index fa7880572d..8c02f1f213 100644
--- a/sharpd/sharp_nht.c
+++ b/sharpd/sharp_nht.c
@@ -40,6 +40,11 @@ struct sharp_nh_tracker *sharp_nh_tracker_get(struct prefix *p)
return nht;
}
+void sharp_nh_tracker_free(struct sharp_nh_tracker *nht)
+{
+ XFREE(MTYPE_NH_TRACKER, nht);
+}
+
void sharp_nh_tracker_dump(struct vty *vty)
{
struct listnode *node;
diff --git a/sharpd/sharp_nht.h b/sharpd/sharp_nht.h
index 5523f28079..b27952ac51 100644
--- a/sharpd/sharp_nht.h
+++ b/sharpd/sharp_nht.h
@@ -18,6 +18,7 @@ struct sharp_nh_tracker {
};
extern struct sharp_nh_tracker *sharp_nh_tracker_get(struct prefix *p);
+extern void sharp_nh_tracker_free(struct sharp_nh_tracker *nht);
extern void sharp_nh_tracker_dump(struct vty *vty);