summaryrefslogtreecommitdiff
path: root/nest
diff options
context:
space:
mode:
authorMaria Matejka <mq@ucw.cz>2022-03-25 19:51:35 +0100
committerMaria Matejka <mq@ucw.cz>2022-05-04 15:37:41 +0200
commitbc17fee1bfdbd330f5a4377bf40f6de0681afa5c (patch)
treead1a32b216cdb28d13f4cfbae1cf8c711c5d556c /nest
parentd4bcef0e0bfee911d403c0cf830de3e3007eeb38 (diff)
Filter: Bitfield eattrs reading / writing moved to filter code
Before this change, fetch-update-write and bitmasking was hardcoded in attribute access code cased by the attribute type. Several filter instructions are used to do it instead. As this is certainly going to be a little bit slower than before, the switch block in attribute access code should be completely removed in near future, helping with both performance and code cleanliness. The user interface should have stayed intact.
Diffstat (limited to 'nest')
-rw-r--r--nest/route.h1
-rw-r--r--nest/rt-attr.c3
2 files changed, 0 insertions, 4 deletions
diff --git a/nest/route.h b/nest/route.h
index 80c53ba6..a4af0edc 100644
--- a/nest/route.h
+++ b/nest/route.h
@@ -536,7 +536,6 @@ const char *ea_custom_name(uint ea);
#define EAF_TYPE_IP_ADDRESS 0x04 /* IP address */
#define EAF_TYPE_ROUTER_ID 0x05 /* Router ID (IPv4 address) */
#define EAF_TYPE_AS_PATH 0x06 /* BGP AS path (encoding per RFC 1771:4.3) */
-#define EAF_TYPE_BITFIELD 0x09 /* 32-bit embedded bitfield */
#define EAF_TYPE_INT_SET 0x0a /* Set of u32's (e.g., a community list) */
#define EAF_TYPE_EC_SET 0x0e /* Set of pairs of u32's - ext. community list */
#define EAF_TYPE_LC_SET 0x12 /* Set of triplets of u32's - large community list */
diff --git a/nest/rt-attr.c b/nest/rt-attr.c
index 22b45db9..abda5d82 100644
--- a/nest/rt-attr.c
+++ b/nest/rt-attr.c
@@ -965,9 +965,6 @@ ea_show(struct cli *c, const eattr *e)
case EAF_TYPE_AS_PATH:
as_path_format(ad, pos, end - pos);
break;
- case EAF_TYPE_BITFIELD:
- bsprintf(pos, "%08x", e->u.data);
- break;
case EAF_TYPE_INT_SET:
ea_show_int_set(c, ad, 1, pos, buf, end);
return;