DragonFly BSD
DragonFly commits List (threaded) for 2010-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: kernel - network protocol thread routing


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 9 Sep 2010 01:35:58 -0700 (PDT)

commit 6a704092ee2b3384906df96bf4b66575a12f38e2
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Thu Sep 9 01:32:07 2010 -0700

    kernel - network protocol thread routing
    
    * ip_input() now calls ip_mport() unconditionally and physically compares
      the port to &curthread->td_msgport.  If they do not match the packet
      will be forwarded to the correct protocol thread.
    
    * ip6_input() now unconditionally calls sw6->pr_soport() on the last
      received header and forwards the packet to the correct protocol thread.
    
      udp6, tcp6, and rip6 are now marked as terminal protocol (PR_LASTHDR).
      Though I'm not sure this is correct they must be marked this way for
      the packet to be forwarded to the correct protocol thread.
    
      This fixes an assertion panic when tcp6_input() calls tcp_input().
      tcp_input() is expecting to be run on the same protocol thread assigned
      to its socket, otherwise callout timers and other entities will get
      confused.

Summary of changes:
 sys/net/netisr.h         |    1 +
 sys/netinet/ip_input.c   |   40 +++++++++++++++++-------------
 sys/netinet6/in6_proto.c |    6 ++--
 sys/netinet6/ip6_input.c |   61 ++++++++++++++++++++++++++++++++++++++++-----
 sys/netinet6/ip6_var.h   |    4 +++
 5 files changed, 85 insertions(+), 27 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/6a704092ee2b3384906df96bf4b66575a12f38e2


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]