You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
message(FATAL_ERROR "Invalid FREERTOS_PLUS_TCP_TEST_CONFIGURATION value '${FREERTOS_PLUS_TCP_TEST_CONFIGURATION}' should be one of: ${FREERTOS_PLUS_TCP_TEST_CONFIGURATION_LIST}")
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) .
5
+
6
+
Some of the APIs have changed which is illustrated in the section below. However, there is a backward compatibility mode provided as well.
7
+
8
+
Backward Compatibility Mode:
9
+
---------------------------
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.
11
+
The "Existing API's" defined in all the API changes below work only when the backward compatibility mode is enabled.
12
+
13
+
API changes in 4.0.0-rc1/rc2/rc3:
14
+
----------------------
15
+
16
+
The changes mentioned below uses ipconfigIPv4_BACKWARD_COMPATIBLE flag to differentiate between old API and new API.
17
+
18
+
Change 1:
19
+
20
+
- Existing API: FreeRTOS_IPInit
21
+
- Backward compatibility with the IPv4 FreeRTOS+TCP V3.x.x which only supports single network interface. This can be used for single interface IPv4 systems.
22
+
- New API: FreeRTOS_IPInit_Multi
23
+
- Supports multiple interfaces. Before calling this function, at least 1 interface and 1 end-point must have been set-up. FreeRTOS_IPInit_Multi() replaces the earlier FreeRTOS_IPInit().
- Get/Set the address configuration from the global variables initialised during FreeRTOS_IPInit
29
+
- New API: FreeRTOS_GetEndPointConfiguration/FreeRTOS_SetEndPointConfiguration
30
+
- Get/Set the same address configuration from/to the end point
31
+
32
+
Change 3:
33
+
34
+
- Existing API: FreeRTOS_GetUDPPayloadBuffer
35
+
- Backward compatibility with the IPv4 FreeRTOS+TCP V3.x.x. This can still be used for IPv4 use cases.
36
+
- New API:FreeRTOS_GetUDPPayloadBuffer_Multi
37
+
- A new argument (uint8_t ucIPType) to specify IP type to support both IPv4 and IPv6
38
+
39
+
Change 4:
40
+
41
+
- Existing API: pxFillInterfaceDescriptor
42
+
- It is there for backward compatibility. The function FreeRTOS_IPInit() will call it to initialise the interface and end-point objects
43
+
- New API: prefix_pxFillInterfaceDescriptor
44
+
- where prefix = Network Interface Name
45
+
- E.g pxWinPcap_FillInterfaceDescriptor
46
+
- New function with the same functionality
47
+
48
+
Change 5:
49
+
50
+
- Existing API: vApplicationIPNetworkEventHook
51
+
- New API: vApplicationIPNetworkEventHook_Multi
52
+
- New argument “struct xNetworkInterface * pxNetworkInterface” added.
53
+
54
+
Change 6:
55
+
56
+
- Existing API: xApplicationDHCPHook
57
+
- New API: xApplicationDHCPHook_Multi
58
+
- New argument "struct xNetworkEndPoint * pxEndPoint" added.
59
+
60
+
Change 7:
61
+
62
+
- Existing API: xApplicationDNSQueryHook
63
+
- New API: xApplicationDNSQueryHook_Multi
64
+
- New argument "struct xNetworkEndPoint * pxEndPoint" added.
65
+
66
+
**NOTE** : We are NOT considering the APIs changes in FreeRTOS_IP_Private.h for backward compatibility as those are not part of published interface.
67
+
68
+
Running Demos:
69
+
-------------
70
+
The demos can be found at: https://github.com/FreeRTOS/FreeRTOS/tree/devIPv6/FreeRTOS-Plus/Demo
71
+
72
+
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”.
73
+
This flag is by default set to zero.
74
+
75
+
New IPv6 WinSim Demo: https://github.com/FreeRTOS/FreeRTOS/tree/devIPv6/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_IPv6_Demo/IPv6_Multi_WinSim_demo
Copy file name to clipboardExpand all lines: README.md
+10-2Lines changed: 10 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,16 @@
1
+
## NOTE - Work In Progress
2
+
3
+
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/dev/IPv6_integration/GettingStarted_4.0.0-rc3.md)) for more details.
5
+
1
6
## FreeRTOS-Plus-TCP Library
2
7
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.
3
8
4
-
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.
9
+
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.
5
10
6
11
## Getting started
7
-
The easiest way to use FreeRTOS-Plus-TCP is to start with the pre-configured demo application project (found in [this directory](https://github.com/FreeRTOS/FreeRTOS/tree/master/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.
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/dev/IPv6_integration/GettingStarted_4.0.0-rc3.md))
13
+
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.
8
14
9
15
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).
10
16
@@ -15,6 +21,8 @@ If you have any questions or need assistance troubleshooting your FreeRTOS proje
15
21
16
22
Also see the [Submitting a bugs/feature request](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/.github/CONTRIBUTING.md#submitting-a-bugsfeature-request) section of CONTRIBUTING.md for more details.
17
23
24
+
**Note:** All the remaining sections are generic and applies to all the versions from V3.0.0 onwards.
25
+
18
26
## Upgrading to V3.0.0 and above
19
27
In version 3.0.0 or higher, the folder structure of FreeRTOS-Plus-TCP has changed and the files have been broken down into smaller logically separated modules. This change makes the code more modular and conducive to unit-tests. FreeRTOS-Plus-TCP V3.0.0 improves the robustness, security, and modularity of the library. Version 3.0.0 adds comprehensive unit test coverage for all lines and branches of code and has undergone protocol testing, and penetration testing by AWS Security to reduce the exposure to security vulnerabilities. Additionally, the source files have been moved to a `source` directory. This change requires modification of any existing project(s) to include the modified source files and directories. There are examples on how to use the new files and directory structure. For a windows simulator based example, refer to this [demo](https://github.com/FreeRTOS/FreeRTOS/tree/TCPRefactorDemo/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator). For an example based on the Xilinx Zynq-7000, use the code in this [branch](https://github.com/aws/amazon-freertos/tree/TCPRefactorDemo) and follow these [instructions](https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_xilinx.html) to build and run the demo.
Copy file name to clipboardExpand all lines: manifest.yml
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
name : "FreeRTOS-Plus-TCP"
2
-
version: "V3.1.0"
2
+
version: "V4.0.0-rc3"
3
3
description: "Thread safe FreeRTOS TCP/IP stack working on top of the FreeRTOS-Kernel to implement the TCP/IP protocol. Suitable for microcontrollers."
0 commit comments