9.11.3-S1 ARM doesn't include syntax for ECS options
Summary
The 9.11.3-S1 ARM describes the various options related to recursive ECS support but they are not listed in the options grammar.
They do exist in isccfg, so this seems to be an issue in the (automated?) export of the configuration grammar for the ARM.
$ grep ecs doc/arm/*.grammar.xml lib/isccfg/*.c
doc/arm/options.grammar.xml: <command>geoip-use-ecs</command> <replaceable>boolean</replaceable>;
lib/isccfg/aclconf.c: isc_boolean_t setpos, setecs;
lib/isccfg/aclconf.c: setecs = cfg_obj_istype(ce, &cfg_type_ecsprefix);
lib/isccfg/aclconf.c: setpos, setecs);
lib/isccfg/namedconf.c:static cfg_type_t cfg_type_ecsbits;
lib/isccfg/namedconf.c:static cfg_type_t cfg_type_ecszones;
lib/isccfg/namedconf.c: { "geoip-use-ecs", &cfg_type_boolean, 0 },
lib/isccfg/namedconf.c: { "geoip-use-ecs", &cfg_type_boolean, CFG_CLAUSEFLAG_NOTCONFIGURED },
lib/isccfg/namedconf.c: { "ecs-bits", &cfg_type_ecsbits, 0 },
lib/isccfg/namedconf.c: { "ecs-zones", &cfg_type_ecszones, 0 },
lib/isccfg/namedconf.c: { "ecs-forward", &cfg_type_bracketed_aml, 0 },
lib/isccfg/namedconf.c: { "ecs-privacy", &cfg_type_boolean, 0 },
lib/isccfg/namedconf.c: { "ecs-types", &cfg_type_rrtypelist, 0 },
lib/isccfg/namedconf.c: { "ecs", &cfg_type_boolean, 0 },
lib/isccfg/namedconf.c:static keyword_type_t ecs_kw = { "ecs", &cfg_type_netprefix };
lib/isccfg/namedconf.c:LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_ecsprefix = {
lib/isccfg/namedconf.c: &cfg_rep_netprefix, &ecs_kw
lib/isccfg/namedconf.c: (strcasecmp(TOKEN_STRING(pctx), "ecs") == 0)) {
lib/isccfg/namedconf.c: CHECK(cfg_parse_obj(pctx, &cfg_type_ecsprefix, ret));
lib/isccfg/namedconf.c:static cfg_tuplefielddef_t ecszoneelt_fields[] = {
lib/isccfg/namedconf.c:static cfg_type_t cfg_type_ecszoneelt = {
lib/isccfg/namedconf.c: "ecszoneelt", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple,
lib/isccfg/namedconf.c: &cfg_rep_tuple, ecszoneelt_fields
lib/isccfg/namedconf.c:static cfg_type_t cfg_type_ecszones = {
lib/isccfg/namedconf.c: "ecszones", cfg_parse_bracketed_list, cfg_print_bracketed_list,
lib/isccfg/namedconf.c: cfg_doc_bracketed_list, &cfg_rep_list, &cfg_type_ecszoneelt
lib/isccfg/namedconf.c: "ecs_domain_name", parse_name_matchelt, NULL, cfg_doc_terminal,
lib/isccfg/namedconf.c:static cfg_tuplefielddef_t ecsbits_fields[] = {
lib/isccfg/namedconf.c:static cfg_type_t cfg_type_ecsbits = {
lib/isccfg/namedconf.c: "ecsbits", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple,
lib/isccfg/namedconf.c: &cfg_rep_tuple, ecsbits_fields
Once this is corrected we will need updated ARM files to provide to our customers.