summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2025-03-23 21:17:53 -0400
committerDonald Sharp <sharpd@nvidia.com>2025-03-24 11:00:45 -0400
commit5f9e26069ee1244fbcd200118a55a51d88795b3d (patch)
tree478416de0459e14513c6aece7ac6d369da08d1f6 /lib
parentd736350986e4318e47bb97e731fd13a4a627acec (diff)
lib: expose comparision function to allow a typesafe conversion
The interface hash comparison function is needed in eigrpd. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/if.c4
-rw-r--r--lib/if.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/lib/if.c b/lib/if.c
index 68724a65e9..43e3363b34 100644
--- a/lib/if.c
+++ b/lib/if.c
@@ -44,7 +44,6 @@ static void if_set_name(struct interface *ifp, const char *name);
static struct interface *if_lookup_by_ifindex(ifindex_t ifindex,
vrf_id_t vrf_id);
static struct interface *if_lookup_by_index_all_vrf(ifindex_t ifindex);
-static int if_cmp_func(const struct interface *, const struct interface *);
static int if_cmp_index_func(const struct interface *ifp1,
const struct interface *ifp2);
RB_GENERATE(if_name_head, interface, name_entry, if_cmp_func);
@@ -136,8 +135,7 @@ int if_cmp_name_func(const char *p1, const char *p2)
return 0;
}
-static int if_cmp_func(const struct interface *ifp1,
- const struct interface *ifp2)
+int if_cmp_func(const struct interface *ifp1, const struct interface *ifp2)
{
return if_cmp_name_func(ifp1->name, ifp2->name);
}
diff --git a/lib/if.h b/lib/if.h
index 897f2be239..fce6705c23 100644
--- a/lib/if.h
+++ b/lib/if.h
@@ -309,6 +309,8 @@ struct interface {
QOBJ_FIELDS;
};
+extern int if_cmp_func(const struct interface *a, const struct interface *b);
+
RB_HEAD(if_name_head, interface);
RB_PROTOTYPE(if_name_head, interface, name_entry, if_cmp_func)
RB_HEAD(if_index_head, interface);