[ovs-dev] [branch-2.1 1/2] upcall: Add appctl call to set flow_limit.
Joe Stringer
joestringer at nicira.com
Sat Jun 21 02:47:16 UTC 2014
I assume these two backported cleanly? Looks good, not sure if you want to
mention that it's a backport in the commit message.
Acked-by: Joe Stringer <joestringer at nicira.com>
On 20 June 2014 16:23, Alex Wang <alexw at nicira.com> wrote:
> From: Joe Stringer <joestringer at nicira.com>
>
> This should assist testing of datapath performance, as it allows us to
> skip "warming up" the flow limit value.
>
> Signed-off-by: Joe Stringer <joestringer at nicira.com>
> Signed-off-by: Ben Pfaff <blp at nicira.com>
> ---
> ofproto/ofproto-dpif-upcall.c | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c
> index 33033a4..15be818 100644
> --- a/ofproto/ofproto-dpif-upcall.c
> +++ b/ofproto/ofproto-dpif-upcall.c
> @@ -239,6 +239,8 @@ static void upcall_unixctl_disable_megaflows(struct
> unixctl_conn *, int argc,
> const char *argv[], void
> *aux);
> static void upcall_unixctl_enable_megaflows(struct unixctl_conn *, int
> argc,
> const char *argv[], void
> *aux);
> +static void upcall_unixctl_set_flow_limit(struct unixctl_conn *conn, int
> argc,
> + const char *argv[], void
> *aux);
> static void ukey_delete(struct revalidator *, struct udpif_key *);
>
> static atomic_bool enable_megaflows = ATOMIC_VAR_INIT(true);
> @@ -256,6 +258,8 @@ udpif_create(struct dpif_backer *backer, struct dpif
> *dpif)
> upcall_unixctl_disable_megaflows, NULL);
> unixctl_command_register("upcall/enable-megaflows", "", 0, 0,
> upcall_unixctl_enable_megaflows, NULL);
> + unixctl_command_register("upcall/set-flow-limit", "", 1, 1,
> + upcall_unixctl_set_flow_limit, NULL);
> ovsthread_once_done(&once);
> }
>
> @@ -1688,3 +1692,25 @@ upcall_unixctl_enable_megaflows(struct unixctl_conn
> *conn,
> udpif_flush();
> unixctl_command_reply(conn, "megaflows enabled");
> }
> +
> +/* Set the flow limit.
> + *
> + * This command is only needed for advanced debugging, so it's not
> + * documented in the man page. */
> +static void
> +upcall_unixctl_set_flow_limit(struct unixctl_conn *conn,
> + int argc OVS_UNUSED,
> + const char *argv[] OVS_UNUSED,
> + void *aux OVS_UNUSED)
> +{
> + struct ds ds = DS_EMPTY_INITIALIZER;
> + struct udpif *udpif;
> + unsigned int flow_limit = atoi(argv[1]);
> +
> + LIST_FOR_EACH (udpif, list_node, &all_udpifs) {
> + atomic_store(&udpif->flow_limit, flow_limit);
> + }
> + ds_put_format(&ds, "set flow_limit to %u\n", flow_limit);
> + unixctl_command_reply(conn, ds_cstr(&ds));
> + ds_destroy(&ds);
> +}
> --
> 1.7.9.5
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-dev/attachments/20140621/7fe8c4cf/attachment-0005.html>
More information about the dev
mailing list