Cyphal/UDP: LinkLayerSniffer shall only accept frames from a specific NIC
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 38/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- networking
Direzione di ricerca
Inizia con il comando di riproduzione indicato e traccia il modo in cui LinkLayerSniffer gestisce le catture quando la ridondanza delle interfacce è abilitata. Esamina i percorsi di tracing UDP e di trasporto ridondante coinvolti nella selezione di un’interfaccia. Il lavoro è completato quando i frame provenienti da altre NICs vengono ignorati e gli errori relativi a transfer-ID non valido non si verificano più nel caso riprodotto di interfaccia ridondante.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Python
- Stelle
- 142
- Fork
- 110
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di OpenCyphal/pycyphal
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 48/100
OpenCyphal/pycyphal#396 ·
-
Add flush() functionalityApertaclass-feature domain-core help wanted severity-minor
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
OpenCyphal/pycyphal#339 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
OpenCyphal/pycyphal#338 · 3 commenti ·
-
DiagnosticPublisher attempts to use the main asyncio event loop from worker threads (which fails)Apertaclass-defect domain-core help wanted severity-major
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
OpenCyphal/pycyphal#336 ·
-
class-defect domain-core help wanted severity-minor
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
OpenCyphal/pycyphal#334 ·
Tutte le issue di OpenCyphal/pycyphal
Issue simili
-
style: article/section 📝 system: cloud.rc ☁️ system: security 🔐
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
uabrc/uabrc.github.io#1262 ·
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
NCAR/miles-credit#526 ·
-
documentation
Difficoltà 1/5 1-3 ore Idoneità per principianti 76/100
conda/conda-lock#957 ·
I maintainer di solito rispondono entro 1 giorno
-
Type: Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
aws-samples/sample-per-model-bedrock#464 ·
I maintainer di solito rispondono entro 1 giorno