net.i2p.router.transport.udp

## Class MTU

- java.lang.Object
- - net.i2p.router.transport.udp.MTU

-     public class MTU
      extends Object

  Get the MTU for the network interface of an address. Not available until Java 6 / Android API 9. Public only for command line test. Not for external use, not a public API.

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static int` | `getMTU(InetAddress ia, boolean isSSU2)` The MTU for the socket interface, if available.
    `static void` | `main(String[] args)`
    `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`

- - ### Method Detail

    - #### getMTU

          public static int getMTU(InetAddress ia,
                                   boolean isSSU2)

      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. For SSU2 MTU, values lower than PeerState2.MIN_MTU may be returned, so the caller can determine if SSU2 should be supported.
      Parameters:
        `ia` - null ok
        `isSSU2` - if true, calculate SSU2 MTU
      Returns:
        0 if Java 5, or if not bound to an address; limited to range MIN_MTU to LARGE_MTU for SSU 1.

    - #### main

          public static void main(String[] args)

    - #### 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)