{ "license": { "name": "BSD 3-Clause License", "spdx_identifier": "BSD-3-Clause", "copyright": "Copyright 2026 802.3 YANG Authors", "text": "Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." }, "title": "Approved IEEE 802.3 YANG modules review", "review_date": "2026-11-06", "first_reviewed": "2026-11-06", "last_reviewed": "2026-11-06", "report_status": "open", "scope": { "directory": "Modules/Approved", "module_count": 6, "modules": [ "ieee802-ethernet-interface-half-duplex.yang", "ieee802-ethernet-interface.yang", "ieee802-ethernet-lldp.yang", "ieee802-ethernet-phy-type.yang", "ieee802-ethernet-phy.yang", "ieee802-ethernet-pse-2.yang" ] }, "baselines": [ { "name": "YangRules baseline", "path": "Analysis/YangRules/review.json", "path_type": "repository-relative", "sha256": "a9cfe985f195cc1b29bc6bf371076a8ad5dbae26313e2fb2a7e0c9141d0593c3", "role": "8 structured review practices" }, { "name": "YANGsters guidelines", "path": "Analysis/YangRules/YangstersGuidelines.md", "path_type": "repository-relative", "sha256": "837f6373ab340f971c23c9491c817077993bfec14f6c0f6c5945f2dd1ab46743", "role": "IEEE YANG authoring guidance" }, { "name": "RFC 6020", "path": "Analysis/YangRules/rfc6020.txt", "path_type": "repository-relative", "sha256": "6a9c3025372315a2d4404ee95cb4cb6be58c8228dd42b3898a9393473419eb8c", "role": "Legacy YANG 1.0 syntax and compatibility context" }, { "name": "RFC 7950", "path": "Analysis/YangRules/rfc7950.txt", "path_type": "repository-relative", "sha256": "b71ae68e7aaff84a3321e1538a0cd788f549e4889ac375bf891f67cd8876908d", "role": "Language syntax and semantics" }, { "name": "RFC 8342", "path": "Analysis/YangRules/rfc8342.txt", "path_type": "repository-relative", "sha256": "eef450e0d1d72a1a927fee4674af09586ab5957db83b512cb6e0b4d454dc012d", "role": "Datastore architecture and XPath context" }, { "name": "RFC 9907", "path": "Analysis/YangRules/rfc9907.txt", "path_type": "repository-relative", "sha256": "f8bc30a0f96be80cc6054e0e31a0c9d1dd10627dca114f7ff4ccd22f9cfbd67b", "role": "Authoring and review best practices" } ], "validation": { "tool": "generic module-quality analysis", "mode": "YANGsters source-quality checks against local RFC and guideline inputs", "result": "pass", "all_modules_passed": true, "extensions": { "scope": "source_quality" } }, "clause_coverage": { "clause_30": "Private Clause 30 package verification was not requested.", "limitation": "Modeled objects were not compared with Clause 30 records; semantic conformance requires human review." }, "findings": [ { "id": "YANG-QUALITY-8eeb96bd5c6b2d93624f5c8c-001", "status": "open", "priority": "low", "category": "guideline_warning", "module": "Modules/Approved/ieee802-ethernet-interface-half-duplex.yang", "location": "line 83", "summary": "Warning: reference: repeated word or phrase 'IEEE Std IEEE Std'", "evidence": "Generic module-quality analysis reported a warning: reference: repeated word or phrase 'IEEE Std IEEE Std'.", "sources": [ "Modules/Approved/ieee802-ethernet-interface-half-duplex.yang", "Analysis/YangRules/YangstersGuidelines.md", "Analysis/YangRules/review.json" ], "recommendation": "Review the reported construct against the YANGsters guidance and correct it where appropriate.", "extensions": { "severity": "warning", "construct": [ [ "module", "ieee802-ethernet-interface-half-duplex" ], [ "revision", "2026-08-24" ], [ "reference", "" ] ] } }, { "id": "YANG-QUALITY-84bc8ae4d4a9cb163cd07f82-001", "status": "open", "priority": "low", "category": "guideline_warning", "module": "Modules/Approved/ieee802-ethernet-interface.yang", "location": "line 88", "summary": "Warning: reference: repeated word or phrase 'IEEE Std IEEE Std'", "evidence": "Generic module-quality analysis reported a warning: reference: repeated word or phrase 'IEEE Std IEEE Std'.", "sources": [ "Modules/Approved/ieee802-ethernet-interface.yang", "Analysis/YangRules/YangstersGuidelines.md", "Analysis/YangRules/review.json" ], "recommendation": "Review the reported construct against the YANGsters guidance and correct it where appropriate.", "extensions": { "severity": "warning", "construct": [ [ "module", "ieee802-ethernet-interface" ], [ "revision", "2026-08-24" ], [ "reference", "" ] ] } }, { "id": "YANG-QUALITY-cba3b02e74423e1f65335532-001", "status": "open", "priority": "low", "category": "guideline_warning", "module": "Modules/Approved/ieee802-ethernet-lldp.yang", "location": "line 76", "summary": "Warning: reference: repeated word or phrase 'IEEE Std IEEE Std'", "evidence": "Generic module-quality analysis reported a warning: reference: repeated word or phrase 'IEEE Std IEEE Std'.", "sources": [ "Modules/Approved/ieee802-ethernet-lldp.yang", "Analysis/YangRules/YangstersGuidelines.md", "Analysis/YangRules/review.json" ], "recommendation": "Review the reported construct against the YANGsters guidance and correct it where appropriate.", "extensions": { "severity": "warning", "construct": [ [ "module", "ieee802-ethernet-lldp" ], [ "revision", "2026-08-24" ], [ "reference", "" ] ] } }, { "id": "YANG-QUALITY-74a309b8ef99bd746d13045f-001", "status": "open", "priority": "low", "category": "guideline_warning", "module": "Modules/Approved/ieee802-ethernet-lldp.yang", "location": "line 359", "summary": "Warning: description: repeated word or phrase 'locally locally'", "evidence": "Generic module-quality analysis reported a warning: description: repeated word or phrase 'locally locally'.", "sources": [ "Modules/Approved/ieee802-ethernet-lldp.yang", "Analysis/YangRules/YangstersGuidelines.md", "Analysis/YangRules/review.json" ], "recommendation": "Review the reported construct against the YANGsters guidance and correct it where appropriate.", "extensions": { "severity": "warning", "construct": [ [ "module", "ieee802-ethernet-lldp" ], [ "typedef", "power-source-type" ], [ "description", "" ] ] } }, { "id": "YANG-QUALITY-2532e18611ebb552ecb78f51-001", "status": "open", "priority": "low", "category": "guideline_warning", "module": "Modules/Approved/ieee802-ethernet-phy-type.yang", "location": "line 63", "summary": "Warning: reference: repeated word or phrase 'IEEE Std IEEE Std'", "evidence": "Generic module-quality analysis reported a warning: reference: repeated word or phrase 'IEEE Std IEEE Std'.", "sources": [ "Modules/Approved/ieee802-ethernet-phy-type.yang", "Analysis/YangRules/YangstersGuidelines.md", "Analysis/YangRules/review.json" ], "recommendation": "Review the reported construct against the YANGsters guidance and correct it where appropriate.", "extensions": { "severity": "warning", "construct": [ [ "module", "ieee802-ethernet-phy-type" ], [ "revision", "2026-08-24" ], [ "reference", "" ] ] } }, { "id": "YANG-QUALITY-4042fb3d1f4cd6e70c481e59-001", "status": "open", "priority": "low", "category": "guideline_warning", "module": "Modules/Approved/ieee802-ethernet-phy.yang", "location": "line 81", "summary": "Warning: reference: repeated word or phrase 'IEEE Std IEEE Std'", "evidence": "Generic module-quality analysis reported a warning: reference: repeated word or phrase 'IEEE Std IEEE Std'.", "sources": [ "Modules/Approved/ieee802-ethernet-phy.yang", "Analysis/YangRules/YangstersGuidelines.md", "Analysis/YangRules/review.json" ], "recommendation": "Review the reported construct against the YANGsters guidance and correct it where appropriate.", "extensions": { "severity": "warning", "construct": [ [ "module", "ieee802-ethernet-phy" ], [ "revision", "2026-08-24" ], [ "reference", "" ] ] } }, { "id": "YANG-QUALITY-eb9fbcce3818b3146963736a-001", "status": "open", "priority": "low", "category": "guideline_warning", "module": "Modules/Approved/ieee802-ethernet-phy.yang", "location": "line 105", "summary": "Warning: description: spelling: 'syncronisation'", "evidence": "Generic module-quality analysis reported a warning: description: spelling: 'syncronisation'.", "sources": [ "Modules/Approved/ieee802-ethernet-phy.yang", "Analysis/YangRules/YangstersGuidelines.md", "Analysis/YangRules/review.json" ], "recommendation": "Review the reported construct against the YANGsters guidance and correct it where appropriate.", "extensions": { "severity": "warning", "construct": [ [ "module", "ieee802-ethernet-phy" ], [ "feature", "time-sync-support" ], [ "description", "" ] ] } }, { "id": "YANG-QUALITY-d9b9664705115f698d4e863d-001", "status": "open", "priority": "low", "category": "guideline_warning", "module": "Modules/Approved/ieee802-ethernet-phy.yang", "location": "line 676", "summary": "Warning: line exceeds 72 characters", "evidence": "Generic module-quality analysis reported a warning: line exceeds 72 characters.", "sources": [ "Modules/Approved/ieee802-ethernet-phy.yang", "Analysis/YangRules/YangstersGuidelines.md", "Analysis/YangRules/review.json" ], "recommendation": "Review the reported construct against the YANGsters guidance and correct it where appropriate.", "extensions": { "severity": "warning", "construct": [ [ "module", "ieee802-ethernet-phy" ], [ "augment", "/if:interfaces/if:interface" ], [ "container", "auto-neg-table" ], [ "container", "control" ], [ "leaf", "auto-neg-restart" ], [ "description", "" ], [ "source-line", "\"Setting this to true restarts Auto-Negotiation if enabled.\";" ] ] } }, { "id": "YANG-QUALITY-180a4add659747554e12e028-001", "status": "open", "priority": "low", "category": "guideline_warning", "module": "Modules/Approved/ieee802-ethernet-pse-2.yang", "location": "line 71", "summary": "Warning: reference: repeated word or phrase 'IEEE Std IEEE Std'", "evidence": "Generic module-quality analysis reported a warning: reference: repeated word or phrase 'IEEE Std IEEE Std'.", "sources": [ "Modules/Approved/ieee802-ethernet-pse-2.yang", "Analysis/YangRules/YangstersGuidelines.md", "Analysis/YangRules/review.json" ], "recommendation": "Review the reported construct against the YANGsters guidance and correct it where appropriate.", "extensions": { "severity": "warning", "construct": [ [ "module", "ieee802-ethernet-pse-2" ], [ "revision", "2026-09-09" ], [ "reference", "" ] ] } }, { "id": "YANG-QUALITY-eeb5b1ad82bfcad887e4b91b-001", "status": "open", "priority": "low", "category": "guideline_warning", "module": "Modules/Approved/ieee802-ethernet-pse-2.yang", "location": "line 79", "summary": "Warning: reference: repeated word or phrase 'IEEE Std IEEE Std'", "evidence": "Generic module-quality analysis reported a warning: reference: repeated word or phrase 'IEEE Std IEEE Std'.", "sources": [ "Modules/Approved/ieee802-ethernet-pse-2.yang", "Analysis/YangRules/YangstersGuidelines.md", "Analysis/YangRules/review.json" ], "recommendation": "Review the reported construct against the YANGsters guidance and correct it where appropriate.", "extensions": { "severity": "warning", "construct": [ [ "module", "ieee802-ethernet-pse-2" ], [ "revision", "2026-08-24" ], [ "reference", "" ] ] } }, { "id": "YANG-QUALITY-d958bdd0c5ba6a1f633cbacf-001", "status": "open", "priority": "low", "category": "guideline_warning", "module": "Modules/Approved/ieee802-ethernet-pse-2.yang", "location": "line 86", "summary": "Warning: reference: repeated word or phrase 'IEEE Std IEEE Std'", "evidence": "Generic module-quality analysis reported a warning: reference: repeated word or phrase 'IEEE Std IEEE Std'.", "sources": [ "Modules/Approved/ieee802-ethernet-pse-2.yang", "Analysis/YangRules/YangstersGuidelines.md", "Analysis/YangRules/review.json" ], "recommendation": "Review the reported construct against the YANGsters guidance and correct it where appropriate.", "extensions": { "severity": "warning", "construct": [ [ "module", "ieee802-ethernet-pse-2" ], [ "revision", "2025-09-10" ], [ "reference", "" ] ] } } ], "positive_observations": [ "Generic module-quality analysis scanned all 6 Approved YANG modules.", "The YangRules baseline supplied 8 structured practices and 4 local RFC inputs.", "The repository validation workflow supplies pyang and yanglint results separately." ], "limitations": [ "This generated report records automated source-quality findings; it does not replace semantic review.", "Type-module boundaries, grouping reuse, enum versus identity choice, prefix quality, type mapping, and augment-versus-reference design require semantic review.", "Clause 30 package verification checks package identity and source metadata, not modeled-object conformance." ], "extensions": { "module_sources": { "Modules/Approved/ieee802-ethernet-interface-half-duplex.yang": "1334c6f07540a3ef5e02d32cee0bb9cb22071f14ca3daf7d9ca6c704b529aae4", "Modules/Approved/ieee802-ethernet-interface.yang": "3093150267a0b1545f9f75e322ed5ff920665b275aede8e107b8f2fe9311c102", "Modules/Approved/ieee802-ethernet-lldp.yang": "d4bc0653ddc4ac7b5f3ffd1a22c2c29e36812120796c60e5704a75f9ca26ce5e", "Modules/Approved/ieee802-ethernet-phy-type.yang": "773f01f51e4c6c80c4a98111ef6f9798ddcbbd82b1138368c9e3f7d4129f4baf", "Modules/Approved/ieee802-ethernet-phy.yang": "222259e1920f94edff0dfcf38a975d64681199f7d2f7873b6715804c52538033", "Modules/Approved/ieee802-ethernet-pse-2.yang": "6896478d7eb1c65a2c00df162c3d14113a5a6bb6b298a9c81e88cb3c678f69c1" }, "finding_id_version": "structural-v1", "clause30": { "package_verification": "not_requested", "semantic_review": "not_performed" }, "yang_rules": { "directory": "Analysis/YangRules", "practice_count": 8, "input_baselines": 6 } }, "source_files_modified": false }