summaryrefslogtreecommitdiff
path: root/nest/route.h
diff options
context:
space:
mode:
authorMaria Matejka <mq@ucw.cz>2022-03-14 10:06:44 +0100
committerMaria Matejka <mq@ucw.cz>2022-04-06 18:14:08 +0200
commit63cf5d5d8c8e156a1f427614c8017ca71c32191c (patch)
tree0c47dab941db9e4fd20f10c2fd99ec4e2b2b60e1 /nest/route.h
parentaf8568a8700b83f4d1946b7075fa3eac96d1d5b6 (diff)
Eattr flags (originated and fresh) get their own struct fields
Diffstat (limited to 'nest/route.h')
-rw-r--r--nest/route.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/nest/route.h b/nest/route.h
index 595acabd..9fbac898 100644
--- a/nest/route.h
+++ b/nest/route.h
@@ -502,7 +502,9 @@ static inline int rte_is_reachable(rte *r)
typedef struct eattr {
word id; /* EA_CODE(PROTOCOL_..., protocol-dependent ID) */
byte flags; /* Protocol-dependent flags */
- byte type; /* Attribute type and several flags (EAF_...) */
+ byte type:5; /* Attribute type */
+ byte originated:1; /* The attribute has originated locally */
+ byte fresh:1; /* An uncached attribute (e.g. modified in export filter) */
union {
uintptr_t data;
const struct adata *ptr; /* Attribute data elsewhere */
@@ -541,8 +543,6 @@ const char *ea_custom_name(uint ea);
#define EAF_TYPE_UNDEF 0x1f /* `force undefined' entry */
#define EAF_EMBEDDED 0x01 /* Data stored in eattr.u.data (part of type spec) */
#define EAF_VAR_LENGTH 0x02 /* Attribute length is variable (part of type spec) */
-#define EAF_ORIGINATED 0x20 /* The attribute has originated locally */
-#define EAF_FRESH 0x40 /* An uncached attribute (e.g. modified in export filter) */
typedef struct adata {
uint length; /* Length of data */