Thanks, I applied these patches.

On Mon, Dec 02, 2013 at 10:16:28AM -0800, Alex Wang wrote:
> LGTM, thx
> 
> 
> On Sat, Nov 2, 2013 at 10:02 PM, Ben Pfaff <b...@nicira.com> wrote:
> 
> > Signed-off-by: Ben Pfaff <b...@nicira.com>
> > ---
> >  tests/ovsdb-server.at |   85
> > +++++++++++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 85 insertions(+)
> >
> > diff --git a/tests/ovsdb-server.at b/tests/ovsdb-server.at
> > index 444ab96..b05401f 100644
> > --- a/tests/ovsdb-server.at
> > +++ b/tests/ovsdb-server.at
> > @@ -38,6 +38,8 @@ cat stdout >> output
> >
> >  EXECUTION_EXAMPLES
> >
> > +AT_BANNER([ovsdb-server miscellaneous features])
> > +
> >  AT_SETUP([truncating corrupted database log])
> >  AT_KEYWORDS([ovsdb server positive unix])
> >  OVS_RUNDIR=`pwd`; export OVS_RUNDIR
> > @@ -662,6 +664,89 @@ _uuid                                name  number
> >  ], [], [test ! -e pid || kill `cat pid`])
> >  OVSDB_SERVER_SHUTDOWN
> >  AT_CLEANUP
> > +
> > +AT_SETUP([ovsdb-server connection queue limits])
> > +OVS_LOGDIR=`pwd`; export OVS_LOGDIR
> > +OVS_RUNDIR=`pwd`; export OVS_RUNDIR
> > +ON_EXIT([kill `cat *.pid`])
> > +
> > +# The maximum socket receive buffer size is important for this test, which
> > +# tests behavior when the receive buffer overflows.
> > +if test -e /proc/sys/net/core/rmem_max; then
> > +    # Linux
> > +    rmem_max=`cat /proc/sys/net/core/rmem_max`
> > +elif rmem_max=`sysctl -n net.inet.tcp.recvbuf_max 2>/dev/null`; then
> > +    : # FreeBSD
> > +else
> > +    # Don't know how to get maximum socket receive buffer on this OS
> > +    AT_SKIP_IF([:])
> > +fi
> > +# Calculate the total amount of data we need to queue: rmem_max in the
> > +# kernel plus 1024 kB in jsonrpc-server sending userspace (see default
> > +# backlog_threshold in ovsdb_jsonrpc_session_create() in
> > +# jsonrpc-server.c).
> > +queue_size=`expr $rmem_max + 1024 \* 1024`
> > +echo rmem_max=$rmem_max queue_size=$queue_size
> > +
> > +# Each flow update message takes up at least 48 bytes of space in queues
> > +# and in practice more than that.
> > +n_msgs=`expr $queue_size / 48`
> > +echo n_msgs=$n_msgs
> > +
> > +# Start an ovsdb-server with the vswitchd schema.
> > +OVSDB_INIT([db])
> > +AT_CHECK([ovsdb-server --detach --no-chdir --pidfile --log-file
> > --remote=punix:socket db],
> > +  [0], [ignore], [ignore])
> > +
> > +# Executes a pair of transactions that add a bridge with 100 ports,
> > +# and then deletes that bridge.  Each of these transactions yields
> > +# a monitor update about 25 kB in size.
> > +trigger_big_update () {
> > +    ovs-vsctl --db=unix:socket --no-wait -- add-br br0 $add
> > +    ovs-vsctl --db=unix:socket --no-wait -- del-br br0
> > +}
> > +add_ports () {
> > +    for j in `seq 1 100`; do
> > +        printf " -- add-port br0 p%d" $j
> > +    done
> > +}
> > +add=`add_ports`
> > +
> > +AT_CAPTURE_FILE([ovsdb-client.out])
> > +AT_CAPTURE_FILE([ovsdb-client.err])
> > +
> > +# Start an ovsdb-client monitoring all changes to the database,
> > +# make it block to force the buffers to fill up, and then execute
> > +# enough transactions that ovsdb-server disconnects it.
> > +AT_CHECK([ovsdb-client --detach --no-chdir --pidfile monitor unix:socket
> > ALL >ovsdb-client.out 2>ovsdb-client.err])
> > +AT_CHECK([ovs-appctl -t ovsdb-client ovsdb-client/block])
> > +for i in `seq 1 100`; do
> > +    echo "blocked update ($i of 100)"
> > +    trigger_big_update
> > +done
> > +AT_CHECK([ovs-appctl -t ovsdb-client ovsdb-client/unblock])
> > +
> > +# Make sure that ovsdb-server disconnected the client and
> > +# that the client exited as a result.
> > +if grep "bytes backlogged but a complete replica would only take [[0-9]]*
> > bytes, disconnecting" ovsdb-server.log; then
> > +    :
> > +else
> > +    AT_FAIL_IF([:])
> > +fi
> > +OVS_WAIT_WHILE([test -e ovsdb-client.pid])
> > +
> > +# Start an ovsdb-client monitoring all changes to the database,
> > +# without making it block, and then execute the same transactions that
> > +# we did before.  This time the client should not get disconnected.
> > +AT_CHECK([ovsdb-client --detach --no-chdir --pidfile monitor unix:socket
> > ALL >ovsdb-client.out 2>ovsdb-client.err])
> > +for i in `seq 1 100`; do
> > +    echo "unblocked update ($i of 100)"
> > +    trigger_big_update
> > +
> > +    # Make sure that ovsdb-client gets enough CPU time to process the
> > updates.
> > +    ovs-appctl -t ovsdb-client version > /dev/null
> > +done
> > +AT_CLEANUP
> >
> >  AT_BANNER([OVSDB -- ovsdb-server transactions (SSL sockets)])
> >
> > --
> > 1.7.10.4
> >
> > _______________________________________________
> > dev mailing list
> > dev@openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
> >
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to