This RFC patch series is a first stab, at adding some syntactic sugar making it more plessant to implement non-trivial dual-stack configurations, like https://bgpfilterguide.nlnog.net/
I'm not completely happy with the naming at this stage, but I want to get this series out before 36C3 ends. Looking forward to your feedback. Asbjørn Sloth Tønnesen (20): add NET_ANY make symbol types maskable add new symbol flags for typed symbols add support for defining typed symbols show symbols: don't show typed symbols add initial FI_TYPED_CONSTANT instruction add generic pseudo filter check function add f_has_typed_symbols helper function use net_type when looking up symbols in SYM_FLAG_SAME check show symbol flags in dump filter all check if functions need to be adapted force consistent number of function arguments use FI_TYPED_CONSTANT for typed constants adapt infrastructure adapt protocol filters adapt sh route filters adapt mrt filters allow typed definitions add typed test config add typed documentation conf/cf-lex.l | 75 ++++++++++++++++++++---- conf/conf.h | 58 +++++++++++++----- conf/confbase.Y | 6 +- doc/bird.sgml | 10 ++++ filter/Makefile | 2 +- filter/adapt.c | 150 +++++++++++++++++++++++++++++++++++++++++++++++ filter/config.Y | 28 +++++++-- filter/decl.m4 | 77 +++++++++++++++++++++--- filter/f-inst.c | 42 ++++++++++++- filter/filter.c | 29 +++++---- filter/filter.h | 16 +++++ filter/test.conf | 41 +++++++++++++ lib/net.c | 1 + lib/net.h | 1 + nest/cmds.c | 3 + nest/config.Y | 8 ++- nest/route.h | 1 + nest/rt-show.c | 9 ++- proto/mrt/mrt.c | 17 +++++- proto/mrt/mrt.h | 2 + 20 files changed, 519 insertions(+), 57 deletions(-) create mode 100644 filter/adapt.c -- 2.24.0