2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-22 09:58:01 +00:00
ovs/include/openvswitch/ofp-queue.h
Ben Pfaff fe2c69f49c ofp-print: Move significant formatting code into more specific .c files.
Signed-off-by: Ben Pfaff <blp@ovn.org>
Acked-by: Justin Pettit <jpettit@ovn.org>
2018-06-18 15:25:44 -07:00

105 lines
3.6 KiB
C

/*
* Copyright (c) 2008-2017 Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef OPENVSWITCH_OFP_QUEUE_H
#define OPENVSWITCH_OFP_QUEUE_H 1
#include "openflow/openflow.h"
struct ds;
struct ofpbuf;
struct ofputil_port_map;
struct ovs_list;
#ifdef __cplusplus
extern "C" {
#endif
/* Queue configuration reply. */
struct ofputil_queue_config {
ofp_port_t port;
uint32_t queue;
/* Each of these optional values is expressed in tenths of a percent.
* Values greater than 1000 indicate that the feature is disabled.
* UINT16_MAX indicates that the value is omitted. */
uint16_t min_rate;
uint16_t max_rate;
};
void ofputil_start_queue_get_config_reply(const struct ofp_header *request,
struct ovs_list *replies);
void ofputil_append_queue_get_config_reply(
const struct ofputil_queue_config *, struct ovs_list *replies);
int ofputil_pull_queue_get_config_reply(struct ofpbuf *reply,
struct ofputil_queue_config *);
enum ofperr ofputil_queue_get_config_reply_format(
struct ds *, const struct ofp_header *, const struct ofputil_port_map *);
struct ofputil_queue_stats_request {
ofp_port_t port_no; /* OFPP_ANY means "all ports". */
uint32_t queue_id;
};
enum ofperr ofputil_decode_queue_stats_request(
const struct ofp_header *, struct ofputil_queue_stats_request *);
struct ofpbuf *ofputil_encode_queue_stats_request(
enum ofp_version, const struct ofputil_queue_stats_request *);
enum ofperr ofputil_queue_stats_request_format(
struct ds *, const struct ofp_header *,
const struct ofputil_port_map *);
struct ofputil_queue_stats {
ofp_port_t port_no;
uint32_t queue_id;
/* Values of unsupported statistics are set to all-1-bits (UINT64_MAX). */
uint64_t tx_bytes;
uint64_t tx_packets;
uint64_t tx_errors;
/* UINT32_MAX if unknown. */
uint32_t duration_sec;
uint32_t duration_nsec;
};
size_t ofputil_count_queue_stats(const struct ofp_header *);
int ofputil_decode_queue_stats(struct ofputil_queue_stats *, struct ofpbuf *);
void ofputil_append_queue_stat(struct ovs_list *replies,
const struct ofputil_queue_stats *);
enum ofperr ofputil_queue_stats_reply_format(struct ds *,
const struct ofp_header *,
const struct ofputil_port_map *,
int verbosity);
/* Queue configuration request. */
struct ofpbuf *ofputil_encode_queue_get_config_request(enum ofp_version,
ofp_port_t port,
uint32_t queue);
enum ofperr ofputil_decode_queue_get_config_request(const struct ofp_header *,
ofp_port_t *port,
uint32_t *queue);
enum ofperr ofputil_queue_get_config_request_format(
struct ds *, const struct ofp_header *,
const struct ofputil_port_map *);
#ifdef __cplusplus
}
#endif
#endif /* ofp-queue.h */