mirror of
https://github.com/openvswitch/ovs
synced 2025-10-25 15:07:05 +00:00
dpif-netdev: use the open_type when creating the local port
Instead of using the internal type, use the port_open_type when creating the local port. That makes sure that whenever dpif_port_query is used, the netdev open_type is returned instead of the "internal" type. For other ports, that is already the case, as the netdev type is used when creating the dp_netdev_port. That changes the output of dpctl when showing the local port, and also when trying to change its type. So, corresponding tests are fixed. Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@redhat.com> Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com>
This commit is contained in:
committed by
Daniele Di Proietto
parent
6c607a64ae
commit
a3e8437a18
@@ -974,7 +974,9 @@ create_dp_netdev(const char *name, const struct dpif_class *class,
|
|||||||
ovs_mutex_lock(&dp->port_mutex);
|
ovs_mutex_lock(&dp->port_mutex);
|
||||||
dp_netdev_set_nonpmd(dp);
|
dp_netdev_set_nonpmd(dp);
|
||||||
|
|
||||||
error = do_add_port(dp, name, "internal", ODPP_LOCAL);
|
error = do_add_port(dp, name, dpif_netdev_port_open_type(dp->class,
|
||||||
|
"internal"),
|
||||||
|
ODPP_LOCAL);
|
||||||
ovs_mutex_unlock(&dp->port_mutex);
|
ovs_mutex_unlock(&dp->port_mutex);
|
||||||
if (error) {
|
if (error) {
|
||||||
dp_netdev_free(dp);
|
dp_netdev_free(dp);
|
||||||
@@ -1176,7 +1178,7 @@ hash_port_no(odp_port_t port_no)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
port_create(const char *devname, const char *open_type, const char *type,
|
port_create(const char *devname, const char *type,
|
||||||
odp_port_t port_no, struct dp_netdev_port **portp)
|
odp_port_t port_no, struct dp_netdev_port **portp)
|
||||||
{
|
{
|
||||||
struct netdev_saved_flags *sf;
|
struct netdev_saved_flags *sf;
|
||||||
@@ -1191,7 +1193,7 @@ port_create(const char *devname, const char *open_type, const char *type,
|
|||||||
*portp = NULL;
|
*portp = NULL;
|
||||||
|
|
||||||
/* Open and validate network device. */
|
/* Open and validate network device. */
|
||||||
error = netdev_open(devname, open_type, &netdev);
|
error = netdev_open(devname, type, &netdev);
|
||||||
if (error) {
|
if (error) {
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
@@ -1294,8 +1296,7 @@ do_add_port(struct dp_netdev *dp, const char *devname, const char *type,
|
|||||||
return EEXIST;
|
return EEXIST;
|
||||||
}
|
}
|
||||||
|
|
||||||
error = port_create(devname, dpif_netdev_port_open_type(dp->class, type),
|
error = port_create(devname, type, port_no, &port);
|
||||||
type, port_no, &port);
|
|
||||||
if (error) {
|
if (error) {
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,14 +23,14 @@ AT_CHECK([ovs-appctl dpctl/show dummy@br0], [0], [dnl
|
|||||||
dummy@br0:
|
dummy@br0:
|
||||||
lookups: hit:0 missed:0 lost:0
|
lookups: hit:0 missed:0 lost:0
|
||||||
flows: 0
|
flows: 0
|
||||||
port 0: br0 (internal)
|
port 0: br0 (dummy)
|
||||||
])
|
])
|
||||||
AT_CHECK([ovs-appctl dpctl/add-if dummy@br0 vif1.0,type=dummy,port_no=5])
|
AT_CHECK([ovs-appctl dpctl/add-if dummy@br0 vif1.0,type=dummy,port_no=5])
|
||||||
AT_CHECK([ovs-appctl dpctl/show dummy@br0], [0], [dnl
|
AT_CHECK([ovs-appctl dpctl/show dummy@br0], [0], [dnl
|
||||||
dummy@br0:
|
dummy@br0:
|
||||||
lookups: hit:0 missed:0 lost:0
|
lookups: hit:0 missed:0 lost:0
|
||||||
flows: 0
|
flows: 0
|
||||||
port 0: br0 (internal)
|
port 0: br0 (dummy)
|
||||||
port 5: vif1.0 (dummy)
|
port 5: vif1.0 (dummy)
|
||||||
])
|
])
|
||||||
AT_CHECK([ovs-appctl dpctl/add-if dummy@br0 vif1.0,type=dummy], [2], [],
|
AT_CHECK([ovs-appctl dpctl/add-if dummy@br0 vif1.0,type=dummy], [2], [],
|
||||||
@@ -44,8 +44,9 @@ AT_CHECK([ovs-appctl dpctl/set-if dummy@br0 vif1.0,type=system], [2], [],
|
|||||||
[ovs-vswitchd: vif1.0: can't change type from dummy to system
|
[ovs-vswitchd: vif1.0: can't change type from dummy to system
|
||||||
ovs-appctl: ovs-vswitchd: server returned an error
|
ovs-appctl: ovs-vswitchd: server returned an error
|
||||||
])
|
])
|
||||||
AT_CHECK([ovs-appctl dpctl/set-if dummy@br0 br0,type=dummy], [2], [],
|
AT_CHECK([ovs-appctl dpctl/set-if dummy@br0 br0,type=dummy], [0])
|
||||||
[ovs-vswitchd: br0: can't change type from internal to dummy
|
AT_CHECK([ovs-appctl dpctl/set-if dummy@br0 br0,type=internal], [2], [],
|
||||||
|
[ovs-vswitchd: br0: can't change type from dummy to internal
|
||||||
ovs-appctl: ovs-vswitchd: server returned an error
|
ovs-appctl: ovs-vswitchd: server returned an error
|
||||||
])
|
])
|
||||||
AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 vif1.0])
|
AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 vif1.0])
|
||||||
@@ -53,7 +54,7 @@ AT_CHECK([ovs-appctl dpctl/show dummy@br0], [0], [dnl
|
|||||||
dummy@br0:
|
dummy@br0:
|
||||||
lookups: hit:0 missed:0 lost:0
|
lookups: hit:0 missed:0 lost:0
|
||||||
flows: 0
|
flows: 0
|
||||||
port 0: br0 (internal)
|
port 0: br0 (dummy)
|
||||||
])
|
])
|
||||||
AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 vif1.0], [2], [],
|
AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 vif1.0], [2], [],
|
||||||
[ovs-vswitchd: no port named vif1.0
|
[ovs-vswitchd: no port named vif1.0
|
||||||
@@ -63,7 +64,7 @@ AT_CHECK([ovs-appctl dpctl/show dummy@br0], [0], [dnl
|
|||||||
dummy@br0:
|
dummy@br0:
|
||||||
lookups: hit:0 missed:0 lost:0
|
lookups: hit:0 missed:0 lost:0
|
||||||
flows: 0
|
flows: 0
|
||||||
port 0: br0 (internal)
|
port 0: br0 (dummy)
|
||||||
])
|
])
|
||||||
AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 nonexistent], [2], [],
|
AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 nonexistent], [2], [],
|
||||||
[ovs-vswitchd: no port named nonexistent
|
[ovs-vswitchd: no port named nonexistent
|
||||||
|
|||||||
Reference in New Issue
Block a user