bcmc


Namebcmc JSON
Version 0.1.0.post1 PyPI version JSON
download
home_pageNone
Summarya CLI-centric broadcast and multicast validation tool
upload_time2024-11-30 17:03:29
maintainerNone
docs_urlNone
authorKevin L. Marshall
requires_python>=3.9
licenseBSD-3-Clause
keywords bcmc broadcast multicast
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ```text
 _
| |__   ___ _ __ ___   ___   _ __  _   _
| '_ \ / __| '_ ` _ \ / __| | '_ \| | | |
| |_) | (__| | | | | | (__ _| |_) | |_| |
|_.__/ \___|_| |_| |_|\___(_) .__/ \__, |
                            |_|    |___/
```

`bcmc` is a CLI-centric IP broadcast and multicast tool built with Python. it is a testing tool for generating and validating broadcast or multicast traffic.

`bcmc` can be run as a server to generate broadcast or multicast traffic or `bcmc` can be run as a client to receive broadcast or multicast traffic. it is a CLI-based client/server tool inspired by iperf.

`bcmc` is developed by Josh Schmelzle and Kevin L. Marshall and is released under a three-clause BSD license.

## why `bcmc`?

Existing tools such as Multicast Hammer are platform specific and may have unsupported system dependencies on modern OSes. `bcmc` aims to be a free cross-platform tool that can be used from *unix or Windows. While `bcmc` aims to function cross-platform, please note some optional features may not work on certain OSes.

## usage

`bcmc` is a client/server tool which functions similar to iperf. `bcmc` can be used to test and validate broadcast or multicast on 802.11 or 802.3 networks.

steps:

* You will need two hosts
* Place both hosts on the target test network
* Use one host to run `bcmc` in client mode (receive)
* Use the other host to run `bcmc` in server mode (transmit)

## broadcast traffic

In broadcast mode, the default behavior for `bcmc` is to send IP layer UDP packets to 255.255.255.255.

## multicast traffic

In multicast mode, the default behavior for `bcmc` is to send IP layer UDP packets to 239.0.0.2 as the multicast group address.

## modes (-s|-c)

`bcmc` can be run as client or server.

## traffic (-bc|-mc)

`bcmc` can generate broadcast or multicast IP packets.

## broadcast (-bc)

client usage:

```bash
bcmc -c -bc
```

server usage:

```bash
bcmc -s -bc
```

## multicast (-mc)

client usage:

```bash
bcmc -c -mc
```

server usage:

```bash
bcmc -s -mc
```

## discovery tip

* to understand or "try out" the behavior of `bcmc`, you can also use `bcmc` with two different terminals on the same host.
* in one terminal, run `bcmc` in client mode
* in the other, run `bcmc` in server mode
* you should see incrementing messages from `bcmc` running in server mode in the terminal running `bcmc` as client mode.

## troubleshooting

On Windows, `bcmc` server (`-s`) mode will default to the interface with the lowest metric. If you are having issues where client (`-c`) mode is not receiving messages from server (`-s`) mode, investigate the metric by running `route PRINT` from conhost (cmd.exe) or PowerShell.

## optional arguments

```bash
usage: bcmc [-s|-c] [-bc|-mc] [options]
       bcmc [-h|--help] [-v|--version]

options:
  -h, --help            show this help message and exit
  -p 2002, --port 2002  port to listen on/connect to
  -b <host>, --bind <host>
                        bind to the interface associated with provided <host> address (experimental)
  --debug               increase output for debugging purposes
  -c, --client          run in client mode
  -s, --server          run in client mode
  -bc, --broadcast      set traffic type to broadcast
  -mc, --multicast      set traffic type to multicast
  --group 239.0.0.2     multicast group address (239.0.0.2 by default)
  -i 1, --interval 1    interval to send multicast packets
  --ttl 3               set the hop restriction in network for multicast server
  --dscp 46             set the Differentiated Service Code Point value applied to packets sent in server mode
  --padding 0           number of additional null bytes per payload which is sent in server mode
  --payload 'string'    add an arbitrary payload which is sent in server mode
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "bcmc",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "Josh Schmelzle <josh@joshschmelzle.com>",
    "keywords": "bcmc, broadcast, multicast",
    "author": "Kevin L. Marshall",
    "author_email": "Josh Schmelzle <josh@joshschmelzle.com>",
    "download_url": "https://files.pythonhosted.org/packages/ca/74/05c06c02ae4034441550452d4fb4de3bfc7b76caee5e9104cbdad4f82f3a/bcmc-0.1.0.post1.tar.gz",
    "platform": null,
    "description": "```text\n _\n| |__   ___ _ __ ___   ___   _ __  _   _\n| '_ \\ / __| '_ ` _ \\ / __| | '_ \\| | | |\n| |_) | (__| | | | | | (__ _| |_) | |_| |\n|_.__/ \\___|_| |_| |_|\\___(_) .__/ \\__, |\n                            |_|    |___/\n```\n\n`bcmc` is a CLI-centric IP broadcast and multicast tool built with Python. it is a testing tool for generating and validating broadcast or multicast traffic.\n\n`bcmc` can be run as a server to generate broadcast or multicast traffic or `bcmc` can be run as a client to receive broadcast or multicast traffic. it is a CLI-based client/server tool inspired by iperf.\n\n`bcmc` is developed by Josh Schmelzle and Kevin L. Marshall and is released under a three-clause BSD license.\n\n## why `bcmc`?\n\nExisting tools such as Multicast Hammer are platform specific and may have unsupported system dependencies on modern OSes. `bcmc` aims to be a free cross-platform tool that can be used from *unix or Windows. While `bcmc` aims to function cross-platform, please note some optional features may not work on certain OSes.\n\n## usage\n\n`bcmc` is a client/server tool which functions similar to iperf. `bcmc` can be used to test and validate broadcast or multicast on 802.11 or 802.3 networks.\n\nsteps:\n\n* You will need two hosts\n* Place both hosts on the target test network\n* Use one host to run `bcmc` in client mode (receive)\n* Use the other host to run `bcmc` in server mode (transmit)\n\n## broadcast traffic\n\nIn broadcast mode, the default behavior for `bcmc` is to send IP layer UDP packets to 255.255.255.255.\n\n## multicast traffic\n\nIn multicast mode, the default behavior for `bcmc` is to send IP layer UDP packets to 239.0.0.2 as the multicast group address.\n\n## modes (-s|-c)\n\n`bcmc` can be run as client or server.\n\n## traffic (-bc|-mc)\n\n`bcmc` can generate broadcast or multicast IP packets.\n\n## broadcast (-bc)\n\nclient usage:\n\n```bash\nbcmc -c -bc\n```\n\nserver usage:\n\n```bash\nbcmc -s -bc\n```\n\n## multicast (-mc)\n\nclient usage:\n\n```bash\nbcmc -c -mc\n```\n\nserver usage:\n\n```bash\nbcmc -s -mc\n```\n\n## discovery tip\n\n* to understand or \"try out\" the behavior of `bcmc`, you can also use `bcmc` with two different terminals on the same host.\n* in one terminal, run `bcmc` in client mode\n* in the other, run `bcmc` in server mode\n* you should see incrementing messages from `bcmc` running in server mode in the terminal running `bcmc` as client mode.\n\n## troubleshooting\n\nOn Windows, `bcmc` server (`-s`) mode will default to the interface with the lowest metric. If you are having issues where client (`-c`) mode is not receiving messages from server (`-s`) mode, investigate the metric by running `route PRINT` from conhost (cmd.exe) or PowerShell.\n\n## optional arguments\n\n```bash\nusage: bcmc [-s|-c] [-bc|-mc] [options]\n       bcmc [-h|--help] [-v|--version]\n\noptions:\n  -h, --help            show this help message and exit\n  -p 2002, --port 2002  port to listen on/connect to\n  -b <host>, --bind <host>\n                        bind to the interface associated with provided <host> address (experimental)\n  --debug               increase output for debugging purposes\n  -c, --client          run in client mode\n  -s, --server          run in client mode\n  -bc, --broadcast      set traffic type to broadcast\n  -mc, --multicast      set traffic type to multicast\n  --group 239.0.0.2     multicast group address (239.0.0.2 by default)\n  -i 1, --interval 1    interval to send multicast packets\n  --ttl 3               set the hop restriction in network for multicast server\n  --dscp 46             set the Differentiated Service Code Point value applied to packets sent in server mode\n  --padding 0           number of additional null bytes per payload which is sent in server mode\n  --payload 'string'    add an arbitrary payload which is sent in server mode\n```\n",
    "bugtrack_url": null,
    "license": "BSD-3-Clause",
    "summary": "a CLI-centric broadcast and multicast validation tool",
    "version": "0.1.0.post1",
    "project_urls": {
        "Homepage": "https://github.com/joshschmelzle/bcmc"
    },
    "split_keywords": [
        "bcmc",
        " broadcast",
        " multicast"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "37bac370cabdcc33162b6d668298c2806f89ba072edc4158097ca37a05c22ba3",
                "md5": "de7698576c7e62d83985f8e2827e2d6c",
                "sha256": "66bb3f5dd76100dae89c52d203e204a2c20a3487e12a6151e524aa08e904bbde"
            },
            "downloads": -1,
            "filename": "bcmc-0.1.0.post1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "de7698576c7e62d83985f8e2827e2d6c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 11868,
            "upload_time": "2024-11-30T17:03:08",
            "upload_time_iso_8601": "2024-11-30T17:03:08.543146Z",
            "url": "https://files.pythonhosted.org/packages/37/ba/c370cabdcc33162b6d668298c2806f89ba072edc4158097ca37a05c22ba3/bcmc-0.1.0.post1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ca7405c06c02ae4034441550452d4fb4de3bfc7b76caee5e9104cbdad4f82f3a",
                "md5": "3e61850dddc918e1240f6f910de07ef5",
                "sha256": "c7bfce6c70cad136f5f9e28443a46dad23dc3039b9aa67cbdab1a96cac13566c"
            },
            "downloads": -1,
            "filename": "bcmc-0.1.0.post1.tar.gz",
            "has_sig": false,
            "md5_digest": "3e61850dddc918e1240f6f910de07ef5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 10478,
            "upload_time": "2024-11-30T17:03:29",
            "upload_time_iso_8601": "2024-11-30T17:03:29.107449Z",
            "url": "https://files.pythonhosted.org/packages/ca/74/05c06c02ae4034441550452d4fb4de3bfc7b76caee5e9104cbdad4f82f3a/bcmc-0.1.0.post1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-30 17:03:29",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "joshschmelzle",
    "github_project": "bcmc",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "tox": true,
    "lcname": "bcmc"
}
        
Elapsed time: 3.39753s