aboutsummaryrefslogtreecommitdiffstats
path: root/lib/libtle_l4p/tcp_tx_seg.h
diff options
context:
space:
mode:
authorJianfeng Tan <henry.tjf@antfin.com>2019-06-13 15:01:09 +0800
committerDaniel Pono Takamori <dtakamori@contractor.linuxfoundation.org>2019-06-27 11:57:30 -0700
commit85b0a328d71300572a3c2e8b5b722c00ed0ac6e8 (patch)
treef4bc8beb9569081705b404650f60c24be183031b /lib/libtle_l4p/tcp_tx_seg.h
parentcecfc87fc706a6ac819aa213b368072fa011bcae (diff)
dpdk: automate make config
Users need two steps to compile DPDK: $ make config -C dpdk $ make -C dpdk We don't see the value for that. Add config as a dependency so that we can compile it with only one step: $ make -C dpdk Change-Id: I78bc728e904d969be9ef7575029eea9fda105bc6 Signed-off-by: Jianfeng Tan <henry.tjf@antfin.com> IT-16521
Diffstat (limited to 'lib/libtle_l4p/tcp_tx_seg.h')
-rw-r--r--lib/libtle_l4p/tcp_tx_seg.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/libtle_l4p/tcp_tx_seg.h b/lib/libtle_l4p/tcp_tx_seg.h
index a8d2425..ac2b13b 100644
--- a/lib/libtle_l4p/tcp_tx_seg.h
+++ b/lib/libtle_l4p/tcp_tx_seg.h
@@ -27,6 +27,7 @@ tcp_segmentation(struct rte_mbuf *mbin, struct rte_mbuf *mbout[], uint16_t num,
struct rte_mbuf *in_seg = NULL;
uint32_t nbseg, in_seg_data_pos;
uint32_t more_in_segs;
+ uint16_t bytes_left;
in_seg = mbin;
in_seg_data_pos = 0;
@@ -48,6 +49,7 @@ tcp_segmentation(struct rte_mbuf *mbin, struct rte_mbuf *mbout[], uint16_t num,
return -ENOMEM;
}
+ bytes_left = mss;
out_seg_prev = out_pkt;
more_out_segs = 1;
while (more_out_segs && more_in_segs) {
@@ -66,7 +68,7 @@ tcp_segmentation(struct rte_mbuf *mbin, struct rte_mbuf *mbout[], uint16_t num,
/* Prepare indirect buffer */
rte_pktmbuf_attach(out_seg, in_seg);
- len = mss;
+ len = bytes_left;
if (len > (in_seg->data_len - in_seg_data_pos))
len = in_seg->data_len - in_seg_data_pos;
@@ -75,9 +77,10 @@ tcp_segmentation(struct rte_mbuf *mbin, struct rte_mbuf *mbout[], uint16_t num,
out_pkt->pkt_len = (uint16_t)(len + out_pkt->pkt_len);
out_pkt->nb_segs += 1;
in_seg_data_pos += len;
+ bytes_left -= len;
/* Current output packet (i.e. fragment) done ? */
- if (out_pkt->pkt_len >= mss)
+ if (bytes_left == 0)
more_out_segs = 0;
/* Current input segment done ? */