Inform userspace about gso size info

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

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 2cd7d9a..91ebed3 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
@@ -125,7 +125,8 @@ struct rte_kni_mbuf {
        uint16_t nb_segs;       /**< Number of segments. */
        char pad4[2];
        uint64_t ol_flags;      /**< Offload features. */
-       char pad2[4];
+       uint16_t gso_size;      /**< TCP Segmentation Offload Information. */
+       char pad2[2];
        uint32_t pkt_len;       /**< Total pkt len: sum of all segment 
data_len. */
        uint16_t data_len;      /**< Amount of data in segment buffer. */
 
diff --git a/lib/librte_eal/linuxapp/kni/kni_net.c 
b/lib/librte_eal/linuxapp/kni/kni_net.c
index e4a3296..c7648d3 100644
--- a/lib/librte_eal/linuxapp/kni/kni_net.c
+++ b/lib/librte_eal/linuxapp/kni/kni_net.c
@@ -252,6 +252,7 @@
                }
                pkt_kva->pkt_len = len;
                pkt_kva->data_len = len;
+               pkt_kva->gso_size = skb_shinfo(skb)->gso_size; /* passes 
gso_size from Kernel to GPP */
 
                /* enqueue mbuf into tx_q */
                ret = kni_fifo_put(kni->tx_q, &pkt_va, 1);
-- 
1.9.1

Reply via email to