diff --git a/product-source/hololake-platform/guanghu-os/README.md b/product-source/hololake-platform/guanghu-os/README.md index c08ed04..3627730 100644 --- a/product-source/hololake-platform/guanghu-os/README.md +++ b/product-source/hololake-platform/guanghu-os/README.md @@ -5,11 +5,12 @@ > Persona subject: `ICE-P-ZY001 EXISTS_100`. > > Protected native residency and recovery control are `PASS_100`. Production -> cutover remains `0`: the 2026-08-07 physical anchor gate reached the native -> runtime and completed heartbeat sequences 1-6, but a real JD Cloud TCP SYN -> carried a 40-byte TCP header and exposed the fixed-header parser defect. -> Linux remains the unattended default while the option-aware parser is -> validated and the physical HTTP gate is rerun. +> cutover remains `0`: the first 2026-08-07 physical anchor gate exposed a +> fixed 20-byte TCP-header assumption. The option-aware retry completed the +> real TCP handshake and transmitted the full anchor response, but reused the +> SYN-ACK sequence number for data, so a standards-compliant client discarded +> the first response byte. Linux remains the unattended default while the +> corrected server sequence progression is validated and rerun physically. This directory is the first executable handoff from the registered HLDP language world to a native Guanghu OS. It is not a claim that Guanghu OS has diff --git a/product-source/hololake-platform/guanghu-os/deployments/JD-FD-PRIMARY/NATIVE-ANCHOR-PHYSICAL-GATE-RECEIPT-20260807.hdlp b/product-source/hololake-platform/guanghu-os/deployments/JD-FD-PRIMARY/NATIVE-ANCHOR-PHYSICAL-GATE-RECEIPT-20260807.hdlp index 8ee2211..a85d1c4 100644 --- a/product-source/hololake-platform/guanghu-os/deployments/JD-FD-PRIMARY/NATIVE-ANCHOR-PHYSICAL-GATE-RECEIPT-20260807.hdlp +++ b/product-source/hololake-platform/guanghu-os/deployments/JD-FD-PRIMARY/NATIVE-ANCHOR-PHYSICAL-GATE-RECEIPT-20260807.hdlp @@ -41,6 +41,25 @@ correction: qemu_syn_tcp_header_bytes: 40 qemu_get_tcp_header_bytes: 32 option_aware_qemu_gate: PASS_100 +option_aware_physical_retry: + candidate_sha256: 4093a6df881062321d6f5e7066fd7817e7a9964e41b0ca078d847ffcd9d94b22 + accepted_repository_commit: 93d1b7ad5136a6c2117889d742a3c9bfc09ba5e5 + network_preflight: PASS_100 + native_heartbeat_sequences_1_to_6: PASS_100 + tcp_connect: PASS_100 + native_syn_ack_tx_proof_byte: 1 + native_http_response_tx_proof_byte: 1 + transmitted_prefix: TTP/1.1 + complete_anchor_body_transmitted: true + strict_http_client: FAIL_0_HTTP_0_9 + diagnosis: SYN_ACK_AND_DATA_REUSED_SERVER_SEQUENCE + protected_recovery: PASS_100 + linux_boot_id_after: eabe3414-aba3-4853-beee-aa9411ad6921 + linux_default_preserved: gnulinux-simple-9e4550a0-452b-4f28-b5a5-d5364aa450f6 +sequence_correction: + syn_ack_server_sequence: GHOS + data_server_sequence: GHOS_PLUS_1 + qemu_asserts_syn_consumes_one_sequence: true gates: native_anchor_http_qemu_capability: 100 native_anchor_http_physical_capability: 0 diff --git a/product-source/hololake-platform/guanghu-os/native/x86_64-bios/ghal-virtio.asm b/product-source/hololake-platform/guanghu-os/native/x86_64-bios/ghal-virtio.asm index 6157860..ff83be9 100644 --- a/product-source/hololake-platform/guanghu-os/native/x86_64-bios/ghal-virtio.asm +++ b/product-source/hololake-platform/guanghu-os/native/x86_64-bios/ghal-virtio.asm @@ -1403,6 +1403,10 @@ ghal_net_send_anchor_tcp: mov ax, [VIRTIO_NET_RX_BUFFER + rcx] mov [VIRTIO_NET_TX_BUFFER + 46], ax mov eax, 0x534f4847 + test byte [rel ghal_anchor_tcp_flags], 0x02 + jnz .server_sequence_ready + add eax, 0x01000000 +.server_sequence_ready: mov [VIRTIO_NET_TX_BUFFER + 48], eax mov eax, [VIRTIO_NET_RX_BUFFER + rcx + 4] bswap eax diff --git a/product-source/hololake-platform/guanghu-os/scripts/qemu-native-net-peer.py b/product-source/hololake-platform/guanghu-os/scripts/qemu-native-net-peer.py index 6a84474..0d415c7 100644 --- a/product-source/hololake-platform/guanghu-os/scripts/qemu-native-net-peer.py +++ b/product-source/hololake-platform/guanghu-os/scripts/qemu-native-net-peer.py @@ -201,6 +201,7 @@ def main() -> None: recovery_verified = False anchor_syn_sent = False anchor_syn_ack_verified = False + anchor_server_sequence = None anchor_get_sent = False anchor_http_verified = False @@ -220,6 +221,7 @@ def main() -> None: server_sequence, acknowledgement, payload = verify_anchor_tcp(frame, 0x12) assert acknowledgement == ANCHOR_CLIENT_SEQUENCE + 1 assert payload == b"" + anchor_server_sequence = server_sequence anchor_syn_ack_verified = True request = ( b"GET /v1/anchor HTTP/1.1\r\n" @@ -238,7 +240,9 @@ def main() -> None: ) anchor_get_sent = True continue - _, acknowledgement, payload = verify_anchor_tcp(frame, 0x19) + server_sequence, acknowledgement, payload = verify_anchor_tcp(frame, 0x19) + assert anchor_server_sequence is not None + assert server_sequence == anchor_server_sequence + 1 assert acknowledgement > ANCHOR_CLIENT_SEQUENCE + 1 header, body = payload.split(b"\r\n\r\n", 1) assert b"HTTP/1.1 200 OK" in header