Looks Good. Ethan
On Thu, Jul 14, 2011 at 14:27, Ben Pfaff <[email protected]> wrote: > Inbound managers (e.g. "ptcp:") can have multiple active connections, but > the database schema doesn't allow us to report the status of more than one > at a time. This commit adds a status key-value pair that, when there is > more than one active connection, reports the number that are active. This > at least helps to clarify the issue. > --- > ovsdb/jsonrpc-server.c | 2 ++ > ovsdb/jsonrpc-server.h | 1 + > ovsdb/ovsdb-server.c | 4 ++++ > vswitchd/vswitch.xml | 17 +++++++++++++++++ > 4 files changed, 24 insertions(+), 0 deletions(-) > > diff --git a/ovsdb/jsonrpc-server.c b/ovsdb/jsonrpc-server.c > index 9f40a1a..ba08e3b 100644 > --- a/ovsdb/jsonrpc-server.c > +++ b/ovsdb/jsonrpc-server.c > @@ -467,6 +467,8 @@ ovsdb_jsonrpc_session_get_status(const struct > ovsdb_jsonrpc_remote *remote, > status->sec_since_disconnect = rstats.msec_since_disconnect == UINT_MAX > ? UINT_MAX : rstats.msec_since_disconnect / 1000; > > + status->n_connections = list_size(&remote->sessions); > + > return true; > } > > diff --git a/ovsdb/jsonrpc-server.h b/ovsdb/jsonrpc-server.h > index 1d612cd..1650448 100644 > --- a/ovsdb/jsonrpc-server.h > +++ b/ovsdb/jsonrpc-server.h > @@ -41,6 +41,7 @@ struct ovsdb_jsonrpc_remote_status { > unsigned int sec_since_connect; > unsigned int sec_since_disconnect; > bool is_connected; > + int n_connections; > }; > bool ovsdb_jsonrpc_server_get_remote_status( > const struct ovsdb_jsonrpc_server *, const char *target, > diff --git a/ovsdb/ovsdb-server.c b/ovsdb/ovsdb-server.c > index 2d6a397..8b93d49 100644 > --- a/ovsdb/ovsdb-server.c > +++ b/ovsdb/ovsdb-server.c > @@ -498,6 +498,10 @@ update_remote_row(const struct ovsdb_row *row, struct > ovsdb_txn *txn, > values[n++] = > xstrdup(ovs_retval_to_string(status.last_error)); > } > + if (status.n_connections > 1) { > + keys[n] = xstrdup("n_connections"); > + values[n++] = xasprintf("%d", status.n_connections); > + } > write_string_string_column(rw_row, "status", keys, values, n); > } > > diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml > index 6199938..db4041a 100644 > --- a/vswitchd/vswitch.xml > +++ b/vswitchd/vswitch.xml > @@ -2160,6 +2160,23 @@ > database (in seconds). Value is empty if manager has never > disconnected.</dd> > </dl> > + <dl> > + <dt><code>n_connections</code></dt> > + <dd> > + <p> > + When <ref column="target"/> specifies a connection method that > + listens for inbound connections (e.g. <code>ptcp:</code> or > + <code>pssl:</code>) and more than one connection is actually > + active, the value is the number of active connections. > + Otherwise, this key-value pair is omitted. > + </p> > + <p> > + When multiple connections are active, status columns and > + key-value pairs (other than this one) report the status of one > + arbitrarily chosen connection. > + </p> > + </dd> > + </dl> > </column> > </group> > </table> > -- > 1.7.4.4 > > _______________________________________________ > dev mailing list > [email protected] > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
