* types. */
enum ofp10_type {
/* Controller command messages. */
- OFPT10_PACKET_OUT = 13, /* Controller/switch message */
- OFPT10_FLOW_MOD, /* Controller/switch message */
- OFPT10_PORT_MOD, /* Controller/switch message */
+ OFPT10_PORT_MOD = 15, /* Controller/switch message */
/* Statistics messages. */
OFPT10_STATS_REQUEST, /* Controller/switch message */
* When the 'port' is the OFPP_CONTROLLER, 'max_len' indicates the max
* number of bytes to send. A 'max_len' of zero means no bytes of the
* packet should be sent. */
-struct ofp_action_output {
+struct ofp10_action_output {
ovs_be16 type; /* OFPAT10_OUTPUT. */
ovs_be16 len; /* Length is 8. */
ovs_be16 port; /* Output port. */
ovs_be16 max_len; /* Max length to send to controller. */
};
-OFP_ASSERT(sizeof(struct ofp_action_output) == 8);
-
-/* The VLAN id is 12 bits, so we can use the entire 16 bits to indicate
- * special conditions. All ones is used to match that no VLAN id was
- * set. */
-#define OFP_VLAN_NONE 0xffff
-
-/* Action structure for OFPAT10_SET_VLAN_VID. */
-struct ofp_action_vlan_vid {
- ovs_be16 type; /* OFPAT10_SET_VLAN_VID. */
- ovs_be16 len; /* Length is 8. */
- ovs_be16 vlan_vid; /* VLAN id. */
- uint8_t pad[2];
-};
-OFP_ASSERT(sizeof(struct ofp_action_vlan_vid) == 8);
-
-/* Action structure for OFPAT10_SET_VLAN_PCP. */
-struct ofp_action_vlan_pcp {
- ovs_be16 type; /* OFPAT10_SET_VLAN_PCP. */
- ovs_be16 len; /* Length is 8. */
- uint8_t vlan_pcp; /* VLAN priority. */
- uint8_t pad[3];
-};
-OFP_ASSERT(sizeof(struct ofp_action_vlan_pcp) == 8);
-
-/* Action structure for OFPAT10_SET_DL_SRC/DST. */
-struct ofp_action_dl_addr {
- ovs_be16 type; /* OFPAT10_SET_DL_SRC/DST. */
- ovs_be16 len; /* Length is 16. */
- uint8_t dl_addr[OFP_ETH_ALEN]; /* Ethernet address. */
- uint8_t pad[6];
-};
-OFP_ASSERT(sizeof(struct ofp_action_dl_addr) == 16);
-
-/* Action structure for OFPAT10_SET_NW_SRC/DST. */
-struct ofp_action_nw_addr {
- ovs_be16 type; /* OFPAT10_SET_TW_SRC/DST. */
- ovs_be16 len; /* Length is 8. */
- ovs_be32 nw_addr; /* IP address. */
-};
-OFP_ASSERT(sizeof(struct ofp_action_nw_addr) == 8);
-
-/* Action structure for OFPAT10_SET_NW_TOS. */
-struct ofp_action_nw_tos {
- ovs_be16 type; /* OFPAT10_SET_TW_TOS. */
- ovs_be16 len; /* Length is 8. */
- uint8_t nw_tos; /* DSCP in high 6 bits, rest ignored. */
- uint8_t pad[3];
-};
-OFP_ASSERT(sizeof(struct ofp_action_nw_tos) == 8);
-
-/* Action structure for OFPAT10_SET_TP_SRC/DST. */
-struct ofp_action_tp_port {
- ovs_be16 type; /* OFPAT10_SET_TP_SRC/DST. */
- ovs_be16 len; /* Length is 8. */
- ovs_be16 tp_port; /* TCP/UDP port. */
- uint8_t pad[2];
-};
-OFP_ASSERT(sizeof(struct ofp_action_tp_port) == 8);
+OFP_ASSERT(sizeof(struct ofp10_action_output) == 8);
/* Action header for OFPAT10_VENDOR. The rest of the body is vendor-defined. */
struct ofp_action_vendor_header {
ovs_be16 type;
struct ofp_action_header header;
struct ofp_action_vendor_header vendor;
- struct ofp_action_output output;
+ struct ofp10_action_output output10;
struct ofp_action_vlan_vid vlan_vid;
struct ofp_action_vlan_pcp vlan_pcp;
struct ofp_action_nw_addr nw_addr;
/* The VLAN id is 12-bits, so we can use the entire 16 bits to indicate
* special conditions. All ones indicates that no VLAN id was set.
*/
-#define OFP_VLAN_NONE 0xffff
+#define OFP10_VLAN_NONE 0xffff
/* Fields to match against flows */
struct ofp10_match {