Hi Steve, On 1/13/25 11:23 AM, Steve Dickson wrote: > Hey Anna, > > On 1/8/25 4:37 PM, Anna Schumaker wrote: >> From: Anna Schumaker <anna.schumaker@xxxxxxxxxx> >> >> This is used to add an xprt to the switch at runtime. >> >> Signed-off-by: Anna Schumaker <anna.schumaker@xxxxxxxxxx> >> --- >> tools/rpcctl/rpcctl.man | 4 ++++ >> tools/rpcctl/rpcctl.py | 11 +++++++++++ >> 2 files changed, 15 insertions(+) >> >> diff --git a/tools/rpcctl/rpcctl.man b/tools/rpcctl/rpcctl.man >> index b87ba0df41c0..2ee168c8f3c5 100644 >> --- a/tools/rpcctl/rpcctl.man >> +++ b/tools/rpcctl/rpcctl.man >> @@ -12,6 +12,7 @@ rpcctl \- Displays SunRPC connection information >> .BR "rpcctl client show " "\fR[ \fB\-h \f| \fB\-\-help \fR] [ \fIXPRT \fR]" >> .P >> .BR "rpcctl switch" " \fR[ \fB\-h \fR| \fB\-\-help \fR] { \fBset \fR| \fBshow \fR}" >> +.BR "rpcctl switch add-xprt" " \fR[ \fB\-h \fR| \fB\-\-help \fR] [ \fISWITCH \fR]" >> .BR "rpcctl switch set" " \fR[ \fB\-h \fR| \fB\-\-help \fR] \fISWITCH \fBdstaddr \fINEWADDR" >> .BR "rpcctl switch show" " \fR[ \fB\-h \fR| \fB\-\-help \fR] [ \fISWITCH \fR]" >> .P >> @@ -29,6 +30,9 @@ Show detailed information about the RPC clients on this system. >> If \fICLIENT \fRwas provided, then only show information about a single RPC client. >> .P >> .SS rpcctl switch \fR- \fBCommands operating on groups of transports >> +.IP "\fBadd-xprt \fISWITCH" >> +Add an aditional transport to the \fISWITCH\fR. >> +Note that the new transport will take its values from the "main" transport. >> .IP "\fBset \fISWITCH \fBdstaddr \fINEWADDR" >> Change the destination address of all transports in the \fISWITCH \fRto \fINEWADDR\fR. >> \fINEWADDR \fRcan be an IP address, DNS name, or anything else resolvable by \fBgethostbyname\fR(3). >> diff --git a/tools/rpcctl/rpcctl.py b/tools/rpcctl/rpcctl.py >> index 20f90d6ca796..8722c259e909 100755 >> --- a/tools/rpcctl/rpcctl.py >> +++ b/tools/rpcctl/rpcctl.py >> @@ -223,6 +223,12 @@ class XprtSwitch: >> parser.set_defaults(func=XprtSwitch.show, switch=None) >> subparser = parser.add_subparsers() >> + add = subparser.add_parser("add-xprt", >> + help="Add an xprt to the switch") >> + add.add_argument("switch", metavar="SWITCH", nargs=1, >> + help="Name of a specific xprt switch to modify") >> + add.set_defaults(func=XprtSwitch.add_xprt) >> + >> show = subparser.add_parser("show", help="Show xprt switches") >> show.add_argument("switch", metavar="SWITCH", nargs='?', >> help="Name of a specific switch to show") >> @@ -246,6 +252,11 @@ class XprtSwitch: >> return [XprtSwitch(xprt_switches / name)] >> return [XprtSwitch(f) for f in sorted(xprt_switches.iterdir())] >> + def add_xprt(args): >> + """Handle the `rpcctl switch add-xprt` command.""" >> + for switch in XprtSwitch.get_by_name(args.switch[0]): >> + write_sysfs_file(switch.path / "xprt_switch_add_xprt", "1") >> + >> def show(args): >> """Handle the `rpcctl switch show` command.""" >> for switch in XprtSwitch.get_by_name(args.switch): > > Quick Question... Is this patch dependent on the previous > posted kernel patches (aka NFS & SUNRPC Sysfs Improvements) Thanks for checking! Yes, these patches (especially the last two) are dependent on the kernel patches. I'm in the process of updating these for a v2 with the kernel stuff. If you would rather me split this up into cleanup patches and then new feature patches, I can definitely do that! Thanks, Anna > > steved. >