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

Reply via email to