Which is reality for which? And do they actually just ultimately rely on /etc/protocols in the end as well, or is this validated within firewalld itself?
Also, do the related protocol fields correspond with this in zones and helpers as well? Or do they also simply use the hardcoded constants?