Various TL1 updates - #7
Merged
Merged
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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