TunnelApp.ned

NED File src/inet/applications/tunapp/TunnelApp.ned

Name Type Description
TunnelApp simple module

Relays packets between a pre-existing tunnel endpoint (a local TUN interface) and a remote network address using either UDP or IPv4 protocols.

Source code

//
// Copyright (C) 2015 Irene Ruengeler
//
// SPDX-License-Identifier: LGPL-3.0-or-later
//

package inet.applications.tunapp;

import inet.common.SimpleModule;
import inet.applications.contract.IApp;

//
// Relays packets between a pre-existing tunnel endpoint (a local TUN interface)
// and a remote network address using either UDP or IPv4 protocols.
//
// It captures packets from the specified TUN interface and forwards them to the
// configured destination, while also receiving packets from the remote endpoint
// and injecting them into the TUN interface. Setting up the tunnel is outside
// the scope of this application. Supports lifecycle operations for controlled
// startup and shutdown.
//
// @see TunInterface
//
simple TunnelApp extends SimpleModule like IApp
{
    parameters:
        @class(TunnelApp);
        string interfaceTableModule;
        string interface;
        string protocol @enum("udp", "ipv4") = default("udp");
        string destinationAddress = default("");
        int destinationPort = default(-1);
        int localPort = default(-1);
        @lifecycleSupport;
        double stopOperationExtraTime @unit(s) = default(-1s);    // Extra time after the lifecycle stop operation finishes
        double stopOperationTimeout @unit(s) = default(2s);    // Timeout value for the lifecycle stop operation
        @display("i=block/app");
    gates:
        input socketIn;
        output socketOut;
}