File Nodes/IPv6/Router6.ned
Contains:
import
"NotificationBoard",
"InterfaceTable",
"RoutingTable6",
"PPPInterface",
"EthernetInterface",
"NetworkLayer6";
module Router6
gates:
in: in[];
out: out[];
in: ethIn[];
out: ethOut[];
submodules:
notificationBoard: NotificationBoard;
display: "p=60,60;i=block/control";
interfaceTable: InterfaceTable;
display: "p=150,60;i=block/table";
routingTable6: RoutingTable6;
parameters:
isRouter = true;
display: "p=240,60;i=block/table";
networkLayer: NetworkLayer6;
gatesizes:
ifIn[sizeof(out)+sizeof(ethOut)],
ifOut[sizeof(out)+sizeof(ethOut)];
display: "p=200,141;i=block/fork;q=queue";
ppp: PPPInterface[sizeof(out)];
display: "p=90,257,row,110;q=l2queue;i=block/ifcard";
eth: EthernetInterface[sizeof(ethOut)];
display: "p=145,257,row,110;q=l2queue;i=block/ifcard";
connections nocheck:
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;
endmodule