datapath: Fix behavior of NLA_NESTED for pre-2.6.29 kernels.
Before v2.6.29, a NLA_NESTED attribute, if it was present, was not allowed
to be empty. However, OVS depends on the ability to accept empty
attributes. For example, a present but empty ODP_FLOW_ATTR_ACTIONS on
ODP_FLOW_CMD_SET replaces the existing set of actions by an empty "drop"
action, whereas a missing ODP_FLOW_ATTR_ACTIONS leaves the existing
actions, if any, unchanged.
NLA_NESTED is different from NLA_UNSPEC in only two ways:
* If the size of the nested attributes is zero, no further size checks
are performed.
* If the size of the nested attributes is not zero and no length
parameter is specified the minimum size of nested attributes is
NLA_HDRLEN.
nla_parse_nested() validates that there is at least enough space for
NLA_HDRLEN, so neither of these conditions are important, and we might
as well use NLA_UNSPEC with old kernels.
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>