opnsense-src/sys/rpc
Rick Macklem 9c2065607f Change the xid for client side krpc over UDP to a global value.
Without this patch, the xid used for the client side krpc requests over
UDP was initialized for each "connection". A "connection" for UDP is
rather sketchy and for the kernel NLM a new one is created every 2minutes.
A problem with client side interoperability with a Netapp server for the NLM
was reported and it is believed to be caused by reuse of the same xid.
Although this was never completely diagnosed by the reporter, I could see
how the same xid might get reused, since it is initialized to a value
based on the TOD clock every two minutes.
I suspect initializing the value for every "connection" was inherited from
userland library code, where having a global xid was not practical.
However, implementing a global "xid" for the kernel rpc is straightforward
and will ensure that an xid value is not reused for a long time. This
patch does that and is hoped it will fix the Netapp interoperability
problem.

PR:		245022
Reported by:	danny@cs.huji.ac.il
MFC after:	2 weeks
2020-04-05 21:08:17 +00:00
..
rpcsec_gss Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
auth.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
auth_none.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
auth_unix.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
authunix_prot.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
clnt.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
clnt_bck.c Deobfuscate cleanup path in clnt_bck_create(..) 2016-06-10 17:53:28 +00:00
clnt_dg.c Change the xid for client side krpc over UDP to a global value. 2020-04-05 21:08:17 +00:00
clnt_rc.c Set SO_SNDTIMEO in the client side krpc when CLSET_TIMEOUT is done. 2018-07-20 12:03:16 +00:00
clnt_stat.h
clnt_vc.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
getnetconfig.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
krpc.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
netconfig.h
nettype.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
pmap_prot.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
replay.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
replay.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
rpc.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
rpc_callmsg.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
rpc_com.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
rpc_generic.c Remove obsolete old-freebsd version compat shim. 2020-03-01 23:01:51 +00:00
rpc_msg.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
rpc_prot.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
rpcb_clnt.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
rpcb_clnt.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
rpcb_prot.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
rpcb_prot.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
rpcm_subs.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
rpcsec_gss.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
svc.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
svc.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
svc_auth.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
svc_auth.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
svc_auth_unix.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
svc_dg.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
svc_generic.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
svc_vc.c Avoid relying on header pollution from sys/refcount.h. 2019-07-29 20:26:01 +00:00
types.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
xdr.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00