diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2023-04-27 18:20:49 +0200 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2023-04-27 18:41:01 +0200 |
commit | a8a64ca0fed41c78376b27880e934296bd3c3a7f (patch) | |
tree | b07dce29bd01d67438438278bc8af89879faba12 /proto/bgp | |
parent | 9b471e72d75c154f3b8c4fa134c7c9f1a55fe27f (diff) |
Conf: Improve handling of keywords
For whatever reason, parser allocated a symbol for every parsed keyword
in each scope. That wasted time and memory. The effect is worsened with
recent changes allowing local scopes, so keywords often promote soft
scopes (with no symbols) to real scopes.
Do not allocate a symbol for a keyword. Take care of keywords that could
be promoted to symbols (kw_sym) and do it explicitly.
Diffstat (limited to 'proto/bgp')
-rw-r--r-- | proto/bgp/config.Y | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/proto/bgp/config.Y b/proto/bgp/config.Y index 013d14af..218e0d04 100644 --- a/proto/bgp/config.Y +++ b/proto/bgp/config.Y @@ -46,7 +46,7 @@ CF_KEYWORDS(CEASE, PREFIX, LIMIT, HIT, ADMINISTRATIVE, SHUTDOWN, RESET, PEER, CF_GRAMMAR /* Workaround for collisions between keywords and symbols */ -symbol: ROLE | PEER | PROVIDER | CUSTOMER | RS_SERVER | RS_CLIENT ; +kw_sym: ROLE | PEER | PROVIDER | CUSTOMER | RS_SERVER | RS_CLIENT ; proto: bgp_proto '}' ; |