ovs-vswitch: Make OpenFlow "dp_desc" configurable.
authorBen Pfaff <blp@nicira.com>
Wed, 26 Dec 2012 23:00:06 +0000 (15:00 -0800)
committerBen Pfaff <blp@nicira.com>
Wed, 26 Dec 2012 23:03:22 +0000 (15:03 -0800)
Signed-off-by: Felician Nemeth <nemethf@tmit.bme.hu>
[blp@nicira.com refactored the code that this was based on and revised the
 patch accordingly]
Signed-off-by: Ben Pfaff <blp@nicira.com>
NEWS
ofproto/ofproto.c
ofproto/ofproto.h
vswitchd/bridge.c
vswitchd/vswitch.xml

diff --git a/NEWS b/NEWS
index 6afc417..2f8fbde 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,8 @@ post-v1.9.0
       http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-02).
     - New "vlog/disable-rate-limit" and "vlog/enable-rate-limit" commands
       available through ovs-appctl allow control over logging rate limits.
+    - The OpenFlow "dp_desc" may now be configured by setting the value of 
+      other-config:dp-desc in the Bridge table.
 
 
 v1.9.0 - xx xxx xxxx
index 939ad20..d8f696d 100644 (file)
@@ -597,6 +597,13 @@ ofproto_set_mac_table_config(struct ofproto *ofproto, unsigned idle_time,
     }
 }
 
+void
+ofproto_set_dp_desc(struct ofproto *p, const char *dp_desc)
+{
+    free(p->dp_desc);
+    p->dp_desc = dp_desc ? xstrdup(dp_desc) : NULL;
+}
+
 int
 ofproto_set_snoops(struct ofproto *ofproto, const struct sset *snoops)
 {
index cedb2cd..413472a 100644 (file)
@@ -225,6 +225,7 @@ void ofproto_set_flow_eviction_threshold(struct ofproto *, unsigned threshold);
 void ofproto_set_forward_bpdu(struct ofproto *, bool forward_bpdu);
 void ofproto_set_mac_table_config(struct ofproto *, unsigned idle_time,
                                   size_t max_entries);
+void ofproto_set_dp_desc(struct ofproto *, const char *dp_desc);
 int ofproto_set_snoops(struct ofproto *, const struct sset *snoops);
 int ofproto_set_netflow(struct ofproto *,
                         const struct netflow_options *nf_options);
index d23caf2..e58c3c4 100644 (file)
@@ -186,6 +186,7 @@ static void bridge_configure_mac_table(struct bridge *);
 static void bridge_configure_sflow(struct bridge *, int *sflow_bridge_number);
 static void bridge_configure_stp(struct bridge *);
 static void bridge_configure_tables(struct bridge *);
+static void bridge_configure_dp_desc(struct bridge *);
 static void bridge_configure_remotes(struct bridge *,
                                      const struct sockaddr_in *managers,
                                      size_t n_managers);
@@ -597,6 +598,7 @@ bridge_reconfigure_continue(const struct ovsrec_open_vswitch *ovs_cfg)
         bridge_configure_sflow(br, &sflow_bridge_number);
         bridge_configure_stp(br);
         bridge_configure_tables(br);
+        bridge_configure_dp_desc(br);
     }
     free(managers);
 
@@ -2901,6 +2903,13 @@ bridge_configure_tables(struct bridge *br)
                      br->cfg->key_flow_tables[j]);
     }
 }
+
+static void
+bridge_configure_dp_desc(struct bridge *br)
+{
+    ofproto_set_dp_desc(br->ofproto,
+                        smap_get(&br->cfg->other_config, "dp-desc"));
+}
 \f
 /* Port functions. */
 
index c78899f..64ad6c7 100644 (file)
         value.  May not be all-zero.
       </column>
 
+      <column name="other_config" key="dp-desc">
+        Human readable description of datapath.  It it a maximum 256
+        byte-long free-form string to describe the datapath for
+        debugging purposes, e.g. <code>switch3 in room 3120</code>.
+      </column>
+
       <column name="other_config" key="disable-in-band"
               type='{"type": "boolean"}'>
         If set to <code>true</code>, disable in-band control on the bridge