Name | Type | Description |
---|---|---|
NA_StandardHost | compound module |
Generic standard host. Modificated from StandarHost module. Migrated from INET for inheritance requirements of NA_AttackerAdhocHost and NA_AttackerWirelessHost |
// // Copyright (C) 2004 Andras Varga // Copyright (C) 2000 Institut fuer Telematik, Universitaet Karlsruhe // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, see <http://www.gnu.org/licenses/>. // // // Copyright (C) 2013 and modified by NESG (Network Engineering and Security Group), http://nesg.ugr.es, // - Gabriel Maciá Fernández (gmacia@ugr.es) // - Leovigildo Sánchez Casado (sancale@ugr.es) // - Rafael A. Rodríguez Gómez (rodgom@ugr.es) // - Roberto Magán Carrión (rmagan@ugr.es) // - Pedro García Teodoro (pgteodor@ugr.es) // - José Camacho Páez (josecamacho@ugr.es) // - Jesús E. Díaz Verdejo (jedv@ugr.es) // package nesg.netattacks.nodes; import inet.transport.IUDP; import inet.transport.ITCP; import inet.transport.ISCTP; import inet.applications.IPingApp; import inet.applications.IUDPApp; import inet.applications.ITCPApp; import inet.applications.ISCTPApp; // // Generic standard host. Modificated from StandarHost module. // Migrated from INET for inheritance requirements // of NA_AttackerAdhocHost and NA_AttackerWirelessHost // // @see StandarHost, NodeBase // // @author Gabriel Maciá Fernández, gmacia@ugr.es // @date 01/22/2013 module NA_StandardHost extends NA_NodeBase { parameters: @display("i=device/pc2"); int numTcpApps = default(0); // no of TCP apps. Specify the app types in INI file with tcpApp[0..1].typename="TCPEchoApp" syntax int numUdpApps = default(0); // no of UDP apps. Specify the app types in INI file with udpApp[0..1].typename="UDPVideoStreamCli" syntax int numSctpApps = default(0); // no of SCTP apps. Specify the app types in INI file with sctpApp[0..1].typename="SCTPServer" syntax int numPingApps = default(0); // no of PING apps. Specify the app types in INI file with pingApp[0..1].typename="PingApp" syntax string tcpType = default(firstAvailable("TCP", "TCP_lwIP", "TCP_NSC", "TCP_None")); // tcp implementation (e.g. ~TCP, ~TCP_lwIP, ~TCP_NSC) or ~TCPSpoof string udpType = default(firstAvailable("UDP","UDP_None")); string sctpType = default(firstAvailable("SCTP","SCTP_None")); IPForward = default(false); // disable routing by default networkLayer.proxyARP = default(false); submodules: tcpApp[numTcpApps]: <> like ITCPApp { parameters: @display("p=186,54,row"); } tcp: <tcpType> like ITCP if numTcpApps>0 { parameters: @display("p=186,141"); } udpApp[numUdpApps]: <> like IUDPApp { parameters: @display("p=336,54,row"); } udp: <udpType> like IUDP if numUdpApps>0 { parameters: @display("p=336,141"); } sctpApp[numSctpApps]: <> like ISCTPApp { parameters: @display("p=501,54,row"); } sctp: <sctpType> like ISCTP if numSctpApps>0 { @display("p=501,141"); } pingApp[numPingApps]: <default("PingApp")> like IPingApp { parameters: @display("p=501,230"); } connections allowunconnected: for i=0..numTcpApps-1 { tcpApp[i].tcpOut --> tcp.appIn++; tcpApp[i].tcpIn <-- tcp.appOut++; } tcp.ipOut --> networkLayer.tcpIn if numTcpApps>0; tcp.ipIn <-- networkLayer.tcpOut if numTcpApps>0; for i=0..numUdpApps-1 { udpApp[i].udpOut --> udp.appIn++; udpApp[i].udpIn <-- udp.appOut++; } udp.ipOut --> networkLayer.udpIn if numUdpApps>0; udp.ipIn <-- networkLayer.udpOut if numUdpApps>0; for i=0..numSctpApps-1 { sctpApp[i].sctpOut --> sctp.from_appl++; sctp.to_appl++ --> sctpApp[i].sctpIn; } sctp.to_ip --> networkLayer.sctpIn if numSctpApps>0; networkLayer.sctpOut --> sctp.from_ip if numSctpApps>0; for i=0..numPingApps-1 { networkLayer.pingOut++ --> pingApp[i].pingIn; networkLayer.pingIn++ <-- pingApp[i].pingOut; } }