Adding the per-action structure size to the sub-header means that:
- Unknown actions can be skipped. The size they occupy in the packet is count * size * 2. This is useful when the consumer of the packet isn't necessarily an identical kernel and only a subset of actions is relevant or known.
- The size of the action structure is variable. Variability is possible if and when pfsync(4) can be configured to include optional fields. Even if there's no such configuration, the ability to add a field to an action structure without it requiring a new action code and thus a version bump is very valuable.