DPDK usage discussions
 help / color / mirror / Atom feed
* DPDK 22.11 - Question for TCP data processing
@ 2023-06-07 17:55 芦翔
  2023-06-08  5:58 ` Pavel Vazharov
  0 siblings, 1 reply; 2+ messages in thread
From: 芦翔 @ 2023-06-07 17:55 UTC (permalink / raw)
  To: users; +Cc: 许宝东, 郑彤

[-- Attachment #1: Type: text/plain, Size: 1507 bytes --]

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

[-- Attachment #2: Type: text/html, Size: 2704 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: DPDK 22.11 - Question for TCP data processing
  2023-06-07 17:55 DPDK 22.11 - Question for TCP data processing 芦翔
@ 2023-06-08  5:58 ` Pavel Vazharov
  0 siblings, 0 replies; 2+ messages in thread
From: Pavel Vazharov @ 2023-06-08  5:58 UTC (permalink / raw)
  To: 芦翔; +Cc: users, 许宝东, 郑彤

[-- Attachment #1: Type: text/plain, Size: 1980 bytes --]

>
> 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.
>
Hi,

I'd suggest not trying to handle the TCP protocol by yourselves. It's error
prone, full with edge cases, etc. The current TCP stacks in the OSes have
years of polishing and bug fixing in them.
You can check out this article and thread
<https://news.ycombinator.com/item?id=12021195> why you don't want to write
your own TCP stack :).

Up to my knowledge, available TCP stacks are:
- F-stack <https://github.com/F-Stack/f-stack> - it contains the FreeBSD
stack from version 13 and it's actively supported.
- Seastar <https://github.com/scylladb/seastar> - they have written their
own TCP stack which can work on top of DPDK. The project is actively
developed/supported. They have told me that their stack is more suitable
for CDN scenarios where the TCP traffic is a bit more predictable, if I may
say it in this way. I mean, that it's less likely to hit weird edge cases
there.
- OpenFastPath <https://github.com/OpenFastPath/ofp> - I believe they have
written their own TCP stack which can work on top of DPDK but the project
is not actively supported and the stack is not very well tested with real
traffic (IMO).
- mTCP <https://shader.kaist.edu/mtcp/> - another TCP stack written from
scratch which can work on top of DPDK. I think this project has not been
supported for a long time.
- lwIP <https://www.nongnu.org/lwip/2_1_x/index.html> - TCP stack suitable
for embedded devices. I don't think it has integration with DPDK though.

HTH,
Pavel.
-

[-- Attachment #2: Type: text/html, Size: 2551 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-06-08  5:59 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-07 17:55 DPDK 22.11 - Question for TCP data processing 芦翔
2023-06-08  5:58 ` Pavel Vazharov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).