Cyphal/UDP: LinkLayerSniffer shall only accept frames from a specific NIC
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 38/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- python
- 領域
- networking
調査の方向性
報告された再現コマンドから始め、インターフェースの冗長性が有効な場合に LinkLayerSniffer がキャプチャをどのように処理するかを追跡します。インターフェースの選択に関係する UDP tracing と冗長トランスポートの経路を調査します。再現した冗長インターフェースのケースで、他の NICs からのフレームが無視され、invalid transfer-ID エラーが発生しなくなれば完了です。
索引モデルが issue の本文から書いたものです。
説明
The UDP tracer reports invalid transfer-ID errors as follows:
2023-09-01 23:54:02 1930786 DEB pycyphal.transport.redundant._tracer: RedundantTracer({(<class 'pycyphal.transport.udp._udp.UDPTransport'>, 139945704416784): <pycyphal.transport.udp._tracer.UDPTracer object at 0x7f47a4899010>, (<class 'pycyphal.transport.udp._udp.UDPTransport'>, 139945717383696): <pycyphal.transport.udp._tracer.UDPTracer object at 0x7f47a71d3b90>}): Processing RedundantCapture(timestamp=Timestamp(system_ns=1693601642728726000, monotonic_ns=993420910877439), inferior=UDPCapture(timestamp=Timestamp(system_ns=1693601642728726000, monotonic_ns=993420910877439), link_layer_packet=LinkLayerPacket(protocol=2, source=01005e001d55, destination=00248c4216fd, payload=4500003fb5a040001011e647c0a801c8ef001d55952a24a6002bcf0201043f8fffff551d3e000000000000000000008000003bfa010000000000569e7bb9a4)), iface_id=139945717383696, transfer_id_modulo=18446744073709551616)
2023-09-01 23:54:02 1930786 DEB pycyphal.transport.redundant._tracer: RedundantTracer({(<class 'pycyphal.transport.udp._udp.UDPTransport'>, 139945704416784): <pycyphal.transport.udp._tracer.UDPTracer object at 0x7f47a4899010>, (<class 'pycyphal.transport.udp._udp.UDPTransport'>, 139945717383696): <pycyphal.transport.udp._tracer.UDPTracer object at 0x7f47a71d3b90>}): BYPASS: UDPErrorTrace(timestamp=Timestamp(system_ns=1693601642728726000, monotonic_ns=993420910877439), error=<Error.UNEXPECTED_TRANSFER_ID: 2>)
Same but with manual line breaks:
2023-09-01 23:54:02 1930786 DEB pycyphal.transport.redundant._tracer:
RedundantTracer({(<class 'pycyphal.transport.udp._udp.UDPTransport'>, 139945704416784): <pycyphal.transport.udp._tracer.UDPTracer object at 0x7f47a4899010>, (<class 'pycyphal.transport.udp._udp.UDPTransport'>, 139945717383696): <pycyphal.transport.udp._tracer.UDPTracer object at 0x7f47a71d3b90>}):
Processing RedundantCapture(
timestamp=Timestamp(system_ns=1693601642728726000, monotonic_ns=993420910877439),
inferior=UDPCapture(
timestamp=Timestamp(system_ns=1693601642728726000, monotonic_ns=993420910877439),
link_layer_packet=LinkLayerPacket(
protocol=2,
source=01005e001d55,
destination=00248c4216fd,
payload=4500003fb5a040001011e647c0a801c8ef001d55952a24a6002bcf0201043f8fffff551d3e000000000000000000008000003bfa010000000000569e7bb9a4
)
),
iface_id=139945717383696,
transfer_id_modulo=18446744073709551616)
2023-09-01 23:54:02 1930786 DEB pycyphal.transport.redundant._tracer:
RedundantTracer({(<class 'pycyphal.transport.udp._udp.UDPTransport'>, 139945704416784):
<pycyphal.transport.udp._tracer.UDPTracer object at 0x7f47a4899010>, (<class 'pycyphal.transport.udp._udp.UDPTransport'>, 139945717383696): <pycyphal.transport.udp._tracer.UDPTracer object at 0x7f47a71d3b90>}):
BYPASS:
UDPErrorTrace(
timestamp=Timestamp(system_ns=1693601642728726000,
monotonic_ns=993420910877439),
error=<Error.UNEXPECTED_TRANSFER_ID: 2>
)
Reproducible with:
UAVCAN__UDP__IFACE="127.0.0.1 192.168.1.200" UAVCAN__NODE__ID=12345 y -vv mon 2>error.log
Not reproducible without interface redundancy.
- 主要言語
- Python
- スター
- 142
- フォーク
- 110
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
OpenCyphal/pycyphal のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 48/100
OpenCyphal/pycyphal#396 ·
-
class-feature domain-core help wanted severity-minor
難易度 4/5 3〜5日 初心者へのやさしさ 38/100
OpenCyphal/pycyphal#339 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
OpenCyphal/pycyphal#338 · コメント 3 件 ·
-
DiagnosticPublisher attempts to use the main asyncio event loop from worker threads (which fails)オープンclass-defect domain-core help wanted severity-major
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
OpenCyphal/pycyphal#336 ·
-
class-defect domain-core help wanted severity-minor
難易度 3/5 1〜2日 初心者へのやさしさ 38/100
OpenCyphal/pycyphal#334 ·
OpenCyphal/pycyphal の issue をすべて見る
似ている issue
-
[oblt-aw][autodoc] Update workflow docs for gh-aw v0.92.5 and detector permission scope対応中かも @github-actions が今日担当しました。 オープン
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
roadmap-100
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
comp/tools P2 tool/browser tool/file type/bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
NousResearch/hermes-agent#143418 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
python-hyper/uritemplate#164 ·