+ uint8_t nw_tos; /* IP ToS (including DSCP and ECN). */
+ uint8_t arp_sha[6]; /* ARP/ND source hardware address. */
+ uint8_t arp_tha[6]; /* ARP/ND target hardware address. */
+ uint8_t nw_ttl; /* IP TTL/Hop Limit. */
+ uint8_t nw_frag; /* FLOW_FRAG_* flags. */
+ uint8_t reserved[2]; /* Reserved for 64-bit packing. */
+};
+
+/* Represents the metadata fields of struct flow. The masks are used to
+ * indicate which metadata fields are relevant in a given context. Typically
+ * they will be all 1 or all 0. */
+struct flow_metadata {
+ ovs_be64 tun_id; /* Encapsulating tunnel ID. */
+ ovs_be64 tun_id_mask; /* 1-bit in each significant tun_id bit.*/
+
+ ovs_be64 metadata;
+ ovs_be64 metadata_mask;
+
+ uint32_t regs[FLOW_N_REGS]; /* Registers. */
+ uint32_t reg_masks[FLOW_N_REGS]; /* 1-bit in each significant regs bit. */
+
+ uint16_t in_port; /* OpenFlow port or zero. */