[ovs-dev] [PATCH 10/16] classifier: New function cls_rule_to_string().

Ben Pfaff blp at nicira.com
Thu Feb 11 15:18:12 PST 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