Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Protocol 0.8 #223

Merged
merged 121 commits into from
Aug 31, 2023
Merged
Show file tree
Hide file tree
Changes from 119 commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
aefa0ed
Scouting and Hello refactor
cguimaraes Feb 8, 2023
41ba748
Skeleton for message extensions
cguimaraes Feb 10, 2023
254f9fa
Add extensions to transport messages
cguimaraes Feb 10, 2023
adb4f0f
Add UUID utils
cguimaraes Feb 16, 2023
e98aa7b
Allow ZID to be set in configuration
cguimaraes Feb 16, 2023
2af5b6e
Add missing copyright
cguimaraes Feb 16, 2023
228ca77
Explicit set compressed byte to 0
cguimaraes Feb 16, 2023
7b5bd09
Refactor Init message
cguimaraes Feb 16, 2023
f978b61
Refactor Open message
cguimaraes Feb 16, 2023
2ad3a13
Refactor Keep Alive
cguimaraes Feb 16, 2023
d8723c4
Refactor Close
cguimaraes Feb 16, 2023
b068a95
Refactor Frame message
cguimaraes Feb 16, 2023
1c93650
Remove sync, acknack, pingpong messages
cguimaraes Feb 16, 2023
61a89fa
Fix flags for hello message
cguimaraes Feb 16, 2023
14a3b29
Remove unused flags
cguimaraes Feb 16, 2023
99e5119
Fix memory leak on query body
cguimaraes Feb 17, 2023
aaa938e
Fixes on extensions encoding and clearing
cguimaraes Feb 17, 2023
43dae0c
Non initialized version on hello message
cguimaraes Feb 17, 2023
019791e
Robustness on transport message deserialization
cguimaraes Feb 17, 2023
c43dde3
Remove include
cguimaraes Feb 17, 2023
637c942
Improve message clear / free upon decoding error
cguimaraes Feb 17, 2023
d4ead7a
Fix frame and frame header dependency
cguimaraes Feb 17, 2023
4b449e6
Fix multicast transport init with new messages
cguimaraes Feb 17, 2023
3276e97
Experimental refactor for join message
cguimaraes Feb 17, 2023
2523591
Change reliability enum for convenience with is_reliable input
cguimaraes Feb 17, 2023
5f09070
Anything multiplied by 0 is always 0..._z_max_value
cguimaraes Feb 17, 2023
b586baa
Fix intres types conversion to nbytes
cguimaraes Feb 17, 2023
5fbc7bc
Remove artifacts from removed messages
cguimaraes Feb 20, 2023
eace015
Add fragment message
cguimaraes Feb 20, 2023
2e4d65e
Z flag for extensions should be common
cguimaraes Feb 21, 2023
9e096b3
Fragment logic to reset
cguimaraes Feb 22, 2023
9e2ec08
Fix whatami values
cguimaraes Mar 23, 2023
97a347a
Fixes dynamic memory allocation wrt buffer allocation checks (#178) (…
cguimaraes Mar 21, 2023
af17959
Fix INIT/JOIN number resolutions
cguimaraes Mar 23, 2023
71aabd0
Split scouting from transport messages
cguimaraes Mar 23, 2023
7e04a5d
Update protocol version and msg ids
cguimaraes Mar 23, 2023
f74d86b
Optimization on SN helpers
cguimaraes Mar 24, 2023
6dc9ad2
Fix resolution negotiation
cguimaraes Mar 24, 2023
1a6eace
Default resolution size is 2
cguimaraes Mar 27, 2023
ea39f9f
Support for mandatory and optional extensions
cguimaraes Mar 27, 2023
9d14efa
Fix extensions placement in frame and fragments
cguimaraes Mar 27, 2023
6750a1a
Rename message names to explicitly identify the layer
cguimaraes Mar 29, 2023
f00a79a
Remove unused flags
cguimaraes Mar 29, 2023
b352671
Update DECLARE message
cguimaraes Mar 29, 2023
93c498f
Add PUSH, REQUEST, RESPONSE and RESPONSE_FINAL messages
cguimaraes Mar 31, 2023
87c8ed1
Merge branch 'master' into feat/protocol
cguimaraes Jun 1, 2023
e0f5fd7
fix UB in vec_make(0)
p-avital Jun 1, 2023
3729845
finish zid update
p-avital Jun 2, 2023
a54dfcf
more zids that aren't zbytes anymore
p-avital Jun 6, 2023
8315b0b
new scout message
p-avital Jun 7, 2023
0f0555c
ensure Z flag is set for scout messages with QoS
p-avital Jun 7, 2023
4f9a9ac
delete attachements and transport-message-extension-vectors
p-avital Jun 7, 2023
8772935
transport layer audited
p-avital Jun 8, 2023
24d833d
purge some unused macros
p-avital Jun 8, 2023
f354e8c
finish new join encoding
p-avital Jun 8, 2023
f3f58ba
better extension skip, split network layer codecs
p-avital Jun 12, 2023
5df7a70
more codecs
p-avital Jun 19, 2023
f2bb0e1
more zenoh-level messages [skip ci]
p-avital Jun 19, 2023
ed7ef95
more+ zenoh-level messages [skip ci]
p-avital Jun 19, 2023
3818fec
reorg + declarations started [skip ci]
p-avital Jun 29, 2023
96b28db
declarations done [skip ci]
p-avital Jun 30, 2023
345ce4f
More reorg + new constructors for declarations
p-avital Jun 30, 2023
60e9c7f
codecs should be done [skip ci]
p-avital Jun 30, 2023
c3320a2
pre-merge commit [skip ci]
p-avital Jul 3, 2023
c5ae291
Merge branch 'master' into feat/protocol
p-avital Jul 3, 2023
8d12c84
pre-cmake [skip ci]
p-avital Jul 4, 2023
29aa8f7
pre-cmake [skip ci]
p-avital Jul 4, 2023
ef3e956
now to fix the tests [skip ci]
p-avital Jul 4, 2023
7fe228b
part of tests passing [skip ci]
p-avital Jul 7, 2023
c25ace3
network layer tests passing
p-avital Jul 7, 2023
4b29c02
just a few more tests, new keyexpr resolution checked
p-avital Jul 11, 2023
3d9c435
more tests passing
p-avital Jul 11, 2023
6cc8f78
tests done, checking compilation on CI
p-avital Jul 12, 2023
3f20241
fix lints
p-avital Jul 12, 2023
16be0dd
fix lints (more)
p-avital Jul 12, 2023
0d66e6e
apparently 50 years is not enough to get a decent formatting story...
p-avital Jul 12, 2023
e89610c
fix -pedantic
p-avital Jul 12, 2023
7009d42
fix fprintzid
p-avital Jul 12, 2023
8f52d50
so... C99 is too recent for MSVC... yup... :/
p-avital Jul 12, 2023
5a33658
fix more lints
p-avital Jul 12, 2023
1266efe
more format fixes
p-avital Jul 12, 2023
872c3f2
again
p-avital Jul 12, 2023
c270ddd
fix windows
p-avital Jul 12, 2023
a1d7086
Fix publisher
Mallets Jul 26, 2023
2e7a005
Revert "Fix publisher"
p-avital Jul 28, 2023
6a81391
intruduce mappings
p-avital Jul 28, 2023
ba5722d
reference count the resources!
p-avital Jul 28, 2023
19423da
fix refcounting and add a global unregister for when a peer disconnects
p-avital Jul 28, 2023
17d87d2
signature fix
p-avital Jul 28, 2023
2ae3f64
give each multicast peer a u15 ID for KE mappings
p-avital Aug 1, 2023
b182537
add support for remote keyexpr declarations [skip ci]
p-avital Aug 2, 2023
cea8893
actually pass the responses back to the user
p-avital Aug 7, 2023
86b452a
Merge branch 'master' into feat/protocol
p-avital Aug 7, 2023
2c3677a
fixes
p-avital Aug 7, 2023
e002243
missed an auto
p-avital Aug 7, 2023
f10b806
move _z_decl_fix_mapping out of line so bad compilers might understan…
p-avital Aug 7, 2023
7773a43
fix lints for embedded compilers
p-avital Aug 7, 2023
c65ce08
fix builds on embedded platforms
p-avital Aug 7, 2023
6c3ae1a
fix some constructors [skip ci]
p-avital Aug 9, 2023
a0f0113
re-support multicast and datagram transports
p-avital Aug 11, 2023
5238f25
fix aliasing issue in resources
p-avital Aug 11, 2023
0be6ad0
implement fragmentation
p-avital Aug 18, 2023
2b87df4
implement fragmentation for multicast
p-avital Aug 18, 2023
a044c96
fix memory leaks
p-avital Aug 21, 2023
dc5bec9
fix wbuf allocating even if a slice is available after the full one
p-avital Aug 21, 2023
410848a
fix platformio fetch link
p-avital Aug 21, 2023
230b3b9
fix platformio _again_
p-avital Aug 21, 2023
219fd4e
fix warns
p-avital Aug 21, 2023
14a9c9b
clangd wanted to add a cpp import fo rsome reason
p-avital Aug 21, 2023
c5f879a
wrong format code
p-avital Aug 21, 2023
82f060f
fix declarations, including prefixes for subs
p-avital Aug 24, 2023
a46e236
fix undeclaration error reporting
p-avital Aug 25, 2023
bcc6563
fix get_resource_by_keyexpr
p-avital Aug 25, 2023
385d57e
embedded are still annoying about formating
p-avital Aug 25, 2023
ee98b25
fix builds of alignment test for windows
p-avital Aug 25, 2023
4ebace5
integration tests should pass now
p-avital Aug 25, 2023
dbc382d
remove realpath from multicast test
p-avital Aug 25, 2023
ef6ef96
remove realpath from test scripts, as macos doesn't support it
p-avital Aug 25, 2023
15e4960
forgot one of the realpaths, and of course, that broke the macos CI
p-avital Aug 25, 2023
a4484bf
address carlos's comments
p-avital Aug 28, 2023
499219d
refactoring field name failed for tests
p-avital Aug 28, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
BasedOnStyle: Google
IndentWidth: 4
ColumnLimit: 120
PointerAlignment: Left
230 changes: 115 additions & 115 deletions .github/workflows/arduino_esp32.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,129 +15,129 @@ name: arduino_esp32

on:
push:
branches: [ '**' ]
branches: ["**"]
pull_request:
branches: [ '**' ]
branches: ["**"]

jobs:
build:

name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
os: [ubuntu-latest]

steps:
- uses: actions/checkout@v2

- name: Install requirements
run: |
echo "No requirements need to be installed"

- name: Install PlatformIO
run: |
python3 -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)"
. $HOME/.platformio/penv/bin/activate
platformio update

