X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fopenflow%2Fnicira-ext.h;h=1a59d3b03114e53b2297d5d6081ce853389d3ac0;hb=cc01d0bb79103a01aa0afc3484249fd518b877ea;hp=3a4a694016bb0bc0a5880aae37276da10b1ef386;hpb=b6c9e612fa0801037c60339a931d29413e8fa08f;p=openvswitch diff --git a/include/openflow/nicira-ext.h b/include/openflow/nicira-ext.h index 3a4a6940..1a59d3b0 100644 --- a/include/openflow/nicira-ext.h +++ b/include/openflow/nicira-ext.h @@ -205,8 +205,8 @@ OFP_ASSERT(sizeof(struct nxt_tun_id_cookie) == 24); * OpenFlow features. In particular attempts to modify the flow table * will be rejected with an OFPBRC_EPERM error. * - * Slave controllers also do not receive asynchronous messages - * (OFPT_PACKET_IN, OFPT_FLOW_REMOVED, OFPT_PORT_STATUS). + * Slave controllers do not receive OFPT_PACKET_IN or OFPT_FLOW_REMOVED + * messages, but they do receive OFPT_PORT_STATUS messages. */ struct nx_role_request { struct nicira_header nxh; @@ -230,6 +230,7 @@ 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 */ }; /* Header for Nicira-defined actions. */ @@ -442,6 +443,24 @@ struct nx_action_reg_load { }; OFP_ASSERT(sizeof(struct nx_action_reg_load) == 24); +/* Action structure for NXAST_NOTE. + * + * This action has no effect. It is variable length. The switch does not + * attempt to interpret the user-defined 'note' data in any way. A controller + * can use this action to attach arbitrary metadata to a flow. + * + * This action might go away in the future. + */ +struct nx_action_note { + uint16_t type; /* OFPAT_VENDOR. */ + uint16_t len; /* A multiple of 8, but at least 16. */ + uint32_t vendor; /* NX_VENDOR_ID. */ + uint16_t subtype; /* NXAST_NOTE. */ + uint8_t note[6]; /* Start of user-defined data. */ + /* Possibly followed by additional user-defined data. */ +}; +OFP_ASSERT(sizeof(struct nx_action_note) == 16); + /* Wildcard for tunnel ID. */ #define NXFW_TUN_ID (1 << 25) @@ -669,8 +688,12 @@ OFP_ASSERT(sizeof(struct nx_action_reg_load) == 24); * * Format: 48-bit Ethernet MAC address. * - * Masking: Not maskable. */ + * Masking: The nxm_mask patterns 01:00:00:00:00:00 and FE:FF:FF:FF:FF:FF must + * be supported for NXM_OF_ETH_DST_W (as well as the trivial patterns that + * are all-0-bits or all-1-bits). Support for other patterns and for masking + * of NXM_OF_ETH_SRC is optional. */ #define NXM_OF_ETH_DST NXM_HEADER (0x0000, 1, 6) +#define NXM_OF_ETH_DST_W NXM_HEADER_W(0x0000, 1, 6) #define NXM_OF_ETH_SRC NXM_HEADER (0x0000, 2, 6) /* Packet's Ethernet type.