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

DP7417 C++ Implementation of Secure MAVLink proxy on device-side #563

Open
wants to merge 273 commits into
base: main
Choose a base branch
from

Conversation

kjyrinki-unikie
Copy link

No description provided.

jlaitine and others added 30 commits October 25, 2023 13:35
… CLOCK_MONOTONIC in SITL

Signed-off-by: Jukka Laitinen <[email protected]>
Signed-off-by: Jukka Laitinen <[email protected]>
If the client is clearly not executing the callbacks, unregister it to:
- Free the resource
- Prevent posting the semaphore over its limit (which causes a crash)

The unresponsive clients are removed one at a time, to keep the removal
mechanism light weight.
There is one semaphore lock per thread already, this same mechanism can
be used to pass the callbacks too.
In SITL case the _POSIX_NAME_MAX is only 14, so it fails for every topic.
Use NAME_MAX instead to get correct maximum filename value for both
posix and nuttx cases.
Signed-off-by: Jukka Laitinen <[email protected]>
…uorb

Polling uorb is different than polling stdin due to non-file nature of uorb now

Signed-off-by: Jukka Laitinen <[email protected]>
- uORB depends on uorb_msgs (get_orb_meta)
- px4_platform_init() should not call param_init, if param module is disabled
- px4_protected_layers re-organize the link_library commands into one
- reboot does not need to explicitly add px4_platform, it gets it anyway
Fixes build error:
arm-none-eabi/bin/ld: NuttX/nuttx/drivers/libdrivers.a(pipe_common.o): in function `pipecommon_close':
nuttx/drivers/pipes/pipe_common.c:381: undefined reference to `circbuf_uninit'
Signed-off-by: Jukka Laitinen <[email protected]>
Signed-off-by: Jukka Laitinen <[email protected]>
Forklift platforms/*/microchip support from tiiuae v1.14-beta1 main

Signed-off-by: Jukka Laitinen <[email protected]>
Small fix for compilation errors without i2c bus support

Signed-off-by: Jukka Laitinen <[email protected]>
Add 4400_ssrc_fog_x, 4401_ssrc_fog_x_tmotor, 50005_ssrc_scout_mini_rover and 50006_ssrc_bunker_rover

Add the airframes and the default parameters for communication between flight controller
and mission computer

Signed-off-by: Jukka Laitinen <[email protected]>
Logging to mavlink hangs the TCP connection between PX4 and Gazebo

Signed-off-by: Jari Nippula <[email protected]>
There is something wrong with publishing sensor_combined when Multi EKF is used

Also the real drone doesn't use Multi-EKF

Signed-off-by: Jukka Laitinen <[email protected]>
…in git

There are some specific settings needed to get safe and precise flying in small
indoors location. These parameters can be stored on a config.txt file on the drone
sdcard; this is just to store those parameters also in the git for tracking.

NOTE: this is not the best location for such settings, and definitely not for
upstreaming or such

Signed-off-by: Jukka Laitinen <[email protected]>
The uploader script calculates the crc over the maximum image size. With
32MB images it takes longer than 0.5s, so just wait for longer

Signed-off-by: Jukka Laitinen <[email protected]>
The atomic<bool> is not quaranteed to be lock-free, use int instead just in
case.

Signed-off-by: Jukka Laitinen <[email protected]>
Create a driver which gets PWM values from mixer and controls PWM via standard nuttx pwm interface

Signed-off-by: Jukka Laitinen <[email protected]>
Signed-off-by: Jukka Laitinen <[email protected]>
Signed-off-by: Jukka Laitinen <[email protected]>
@jlaitine
Copy link

Please note that px4-firmware is a public repository; I believe that this functionality might be part of "TII" proprietary offering, so maybe move the component in a separate git repository. Now this is publicly visible..

bool get_nonce(uint8_t *nonce, size_t *nonce_len);
void close() {}
};
static void sodium_crypto_init(void) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dead code?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed sodium_crypto_init, still kept the sodium crypto functions. Overall the purpose of this Crypto wrapper (Crypto.cpp/hpp) is created mainly for testing without HW.

Combination of multiple dependabot updates:
build(deps): bump scipy
build(deps): bump actions/upload-artifact from 2.pre.preview to 3.1.3
build(deps): bump docker/setup-buildx-action from 2 to 3
build(deps): bump stefanzweifel/git-auto-commit-action from 4 to 5
build(deps): bump codecov/codecov-action from 1 to 3
build(deps): bump actions/cache from 2 to 3

Signed-off-by: dependabot[bot] <[email protected]>
@kjyrinki-unikie
Copy link
Author

I have moved implementation into separate submodule.

@jlaitine
Copy link

btw. use of exit() is a bit fishy in NuttX context; in case of flat build, there are no processes, so it is not clear what all it wants to kill. If the program has been launched from the terminal (nsh shell), exit() will most likely also kill the shell at the same ;) Also as long as you don't intend to use atexit, you could as well call _exit().

Even though exit() is handy, I would recommend not using exit, but just letting threads run to the end / returning error values to the highest level and returning the error value.

@jlaitine
Copy link

The config.yaml is not added to the ROMFS filesystem anywhere for PX4 build; is this intentional?

AFAIK, there is no clean way to put in files from within module; it will need to be added separately in ROMFS/ build files.

Maybe it is cleaner to make the ports etc. as command line arguments (with some sane defaults hardocoded perhaps), and just skip the yaml file parsing for embedded build ?

Signed-off-by: Jukka Laitinen <[email protected]>
@jlaitine jlaitine force-pushed the DP-7417-secure-mavlink-udp-proxy-cxx branch from adb7632 to 157f4ff Compare November 28, 2023 08:07
@jnippula jnippula force-pushed the DP-7417-secure-mavlink-udp-proxy-cxx branch from e1f1ed4 to ebedb60 Compare November 30, 2023 08:40
@jnippula jnippula force-pushed the DP-7417-secure-mavlink-udp-proxy-cxx branch from 4fb9a06 to 071d32b Compare December 14, 2023 10:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.