feat(agent): add NMOS IS-04/IS-05 sender proxy#130
Open
dclasen-qd wants to merge 18 commits into
Open
Conversation
- Go integration tests for IS-04 v1.3 and IS-05 v1.2 endpoints - HTTP conformance tests: CORS, OPTIONS, 405, 404, error format - BCP-007-03 sender proxy specific test cases - Optional AMWA nmos-testing integration (skipped if not installed) - Shell script test/nmos/run-nmos-tests.sh automating setup and teardown - README.md documenting expected results and known limitations Part-of: #nmos-integration-tests
Remove nmos-testing wrapper test and shell script section per reviewer feedback. The tool is mainly for semi-automated testing and its non-interactive suites can be incorporated later as a separate effort. - Remove TestAMWANMOSTesting and unused helpers (extractHost/extractPort) - Remove --skip-amwa flag and AMWA section from run-nmos-tests.sh - Clean up unused imports (net, strings, os/exec) - Fix spec link: use github.com/AMWA-TV/nmos-testing, not specs.amwa.org - Update README to document nmos-testing as future work Server API refactor tracked in mxl-k8s board task t_2376d092.
…ntrols IS-05 active/staged sender responses were missing the sender_id and transport_file fields required by the AMWA IS-05 v1.2 schema. Add both to SenderState and populate them in the senderState handler. The transport_file carries MXL transport parameters as JSON data with type "application/json" per BCP-007-03. IS-04 resource version timestamps used UTC instead of TAI. Switch nmosVersion to add the current leap-second offset (37s) so version strings pass AMWA nmos-testing validation. Populate the IS-04 device.controls array with the IS-05 Connection API endpoint (urn:x-nmos:control:cm-v1.2) so NMOS controllers can discover the connection-management endpoint.
Document the agent IS-04 Node API v1.3 and IS-05 Connection Management v1.2 sender proxy for BCP-007-03 compliance. New docs/NMOS.md covers the architecture, data flow, ID generation, resource model, and API reference. Update README, USAGE, KIND demo, and chart README with enablement instructions and curl verification steps.
…7-03 device.controls advertised the IS-05 Connection API endpoint with the Channel Mapping API control type (urn:x-nmos:control:cm-v1.2), which NMOS controllers cannot recognise. The AMWA NMOS parameter register defines sr-ctrl as the Connection API control type, registered for v1.0 and v1.1 only. Align the implemented IS-05 version to v1.1 and advertise urn:x-nmos:control:sr-ctrl/v1.1 so the endpoint is discoverable. HandleSenderTransportFile returned the first transport_params leg as JSON with HTTP 200. BCP-007-03 (MXL IS-05 Senders and Receivers) requires the /transportfile endpoint of an MXL IS-05 Sender to always return 404; MXL transport parameters are carried by the active/staged resources and their transport_file field, not a transport file. Return 404 with the existing JSON error body. Update server_test.go expectations for the corrected URN, the v1.1 paths, and the 404 transportfile response. Update DESIGN.md path constants.
Update docs/NMOS.md and docs/KIND.md to match the corrected IS-05 implementation: version listing is v1.1, the active/staged example includes sender_id and transport_file, and the /transportfile endpoint is documented as always returning 404 per BCP-007-03.
…mos-phase5-99c888f1
The NMOS sender proxy serves IS-05 Connection Management v1.1, but several user-facing docs still referenced v1.2. README.md, docs/USAGE.md curl examples, and test/nmos/README.md now match the v1.1 paths the agent actually registers. The USAGE transportfile example now shows the 404 response per BCP-007-03 instead of implying a file body.
Update connection endpoint references from v1.2 to v1.1 to match the NMOS sender proxy implementation. Also run gofmt to remove trailing blank lines.
This comment has been minimized.
This comment has been minimized.
The NMOS docs instructed users to set agent.flags.nmosBindAddress in values.yaml, but the key was not declared there and the README section was only edited in the generated README.md. helmd-docs therefore removed the section on regeneration. Add nmosBindAddress to values.yaml (empty default disables NMOS) with a schema pattern and helmdocs comment, move the NMOS section into README.md.gotmpl so helm-docs preserves it, and regenerate README.md and values.schema.json.
Contributor
Code Metrics Report
Code coverage of files in pull request scope (64.2%)Reported by octocov |
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.
Adds an NMOS sender proxy to the agent so NMOS controllers can discover and inspect MXL flows via IS-04 and IS-05.
feat(agent): advertise IS-04 Node API v1.3 and IS-05 Connection Management v1.1
feat(agent): implement sender active/staged endpoints with sender_id and transport_file
fix(agent): use TAI timestamps (UTC + 37s leap offset) for NMOS resource versions
fix(agent): advertise the Connection API as urn:x-nmos:control:sr-ctrl/v1.1
fix(agent): return 404 on sender /transportfile per BCP-007-03
docs(agent): add docs/NMOS.md with architecture and API reference
docs(agent): add NMOS sections to README.md, docs/USAGE.md, docs/KIND.md and charts/mxl-k8s/README.md
test(nmos): add integration test suite and helper scripts