ocptv-pci-lmt


Nameocptv-pci-lmt JSON
Version 1.4.0 PyPI version JSON
download
home_pageNone
SummaryPCI Lane Margining Tool
upload_time2024-09-19 16:30:52
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT 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"
}
        
Elapsed time: 1.12903s