- name: Set up project
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
. $HOME/.platformio/penv/bin/activate

mkdir -p $ARDUINO_BASE
cd $ARDUINO_BASE
platformio init -b esp32thing_plus --project-option="build_flags=-DZ_LINK_BLUETOOTH=1 -DZENOH_DEBUG=3"

cd $ARDUINO_BASE/lib
ln -s $ZENOH_PICO_BASE

cd $ARDUINO_BASE

- name: Build z_pub example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
. $HOME/.platformio/penv/bin/activate

rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_pub.ino

cd $ARDUINO_BASE
platformio run

- name: Build z_sub example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
. $HOME/.platformio/penv/bin/activate

rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_sub.ino

cd $ARDUINO_BASE
platformio run

- name: Build z_pull example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
. $HOME/.platformio/penv/bin/activate

rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_pull.ino

cd $ARDUINO_BASE
platformio run

- name: Build z_get example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
. $HOME/.platformio/penv/bin/activate

rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_get.ino

cd $ARDUINO_BASE
platformio run

- name: Build z_queryable example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
. $HOME/.platformio/penv/bin/activate

rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_queryable.ino

cd $ARDUINO_BASE
platformio run

- name: Build z_scout example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
. $HOME/.platformio/penv/bin/activate

rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_scout.ino

