l4p/tcp_ofo: fix handling out-of-order packets 57/20457/3
authorJielong Zhou <jielong.zjl@antfin.com>
Tue, 2 Jul 2019 12:21:01 +0000 (20:21 +0800)
committerJielong Zhou <jielong.zjl@antfin.com>
Tue, 13 Aug 2019 04:19:01 +0000 (12:19 +0800)
commit17f6b7ad23f52784f0a6897480d7a6050806aa65
tree363b2d37642ec9ff9473c47afd80775d6341e516
parent3fbc22a6729f577e03a5be527671a3d7ac11ef25
l4p/tcp_ofo: fix handling out-of-order packets

Problems are:
  1. ofodb could not be assigned directly, as direct assignment does not
     copy the mbuf pointer area belonging to it.

  2. _ofo_insert_new and _ofo_insert_right doesn't remove overlap correctly.

  3. _ofo_insert_new insert new db in wrong position.

  4. rx_ofo_reduce sets wrong seq, and would insert overlapped data into
     rx queue.

  5. _ofo_compact may miss compacting some ofodbs and doesn't update partly
     moved ofodb correctly.

Change-Id: I03f1065ef5a15ef2abc664f9cc98910aab72d39b
Signed-off-by: Jielong Zhou <jielong.zjl@antfin.com>
lib/libtle_l4p/tcp_misc.h
lib/libtle_l4p/tcp_ofo.h
lib/libtle_l4p/tcp_rxq.h