tree 1741570bac45cc108d3f82bdb7ca719679af16b3
parent 129081a25baedbc0d3ace75b32fba4f40bdb793f
author QuentinCaldeira-eaton <164154640+QuentinCaldeira-eaton@users.noreply.github.com> 1719931303 +0200
committer GitHub <noreply@github.com> 1719931303 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJmhBGnCRC1aQ7uu5UhlAAApcMQABLwUe8k/UujULHNNVu2zj+Q
 CIOveDXLwa/VzLCqMmYLwdKtXV5P2tVQrzL2Zs7jSs+qnnEhEWBF0L0hpKFTm1EP
 tXea40p8Tvjd6KHSD1ilnLQAk05w3T+cl1S3CM3JdCNqlIAJTzw/eggKi82PotJL
 C1lMOQE50UA8ItTZbJkIMacFop9kWBIfSDqBGoqzCMTk6BCXA5s1LDk/38VqUB9C
 5NavVyrD/B8teQVNx3oh5rejxtfxiygBYdn4esgXjp33RcTXxCQofDAkx01dyHmj
 CDE+Qj+/tt0YZJcv3SD9pmSbPeGt7l+fpV/D+fobC9S99+35t+9+x+j5yWCJc2hr
 Cbn8ot9LpiKn4uM2GvpEMeR5WBQrEieVTFKCm1keKRwPYnLkkBm06rCDeva2dwvx
 kFAaTLr57bn79XMJXkeN0rK3sDK3HpCYPbkk3Nu6cBcTgp1NJxrAWaUkRoPEBJKB
 /7x+vGoXG3xJ+/+Sij9wdodaFgXm4j43r05WuvtkS83kvI7BcBahFAdqBvhCWULn
 KoZ5BZDQX+N2LdNSYcqYqiZBFT8bn0sE8Dz+iB8aMei/s68JkI//r3vKuXdkwSFK
 WiEv+mgGqsICCD67kV7jnYoK0nKtTzAQ+aGBAxTgbi8BPPfHride1DIydY1xkGAr
 Y2d8ZWHoBuXTlhbhIbSh
 =2+9b
 -----END PGP SIGNATURE-----
 

Zephyr standalone platform update (#34135)

* fix zephyr build (west)

* Use different Kconfig

In order to let the user choose his own pack of functionality. I guess BLUETOOTH shouldn't be enable by default,
because Bluetooth isn't mandatory for a Matter device

Signed-off-by: Caldeira, Quentin <QuentinCaldeira@eaton.com>

* Remove ZephyrSocket

Because zephyr has recvmsg now

Signed-off-by: Caldeira, Quentin <QuentinCaldeira@eaton.com>

* Support ip_mreq and ip_mreqn

Because Zephyr seems to not have ip_mreq, only ip_mreqn, so add an extra flag in platform config to make the choice.
This issue is only meets when doing ipv4 on a Zephyr platform

Signed-off-by: Caldeira, Quentin <QuentinCaldeira@eaton.com>

* Add missing functions to BLE

Signed-off-by: Caldeira, Quentin <QuentinCaldeira@eaton.com>

* Add specific configs and dependencies for Zephyr platform

Signed-off-by: Caldeira, Quentin <QuentinCaldeira@eaton.com>

* Restyled by whitespace

* Restyled by clang-format

* Restyled by gn

* Revert "Remove ZephyrSocket"

This reverts commit f283940c0312c9d4820a9e68610f319f356e45c8.
Also, fix things discussed with Damian-Nordic

Signed-off-by: Caldeira, Quentin <QuentinCaldeira@eaton.com>

* Don't use ZephyrSocket.h

Since zephyr implement recvsg now

Signed-off-by: Caldeira, Quentin <QuentinCaldeira@eaton.com>

* Remove git artifact

Signed-off-by: Caldeira, Quentin <QuentinCaldeira@eaton.com>

* Restyled by whitespace

* Restyled by clang-format

* Re-add ZephyrSocket.h include

Signed-off-by: Caldeira, Quentin <QuentinCaldeira@eaton.com>

* Remove BLE Read declarations

As discussed in conversations

Signed-off-by: Caldeira, Quentin <QuentinCaldeira@eaton.com>

* Allow net_if only with Ethernet or Wifi connection

Signed-off-by: Caldeira, Quentin <QuentinCaldeira@eaton.com>

* Check if Ethernet is defined

Because all manufactures don't implement it

Signed-off-by: Caldeira, Quentin <QuentinCaldeira@eaton.com>

* Restyled by clang-format

---------

Signed-off-by: Caldeira, Quentin <QuentinCaldeira@eaton.com>
Co-authored-by: Restyled.io <commits@restyled.io>