-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Port the AWS Fleet Provisioning demo from the CSDK #724
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
Conversation
f599314 to
4b191da
Compare
...WS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/pkcs11_operations.c
Outdated
Show resolved
Hide resolved
...WS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/pkcs11_operations.c
Outdated
Show resolved
Hide resolved
...WS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/pkcs11_operations.c
Outdated
Show resolved
Hide resolved
...AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/core_mqtt_config.h
Outdated
Show resolved
Hide resolved
...S/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/core_pkcs11_config.h
Outdated
Show resolved
Hide resolved
..._Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoTasks/FleetProvisioningDemoExample.c
Outdated
Show resolved
Hide resolved
..._Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoTasks/FleetProvisioningDemoExample.c
Outdated
Show resolved
Hide resolved
..._Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoTasks/FleetProvisioningDemoExample.c
Outdated
Show resolved
Hide resolved
..._Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoTasks/FleetProvisioningDemoExample.c
Outdated
Show resolved
Hide resolved
..._Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoTasks/FleetProvisioningDemoExample.c
Outdated
Show resolved
Hide resolved
…eet_Provisioning_With_CSR_Demo/DemoTasks/FleetProvisioningDemoExample.c Co-authored-by: Archit Gupta <[email protected]>
...S/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/core_pkcs11_config.h
Outdated
Show resolved
Hide resolved
...S/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/core_pkcs11_config.h
Outdated
Show resolved
Hide resolved
..._Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoTasks/FleetProvisioningDemoExample.c
Outdated
Show resolved
Hide resolved
..._Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoTasks/FleetProvisioningDemoExample.c
Outdated
Show resolved
Hide resolved
...WS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/pkcs11_operations.c
Outdated
Show resolved
Hide resolved
...WS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/pkcs11_operations.c
Outdated
Show resolved
Hide resolved
...WS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/pkcs11_operations.c
Outdated
Show resolved
Hide resolved
...WS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/pkcs11_operations.c
Outdated
Show resolved
Hide resolved
| * defined here will be used if ipconfigUSE_DHCP is 0, or if ipconfigUSE_DHCP is | ||
| * 1 but a DHCP server could not be contacted. See the online documentation for | ||
| * more information. */ | ||
| static const uint8_t ucIPAddress[ 4 ] = { configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we really need to support a static IP?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The main.c function is consistent across all of the demos, modifications should be left to a future PR which modify evenly across each of the demos.
| * to and from a real network connection on the host PC. See the | ||
| * configNETWORK_INTERFACE_TO_USE definition for information on how to configure | ||
| * the real network connection to use. */ | ||
| const uint8_t ucMACAddress[ 6 ] = { configMAC_ADDR0, configMAC_ADDR1, configMAC_ADDR2, configMAC_ADDR3, configMAC_ADDR4, configMAC_ADDR5 }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should probably be auto-generated with a known-empty OUI rather than set to a single default value.
VMWare suggests this range: 00:50:56:XX:YY:ZZ.
You could also consider setting the "locally administered" bit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The main.c function is consistent across all of the demos, modifications should be left to a future PR which modify evenly across each of the demos.
| * vApplicationIPNetworkEventHook() below). The address values passed in here | ||
| * are used if ipconfigUSE_DHCP is set to 0, or if ipconfigUSE_DHCP is set to 1 | ||
| * but a DHCP server cannot be contacted. */ | ||
| FreeRTOS_IPInit( ucIPAddress, ucNetMask, ucGatewayAddress, ucDNSServerAddress, ucMACAddress ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The result of this function is not checked.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The main.c function is consistent across all of the demos, modifications should be left to a future PR which modify evenly across each of the demos.
| * Utility function to generate a pseudo random number. | ||
| * | ||
| * !!!NOTE!!! | ||
| * This is not a secure method of generating a random number. Production |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could this call pkcs11 C_GetRandom?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This could use the pkcs11 C_GetRandom, but this is only a viable option for this demo and other demos using PKCS11.
The main.c function is consistent across all of the demos, modifications should be left to a future PR which modify evenly across each of the demos.
| time_t xTimeNow; | ||
| uint32_t ulLoggingIPAddress; | ||
|
|
||
| ulLoggingIPAddress = FreeRTOS_inet_addr_quick( configUDP_LOGGING_ADDR0, configUDP_LOGGING_ADDR1, configUDP_LOGGING_ADDR2, configUDP_LOGGING_ADDR3 ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would generally prefer FreeRTOS_inet_addr rather FreeRTOS_inet_addr_quick, since it's unlikely that addresses will be stored in octets in any production use case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The main.c function is consistent across all of the demos, modifications should be left to a future PR which modify evenly across each of the demos.
| /* Determine if a name lookup is for this node. Two names are given | ||
| * to this node: that returned by pcApplicationHostnameHook() and that set | ||
| * by mainDEVICE_NICK_NAME. */ | ||
| if( _stricmp( pcName, pcApplicationHostnameHook() ) == 0 ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would feel more comfortable with the bounded _strnicmp function rather than the unbounded _stricmp function.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The main.c function is consistent across all of the demos, modifications should be left to a future PR which modify evenly across each of the demos.
| { | ||
| uint16_t usPacketIdentifier; | ||
|
|
||
| configASSERT( pxMqttContext != NULL ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the point of a callback context if it's unused?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These mqtt_operations changes will be addressed in a future PR, where mqtt_demo_helpers is adapted to work with PKCS11.
| /*-----------------------------------------------------------*/ | ||
|
|
||
| static void prvCleanupOutgoingPublishWithPacketID( uint16_t usPacketId ) | ||
| { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function should take the context as a parameter rather than relying on a global.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These mqtt_operations changes will be addressed in a future PR, where mqtt_demo_helpers is adapted to work with PKCS11.
| MQTTFixedBuffer_t xNetworkBuffer; | ||
| TransportInterface_t xTransport; | ||
| bool xCreateCleanSession = false; | ||
| MQTTContext_t * pxMqttContext = &xMqttContext; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be a parameter rather than refer to a global.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These mqtt_operations changes will be addressed in a future PR, where mqtt_demo_helpers is adapted to work with PKCS11.
| { | ||
| bool xReturnStatus = false; | ||
| MQTTStatus_t xMqttStatus; | ||
| MQTTContext_t * pxMqttContext = &xMqttContext; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be a parameter rather than a global.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These mqtt_operations changes will be addressed in a future PR, where mqtt_demo_helpers is adapted to work with PKCS11.
| { | ||
| bool xReturnStatus = false; | ||
| MQTTStatus_t xMqttStatus; | ||
| MQTTContext_t * pxMqttContext = &xMqttContext; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be a parameter rather than a global.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These mqtt_operations changes will be addressed in a future PR, where mqtt_demo_helpers is adapted to work with PKCS11.
| bool xReturnStatus = false; | ||
| MQTTStatus_t xMqttStatus = MQTTSuccess; | ||
| uint8_t ucPublishIndex = mqttopMAX_OUTGOING_PUBLISHES; | ||
| MQTTContext_t * pxMqttContext = &xMqttContext; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be a parameter rather than a global.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These mqtt_operations changes will be addressed in a future PR, where mqtt_demo_helpers is adapted to work with PKCS11.
| /*-----------------------------------------------------------*/ | ||
|
|
||
| bool xPublishToTopic( const char * pcTopicFilter, | ||
| uint16_t usTopicFilterLength, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is usTopicFilterLength really necessary here? Generally const char * are considered to be null terminated strings.
For arbitrary data, unsigned char *, uint8_t *, or void * are better choices.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is consistent in both mqtt_operations and mqtt_demo_helpers. I'll investigate the necessity of usTopicFilterLength in the future mqtt_demo_helpers PR.
| bool xReturnStatus = false; | ||
| MQTTStatus_t xMqttStatus = MQTTSuccess; | ||
|
|
||
| xMqttStatus = MQTT_ProcessLoop( &xMqttContext, mqttopMQTT_PROCESS_LOOP_TIMEOUT_MS ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reference to a global should be a parameter: &xMqttContext
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These mqtt_operations changes will be addressed in a future PR, where mqtt_demo_helpers is adapted to work with PKCS11.
| /* Convert the ticks to milliseconds. */ | ||
| ulTimeMs = ( uint32_t ) xTickCount * mqttopMILLISECONDS_PER_TICK; | ||
|
|
||
| /* Reduce ulGlobalEntryTimeMs from obtained time so as to always return the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is ulGlobalEntryTimeMs initialized anywhere?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems that it isn't, and this is consistent across all of the AWS demos. From the other demos, it seems that normally it is initialized in the task defined in the "DemoTasks/*Example.c" file. I'll address this in the mqtt_demo_helpers PR to keep the AWS demos consistent.
|
|
||
| /* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or | ||
| * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */ | ||
| #define configIP_ADDR0 10 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would prefer to have these defined as strings rather than octets.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FreeRTOSConfig.h is consistent across each of the demos, and a modification to this pattern is out-of-scope for this PR.
| #define MBEDTLS_PLATFORM_FREE_MACRO mbedtls_platform_free | ||
|
|
||
| /* The network send and receive functions on FreeRTOS. */ | ||
| int mbedtls_platform_send( void * ctx, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've seen this in other mbedtls configs before. I'm not sure it makes sense to have this defined here rather than in the TLS transport implementation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This could warrant another look, but changing this pattern requires changing each of the mbedtls_config.h files across all of the demos and should be out-of-scope for this PR.
* Main/TCP4 : ACK number in TCP RESET reply to SYN packet * Typo fix * Add unit-test for coverage; Fix ntohl to htonl * Fix unit-test --------- Co-authored-by: Nikhil Kamath <[email protected]> Co-authored-by: Aniruddha Kanhere <[email protected]>
* Main/TCP4 : ACK number in TCP RESET reply to SYN packet * Typo fix * Add unit-test for coverage; Fix ntohl to htonl * Fix unit-test --------- Co-authored-by: Nikhil Kamath <[email protected]> Co-authored-by: Aniruddha Kanhere <[email protected]>
* Update mainline to reflect changes after the release. (FreeRTOS#563) * Update README.md * Update History.txt * Update version number macros * Update manifest.yml * IPv4/single SAME70 emac race condition (FreeRTOS#567) * Implemented Maty's solution * Added a new statistic 'tx_write_fail' * Uncrustify: triggered by comment. Co-authored-by: Hein Tibosch <[email protected]> Co-authored-by: GitHub Action <[email protected]> * IPv4/Single: Add a SocketID to a socket (FreeRTOS#546) * IPv4/Single: Add a SocketID to a socket * Change in comment * Applied uncrustify to format the source code * Added a few entries to lexicon.txt * Removed the 'ipconfigUSE_SetSocketID' option * Change to lexicon.txt * Add unit tests for the newly added API Co-authored-by: Hein Tibosch <[email protected]> Co-authored-by: alfred gedeon <[email protected]> Co-authored-by: Aniruddha Kanhere <[email protected]> * IPv4/single: SAME70 EMAC buffer sizes (FreeRTOS#568) * Implemented Maty's solution * Added a new statistic 'tx_write_fail' * Uncrustify: triggered by comment. * Increase NETWORK_BUFFER_SIZE in order to include the 'ipBUFFER_PADDING' bytes * ICMP checksum calculated manually * Uncrustify: triggered by comment. * Update gmac_SAM.c Co-authored-by: Hein Tibosch <[email protected]> Co-authored-by: GitHub Action <[email protected]> Co-authored-by: Aniruddha Kanhere <[email protected]> * Eliminate some warnings (FreeRTOS#578) * Eliminate some warnings related to print statements Authored-by: Pete Bone <[email protected] > * Add MISRA justification for use of dynamic memory (FreeRTOS#581) * Update deprecated macros in network driver files (FreeRTOS#579) * Update deprecated macros in network driver files * Fix typo in RX driver. * Replace #warning with #error on test for deprecated macro. * Fix doxygen check Co-authored-by: PeterB <[email protected]> Co-authored-by: Aniruddha Kanhere <[email protected]> * Fix Network-interface of the Xilinx UltraScale port (FreeRTOS#588) The underlying issue was when the port would be used with Jumbo frames. During receives of Jumbo packets the data length was always set incorrectly, which then would cause buffer allocation issues and subsequently corrupted data would be sent to the IP-task. After some inspection in the Xilinx UltraScale port, I found out that when the data length would be set, the wrong mask from the Xilinx Ethernet MAC driver would be used. By using the right mask (XEMACPS_RXBUF_LEN_JUMBO_MASK) when Jumbo Frame support is enabled the issue was resolved * Fix Windows thread calling vTaskSuspendAll / xTaskResumeAll. (FreeRTOS#592) Co-authored-by: Jason Carroll <[email protected]> * Updated comments for FreeRTOS_select return value (FreeRTOS#596) * Updated comments for FreeRTOS_select return value * Updated the function brief for FreeRTOS_select * Uncrustify: triggered by comment. * Updating FreeRTOS_select function @brief * Updated function brief for FreeRTOS_SignalSocket * Uncrustify: triggered by comment. * Update source/FreeRTOS_Sockets.c Co-authored-by: Ubuntu <[email protected]> Co-authored-by: GitHub Action <[email protected]> Co-authored-by: Aniruddha Kanhere <[email protected]> * Fixed readme script to build and run unit tests (FreeRTOS#644) * Minor warning fixes (FreeRTOS#589) * Eliminate compiler unused parameter warning * Eliminate compiler unused variable warnings * Eliminate compiler unused function warning The function pcGetPHIName(...) would be called only in the FreeRTOS_printf message, however FreeRTOS_printf maybe be defined to nothing e.g. release builds, which then the warning would come up * Rework callback setups in the EMAC-driver of the Xilinx UltraScale port The calls to the function XEmacPs_SetHandler would trigger the pedantic warning: "ISO C forbids conversion of object pointer to function pointer type" The reason for this, is that the second parameter of the function XEmacPS_SetHandler is declared as pointer to a void type, but the function "expects" a function pointer, which in setup_isr rightly happens. However IMHO, this is just bad code from the side of Xilinx, as not on all architectures the size of a data pointer is identical to the size of a function pointer, which also is correctly recognised by the compiler. Instead of using the "bad" function XEmacPs_SetHandler, we can set the handlers manually to the EmacPS-instance. * Uncrustify: triggered by comment. * Update source/portable/NetworkInterface/xilinx_ultrascale/x_emacpsif_hw.c Co-authored-by: Paul Bartell <[email protected]> * Apply suggestions from code review Co-authored-by: Paul Bartell <[email protected]> * Address comments from reviews Co-authored-by: GitHub Action <[email protected]> Co-authored-by: Paul Bartell <[email protected]> * Use CBMC XML output to enable VSCode debugger (FreeRTOS#673) Prior to this commit, CBMC would emit logging information in plain text format, which does not contain information required for the CBMC VSCode debugger. This commit makes CBMC use XML instead of plain text. Co-authored-by: Mark Tuttle <[email protected]> * Remove need of token * Use vTaskDelay for sleep in the network-interface of xilinx_ultrascale (FreeRTOS#698) The issue here is that, the FreeRTOS IP-task would block all other tasks during PHY-link speed negotiations, as it was using busy waiting. However this is not really ideal. A much more suitable function for such a task would be `vTaskDelay`. * Make sure that a TCP socket is closed only once (FreeRTOS#707) * Make sure that a TCP socket is closed only once * Fix failing test cases for FreeRTOS_TCP_IP unit test modules post PR#705 changes * Uncrustify: triggered by comment. * Fix failing test cases for FreeRTOS_TCP_IP unit test modules post PR - 705 changes --------- Co-authored-by: Hein Tibosch <[email protected]> Co-authored-by: GitHub Action <[email protected]> * Remove Dup function HAL_ETH_SetMDIOClockRange. (FreeRTOS#711) * Update PR template to include checkbox for ut change (FreeRTOS#734) * Main/TCP4 : ACK number in TCP RESET reply to SYN packet (FreeRTOS#724) * Main/TCP4 : ACK number in TCP RESET reply to SYN packet * Typo fix * Add unit-test for coverage; Fix ntohl to htonl * Fix unit-test --------- Co-authored-by: Nikhil Kamath <[email protected]> Co-authored-by: Aniruddha Kanhere <[email protected]> * FreeRTOS#556 Initial Cmake Module definition. (FreeRTOS#557) * FreeRTOS#556 Initial Cmake Module definition. * Fixing CI builds, rely on pcap. (FreeRTOS#556) * Updating tested configurations and minor clean-up of missing network interfaces (FreeRTOS#555) * Further clean-up based on testing with build environment. (FreeRTOS#555) * Using single definition for libraries everywhere. (FreeRTOS#555) * Fixing A_CUSTOM_NETWORK_IF compile option. * Identifying and fixing compile issues. * Adding in additional warnings for GNU to ignore for now. * Fixing formatting issues with uncrustify. * More warnings for GNU used by CI/CD pipeline. * Assuming custom for build tests and using latest freertos-kernel code. Updated readme for how to consume at project level. * Fixing up issues identified in the PR. Making the build_test EXCLUDE_FROM_ALL so only compiled if requested. * Changing to support C89 instead of C99. Renaming tcp_tools to tcp_utilities to mimic the directory. * Using C90 ISO. Fixing compiler warnings. * Fixing non C90 compliant declaration after statement * Separating out CMakeLists so each port is independent. * Updating warning list in code. * Fixed formatting with uncrustify. * Fix failing tests * Fix failing unit-test * Fix a typo. --------- Co-authored-by: Aniruddha Kanhere <[email protected]> * CMake: Fix GIT_REPOSITORY and GIT_TAG (FreeRTOS#742) * Allow use of loopback addresses in IP stack (127.0.0.0/8) (FreeRTOS#754) Authored-by: Adam St. Amand <[email protected]> * Add release candidate automation (FreeRTOS#761) This is a minimal subset of release automation which only creates a tag and verifies it. Signed-off-by: Gaurav Aggarwal <[email protected]> * Add CBMC-running GitHub Action; This commit adds a GitHub Action that runs the CBMC proofs in this repository upon pushes and pull requests * Copy CBMC output directory to CI location This commit ensures that the output directory for CBMC proofs is in the correct location expected by the FreeRTOS CI-CD repository. * rx: Read mac address using FreeRTOS_GetMACAddress() rather than using the defines (FreeRTOS#765) * Read mac address using FreeRTOS_GetMACAddress() rather than using the defines --------- Co-authored-by: GitHub Action <[email protected]> * cmake: Remove add_subdirectory( cbmc ) call CBMC proofs cannot currently be run using CMake. fixes FreeRTOS#753 * FreeRTOS_IP.h: Fix build error introduced by 55658e1 in FreeRTOS-Kernel * Add Nxp1060 network interface (FreeRTOS#774) * Update PR template to include checkbox for ut change * Create NetworkInterface.c * Uncrustify: triggered by comment. * Address PR comments * Uncrustify: triggered by comment. * Update NetworkInterface.c * Uncrustify: triggered by comment. * Update copyright year * Refactor the init function. Add 'brief'. Cleanup. * Uncrustify: triggered by comment. * Update global link status only when the network is quiet * Uncrustify: triggered by comment. * Update copyright yeat * Update the driver to deal with network cable disconnects * Uncrustify: triggered by comment. * Update NetworkInterface.c * Clean up and address PR comments * More cleanup and address PR comments * Uncrustify: triggered by comment. * Empty-Commit * Address issue comments * Uncrustify: triggered by comment. * Empty-Commit to trigger workflow * Remove Full-Duplex restriction * Uncrustify: triggered by comment. * Empty-Commit to trigger workflow --------- Co-authored-by: GitHub Action <[email protected]> * Correct GCC warnings (FreeRTOS#798) * Correct GCC warnings Corrects warnings with current GCC flags for GCC 7.5.0. The only suppressed warning pertains to function to object pointer conversion which is required and common for socket callbacks. * PR feedback --------- Co-authored-by: Ubuntu <[email protected]> Co-authored-by: Nikhil Kamath <[email protected]> * Cleanup of NXP1060 network driver (FreeRTOS#801) * Update PR template to include checkbox for ut change * Empty-Commit to trigger workflow * Fix issues pointed out in PR comments * Uncrustify: triggered by comment. * Empty-Commit to trigger workflow --------- Co-authored-by: GitHub Action <[email protected]> * Fix Clang warnings (FreeRTOS#809) Corrects several warnings from Clang flags for Clang 13. Inspired by @phelter's bug report FreeRTOS/FreeRTOS-Plus-TCP#558 * uncrustify yml fix (FreeRTOS#815) * Add NetworkDown notification to NetworkInterface.c [PR: FreeRTOS#671] (FreeRTOS#812) * Add NetworkDown notification to EMAC task * Add NetworkDown notification to NetworkInterface.c * Uncrustify: triggered by comment. * Introduce ipconfigSUPPORT_NETWORK_DOWN_EVENT compile flag * Fix formatting * Uncrustify: triggered by comment. --------- Co-authored-by: Filip Oleszek <[email protected]> Co-authored-by: zipperowiec <[email protected]> Co-authored-by: GitHub Action <[email protected]> * Uncrustify bot command fix (FreeRTOS#816) * fix uncrustify run command * test uncrustify * Revert "test uncrustify" This reverts commit f660ab435fa741f8767f8a2849829f02a92ecca6. * Fix uncrustify bot command - disable install prompt (FreeRTOS#819) * fix uncrustify run command * test uncrustify * Revert "test uncrustify" This reverts commit f660ab435fa741f8767f8a2849829f02a92ecca6. * removing apt-get prompt while installing git * Removing deprecated set-output command from uncrustify bot run yml (FreeRTOS#820) * fix uncrustify run command * test uncrustify * Revert "test uncrustify" This reverts commit f660ab435fa741f8767f8a2849829f02a92ecca6. * removing apt-get prompt while installing git * removing the deprecated set-output command from uncrustify bot run yml, use latest git * IPv4/Single: Let send() stop blocking after a connection reset (FreeRTOS#561) * IPv4/Single: Let send() stop after a protocol error * Remove token need * Repaired unit-testing * Added the cunftion test_FreeRTOS_send_DisconnectionOccursDuringWait() * Added a comment for unit-test function test_FreeRTOS_send_DisconnectionOccursDuringWait() * Added an item to lexicon.txt * Restored original tcp_utilities * Restored original tcp_utilities, once more --------- Co-authored-by: Hein Tibosch <[email protected]> Co-authored-by: Aniruddha Kanhere <[email protected]> Co-authored-by: Nikhil Kamath <[email protected]> * Add logs to print random number generation failure (FreeRTOS#908) Add logs to print random number generation failure for better debugging of issue. * Update usage of uint64_t according to C90 standard (FreeRTOS#907) Co-authored-by: kar-rahul-aws <[email protected]> * Fix pragma pack in CCS compiler to push/pop (FreeRTOS#906) `#pragma pack(1)` would make it so that all structs inserted after pack_struct_start.h was included for the TI arm compiler would be packed, leading to potential unaligned memory access error. Refer: https://www.ti.com/lit/ug/spnu151w/spnu151w.pdf SECTION 5.11.23 * Modified libslirp backend file to cover different libslirp library versions (FreeRTOS#929) Authored-by: Xiaodong Li <[email protected]> * Update according to devIntegration * Update links to point to main directory --------- Signed-off-by: Gaurav Aggarwal <[email protected]> Co-authored-by: Aniruddha Kanhere <[email protected]> Co-authored-by: Hein Tibosch <[email protected]> Co-authored-by: Hein Tibosch <[email protected]> Co-authored-by: GitHub Action <[email protected]> Co-authored-by: alfred gedeon <[email protected]> Co-authored-by: Pete Bone <[email protected]> Co-authored-by: PeterB <[email protected]> Co-authored-by: ChristosZosi <[email protected]> Co-authored-by: jasonpcarroll <[email protected]> Co-authored-by: Jason Carroll <[email protected]> Co-authored-by: Tony Josi <[email protected]> Co-authored-by: Ubuntu <[email protected]> Co-authored-by: Paul Bartell <[email protected]> Co-authored-by: Kareem Khazem <[email protected]> Co-authored-by: Mark Tuttle <[email protected]> Co-authored-by: Tony Josi <[email protected]> Co-authored-by: ActoryOu <[email protected]> Co-authored-by: Nikhil Kamath <[email protected]> Co-authored-by: phelter <[email protected]> Co-authored-by: Adam St. Amand <[email protected]> Co-authored-by: Gaurav-Aggarwal-AWS <[email protected]> Co-authored-by: sayyadumar <[email protected]> Co-authored-by: Paul Bartell <[email protected]> Co-authored-by: Kody Stribrny <[email protected]> Co-authored-by: Ubuntu <[email protected]> Co-authored-by: Filip Oleszek <[email protected]> Co-authored-by: zipperowiec <[email protected]> Co-authored-by: kar-rahul-aws <[email protected]> Co-authored-by: Rahul Arasikere <[email protected]> Co-authored-by: Xiaodong Li <[email protected]>
* Set SysTick CLKSOURCE bit before enabling SysTick * Use portNVIC_SYSTICK_CLK_BIT_CONFIG The workaround now uses portNVIC_SYSTICK_CLK_BIT_CONFIG instead of portNVIC_SYSTICK_CLK_BIT, which saves us from having to explain in the comments why it's OK to temporarily set the CLKSOURCE bit even if the user's FreeRTOS configuration clears the CLKSOURCE bit. Using portNVIC_SYSTICK_CLK_BIT_CONFIG here still correctly prevents the firmware from triggering the QEMU bug.
* Add fleet provisioning and tinycbor submodules * Copy demo files from FP in CSDK and the Defender Demo * Modify FP demo files to function in FreeRTOS * Update styling and formatting of demo files to match FreeRTOS conventions Co-authored-by: Archit Gupta <[email protected]>
This PR ports the AWS Fleet Provisioning demo from the CSDK to FreeRTOS. The demo has been modified to match the styling conventions of FreeRTOS and run on WinSim. This PR includes the addition of two submodules (Fleet Provisioning and tinycbor) which are required for the demo to function.
The FreeRTOS port of the Fleet Provisioning demo requires mostly the same setup as the CSDK version. However, when setting up demo_config.h and the key/cert files, the FreeRTOS FP demo uses a similar version of the configuration process used by the PKCS #11 Mutual Auth Demo to set up its PKCS11 files. The included python script "fleet_provisioning_demo_setup.py" can be used to generate the appropriate PKCS11 files for the claim certificate and claim key. The FreeRTOS demo documentation will be updated with the precise steps for the Fleet Provisioning demo next release.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.