File Nodes/INET/WirelessHost2.ned
Contains:
import
"NotificationBoard",
"InterfaceTable",
"RoutingTable",
"TCPApp.ned",
"TCP.ned",
"UDP",
"UDPApp",
"NetworkLayer",
"PingApp",
"PPPInterface",
"EthernetInterface",
"Nic80211";
module WirelessHost2
parameters:
numTcpApps: numeric const,
numUdpApps: numeric const,
tcpAppType: string,
udpAppType: string,
IPForward: bool,
routingFile: string;
gates:
in: in[];
out: out[];
in: ethIn[];
out: ethOut[];
in: radioIn[];
submodules:
notificationBoard: NotificationBoard;
display: "p=60,70;i=block/control";
interfaceTable: InterfaceTable;
display: "p=60,150;i=block/table";
routingTable: RoutingTable;
parameters:
IPForward = IPForward,
routerId = "",
routingFile = routingFile;
display: "p=60,230;i=block/table";
tcpApp: tcpAppType[numTcpApps] like TCPApp;
display: "p=163,67;i=block/app";
tcp: TCP;
display: "p=163,154;i=block/wheelbarrow";
udpApp: udpAppType[numUdpApps] like UDPApp;
display: "i=block/app;p=272,67";
udp: UDP;
display: "p=272,154;i=block/transport";
pingApp: PingApp;
display: "i=block/app;p=343,200";
networkLayer: NetworkLayer;
parameters:
proxyARP = false;
gatesizes:
ifIn[sizeof(out)+sizeof(ethOut)+sizeof(radioIn)],
ifOut[sizeof(out)+sizeof(ethOut)+sizeof(radioIn)];
display: "p=248,247;i=block/fork;q=queue";
ppp: PPPInterface[sizeof(out)];
display: "p=205,350,row,90;q=txQueue;i=block/ifcard";
eth: EthernetInterface[sizeof(ethOut)];
display: "p=240,350,row,90;q=txQueue;i=block/ifcard";
wlan: Nic80211[sizeof(radioIn)];
display: "p=120,350,row,90;q=queue;i=block/ifcard";
mobility: BasicMobility;
display: "p=149,307;i=block/cogwheel_s";
connections nocheck:
for i=0..numTcpApps-1 do
tcpApp[i].tcpOut --> tcp.from_appl++;
tcpApp[i].tcpIn <-- tcp.to_appl++;
endfor;
tcp.to_ip --> networkLayer.TCPIn;
tcp.from_ip <-- networkLayer.TCPOut;
for i=0..numUdpApps-1 do
udpApp[i].to_udp --> udp.from_app++;
udpApp[i].from_udp <-- udp.to_app++;
endfor;
udp.to_ip --> networkLayer.UDPIn;
udp.from_ip <-- networkLayer.UDPOut;
networkLayer.pingOut --> pingApp.pingIn;
networkLayer.pingIn <-- pingApp.pingOut;
for i=0..sizeof(out)-1 do
in[i] --> ppp[i].physIn;
out[i] <-- ppp[i].physOut;
ppp[i].netwOut --> networkLayer.ifIn[i];
ppp[i].netwIn <-- networkLayer.ifOut[i];
endfor;
for i=0..sizeof(ethOut)-1 do
ethIn[i] --> eth[i].physIn;
ethOut[i] <-- eth[i].physOut;
eth[i].netwOut --> networkLayer.ifIn[sizeof(out)+i];
eth[i].netwIn <-- networkLayer.ifOut[sizeof(out)+i];
endfor;
for i=0..sizeof(radioIn)-1 do
radioIn[i] --> wlan[i].radioIn;
wlan[i].uppergateOut --> networkLayer.ifIn[sizeof(out)+sizeof(ethOut)+i];
wlan[i].uppergateIn <-- networkLayer.ifOut[sizeof(out)+sizeof(ethOut)+i];
endfor;
endmodule