net.i2p.router.transport.udp
Class MTU

java.lang.Object
  extended by net.i2p.router.transport.udp.MTU

abstract class MTU
extends Object

Get the MTU for the network interface of an address. Not available until Java 6 / Android API 9.

Since:
0.9.2

Constructor Summary
MTU()
           
 
Method Summary
static int getMTU(InetAddress ia)
          The MTU for the socket interface, if available.
static int rectify(boolean isIPv6, int mtu)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MTU

MTU()
Method Detail

getMTU

public static int getMTU(InetAddress ia)
The MTU for the socket interface, if available. Not available for Java 5. Note that we don't return the value for the default interface if we can't find the address. Finding the default interface is hard, altough we could perhaps just look for the first non-loopback address. But the MTU of the default route probably isn't relevant.

Parameters:
ia - null ok
Returns:
0 if Java 5, or if not bound to an address; limited to range MIN_MTU to LARGE_MTU.

rectify

public static int rectify(boolean isIPv6,
                          int mtu)
Returns:
min of PeerState.MIN_MTU, max of PeerState.LARGE_MTU, rectified so rv % 16 == 12 (IPv4) or rv % 16 == 0 (IPv6)