X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fopenflow%2Fnicira-ext.h;h=135f793edb38820d47b1cb241625a55695a93870;hb=dd2cb550e56ddc937b917e29a5ccdb920787c7ef;hp=97f547883e1a3017f82e759b35584735e5aebbcb;hpb=19e7439c61970cc5066aae601492a2e9b55ffcb7;p=openvswitch diff --git a/include/openflow/nicira-ext.h b/include/openflow/nicira-ext.h index 97f54788..135f793e 100644 --- a/include/openflow/nicira-ext.h +++ b/include/openflow/nicira-ext.h @@ -20,8 +20,6 @@ #include "openflow/openflow.h" #include "openvswitch/types.h" -#define NICIRA_OUI_STR "002320" - /* The following vendor extensions, proposed by Nicira Networks, are not yet * standardized, so they are not included in openflow.h. Some of them may be * suitable for standardization; others we never expect to standardize. */ @@ -230,7 +228,8 @@ enum nx_action_subtype { NXAST_POP_QUEUE, /* struct nx_action_pop_queue */ NXAST_REG_MOVE, /* struct nx_action_reg_move */ NXAST_REG_LOAD, /* struct nx_action_reg_load */ - NXAST_NOTE /* struct nx_action_note */ + NXAST_NOTE, /* struct nx_action_note */ + NXAST_SET_TUNNEL64, /* struct nx_action_set_tunnel64 */ }; /* Header for Nicira-defined actions. */ @@ -281,7 +280,8 @@ OFP_ASSERT(sizeof(struct nx_action_resubmit) == 16); /* Action structure for NXAST_SET_TUNNEL. * - * Sets the encapsulating tunnel ID. */ + * Sets the encapsulating tunnel ID to a 32-bit value. The most-significant 32 + * bits of the tunnel ID are set to 0. */ struct nx_action_set_tunnel { uint16_t type; /* OFPAT_VENDOR. */ uint16_t len; /* Length is 16. */ @@ -292,6 +292,19 @@ struct nx_action_set_tunnel { }; OFP_ASSERT(sizeof(struct nx_action_set_tunnel) == 16); +/* Action structure for NXAST_SET_TUNNEL64. + * + * Sets the encapsulating tunnel ID to a 64-bit value. */ +struct nx_action_set_tunnel64 { + ovs_be16 type; /* OFPAT_VENDOR. */ + ovs_be16 len; /* Length is 16. */ + ovs_be32 vendor; /* NX_VENDOR_ID. */ + ovs_be16 subtype; /* NXAST_SET_TUNNEL64. */ + uint8_t pad[6]; + ovs_be64 tun_id; /* Tunnel ID. */ +}; +OFP_ASSERT(sizeof(struct nx_action_set_tunnel64) == 24); + /* Action structure for NXAST_DROP_SPOOFED_ARP. * * Stops processing further actions, if the packet being processed is an @@ -347,8 +360,11 @@ OFP_ASSERT(sizeof(struct nx_action_pop_queue) == 16); * bit 'c'). Bit numbering starts at 0 for the least-significant bit, 1 for * the next most significant bit, and so on. * - * 'src' and 'dst' are nxm_header values with nxm_hasmask=0. The following - * nxm_header values are potentially acceptable as 'src': + * 'src' and 'dst' are nxm_header values with nxm_hasmask=0. (It doesn't make + * sense to use nxm_hasmask=1 because the action does not do any kind of + * matching; it uses the actual value of a field.) + * + * The following nxm_header values are potentially acceptable as 'src': * * - NXM_OF_IN_PORT * - NXM_OF_ETH_DST @@ -413,7 +429,7 @@ OFP_ASSERT(sizeof(struct nx_action_reg_move) == 24); * starts at 0 for the least-significant bit, 1 for the next most significant * bit, and so on. * - * 'dst' must be one of the following: + * 'dst' is an nxm_header with nxm_hasmask=0. It must be one of the following: * * - NXM_NX_REG(idx) for idx in the switch's accepted range. *