diff options
author | Maria Matejka <mq@ucw.cz> | 2022-04-10 19:15:18 +0200 |
---|---|---|
committer | Maria Matejka <mq@ucw.cz> | 2022-05-04 15:37:41 +0200 |
commit | ef4313e1667a8745c8d8813ac78342ec7c035895 (patch) | |
tree | 30871174114bb21f0052f900d001ad9ce4fdc63e /proto/bgp/bgp.h | |
parent | f2f3163f6c3fba7f9ef03640d7b2f6323873d2cc (diff) |
Local route attributes are always allocated from tmp_linpool
Diffstat (limited to 'proto/bgp/bgp.h')
-rw-r--r-- | proto/bgp/bgp.h | 29 |
1 files changed, 4 insertions, 25 deletions
diff --git a/proto/bgp/bgp.h b/proto/bgp/bgp.h index d09a5c8f..de5bd836 100644 --- a/proto/bgp/bgp.h +++ b/proto/bgp/bgp.h @@ -544,32 +544,11 @@ bgp_find_attr(ea_list *attrs, uint code) return ea_find(attrs, EA_CODE(PROTOCOL_BGP, code)); } -eattr * -bgp_set_attr(ea_list **attrs, struct linpool *pool, uint code, uint flags, union bval val); +void bgp_set_attr_u32(ea_list **to, uint code, uint flags, u32 val); +void bgp_set_attr_ptr(ea_list **to, uint code, uint flags, const struct adata *ad); +void bgp_set_attr_data(ea_list **to, uint code, uint flags, void *data, uint len); -static inline void -bgp_set_attr_u32(ea_list **to, struct linpool *pool, uint code, uint flags, u32 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 *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_ptr(to, pool, code, flags, a); -} - -#define bgp_unset_attr(to, pool, code) ea_unset_attr(to, pool, 0, code) +#define bgp_unset_attr(to, code) ea_unset_attr(to, 0, code) int bgp_encode_mp_reach_mrt(struct bgp_write_state *s, eattr *a, byte *buf, uint size); |