Skip to content

Various TL1 updates - #7

Merged
stephenstack merged 4 commits into
mainfrom
dev
Sep 12, 2026
Merged

stephenstack merged 4 commits into
mainfrom
dev

Conversation

@stephenstack

Copy link
Copy Markdown
Collaborator

fix: accept quoted passwords in the TL1 ACT-USER login

@rconfig
@claude
rconfig and claude committed 4 hours ago
Merge pull request #5 from rconfig/DEV-RCO-1447

@stephenstack
stephenstack authored 4 hours ago
feat: share RNEs between gateways for dual-homed topologies

@rconfig
@claude
rconfig and claude committed 2 hours ago
Merge pull request #6 from rconfig/DEV-RCO-1448

@stephenstack
stephenstack authored 2 hours ago

rconfig and others added 4 commits September 12, 2026 14:38
A real Ciena 6500 requires a complex password to be wrapped in double
quotes, and rConfig now always sends ACT-USER that way. parseActUser
split the command on ":" with no quote handling, so it compared the
literal `"pw"` against the configured password and denied every login.
A password containing ":" was additionally truncated at the colon.

parseActUser now re-joins fields 5..n before unquoting: the password is
the last ACT-USER parameter, so the tail is unambiguous and a password
containing the TL1 field separator survives intact. Both the quoted and
the bare form are accepted, so an older rConfig build keeps working
against a newer simulator. unquoteTL1 strips only the outermost quote
pair, leaving an embedded quote and quote-protected spaces alone.

readTL1's terminator search is now quote-aware. Inside a TL1 quoted
string a ";" is ordinary data, so a password such as "pa;ss" was being
cut short before the parser ever saw it. Backspacing over a quote
restores the previous state so an erased quote cannot strand the reader
inside a string.

Tests: table-driven parseActUser and unquoteTL1 coverage, a complex
password driven through dispatchTL1, readTL1 terminator cases, and two
integration tests logging in over a real SSH channel with a password
containing both ":" and ";". The Ciena test server helper takes an
explicit password so a complex one can be driven end to end.

Refs RCO-1447

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
fix: accept quoted passwords in the TL1 ACT-USER login
Operators dual-home a remote NE — reach it through two or more gateways —
so that losing one gateway does not lose the element. The simulator had no
way to model that: every GNE drew its RNEs from its own stream, so the same
RNE name behind two gateways reported *different* equipment, which is not a
topology any client could make sense of.

--rne-dual-home-pct draws that share of a GNE's remote NEs from a fleet-wide
shared pool. A shared RNE's shelf is derived from its TID rather than from
the gateway's stream, so every gateway fronting it renders byte-identical
sections — with no coordination between generator workers, which the worker
pool's arbitrary ordering would not allow anyway. A private RNE now carries
its gateway's index (RNE-LAX0007) so two gateways cannot collide on a city
name by chance and serve unrelated equipment under one TID.

Sharing alone left it to chance whether any two given gateways overlapped:
measured over 30 seeds, adjacent ports shared an element in only 6 of them.
Gateways are therefore also chained — device N always shares RNE-LINK<N>
with device N+1, as optical networks dual-home an RNE between neighbouring
gateways around a ring. That makes any two adjacent ports demonstrate
dual-homing on every seed (30 of 30 measured). Links count towards the
documented 2-5 remote NEs rather than being added on top, and the last
device in a fleet claims no forward link.

Defaults to 0: no extra draw is taken from the generator stream and output
is byte-identical to a build without the option, verified by diffing a
generated fleet against one from the previous commit.

The driver needs no changes — indexSections already builds a per-session
map from each device's own file, so the same section appearing in two
configs routes correctly through either.

Also lists ciena-6500-tl1-gne in the generator's --distribution help, which
it had been missing since that model was added.

Refs RCO-1448

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
feat: share RNEs between gateways for dual-homed topologies
@stephenstack
stephenstack merged commit a6cbb78 into main Sep 12, 2026
2 checks passed
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.

2 participants