-
Notifications
You must be signed in to change notification settings - Fork 124
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
No support for segmented odp packet in tcp_output & ofp_sosend_dgram #284
Comments
Hi @HsuJv, To support jumbo frames you will need to:
My code is different .. cannot say right now if this is enough. BRs |
Btw, pkt segments are not well supported in the entire stack... you should try to keep it simple with large enough packets and first segment size = pkt size... |
Thanks for the quick reply. For your answer:
So in a short, fixing the issues with segmented packets seems necessary for memory saving and may not be very complicated work. It seems that this project has been active again recently so I submitted issues here to let the contributors know. BRs. |
Hi there
I know that we have set the Interface MTU to 1500 at
ofp/include/api/ofp_config.h
Line 61 in f6580bb
which is smaller than the packet size(1856) set at
ofp/include/api/ofp_config.h
Line 56 in f6580bb
But in my use case, I'd like to make the MTU configurable to meet the requirements of jumbo frames (both TCP & UDP).
If I increase my MTU to some value that is greater than the packet size, it will result in a segmented odp_packet_t.
But the memcpy here in ofp_tcp_output.c
ofp/src/ofp_tcp_output.c
Lines 870 to 871 in f6580bb
and the memcpy here in ofp_uipc_socket.c
ofp/src/ofp_uipc_socket.c
Line 1009 in f6580bb
do not check the segmented packets at all, which will cause a buffer overflow.
A simple approach to duplicate this issue is to reduce the SHM_PKT_POOL_BUFFER_SIZE to 1024 or smaller. Or calling ofp_sendto on the UDP sockets with
len
set to 2000 or greater.Are there any plans to support this feature?
BRs.
The text was updated successfully, but these errors were encountered: