1. Configure initial mtu.
2. Message to userspace for mtu change

Signed-off-by: Hemant Agrawal <hemant.agra...@nxp.com>
---
 lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h | 1 +
 lib/librte_eal/linuxapp/kni/kni_misc.c                        | 2 ++
 lib/librte_kni/rte_kni.c                                      | 1 +
 lib/librte_kni/rte_kni.h                                      | 1 +
 4 files changed, 5 insertions(+)

diff --git a/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h 
b/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
index c04fefd..2cd7d9a 100644
--- a/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
+++ b/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
@@ -172,6 +172,7 @@ struct rte_kni_device_info {
 
        /* mbuf size */
        unsigned mbuf_size;
+       unsigned int mtu;             /**< MTU */
        char macaddr[6];              /**< Mac Address */
 };
 
diff --git a/lib/librte_eal/linuxapp/kni/kni_misc.c 
b/lib/librte_eal/linuxapp/kni/kni_misc.c
index 90879fa..4f99a5e 100644
--- a/lib/librte_eal/linuxapp/kni/kni_misc.c
+++ b/lib/librte_eal/linuxapp/kni/kni_misc.c
@@ -469,6 +469,8 @@ struct kni_net {
                memcpy(net_dev->dev_addr, dev_info.macaddr, ETH_ALEN);
        }
 
+       net_dev->mtu = dev_info.mtu;
+
        ret = register_netdev(net_dev);
        if (ret) {
                pr_err("error %i registering device \"%s\"\n",
diff --git a/lib/librte_kni/rte_kni.c b/lib/librte_kni/rte_kni.c
index 8ae632f..a3aab9d 100644
--- a/lib/librte_kni/rte_kni.c
+++ b/lib/librte_kni/rte_kni.c
@@ -373,6 +373,7 @@ struct rte_kni *
        dev_info.mbuf_size = conf->mbuf_size;
 
        memcpy(dev_info.macaddr, conf->macaddr, ETH_ADDR_LEN);
+       dev_info.mtu = conf->mtu;
 
        snprintf(ctx->name, RTE_KNI_NAMESIZE, "%s", intf_name);
        snprintf(dev_info.name, RTE_KNI_NAMESIZE, "%s", intf_name);
diff --git a/lib/librte_kni/rte_kni.h b/lib/librte_kni/rte_kni.h
index 488db4b..3156e33 100644
--- a/lib/librte_kni/rte_kni.h
+++ b/lib/librte_kni/rte_kni.h
@@ -98,6 +98,7 @@ struct rte_kni_conf {
        struct rte_pci_addr addr;
        struct rte_pci_id id;
        char macaddr[ETH_ADDR_LEN]; /* MAC address assigned to KNI */
+       uint16_t mtu;   /* Maximum transmission Unit of KNI*/
 
        __extension__
        uint8_t force_bind : 1; /* Flag to bind kernel thread */
-- 
1.9.1

Reply via email to