[dpdk-dev,3/3] kni: set initial value for MTU
Checks
Commit Message
Configure initial application provided mtu on the KNI interface.
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
examples/kni/main.c | 2 ++
lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h | 1 +
lib/librte_eal/linuxapp/kni/kni_misc.c | 3 +++
lib/librte_kni/rte_kni.c | 1 +
lib/librte_kni/rte_kni.h | 1 +
5 files changed, 8 insertions(+)
Comments
On 11/30/2017 3:46 AM, Hemant Agrawal wrote:
> Configure initial application provided mtu on the KNI interface.
>
> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
<...>
> @@ -95,6 +95,7 @@ struct rte_kni_conf {
> struct rte_pci_addr addr;
> struct rte_pci_id id;
> char mac_addr[ETHER_ADDR_LEN]; /* MAC address assigned to KNI */
> + uint16_t mtu;
Same issue here, adding a new field into middle of the public struct.
I think it would be OK to add to the end, but to be sure would you please run
ABI check script (validate-abi.sh) after adding to the end?
Thanks,
ferruh
>
> __extension__
> uint8_t force_bind : 1; /* Flag to bind kernel thread */
>
@@ -845,6 +845,8 @@ kni_alloc(uint16_t port_id)
rte_eth_macaddr_get(port_id,
(struct ether_addr *)&conf.mac_addr);
+ rte_eth_dev_get_mtu(port_id, &conf.mtu);
+
memset(&ops, 0, sizeof(ops));
ops.port_id = port_id;
ops.change_mtu = kni_change_mtu;
@@ -172,6 +172,7 @@ struct rte_kni_device_info {
/* mbuf size */
unsigned mbuf_size;
+ unsigned int mtu;
char mac_addr[6];
};
@@ -470,6 +470,9 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num,
random_ether_addr(net_dev->dev_addr);
}
+ if (dev_info.mtu)
+ net_dev->mtu = dev_info.mtu;
+
ret = register_netdev(net_dev);
if (ret) {
pr_err("error %i registering device \"%s\"\n",
@@ -367,6 +367,7 @@ rte_kni_alloc(struct rte_mempool *pktmbuf_pool,
dev_info.force_bind = conf->force_bind;
dev_info.group_id = conf->group_id;
dev_info.mbuf_size = conf->mbuf_size;
+ dev_info.mtu = conf->mtu;
memcpy(dev_info.mac_addr, conf->mac_addr, ETHER_ADDR_LEN);
@@ -95,6 +95,7 @@ struct rte_kni_conf {
struct rte_pci_addr addr;
struct rte_pci_id id;
char mac_addr[ETHER_ADDR_LEN]; /* MAC address assigned to KNI */
+ uint16_t mtu;
__extension__
uint8_t force_bind : 1; /* Flag to bind kernel thread */