cvs commit: src/sys/kern uipc_domain.c uipc_msg.c uipc_proto.c src/sys/net netisr.c netisr.h netmsg.h rtsock.c src/sys/net/gre if_gre.c src/sys/net/stf if_stf.c src/sys/netinet in_gif.c in_proto.c ip_demux.c ip_icmp.c tcp_var.h udp_var.h ...

Sepherosa Ziehau sephe at crater.dragonflybsd.org
Sun Oct 26 19:57:46 PDT 2008


sephe       2008/10/26 19:56:30 PDT

DragonFly src repository

  Modified files:
    sys/kern             uipc_domain.c uipc_msg.c uipc_proto.c 
    sys/net              netisr.c netisr.h netmsg.h rtsock.c 
    sys/net/gre          if_gre.c 
    sys/net/stf          if_stf.c 
    sys/netinet          in_gif.c in_proto.c ip_demux.c ip_icmp.c 
                         tcp_var.h udp_var.h 
    sys/netinet6         icmp6.c in6_gif.c in6_proto.c 
                         ip6protosw.h 
    sys/sys              protosw.h socketops.h 
  Log:
  pr_ctlinput is usually called when certains types of ICMP packets are received.
  However, the processing of ICMP packets happens in netisr0, which means the
  thread context, in which pr_ctlinput is called, is not correct.  To handle this
  following two fixes are applied:
  - Add pr_ctlport to protosw and ip6protosw, which could be used to locate
    correct msgport to call pr_ctlinput for specific protocol
  - All necessary information needed by pr_ctlinput are gather into one netmsg,
    and this netmsg is delivered synchronously (some information is on the stack)
  
  Note for new protocol implementation:
  pr_ctlinput and pr_ctlport should be both NULL or both non-NULL.
  
  Obtained-from: dillon@
  Tested-by: pavalos@
  
  Revision  Changes    Path
  1.13      +5 -5      src/sys/kern/uipc_domain.c
  1.26      +40 -0     src/sys/kern/uipc_msg.c
  1.7       +4 -4      src/sys/kern/uipc_proto.c
  1.48      +7 -0      src/sys/net/netisr.c
  1.38      +1 -0      src/sys/net/netisr.h
  1.10      +8 -0      src/sys/net/netmsg.h
  1.45      +1 -1      src/sys/net/rtsock.c
  1.22      +2 -2      src/sys/net/gre/if_gre.c
  1.25      +1 -1      src/sys/net/stf/if_stf.c
  1.18      +1 -1      src/sys/netinet/in_gif.c
  1.17      +29 -29    src/sys/netinet/in_proto.c
  1.42      +51 -0     src/sys/netinet/ip_demux.c
  1.32      +4 -5      src/sys/netinet/ip_icmp.c
  1.42      +2 -0      src/sys/netinet/tcp_var.h
  1.18      +1 -0      src/sys/netinet/udp_var.h
  1.31      +5 -7      src/sys/netinet6/icmp6.c
  1.18      +1 -1      src/sys/netinet6/in6_gif.c
  1.14      +18 -18    src/sys/netinet6/in6_proto.c
  1.9       +1 -0      src/sys/netinet6/ip6protosw.h
  1.24      +5 -1      src/sys/sys/protosw.h
  1.14      +2 -0      src/sys/sys/socketops.h


http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_domain.c.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_msg.c.diff?r1=1.25&r2=1.26&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_proto.c.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/netisr.c.diff?r1=1.47&r2=1.48&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/netisr.h.diff?r1=1.37&r2=1.38&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/netmsg.h.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/rtsock.c.diff?r1=1.44&r2=1.45&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/gre/if_gre.c.diff?r1=1.21&r2=1.22&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/stf/if_stf.c.diff?r1=1.24&r2=1.25&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet/in_gif.c.diff?r1=1.17&r2=1.18&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet/in_proto.c.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet/ip_demux.c.diff?r1=1.41&r2=1.42&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet/ip_icmp.c.diff?r1=1.31&r2=1.32&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet/tcp_var.h.diff?r1=1.41&r2=1.42&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet/udp_var.h.diff?r1=1.17&r2=1.18&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet6/icmp6.c.diff?r1=1.30&r2=1.31&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet6/in6_gif.c.diff?r1=1.17&r2=1.18&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet6/in6_proto.c.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet6/ip6protosw.h.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/protosw.h.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/socketops.h.diff?r1=1.13&r2=1.14&f=u





More information about the Commits mailing list