floodlight/loxigen

ofp_instruction and ofp_action_header: request non-padded variant

jonstout opened this issue · 0 comments

The specification states that ofp_instruction and ofp_action_header must always be a multiple of eight on page 59 (ofp_instruction) and on page 145 (ofp_action_header).

Of course the specification later contradicts itself on page 86

The instruction_ids is the list of instructions supported by this table (see 5.9). The elements of
that list are variable size to enable expressing experimenter instructions, non-experimenter
instructions are 4 bytes.

and on page 87

The action_ids is the list of actions for the feature (see 5.12). The elements of
that list are variable size to enable expressing experimenter actions, non-experimenter actions
are 4 bytes in size (they don't include padding de ned in ofp_action_header).

Loxigen currently uses the 8 bye aligned version, but this causes action_ids and instruction_ids to be parsed incorrectly in table_feature_prop_* messages. Since both versions are used in the protocol, it would be useful to have an alternate type for parsing the non-padded versions.