docs: audit packet burst endpoints

This commit is contained in:
Mario Fetka
2026-06-02 15:29:50 +00:00
parent 57b3eb7f6e
commit c353677d32
3 changed files with 68 additions and 28 deletions

38
AI.md
View File

@@ -11,18 +11,18 @@ When the user says this is a new chat or asks to continue mars-nwe work, first
read this file before proposing patches or making assumptions. Then ask for, or
use, the current project status that the user pasted into the chat.
## Current handoff status after patch 0215
## Current handoff status after patch 0216
The current accepted patch line in this chat is expected to include:
- endpoint-audit/documentation patches through `0176-docs-audit-direct-lifecycle-buffer-endpoints.patch`;
- redesign documentation patches `0177` through `0198`;
- endpoint-audit/documentation patches `0199` through `0215`;
- latest expected patch name: `0215-docs-audit-enhanced-namespace-scope.patch`.
- endpoint-audit/documentation patches `0199` through `0216`;
- latest expected patch name: `0216-docs-audit-packet-burst-endpoints.patch`.
When continuing in a new chat, first ask the user which patch was actually last
applied. If they confirm `0215`, build the next patch as `0216-...` against a
tree that already contains `0215`. If any patch failed or was skipped, rebuild
applied. If they confirm `0216`, build the next patch as `0217-...` against a
tree that already contains `0216`. If any patch failed or was skipped, rebuild
against the last confirmed applied patch instead of assuming the file in
`/mnt/data` was accepted.
@@ -198,22 +198,20 @@ Schema/import direction:
Latest endpoint audit note:
- Patch `0215` audits `NCP 0x2222/89` / wire `0x59` Enhanced Name Space for
generation scope. `src/nwconn.c` has no top-level `case 0x59`, and the local
NDK/Core-Protocols Enhanced NCP chapter marks the checked `89/xx` request
pages as a later-generation NetWare 6.5 SP2 family. The group contains
enhanced variants of namespace, trustee, salvage, EA, and rights operations
such as `89/01`..`89/12`, `89/16`, `89/17`, `89/19`, `89/20`, `89/22`,
`89/25`, `89/28`, `89/29`, `89/35`, `89/39`, `89/40`, `89/50`, `89/52`,
`89/53`, `89/54`, and `89/71`. Under the current 1.x/2.x/3.x plus planned
4.x rule, do not add `#if 0` source stubs for this family. If the project
target is extended later, treat `89` as filesystem/namespace provider work,
not NDS.
- Patch `0216` audits Packet Burst / Big Packet support in `src/nwconn.c`: SDK
`97` / wire `0x61` Get Big Packet NCP Max Packet Size, SDK `101` / wire
`0x65` Packet Burst Connection Request, and the follow-on `0x7777`
packet-burst data-plane handler. `97` and `101` are 4.x-era direct NCPs and
are present in source, so no missing stubs were needed. The audit documents
request/reply layouts, burst-mode disabled behavior (`0xfb`), and the current
lack of NDK security-flag negotiation for checksums/signatures/encryption.
The `0x7777` handler is not a normal `0x2222` endpoint; it is the runtime
data path created by `101`.
The next patch number should be `0216` if `0215` was applied. Likely next
blocks are packet burst `0x2222/97`/`101`, deeper `0x2222/23`
bindery/property/admin subfunction coverage, SDK `0x2222/90` generation-scope
work, or another user-selected endpoint family.
The next patch number should be `0217` if `0216` was applied. Likely next
blocks are the planned-4.x NDS/NCP fragger `0x2222/104` path, deeper
`0x2222/23` bindery/property/admin subfunction coverage, SDK `0x2222/90`
generation-scope work, or another user-selected endpoint family.
## Patch workflow

16
TODO.md
View File

