mirror of
https://gitlab.labs.nic.cz/labs/bird.git
synced 2024-05-11 16:54:54 +00:00
Changed initialization of protocol list -- now we call proto_build() instead
of calling the protocols manually. Implemented printing of dynamic attributes in `show route all'. Each protocol can now register its own attribute class (protocol->attr_class, set to EAP_xxx) and also a callback for naming and formatting of attributes. The callback can return one of the following results: GA_UNKNOWN Attribute not recognized. GA_NAME Attribute name recognized and put to the buffer, generic code should format the value. GA_FULL Both attribute name and value put to the buffer. Please update protocols generating dynamic attributes to provide the attr_class and formatting hook.
This commit is contained in:
@@ -283,6 +283,7 @@ typedef struct eattr {
|
||||
#define EAP_GENERIC 0 /* Generic attributes */
|
||||
#define EAP_BGP 1 /* BGP attributes */
|
||||
#define EAP_RIP 2 /* RIP */
|
||||
#define EAP_MAX 3
|
||||
|
||||
#define EA_CODE(proto,id) (((proto) << 8) | (id))
|
||||
#define EA_PROTO(ea) ((ea) >> 8)
|
||||
@@ -336,6 +337,8 @@ void rta_dump_all(void);
|
||||
static inline eattr * rta_find(rta *a, unsigned ea) { return ea_find(a->eattrs, ea); }
|
||||
void rta_show(struct cli *, rta *);
|
||||
|
||||
extern struct protocol *attr_class_to_protocol[EAP_MAX];
|
||||
|
||||
/*
|
||||
* Default protocol preferences
|
||||
*/
|
||||
|
Reference in New Issue
Block a user