* [PATCH] net/kni: reset rte_kni_conf struct before initialization
@ 2021-12-03 7:24 Harold Huang
2021-12-05 6:21 ` [PATCH v4] " Harold Huang
0 siblings, 1 reply; 4+ messages in thread
From: Harold Huang @ 2021-12-03 7:24 UTC (permalink / raw)
To: dev; +Cc: ferruh.yigit, lironh
When kni driver calls eth_kni_start to start device, some fields such
as min_mtu and max_mtu of rte_kni_conf are not initialized. It will
cause kni_ioctl_create create a kni netdevice with a random min_mtu
and max_mtu value. This is unexpected and in some time we could not
change the kni device mtu with ip link command.
Fixes: ff1e35fb5f8 ("kni: calculate MTU from mbuf size")
Signed-off-by: Harold Huang <baymaxhuang@gmail.com>
---
drivers/net/kni/rte_eth_kni.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/kni/rte_eth_kni.c b/drivers/net/kni/rte_eth_kni.c
index c428caf441..23b15edfac 100644
--- a/drivers/net/kni/rte_eth_kni.c
+++ b/drivers/net/kni/rte_eth_kni.c
@@ -128,6 +128,7 @@ eth_kni_start(struct rte_eth_dev *dev)
const char *name = dev->device->name + 4; /* remove net_ */
mb_pool = internals->rx_queues[0].mb_pool;
+ memset(&conf, 0, sizeof(conf));
strlcpy(conf.name, name, RTE_KNI_NAMESIZE);
conf.force_bind = 0;
conf.group_id = port_id;
--
2.18.2
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v4] net/kni: reset rte_kni_conf struct before initialization
2021-12-03 7:24 [PATCH] net/kni: reset rte_kni_conf struct before initialization Harold Huang
@ 2021-12-05 6:21 ` Harold Huang
2022-02-27 20:12 ` Thomas Monjalon
0 siblings, 1 reply; 4+ messages in thread
From: Harold Huang @ 2021-12-05 6:21 UTC (permalink / raw)
To: dev
When kni driver calls eth_kni_start to start device, some fields such as
min_mtu and max_mtu of rte_kni_conf are not initialized. It will cause
kni_ioctl_create create a kni netdevice with a random min_mtu and max_mtu
value. This isunexpected and in some time we could not change the kni
device mtu with ip link command.
Fixes: ff1e35fb5f8 ("kni: calculate MTU from mbuf size")
Signed-off-by: Harold Huang <baymaxhuang@gmail.com>
---
drivers/net/kni/rte_eth_kni.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/kni/rte_eth_kni.c b/drivers/net/kni/rte_eth_kni.c
index c428caf441..23b15edfac 100644
--- a/drivers/net/kni/rte_eth_kni.c
+++ b/drivers/net/kni/rte_eth_kni.c
@@ -128,6 +128,7 @@ eth_kni_start(struct rte_eth_dev *dev)
const char *name = dev->device->name + 4; /* remove net_ */
mb_pool = internals->rx_queues[0].mb_pool;
+ memset(&conf, 0, sizeof(conf));
strlcpy(conf.name, name, RTE_KNI_NAMESIZE);
conf.force_bind = 0;
conf.group_id = port_id;
--
2.27.0
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v4] net/kni: reset rte_kni_conf struct before initialization
2021-12-05 6:21 ` [PATCH v4] " Harold Huang
@ 2022-02-27 20:12 ` Thomas Monjalon
0 siblings, 0 replies; 4+ messages in thread
From: Thomas Monjalon @ 2022-02-27 20:12 UTC (permalink / raw)
To: Harold Huang; +Cc: dev, ferruh.yigit
+Cc Ferruh
05/12/2021 07:21, Harold Huang:
> When kni driver calls eth_kni_start to start device, some fields such as
> min_mtu and max_mtu of rte_kni_conf are not initialized. It will cause
> kni_ioctl_create create a kni netdevice with a random min_mtu and max_mtu
> value. This isunexpected and in some time we could not change the kni
> device mtu with ip link command.
>
> Fixes: ff1e35fb5f8 ("kni: calculate MTU from mbuf size")
> Signed-off-by: Harold Huang <baymaxhuang@gmail.com>
> ---
> drivers/net/kni/rte_eth_kni.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/kni/rte_eth_kni.c b/drivers/net/kni/rte_eth_kni.c
> index c428caf441..23b15edfac 100644
> --- a/drivers/net/kni/rte_eth_kni.c
> +++ b/drivers/net/kni/rte_eth_kni.c
> @@ -128,6 +128,7 @@ eth_kni_start(struct rte_eth_dev *dev)
> const char *name = dev->device->name + 4; /* remove net_ */
>
> mb_pool = internals->rx_queues[0].mb_pool;
> + memset(&conf, 0, sizeof(conf));
> strlcpy(conf.name, name, RTE_KNI_NAMESIZE);
> conf.force_bind = 0;
> conf.group_id = port_id;
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v4] net/kni: reset rte_kni_conf struct before initialization
@ 2021-12-23 3:01 Harold Huang
0 siblings, 0 replies; 4+ messages in thread
From: Harold Huang @ 2021-12-23 3:01 UTC (permalink / raw)
To: baymaxhuang; +Cc: dev, ferruh.yigit
The problem this patch wants to solve can be reproduced by ovs-dpdk:
1. create a kni port in ovs:
ovs-vsctl add-port ovs-br0 kni0 -- set Interface kni0 type=dpdk
options:dpdk-devargs=net_kni0
2. change the mtu of the kni device in kernel:
ip link set kni0 mtu 1500
If we do not set rte_kni_conf to 0, the min_mtu and max_mtu are random
and change mtu could be failed.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-02-27 20:12 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-03 7:24 [PATCH] net/kni: reset rte_kni_conf struct before initialization Harold Huang
2021-12-05 6:21 ` [PATCH v4] " Harold Huang
2022-02-27 20:12 ` Thomas Monjalon
2021-12-23 3:01 Harold Huang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).