From df63a1422cab1cc28dc8b9ad9d254c41b57eea22 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Wed, 27 Jan 2016 15:50:00 -0800 Subject: [PATCH] ofp-msgs: Move most OpenFlow header definitions here. This code was the only user for OpenFlow header definitions other than struct ofp_header itself. Signed-off-by: Ben Pfaff Acked-by: Jarno Rajahalme --- include/openflow/nicira-ext.h | 9 -------- include/openflow/openflow-1.0.h | 20 ----------------- include/openflow/openflow-1.1.h | 11 +--------- lib/ofp-msgs.c | 39 +++++++++++++++++++++++++++++++++ 4 files changed, 40 insertions(+), 39 deletions(-) diff --git a/include/openflow/nicira-ext.h b/include/openflow/nicira-ext.h index fdee33032..a209e6abe 100644 --- a/include/openflow/nicira-ext.h +++ b/include/openflow/nicira-ext.h @@ -68,15 +68,6 @@ struct nx_vendor_error { /* Nicira vendor requests and replies. */ -/* Header for Nicira vendor stats request and reply messages in OpenFlow - * 1.0. */ -struct nicira10_stats_msg { - struct ofp10_vendor_stats_msg vsm; /* Vendor NX_VENDOR_ID. */ - ovs_be32 subtype; /* One of NXST_* below. */ - uint8_t pad[4]; /* Align to 64-bits. */ -}; -OFP_ASSERT(sizeof(struct nicira10_stats_msg) == 24); - /* Fields to use when hashing flows. */ enum nx_hash_fields { /* Ethernet source address (NXM_OF_ETH_SRC) only. */ diff --git a/include/openflow/openflow-1.0.h b/include/openflow/openflow-1.0.h index db629f77c..68c79526e 100644 --- a/include/openflow/openflow-1.0.h +++ b/include/openflow/openflow-1.0.h @@ -331,15 +331,6 @@ struct ofp10_flow_removed { }; OFP_ASSERT(sizeof(struct ofp10_flow_removed) == 80); -/* Statistics request or reply message. */ -struct ofp10_stats_msg { - struct ofp_header header; - ovs_be16 type; /* One of the OFPST_* constants. */ - ovs_be16 flags; /* Requests: always 0. - * Replies: 0 or OFPSF_REPLY_MORE. */ -}; -OFP_ASSERT(sizeof(struct ofp10_stats_msg) == 12); - /* Stats request of type OFPST_AGGREGATE or OFPST_FLOW. */ struct ofp10_flow_stats_request { struct ofp10_match match; /* Fields to match. */ @@ -444,15 +435,4 @@ struct ofp10_queue_stats { }; OFP_ASSERT(sizeof(struct ofp10_queue_stats) == 32); -/* Vendor extension stats message. */ -struct ofp10_vendor_stats_msg { - struct ofp10_stats_msg osm; /* Type OFPST_VENDOR. */ - ovs_be32 vendor; /* Vendor ID: - * - MSB 0: low-order bytes are IEEE OUI. - * - MSB != 0: defined by OpenFlow - * consortium. */ - /* Followed by vendor-defined arbitrary additional data. */ -}; -OFP_ASSERT(sizeof(struct ofp10_vendor_stats_msg) == 16); - #endif /* openflow/openflow-1.0.h */ diff --git a/include/openflow/openflow-1.1.h b/include/openflow/openflow-1.1.h index 63d8b4190..805f222ce 100644 --- a/include/openflow/openflow-1.1.h +++ b/include/openflow/openflow-1.1.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2008, 2011, 2012, 2013, 2014 The Board of Trustees of The Leland Stanford +/* Copyright (c) 2008, 2011, 2012, 2013, 2014, 2016 The Board of Trustees of The Leland Stanford * Junior University * * We are making the OpenFlow specification and associated documentation @@ -382,15 +382,6 @@ struct ofp11_queue_get_config_reply { }; OFP_ASSERT(sizeof(struct ofp11_queue_get_config_reply) == 8); -struct ofp11_stats_msg { - struct ofp_header header; - ovs_be16 type; /* One of the OFPST_* constants. */ - ovs_be16 flags; /* OFPSF_REQ_* flags (none yet defined). */ - uint8_t pad[4]; - /* Followed by the body of the request. */ -}; -OFP_ASSERT(sizeof(struct ofp11_stats_msg) == 16); - /* Stats request of type OFPST_FLOW. */ struct ofp11_flow_stats_request { uint8_t table_id; /* ID of table to read (from ofp_table_stats), diff --git a/lib/ofp-msgs.c b/lib/ofp-msgs.c index fcfbb50f1..bc38f401b 100644 --- a/lib/ofp-msgs.c +++ b/lib/ofp-msgs.c @@ -52,6 +52,35 @@ struct ofp_vendor_header { }; OFP_ASSERT(sizeof(struct ofp_vendor_header) == 16); +/* Statistics request or reply message. */ +struct ofp10_stats_msg { + struct ofp_header header; + ovs_be16 type; /* One of the OFPST_* constants. */ + ovs_be16 flags; /* Requests: always 0. + * Replies: 0 or OFPSF_REPLY_MORE. */ +}; +OFP_ASSERT(sizeof(struct ofp10_stats_msg) == 12); + +/* Vendor extension stats message. */ +struct ofp10_vendor_stats_msg { + struct ofp10_stats_msg osm; /* Type OFPST_VENDOR. */ + ovs_be32 vendor; /* Vendor ID: + * - MSB 0: low-order bytes are IEEE OUI. + * - MSB != 0: defined by OpenFlow + * consortium. */ + /* Followed by vendor-defined arbitrary additional data. */ +}; +OFP_ASSERT(sizeof(struct ofp10_vendor_stats_msg) == 16); + +struct ofp11_stats_msg { + struct ofp_header header; + ovs_be16 type; /* One of the OFPST_* constants. */ + ovs_be16 flags; /* OFPSF_REQ_* flags (none yet defined). */ + uint8_t pad[4]; + /* Followed by the body of the request. */ +}; +OFP_ASSERT(sizeof(struct ofp11_stats_msg) == 16); + /* Vendor extension stats message. */ struct ofp11_vendor_stats_msg { struct ofp11_stats_msg osm; /* Type OFPST_VENDOR. */ @@ -68,6 +97,16 @@ struct ofp11_vendor_stats_msg { /* Followed by vendor-defined additional data. */ }; OFP_ASSERT(sizeof(struct ofp11_vendor_stats_msg) == 24); + +/* Header for Nicira vendor stats request and reply messages in OpenFlow + * 1.0. */ +struct nicira10_stats_msg { + struct ofp10_vendor_stats_msg vsm; /* Vendor NX_VENDOR_ID. */ + ovs_be32 subtype; /* One of NXST_* below. */ + uint8_t pad[4]; /* Align to 64-bits. */ +}; +OFP_ASSERT(sizeof(struct nicira10_stats_msg) == 24); + /* A thin abstraction of OpenFlow headers: * * - 'version' and 'type' come straight from struct ofp_header, so these are -- 2.20.1