mbox series

[net,v3,0/6] rxrpc: Miscellaneous fixes

Message ID 166203518656.271364.567426359603115318.stgit@warthog.procyon.org.uk (mailing list archive)
Headers show
Series rxrpc: Miscellaneous fixes | expand

Message

David Howells Sept. 1, 2022, 12:26 p.m. UTC
Here are some fixes for AF_RXRPC:

 (1) Fix the handling of ICMP/ICMP6 packets.  This is a problem due to
     rxrpc being switched to acting as a UDP tunnel, thereby allowing it to
     steal the packets before they go through the UDP Rx queue.  UDP
     tunnels can't get ICMP/ICMP6 packets, however.  This patch adds an
     additional encap hook so that they can.

 (2) Fix the encryption routines in rxkad to handle packets that have more
     than three parts correctly.  The problem is that ->nr_frags doesn't
     count the initial fragment, so the sglist ends up too short.

 (3) Fix a problem with destruction of the local endpoint potentially
     getting repeated.

 (4) Fix the calculation of the time at which to resend.
     jiffies_to_usecs() gives microseconds, not nanoseconds.

 (5) Fix AFS to work out when callback promises and locks expire based on
     the time an op was issued rather than the time the first reply packet
     arrives.  We don't know how long the server took between calculating
     the expiry interval and transmitting the reply.

 (6) Given (5), rxrpc_get_reply_time() is no longer used, so remove it.

The patches are tagged here:

	git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
	rxrpc-fixes-20220901

and can also be found on the following branch:

	https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=rxrpc-fixes

Changes
=======
ver #3)
 - Fixed an uninitialised variable.

ver #2)
 - Added some missing cpp-conditionals for rxrpc IPV6 support.
 - Replaced the callback promise time calculation patch with one that used
   the time of op issue rather than time of first reply packet as a base.
 - Added an additional patch to remove the rxrpc function to retrieve the
   time of first reply.

Link: http://lists.infradead.org/pipermail/linux-afs/2022-August/005547.html # v1
Link: http://lists.infradead.org/pipermail/linux-afs/2022-August/005552.html # v2

David
---
David Howells (6):
      rxrpc: Fix ICMP/ICMP6 error handling
      rxrpc: Fix an insufficiently large sglist in rxkad_verify_packet_2()
      rxrpc: Fix local destruction being repeated
      rxrpc: Fix calc of resend age
      afs: Use the operation issue time instead of the reply time for callbacks
      rxrpc: Remove rxrpc_get_reply_time() which is no longer used


 Documentation/networking/rxrpc.rst |  11 --
 fs/afs/flock.c                     |   2 +-
 fs/afs/fsclient.c                  |   2 +-
 fs/afs/internal.h                  |   3 +-
 fs/afs/rxrpc.c                     |   7 +-
 fs/afs/yfsclient.c                 |   3 +-
 include/linux/udp.h                |   1 +
 include/net/af_rxrpc.h             |   2 -
 include/net/udp_tunnel.h           |   4 +
 net/ipv4/udp.c                     |   2 +
 net/ipv4/udp_tunnel_core.c         |   1 +
 net/ipv6/udp.c                     |   5 +-
 net/rxrpc/ar-internal.h            |   1 +
 net/rxrpc/call_event.c             |   2 +-
 net/rxrpc/local_object.c           |   4 +
 net/rxrpc/peer_event.c             | 293 +++++++++++++++++++++++++----
 net/rxrpc/recvmsg.c                |  43 -----
 net/rxrpc/rxkad.c                  |   2 +-
 18 files changed, 280 insertions(+), 108 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org Sept. 2, 2022, 12:10 p.m. UTC | #1
Hello:

This series was applied to netdev/net.git (master)
by David Howells <dhowells@redhat.com>:

On Thu, 01 Sep 2022 13:26:26 +0100 you wrote:
> Here are some fixes for AF_RXRPC:
> 
>  (1) Fix the handling of ICMP/ICMP6 packets.  This is a problem due to
>      rxrpc being switched to acting as a UDP tunnel, thereby allowing it to
>      steal the packets before they go through the UDP Rx queue.  UDP
>      tunnels can't get ICMP/ICMP6 packets, however.  This patch adds an
>      additional encap hook so that they can.
> 
> [...]

Here is the summary with links:
  - [net,v3,1/6] rxrpc: Fix ICMP/ICMP6 error handling
    https://git.kernel.org/netdev/net/c/ac56a0b48da8
  - [net,v3,2/6] rxrpc: Fix an insufficiently large sglist in rxkad_verify_packet_2()
    https://git.kernel.org/netdev/net/c/0d40f728e283
  - [net,v3,3/6] rxrpc: Fix local destruction being repeated
    https://git.kernel.org/netdev/net/c/d3d863036d68
  - [net,v3,4/6] rxrpc: Fix calc of resend age
    https://git.kernel.org/netdev/net/c/214a9dc7d852
  - [net,v3,5/6] afs: Use the operation issue time instead of the reply time for callbacks
    https://git.kernel.org/netdev/net/c/7903192c4b4a
  - [net,v3,6/6] rxrpc: Remove rxrpc_get_reply_time() which is no longer used
    https://git.kernel.org/netdev/net/c/21457f4a91cb

You are awesome, thank you!