Name | ocptv-pci-lmt JSON |
Version |
1.4.0
JSON |
| download |
home_page | None |
Summary | PCI Lane Margining Tool |
upload_time | 2024-09-19 16:30:52 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | MIT License Copyright (c) 2023 Open Compute Project Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
keywords |
ocp
ocptv
pci
pcie
lmt
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# PCIe Lane Margining Tool (LMT)
LMT is a standard PCIE margining measurement added by PCI-SIG in the PCIe 4.0 specification.
This is required mainly to overcome the challenges in delivering a reliable 16GT/s solution.
Lane Margining enables system designers to measure the available margin in a standardized manner.
# Key Benefits
- Works in a production platform without any test equipment
- Provides a way to measure actual margin when running prod traffic
- Provides visibility to the details of the defect:
- exactly which wires/pins are bad
- exactly how ‘bad’ each wire pair (vs a nominal system)
- Avoids excessive part swaps triggered by multiple repair actions
- Provides a reliable way to check if source defect is fixed after repairs
This project is part of [ocp-diag-core](https://github.com/opencomputeproject/ocp-diag-core) and exists under the same [MIT License Agreement](https://github.com/opencomputeproject/ocp-diag-pci_lmt/LICENSE).
# Usage
**Minimum python version is currently py3.8**
The binary can be installed from [`PyPI ocptv-pci_lmt`](https://pypi.org/project/ocptv-pci-lmt/) and can be used directly on a system as such:
```
> pci_lmt -h
usage: pci_lmt [-h] [-o {json,csv}] [-e ERROR_COUNT_LIMIT] [-d DWELL_TIME] [-a ANNOTATION] [-v] [--version] config_file
Runs Lane Margining Test on PCIe devices.
positional arguments:
config_file Path to the configuration file (in JSON format).
optional arguments:
-h, --help show this help message and exit
-o {json,csv} Output format. Supported formats: json, csv. Default: json
-e ERROR_COUNT_LIMIT Maximum errors allowed before terminating the test. Default: 63
-d DWELL_TIME Amount of time (in seconds) to wait before making BER measurements. Default: 5
-a ANNOTATION Annotation string to be prefix'd for LMT results. Default: <empty>
-v Verbosity level. Use '-v' for INFO and '-vv' for DEBUG. Default: 0
--version Print tool version and exit.
```
### Contact
Feel free to start a new [discussion](https://github.com/opencomputeproject/ocp-diag-pci_lmt/discussions), or otherwise post an [issue/request](https://github.com/opencomputeproject/ocp-diag-pci_lmt/issues).
# Developer notes
New code may be committed through features or bugfix branches (eg. `fea/cool_new_thing` or `bugfix/none_in_collector`). All PRs must be merged into the `dev` branch.
Quickest way to setup a dev environment:
```bash
# make a venv, see https://docs.python.org/3/library/venv.html
> python3 -m venv env
. ./env/bin/activate
> pip install -r requirements.txt
# [1] then the main script can be run from source
> python src/pci_lmt_bin/main.py --version
main.py 1.1.1
# [2] or alternatively do a local editable install and use it as an executable
# see: https://setuptools.pypa.io/en/latest/userguide/development_mode.html
> pip install -e .
> pci_lmt --version
pci_lmt 1.1.1
```
Before pushing new commits upstream, please check that your changes pass the linters, formatting, typechecker, etc.
All the following checks should pass (and return exit code 0). They are also run in a github action, which safeguards against problematic code.
```bash
> black . --check --preview
All done! ✨ 🍰 ✨
14 files would be left unchanged.
# remove the fixme disable to see the list of TODOs in the codebase
> pylint src tests --disable fixme
--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)
> mypy src tests --check-untyped-defs
Success: no issues found in 14 source files
# run all unit tests
> find tests -type f -name "test_*.py" | xargs testslide
```
Raw data
{
"_id": null,
"home_page": null,
"name": "ocptv-pci-lmt",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "ocp, ocptv, pci, pcie, lmt",
"author": null,
"author_email": "OCP Test & Validation <ocp-test-validation@OCP-All.groups.io>",
"download_url": "https://files.pythonhosted.org/packages/1b/17/2201c4a1ff2aa53ff0c29f166232bd92d89e847a26a7442f6f54d57bda75/ocptv_pci_lmt-1.4.0.tar.gz",
"platform": null,
"description": "# PCIe Lane Margining Tool (LMT)\nLMT is a standard PCIE margining measurement added by PCI-SIG in the PCIe 4.0 specification.\nThis is required mainly to overcome the challenges in delivering a reliable 16GT/s solution.\nLane Margining enables system designers to measure the available margin in a standardized manner.\n\n# Key Benefits\n- Works in a production platform without any test equipment\n- Provides a way to measure actual margin when running prod traffic\n- Provides visibility to the details of the defect:\n - exactly which wires/pins are bad\n - exactly how \u2018bad\u2019 each wire pair (vs a nominal system)\n- Avoids excessive part swaps triggered by multiple repair actions\n- Provides a reliable way to check if source defect is fixed after repairs\n\nThis project is part of [ocp-diag-core](https://github.com/opencomputeproject/ocp-diag-core) and exists under the same [MIT License Agreement](https://github.com/opencomputeproject/ocp-diag-pci_lmt/LICENSE).\n\n# Usage\n\n**Minimum python version is currently py3.8**\n\nThe binary can be installed from [`PyPI ocptv-pci_lmt`](https://pypi.org/project/ocptv-pci-lmt/) and can be used directly on a system as such:\n\n```\n> pci_lmt -h\nusage: pci_lmt [-h] [-o {json,csv}] [-e ERROR_COUNT_LIMIT] [-d DWELL_TIME] [-a ANNOTATION] [-v] [--version] config_file\n\nRuns Lane Margining Test on PCIe devices.\n\npositional arguments:\n config_file Path to the configuration file (in JSON format).\n\noptional arguments:\n -h, --help show this help message and exit\n -o {json,csv} Output format. Supported formats: json, csv. Default: json\n -e ERROR_COUNT_LIMIT Maximum errors allowed before terminating the test. Default: 63\n -d DWELL_TIME Amount of time (in seconds) to wait before making BER measurements. Default: 5\n -a ANNOTATION Annotation string to be prefix'd for LMT results. Default: <empty>\n -v Verbosity level. Use '-v' for INFO and '-vv' for DEBUG. Default: 0\n --version Print tool version and exit.\n```\n\n### Contact\n\nFeel free to start a new [discussion](https://github.com/opencomputeproject/ocp-diag-pci_lmt/discussions), or otherwise post an [issue/request](https://github.com/opencomputeproject/ocp-diag-pci_lmt/issues).\n\n# Developer notes\n\nNew code may be committed through features or bugfix branches (eg. `fea/cool_new_thing` or `bugfix/none_in_collector`). All PRs must be merged into the `dev` branch.\n\nQuickest way to setup a dev environment:\n```bash\n# make a venv, see https://docs.python.org/3/library/venv.html\n> python3 -m venv env\n. ./env/bin/activate\n\n> pip install -r requirements.txt\n\n# [1] then the main script can be run from source\n> python src/pci_lmt_bin/main.py --version\nmain.py 1.1.1\n\n# [2] or alternatively do a local editable install and use it as an executable\n# see: https://setuptools.pypa.io/en/latest/userguide/development_mode.html\n> pip install -e .\n> pci_lmt --version\npci_lmt 1.1.1\n```\n\nBefore pushing new commits upstream, please check that your changes pass the linters, formatting, typechecker, etc.\nAll the following checks should pass (and return exit code 0). They are also run in a github action, which safeguards against problematic code.\n\n```bash\n> black . --check --preview\nAll done! \u2728 \ud83c\udf70 \u2728\n14 files would be left unchanged.\n\n# remove the fixme disable to see the list of TODOs in the codebase\n> pylint src tests --disable fixme\n\n--------------------------------------------------------------------\nYour code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)\n\n> mypy src tests --check-untyped-defs\nSuccess: no issues found in 14 source files\n\n# run all unit tests\n> find tests -type f -name \"test_*.py\" | xargs testslide\n```\n",
"bugtrack_url": null,
"license": "MIT License Copyright (c) 2023 Open Compute Project Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
"summary": "PCI Lane Margining Tool",
"version": "1.4.0",
"project_urls": {
"Bug reports": "https://github.com/opencomputeproject/ocp-diag-pci_lmt/issues",
"Homepage": "https://github.com/opencomputeproject/ocp-diag-pci_lmt",
"Source": "https://github.com/opencomputeproject/ocp-diag-pci_lmt"
},
"split_keywords": [
"ocp",
" ocptv",
" pci",
" pcie",
" lmt"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "768c550840767ef7723a198010aebbc61b09a28bf8ff6047334fb09bd7c3f34e",
"md5": "af8ba921c7f606f3a9a9cb38a3b1886f",
"sha256": "1dc5f2357472d0278db9813b7cc39c21fc17eef1a6e710b01325978677629762"
},
"downloads": -1,
"filename": "ocptv_pci_lmt-1.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "af8ba921c7f606f3a9a9cb38a3b1886f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 24681,
"upload_time": "2024-09-19T16:30:51",
"upload_time_iso_8601": "2024-09-19T16:30:51.570079Z",
"url": "https://files.pythonhosted.org/packages/76/8c/550840767ef7723a198010aebbc61b09a28bf8ff6047334fb09bd7c3f34e/ocptv_pci_lmt-1.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1b172201c4a1ff2aa53ff0c29f166232bd92d89e847a26a7442f6f54d57bda75",
"md5": "0ac7226a3b6b2b9d0ab0c44191c8fc95",
"sha256": "3499d64cbeca7f36e9b9208ac5588198d3ac4059cd062453aad40d26d9229ca7"
},
"downloads": -1,
"filename": "ocptv_pci_lmt-1.4.0.tar.gz",
"has_sig": false,
"md5_digest": "0ac7226a3b6b2b9d0ab0c44191c8fc95",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 20785,
"upload_time": "2024-09-19T16:30:52",
"upload_time_iso_8601": "2024-09-19T16:30:52.981883Z",
"url": "https://files.pythonhosted.org/packages/1b/17/2201c4a1ff2aa53ff0c29f166232bd92d89e847a26a7442f6f54d57bda75/ocptv_pci_lmt-1.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-19 16:30:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "opencomputeproject",
"github_project": "ocp-diag-pci_lmt",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "ocptv-pci-lmt"
}