aboutsummaryrefslogtreecommitdiffstats
path: root/lib/libtle_l4p/syncookie.h
diff options
context:
space:
mode:
authorKonstantin Ananyev <konstantin.ananyev@intel.com>2017-03-03 18:40:23 +0000
committerKonstantin Ananyev <konstantin.ananyev@intel.com>2017-03-06 15:06:38 +0000
commit21e7392fca2c430018cf387bb3e368ea4c665446 (patch)
tree82109e1b1af7aa3303d1f9b04c1d063aa3b14873 /lib/libtle_l4p/syncookie.h
parent9cbfd751b210f03fdb2fcbf8cafe59b9db516295 (diff)
Rewrite accept() code-path and make l4fwd not to close() on FIN immediatelly.
Changes in public API: - removes tle_tcp_stream_synreqs() and tle_tcp_reject() - adds tle_tcp_stream_update_cfg Allocates and fills new stream when final ACK for 3-way handshake is received. Changes in l4fwd sample application: prevents l4fwd to call close() on error event immediately: first try to recv/send remaining data. Change-Id: I8c5b9d365353084083731a4ce582197a8268688f Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Diffstat (limited to 'lib/libtle_l4p/syncookie.h')
-rw-r--r--lib/libtle_l4p/syncookie.h9
1 files changed, 2 insertions, 7 deletions
diff --git a/lib/libtle_l4p/syncookie.h b/lib/libtle_l4p/syncookie.h
index 276d45a..ad70b7d 100644
--- a/lib/libtle_l4p/syncookie.h
+++ b/lib/libtle_l4p/syncookie.h
@@ -156,13 +156,8 @@ sync_get_opts(struct syn_opts *so, uintptr_t p, uint32_t len)
static inline void
sync_fill_tcb(struct tcb *tcb, const union seg_info *si,
- const struct rte_mbuf *mb)
+ const struct syn_opts *so)
{
- const struct tcp_hdr *th;
-
- th = rte_pktmbuf_mtod_offset(mb, const struct tcp_hdr *,
- mb->l2_len + mb->l3_len);
-
tcb->rcv.nxt = si->seq;
tcb->rcv.irs = si->seq - 1;
@@ -174,7 +169,7 @@ sync_fill_tcb(struct tcb *tcb, const union seg_info *si,
tcb->snd.wu.wl1 = si->seq;
tcb->snd.wu.wl2 = si->ack;
- get_syn_opts(&tcb->so, (uintptr_t)(th + 1), mb->l4_len - sizeof(*th));
+ tcb->so = *so;
tcb->snd.wscale = tcb->so.wscale;
tcb->snd.mss = tcb->so.mss;