Skip to content

Update IPv6 branch according to main #954

New issue

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

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

Already on GitHub? # to your account

Merged
merged 47 commits into from
Jul 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
e4e236a
Update mainline to reflect changes after the release. (#563)
AniruddhaKanhere Oct 14, 2022
b33224b
IPv4/single SAME70 emac race condition (#567)
htibosch Nov 3, 2022
ed04dc7
IPv4/Single: Add a SocketID to a socket (#546)
htibosch Nov 3, 2022
9bd9d28
IPv4/single: SAME70 EMAC buffer sizes (#568)
htibosch Nov 7, 2022
fc71939
Eliminate some warnings (#578)
pete-pjb Nov 16, 2022
1157021
Add MISRA justification for use of dynamic memory (#581)
AniruddhaKanhere Nov 18, 2022
7d8299d
Update deprecated macros in network driver files (#579)
pete-pjb Nov 22, 2022
1279a3f
Fix Network-interface of the Xilinx UltraScale port (#588)
ChristosZosi Nov 28, 2022
3ec7aa9
Fix Windows thread calling vTaskSuspendAll / xTaskResumeAll. (#592)
jasonpcarroll Nov 29, 2022
702eea6
Updated comments for FreeRTOS_select return value (#596)
tony-josi-aws Dec 9, 2022
cb0f4ef
Fixed readme script to build and run unit tests (#644)
tony-josi-aws Dec 21, 2022
1615f72
Minor warning fixes (#589)
ChristosZosi Jan 4, 2023
b65c139
Use CBMC XML output to enable VSCode debugger (#673)
karkhaz Jan 13, 2023
68c70a3
Remove need of token
AniruddhaKanhere Jan 20, 2023
a9f7c9a
Use vTaskDelay for sleep in the network-interface of xilinx_ultrascal…
ChristosZosi Feb 3, 2023
aef286a
Make sure that a TCP socket is closed only once (#707)
tony-josi-aws Feb 10, 2023
cb592e9
Remove Dup function HAL_ETH_SetMDIOClockRange. (#711)
ActoryOu Feb 16, 2023
1a29e5b
Update PR template to include checkbox for ut change (#734)
AniruddhaKanhere Feb 18, 2023
14cf915
Main/TCP4 : ACK number in TCP RESET reply to SYN packet (#724)
htibosch Feb 19, 2023
dcd6e58
#556 Initial Cmake Module definition. (#557)
phelter Feb 24, 2023
5b454cd
CMake: Fix GIT_REPOSITORY and GIT_TAG (#742)
amazonKamath Feb 26, 2023
6a9f04f
Allow use of loopback addresses in IP stack (127.0.0.0/8) (#754)
adam-stamand Mar 8, 2023
8526fb3
Add release candidate automation (#761)
aggarg Mar 9, 2023
0e58fdf
Add CBMC-running GitHub Action;
karkhaz Feb 28, 2023
b879e29
Copy CBMC output directory to CI location
karkhaz Mar 8, 2023
94655eb
rx: Read mac address using FreeRTOS_GetMACAddress() rather than using…
sayyadumar Mar 14, 2023
4a22215
cmake: Remove add_subdirectory( cbmc ) call
paulbartell Mar 14, 2023
9066f61
FreeRTOS_IP.h: Fix build error introduced by 55658e1 in FreeRTOS-Kernel
paulbartell Mar 14, 2023
176b24b
Add Nxp1060 network interface (#774)
AniruddhaKanhere Mar 17, 2023
e5e84ef
Correct GCC warnings (#798)
kstribrnAmzn Mar 21, 2023
6981955
Cleanup of NXP1060 network driver (#801)
AniruddhaKanhere Mar 22, 2023
a280275
Fix Clang warnings (#809)
kstribrnAmzn Mar 24, 2023
a3f418a
uncrustify yml fix (#815)
tony-josi-aws Mar 30, 2023
f7d6921
Add NetworkDown notification to NetworkInterface.c [PR: #671] (#812)
tony-josi-aws Mar 31, 2023
5458374
Uncrustify bot command fix (#816)
tony-josi-aws Apr 3, 2023
00346c3
Fix uncrustify bot command - disable install prompt (#819)
tony-josi-aws Apr 3, 2023
f7e07f8
Removing deprecated set-output command from uncrustify bot run yml (#…
tony-josi-aws Apr 4, 2023
d700359
IPv4/Single: Let send() stop blocking after a connection reset (#561)
htibosch May 17, 2023
5ef383f
Add logs to print random number generation failure (#908)
moninom1 Jun 9, 2023
62b6d1e
Update usage of uint64_t according to C90 standard (#907)
moninom1 Jun 12, 2023
06b98f4
Fix pragma pack in CCS compiler to push/pop (#906)
rahul-arasikere Jun 12, 2023
f71fe91
Modified libslirp backend file to cover different libslirp library ve…
ChaiTowKway Jun 27, 2023
1561608
Merge branch 'dev/IPv6_integration' into maintry
moninom1 Jul 3, 2023
1ceb4f0
Update according to devIntegration
moninom1 Jul 3, 2023
d46d9ab
Merge pull request #8 from moninom1/maintry2
moninom1 Jul 4, 2023
ea1c201
Update links to point to main directory
moninom1 Jul 4, 2023
a532855
Merge pull request #9 from moninom1/maintry2
moninom1 Jul 4, 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
35 changes: 35 additions & 0 deletions .github/workflows/release-candidate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Release Candidate Automation

on:
workflow_dispatch:
inputs:
commit_id:
description: 'Commit ID to tag'
required: true
version_number:
description: 'Release Version Number (Eg, v1.0.0-rc1)'
required: true

jobs:
tag-commit:
name: Tag commit
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
ref: ${{ github.event.inputs.commit_id }}
- name: Configure git identity
run: |
git config --global user.name ${{ github.actor }}
git config --global user.email ${{ github.actor }}@users.noreply.github.com
- name: Tag Commit and Push to Remote
run: |
git tag ${{ github.event.inputs.version_number }} -a -m "FreeRTOS-Plus-TCP Library ${{ github.event.inputs.version_number }}"
git push origin --tags
- name: Verify tag on remote
run: |
git tag -d ${{ github.event.inputs.version_number }}
git remote update
git checkout tags/${{ github.event.inputs.version_number }}
git diff ${{ github.event.inputs.commit_id }} tags/${{ github.event.inputs.version_number }}
6 changes: 3 additions & 3 deletions GettingStarted_4.0.0-rc3.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Moving to 4.0.0-rc1/rc2/rc3 from 3.x.x:
--------------------------------

Version 4.0.0-rc1/rc2/rc3 adds new files to support IPv6 functionality, breaking each file into logically separated IPv4 and IPv6 files. The folder structure of FreeRTOS-Plus-TCP remains unchanged. Build separation is added to make the library modular, enabling users to compile and create a low-footprint binary with only the required functionalities. For more details on supported build combinations, see [History.txt](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/dev/IPv6_integration/History.txt) .
Version 4.0.0-rc1/rc2/rc3 adds new files to support IPv6 functionality, breaking each file into logically separated IPv4 and IPv6 files. The folder structure of FreeRTOS-Plus-TCP remains unchanged. Build separation is added to make the library modular, enabling users to compile and create a low-footprint binary with only the required functionalities. For more details on supported build combinations, see [History.txt](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/History.txt) .

Some of the APIs have changed which is illustrated in the section below. However, there is a backward compatibility mode provided as well.

Expand Down Expand Up @@ -67,9 +67,9 @@ Change 7:

Running Demos:
-------------
The demos can be found at: https://github.com/FreeRTOS/FreeRTOS/tree/devIPv6/FreeRTOS-Plus/Demo
The demos can be found on [this page](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo).

In all the demos, there is a backward compatibility mode which can be enabled by setting the flag “ipconfigIPv4_BACKWARD_COMPATIBLE” to 1 in the header file “FreeRTOSIPConfigDefaults.h”.
This flag is by default set to zero.

New IPv6 WinSim Demo: https://github.com/FreeRTOS/FreeRTOS/tree/devIPv6/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_IPv6_Demo/IPv6_Multi_WinSim_demo
New IPv6 WinSim Demo can be found on [this page](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_IPv6_Demo/IPv6_Multi_WinSim_demo).
8 changes: 4 additions & 4 deletions History.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Changes between dev/ipv6_integration branch 4.0.0-RC3 and 4.0.0-RC2 releases:
Changes between 4.0.0-RC3 and 4.0.0-RC2 releases:
+ Added memory safety proofs for IPv6 using[ CBMC automated reasoning tool ] ( https:/*www.cprover.org/cbmc/)
+ Introduced build separation feature to achieve low memory footprint. Supported build combinations:
1. IPv4 + UDP
Expand All @@ -8,13 +8,13 @@ Changes between dev/ipv6_integration branch 4.0.0-RC3 and 4.0.0-RC2 releases:
5. IPv4 + IPv6 + UDP
6. IPv4 + IPv6 + UDP + TCP

Changes between dev/ipv6_integration branch 4.0.0-RC2 and 4.0.0-RC1 releases:
Changes between 4.0.0-RC2 and 4.0.0-RC1 releases:
+ Added changes to fix IPv6 issues observed by Maxwell protocol tester.

Changes between dev/ipv6_integration branch RC1 and main branch V3.0.0 releases:
Changes between RC1 and V3.0.0 releases:
+ Unified code for IPv4 and IPv6
+ Multiple Interface/Endpoint support
((Reference: https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/freertostcp-multiple-interfaces.html).
(Reference: https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/freertostcp-multiple-interfaces.html).
+ New WinSim demo to support both IPv4 and IPv6.
**Note**- This release does not support ESP32/ M487/ mw300_rd ports yet. This will be released soon.

Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
## NOTE - Work In Progress
## Introduction

This branch contains unified IPv4 and IPv6 functionalities.
Refer to the Getting started Guide (found [here](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/dev/IPv6_integration/GettingStarted_4.0.0-rc3.md)) for more details.
Refer to the Getting started Guide (found [here](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/GettingStarted_4.0.0-rc3.md)) for more details.

## FreeRTOS-Plus-TCP Library
FreeRTOS-Plus-TCP is a lightweight TCP/IP stack for FreeRTOS. It provides a familiar Berkeley sockets interface, making it as simple to use and learn as possible. FreeRTOS-Plus-TCP's features and RAM footprint are fully scalable, making FreeRTOS-Plus-TCP equally applicable to smaller lower throughput microcontrollers as well as larger higher throughput microprocessors.

This library has undergone static code analysis and checks for compliance with the [MISRA coding standard](https://www.misra.org.uk/). Any deviations from the MISRA C:2012 guidelines are documented under [MISRA Deviations](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/MISRA.md). The library is validated for memory safety and data structure invariance through the [CBMC automated reasoning tool](https://www.cprover.org/cbmc/) for the functions that parse data originating from the network. The library is also protocol tested using Maxwell protocol tester for both IPv4 and IPv6.

## Getting started
The easiest way to use the 4.0.0-rc3 version of FreeRTOS-Plus-TCP is to refer to to the Getting started Guide (found [here](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/dev/IPv6_integration/GettingStarted_4.0.0-rc3.md))
Another way is to start with the pre-configured demo application project (found in [this directory](https://github.com/FreeRTOS/FreeRTOS/tree/devIPv6/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator)). That way you will have the correct FreeRTOS source files included, and the correct include paths configured. Once a demo application is building and executing you can remove the demo application files, and start to add in your own application source files. See the [FreeRTOS Kernel Quick Start Guide](https://www.freertos.org/FreeRTOS-quick-start-guide.html) for detailed instructions and other useful links.
The easiest way to use the 4.0.0-rc3 version of FreeRTOS-Plus-TCP is to refer to to the Getting started Guide (found [here](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/GettingStarted_4.0.0-rc3.md))
Another way is to start with the pre-configured demo application project (found in [this directory](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator)). That way you will have the correct FreeRTOS source files included, and the correct include paths configured. Once a demo application is building and executing you can remove the demo application files, and start to add in your own application source files. See the [FreeRTOS Kernel Quick Start Guide](https://www.freertos.org/FreeRTOS-quick-start-guide.html) for detailed instructions and other useful links.

Additionally, for FreeRTOS-Plus-TCP source code organization refer to the [Documentation](http://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_Networking_Tutorial.html), and [API Reference](https://freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/FreeRTOS_TCP_API_Functions.html).

Expand Down
8 changes: 4 additions & 4 deletions source/FreeRTOS_UDP_IP.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ UDPPacketHeader_t xDefaultPartUDPPacketHeader =
* @brief Process the generated UDP packet and do other checks before sending the
* packet such as ARP cache check and address resolution.
*
* @param[in] pxNetworkBuffer: The network buffer carrying the packet.
* @param[in] pxNetworkBuffer The network buffer carrying the packet.
*/
void vProcessGeneratedUDPPacket( NetworkBufferDescriptor_t * const pxNetworkBuffer )
{
Expand Down Expand Up @@ -128,9 +128,9 @@ void vProcessGeneratedUDPPacket( NetworkBufferDescriptor_t * const pxNetworkBuff
/**
* @brief Process the received UDP packet.
*
* @param[in] pxNetworkBuffer: The network buffer carrying the UDP packet.
* @param[in] usPort: The port number on which this packet was received.
* @param[out] pxIsWaitingForARPResolution: If the packet is awaiting ARP resolution,
* @param[in] pxNetworkBuffer The network buffer carrying the UDP packet.
* @param[in] usPort The port number on which this packet was received.
* @param[out] pxIsWaitingForARPResolution If the packet is awaiting ARP resolution,
* this pointer will be set to pdTRUE. pdFALSE otherwise.
*
* @return pdPASS in case the UDP packet could be processed. Else pdFAIL is returned.
Expand Down
11 changes: 11 additions & 0 deletions test/build-combination/Common/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,17 @@ void vApplicationIdleHook( void )

/*-----------------------------------------------------------*/

void vLoggingPrintf( const char * pcFormat,
... )
{
va_list arg;

va_start( arg, pcFormat );
vprintf( pcFormat, arg );
va_end( arg );
}
/*-----------------------------------------------------------*/

void getUserCmd( char * pucUserCmd )
{
/* Provide a stub for this function. */
Expand Down