diff options
author | Maria Matejka <mq@ucw.cz> | 2022-03-26 12:40:46 +0100 |
---|---|---|
committer | Maria Matejka <mq@ucw.cz> | 2022-05-04 15:37:41 +0200 |
commit | 80272d4b64a38ee6f04a1c4e8566cac3a2293176 (patch) | |
tree | 009e97d313dddf93b252e12d0a5e270eaa50e486 | |
parent | 22f95d9889f07d868ffaec40ab43fd8dd9b0bb31 (diff) |
Opaque types are named opaque also in filters
-rw-r--r-- | filter/data.h | 4 | ||||
-rw-r--r-- | filter/f-inst.c | 2 | ||||
-rw-r--r-- | proto/bgp/config.Y | 6 |
3 files changed, 7 insertions, 5 deletions
diff --git a/filter/data.h b/filter/data.h index 6d588204..924bbf3e 100644 --- a/filter/data.h +++ b/filter/data.h @@ -20,6 +20,9 @@ enum f_type { /* Nothing. Simply nothing. */ T_VOID = 0, +/* Something but inaccessible. */ + T_OPAQUE = 0xee, + /* User visible types, which fit in int */ T_INT = 0x10, T_BOOL = 0x11, @@ -41,7 +44,6 @@ enum f_type { T_ENUM_AF = 0x38, /* new enums go here */ - T_ENUM_EMPTY = 0x3f, /* Special hack for atomic_aggr */ #define T_ENUM T_ENUM_LO ... T_ENUM_HI diff --git a/filter/f-inst.c b/filter/f-inst.c index 11ca1e28..75a53499 100644 --- a/filter/f-inst.c +++ b/filter/f-inst.c @@ -704,7 +704,7 @@ RESULT_(T_QUAD, i, e->u.data); break; case EAF_TYPE_OPAQUE: - RESULT_(T_ENUM_EMPTY, i, 0); + RESULT_(T_OPAQUE, ad, e->u.ptr); break; case EAF_TYPE_IP_ADDRESS: RESULT_(T_IP, ip, *((ip_addr *) e->u.ptr->data)); diff --git a/proto/bgp/config.Y b/proto/bgp/config.Y index 04920941..86124bfb 100644 --- a/proto/bgp/config.Y +++ b/proto/bgp/config.Y @@ -328,9 +328,9 @@ dynamic_attr: BGP_MED dynamic_attr: BGP_LOCAL_PREF { $$ = f_new_dynamic_attr(EAF_TYPE_INT, T_INT, EA_CODE(PROTOCOL_BGP, BA_LOCAL_PREF)); } ; dynamic_attr: BGP_ATOMIC_AGGR - { $$ = f_new_dynamic_attr(EAF_TYPE_OPAQUE, T_ENUM_EMPTY, EA_CODE(PROTOCOL_BGP, BA_ATOMIC_AGGR)); } ; + { $$ = f_new_dynamic_attr(EAF_TYPE_OPAQUE, T_OPAQUE, EA_CODE(PROTOCOL_BGP, BA_ATOMIC_AGGR)); } ; dynamic_attr: BGP_AGGREGATOR - { $$ = f_new_dynamic_attr(EAF_TYPE_OPAQUE, T_ENUM_EMPTY, EA_CODE(PROTOCOL_BGP, BA_AGGREGATOR)); } ; + { $$ = f_new_dynamic_attr(EAF_TYPE_OPAQUE, T_OPAQUE, EA_CODE(PROTOCOL_BGP, BA_AGGREGATOR)); } ; dynamic_attr: BGP_COMMUNITY { $$ = f_new_dynamic_attr(EAF_TYPE_INT_SET, T_CLIST, EA_CODE(PROTOCOL_BGP, BA_COMMUNITY)); } ; dynamic_attr: BGP_ORIGINATOR_ID @@ -340,7 +340,7 @@ dynamic_attr: BGP_CLUSTER_LIST dynamic_attr: BGP_EXT_COMMUNITY { $$ = f_new_dynamic_attr(EAF_TYPE_EC_SET, T_ECLIST, EA_CODE(PROTOCOL_BGP, BA_EXT_COMMUNITY)); } ; dynamic_attr: BGP_AIGP - { $$ = f_new_dynamic_attr(EAF_TYPE_OPAQUE, T_ENUM_EMPTY, EA_CODE(PROTOCOL_BGP, BA_AIGP)); } ; + { $$ = f_new_dynamic_attr(EAF_TYPE_OPAQUE, T_OPAQUE, EA_CODE(PROTOCOL_BGP, BA_AIGP)); } ; dynamic_attr: BGP_LARGE_COMMUNITY { $$ = f_new_dynamic_attr(EAF_TYPE_LC_SET, T_LCLIST, EA_CODE(PROTOCOL_BGP, BA_LARGE_COMMUNITY)); } ; |