Class NatPmpPortMapping

  • All Implemented Interfaces:
    PortMapping

    public class NatPmpPortMapping
    extends Object
    implements PortMapping
    Port Forwarding on NAT-enabled routers via NAT-PMP.

    This methods requires the following steps:

    • identify own default network gateway
    • request external address from gateway to ensure it is connected to a WAN
    • request port mapping from gateway
    • Field Detail

      • TIMEOUT

        public static final Duration TIMEOUT
    • Constructor Detail

      • NatPmpPortMapping

        public NatPmpPortMapping()
    • Method Detail

      • start

        public void start​(HandlerContext ctx,
                          NodeUpEvent event,
                          Runnable onFailure)
        Description copied from interface: PortMapping
        Tells the method to create a port forwarding and renew it independently. If no forwarding can be created, onFailure must be called once.
        Specified by:
        start in interface PortMapping
        Parameters:
        ctx - the handler context
        event - the node up event
        onFailure - will be called once on failure
      • stop

        public void stop​(HandlerContext ctx)
        Description copied from interface: PortMapping
        Shall remove any existing port forwarding again.
        Specified by:
        stop in interface PortMapping
        Parameters:
        ctx - the handler context
      • acceptMessage

        public boolean acceptMessage​(AddressedByteBuf msg)
        Description copied from interface: PortMapping
        Is called for incoming messages and returns true if the message should be consumed and removed from the pipeline.
        Specified by:
        acceptMessage in interface PortMapping
        Parameters:
        msg - the message
        Returns:
        true if the message is relevant for the current port forwarding method. Otherwise false
      • handleMessage

        public void handleMessage​(HandlerContext ctx,
                                  AddressedByteBuf msg)
        Description copied from interface: PortMapping
        Is called for incoming messages and thus enables this method to react to relevant messages.
        Specified by:
        handleMessage in interface PortMapping
        Parameters:
        ctx - the handler context
        msg - the message