ICMP implementation
Receive ICMP message from localDeliver and process it:
Receive echo/timestamp message from pingIn: encapsulate in ICMP header and send to IPSend
author: Jochen Reber date: 2.5.00, 9.5.00, 20.5.00, 9.6.00 redesign: Andras Varga 1.3.2004
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.
NetworkLayer (compound module) |
Network layer of an IP node. |
Name | Value | Description |
---|---|---|
display | i=block/control_s |
Name | Direction | Size | Description |
---|---|---|---|
localIn | input |
delivered ICMP packets |
|
pingIn | input |
ping requests from app |
|
pingOut | output |
result of ping |
|
sendOut | output |
towards network |
|
errorOut | output |
errors |
// // ICMP implementation // // Receive ICMP message from localDeliver and process it: // - echo/timestamp reply: strip ICMP header and send to pingOut // - echo/timestamp request: create reply and send to IPSend // - destination unreachable: ignore/send to IPRouting (static)? // - time exceeded: ignore ? // - parameter problem: ignore ? // - redirect ? //#FIXME question marks above... // // Receive echo/timestamp message from pingIn: encapsulate in ICMP header // and send to IPSend // // author: Jochen Reber // date: 2.5.00, 9.5.00, 20.5.00, 9.6.00 // redesign: Andras Varga 1.3.2004 // simple ICMP { parameters: @display("i=block/control_s"); gates: input localIn @labels(IPControlInfo/up); // delivered ICMP packets input pingIn; // ping requests from app output pingOut; // result of ping output sendOut @labels(IPControlInfo/down); // towards network output errorOut; // errors }