Feature #5138
closedConfigure default MTU for UDP faces
100%
Description
Currently, nfdc face create
command allows setting MTU when creating or updating a UDP face.
This allows the operator to select NDNLPv2 fragmentation instead of IP fragmentation, which is effective in working around networks that blocks/drops IPv4 fragments or IPv6 fragments.
However, MTU option is unavailable for on-demand faces: all on-demand UDP transports are created with the default MTU of MAX_NDN_PACKET_SIZE
i.e. 8800 octets.
In global NDN testbed operations, it has been discovered that some NAT middleboxes and firewalls could block egress IPv4 fragments, causing UDP connections between unrestricted end hosts and testbed routers to become unreliable or fail, when a large packet is transmitted from the testbed router to the end host.
It is necessary for the testbed router in such environments to lower the MTU of on-demand UDP faces, so that outgoing packets would use NDNLP fragmentation.
This issue is to introduce a configuration option:
face_system
{
udp
{
unicast_mtu 1452
}
}
This face_system.udp.unicast_mtu
option accepts a positive number that sets the MTU for on-demand UDP faces.
It also serves as the default MTU for UDP faces created through the nfdc face create
command when the mtu
option is unspecified.
It shall be an error to set a value that is smaller than MIN_MTU
or greater than MAX_NDN_PACKET_SIZE
.