X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fopenflow%2Fnicira-ext.h;h=fe954cdbf49b3c9b1d3f8022997e08de89796433;hb=HEAD;hp=a8845a82a39152a9205735908c76aef53d7a0153;hpb=dc235f7fbcff39b318b715f9d3d01f97b2634357;p=sliver-openvswitch.git diff --git a/include/openflow/nicira-ext.h b/include/openflow/nicira-ext.h index a8845a82a..fe954cdbf 100644 --- a/include/openflow/nicira-ext.h +++ b/include/openflow/nicira-ext.h @@ -312,6 +312,8 @@ enum nx_action_subtype { NXAST_STACK_PUSH, /* struct nx_action_stack */ NXAST_STACK_POP, /* struct nx_action_stack */ NXAST_SAMPLE, /* struct nx_action_sample */ + NXAST_SET_MPLS_LABEL, /* struct nx_action_ttl */ + NXAST_SET_MPLS_TC, /* struct nx_action_ttl */ }; /* Header for Nicira-defined actions. */ @@ -492,6 +494,11 @@ OFP_ASSERT(sizeof(struct nx_action_pop_queue) == 16); * - NXM_OF_TCP_DST * - NXM_OF_UDP_SRC * - NXM_OF_UDP_DST + * - NXM_NX_ARP_SHA + * - NXM_NX_ARP_THA + * - NXM_OF_ARP_OP + * - NXM_OF_ARP_SPA + * - NXM_OF_ARP_TPA * Modifying any of the above fields changes the corresponding packet * header. * @@ -1796,6 +1803,35 @@ OFP_ASSERT(sizeof(struct nx_action_output_reg) == 24); #define NXM_NX_TCP_FLAGS NXM_HEADER (0x0001, 34, 2) #define NXM_NX_TCP_FLAGS_W NXM_HEADER_W(0x0001, 34, 2) +/* Metadata dp_hash. + * + * Internal use only, not programable from controller. + * + * The dp_hash is used to carry the flow hash computed in the + * datapath. + * + * Prereqs: None. + * + * Format: 32-bit integer in network byte order. + * + * Masking: Fully maskable. */ +#define NXM_NX_DP_HASH NXM_HEADER (0x0001, 35, 4) +#define NXM_NX_DP_HASH_W NXM_HEADER_W(0x0001, 35, 4) + +/* Metadata recirc_id. + * + * Internal use only, not programable from controller. + * + * The recirc_id used for recirculation. 0 is reserved + * for initially received packet. + * + * Prereqs: None. + * + * Format: 32-bit integer in network byte order. + * + * Masking: not maskable. */ +#define NXM_NX_RECIRC_ID NXM_HEADER (0x0001, 36, 4) + /* ## --------------------- ## */ /* ## Requests and replies. ## */ /* ## --------------------- ## */ @@ -2273,6 +2309,28 @@ struct nx_action_pop_mpls { }; OFP_ASSERT(sizeof(struct nx_action_pop_mpls) == 16); +/* Action structure for NXAST_SET_MPLS_LABEL. */ +struct nx_action_mpls_label { + ovs_be16 type; /* OFPAT_VENDOR. */ + ovs_be16 len; /* Length is 8. */ + ovs_be32 vendor; /* NX_VENDOR_ID. */ + ovs_be16 subtype; /* NXAST_SET_MPLS_LABEL. */ + uint8_t zeros[2]; /* Must be zero. */ + ovs_be32 label; /* LABEL */ +}; +OFP_ASSERT(sizeof(struct nx_action_mpls_label) == 16); + +/* Action structure for NXAST_SET_MPLS_TC. */ +struct nx_action_mpls_tc { + ovs_be16 type; /* OFPAT_VENDOR. */ + ovs_be16 len; /* Length is 8. */ + ovs_be32 vendor; /* NX_VENDOR_ID. */ + ovs_be16 subtype; /* NXAST_SET_MPLS_TC. */ + uint8_t tc; /* TC */ + uint8_t pad[5]; +}; +OFP_ASSERT(sizeof(struct nx_action_mpls_tc) == 16); + /* Action structure for NXAST_SET_MPLS_TTL. */ struct nx_action_mpls_ttl { ovs_be16 type; /* OFPAT_VENDOR. */