cd $ARDUINO_BASE
platformio run
- uses: actions/checkout@v2

- name: Install requirements
run: |
echo "No requirements need to be installed"

- name: Install PlatformIO
run: |
curl -fsSL -o get-platformio.py https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py
python3 get-platformio.py
. $HOME/.platformio/penv/bin/activate
platformio update

- name: Set up project
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
. $HOME/.platformio/penv/bin/activate

mkdir -p $ARDUINO_BASE
cd $ARDUINO_BASE
platformio init -b esp32thing_plus --project-option="build_flags=-DZ_LINK_BLUETOOTH=1 -DZENOH_DEBUG=3"

cd $ARDUINO_BASE/lib
ln -s $ZENOH_PICO_BASE

cd $ARDUINO_BASE

- name: Build z_pub example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
. $HOME/.platformio/penv/bin/activate

rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_pub.ino

cd $ARDUINO_BASE
platformio run

- name: Build z_sub example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
. $HOME/.platformio/penv/bin/activate

rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_sub.ino

cd $ARDUINO_BASE
platformio run

- name: Build z_pull example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
. $HOME/.platformio/penv/bin/activate

rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_pull.ino

cd $ARDUINO_BASE
platformio run

- name: Build z_get example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
. $HOME/.platformio/penv/bin/activate

rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_get.ino

cd $ARDUINO_BASE
platformio run

- name: Build z_queryable example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
. $HOME/.platformio/penv/bin/activate

rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_queryable.ino

cd $ARDUINO_BASE
platformio run

- name: Build z_scout example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
. $HOME/.platformio/penv/bin/activate

rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_scout.ino

cd $ARDUINO_BASE
platformio run
Loading
Loading