Hello All,

I am a newbie here. I am working on a link layer device to fit for a special scenario, which is as follows:

Host 1  ---  My Device  ---  Host2

At the very beginning, Host 1 and Host 2 are TCP connected. In this case, my device are introduced in the link between Host 1 and Host 2. What I have to do can be summarized as three folds:
(1) My device should be a link layer device to work without any affects for Host 1 and Host 2, in that case, no device in Host 1 and Host 2 needs to change current configurations, which are really not easy in my scenario. Host 1 and Host 2 can communicate with each other just like no my device are involved.
(2)Host 1 and Host 2 are out of my control, no product provider will support me to change even a character.
(3)My device should sign application layer payload and put signing values back to the application data, which are then encapsulated back to the TCP packet stream.

We are not sure that, how can we process those changed TCP packets to deal with various retransmissions like out-of-order, packet loss and so on. I am also review the previous threads in this mailing list. But as a newbie, I am not sure if I should turn to F-stack, KNI for the help from the protocol stack, or program a state checking applications in DPDK to calculate TCP sequence number and cache previous data for possible retransmission by myself. Or you may have better solution suggestions for us.

We are really appreciate your kind response.

Thank you and have a nice day.


Xiang