Page MenuHomeFreeBSD

add support for BindConnectionToSession to the NFSv4.1/4.2 client
ClosedPublic

Authored by rmacklem on Mar 28 2021, 10:11 PM.
Tags
None
Referenced Files
Unknown Object (File)
Feb 20 2024, 6:05 AM
Unknown Object (File)
Feb 1 2024, 8:49 PM
Unknown Object (File)
Jan 12 2024, 2:42 AM
Unknown Object (File)
Jan 5 2024, 8:31 AM
Unknown Object (File)
Jan 5 2024, 8:12 AM
Unknown Object (File)
Jan 5 2024, 8:12 AM
Unknown Object (File)
Jan 3 2024, 4:31 PM
Unknown Object (File)
Dec 22 2023, 10:11 PM
Subscribers

Details

Summary

When the client side krpc does a TCP reconnect for a NFSv4.1/4.2
mount, the fore channel will be bound to the connection when
the first RPC with Sequence (almost all RPCs) is done on the
connection. However, the back channel must be explicitly bound
via BindConnectionToSession as the first RPC on the new connection.

Since the reconnect is done by the client side krpc, this patch
adds an optional upcall for the krpc to perform when a new
connection is created. This upcall is used to perform the
BindConnectionToSession.

Back channels are only configured when the nfscbd(8)
daemon is running. It is recommended to not run
nfscbd(8) until this patch is applied.

Test Plan

Tested via a NFSv4.2 mount with nfscbd(8) running
on the client by introducing a temporary network partition to the server
while capturing packets, to see that
the BindConnectionToSession was done correctly on the wire.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

rmacklem created this revision.

Well, I don't see anything wrong with the code, @rmacklem . But I'm so ignorant of the protocol that I'm afraid I'm not able to give it a very good review.

This revision was not accepted when it landed; it landed in state Needs Review.Apr 12 2021, 3:49 AM
This revision was automatically updated to reflect the committed changes.