You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
config_parse_route_section: most ltypes are validated against the route-Type enum grammar #476
ConfigParseRouteSectionOptionValue implements the route Type enum grammar
(unicast, blackhole, unreachable, …), but in AiGenerated it is registered for nineconfig_parse_route_section ltypes — only one of which (ROUTE_TYPE) actually
takes that enum. The rest take numbers, booleans, or different enums, so their valid
values are mis-flagged as invalid.
Discovered while adding Gateway coverage (#475); the experimental key-marker (#474) makes
these easy to spot.
Mis-registered ltypes (correctness bug)
All of these currently resolve to the route-Type word list, which is wrong:
ltype
.network key(s)
actually accepts
example wrongly flagged
ROUTE_PRIORITY
Route.Metric
unsigned integer
Metric=100
ROUTE_PROTOCOL
Route.Protocol
kernel/boot/static/dhcp or 0–255
Protocol=static
ROUTE_PREFERENCE
Route.IPv6Preference
low/medium/high
IPv6Preference=high
ROUTE_NEXTHOP
Route.NextHop
nexthop id (unsigned int)
NextHop=1
ROUTE_METRIC_HOPLIMIT
Route.HopLimit
unsigned integer
HopLimit=64
ROUTE_METRIC_INITRWND
Route.InitialAdvertisedReceiveWindow
unsigned integer
InitialAdvertisedReceiveWindow=10
ROUTE_METRIC_QUICKACK
Route.QuickAck
boolean
QuickAck=true
ROUTE_METRIC_FASTOPEN_NO_COOKIE
Route.FastOpenNoCookie
boolean
FastOpenNoCookie=yes
Only ROUTE_TYPE (Route.Type) is correctly served by the enum grammar.
Also: unregistered ltypes (coverage gaps — no validation today)
These config_parse_route_section ltypes appear in the networkd gperf but have no entry
in AiGenerated, so their values aren't validated at all (same situation Gateway was in
before #475):
Give each ltype its own correct grammar (as done for the gateway ltypes in #475) rather
than sharing the Type-enum validator. The mis-registrations are the priority (they cause
false errors on valid configs); the unregistered ltypes are latent gaps. The key-marker
behind the experimental flag is handy for verifying each one lights up once covered.
Activity