ofp-util: Abstract table miss configuration and fix related bugs.

The ofproto implementation has had an abstraction layer on top of
OFPTC11_TABLE_MISS for a while.  This commit pushes that abstraction layer
farther down, into ofp-util.  This will be more useful in an upcoming
commit.

During the conversion I realized that the previous implementation was
not entirely correct.  In particular, the OpenFlow 1.3+ "table mod" was
still being treated as if it had table miss configuration bits, even
though it doesn't.  This commit fixes that issue and updates the tests.

OpenFlow 1.4 adds some more OFPTC_* flags that this new abstraction doesn't
yet support, but OVS didn't support those flags any better before this
commit, so abstracting those is left as future work.

Signed-off-by: Ben Pfaff <blp@nicira.com>
ofp-util: Fix table features decoding of multiple tables.

Table features replies can be packed back-to-back within a single
multipart reply.  The code here didn't properly parse properties when this
occurred.  This fixes the problem.

Signed-off-by: Ben Pfaff <blp@nicira.com>
ofp-util: Fix table features decoding of action and instruction fields.

Parsing of actions was wrong because OF1.3 says that non-experimenter
actions are 4 bytes and don't include padding.  This fixes the problem.

Parsing of instructions seems wrong too because OF1.3 says that
non-experimenter instructions are 4 bytes (though it is not explicit about
padding as it is for actions).  This fixes the problem there too.

Signed-off-by: Ben Pfaff <blp@nicira.com>
ofp-util: Fix table features decoding of match and mask.

The call to parse_oxms() inside ofputil_decode_table_features() sets only
one bit in either 'match' or 'mask' for a given field that is matchable:
in 'mask' if the field is arbitrarily maskable or in 'match' otherwise.
The code at the end of ofputil_decode_table_features() mishandled this,
assuming that an arbitrarily matchable field would have that bit set in
both.  This meant that arbitrarily matchable fields were being
misinterpreted as not matchable at all.  This commit fixes the problem.

Signed-off-by: Ben Pfaff <blp@nicira.com>
ofproto: Implement OpenFlow 1.3+ table features request.

Signed-off-by: Ben Pfaff <blp@nicira.com>
ovs-ofctl: Un-document "apply_actions" because it does not exist.

"apply_actions" is assumed, any other instruction has to be specified
explicitly.

Signed-off-by: Ben Pfaff <blp@nicira.com>
ofp-parse: Make string conversion functions available outside this file.

An upcoming commit will use them from ofp-actions.

Signed-off-by: Ben Pfaff <blp@nicira.com>
work