Skip to content

Feat/validators qdisc - #557

Closed
SJrX wants to merge 5 commits into
242.xfrom
feat/validators-qdisc
Closed

SJrX wants to merge 5 commits into
242.xfrom
feat/validators-qdisc

Conversation

@SJrX

@SJrX SJrX commented Oct 24, 2026

Copy link
Copy Markdown
Owner

No description provided.

@github-actions

github-actions Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Unit Test Results (grammar engine false)

1 398 tests   1 398 ✅  55s ⏱️
  360 suites      0 💤
  360 files        0 ❌

Results for commit e720ad7.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Unit Test Results (grammar engine true)

1 398 tests   1 398 ✅  1m 6s ⏱️
  360 suites      0 💤
  360 files        0 ❌

Results for commit e720ad7.

♻️ This comment has been updated with latest results.

@sjrx-claude-sandbox
sjrx-claude-sandbox force-pushed the feat/validators-qdisc branch 3 times, most recently from c114766 to 0cf1b35 Compare October 24, 2026 17:11
SJrX and others added 5 commits October 24, 2026 11:24
…(qdisc batch)

Adds grammars for 24 systemd-networkd tc parsers ([CAKE], [TokenBucketFilter],
[NetworkEmulator], [HierarchyTokenBucket(Class)], [FairQueueing(ControlledDelay)],
[GenericRandomEarlyDetection], [TrivialLinkEqualizer], [QuickFairQueueingClass],
[PIE], [EnhancedTransmissionSelection], [DeficitRoundRobinSchedulerClass], [BFIFO]),
each grounded on systemd 0f0682b773.

New shared helpers in BatchQdiscCombinators.kt model the C leaf parsers more
faithfully than the existing terminals: safe_atou* (base 0 incl. 0b/0o/+),
parse_sec (compound forms like 1min30s), parse_size (multi-element, value-range
checked) and parse_permyriad, plus a case-insensitive parse_boolean.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…anchors (qdisc batch)

Reject parse_sec values that parse_time() refuses with ERANGE (integer part above
LLONG_MAX, or a finite total reaching USEC_INFINITY), fix the HTB DefaultClass KDoc
on 0b1, and correct off-by-one source anchors found in review.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Several batch branches declared public helpers with the same name in the
shared grammar package (SafeAtouTerminal, UINT32_LIMIT, safeAtou,
SafeAtoNumberTerminal, BOOLEAN_ANY_CASE, COALESCED_COLONS). Each branch
compiled alone but any two merged together would not. Prefix them per
family so the batch PRs can merge in any order; consolidating them into
Combinators.kt is left for a follow-up.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
242.x's BOOLEAN now ignores case like parse_boolean(), so the branch's own
QDISC_BOOLEAN copy is gone. AckFilter= is written as an explicit
PreferValidAlternativeCombinator(names, BOOLEAN) with the table's no/yes
entries left to the boolean branch.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Replace the branch's local safe_atou copy (QdiscSafeAtouTerminal,
qdiscSafeAtou, safeAtou32Value, QDISC_UINT32_LIMIT) with SafeAtoTerminal,
written out at each call site. PriorityMap= entries are words from
extract_first_word(), so they use acceptsWhitespace = false. The
parse_tc_percent integer part (PCT_INT) is now a signed SafeAtoTerminal,
matching safe_atoi(), and evaluatePermyriad() reads it through valueOf().

Verdict changes, all checked with sd-check at 0f0682b773:
- now accepted for the safe_atou32/safe_atou values (FQ-CoDel PacketLimit=
  and Flows=, HTB RateToQuantum=, HTB class Priority=, PIE PacketLimit=,
  GRED VirtualQueues=/DefaultVirtualQueue=, TEQL Id=): 0b+1, 0b-0, 0b 1,
  0o 7, 0b +1, 0b -0, and a leading vertical tab
- now accepted for PriorityMap=: 0b+1, 0b-0
- now accepted for LossRate=/DuplicateRate=: 0b 1%, 0b+1%, 0b-0%,
  0b 1.5%, 0o 7‰

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@SJrX SJrX closed this Oct 24, 2026
@SJrX
SJrX deleted the feat/validators-qdisc branch October 24, 2026 20:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant