summaryrefslogtreecommitdiffstats
path: root/nest
diff options
context:
space:
mode:
Diffstat (limited to 'nest')
-rw-r--r--nest/route.h1
-rw-r--r--nest/rt-attr.c9
2 files changed, 10 insertions, 0 deletions
diff --git a/nest/route.h b/nest/route.h
index d15ffae..523d390 100644
--- a/nest/route.h
+++ b/nest/route.h
@@ -324,6 +324,7 @@ typedef struct ea_list {
#define EALF_CACHED 4 /* Attributes belonging to cached rta */
eattr *ea_find(ea_list *, unsigned ea);
+int ea_get_int(ea_list *, unsigned ea, int def);
void ea_dump(ea_list *);
void ea_sort(ea_list *); /* Sort entries in all sub-lists */
unsigned ea_scan(ea_list *); /* How many bytes do we need for merged ea_list */
diff --git a/nest/rt-attr.c b/nest/rt-attr.c
index d2e5ae9..53e85a6 100644
--- a/nest/rt-attr.c
+++ b/nest/rt-attr.c
@@ -70,6 +70,15 @@ ea_find(ea_list *e, unsigned id)
return a;
}
+int
+ea_get_int(ea_list *e, unsigned id, int def)
+{
+ eattr *a = ea_find(e, id);
+ if (!a)
+ return def;
+ return a->u.data;
+}
+
static inline void
ea_do_sort(ea_list *e)
{