docs: audit NDS fragger stubs

This commit is contained in:
Mario Fetka
2026-06-02 15:36:36 +00:00
parent c353677d32
commit 6b1fe320db
3 changed files with 154 additions and 21 deletions

View File

@@ -6916,11 +6916,109 @@ static int handle_ncp_serv(void)
}
break;
case 0x68 : /* NDS NCP, NDS Fragger Protokoll ?? */
case 0x68 : { /* NDS NCP / NDS Fragger protocol. */
#if MARS_NWE_4
/*
* NCP 0x2222/104 NDS / NCP Fragger.
*
* Source outcome: top-level wire case 0x68 exists, but MARS-NWE
* does not implement NetWare 4.x NDS fragmentation or the
* NDS service verbs yet. Keep the planned-4.x selector slots
* disabled behind MARS_NWE_4 until nwnds/libdirectory exists.
*
* Request handoff: direct NCP 104 requests put the NDS
* SubFunctionCode at requestdata[0]. Subfunction 104/02 then
* contains an additional 32-bit NDS Verb payload selector; do
* not treat that verb as a normal one-byte NCP dispatch case.
*
* Reply ownership: this local handler would return a normal
* NCP Completion plus optional payload. The current active
* behavior intentionally remains 0xfb for the whole family.
*/
int nds_sub = (requestlen > (int)sizeof(NCPREQUEST))
? (int)requestdata[0] : -1;
switch (nds_sub) {
case 0x01: /* Ping for NDS NCP
* Request: byte SubFunctionCode=1, byte Reserved[3].
* Reply: long PingVersion (Lo-Hi), unicode TreeName,
* long RootMostEntryDepth (Lo-Hi).
* Future owner: nwnds.
*/
completition = 0xfb;
break;
case 0x02: /* Send NDS Fragmented Request/Reply
* Request: byte SubFunctionCode=2, then long fields
* FraggerHandle, FragSize, TotalRequest, Flags,
* Verb, ReplyBufferSize, followed by RequestData.
* Selector path: 0x2222/104/02 verb=<Verb>.
* Reply: long ReplySize, long FraggerHandle, ReplyData[].
* Future owner: nwnds with normalized fragment state.
*/
completition = 0xfb;
break;
case 0x03: /* Fragment Close
* Request: byte SubFunctionCode=3, long FraggerHandle.
* Reply: no payload, normal Completion.
* Future owner: nwnds fragment-state cleanup.
*/
completition = 0xfb;
break;
case 0x04: /* Return Bindery Context
* Request: byte SubFunctionCode=4.
* Reply: long length, unicode binderyContext.
* Future owner: nwnds/libdirectory bindery-context
* compatibility, not legacy flat bindery files.
*/
completition = 0xfb;
break;
case 0x05: /* Monitor NDS Connection
* Request: byte SubFunctionCode=5.
* Reply: no documented payload in the local NDK table.
* Future owner: nwnds connection/session monitor.
*/
completition = 0xfb;
break;
case 0x06: /* Return NDS Statistics
* Request: byte SubFunctionCode=6, Int4 RequestFlags.
* Reply: variable Int4 statistics selected by flags.
* Future owner: nwnds statistics provider.
*/
completition = 0xfb;
break;
case 0x07: /* Clear Statistics
* Request: byte SubFunctionCode=7.
* Reply: no payload, normal Completion.
* Future owner: nwnds statistics provider.
*/
completition = 0xfb;
break;
case 0x08: /* Reload NDS Software
* Request: byte SubFunctionCode=8.
* Reply: status-oriented NDS software reload result.
* Future owner: nwserv control plane plus nwnds, never
* a direct payload route through nwserv.
*/
completition = 0xfb;
break;
default: completition = 0xfb;
break;
}
#else
XDPRINTF((2,0, "INFO NDS 104 UNKNOWN reason=fragger_unsupported fn=0x68 result=0xfb"));
nw_debug=0;
completition = 0xfb; /* unknown request */
#endif
break;
}
default : completition = 0xfb; /* unknown request */
break;