Bug #2305
closedEthernet face reports MTU to be 1500 bytes on 9000 bytes interface
100%
Description
Tested Ethernet face on a Jumbo frame enabled face. The MTU is 9000 bytes.
$ ifconfig
p2p2: flags=4163 mtu 9000
inet xx netmask 255.255.255.252 broadcast xx
inet6 xx prefixlen 64 scopeid 0x20
ether xx txqueuelen 10000 (Ethernet)
RX packets 3024380 bytes 2175073663 (2.0 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6210823 bytes 7606515260 (7.0 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
NFD always reports MTU = 1500 bytes
1418755213.108174 WARNING: [EthernetFace] ifr_mtu = 9000
1418755213.108205 DEBUG: [EthernetFace] [id:-1,endpoint:p2p2] Interface MTU is: 1500
This happens since in /ndn-cxx/src/util/ethernet.hpp, MAX DATA LENGTH is 1500 bytes.
47: const size_t MAX_DATA_LEN = 1500;
and on NFD/daemon/face/ethernet-face.cpp,
447: mtu = std::min(mtu, static_cast(ifr.ifr_mtu));
Updated by Alex Afanasyev about 10 years ago
- Target version set to v0.3
- Start date deleted (
12/16/2014)
Updated by Davide Pesavento about 10 years ago
This is feature request rather than a bug. EthernetFace does not support jumbo frames.
Updated by Alex Afanasyev about 10 years ago
Is there something fundamental/special about jumbo frames?
Updated by Davide Pesavento about 10 years ago
You mean from an implementation POV? No, there shouldn't be. Jumbo support simply wasn't part of the initial requirements, but it should be trivial to add.
Updated by susmit shannigrahi about 10 years ago
Davide Pesavento wrote:
You mean from an implementation POV? No, there shouldn't be. Jumbo support simply wasn't part of the initial requirements, but it should be trivial to add.
Yes, I set it to mtu = ifr.ifr_mtu and it works.
Also, why set MTU to minimum(MTU, ifr.ifr_mtu)? Why not use ifr.ifr_mtu in the library too?
Updated by Davide Pesavento about 10 years ago
- Status changed from New to Code review
- Assignee set to Davide Pesavento
- % Done changed from 0 to 100
Updated by Davide Pesavento about 10 years ago
susmit shannigrahi wrote:
Why not use ifr.ifr_mtu in the library too?
What do you mean "in the library"? What library?
Updated by Alex Afanasyev about 10 years ago
- Status changed from Code review to Closed