You need a Signed-off-by.  Otherwise looks good.

Ethan

On Thu, Dec 15, 2011 at 11:49, Ben Pfaff <b...@nicira.com> wrote:
> On Thu, Dec 15, 2011 at 09:35:14AM -0800, Ben Pfaff wrote:
>> I think I'm going to try to write some unit tests for this before I
>> push it.
>
> I wrote some, but the unit test revealed a bug in the "dummy" dpif.
> Please review this, and then I'll push both patches:
>
> --8<--------------------------cut here-------------------------->8--
>
> From: Ben Pfaff <b...@nicira.com>
> Date: Thu, 15 Dec 2011 11:45:08 -0800
> Subject: [PATCH] dpif-netdev: Correctly report types of dummy netdevs.
>
> When dpif-netdev is in use as a "dummy" datapath, the devices that are
> added to it have type "dummy", but the dpif methods that report the types
> of ports reported that they had type "system".  This meant that every time
> the bridge code reconfigured, it would see that the ports had the wrong
> types and delete and re-add them, which had other undesirable effects such
> as flushing the entire MAC learning table whenever ovs-vsctl changed the
> configuration.
> ---
>  lib/dpif-netdev.c |    6 ++++--
>  1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
> index eb10134..2c416e3 100644
> --- a/lib/dpif-netdev.c
> +++ b/lib/dpif-netdev.c
> @@ -458,7 +458,8 @@ answer_port_query(const struct dp_netdev_port *port,
>                   struct dpif_port *dpif_port)
>  {
>     dpif_port->name = xstrdup(netdev_get_name(port->netdev));
> -    dpif_port->type = xstrdup(port->internal ? "internal" : "system");
> +    dpif_port->type = xstrdup(port->internal ? "internal"
> +                              : netdev_get_type(port->netdev));
>     dpif_port->port_no = port->port_no;
>  }
>
> @@ -550,7 +551,8 @@ dpif_netdev_port_dump_next(const struct dpif *dpif, void 
> *state_,
>             free(state->name);
>             state->name = xstrdup(netdev_get_name(port->netdev));
>             dpif_port->name = state->name;
> -            dpif_port->type = port->internal ? "internal" : "system";
> +            dpif_port->type = (char *) (port->internal ? "internal"
> +                                        : netdev_get_type(port->netdev));
>             dpif_port->port_no = port->port_no;
>             state->port_no = port_no + 1;
>             return 0;
> --
> 1.7.4.4
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to