Zone03 (zone03)
Status: Final
Purpose
- Validate ordering relationship between SOA timers:
refreshshould be greater thanretry.
Preconditions And Inputs
- Preconditions:
- A
zone.Zoneobject is available.
- A
- Required inputs:
- Child nameserver addresses from
methods.Method5. - One authoritative SOA response for the child zone apex (if obtainable).
- Child nameserver addresses from
- Profile/config knobs that affect behavior:
net.ipv4andnet.ipv6affect transport availability during SOA retrieval.
Algorithm And Decision Flow
- Emit
TEST_CASE_START. - Retrieve SOA from child nameservers using shared helper logic:
- iterate
Method5nameservers in order; - skip disabled transports;
- return the first response that has SOA in answer and
AA=true.
- iterate
- If no qualifying SOA response is found, emit
NO_RESPONSE_SOA_QUERY. - Else read SOA
refreshandretry:- if
retry >= refresh, emitREFRESH_LOWER_THAN_RETRY; - else emit
REFRESH_HIGHER_THAN_RETRY.
- if
- Emit
TEST_CASE_END.
Emitted Tags (Possible Set)
| Tag | Emitted when |
|---|---|
NO_RESPONSE_SOA_QUERY | No authoritative SOA response containing an SOA answer record was received from any queried nameserver. |
REFRESH_HIGHER_THAN_RETRY | SOA refresh is greater than SOA retry. |
REFRESH_LOWER_THAN_RETRY | SOA retry is greater than or equal to SOA refresh. |
TEST_CASE_END | Testcase completion marker is emitted. |
TEST_CASE_START | Testcase start marker is emitted. |
Tag Arguments
| Tag | Argument key | Type | Meaning |
|---|---|---|---|
NO_RESPONSE_SOA_QUERY | - | - | No arguments. |
REFRESH_HIGHER_THAN_RETRY | retry | int | Observed SOA retry value. |
REFRESH_HIGHER_THAN_RETRY | refresh | int | Observed SOA refresh value. |
REFRESH_LOWER_THAN_RETRY | retry | int | Observed SOA retry value. |
REFRESH_LOWER_THAN_RETRY | refresh | int | Observed SOA refresh value. |
TEST_CASE_END | testcase | string | Testcase display name (Zone03). |
TEST_CASE_START | testcase | string | Testcase display name (Zone03). |
Severity Levels Per Tag
| Tag | Level | Notes |
|---|---|---|
NO_RESPONSE_SOA_QUERY | DEBUG | Default from share/profile.json (test_levels.ZONE). |
REFRESH_HIGHER_THAN_RETRY | INFO | Default from share/profile.json (test_levels.ZONE). |
REFRESH_LOWER_THAN_RETRY | INFO | Default from share/profile.json (test_levels.ZONE). |
TEST_CASE_END | DEBUG | Default from share/profile.json (test_levels.ZONE). |
TEST_CASE_START | DEBUG | Default from share/profile.json (test_levels.ZONE). |
Differences From Upstream
- Upstream reference:
zone03.md - Differences (Upstream vs Gonemaster):
- Upstream: describes
retry >= refreshas testcase failure. Gonemaster: emitsREFRESH_LOWER_THAN_RETRYwith default severityINFO. - Upstream: does not define explicit result tag for retrieval failure. Gonemaster: emits
NO_RESPONSE_SOA_QUERY. - Upstream: does not describe testcase boundary debug markers. Gonemaster: emits
TEST_CASE_STARTandTEST_CASE_END.
- Upstream: describes
- Potential upstream report:
yes
- If yes, include:
- Upstream expected behavior: Upstream prose defines
retry >= refreshas failure condition. - Gonemaster observed behavior: The failure branch is an informational tag (
REFRESH_LOWER_THAN_RETRY) under default profile. - evidence:
docs/specifications/upstream/tests/Zone-TP/zone03.md,engine/test/zone/zone.go,share/profile.json - report status:
not filed
- Upstream expected behavior: Upstream prose defines
Edge Cases And Limitations
- The shared retrieval helper emits
IPV4_DISABLEDorIPV6_DISABLEDwhen the corresponding transport is disabled; these tags are not declared in this testcase’sMetadata()function. - If helper cannot find an authoritative SOA answer, timer-order comparison is not attempted.