[ovs-dev] [PATCH 3/3] ofproto-dpif: Hide struct dpif_backer.
Ethan Jackson
ethan at nicira.com
Wed Jun 12 21:31:18 UTC 2013
This patch removes the last reference to dpif_backer from
ofproto-dpif-xlate, and moves it's definition into ofproto-dpif.c
Signed-off-by: Ethan Jackson <ethan at nicira.com>
---
ofproto/ofproto-dpif-xlate.c | 7 +++---
ofproto/ofproto-dpif.c | 54 ++++++++++++++++++++++++++++++++++++++++++
ofproto/ofproto-dpif.h | 49 ++------------------------------------
3 files changed, 59 insertions(+), 51 deletions(-)
diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
index 500712b..d41a4b6 100644
--- a/ofproto/ofproto-dpif-xlate.c
+++ b/ofproto/ofproto-dpif-xlate.c
@@ -1279,8 +1279,7 @@ xlate_enqueue_action(struct xlate_ctx *ctx,
int error;
/* Translate queue to priority. */
- error = dpif_queue_to_priority(ctx->ofproto->backer->dpif,
- queue_id, &priority);
+ error = ofproto_dpif_queue_to_priority(ctx->ofproto, queue_id, &priority);
if (error) {
/* Fall back to ordinary output action. */
xlate_output_action(ctx, enqueue->port, 0, false);
@@ -1313,8 +1312,8 @@ xlate_set_queue_action(struct xlate_ctx *ctx, uint32_t queue_id)
{
uint32_t skb_priority;
- if (!dpif_queue_to_priority(ctx->ofproto->backer->dpif,
- queue_id, &skb_priority)) {
+ if (!ofproto_dpif_queue_to_priority(ctx->ofproto, queue_id,
+ &skb_priority)) {
ctx->xin->flow.skb_priority = skb_priority;
} else {
/* Couldn't translate queue to a priority. Nothing to do. A warning
diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
index a51b60d..46fec41 100644
--- a/ofproto/ofproto-dpif.c
+++ b/ofproto/ofproto-dpif.c
@@ -313,6 +313,53 @@ struct drop_key {
size_t key_len;
};
+/* All datapaths of a given type share a single dpif backer instance. */
+struct dpif_backer {
+ char *type;
+ int refcount;
+ struct dpif *dpif;
+ struct timer next_expiration;
+ struct hmap odp_to_ofport_map; /* ODP port to ofport mapping. */
+
+ struct simap tnl_backers; /* Set of dpif ports backing tunnels. */
+
+ /* Facet revalidation flags applying to facets which use this backer. */
+ enum revalidate_reason need_revalidate; /* Revalidate every facet. */
+ struct tag_set revalidate_set; /* Revalidate only matching facets. */
+
+ struct hmap drop_keys; /* Set of dropped odp keys. */
+ bool recv_set_enable; /* Enables or disables receiving packets. */
+
+ struct hmap subfacets;
+ struct governor *governor;
+
+ /* Subfacet statistics.
+ *
+ * These keep track of the total number of subfacets added and deleted and
+ * flow life span. They are useful for computing the flow rates stats
+ * exposed via "ovs-appctl dpif/show". The goal is to learn about
+ * traffic patterns in ways that we can use later to improve Open vSwitch
+ * performance in new situations. */
+ long long int created; /* Time when it is created. */
+ unsigned max_n_subfacet; /* Maximum number of flows */
+ unsigned avg_n_subfacet; /* Average number of flows. */
+ long long int avg_subfacet_life; /* Average life span of subfacets. */
+
+ /* The average number of subfacets... */
+ struct avg_subfacet_rates hourly; /* ...over the last hour. */
+ struct avg_subfacet_rates daily; /* ...over the last day. */
+ struct avg_subfacet_rates lifetime; /* ...over the switch lifetime. */
+ long long int last_minute; /* Last time 'hourly' was updated. */
+
+ /* Number of subfacets added or deleted since 'last_minute'. */
+ unsigned subfacet_add_count;
+ unsigned subfacet_del_count;
+
+ /* Number of subfacets added or deleted from 'created' to 'last_minute.' */
+ unsigned long long int total_subfacet_add_count;
+ unsigned long long int total_subfacet_del_count;
+};
+
/* All existing ofproto_backer instances, indexed by ofproto->up.type. */
static struct shash all_dpif_backers = SHASH_INITIALIZER(&all_dpif_backers);
@@ -1881,6 +1928,13 @@ stp_process_packet(const struct ofport_dpif *ofport,
}
}
+int
+ofproto_dpif_queue_to_priority(const struct ofproto_dpif *ofproto,
+ uint32_t queue_id, uint32_t *priority)
+{
+ return dpif_queue_to_priority(ofproto->backer->dpif, queue_id, priority);
+}
+
struct priority_to_dscp *
get_priority(const struct ofport_dpif *ofport, uint32_t priority)
{
diff --git a/ofproto/ofproto-dpif.h b/ofproto/ofproto-dpif.h
index 0c3252c..38a4ec2 100644
--- a/ofproto/ofproto-dpif.h
+++ b/ofproto/ofproto-dpif.h
@@ -80,53 +80,6 @@ struct avg_subfacet_rates {
double del_rate; /* Moving average of flows deleted per minute. */
};
-/* All datapaths of a given type share a single dpif backer instance. */
-struct dpif_backer {
- char *type;
- int refcount;
- struct dpif *dpif;
- struct timer next_expiration;
- struct hmap odp_to_ofport_map; /* ODP port to ofport mapping. */
-
- struct simap tnl_backers; /* Set of dpif ports backing tunnels. */
-
- /* Facet revalidation flags applying to facets which use this backer. */
- enum revalidate_reason need_revalidate; /* Revalidate every facet. */
- struct tag_set revalidate_set; /* Revalidate only matching facets. */
-
- struct hmap drop_keys; /* Set of dropped odp keys. */
- bool recv_set_enable; /* Enables or disables receiving packets. */
-
- struct hmap subfacets;
- struct governor *governor;
-
- /* Subfacet statistics.
- *
- * These keep track of the total number of subfacets added and deleted and
- * flow life span. They are useful for computing the flow rates stats
- * exposed via "ovs-appctl dpif/show". The goal is to learn about
- * traffic patterns in ways that we can use later to improve Open vSwitch
- * performance in new situations. */
- long long int created; /* Time when it is created. */
- unsigned max_n_subfacet; /* Maximum number of flows */
- unsigned avg_n_subfacet; /* Average number of flows. */
- long long int avg_subfacet_life; /* Average life span of subfacets. */
-
- /* The average number of subfacets... */
- struct avg_subfacet_rates hourly; /* ...over the last hour. */
- struct avg_subfacet_rates daily; /* ...over the last day. */
- struct avg_subfacet_rates lifetime; /* ...over the switch lifetime. */
- long long int last_minute; /* Last time 'hourly' was updated. */
-
- /* Number of subfacets added or deleted since 'last_minute'. */
- unsigned subfacet_add_count;
- unsigned subfacet_del_count;
-
- /* Number of subfacets added or deleted from 'created' to 'last_minute.' */
- unsigned long long int total_subfacet_add_count;
- unsigned long long int total_subfacet_del_count;
-};
-
/* Extra information about a classifier table.
* Currently used just for optimized flow revalidation. */
struct table_dpif {
@@ -346,6 +299,8 @@ uint16_t vsp_realdev_to_vlandev(const struct ofproto_dpif *,
struct priority_to_dscp *get_priority(const struct ofport_dpif *,
uint32_t priority);
+int ofproto_dpif_queue_to_priority(const struct ofproto_dpif *,
+ uint32_t queue_id, uint32_t *priority);
#endif /* ofproto-dpif.h */
--
1.7.9.5
More information about the dev
mailing list