I wanted to know since in
#include <linux/if_ether.h>
ETH_FRAME_LEN the max size is 1514 but I want to send something bigger in each packet probably 2114. Is there any way to do this I keep getting
sendto():: Message too long
Printable View
I wanted to know since in
#include <linux/if_ether.h>
ETH_FRAME_LEN the max size is 1514 but I want to send something bigger in each packet probably 2114. Is there any way to do this I keep getting
sendto():: Message too long
Ethernet is physically incapable of that. You cannot have a frame of that size. The hardware can't do it.
Are you really using raw frames? Then you will be restricted by the limitations of the lower network layers. If, in the other hand, you are using UDP, then the IP stack should handle frame fragmentation for you -- each UDP "packet" will be transparently split into multiple frames and put back together on the other side, transparently.
So does C in linux not provide a way to create jumbo size frames
If you have a Gigabit Ethernet card you can enable jumbo frames by setting the interface MTU to whatever you need (up to about 9000 bytes I believe).
But your application will be limited to gigabit Ethernet only. Fast Ethernet (100 megabit) does not support it period.