enum mf_field_id {
/* Metadata. */
MFF_TUN_ID, /* be64 */
+ MFF_TUN_SRC, /* be32 */
+ MFF_TUN_DST, /* be32 */
+ MFF_TUN_FLAGS, /* be16 */
+ MFF_TUN_TTL, /* u8 */
+ MFF_TUN_TOS, /* u8 */
MFF_METADATA, /* be64 */
MFF_IN_PORT, /* be16 */
MFS_IPV4,
MFS_IPV6,
MFS_OFP_PORT, /* An OpenFlow port number or name. */
- MFS_FRAG /* no, yes, first, later, not_later */
+ MFS_FRAG, /* no, yes, first, later, not_later */
+ MFS_TNL_FLAGS, /* FLOW_TNL_F_* flags */
};
struct mf_field {
void mf_random_value(const struct mf_field *, union mf_value *value);
/* Subfields. */
+void mf_write_subfield_flow(const struct mf_subfield *,
+ const union mf_subvalue *, struct flow *);
void mf_write_subfield(const struct mf_subfield *, const union mf_subvalue *,
struct match *);
void mf_format(const struct mf_field *,
const union mf_value *value, const union mf_value *mask,
struct ds *);
+void mf_format_subvalue(const union mf_subvalue *subvalue, struct ds *s);
#endif /* meta-flow.h */