On 08/29/2013 04:28 PM, Neil Horman wrote:
On Thu, Aug 29, 2013 at 01:06:23PM -0700, Les Howell wrote:
On Thu, 2013-08-29 at 18:04 +0100, Richard W.M. Jones wrote:
On Thu, Aug 29, 2013 at 10:02:27AM -0700, John Chludzinski wrote:
I've had a debate with some co-workers about whether or not a message
that's sent to the loopback interface makes it way into the IP layer and
is fragmented before flowing back up the network stack.  Does it?
Can you please not keep creating new top level threads.

Furthermore, this is not an appropriate mailing list to discuss any
general (not even Linux) networking issues that you may have.  It's
more appropriate for a venue such as stackoverflow.

Rich.
I am unsure of the standards for this.  I am also curious about the
Fedora implementation.  I would suspect that the loopback mechanism
would be implementation dependent, and that the method used on a
particular system would provide valuable information.

A usergroup such as stackoverflow would not likely have that
information.  Therefore this would seem to be the most accurate source
for such information IMO.

A short and reasonable answer would be beneficial to the group.

The answer is simple, and as always, contained in the source.  lo is defined in:
drivers/net/loopback.c

It registers an interface using the network driver api, and contains a transmit
routine.  Therefore, all frames that go to the loopback interface go through the
entire routing stack, and get looped at the driver.

honestly, doing anything less tends to get pretty messy anyway, as you start to
have to handle all sorts of special cases.  Consider the possibility that a
packet socket is listening on lo when you transmit a tcp frame out of it.  If
you looped it back higher in the stack, you'd have to be sure to clone the skb
and offer the packet to the packet protocol somewhere in the ip stack.  Multiply
that by every protocol listener available in the kernel and the fan out gets
unmanageable.  Its better to just go down to the driver layer and loop there.

Neil

--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
Hello,

I believe in later kernels there is the option to bypass the tcp stack on the 
loopback
which will be enabled by default. See this thread.
http://marc.info/?l=linux-netdev&m=134456025709318&w=3



--
Stephen Clark
*NetWolves*
Director of Technology
Phone: 813-579-3200
Fax: 813-882-0209
Email: steve.cl...@netwolves.com
http://www.netwolves.com
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Reply via email to