Acked-by: Alex Wang <al...@nicira.com> Ethan,
Could you have a look of this patch? Do you think get_vport_type() is the right place? Thanks, Alex Wang, On Tue, Feb 18, 2014 at 2:26 PM, Joe Stringer <joestrin...@nicira.com>wrote: > When creating tap ports in dpif-linux, the "tap" type is treated the > same as "system", and the type is discarded. When dumping datapath > port types, this would cause "tap" type to be reported as a "system" > type. > > Each time we see a port of the wrong type in bridge_reconfigure(), we > remove it and add a port with the correct configuration. This would > always occur for tap ports, causing deletion and re-creation of all tap > ports each time the bridge was reconfigured. > > This patch makes dpif-linux use netdev to look up port types if the > datapath reports that they are of type OVS_VPORT_TYPE_NETDEV. > > Bug #1196289. > > Reported-by: James Schmidt <jschm...@vmware.com> > Signed-off-by: Joe Stringer <joestrin...@nicira.com> > --- > v2: Fix the issue in dpif-linux instead of ofproto-dpif. > --- > lib/dpif-linux.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/lib/dpif-linux.c b/lib/dpif-linux.c > index f7f5292..18de118 100644 > --- a/lib/dpif-linux.c > +++ b/lib/dpif-linux.c > @@ -439,8 +439,11 @@ get_vport_type(const struct dpif_linux_vport *vport) > static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 20); > > switch (vport->type) { > - case OVS_VPORT_TYPE_NETDEV: > - return "system"; > + case OVS_VPORT_TYPE_NETDEV: { > + const char *type = netdev_get_type_from_name(vport->name); > + > + return type ? type : "system"; > + } > > case OVS_VPORT_TYPE_INTERNAL: > return "internal"; > -- > 1.7.9.5 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev >
_______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev