mirror of
https://github.com/openvswitch/ovs
synced 2025-08-22 09:58:01 +00:00
105 lines
3.6 KiB
C
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 */
|