2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-25 15:07:05 +00:00

openflow: Implement OF1.4+ OFPMP_QUEUE_DESC multipart message.

OpenFlow 1.0 through 1.3 have a message OFPT_QUEUE_GET_CONFIG_REQUEST and
its corresponding reply, for fetching a description of the queues
configured on a given port.  OpenFlow 1.4 changes this message to a
multipart message OFPMP_QUEUE_DESC, which Open vSwitch has not until now
implemented.  This commit adds an implemntation of that message.  Because
the message is a replacement for the former one, this commit implements it
using the same ofp-util functions as the former message, so that the client
code doesn't have to distinguish a difference between versions.

The ovs-ofctl command queue-get-config was previously undocumented (due
only to an oversight).  This commit corrects that and documents the new
feature available with OpenFlow 1.4.

Signed-off-by: Ben Pfaff <blp@ovn.org>
Acked-by: Jarno Rajahalme <jarno@ovn.org>
This commit is contained in:
Ben Pfaff
2016-01-18 16:00:05 -08:00
parent 2b4c9d85e6
commit e016fb630d
13 changed files with 451 additions and 187 deletions

View File

@@ -219,6 +219,31 @@ struct ofp14_queue_stats {
OFP_ASSERT(sizeof(struct ofp14_queue_stats) == 48);
/* ## ---------------- ## */
/* ## ofp14_queue_desc ## */
/* ## ---------------- ## */
struct ofp14_queue_desc_request {
ovs_be32 port; /* All ports if OFPP_ANY. */
ovs_be32 queue; /* All queues if OFPQ_ALL. */
};
OFP_ASSERT(sizeof(struct ofp14_queue_desc_request) == 8);
/* Body of reply to OFPMP_QUEUE_DESC request. */
struct ofp14_queue_desc {
ovs_be32 port_no; /* Port this queue is attached to. */
ovs_be32 queue_id; /* ID for the specific queue. */
ovs_be16 len; /* Length in bytes of this queue desc. */
uint8_t pad[6]; /* 64-bit alignment. */
};
OFP_ASSERT(sizeof(struct ofp14_queue_desc) == 16);
enum ofp14_queue_desc_prop_type {
OFPQDPT14_MIN_RATE = 1,
OFPQDPT14_MAX_RATE = 2,
OFPQDPT14_EXPERIMENTER = 0xffff
};
/* ## -------------- ## */
/* ## Miscellaneous. ## */
/* ## -------------- ## */