Skip to content

Commit 579384d

Browse files
authored
Merge branch 'main' into DriverSAM_length_of_rx_packets
2 parents e264554 + 4c6c8ab commit 579384d

File tree

5 files changed

+58
-9
lines changed

5 files changed

+58
-9
lines changed

GettingStarted_4.0.0-rc3.md renamed to GettingStarted.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
Moving to 4.0.0-rc1/rc2/rc3 from 3.x.x:
1+
Moving to 4.0.0 from 3.x.x:
22
--------------------------------
33

4-
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) .
4+
Version 4.0.0 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) .
55

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

88
Backward Compatibility Mode:
99
---------------------------
10-
If you are moving your code from V3.x.x to V4.0.0-rc1/rc2/rc3, then set the "ipconfigIPv4_BACKWARD_COMPATIBLE" macro to 1 in “FreeRTOSIPConfigDefaults.h” to run the code in backward compatible mode.
10+
If you are moving your code from V3.x.x to V4.0.0, then set the "ipconfigIPv4_BACKWARD_COMPATIBLE" macro to 1 in “FreeRTOSIPConfigDefaults.h” to run the code in backward compatible mode.
1111
The "Existing API's" defined in all the API changes below work only when the backward compatibility mode is enabled.
1212

13-
API changes in 4.0.0-rc1/rc2/rc3:
13+
API changes in 4.0.0:
1414
----------------------
1515

1616
The changes mentioned below uses ipconfigIPv4_BACKWARD_COMPATIBLE flag to differentiate between old API and new API.

History.txt

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,52 @@
1+
Documentation and download available at https://www.FreeRTOS.org/
2+
3+
Changes between FreeRTOS-plus-TCP V4.0.0 and V3.1.0 released August 10, 2023
4+
+ Unified code for both IPv4 and IPv6 protocols.
5+
+ Multiple Interface and Multiple Endpoint support
6+
1. The stack supports multiple Physical Interfaces.
7+
2. The stack also supports multiple endpoints (or Virtual interfaces) on the same physical interface.
8+
+ New WinSim demo to support IPv4, IPv6 and multi-interface together.
9+
(Reference: https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_IPv6_Demo/IPv6_Multi_WinSim_demo)
10+
+ Build separation feature introduced to achieve low memory footprint. Supported build combinations:
11+
1. IPv4 + UDP
12+
2. IPv4 + UDP + TCP
13+
3. IPv6 + UDP
14+
4. IPv6 + UDP + TCP
15+
5. IPv4 + IPv6 + UDP
16+
6. IPv4 + IPv6 + UDP + TCP
17+
+ Support added in FreeRTOS-plus-TCP git repository CI tool to validate various build configurations before PR merge.
18+
+ Achieved 100% unit test coverage for both IPv4 and IPv6.
19+
+ MISRA c-2012 compliance for both IPv4 and IPv6.
20+
+ Addressed several issues observed by Maxwell Protocol tester.
21+
+ Memory safety proofs for IPv6 code using[ CBMC automated reasoning tool ] (https://www.cprover.org/cbmc/).
22+
+ Stack is Penetration tested and a memory leak issue has been identified and fixed in the process.
23+
(Reference: https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/pull/973)
24+
+ Improved Documentation:
25+
1. Multi-interface and Multi-endpoint documentation.
26+
2. Updated stack initialization documentation to support multi-interface and endpoint.
27+
(Reference: https://freertos-wordpress.corp.amazon.com/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_Networking_Tutorial_Initialising_TCP.updated.html)
28+
3. Code size details for various build configurations
29+
(Reference: https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/index.html).
30+
4. Documentation added for IPv6 protocol support.
31+
5. Documentation added for various IPv6 functionalities like DHCPv6, ND (Neighbour Discovery), RA (Router Advertisement).
32+
6. README added for the network ports.
33+
34+
We thank the following people for their inputs in these enhancements:
35+
+ Add mDNS fixes for IPv6. Contributed by @evpopov.
36+
+ IP offset calculation improvement. Contributed by @evpopov.
37+
+ CCS compiler fix for packed structs. Contributed by @rahul-arasikere.
38+
+ Add tasking compiler support. Contributed by @go2sh.
39+
+ Add NetworkDown notification support to STM32FXX. Contributed by @zipperowiec.
40+
+ CMake changes. Contributed by @phelter.
41+
+ STM32Hxx porting fixes. Contributed by @miguelfreitas.
42+
+ Allow use of loopback addresses. Contributed by @adam-stamand.
43+
+ CBMC proof-running GitHub Action. Contributed by @karkhaz.
44+
+ CBMC XML output to enable VSCode debugger. Contributed by @karkhaz.
45+
+ vTaskDelay for sleep in the network-interface of xilinx_ultrascale.Contributed by @ChristosZosi.
46+
+ Read mac address using FreeRTOS_GetMACAddress(). Contributed by @sayyadumar.
47+
+ Minor warning fixes. Contributed by @ChristosZosi.
48+
+ Network-interface fix for Xilinx UltraScale port. Contributed by @ChristosZosi.
49+
150
Changes between 4.0.0-RC3 and 4.0.0-RC2 releases:
251
+ Added memory safety proofs for IPv6 using[ CBMC automated reasoning tool ] ( https:/*www.cprover.org/cbmc/)
352
+ Introduced build separation feature to achieve low memory footprint. Supported build combinations:

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
## Introduction
22

33
This branch contains unified IPv4 and IPv6 functionalities.
4-
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.
4+
Refer to the Getting started Guide (found [here](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/GettingStarted.md)) for more details.
55

66
## FreeRTOS-Plus-TCP Library
77
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.
88

99
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.
1010

1111
## Getting started
12-
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))
12+
The easiest way to use the 4.0.0 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.md))
1313
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.
1414

1515
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).

docs/doxygen/config.doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ PROJECT_NAME = FreeRTOS-Plus-TCP
4848
# could be handy for archiving the generated documentation or if some version
4949
# control system is used.
5050

51-
PROJECT_NUMBER = V4.0.0-rc3
51+
PROJECT_NUMBER = V4.0.0
5252

5353
# Using the PROJECT_BRIEF tag one can provide an optional one line description
5454
# for a project that appears at the top of each page and should give viewer a

manifest.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
name : "FreeRTOS-Plus-TCP"
2-
version: "V4.0.0-rc3"
2+
version: "V4.0.0"
33
description: "Thread safe FreeRTOS TCP/IP stack working on top of the FreeRTOS-Kernel to implement the TCP/IP protocol. Suitable for microcontrollers."
44
license: "MIT"
55
dependencies:
66
- name: "FreeRTOS-Kernel"
7-
version: "V10.4.5"
7+
version: "V10.6.0"
88
license: "MIT"
99
repository:
1010
type: "git"

0 commit comments

Comments
 (0)