Lines 112-118
Icmpv4L4Protocol::SendDestUnreach (Ipv4H
|
Link Here
|
---|
|
112 |
unreach.SetHeader (header); |
112 |
unreach.SetHeader (header); |
113 |
unreach.SetData (orgData); |
113 |
unreach.SetData (orgData); |
114 |
p->AddHeader (unreach); |
114 |
p->AddHeader (unreach); |
115 |
SendMessage (p, header.GetSource (), Icmpv4Header::DEST_UNREACH, code); |
115 |
SendMessage (p, header.GetSource (), Icmpv4Header::ICMP_DEST_UNREACH, code); |
116 |
} |
116 |
} |
117 |
|
117 |
|
118 |
void |
118 |
void |
Lines 124-130
Icmpv4L4Protocol::SendTimeExceededTtl (I
|
Link Here
|
---|
|
124 |
time.SetHeader (header); |
124 |
time.SetHeader (header); |
125 |
time.SetData (orgData); |
125 |
time.SetData (orgData); |
126 |
p->AddHeader (time); |
126 |
p->AddHeader (time); |
127 |
SendMessage (p, header.GetSource (), Icmpv4Header::TIME_EXCEEDED, Icmpv4TimeExceeded::TIME_TO_LIVE); |
127 |
SendMessage (p, header.GetSource (), Icmpv4Header::ICMP_TIME_EXCEEDED, Icmpv4TimeExceeded::TIME_TO_LIVE); |
128 |
} |
128 |
} |
129 |
|
129 |
|
130 |
void |
130 |
void |
Lines 139-145
Icmpv4L4Protocol::HandleEcho (Ptr<Packet
|
Link Here
|
---|
|
139 |
Icmpv4Echo echo; |
139 |
Icmpv4Echo echo; |
140 |
p->RemoveHeader (echo); |
140 |
p->RemoveHeader (echo); |
141 |
reply->AddHeader (echo); |
141 |
reply->AddHeader (echo); |
142 |
SendMessage (reply, destination, source, Icmpv4Header::ECHO_REPLY, 0); |
142 |
SendMessage (reply, destination, source, Icmpv4Header::ICMP_ECHO_REPLY, 0); |
143 |
} |
143 |
} |
144 |
void |
144 |
void |
145 |
Icmpv4L4Protocol::Forward (Ipv4Address source, Icmpv4Header icmp, |
145 |
Icmpv4L4Protocol::Forward (Ipv4Address source, Icmpv4Header icmp, |
Lines 197-209
Icmpv4L4Protocol::Receive(Ptr<Packet> p,
|
Link Here
|
---|
|
197 |
Icmpv4Header icmp; |
197 |
Icmpv4Header icmp; |
198 |
p->RemoveHeader (icmp); |
198 |
p->RemoveHeader (icmp); |
199 |
switch (icmp.GetType ()) { |
199 |
switch (icmp.GetType ()) { |
200 |
case Icmpv4Header::ECHO: |
200 |
case Icmpv4Header::ICMP_ECHO: |
201 |
HandleEcho (p, icmp, source, destination); |
201 |
HandleEcho (p, icmp, source, destination); |
202 |
break; |
202 |
break; |
203 |
case Icmpv4Header::DEST_UNREACH: |
203 |
case Icmpv4Header::ICMP_DEST_UNREACH: |
204 |
HandleDestUnreach (p, icmp, source, destination); |
204 |
HandleDestUnreach (p, icmp, source, destination); |
205 |
break; |
205 |
break; |
206 |
case Icmpv4Header::TIME_EXCEEDED: |
206 |
case Icmpv4Header::ICMP_TIME_EXCEEDED: |
207 |
HandleTimeExceeded (p, icmp, source, destination); |
207 |
HandleTimeExceeded (p, icmp, source, destination); |
208 |
break; |
208 |
break; |
209 |
default: |
209 |
default: |