Where does loopback short circuit ?

Steve Clark sclark at netwolves.com
Fri Aug 30 11:09:16 UTC 2013


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 at 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.clark at netwolves.com
http://www.netwolves.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.fedoraproject.org/pipermail/devel/attachments/20130830/9748a60e/attachment.html>


More information about the devel mailing list