Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 18 Jun 2011 09:34:03 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/net if_gre.c if_gre.h
Message-ID:  <201106180934.p5I9YKC9005485@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
bz          2011-06-18 09:34:03 UTC

  FreeBSD src repository

  Modified files:
    sys/net              if_gre.c if_gre.h 
  Log:
  SVN rev 223223 on 2011-06-18 09:34:03Z by bz
  
  gre(4) was using a field in the softc to detect possible recursion.
  On MP systems this is not a usable solution anymore and could easily
  lead to false positives triggering enough logging that even  using
  the console was no longer usable (multiple parallel ping -f can do).
  
  Switch to the suggested solution of using mbuf tags to carry per
  packet state between gre_output() invocations.  Contrary to the
  proposed solution modelled after gif(4) only allocate one mbuf tag
  per packet rather than per packet and per gre_output() pass through.
  
  As the sysctl to control the possible valid (gre in gre) nestings does
  no sanity checks, make sure to always allocate space in the mbuf tag
  for at least one, and at most 255 possible gre interfaces to detect
  loops in addition to the counter.
  
  Submitted by:   Cristian KLEIN (cristi net.utcluj.ro) (original version)
  PR:             kern/114714
  Reviewed by:    Cristian KLEIN (cristi net.utcluj.ro)
  Reviewed bu:    Wooseog Choi (ben_choi hotmail.com)
  Sponsored by:   Sandvine Incorporated
  MFC after:      1 week
  
  Revision  Changes    Path
  1.61      +72 -11    src/sys/net/if_gre.c
  1.17      +0 -2      src/sys/net/if_gre.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106180934.p5I9YKC9005485>