Represents an IPv6 network layer (L3).
The module has ports to connect to a higher layer (TCP,UDP) and several network interfaces.
The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.
If a module type shows up more than once, that means it has been defined in more than one NED file.
Router6 (compound module) |
IPv6 router. |
StandardHost6 (compound module) |
Name | Value | Description |
---|---|---|
display | i=block/fork |
Name | Direction | Size | Description |
---|---|---|---|
ifIn [ ] | input | ||
ifOut [ ] | output | ||
tcpIn | input | ||
tcpOut | output | ||
udpIn | input | ||
udpOut | output | ||
rsvpIn | input | ||
rsvpOut | output | ||
ospfIn | input | ||
ospfOut | output | ||
pingIn | input | ||
pingOut | output | ||
errorOut | output |
Name | Type | Default value | Description |
---|---|---|---|
ipv6.procDelay | double | 0s |
// // Represents an IPv6 network layer (L3). // // The module has ports to connect to a higher layer (TCP,UDP) and // several network interfaces. // module NetworkLayer6 { parameters: @display("i=block/fork"); gates: input ifIn[] @labels(IPv6Datagram); output ifOut[] @labels(IPv6Datagram); input tcpIn @labels(TCPSegment,IPv6ControlInfo/down); output tcpOut @labels(TCPSegment,IPv6ControlInfo/up); input udpIn @labels(UDPPacket,IPv6ControlInfo/down); output udpOut @labels(UDPPacket,IPv6ControlInfo/up); input rsvpIn @labels(IPv6ControlInfo/down); output rsvpOut @labels(IPv6ControlInfo/up); input ospfIn @labels(IPv6ControlInfo/down); output ospfOut @labels(IPv6ControlInfo/up); input pingIn; output pingOut; output errorOut; submodules: ipv6: IPv6 { parameters: protocolMapping = "6:0,17:1,46:2,89:3"; @display("p=84,129"); gates: transportIn[4]; transportOut[4]; queueIn[sizeof(ifIn)]; queueOut[sizeof(ifIn)]; } icmpv6: ICMPv6 { parameters: @display("p=208,79"); } ipv6ErrorHandling: IPv6ErrorHandling { parameters: @display("p=280,79"); } neighbourDiscovery: IPv6NeighbourDiscovery { parameters: @display("p=208,171"); } connections allowunconnected: // FIXME remove 'nocheck'! // IPv6 to transport Layer ipv6.transportOut[0] --> { @display("m=n"); } --> tcpOut; ipv6.transportIn[0] <-- { @display("m=n"); } <-- tcpIn; ipv6.transportOut[1] --> { @display("m=n"); } --> udpOut; ipv6.transportIn[1] <-- { @display("m=n"); } <-- udpIn; ipv6.transportOut[2] --> { @display("m=n"); } --> rsvpOut; ipv6.transportIn[2] <-- { @display("m=n"); } <-- rsvpIn; ipv6.transportOut[3] --> { @display("m=n"); } --> ospfOut; ipv6.transportIn[3] <-- { @display("m=n"); } <-- ospfIn; // IPv6 to ICMPv6 ipv6.icmpOut --> icmpv6.ipv6In; ipv6.icmpIn <-- icmpv6.ipv6Out; // ICMPv6 to IPv6ErrorHandling icmpv6.errorOut --> ipv6ErrorHandling.in; // ICMPv6 to ping I/O icmpv6.pingOut --> pingOut; icmpv6.pingIn <-- pingIn; // IPv6 to Neighbour Discovery ipv6.ndOut --> neighbourDiscovery.ipv6In; ipv6.ndIn <-- neighbourDiscovery.ipv6Out; // IPv6 to L2 for i=0..sizeof(ifOut)-1 { ifIn[i] --> { @display("m=s"); } --> ipv6.queueIn[i]; ifOut[i] <-- { @display("m=s"); } <-- ipv6.queueOut[i]; } }