30 : m_ephemeral (49152),
53 if ((*i)->GetLocalPort () ==
port)
66 if ((*i)->GetLocalPort () ==
port &&
67 (*i)->GetLocalAddress () == addr &&
68 (*i)->GetBoundNetDevice () == boundNetDevice)
131 NS_LOG_FUNCTION (
this << boundNetDevice << localAddress << localPort << peerAddress << peerPort);
134 if ((*i)->GetLocalPort () == localPort &&
135 (*i)->GetLocalAddress () == localAddress &&
136 (*i)->GetPeerPort () == peerPort &&
137 (*i)->GetPeerAddress () == peerAddress &&
138 ((*i)->GetBoundNetDevice () == boundNetDevice || (*i)->GetBoundNetDevice () == 0))
145 endPoint->
SetPeer (peerAddress, peerPort);
176 NS_LOG_FUNCTION (
this << daddr << dport << saddr << sport << incomingInterface);
183 NS_LOG_DEBUG (
"Looking up endpoint for destination address " << daddr);
196 <<
" because endpoint can not receive packets");
203 <<
" because endpoint dport "
205 <<
" does not match packet dport " << dport);
211 if (!incomingInterface)
218 <<
" because endpoint is bound to specific device and"
220 <<
" does not match packet device " << incomingInterface->
GetDevice ());
233 if (!(localAddressMatchesExact || localAddressMatchesWildCard))
237 bool remotePeerMatchesExact = endP->
GetPeerPort () == sport;
238 bool remotePeerMatchesWildCard = endP->
GetPeerPort () == 0;
239 bool remoteAddressMatchesExact = endP->
GetPeerAddress () == saddr;
244 if (!(remotePeerMatchesExact || remotePeerMatchesWildCard))
248 if (!(remoteAddressMatchesExact || remoteAddressMatchesWildCard))
254 if (localAddressMatchesWildCard
255 && remotePeerMatchesWildCard
256 && remoteAddressMatchesWildCard)
258 retval1.push_back (endP);
260 if ((localAddressMatchesExact || (localAddressMatchesAllRouters))
261 && remotePeerMatchesWildCard
262 && remoteAddressMatchesWildCard)
264 retval2.push_back (endP);
266 if (localAddressMatchesWildCard
267 && remotePeerMatchesExact
268 && remoteAddressMatchesExact)
270 retval3.push_back (endP);
272 if (localAddressMatchesExact
273 && remotePeerMatchesExact
274 && remoteAddressMatchesExact)
276 retval4.push_back (endP);
282 if (!retval4.empty ()) retval = retval4;
283 else if (!retval3.empty ()) retval = retval3;
284 else if (!retval2.empty ()) retval = retval2;
285 else retval = retval1;
287 NS_ABORT_MSG_IF (retval.size () > 1,
"Too many endpoints - perhaps you created too many sockets without binding them to different NetDevices.");
293 uint32_t genericity = 3;
300 if ((*i)->GetLocalPort () != dport)
305 if ((*i)->GetLocalAddress () == dst && (*i)->GetPeerPort () == sport
306 && (*i)->GetPeerAddress () == src)
322 if (tmp < genericity)