@@ -196,11 +196,14 @@ Present in the code but not yet fully endpoint-audited:
- SDK `0x2222/87` / wire `0x57` Name Space is endpoint-audited for the
current 1.x/2.x/3.x plus planned-4.x scope. Later-generation high selectors
`87/44` and `87/64`..`87/69` are documented as out of current source-stub
scope. SDK `0x2222/97` / wire `0x61` Packet Burst, SDK `0x2222/101` / wire
`0x65` Packet Burst
Connection Request, and SDK `0x2222/104` / wire `0x68` NDS/NCP fragger
paths all have top-level code entries and need their own generation-bucketed
audits before any new TODO stubs are added.
scope.
- SDK `0x2222/97` / wire `0x61` Get Big Packet NCP Max Packet Size and SDK
`0x2222/101` / wire `0x65` Packet Burst Connection Request are present in
`src/nwconn.c` and endpoint-audited as the 4.x-era packet-burst negotiation
and setup paths. The follow-on `0x7777` packet-burst data-plane handler is
also documented, but it is not a normal `0x2222` endpoint.
- SDK `0x2222/104` / wire `0x68` NDS/NCP fragger has a top-level code entry and
still needs its own planned-4.x audit before any new stubs are added.
SDK-listed blocks that do not currently show a top-level handler in
`src/nwconn.c`:
@@ -1263,6 +1266,7 @@ Follow-up:
* Basic Packet Burst file transfer support is implemented and verified with a
diagnostics-enabled DOS client test.
* Packet Burst support is built by default, but runtime use remains controlled
by `nwserv.conf`.
by `nwserv.conf`. Endpoint coverage for SDK `97` and `101` is now
documented; remaining Packet Burst work is behavioral/client-trace driven.
* Packet Burst/NDS fragmentation support remains out of scope unless a concrete
client requires it.

View File

@@ -6737,7 +6737,21 @@ static int handle_ncp_serv(void)
#endif
case 0x61 :
case 0x61 : /* SDK 97 / wire 0x61 Get Big Packet NCP Max Packet Size.
* Coverage: present as the packet-burst/big-packet
* negotiation slot. This is a 4.x-era direct NCP, so it is
* in current scope and no disabled missing stub is needed.
* Request: ProposedMaxSize word Hi-Lo, then SecurityFlag
* byte. The current parser reads both fields from
* requestdata[0..2].
* Reply: AcceptedMaxSize word Hi-Lo, EchoSocket word Hi-Lo,
* then SecurityFlag byte. MARS-NWE currently replies with
* negotiated packet size, sock_echo, and a zeroed flag byte.
* Known differences: the NDK security-flag negotiation
* semantics are documented, but this compatibility path does
* not implement signatures, checksums, or encryption policy;
* if burst mode is disabled it returns 0xfb.
*/
#if ENABLE_BURSTMODE
if (server_version_flags&1) { /* enable Burstmode */
/* Negotiate Buffer Size, Packetsize new ? */
@@ -6785,7 +6799,20 @@ static int handle_ncp_serv(void)
}
break;
case 0x65 : /* Packet Burst Connection Request */
case 0x65 : /* SDK 101 / wire 0x65 Packet Burst Connection Request.
* Coverage: present. This is the 4.x-era packet burst
* session setup NCP, distinct from Bindery/Queue SDK
* 23/101 which is dispatched under function 23 in nwbind.c.
* Request: ClientConnID long, LocalMaxPacketSize long
* Hi-Lo, LocalTargetSocket word Hi-Lo, LocalMaxSendSize
* long Hi-Lo, LocalMaxRecvSize long Hi-Lo.
* Reply: RemoteTargetID long, MaxPacketSize long Hi-Lo,
* MaxSendSize long Hi-Lo, MaxRecvSize long Hi-Lo.
* Runtime: when ENABLE_BURSTMODE and server_version_flags
* permit it, MARS-NWE allocates burst state and later
* serves 0x7777 packet-burst read/write fragments through
* handle_burst(). If disabled, it returns 0xfb.
*/
#if ENABLE_BURSTMODE
if (server_version_flags&1) { /* enable burstmode */
struct INPUT {
@@ -7192,6 +7219,17 @@ static void handle_burst_response(uint32 offset, int size)
}
/* Packet Burst 0x7777 data-plane packets.
* Coverage: this is not a 0x2222 function selector, but it is the runtime data
* path enabled by SDK 101 / wire 0x65 Packet Burst Connection Request.
* Request payload: burst header plus a reassembled BIG_READ/BIG_WRITE request
* in burst_w->recv_buf. The nested function word is little-endian: 1 = read,
* 2 = write.
* Reply payload: one or more 0x7777 burst packets containing BIG_READ/BIG_WRITE
* status structures and optional file data. nwconn owns the packet-burst
* response emission through send_burst()/handle_burst_response(); this does
* not use normal NCP completion bytes.
*/
static void handle_burst(BURSTPACKET *bp, int len)
{
if (burst_w) {