pw_router: Extract packet priority and forward metadata to egresses

This adds a priority extractor to the router's PacketParser, and defines
a metadata struct which is forwarded to egresses with optional data
extracted from a packet.

Change-Id: I69f856b900e73de22d1ecb86e912aa2f7a96c436
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/48680
Reviewed-by: Wyatt Hepler <hepler@google.com>
7 files changed
tree: 3d6f389fa1a02b35981f77541d1888cd89d3b1bf
  1. build_overrides/
  2. docker/
  3. docs/
  4. pw_allocator/
  5. pw_analog/
  6. pw_arduino_build/
  7. pw_assert/
  8. pw_assert_basic/
  9. pw_assert_log/
  10. pw_base64/
  11. pw_bloat/
  12. pw_blob_store/
  13. pw_boot_armv7m/
  14. pw_build/
  15. pw_bytes/
  16. pw_checksum/
  17. pw_chrono/
  18. pw_chrono_embos/
  19. pw_chrono_freertos/
  20. pw_chrono_stl/
  21. pw_chrono_threadx/
  22. pw_cli/
  23. pw_containers/
  24. pw_cpu_exception/
  25. pw_cpu_exception_cortex_m/
  26. pw_docgen/
  27. pw_doctor/
  28. pw_env_setup/
  29. pw_function/
  30. pw_fuzzer/
  31. pw_hdlc/
  32. pw_hex_dump/
  33. pw_i2c/
  34. pw_interrupt/
  35. pw_interrupt_cortex_m/
  36. pw_kvs/
  37. pw_libc/
  38. pw_log/
  39. pw_log_basic/
  40. pw_log_multisink/
  41. pw_log_null/
  42. pw_log_rpc/
  43. pw_log_sink/
  44. pw_log_tokenized/
  45. pw_malloc/
  46. pw_malloc_freelist/
  47. pw_metric/
  48. pw_minimal_cpp_stdlib/
  49. pw_module/
  50. pw_multisink/
  51. pw_package/
  52. pw_persistent_ram/
  53. pw_polyfill/
  54. pw_preprocessor/
  55. pw_presubmit/
  56. pw_protobuf/
  57. pw_protobuf_compiler/
  58. pw_random/
  59. pw_result/
  60. pw_ring_buffer/
  61. pw_router/
  62. pw_rpc/
  63. pw_snapshot/
  64. pw_span/
  65. pw_status/
  66. pw_stm32cube_build/
  67. pw_stream/
  68. pw_string/
  69. pw_sync/
  70. pw_sync_baremetal/
  71. pw_sync_embos/
  72. pw_sync_freertos/
  73. pw_sync_stl/
  74. pw_sync_threadx/
  75. pw_sys_io/
  76. pw_sys_io_arduino/
  77. pw_sys_io_baremetal_lm3s6965evb/
  78. pw_sys_io_baremetal_stm32f429/
  79. pw_sys_io_stdio/
  80. pw_target_runner/
  81. pw_thread/
  82. pw_thread_embos/
  83. pw_thread_freertos/
  84. pw_thread_stl/
  85. pw_thread_threadx/
  86. pw_tokenizer/
  87. pw_tool/
  88. pw_toolchain/
  89. pw_trace/
  90. pw_trace_tokenized/
  91. pw_unit_test/
  92. pw_varint/
  93. pw_watch/
  94. pw_web_ui/
  95. targets/
  96. third_party/
  97. .bazelignore
  98. .bazelrc
  99. .clang-format
  100. .eslintrc.json
  101. .gitattributes
  102. .gitignore
  103. .gn
  104. .prettierrc.js
  105. .pylintrc
  106. activate.bat
  107. AUTHORS
  108. bootstrap.bat
  109. bootstrap.sh
  110. BUILD
  111. BUILD.gn
  112. BUILDCONFIG.gn
  113. CMakeLists.txt
  114. LICENSE
  115. modules.gni
  116. OWNERS
  117. package.json
  118. PW_PLUGINS
  119. README.md
  120. tsconfig.json
  121. WORKSPACE
  122. yarn.lock
README.md

See our website: http://pigweed.dev