docs: audit packet burst endpoints
This commit is contained in:
38
AI.md
38
AI.md
@@ -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
16
TODO.md
@@ -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.
|
||||
|
||||
42
src/nwconn.c
42
src/nwconn.c
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user