tree: 371a3cb470e5b0d03cec9057413e7689c61989f4 [path history] [tgz]
  1. .clang-format
  2. .gitignore
  3. ack_frame.cc
  4. ack_frame.h
  5. ack_frame_test.cc
  6. bandwidth.h
  7. bbr.cc
  8. bbr.h
  9. bbr_fuzzer.cc
  10. bbr_fuzzer_helpers.h
  11. bbr_test.cc
  12. BUILD.gn
  13. callback.h
  14. callback_test.cc
  15. csv_writer.h
  16. datagram_stream.cc
  17. datagram_stream.h
  18. datagram_stream_test.cc
  19. fork_frame.cc
  20. fork_frame.h
  21. fork_frame_test.cc
  22. gen_bazel.py
  23. internal_list.h
  24. internal_list_fuzzer.cc
  25. internal_list_fuzzer_corpus_to_code.py
  26. internal_list_fuzzer_helpers.h
  27. internal_list_test.cc
  28. linearizer.cc
  29. linearizer.h
  30. linearizer_fuzzer.cc
  31. linearizer_fuzzer_corpus_to_code.py
  32. linearizer_fuzzer_helpers.h
  33. linearizer_test.cc
  34. manual_constructor.h
  35. node_id.cc
  36. node_id.h
  37. node_id_test.cc
  38. optional.h
  39. optional_test.cc
  40. packet_link.cc
  41. packet_link.h
  42. packet_link_test.cc
  43. packet_nub.h
  44. packet_nub_test.cc
  45. packet_protocol.cc
  46. packet_protocol.h
  47. packet_protocol_fuzzer.cc
  48. packet_protocol_fuzzer_corpus_to_code.py
  49. packet_protocol_fuzzer_helpers.h
  50. packet_protocol_test.cc
  51. README.md
  52. receive_mode.cc
  53. receive_mode.h
  54. receive_mode_fuzzer.cc
  55. receive_mode_fuzzer_corpus_to_code.py
  56. receive_mode_fuzzer_helpers.h
  57. receive_mode_test.cc
  58. reliability_and_ordering.cc
  59. reliability_and_ordering.h
  60. routable_message.cc
  61. routable_message.h
  62. routable_message_fuzzer.cc
  63. routable_message_test.cc
  64. router.cc
  65. router.h
  66. router_endpoint.cc
  67. router_endpoint.h
  68. router_endpoint_2node_test.cc
  69. router_test.cc
  70. routing_table.cc
  71. routing_table.h
  72. run_all_tests.cc
  73. seq_num.cc
  74. seq_num.h
  75. serialization_helpers.h
  76. sink.h
  77. sink_test.cc
  78. slice.cc
  79. slice.h
  80. slice_test.cc
  81. status.cc
  82. status.h
  83. status_test.cc
  84. stream_id.cc
  85. stream_id.h
  86. test_timer.cc
  87. test_timer.h
  88. test_timer_test.cc
  89. timer.h
  90. TODO
  91. varint.cc
  92. varint.h
  93. varint_test.cc
  94. windowed_filter.h
lib/overnet/README.md

Overlay Network

This library contains the core protocol and logic for the Fuchsia overlay network. This is a mesh network that sits atop other network protocol stacks and allows message routing.

Build and Runtime Environment Considerations

The library is intended to be used both within Fuchsia, and outside Fuchsia on existing operating systems and within other projects.

This library should depend on only the C++ runtime library at runtime, and additionally google test and google mock for test code, and no more.

This library is expected to be wrapped by other binaries and libraries to produce a full system. This expectation allows us to set down the rule that no OS interactions are to occur within this library. Instead, interfaces should be phrased such that relevant OS interactions can be injected by more specific code.

To verify this library works outside of Fuchsia: ninja -C out/x64 host_x64/overnet_unittests && out/x64/host_x64/overnet_unittests