[ovs-dev] [PATCH 10/16] classifier: New function cls_rule_to_string().
Ben Pfaff
blp at nicira.com
Thu Feb 11 23:18:12 UTC 2010
This may be useful for debugging.
>From Jean Tourrilhes <jt at hpl.hp.com>.
---
lib/classifier.c | 15 ++++++++++++++-
lib/classifier.h | 1 +
2 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/lib/classifier.c b/lib/classifier.c
index 94c8380..748e0df 100644
--- a/lib/classifier.c
+++ b/lib/classifier.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009 Nicira Networks.
+ * Copyright (c) 2009, 2010 Nicira Networks.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
#include <assert.h>
#include <errno.h>
#include <netinet/in.h>
+#include "dynamic-string.h"
#include "flow.h"
#include "hash.h"
@@ -75,6 +76,18 @@ cls_rule_from_match(struct cls_rule *rule, const struct ofp_match *match,
rule->table_idx = table_idx_from_wildcards(rule->wc.wildcards);
}
+/* Converts 'rule' to a string and returns the string. The caller must free
+ * the string (with free()). */
+char *
+cls_rule_to_string(const struct cls_rule *rule)
+{
+ struct ds s = DS_EMPTY_INITIALIZER;
+ ds_put_format(&s, "wildcards=%x priority=%u ",
+ rule->wc.wildcards, rule->priority);
+ flow_format(&s, &rule->flow);
+ return ds_cstr(&s);
+}
+
/* Prints cls_rule 'rule', for debugging.
*
* (The output could be improved and expanded, but this was good enough to
diff --git a/lib/classifier.h b/lib/classifier.h
index 194b04e..14fd707 100644
--- a/lib/classifier.h
+++ b/lib/classifier.h
@@ -123,6 +123,7 @@ void cls_rule_from_flow(struct cls_rule *, const flow_t *, uint32_t wildcards,
unsigned int priority);
void cls_rule_from_match(struct cls_rule *, const struct ofp_match *,
unsigned int priority);
+char *cls_rule_to_string(const struct cls_rule *);
void cls_rule_print(const struct cls_rule *);
void cls_rule_moved(struct classifier *,
struct cls_rule *old, struct cls_rule *new);
--
1.6.6.1
More information about the dev
mailing list