diff options
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 0a4b14a8..cf6e2b6f 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); |