1. 01 11月, 2011 1 次提交
  2. 11 5月, 2011 1 次提交
    • S
      xfrm: Assign the inner mode output function to the dst entry · 43a4dea4
      Steffen Klassert 提交于
      As it is, we assign the outer modes output function to the dst entry
      when we create the xfrm bundle. This leads to two problems on interfamily
      scenarios. We might insert ipv4 packets into ip6_fragment when called
      from xfrm6_output. The system crashes if we try to fragment an ipv4
      packet with ip6_fragment. This issue was introduced with git commit
      ad0081e4 (ipv6: Fragment locally generated tunnel-mode IPSec6 packets
      as needed). The second issue is, that we might insert ipv4 packets in
      netfilter6 and vice versa on interfamily scenarios.
      
      With this patch we assign the inner mode output function to the dst entry
      when we create the xfrm bundle. So xfrm4_output/xfrm6_output from the inner
      mode is used and the right fragmentation and netfilter functions are called.
      We switch then to outer mode with the output_finish functions.
      Signed-off-by: NSteffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      43a4dea4
  3. 23 4月, 2011 1 次提交
  4. 13 3月, 2011 4 次提交
  5. 24 2月, 2011 1 次提交
  6. 23 2月, 2011 1 次提交
  7. 21 9月, 2010 1 次提交
    • T
      xfrm: Allow different selector family in temporary state · 8444cf71
      Thomas Egerer 提交于
      The family parameter xfrm_state_find is used to find a state matching a
      certain policy. This value is set to the template's family
      (encap_family) right before xfrm_state_find is called.
      The family parameter is however also used to construct a temporary state
      in xfrm_state_find itself which is wrong for inter-family scenarios
      because it produces a selector for the wrong family. Since this selector
      is included in the xfrm_user_acquire structure, user space programs
      misinterpret IPv6 addresses as IPv4 and vice versa.
      This patch splits up the original init_tempsel function into a part that
      initializes the selector respectively the props and id of the temporary
      state, to allow for differing ip address families whithin the state.
      Signed-off-by: NThomas Egerer <thomas.egerer@secunet.com>
      Signed-off-by: NSteffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8444cf71
  8. 25 11月, 2008 1 次提交
  9. 05 11月, 2008 1 次提交
  10. 27 3月, 2008 1 次提交
    • H
      [IPSEC]: Fix BEET output · 732c8bd5
      Herbert Xu 提交于
      The IPv6 BEET output function is incorrectly including the inner
      header in the payload to be protected.  This causes a crash as
      the packet doesn't actually have that many bytes for a second
      header.
      
      The IPv4 BEET output on the other hand is broken when it comes
      to handling an inner IPv6 header since it always assumes an
      inner IPv4 header.
      
      This patch fixes both by making sure that neither BEET output
      function touches the inner header at all.  All access is now
      done through the protocol-independent cb structure.  Two new
      attributes are added to make this work, the IP header length
      and the IPv4 option length.  They're filled in by the inner
      mode's output function.
      
      Thanks to Joakim Koskela for finding this problem.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      732c8bd5
  11. 29 1月, 2008 7 次提交
    • D
      [IPSEC]: Kill afinfo->nf_post_routing · 294b4baf
      David S. Miller 提交于
      After changeset:
      
      	[NETFILTER]: Introduce NF_INET_ hook values
      
      It always evaluates to NF_INET_POST_ROUTING.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      294b4baf
    • P
      [NETFILTER]: Introduce NF_INET_ hook values · 6e23ae2a
      Patrick McHardy 提交于
      The IPv4 and IPv6 hook values are identical, yet some code tries to figure
      out the "correct" value by looking at the address family. Introduce NF_INET_*
      values for both IPv4 and IPv6. The old values are kept in a #ifndef __KERNEL__
      section for userspace compatibility.
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      Acked-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6e23ae2a
    • H
      [IPSEC]: Remove nhoff from xfrm_input · 60d5fcfb
      Herbert Xu 提交于
      The nhoff field isn't actually necessary in xfrm_input.  For tunnel
      mode transforms we now throw away the output IP header so it makes no
      sense to fill in the nexthdr field.  For transport mode we can now let
      the function transport_finish do the setting and it knows where the
      nexthdr field is.
      
      The only other thing that needs the nexthdr field to be set is the
      header extraction code.  However, we can simply move the protocol
      extraction out of the generic header extraction.
      
      We want to minimise the amount of info we have to carry around between
      transforms as this simplifies the resumption process for async crypto.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      60d5fcfb
    • H
      [IPSEC]: Merge most of the input path · 716062fd
      Herbert Xu 提交于
      As part of the work on asynchronous cryptographic operations, we need
      to be able to resume from the spot where they occur.  As such, it
      helps if we isolate them to one spot.
      
      This patch moves most of the remaining family-specific processing into
      the common input code.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      716062fd
    • H
      [IPSEC]: Merge most of the output path · 862b82c6
      Herbert Xu 提交于
      As part of the work on asynchrnous cryptographic operations, we need
      to be able to resume from the spot where they occur.  As such, it
      helps if we isolate them to one spot.
      
      This patch moves most of the remaining family-specific processing into
      the common output code.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      862b82c6
    • H
      [IPSEC]: Separate inner/outer mode processing on input · 227620e2
      Herbert Xu 提交于
      With inter-family transforms the inner mode differs from the outer
      mode.  Attempting to handle both sides from the same function means
      that it needs to handle both IPv4 and IPv6 which creates duplication
      and confusion.
      
      This patch separates the two parts on the input path so that each
      function deals with one family only.
      
      In particular, the functions xfrm4_extract_inut/xfrm6_extract_inut
      moves the pertinent fields from the IPv4/IPv6 IP headers into a
      neutral format stored in skb->cb.  This is then used by the inner mode
      input functions to modify the inner IP header.  In this way the input
      function no longer has to know about the outer address family.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      227620e2
    • H
      [IPSEC]: Separate inner/outer mode processing on output · 36cf9acf
      Herbert Xu 提交于
      With inter-family transforms the inner mode differs from the outer
      mode.  Attempting to handle both sides from the same function means
      that it needs to handle both IPv4 and IPv6 which creates duplication
      and confusion.
      
      This patch separates the two parts on the output path so that each
      function deals with one family only.
      
      In particular, the functions xfrm4_extract_output/xfrm6_extract_output
      moves the pertinent fields from the IPv4/IPv6 IP headers into a
      neutral format stored in skb->cb.  This is then used by the outer mode
      output functions to write the outer IP header.  In this way the output
      function no longer has to know about the inner address family.
      
      Since the extract functions are only called by tunnel modes (the only
      modes that can support inter-family transforms), I've also moved the
      xfrm*_tunnel_check_size calls into them.  This allows the correct ICMP
      message to be sent as opposed to now where you might call icmp_send
      with an IPv6 packet and vice versa.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      36cf9acf
  12. 18 10月, 2007 1 次提交
    • H
      [IPSEC]: Store afinfo pointer in xfrm_mode · 17c2a42a
      Herbert Xu 提交于
      It is convenient to have a pointer from xfrm_state to address-specific
      functions such as the output function for a family.  Currently the
      address-specific policy code calls out to the xfrm state code to get
      those pointers when we could get it in an easier way via the state
      itself.
      
      This patch adds an xfrm_state_afinfo to xfrm_mode (since they're
      address-specific) and changes the policy code to use it.  I've also
      added an owner field to do reference counting on the module providing
      the afinfo even though it isn't strictly necessary today since IPv6
      can't be unloaded yet.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      17c2a42a
  13. 09 2月, 2007 1 次提交
  14. 29 9月, 2006 1 次提交
  15. 23 9月, 2006 6 次提交
  16. 18 6月, 2006 1 次提交
    • H
      [IPSEC] xfrm: Undo afinfo lock proliferation · 546be240
      Herbert Xu 提交于
      The number of locks used to manage afinfo structures can easily be reduced
      down to one each for policy and state respectively.  This is based on the
      observation that the write locks are only held by module insertion/removal
      which are very rare events so there is no need to further differentiate
      between the insertion of modules like ipv6 versus esp6.
      
      The removal of the read locks in xfrm4_policy.c/xfrm6_policy.c might look
      suspicious at first.  However, after you realise that nobody ever takes
      the corresponding write lock you'll feel better :)
      
      As far as I can gather it's an attempt to guard against the removal of
      the corresponding modules.  Since neither module can be unloaded at all
      we can leave it to whoever fixes up IPv6 unloading :)
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      546be240
  17. 14 1月, 2006 1 次提交
  18. 30 8月, 2005 1 次提交
    • A
      [IPV4]: possible cleanups · 0742fd53
      Adrian Bunk 提交于
      This patch contains the following possible cleanups:
      - make needlessly global code static
      - #if 0 the following unused global function:
        - xfrm4_state.c: xfrm4_state_fini
      - remove the following unneeded EXPORT_SYMBOL's:
        - ip_output.c: ip_finish_output
        - ip_output.c: sysctl_ip_default_ttl
        - fib_frontend.c: ip_dev_find
        - inetpeer.c: inet_peer_idlock
        - ip_options.c: ip_options_compile
        - ip_options.c: ip_options_undo
        - net/core/request_sock.c: sysctl_max_syn_backlog
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0742fd53
  19. 21 6月, 2005 1 次提交
    • H
      [IPSEC]: Add XFRM_STATE_NOPMTUDISC flag · dd87147e
      Herbert Xu 提交于
      This patch adds the flag XFRM_STATE_NOPMTUDISC for xfrm states.  It is
      similar to the nopmtudisc on IPIP/GRE tunnels.  It only has an effect
      on IPv4 tunnel mode states.  For these states, it will ensure that the
      DF flag is always cleared.
      
      This is primarily useful to work around ICMP blackholes.
      
      In future this flag could also allow a larger MTU to be set within the
      tunnel just like IPIP/GRE tunnels.  This could be useful for short haul
      tunnels where temporary fragmentation outside the tunnel is desired over
      smaller fragments inside the tunnel.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Acked-by: NJames Morris <jmorris@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dd87147e
  20. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4