summaryrefslogtreecommitdiff
path: root/proto/bgp/bgp.h
diff options
context:
space:
mode:
authorMaria Matejka <mq@ucw.cz>2022-05-30 15:43:13 +0200
committerMaria Matejka <mq@ucw.cz>2022-05-30 15:43:13 +0200
commit54344f15f8a6a6f5f0388097a1825a9c08c17482 (patch)
tree85af19e3330719d3486efdf8a12fc5f9549b72ac /proto/bgp/bgp.h
parent3752654852f4962465154257348000d6de1c2dae (diff)
parent0d0f6554a5c233bf2bf830ae319191c4b1808d49 (diff)
Merge commit '0d0f6554a5c233bf2bf830ae319191c4b1808d49' into haugesund
Diffstat (limited to 'proto/bgp/bgp.h')
-rw-r--r--proto/bgp/bgp.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/proto/bgp/bgp.h b/proto/bgp/bgp.h
index 022adb39..4a06eba2 100644
--- a/proto/bgp/bgp.h
+++ b/proto/bgp/bgp.h
@@ -545,22 +545,28 @@ bgp_find_attr(ea_list *attrs, uint code)
}
eattr *
-bgp_set_attr(ea_list **attrs, struct linpool *pool, uint code, uint flags, uintptr_t val);
+bgp_set_attr(ea_list **attrs, struct linpool *pool, uint code, uint flags, union bval val);
static inline void
bgp_set_attr_u32(ea_list **to, struct linpool *pool, uint code, uint flags, u32 val)
-{ bgp_set_attr(to, pool, code, flags, (uintptr_t) val); }
+{
+ union bval bv = { .data = val };
+ bgp_set_attr(to, pool, code, flags, bv);
+}
static inline void
-bgp_set_attr_ptr(ea_list **to, struct linpool *pool, uint code, uint flags, const struct adata *val)
-{ bgp_set_attr(to, pool, code, flags, (uintptr_t) val); }
+bgp_set_attr_ptr(ea_list **to, struct linpool *pool, uint code, uint flags, const struct adata *ad)
+{
+ union bval bv = { .ptr = ad };
+ bgp_set_attr(to, pool, code, flags, bv);
+}
static inline void
bgp_set_attr_data(ea_list **to, struct linpool *pool, uint code, uint flags, void *data, uint len)
{
struct adata *a = lp_alloc_adata(pool, len);
bmemcpy(a->data, data, len);
- bgp_set_attr(to, pool, code, flags, (uintptr_t) a);
+ bgp_set_attr_ptr(to, pool, code, flags, a);
}
#define bgp_unset_attr(to, pool, code) ea_unset_attr(to, pool, 0, code)