mirror of
https://gitlab.labs.nic.cz/labs/bird.git
synced 2024-05-11 16:54:54 +00:00
Explicit definition structures of route attributes
Changes in internal API: * Every route attribute must be defined as struct ea_class somewhere. * Registration of route attributes known at startup must be done by ea_register_init() from protocol build functions. * Every attribute has now its symbol registered in a global symbol table defined as SYM_ATTRIBUTE * All attribute ID's are dynamically allocated. * Attribute value custom formatting hook is defined in the ea_class. * Attribute names are the same for display and filters, always prefixed by protocol name. Also added some unit testing code for filters with route attributes.
This commit is contained in:
@@ -34,38 +34,6 @@ static inline struct ifa * kif_get_primary_ip(struct iface *i UNUSED) { return N
|
||||
|
||||
#define KRT_ALLOW_MERGE_PATHS 1
|
||||
|
||||
#define EA_KRT_PREFSRC EA_CODE(PROTOCOL_KERNEL, 0x10)
|
||||
#define EA_KRT_REALM EA_CODE(PROTOCOL_KERNEL, 0x11)
|
||||
#define EA_KRT_SCOPE EA_CODE(PROTOCOL_KERNEL, 0x12)
|
||||
|
||||
|
||||
#define KRT_METRICS_MAX 0x10 /* RTAX_QUICKACK+1 */
|
||||
#define KRT_METRICS_OFFSET 0x20 /* Offset of EA_KRT_* vs RTAX_* */
|
||||
|
||||
#define KRT_FEATURES_MAX 4
|
||||
|
||||
/*
|
||||
* Following attributes are parts of RTA_METRICS kernel route attribute, their
|
||||
* ids must be consistent with their RTAX_* constants (+ KRT_METRICS_OFFSET)
|
||||
*/
|
||||
#define EA_KRT_METRICS EA_CODE(PROTOCOL_KERNEL, 0x20) /* Dummy one */
|
||||
#define EA_KRT_LOCK EA_CODE(PROTOCOL_KERNEL, 0x21)
|
||||
#define EA_KRT_MTU EA_CODE(PROTOCOL_KERNEL, 0x22)
|
||||
#define EA_KRT_WINDOW EA_CODE(PROTOCOL_KERNEL, 0x23)
|
||||
#define EA_KRT_RTT EA_CODE(PROTOCOL_KERNEL, 0x24)
|
||||
#define EA_KRT_RTTVAR EA_CODE(PROTOCOL_KERNEL, 0x25)
|
||||
#define EA_KRT_SSTRESH EA_CODE(PROTOCOL_KERNEL, 0x26)
|
||||
#define EA_KRT_CWND EA_CODE(PROTOCOL_KERNEL, 0x27)
|
||||
#define EA_KRT_ADVMSS EA_CODE(PROTOCOL_KERNEL, 0x28)
|
||||
#define EA_KRT_REORDERING EA_CODE(PROTOCOL_KERNEL, 0x29)
|
||||
#define EA_KRT_HOPLIMIT EA_CODE(PROTOCOL_KERNEL, 0x2a)
|
||||
#define EA_KRT_INITCWND EA_CODE(PROTOCOL_KERNEL, 0x2b)
|
||||
#define EA_KRT_FEATURES EA_CODE(PROTOCOL_KERNEL, 0x2c)
|
||||
#define EA_KRT_RTO_MIN EA_CODE(PROTOCOL_KERNEL, 0x2d)
|
||||
#define EA_KRT_INITRWND EA_CODE(PROTOCOL_KERNEL, 0x2e)
|
||||
#define EA_KRT_QUICKACK EA_CODE(PROTOCOL_KERNEL, 0x2f)
|
||||
|
||||
|
||||
struct krt_params {
|
||||
u32 table_id; /* Kernel table ID we sync with */
|
||||
u32 metric; /* Kernel metric used for all routes */
|
||||
|
Reference in New Issue
Block a user